That said: since you were in fintech you may well be aware of this, but programmers at financial firms don't exactly have the same status or workplace conditions as programmers in software driven companies. If you don't know exactly what I mean, shake your network and find someone in the industry to have a frank discussion with.
If that's so, making sure you are very mobile-friendly and looking at app-install ad networks might be better than adsense.
You can't really control how they use it. But you can see what they accomplished in the past. Look at what they are planning for the next few years. And then evaluate at the end of the year and see if you feel like they did what they said they would.
If you are giving to big charities (because they match up with your values), they have tons of data on what they are doing with the money. They also sometimes have internal funds you can donate to that are earmarked to only be spent on a specific activity -- just ask.
If there are automated tools, they should run on the entire asset directory and dump to a new directory in whatever hierarchy makes sense to the tool. When that turns out to be slow, check "file modified" timestamps in the tool instead of dumping required knowledge on the artist.
Getting artists to actually use source code control instead of having personal folders full of things like rock01_retouched_new_final_final.3ds is a bit of a pipedream, but you can at least put the asset directory under source control and make that the only way to see things in the engine.
3-4-dd-rhand-07 - episode 3, scene 4, dirty dog, right hand, from keyframe #7
(there were naming conventions for background elements too but they were somewhat looser IIRC)
We had a cheat sheet for this with standard abbreviations for all the recurring characters, and a list of body part names. Everyone had a copy stuck to the wall or floating around their desk. I think that was an important part of what made it work. Don't expect new hires to pick it up by looking at the results of the naming scheme; codify it into a document you hand to them as part of orientation.
(We also accessed a lot of this stuff visually; the file handed to an animator would have all of the keyframe drawings in each scene laid out in sequence, with the raw art separated out into individual parts and turned into named symbols right there on the working canvas.)
All of this was something we hashed out over time; early stuff had a horrible mishmash of naming schemes. I'd advocate having a discussion about Organization as soon as possible, agreeing on a standard and sticking with it for new assets. Get the old stuff reorganized when you have a chance, maybe throw that task to an intern if you have one.
Code Game UI Gameplay GFX Physics Editor ThirdParty SourceAssets Levels Fire Ice Swamp Volcano Sewer Characters Player Models playerInital.fbx playerAwesome.fbx playerGodlike.fbx Animations Materials Merchant Thug ThugFat ThugTall Objects Urban Indoor Outdoor UI Menus Boot Main Options Icons ProcessedAssets Pak1 (UI stuff) Pak2 (Level 1 stuff)
But yeah, Perforce version control is pretty important. It's almost designed to help manage assets, especially large ones. And it's free for under 20 users, I think.
Beyond that, you might want to include the level, screen, and/or date for the assets in your naming structure. Pretty much every company, and sometimes every project, uses a different structure, though.
The desired result is that related names are convenient grouped together in an alphabetical sort.
A rule of thumb is: the most important part is at the beginning, and most specific part is at the end.
But what is convenient, important or specific is context sensitive and debatable, since there are many ways to name the same thing in different kinds of hierarchies.
Sometimes it's ambiguous what's most important, like when you're classifying things along two or more dimensions, like x y and time.
Should it be (MouseXCurrent, MouseXLast, MouseYCurrent, MouseYLast) or (MouseCurrentX, MouseCurrentY, MouseLastX, MouseLastY)?
In that case I'd put the most tightly bound dimension last (x and y, which are usually used together as a 2d vector, so keep them adjacent).
For the latter, most large games use an asset management system. Either homebrew, or something like Alienbrain. (Well, people used Alienbrain when I left. Not sure what's hip these days)
For in-game, there's usually a fairly strict organizational scheme. It depends on the game, but usually folders are about "location" - which map, which part of the world, which episode, etc. Asset names indicate a name, and various other bits like left/right hand hold, color, or whatever matters for that asset.
It's usually the lead artists job to come up with said scheme, unless you have a tech lead for the asset pipeline.
If you look for assets, you do a search in the asset management system, which also contains the in-game name and location.
For smaller games, you make do by manually organizing, but as things grow, you'll start hand-rolling tools.
Like daodedickinson recommends; you want to look at how AAA game designers design their systems, then imitate them. Your best avenue to figuring out how games are designed is by understanding how game modding is carried out in AAA games. In many games, almost all of the content and mechanics within the game are defined using the same scripting interface that mods are created through.
I recommend using games like Skyrim, Morrowind, Mount and Blade, and The Witcher (i forgot which one shipped with all the game's scripts in the install folder, might have been 2).
Being able to mine as much metadata from a file name and path is a plus. As is having a logical naming convention that can be queried from the string programmatically. Not to mention fast lookup and asset name generation merely from string concatenation...
This is a good problem to have, mfcecilia! You are on the path to making great games. Its stuff like this that gives you the confidence to say my solution is just as good as anyone else's and I am just going to do it and learn from my mistakes. Time pressure is actually your best ally. If you want your game to be playable by the end of the decade you will solve this challenge and level up to the next big one. Such as figuring out how to organize your assets in a single compressible pak that is laid out to support fast and efficient patching via binary diffs!
Good luck! And if you are still stuck check out the Unity and Unreal engine docs and forums for further tips on pipeline production. And of course, post a link when you build a playable alpha ;)
For example, you can use MPQ Explorer to look inside the package files of World of Warcraft, and see how they organise their tens of thousands of assets.
Generally, as others have said, it's by "where" rather than "what", or sometimes "what"/"where".
Beyond that - Perforce is the usual asset control system for these things. It offers the ability to tag files, which makes searching easier. When you're dealing with a huge pile of art, searching is basically the only way to go, so good tagging is very important.
(Source: I'm not a game designer, but I've worked with the complete art libraries of multiple triple-A games over the last two decades creating Machinima films, either working directly with the studio or on a modding basis. I know far more about the internal file structure of WoW, for example, than is probably healthy.)
I wouldn't be so sure...
The most important thing, from the technical standpoint, is that your asset pipeline is robust and can handle weird things. The engine shouldn't consume files haphazardly, it should deal with "built" assets, where you can trace things from the in-game content back to the source file. A configuration layer usually appears to give an in-engine ID to a loaded asset, because files and assets do not map 1-to-1. You can choose to fight the organization battle in that layer, rather than in the file system. When you have a slick IDE like Unity, this is all built into the GUI, but a custom engine can just use a batch process to do the same.
Version control is useful - not a DVCS, because it doesn't scale to binary assets, but SVN or Perforce. Artists will groan about waiting around for the VCS to resolve things and the inevitable problems with locking, renaming, and deleting stuff, but their lives will be better off overall if it's in their workflow loop. It's "10 hours waiting on SVN Updates" vs "30 hours debugging project history".
Here's an article on "import" vs "export" based pipelines, where the thing being "imported" to the engine is a common, standardized format that every tool can export - rather than one proprietary tool the team happens to use:
Also most of what you see in the final game output is packaged and minified to a high degree in order to improve performance/memory/etc.
Usually the lead tech artist just sets a standard and everyone conforms to that standard. Art assets(.psd, .ma, etc) are usually stored in a separate section than in-game assets.
Quake's pak0.pak: https://quakewiki.org/wiki/pak0.pak
Quake 3 Arena's pak0.pk3: http://openarena.wikia.com/wiki/Pak0.pk3
The Scheme hacker Shiro Kawai has, as one of his claims to fame, having written an asset management system for Squaresoft (now Square Enix) -- not for any of their games but for the movie Final Fantasy: The Spirits Within.
But from games which do have somewhat logical structures, it's usually that the files are seperated by purpose. So the music and sound effects in one folder, the textures in another, some level files in another folder, etc. And the names would be somewhat descriptive of the content, like 'course_desert_1.lvl' If you're lucky, this is also backed up in a git repository somewhere and has version control.
An asset browser allowed you to perform queries (e.g. show me all the characters from level X which reference materials which reference texture Y). We had tags/labels, comments, everything you could want.
When you do it like this your folder organization becomes irrelevant. You can store everything in a single directory with a GUID for a filename if you want. Or store all textures in one place and all 3d models in another. The down side is it's quite opaque, everything must be done within your toolset, so you need great tool support.
//depot/main/game - all your code + exported (but not yet converted) data lives there. You can give this to QA, Build manager, scripter, coder and they can build a level, compile the game, tools, etc. if needs so. By exported here is what I mean: - Exported textures, models, sound, etc data ready to be further on converted to platform specific formats. The original data was kept in //depot/source
Keep several department oriented //depot/source p4 views. Each specific department would get mapped this in their view, others would not.
//depot/source/sound - For example big huge 24-bit sound files + whatever other extras ProTools or other software writes. Suitable for sound folks to keep their project settings, experiments, settings, but not suitable for everyone else to see.
//depot/source/textures - Your big ass huge PSD, or whatever else source files - containing all layers that you've built your textures, or whatever else a texture/material department might see fit (there might be more than one - character, environment, etc. departments with different organizations). Not suitable for the main team, great for whoever works on textures.
//depot/source/animations - For example big huge FBX MotionBuilder or something else files. Suitable for animation people to edit, but not suitable for the game tools to read them and convert them every time.//depot/source/models - etc. - your big ass again .3DS, .MA/.MB, even .FBX files. Great for modelers, not great for everyone.
You might even have external people working for you, you don't put their stuff directly with your stuff (legal maters, payment, review process, etc.)
You also don't want them to have access to everything you do, and you need to establish way to review their assets and how to communicate work - what needs to be done, requirments, etc.
So a typical game developer would only need
some studios would even submit back converted data, for example:
others prefer to convert while building. For example all huge ass PSD files with lots of layers were probably exported as .TIFF, .PNG, even .JPG for insanely big backdrops, and from then on these would get converted to swizzled optimized textures - for example on all iPhone/iPads you get PowerVR chip, and it has PVRTC texture compression, unlike ETC, DXT for PC.
It all depends also on your team.
So a WiiU only programmer, might just sync
# Not ideal locations, but something that might work:
There is nothing particularly special about game development. Yes, there is an emphasis on real-time operation that changes the specific design of applications. But there is no reason to believe that should have any impact on project management.
Deep learning is a hot topic right now and if you have any aptitude in that direction you will get hired very quickly.
Curious to hear if others have had success with other methods or if anyone else has tried going back to a non-smartphone.
I'm really only addicted to HN these days, but I solve it by not going to HN at all when I need to be in Get Shit Done mode. After a day or two I don't find myself thinking about it that much.
$ cat /etc/hosts|grep face127.0.0.1facebook.com127.0.0.1www.facebook.com
What I learned in one of my courses where we talked about addictions, is that people with addictive personalities tend to replace one addiction with another. Now, saying this doesn't present it as a positive thing, but it can be.
I started by completely taking these socials medias out of my life for a whole entire month, strictly. I didn't get on a single time to any of them once. And I replaced the addictions with something else. At first I thought maybe games would be good, but it was hard to get on my phone without going to these sites. So what I did is I replaced them with reading. I would take 2 minutes to read a couple pages, read on my ten minute breaks, read on my lunches, etc.
You don't have to do that, although I recommend it, but I would try to replace it with something that didn't have access to it, and then you'll have more control over it.
I also put my laptop in a bag once in a while, padlock the bag, then put my phone and padlock key in my ksafe (http://www.thekitchensafe.com/). Offline heaven.
Come to think of it maybe I should delete Tweetbot from my phone for a while. It feels about time.
Coming at it from the other end, I find that the "Pomodoro Technique"  of timeboxing works pretty well to keep me on task, when I go through the whole ceremony of picking up the cute ladybug-shaped kitchen timer I've modified by painting out anything beyond 25min, giving it a twist, and having that kinesthetic memory plus the soft ticking reminding me that I have A Thing I Have Promised Myself I Will Work On For This Block Of Time.
I haven't been doing that much lately either. I should start doing it again.
When you think about it, it is not human, you have far more things to do than being distract by these little sounds. Most of the applications makes possible to set precisely when you want to be notified or not. Don't worry, even with notifications, you will still be distracted by your kids, cat, neighbors, flying birds and dust.
I don't think the browser extensions are a solution to this. You have to learn to control it by yourself.
I don't really manage it. I just let it flow, I don't feel guilty. That's the first step.
I also disable browser & desktop notifications. It's fine to see a highlighted tab or a number in the systray.
My mobile is always on vibration. Social apps are muted. All of them. I wear a Fitbit wristband synced by Bluetooth for phone calls notifications.
I use Serializer as main input of news. I check it between tasks, scanning the titles and sending the articles to Pocket (important!).
I let myself check anything at any moment. When I feel "the urge" I just ask myself "should I check something?". Take a few seconds to answer that and I usually keep going on my task and check later. If not, it just happened. No big worry.
I also keep myself away from Twitter & Facebook using Buffer to plan my publications. I use Goofy or Pidgin to connect to Facebook chat.
Finally, I use Evernote with a keyboard shortcut to open my "brain dump" note. Here I jot down quick ideas that come across my mind while I'm doing a task. You can use anything else but Evernote is useful even walking. You can write down in your mobile and sync it later at home/office.
Keeps me addicted to the right things :).
I like this question. I'll see what other better answers come out out of it.
1 - No social media apps on my phone that might be tempting to check during the work day
2 - No social media logins on my work laptop of a distinctly personal nature
3 - Only checking social media when getting home and after a few minutes it's just tiring to wade through stuff and it makes it a lot easier to close it up and not be conditioned to think those outlets are worth the consistent attention
 This doesn't count Periscope which I use for promotional purposes or might come in handy in a pinch for sharing (but I don't open during work or watch many other streams)
 Social media doesn't include some forums, I'm strictly speaking FB/Twitter/etc. Forums are a different beast. Thankfully I tend to get tired of some which enable me to avoid them, or if I return, I've deleted my account and just read.
For example, if we always check emails just to see how many new-emails we have got, so that we can act on them asap, Its a good case as its going to improve our productivity and time-to-respond lower.
Another example, if we always check fb to see what other people's activities are. Well, we can turn this around and make us the person who is doing lots of personal activities (outside of internet domain) and posting it to facebook (may be weekly), or restrict it to closer pals/family.
Personally, if we interact more with Nature around us, it feels great.
Restrict the use of these "virtual" worlds and try to participate more with the world around us. Instead of posting a message on facebook, may be call your best friends and say hi. Its million times better than seeing 1 like for the post in the virtual world.
- Newsfeed Eradicator. Keeps me from consuming FB. I can still post, lookup the groups I'm in, lookup specific people, use FB Messenger etc. But it's no longer a black hole.
- StayFocusd in Chrome to block Reddit/Twitter/FB/HN from 8am to 2pm. By afternoon, either I'm engrossed in my work and don't need to worry about distractions or my brain is mush and no more work is getting done today. Most crucial time is when I first get to the office. Can still use Firefox if necessary, but this eliminates the mindless CMD+T.
It used to take so much energy for me to start working. But on Modafinil I switch to emacs and start hacking.
I bet I'm going through a honeymoon period, but I'd say I've learned more about programming this week than in any (any!) month of my life. I feel really focused.
Many use it to avoid sleep. I don't; I get eight hours of sleep a night. I'm trying to avoid crashing, burning out, dependency et cetera by using Modafinil like an antidepressant, not a five hour energy.
Take 20 minutes one day and block all those on facebook that you really don't care to follow or post too much stuff. You don't need to 'Unfriend' them, just 'unfollow' them. This way you only see the stuff you care about and will inevitably spend less time on Facebook. This can be applied to twitter/snapchat etc.
I really suggest reading Deep Work by Cal Newport.
For my phone - I deleted all of my social apps (apart from Instagram, Swarm etc) and keep it in another room or in my bag as much as possible.
Sometimes I'll do an /etc/hosts block and shift that site I'm over visiting to another device. Makes me realize I'm using it too much. Once that moment hits I unblock when I feel I'm ready for it on my laptop again.
When you no longer feel a need to use it, then it is safe to use it. This has been the best cure for addictions for me in the past, but YMMV.
There is value for me in having a FB account. There are some people that I only communicate with through the service, and I'm part of some groups that do all their event organization through FB. Deleting my account, for me, was both undesirable and impractical. But I sure as hell wanted to break my addiction.
I started using a simple habit tracker on Android call Rewire to track my progress in breaking this habit. After a few false starts, "don't break the chain of success" became more motivating than I originally thought it would be.
I also ramped up the severity of my FB diet instead of going cold turkey right off the bat. This was roughly my progression:
1. Delete the phone app. There's not a great way around this. I still use Messenger, and for the first time I find myself really glad that the services are separated.
2. I started logging in and out of the service in a browser. When I finally tore myself away from the newsfeed, I'd sign out. When I was tempted to go back, having to sign in again was a usability barrier, but also a reminder to myself of what I was trying to accomplish. Sometimes it was enough to help me resist actually logging in.
3. No mobile FB. I did my best not to log in through a mobile browser. I still allowed myself to browse on a laptop or desktop.
4. No more FB. I configured my email settings to get notifications about very specific things and then looked at my news feed on a desktop browser for what would hopefully be the last time. My personal rule: if I get an email about something that was directed particularly to me, whether it's somebody posting on my page or somebody tagging me in a comment, I will log in through a desktop browser, address that event, and immediately log out. No looking at the newsfeed, no browsing to friends' pages. I also unsubscribed from all the promo emails FB started sending me when it detected that I was inactive.
I hope this helps! Breaking my FB addiction was tough, but very rewarding. I don't miss my newsfeed full of political vitriol and worthless clickbait. I've had more rewarding conversations with friends I care about through other means. I don't miss being part of "the conversation." So, A++, would recommend, but be realistic and gentle with yourself as you progress.
Like the OP, I'm using StayFocusd and I've used RescueTime in the past, and it's actually been very helpful for me. Right now I've given up Facebook and I'm tackling Reddit next. I don't have a solution for my phone, but it hasn't been a problem for me because I leave it charging across the room when I'm working. It's still difficult for me during evenings, but I'll probably try something similar for that soon.
I don't have a problem with most of these. Facebook can demand a lot of attention though. I learned others expect what you give. So I don't give much, others are fine with that and Facebook isn't a problem.
My Mac at home is the entertainment computer. It has all the problem stuff on it, potential problem stuff too. When I have time, I can hop onto that computer and enjoy. No worries.
If I really feel the urge to read non-work stuff then I have my phone, which costs money, has a useless keyboard and a diminutive screen. If I am making a cup of tea then there is plenty of time there to see if anyone has sent me email etc.
Regarding work email, I do not read a lot of it and I expect my colleagues to know that I don't read emails. I do read important ones but social events and other work emails that are non-critical I just move to the 'almost read' folder. Generally my email is just used for test purposes, lots of systems cc me in on things so real emails are hard to find amongst the reports etc.
I do have problems with 'slack' at the moment, some people are a little evangelical about it and I just find it to be lots of noise. I wish 'slack' would go and that I could return to the lame 'Skype' as that did work well for my needs.
Like to what extent their software is used in planning drone strikes and other military operations. And what, exactly, Palantir knows about the number of civilians killed and maimed in these operations. Let alone how any of the engineers working there, behind their hoodies and their high-end headphones -- perhaps reading this very thread right now, as we speak -- personally feel about this situation.
At least one of the non-clone ones mentions a strong Palantir internal push to pad GD with positive reviews.
The company itself is essentially an elite technology consulting firm (albeit one that is actually technically competent). They have a set of core generic products (they have a finance analysis product, government analysis product, some other ones). BWStearn's description is accurate (a tool for analyzing entities and their relationships). But the key to their success is they take that generic product and then dispatch teams of engineers to customize each deployment for each client (hence consulting). Often clients will hire them because the client has engineering talent and has to hire Palantir because of that.
From what I've noticed the culture does learn fratty, but I didn't find it uncomfortably fratty. However, the people there work hard and they work long hours.
I have no experience of their software, but the people I know who work there are very smart. Some of the best developers I've ever known. OTOH, many of the other best developers I've known refuse to work there on principle.
- The editable text fields only support h1, h2, h3, and p tags. If you plan to have four font sizes or the people maintaining the site don't mind using the editable code blocks, this isn't a bad thing. - If you use the built-in blocks then write your own CSS overrides, you are assuming those classnames (generated on squarespace's side) will be the same. Forever. - I found myself overriding a lot of the system blocks with very bad css (some !importants)
The good things:- Every post has an associated JSON endpoint. No heavy lifting on this side.- In my experience, support gets back to you in a day or less with helpful answers.- The support for custom post types (See the docs) is finally acknowledged.
In my opinion, the developer tools are great for your own site or if the client has familiarity with basic html tags. I am not sure I would use it again for a site to hand off to a non-technical client. If the system blocks (built in video, text, image types) were customizable, I would recommend Squarespace more heartily.
I have not used Squarespace's ecommerce functionality so I am unqualified to comment on those. I have heard good things about Webflow's CMS offering, so I would check that out to compare.
This post was very helpful to me in seeing how other people use the dev platform (I have no affiliation): http://www.instrument.com/latest/creating-a-clean-custom-mai...
Hope that helps!
At first I used the in-browser stylesheet and template editors Squarespace's free/low-cost plan had to offer. But almost immediately my clients had to step up to a plan that allowed me to access the Git-based developer platform. Unfortunately, they wanted to retain much of their existing markup and styling. It was all dependent on the system blocks johnny_utah mentioned, so I couldn't take the greenfield approach. This created some problems, but it still didn't take me long to put together a very nice brochureware site. And I am definitely no expert with the platform.
Yes, I would recommend Squarespace over WordPress. It seems very empowering to slightly-technical users who might want to do creative things that would be difficult with even a customized/fully-plugged-in WordPress setup. Also, avoiding WordPress security issues and third-party hosting headaches is a big plus.
If the organization you're dealing with is incompetent, it doesn't matter if you communicate with https, carrier pigeon, or face-to-face. They'll still leave things open at some point and you'll get screwed.
And, as heinrichf points out, you can MITM and name-and-shame individual apps if you're technical.
"WebViews Are Not To Be Trusted" https://web.archive.org/web/20140213214723/http://matthodges...
(I could easily stand to be corrected. On a similar note, I hope Julia replaces MATLAB for a lot of science/engineering.)
* Solar Panels. In the UK, the government pays you per kWh generated. Needs an upfront investment, but stable income and you reduce your own energy bills. See http://shkspr.mobi/blog/tag/solar
* Renting out property. Needs a much larger initial investment, and requires ongoing maintenance. On a good month I only hear from the managing agent once per month with details of how much rent is being paid.
* Stoozing. Find a credit card with 0% interest on balance transfers. Stick the money into a savings account. Or, if you like risk, on a horse. Need a good credit rating and decent savings rate to make more than a few hundred a year though.
* Affiliate marketing. If you can find a good theme (e.g. Halloween) and a decent place to put the links (somewhere that wants them - not spamming them everywhere) it's possible to get a moderate passive income. Well... not quite passive, requires upfront time commitment of selecting links and locations.
* Hosting / simple websites. Again, little bit of up-front commitment. Works best if you can find a local niche of people who want a friendly face to host their websites. Usually as simple as buying a domain, setting up WordPress, and turning on automatic updates.
In general, the best passive schemes require a large initial outlay and/or a dubious moral outlook. A better way to enhance your income is to eat out less, stop buying stuff you don't need, and shop around for deals. Boring but true!
Total Gross Revenues: $20,000 or so.
Mostly from a single high-traffic niche site which I promote almost exclusively through social media. My site offers a free version of what a few other websites in the same niche offer as a SaaS service.
From that same site, most of the revenue (~80%) is from ads (ad revenue increased when switching to responsive units). Next, Amazon associate makes up about 15% of the revenue. And about 5% from donations.
The downside is that ad rates are DROPPING pretty quickly, ad-block usage rates are increasing rapidly, some browsers block ads by default now, etc. So I'm trying to get off of ad dependency.
I'm thinking in the future a Patreon funded project or project with additional SaaS component will probably fare better if you traffic is at least medium size (~50k/mo+), and comprised of repeat visitors.
I also have eBooks, which despite the rapid increase in popularity of Amazon authors, seem to be doing well. My most popular eBook is bringing in ~40$ / mo on the 35% plan (I can't use the 70% plan because someone stole it and uploaded it elsewhere). The rest of my eBooks are bringing in ~$20 total. If you have expertise, and strong communication skills - eBooks may be a good route to go down. Leanpub offers higher % rate, and I've seen some technical authors make a killing there - might be a better option.
As far as stocks go, I'm all invested in Vanguard which seems to like tech stocks - so not so great this year. The high-dividend yield funds are probably the way to go in 2016 since growth growth isn't so hot right now.
I would stay away from IoS & Android because app discovery is messed up, and you need a marketing budget in most scenarios to make it big.
- niche sites with Google ads is a fading path, but still can work if you hit a good market or produce evergreen content
- selling niche e-books through Amazon or direct seems to be a decent option, but is a lot of work unless you can produce quickly and have a feel for the topic
- apps are dangerous because discover is nearly impossible. If you want to make apps, make quick little ones because the likelihood is that you will make $0 on any one app
My personal opinion is to make niche B2B tools. There are a million little inconveniences that small businesses deal with. If you find the right niche you can charge way more than a B2C product, deal with way fewer customers and charge extra for "custom" features and things like that. The trick is to find a business problem worth solving. The best way to do this is to find someone working a job and drilling them about their work flow. It's amazing the stuff that can be automated that people still don't recognize.
There is one guy who was blogging about a simple scheduling app that let 1 man operations (like barbers or chiropractors) simply text the app appointment details and it would automate putting them in the calendar. It's a great little business because scheduling is a big pain point for these tiny businesses but no one addresses it in a humane way. A good way to make $ and while also producing useful things for the world.
-Private labeling on Amazon using FBA (Fulfillment by Amazon)
I currently earn some passive income (~$1000/month) by selling products on Amazon. Amazon FBA is great because you just send all the products to Amazon warehouse and they will do the packaging and shipping for you. If you shipped out all the items yourself, it wouldn't be so passive. But since all my items are currently at Amazon warehouse and everything's being shipped by Amazon, I spend little time at the moment.
A summarized process will be1. Sign-up for Amazon seller account 2. Find an item to sell on Alibaba3. Purchase the item, receive, check, and send to Amazon.4. Perform SEO for your product page5. Repeat 2 - 46. After some success, switch to Amazon Seller Merchant Pro.
The most difficult part wasn't finding the right item, but rather promoting the page. Ranking my product will involve tons of keyword research, pinning everything relevant on Pinterest, and revising copy-writing.
Once I start selling about 10 products/day for a single item, I'd move on to a new product. The best time to start probably is NOT at 3rd or 4th quarter. You want to have steady sales by 3rd quarter. Because if you do, you will experience some shockingly crazy sales starting November lasting until early January. If I now sell 10 units/day for product X, I was selling 100 units/day starting late November. I regret not stocking more items, but it was my first year doing this and it's a lesson learned.
niche sites and blogging have not panned out for me (yet). I feel that's more a lack of time/effort on my part. A test effort showed me my niche could work, but I just haven't committed to really getting it rolling.
I'm also a software developer and have a few service type sites up my sleeve. My thinking (as yet unproven in my own life) is that relatively simple subscription services that "do one thing well" and can be marketed to businesses and government agencies can earn well with minimal ongoing investment. The trick there would be to automate as much as possible- especially support- without sacrificing quality, and periodically dedicate resources to keeping the technology current (easier said than done, I know)
It's hard to balance a current "non-passive" job, family, and side passive gigs, but it _can be done_.
There is an inexhaustible supply of middle class people wanting pictures of their dogs painted and they are prepared to pay proper art prices for competent or in-style renditions of their dog in some picturesque scene. Since we are not dogs* and are people, poor painting is not so obvious and efforts get well received.
On the back of paintings-of-dogs it is possible to also paint your own stuff. May not be entirely 'passive income' but holding a brush isn't hard and you don't have to work in an office from 9 to 5 for the man.
*on the internets nobody knows you are a dog.
I believe it's at the peak of what it can earn. Also about 25% of users have adblocker.
I can spin out cloud servers in an instant.. but I have to wait days for my proxies to be activated.
Now they moved to cloud and didn't do any 50% off this year.
Just started https://wormhole.network and still putting some more money and time to add an API (coming very, very soon!), but I'm pretty sure it will take off if I manage to promote it properly. The product itself is pretty awesome, probably unrivalled and the possibilities endless.I have a lot of features in the backlog and will be adding those based on user feedback.
This is not fully passive, but the income is not a linear function with the invested time, which ain't bad either.
Most schemes I see here and elsewhere require a lot of investment (of time mostly) upfront, and then often also ongoing attention so the scheme keeps working.
I always wonder if software products are really the way to go. Getting initial traction is seriously hard
Sit back and enjoy the dividends.
That definition would include 'a job' so it seems incomplete.
Alternatively, ask around for a good hedge fund.
-AI stuff like http://predictor.ai
I moved from algorithmic optimisation and old fashioned stats and computer science into data science, I was mostly shoehorned into it back when it wasn't hot.
The money is ok, but the problems you solve tend to be extremely inane and unfulfilling, mostly having to do with clicks, products, and how to divert people's attention to generate revenue. Sometimes I really feel I am just contributing to the evil of the world.
There is an emerging market for data science into energy, one of the few industries where you can do some good. I have been trying to move into it but seems DS is extremely tied to web and finance...
I would stay in physics if I was you, it is an intrinsically beautiful science along with mathematics.
Disclaimer: I will leave the field soon and dedicate myself to bug farming, among other projects.
For one you'll have less to learn to catch up (ML = prob theory + modelling skills). Also "data science" is a much broader skill that is in demand in many industries, while to apply your modelling skills to finance requires that you join one of the dirty banks, dirty hedge funds, or other dirty system construct.
This is a good book to have on the shelf: https://www.cs.ubc.ca/~murphyk/MLbook/
also on topic http://p.migdal.pl/2015/12/14/sci-to-data-sci.html
But maybe that's not your thing, just putting it out there as some of the biggest and oldest vfx studios are in the SF Bay, namely Pixar, ILM, Dreamworks, Tippett, and well honestly little young studios might be interested too.
www.creativeheads.net Is a clearing house for all kinda of vfx and games jobs.
The advanced search functionality to combine items from multiple lists into a single view is my favorite feature. The keyboard shortcuts, quick entry and iOS/Android apps make it so that it's always easy to input something into my trusted system, whether I'm near a computer or on the go.
 https://www.rememberthemilk.com/ http://blog.rememberthemilk.com/post/116665489183/guest-post...
Triage everything that comes into your (e)mailbox, Slack, whatever. It's the deciding what's actionable and what's not that makes your GTD work. Get the info you need from those inboxes into a single filing system, and stick to it.
Mine is OmniFocus, your mileage most likely will vary.
The real power though comes from memorized custom searches, that filter out everything except what you're currently interested in.
Their main product is their website and iOS app, but they also have an API & third-party developers making clients. They have an official Android app, but I much prefer Ultimate ToDo List on Android. They have a Mac menu-bar app as well, but I prefer to keep the website pinned in my browser instead. (I would LOVE a native Mac app of the calibre of Things / OmniFocus that fully supported Toodledo & had offline support, though.)
I also found an article with a more indepth look at Toodledo & GTD 
Ideally we would have a digital system that works with our own unique way of thinking. Until then, paper sucks but it's the best.
Why do you need to keep a backup? A good analog system doesn't need to be inefficient. If you can stumble upon the right setup it should be plenty efficient, unless you can build your own digital system.
Digitally, I juggle Keep, Evernote and email, so no I never quite trust one system. I wish Evernote had a Keep-like dashboard where you could see multiple notes.
Unfortunately it is not well-maintained in terms of updates... hoping it will see some love eventually...
Honestly, it might not be the best but it works and works well for my needs.
Also it can sync with your phone which is pretty nice
... with all files sitting on my home server, accessible over SSH via private key authentication only, synchronised with Unison on Linux, FreeBSD and Android.
So it's not perfect. If you broke into my house, you'd have the files. Ditto stealing my phone, or loading malware onto my equipment, etc.
But it's pretty solid; I'm comfortable with the tradeoff between security and convenience it represents.
Plus, org-mode agenda view is to die for :)
How have you asked?
Can you make a short list of 610 senior individuals in your company that you can get access to? These might be Director or VP types.
Ask them (in-person preferably) if they have any projects or assignments you might be able to assist them on. Tell them you're reaching out, looking for a new challenge and professional growth.
They will likely welcome your initiative and assertiveness. And you might be surprised what new opportunities this creates for you.
Ultimately, changing companies and moving away is easy. But the challenge of raising your visibility and getting career traction doesn't go away. You can get what you want, by helping others get what they want.
Getting work you like generally means something that is challenging, but not overwhelming, in a place where it's safe to make mistakes. Make sure you go in knowing what you'll be working on. This is a lot easier in a small co.
Consider the utility of the product you're making: Is it a net plus for the world? But be realistic. It's the nature of capitalism that most are in it only for the money. If they claim to be about changing the world, you can ask for examples where they went above and beyond for their employees, community, or customers.
On finding a company with good people, do your homework, starting with glassdoor. Avoid any company where more than a few people criticize the CEO or work-life.
For the rest of it, the hygiene factor that matters most is probably commute time. Get a gig where you have some balance in your life, or at least aren't wasting three hours a day going back and forth.
Finally, ask yourself if your expectations are realistic. 19 is pretty young to be disillusioned.
Oh, And see PG's Startup School lecture. And really think about going back to school.
Go to Hired or Indeed Prime, list yourself, and watch the offers come in.
This is your first full-time job, right? Some jobs are good. Some jobs are good for a while. Some jobs are never good. It seems like this one was good for a while.
I suspect that as the youngest FTE, there's a lot of internal politics around promoting you. Possibly it involves you not having a college diploma (I assume you don't). So leave. Go somewhere else, where your talents will be recognized.
Incidentally, a friend of mine is 21yo, was hired at 19 as a full-stack dev at his fast-growing startup in SF, promoted, and is now leading a team. I'm sure you guys would enjoy meeting each other. Email me (email in profile) if you want to be connected.
You're definitely smart enough to know a sweeping assessment of siliconvalley based on a single, isolated sample is a mistake.
Since you are talented enough to get hired by a "big tech company" insilicon valley at the age of 19, then you're definitely talented enoughto find tons of other work here. There is _TONS_ of fascinating andrewarding work being done here.
Before you go hopping into a new job, realize that nearly every task,paid or personal, can occasionally feel like an unrewarding slog. Heck,even contributing to fun stuff, like open source or HN, can occasionallyfeel like a frustrating struggle, annoying hassle, pointless toil, orthankless grind. When those lackluster moments happen and you can take ashort break, just divert your attention to something interesting for awhile until they pass.
Also before you go hopping into a new job, have you been rewardingyourself with spending free time doing interesting side projects?
Is there any technical itch that you've always wanted to computationallyscratch?
If you pick the right itch, you may end up creating your own startup.As John Belushi once said, "If you don't like the news, go out and makesome of your own." The same applies for jobs.
Of course, having a full time engineering job will keep the lights on soto speak, and it gives you the opportunity to spend your free timeexperimenting on side projects you love. Lastly, don't forget that theBay Area has _TONS_ of different types of user groups, maker sites, andenthusiast clubs with regular meet-ups. There are also plenty ofconferences and professional groups here. All of these groups, places,and events are a humongous asset to the curious and are thoroughlyenjoyable.
Silicon Valley is what you make of it.
I do have some advice that is still good, though.
It is: save up some money.
Being broke sucks. I don't advise it. If any of your plans involve "Be broke for a while," I would advise against that plan.
That's all. I wish you good luck with the rest of it. It's just that the problem you're complaining about is an ambiguous one that I can't help with very well from here. But the one I mentioned is not ambiguous, so I mentioned it.
Look outside of your company to build up a network of allies. There is a variety of opportunities, so you need only make an effort to get out there and socialise.
The fact that your peers are promoted from around you suggests that you might be showing you negativity at work. You might want to consider that the same negativity could be making it harder to cultivate friendships.
I agree with the other posters. Look for a better offer. In my experience, big raises or promotions don't really happen. I've gotten my two biggest salary bumps by changing employer.
Things aren't always beautiful and rosey. You will find eventually how to take a longer-term view of the world, to slow down, to start enjoying the day to day by living it. Or you wont.
In exchange, like a kid you have free lolipops and you have a nice kindergarten kind of ambiance, where immaturity and attitude prevails. You are distracted from thinking.
I faced your situation. I find modern IT mildly innovative nowadays and promises made at hiring often never held, IT culture often toxic. Especially the lack of critical thinking.
Take some vacations. Whatever you plan next. You may have good reasons to be disillusioned. (or none, the thinking is up to you)
Sometime just enjoying life is the right solution to a lot of problems. Because, fuck the IT. Your life and the search for your own happiness matters more than anything else.
By being honest, you are proving to be mature: trust yourself.
EDIT: Ask HN: How happy are you working as a programmer?https://news.ycombinator.com/item?id=11009956
 - http://freemind.sourceforge.net/wiki/index.php/Main_Page
Wiki gardening is a thing, though, and without it, doom will follow.
At my last job we did the same thing, but I heavily customized the wiki to include endpoint testing, DB access, context-sensitive autocomplete, etc. It was pretty cool.
I personally enjoy the knowledge of having solved a real (business) problem for real people, and being appreciated both financially and personally for this, even when the actual tech going into this isn't very complicated, and especially, doesn't tick off a lot of "hip" boxes.
I have also met good people who do not thrive in these circumstances, so it's hard to give generic advice as to what might make you happy.
I would suggest you leverage your interest in web-scraping and use it to customers in what ever niche you believe you can sell them something.
Collect your "beta" users through web-scraping, figure out a way to reach them at scale. Build/sell a product they want (you can leverage your information advantage to figure out what this is)
This is personally what I do and have created/worked on many bootstrapped companies over my career. Niche for me is fairly irrelevant, as long as I have a pool of interested customers ahead of time. I primarily use my information advantage to figure these out.
The additional skills you will need is:
* learn to think as a "user/customer"
* minor copy-writing skills (or at least understand what shitty copy is and how to improve it)
* Data mining & Analytics, Analytics, Analytics
* A/B Testing, Iterations, Incremental Improvements (see point above)
* Hypothesis Driven Development (https://www.thoughtworks.com/insights/blog/how-implement-hyp...)
My one suggestion is to avoid any projects which do not have a clear monetization strategy. If you're following my blue-print companies that don't make money from day will only incur costs as you reach your pool of customers at scale.
My personal recommendation would be to find people who are doing interesting things and talking about it in public - blog posts, conference talks, etc etc and reach out to them.
For example, Embedded World in Nrnberg, Germany provides a good cross section of industry that has embedded engineering involvement in it. There will be a similar one for telecommunications, Automotive etc.
Good luck on searching for your calling.
1. Where developers themselves are the likely product users (think Google Analytics, New Relic, Optimizely, Appdynamics)
2. Where there is a direct and immediate connection to $$$ (finance / quant stuff)
3. Generic data science platforms (Cloudera, Hortonworks, Databricks)
I think there is still tons of opportunity for industry-specific turn-key data science tools. Especially for verticals where there is a low coincidence of skilled developers with industry domain expertise.
If you find web-scraping dull don't pursue it. Life is short.
Industries that will have specific uses for machine-vision: autonomous driving cars, drones, robotics, augmented reality, internet of things
Others: crypto-currencies (specifically digital ledgers/blockchains), virtual reality, commercial space exploration, online education, voice recognition, (more as I think of them)
Tech that's already big and probably getting bigger: streaming video, instant stock trading based on algorithms,
Certainly one of those must be interesting to you. They're all pretty interesting to me.
As a consumer though, augmented reality ( eg Hololens and Magic Leap) seems like it is about to become very big, and probably utilizes machine vision.
Can you recommend some resources for learning about web scraping?
I can make 1 USD per account per month, at 10k accounts it is a pretty good source of passive income.
Damn Small Linux, a very small Linux distribution
Definitive software library
Domain-specific language, a computer language designed for a specific problem domain
The big problem is it's easier to care about the solution than the problem because coding is fun and other people's problems tend not to be fun. This leads to imagining problems that other people have and building solutions to those imaginary problems instead of actual problems. So it probably helps to start from caring about the people and then the problems they care about matter more than the solutions to problems you imagine they have.
It's even easy to solve problems that you imagine you have...because again, coding is fun and people's problems, especially your own problems, aren't.
tl;dr Do something for someone you care about that that person cares about. It doesn't really matter the person you care about is you or someone else.
Main thing is you don't have to find some bigwig, start with some informal conversation with a small player to get some perspective first.
Working on something you know is a problem yourself works great. Doesn't hurt to ask people in other fields if your other ideas are valid, and if they are you then have to ask yourself "is it worth your time to get excited bout them?"
For more of B2B ideas - You are better off talking to people directly. Mine you network. Look for conferences, meetups, tradeshows where you might find your audience
Before switching, I wondered how it would affect my ability to use qwerty. Happily, I never lost my ability to be proficient on small keyboards (phone, labelmazer, etc.) that are too small for ten-fingered touch typing. If you switch, you will be able to text away using qwerty without any trouble.
But when it comes to touch typing, can you full-on switch back and forth between qwerty and Dvorak without difficulty? I can't really give you a field-tested answer to this question. I make it a point not to touch-type on full-sized qwerty keyboards--I don't want to risk slowing down on Dvorak. However, on the rare occasions when I need to go qwerty on a full-sized keyboard, I get the sense that switching back to qwerty would be fairly easy. When I use a qwerty keyboard I'm a little awkward--I have to think about where the letters are, but I've "still got it". I get the sense that I'd be back in fine qwerty form if I continued on for a few minutes. But . . . why would I want to go back? Dvorak just flows out of your fingers, and now qwerty just seems like something from the Ministry of Silly Typing. Unless you are typing the word "qwerty" over and over again, Dvorak is the way to go.
Also, a word on control-key combinations aren't really that big of a deal. But . . . OS X gives you the option of retaining the qwerty layout for control-key combinations if you don't want to go whole-hog.
And vim? Well, h/j/k/l still move the cursor the same way, but obviously the actual keys for h/j/k/l will no longer be adjacent to each other. Using these keys to move the cursor won't be as intuitive, but can it be said that vim users are prone to whimpering about things not being idiot-proof?
Along the same vein, video/audio editing programs tend to assume a qwerty layout is being used; if the editing app you use allows you to control the playhead with "letters", expect their position to change and be non-adjacent.
Other than that, replacing old muscle memories takes some time and practice. It took me a full two weeks of half-day practice to type at an acceptable speed with the new layout.
I'm using a mac, and I mapped the caps lock key to ctrl, which is in a more natural position to press with my left pinky.
As my both hands are always on home row when I'm typing, M-x, C-c, C-w, navigation etc. all comes naturally now. I've been using programmer's dvorak for 6 or so years.
If I need to do copy-paste etc. with one hand (when using mouse), I switch back to Qwerty with one quick keyboard shortcut (cmd+shift+a for me), than switch back to dvorak when I'm done.
I added dvorak as a regularly-used keyboard layout because of cramping issues while typing. Those went away immediately and never came back, so it was a win for me.
I have one piece of advice. Change the keyboard layout on your phone to whatever you're learning (Colemak in my case). I memorised the layout pretty quickly thanks to that. (Building up the muscle memory is another story.)
- Author tipping, receive commission.
- A Pro account for the readers - subscriptions, reminders, additional content newsletter (interviews, artist sketches, tips), access to high quality images or access to live chat events with the authors.
- A monthly subscription to a printed comic book with selected (or themed) comics and share the income with the authors. My guess is that comic fans are one of those people who really like touching physical paper. This one requires more manual work, but can be offered for a higher price.
- If you gather quality authors - a paid and easy to use mobile application. You can share the income with authors based on percentage of views.
Patreon's rapidly becoming the dominant monetisation method for webcomics (right behind ads, which you've said you don't want), so for them, I'd recommend integrating Patreon really well, and doing a bunch of research into how to optimise for Patreon conversions.
For you - probably just charging for hosting would at least be worth considering. I'm a webcomic author myself, and if you developed a really high-quality platform I'd be more than willing to pay for it.
1) Everyone knows it or has touched it. Walk down a street filled with developers and you'll run into many who know or have worked with Java.
2) Apache. Apache. Apache. The saying goes No one ever got fired for using Java / no one ever got fired for using apache. Most major apache projects and libraries are Java/JVM based and the Java interface provides the best way to interact with them. Don't underestimate the pull from Apache on language choice.
3) Libraries - people have spent millions of man hours developing libraries for Java/JVM languages that aren't replicated elsewhere. Odds are pretty good if you're looking for an open source library that does X someone wrote it for the JVM.
4) Legacy Systems. Java is the new COBOL. There are billions of lines of Java code in existence chugging away around the world. It's more expensive to overhaul and replace an entire code base than it is to find or train developers to work on it.
5) People are riffing on top of the JVM. Rather than fight it, all the new hot languages like Clojure, Scala, Groovy, etc. are building on top of the JVM and taking advantage of what it gives you under the hood and the fact that the JVM has a wide install base. This reduces the likelihood Java will die in many capacities since it's being pushed into a more key infrastructure role rather than outright replaced.
Edit: fixed spelling
I've got only ever done one project in my career with it, and I found myself feeling "meh" about it, but I never hated it.
Java is about as enterprisey as programming languages comes. When a recession hits a lot of organisations tighten their belts, and a lot of programming projects get put into "maintenance mode" for a few years (with programmers and managers often being laid off).
After the economy improves companies start paying for new feature development again, fix bugs that had been ignored, and in some cases migrate TO Java from something worse (You'd be surprised how old some large well-known corporation's internal software is, we're talking 1980s mainframe age).
We won't REALLY know if Java is gaining or losing pace for a few more years (assuming there isn't another recession due to Chinese-related market issues).
Also in the Enterprise space, Oracle is a dominant database, and they have made some strong features for Java when it comes to the Oracle database. Having these features and someone you can call for support is good business and good risk protection for larger companies.
Basically, at least partly, this other answer by tumdum_ explains it:
To clarify a bit: Even if newer languages / other technologies have merits (and of course they sometimes / often do), enterprises who have invested a good amount on getting apps built using older technologies (which may well have been current / popular at the time) may have no good justification to pay the cost  redesign and rewrite apps just to move to newer tech. ROI, CYA, etc.
 That cost is not only of design and writing but also prior research and evaluation, and subsequent deployment and training, etc.
The last time Groovy made the top 20, it hit #18 in Oct 2013, but 3 months later (Jan 2014), had dropped back out of the top 50 (#32 in Nov, #46 in Dec). TIOBE said the following month "The data is produced by one of the sites that we track is interpreted incorrectly by our algorithms. After we fixed this bug, Groovy lost much of its ratings."  Just before that fix happened, interviews with the current Apache spokesperson for Groovy (Guillaume Laforge) promoting Groovy's top 20 position were published in 5 online rags (www.infoworld.com, www.eweek.com, cacm.acm.org, jaxenter.com, and glaforge.appspot.com), and all of them quickly appeared in Google's top 30 search results for "groovy programming" and remained there for 6 to 18 months afterwards. I'm guessing the same feedback effect was engineered again before the end of last month (Jan 2016), and Groovy will again start losing its new top 20 ranking.
This rapid rise then fall also happened with Groovy in December 2010. Groovy began a sudden rise from outside the top 50 when Groovy tech lead Jochen Theodorou "volunteered" his services to Tiobe in late 2010 to help them improve their algorithms. Than in April 2011, Groovy fell from #25 to #65 on Tiobe in a single month after they increased the number of search engines they monitor.
These fleeting peaks for Groovy in the TIOBE rankings (#25 in Apr 2011, #18 in Oct 2013, #17 in Jan 2016) between its usual ranking of somewhere between #51 and #100 (e.g. #82 only 12 months ago) are a bad thing for Groovy because of damage to its reputation as a solid language suitable for long-term IT solutions. Such ranking volatility gives off the stench of search engine optimization, a smoke-and-mirrors marketing tactic intended to benefit a single stake-holder, probably the person who privately owns the groovy-lang.org DNS domain.
I suggest you gather a list of companies you want to intern at and send emails to all of them. Send emails to the founders and to specific people within the company, not a generic company wide email address. This ensure your communication is personal.
Some are bound to respond, and of those that respond some will offer you an interview and of those you can get an internship. Unless you have your eyes set on a specific company - which it seems like you don't - go broad.
Apply for visas early. Make sure you don't apply to a company involved in aerospace or military projects, as these often only employ US citizens and protected individuals. That bit me when I tried.
Our team consists only of web developers, but we really wanted app that feels native, so we evaluated the tools and came to conclusion that react-native will suit our needs.
I am not well informed about mobile app development in general but I found experience with react-native quite good.
Debugging process is quite the same to web development, open chrome go to sources tab and set breakpoints as you wish. Use CTRL+R to refresh the app the same as you would on the webpage. Performance is OK but generally you have to be more careful than on the web. Implementing `shouldComponentUpdate` can lead to drastic performance improvements.
I really enjoy development with react-native and would recommend it to any webdev who want to try app development.
Pay publicist > get flowery article > receive IRL reputation points > profit
Intercom is a cross between a CRM, Marketing Automation, Support and Live chat. There are open source alternatives for each of these product lines