tl;dr:Try to build other stuff.
I think a part of the problem is working in an interesting domain. For example, a friend who works in a financial domain never really sees the big picture, but works on a quality of service algorithm to speed up a trade.
Perhaps getting bored is a calling to see what we really love in life.
2. Get in touch with owners/managers in your chosen area.
3. Take them to lunch and discuss their business. Watch their face and when they show you a pain point, try to pinpoint the cause.
4. You should discover more than a few problems they would spend money to have solved if you talk to enough of them.
5. Follow up with an email thanking them for their time and mention again how you have been giving some thought to a particular pain point. Try to find an article, software package, etc that attempts to solve their pain point and send them the link.
6. Build a true MVP (should be embarrassing, yet offer value to them), and follow-up with an email. Tell them you have been thinking more about their problem and wrote up a quick dirty app that might help them. Offer to demo it for them. While demoing discuss how much their pain costs their business.
7. Iterate based on their collective feedback.
8. Based on the discussion about pain costs, come up with a value-based price for your solution.
9. Refine your MVP, follow-up with another demo. Sell them a subscription to your solution. It may still be rough, but you should be able to demonstrate value and savings compared to their pain costs. CLOSE THE DEAL.
Just a thought - Good Luck!
A lot of people would like to have X feature, X website, X software. Would they pay for it? Ask that question. For what would you pay for right now?
For example: I am starting to selling goods. I'd like a place where I put all my good purchases from ebay, alliexpress or wherever, and I can track it, see when it will arrive, how much stock I have left, etc.
I'd say flip it around, think about what you're trying to achieve and do the math on all the options to solve it. Pre-framing it as a dedicated rental versus a self-managed purchased is unnecessarily narrow.
With collocation you'll end up responsible for all of the hardware and still be dependent on remote hands so service could still suck and likely get much worse.
System Administration is hard and unless you have the $$ to pay one full time, rent the HW.
Most hosting companies will suck if you don't have much business with them. I worked for Rackspace years ago and bigger fish always get much more attention.
I do some consulting work now and find myself on calls with Hostway pretty often and they seem to know their stuff. You might check them out.
Shoot me an email email@example.com I am developing a service specifically for startups, that you may be interested in, I can probably help.
I lol'd, but I did not respond.
As it stands, I can keep my queue full via sites like High Scalability , Research at Google , Arxiv  and a long list of "Architecture at X" blogs that post sporadically.
On HN I probably spend more time scanning the "new" queue here than the Front Page. Plenty of quality submissions never gain traction.
Obviously, that's just content. I don't have a solution for the lack of community.
0: http://highscalability.com/1: http://research.google.com/2: http://arxiv.org/
You can find the HN source or create your own. It's definitely worth a shot.
Edit: Not sure they support Australia, actually.
Haven't used them myself but seen some positive reviews for them.
Commission is high compared to alternatives but they handle fraud and invoicing. Their "front-end" pages are highly customisable.
I work at Factual, which has an unlimited vacation policy. The amount of vacation that people take varies greatly.
At the high end, I've taken about 8 weeks of vacation during each of the last two years. I tend to do some work during vacations, however, so it's more like 8 weeks abroad in which I happened to squeeze in 4 weeks of work at odd hours. I think a few of my coworkers also take 4-6 weeks per year. Most of these people are pretty disconnected when they travel.
On the low end, some of my coworkers don't take vacations at all, or take one week per year and then feel guilty about it. I understand their guilt about as well as they understand my wanderlust =).
Things that affect how much vacation people take:
* How long you've been at the company. Someone who just joined is much less likely to take a vacation than someone who has been around for a few years.
* Your place in the company hierarchy. More senior people seem more comfortable with taking vacation than more junior people.
* Schedule pressure. If you're working on a huge project that will take 6 months, you probably won't try to take a vacation during that time.
* Being the only person on a project vs. being one of many. If you're the only person who knows how something works, you tend to worry a lot about what can happen while you're gone.
* Personal budgets and travel preferences. If you like hiking trips, 6 weeks of vacation won't set you back very much. If you like overwater bungalows in Tahiti and private cruises in the Galapagos, then you need to have a lot saved up to take more than a few weeks off every year.
* How much you like to take vacations (or how much you love your work). Some people like work enough that they don't want to take vacations. Others don't really care for vacations, so they might take a personal day or two but not go on longer trips.
* Your, ahem, cojones. Generally, if you ask your boss reasonably, you will get a "yes" 90% of the time. A lot of people are afraid to ask.
When our unlimited vacation policy was established, it seemed like people were waiting for their peers to set the boundaries of what was appropriate and what was not. Over time, I've realized that people are just different. People who don't take breaks don't seem to change their habits even when they see others take frequent vacations. Conversely, people who take frequent vacations don't seem to tone things down in the presence of non-vacationers.
However, in a healthy company culture which encourages employees to take time off, it can be great. Particularly because long trips are really a different beast than short ones, and it's hard to do a long trip with 15 vacation days. Solution: take 7 vacation days one year, and 30 the next.
If needed I take my laptop and put in any required work remotely - that's great when you work on web tech. I do this when I know my days aren't going to be busy, such as visiting family. If I know I won't have time or access to the net on a trip I let everyone know so they can expect I will be disconnected.
I've taken about 4+ weeks off so far this year, 2 of which I was working remotely, and will be going to Burning Man this year for a week. I'll probably take some time off in December.
The key is to make sure you are being productive and adding value when you are at work so you don't feel guilty taking time off. When you plan off time, make sure there isn't anything crucial to the business happening at that time. Let people know how you are going to be accessible (IM, email, ability to commit code) or if you are off the reservation.
There is a certain amount of uncertainty and self-inflicted guilt about the whole thing; whether you are taking less/more time than your peers. I guess that's the price you pay for this perk.
There are any number of ways it could be abused, of course. But the thing to remember is that your coworkers (and boss) aren't blind - if you're using the policy to create a 4-day workweek, and not getting stuff done -- someone is going to say something.
At OKL, i suspect the policy is just an extension of their "ok, we are all adults here, so just act in the company's best interest at all times--we don't want to work in a soviet tractor factory, we assume you don't either" (my own words, if we had an employee handbook, i imagine it would say something like that).
at other shops, i have heard that the motivation for unlimited vacation is a little less wholesome. The idea is that use it to recruit, then once in the door, the manager can of course limit the employee's holiday because his approval is required. So there's very little to lose, and a lot to gain; when the employee is terminated (resigns, fired) the company does not have to pay out their unused vacation, which is often not a small amount (eg, i suspect a lot of people carry around 2 weeks).
One company I know has introduced a bonus for taking a set minimum number of days to try and make sure that their employees are taking a decent amount of holiday each year. So for example if you take 20+ days off in the year you will get a annual bonus of 1000.
The biggest thing has been to make sure that you aren't leaving anyone hanging. This is probably a bigger deal for some departments/teams.
Few things I do differently now and has helped me a lot:1. I focussed on side projects as a way to blow-off steam - this helped me a lot. (Looks like you are already doing it) 2. Spice up your work environment - good audiobooks always help me stay sane on those long coding days. I usually choose some good light-hearted reading rather than the intense novels.3. I allocated days to work on my side projects during the work-week. ThIs meant I had to get creative around how I schedule my work-work. Eg: Sometimes I had to work long hours (10+) to finish up with my work schedule.4. Switch off day - usually on Sunday I tend not to do anything work related.
I should add that my educational background is actually in electrical engineering, not CS or software engineering. So it wouldn't be a super drastic change of career fields.
I've also wanted to become more independent of full time employment for a while. Ever since I graduated college actually. But it took me a long time to actually figure out how. I wonder if suppressing that desire has resulted in me ending up as a lousy employee.
But I was burning out. I changed careers (within tech) and became a Scrum Master, only to find that I started to miss coding and problem solving, since those skills were rarely in use.
Then, I moved into consulting. I've never looked back. I try to balance multiple clients at the same time, because love having the different challenges these clients require. All of a sudden I'm focusing on a core competency (DevOps in my case), but I get to see the world from Python, C#, Java, and even Physical Hardware scenarios. But that generalist approach doesn't work for everyone.
Try different things. See if you can take a couple of hours a week to poke around with new technologies, or industries. Trying to take the bull by its horns is the key.
their lack of support for encrypted password transmission for their mail server
Unacceptable. Get the heck out of there before you lose something vital.
That's the thing about being shipshape. Why do you focus on getting the little things right? Because the attitude you bring to the little things is the same one you bring to the big things. And because, especially in security or reliability, big problems are built out of minor problems that accumulate or escalate without warning.
Beyond that, there's really no excuse for not using SSL everywhere now. If a site has user data, or requires any sort of login, it should use SSL everywhere.
Perceived rarity has nothing to do with it! A password is being transmitted in plaintext.
If forum passwords weren't a target then why are so many website databases a primary target lately? They steal the crappy, unsalted hashes and emails and go to town at other services where they are likely to use the same password.
I can't believe we are having this discussion!
The tough thing is that not too many years ago it was perfectly normal to not use https for logins into anything except ecommerce, online banking, and serious corporate and government stuff. Even Gmail didn't default to https until a few years ago - long after they were huge!
We also have to remember that SSL certificates suffered a lot on shared hosting due to dedicated IP requirements (until SNI) and just plain being difficult and confusing to setup. That's a huge barrier for Average Joe that wants to setup a forum about race cars or Average Jane who just wants to manage her own website via CMS.
So now we have tonnes of legacy systems and people who simply haven't gotten the memo yet. All of which is to say that yes your host should use SSL, but it's going to be a long time before you see this practiced by the majority of websites. I'd say your host might be the norm instead of the exception.
Unfortunately their attitude might be indicative about how they think about the rest of their server security though, in which case you may as well move to a host that takes things more seriously.
After years of working with dedicated server companies I found that little things like this did tend to lead to patterns of bad security, bad backup systems, bad monitoring, etc.
* my website is down for >n minutes * my car needs (an oil change, new tires, etc.) * my credit card balance is within $x of $n * Justin Verlander is starting, 12 hours in advance * my softball game is rained out (and notify my entire team) * we've only got enough coffee grounds left for 2 pots * my (bus, train, flight) is running >5min late
Would the service tell you what time it would be raining/not raining the next day?
Or would it alert you the first day that the weather told it that it would be raining the day after?
I'm not "angry" about it, just bewildered.
(I'm also a hiring manager; we simply don't work with recruiters.)
I'm definitely one of those people described in XKCD's nerd sniping strip. If the sample problem actually flicked that little nerve in my brain, you might get a response from me just because I couldn't help myself. But here's the kicker. You'd only get my solution as long as I could email it directly to you instead of the recruiter. At that point, even if I'm not interested in working for you now the sample problem you wrote has sparked some interest. Now, I'm interested in striking up a relationship with that might not amount to much at the moment, but may prove fruitful in the future. If we've gotten this far, I'm not interested in dealing with the recruiter any more.
Also, I'm not sure all interviewers consider it fantastic if you ace the puzzle if everyone else who works there barely finished it. On the other hand, if I was guaranteed to get an offer by completing the puzzle, it would change my mind. But most companies that wants programming tasks solved assign such a low value to it and values other factors much higher that it just isn't worth the time.
These are the kind of candidates you want? The ones who are willing to have their introduction to a future employer be an annotated answer to a "fundamental skills" problem? Instead of, say, a five-minute chat that touches on such issues as "who am I?" and "who are you?" and "what's the job, really, because the recruiter obviously doesn't know?" and "why might I be unusually happy and successful in this job, and also fun to work with, and therefore worth a lot of your company's money?"
A five-minute programming exercise that you spend more than 5 minutes designing, that you grade yourself, will be about the most you can do before you start turning off qualified applicants, at least at this early stage. If I want to spend 3 hours on a programming challenge with no guarantee of payment, I can certainly come up with more enjoyable ways to do so where I don't get constant reminders that I'm taking too long.
The best time for the programming challenge comes after the initial "does this person look like they fit into our organization?" set of interviews. Those interviews not only screen out a large percentage of your pool, but also sells your organization to the applicant, incentivizing them to take longer to get the job.
One concrete suggestion:
Develop the following habit. Whenever you are confronted with an unpleasant task X, there is a moment where your mind starts searching for other, more pleasant things to do. This is the moment where you have to implant the habit of asking - not yourself, but an imaginary judge:
"If I defer task X, will it become easier later?".
For some tasks, this may be true (e.g. taking out the trash is easier when you're heading outside for work anyway). For most, it's not.Use this question as an arbiter and follow its verdict.
And when you completed an annoying task, rejoice in the feeling of relief and accomplishment (maybe not the task itself was hard, but overcoming the unpleasantry was), and remind yourself of this feeling the next time.Rinse and repeat.
One more abstract suggestion:
You have probably heard it a thousand times from your teachers, parents etc. - "You could accomplish so MUCH, if just you would STRIVE for it..."You believe it yourself, talking about your "full capacity".
But it's not true. Or at least it's the wrong perspective, allowing for wishful thinking.
The current state you are in - that is your full capacity. More you do not know, because more you have never tried. Or, more drastically: More you do not have, because more you have never proved.
Maybe that's even the reason you are not improving your chore-handling abilities after all (if you allow me this unfounded speculation): You are afraid of hitting your limit (a.k.a. failing) to soon, realizing that you're not that capable after all.
Luckily, there is no such thing as a fixed, inate capacity. Your capacity will definitely improve when you start taking yourself seriously and stop generously sparing yourself the chores. Prove it to yourself what you really can do.
It always risky to advise a person you never met, so take this with a grain of salt. Hopefully it's useful to you.
I have one piece of advice - one technique that I got from a cognitive behavioral therapist that helped me. It's pretty simple:
Pick a task you don't feel like doing. Set a timer. 10 or 15 minutes. Work on the task. Do not worry about the end result, or getting to a "good stopping point" or anything. When the timer stops, stop working on the task. Play another game or watch another YouTube video or something. When you feel like it, set the timer again and repeat.
The trick is that if you aren't worried about finishing the task you want to do, you can do the work without that feeling of discomfort and dread that makes you want to stop and distract yourself with something else.
The first time I did this technique, it was actually with dirty dishes and not work. I used to let them pile up because I just couldn't deal with it. I set a timer for 5 minutes and washed the dishes. It was a carefree experience. I walked away at the end, but then something funny happened - I soon wanted to go back for another 5 minutes. Pretty soon I finished the whole load of dishes and it wasn't unpleasant at all.
1) don't waste cognitive energy on silly tasks (games, arguing in comment threads, etc.)
2) practice exercising willpower - it's a muscle, you can train it to be better. Start by forcing yourself to complete a routine every morning (the trick with habit forming is to not give up after you miss a day.) examples of habits to form below.
3) look into mindfullness meditation - this can help you identify distracting thoughts as they arrive and practice ignoring them.
Meditating is a good habit to form as practice, and it will also help you get better at habits. You could also exercise on a schedule (and record when you do, including how heavy you lifted/how fast you were running). Eventually, with a stronger willpower-muscle, you'll be able to choose the fruit salad over the cake, even when you've just spent your 7.5 hours a day coding.
I've not found pomodoro to work for me as an easily-distracted person, it's better when you're prioritising work tasks (e.g. 25 code vs 5 email) and even then, 25 mins is too short for good programming "flow".
This is a hard problem, everyone has trouble with it. Good luck!
 http://seriouspony.com/blog/2013/7/24/your-app-makes-me-fat HN discussion: https://news.ycombinator.com/item?id=6124462 )
 http://www.amazon.co.uk/Mindfulness-practical-guide-finding-... (US edition: http://www.amazon.com/Mindfulness-practical-guide-finding-fr... )
I dont think you are lazy; I think you are afraid to fail.
Thus far in your life, you've had it easy. SAT's, Valedictorian, probably started programming when you were 12. You have seen your peers struggle to no end with this stuff, yet you've always been able to skate by, and still be better than most. At 21, to be making 130k a year is god damn impressive, not so much for the "money", but for what the money represents; knowledge and your skill level of your chosen craft.
The problem is, again from my perspective observing from the outside, you don't start something because you are afraid you are going to fail. You are afraid, that for once in your life where things have always just come naturally to you, that you will try something new and just fail miserably at it.
I don't think this is a matter of laziness; I think that you just think it is laziness, so you casually write it off as such without really examining the root of your problem.
I could be wrong, but I have seen this before. My sister sounds a lot like you; the oldest child (already the family favorite from that fact alone), perfect grades her whole life, captain of the cheerleading team (I shit you not), Valedictorian, great SAT's, accepted into some art school. She is very smart, makes 40k a year as a copywriter for some mucky-muck agency in LA. She talked to my mom about starting her own (my mom's suggestion) and her response was (surprise, surprise!) she doesn't want to be a failure because she knows most businesses fail.
Then, on the other hand, you have me. I am the only boy in my family (3 sisters), ADD, suffered from bad grades while being surround by 3 straight-A sisters, arrested at 17 for making a drug deal (long story), in some ways, the "black sheep" of my family.
I started an eBay business in high school, which made some money. Started a business in college selling hempseed oil skin care products, flipped inventory, invested the money into a side project/start up. Outsourced the development. Got interest from Nordstrom's, Whole Foods, Landry's, and Black Angus Corporate (I think a PE firm owns them) etc. Realized I loved this so much, told them I had to put it on hold, dropped out of school, and enrolled in General Assembly WDI in Santa Monica (was accepted into Dev Bootcamp, my mom got cancer, stayed closer to home, long story) and will resume operations once I can build the site from scratch myself. It's a B2B site .
What I am trying to say, is don't be like my sister. Your "perfectionist complex" seems to be the problem. I have failed, been called every name under the sun from my own family, and everything else in between, yet I keep going.
Failing is not that big of a deal; in our industry it is a badge of honor if done correctly. Don't be that guy, who in 20 years, regrets the things he has not done, instead of the things you have done.
My advice for this; fail. Fail hard. Go out and pop your "success cherry", and get the fuck out of your comfort zone. Stay humble, stay hungry, keep hacking and go change the fucking world man. Stop feeling sorry for yourself and just go do it. I mean really....what do you have to lose?
As someone in a rather similar position (my life has been fucked up in so many ways from procrastination), one tip I can give you is to get rid of this mindset.
I feel horrible whenever I waste lots of time, looking back on how I spent my day, thinking "what the hell is wrong with me?" But the thing is, that attitude feeds much of the procrastination. I am an odd mix of being a total perfectionist, and really lazy, so it turns out that whenever I'm faced with a task that I don't really want to do, I'm quite adept at rationalizing ways to avoid doing the task. I think about possible roadblocks, or pretty much anything that would keep me from attaining my sought-ought perfection, and knowing that I'll have the same strong negative reaction later on that I always do, I just won't do it.
If you beat yourself up over procrastination, you're just subconsciously teaching yourself to not even think about whether you're procrastinating or not. Whenever you try and shift from unproductive tasks to work, it's much easier to just stay with the short-term dopamine kick of reading the internet or whatever, rather than dealing with harder decisions about what you need to do in the long term to be happy. Yes, this is backwards. Your subconscious is not very rational...
So, from my point of view, just do everything you can to recondition yourself to not hate working, and to not hate procrastination either. Just try to feel the bit of fulfillment you can get from writing code or whatever, basically just getting your shit done. Have patience with yourself, infinite patience, and know that it takes lots of work to get where you want to be, but it's worth it. You're the only one that can do this.
BTW, if you're like me, a perfectionist to the core, consider that this comes from a deep-seated insecurity, a part of your brain that tells you that you'll never be good enough. At least, that's the way it is for me, and it's been that way since my childhood, as far back as I can remember. On this front, I'd just try to evaluate your emotional well-being in the most balanced and unattached way possible. Get help if you feel like it. As others have mentioned, meditation can be amazingly helpful here, and exercise too. Unfortunately, they're both quite prone to being procrastinated on.
Paraphrasing pg, going in to work and wasting 90% of your time is like getting uncontrollably drunk at lunch. It's very bad habit/behavior/addiction. So first of all, take it seriously.
Here's some things that work/have worked for me, in no particular order. They all interact and work best in bunches. None have cured me. All have helped.
1. meditation - many meditation practices develop your ability to prevent your mind from wandering. Letting your mind wander is a big part of procrastination. It also helps with patience which is also important.
2. Recognize the impulse and address it - This is very complimentary to meditation. You sit down to do a task, then your mind looks for some sort of procrastination (reading, games). Recognize that feeling and feel it. Don't fight it, just experience it for a few seconds. Then place your hands flat on your desk. Your feet flat on the ground. Straighten your back. Breath deep 5 times. The impulse should pass. Tweak this as you like as long as you recognize the impulse, experience it & have a little ritual (sitting straight, breathing, etc.)
This sounds like hippy dippy bullshit said out loud, but it doesn't feel half as lame when you do it. It is very effective.
3. Collaboration - If two people are at a computer, procrastination does not go on for hours. More generally, try to seek out work less procrastination-inducing.
4. Do work in small batches - Take 5 minute breaks every hour. etc. This increases the feedback to you that you are procrastinating.
5. Talk about it.
6. Accountability mechanisms - Your ability to hide is an enabler. Try timed screenshots sent to a friend. Twice daily 2 minute confessional phone call to a friend. Mirror your screen someplace it can be seen by everyone. Coaching sessions. Lots of options. Quirky is ok.
7. Drugs - ADD medication (eg ritalin) can help.
8. Sleep - Less Sleep = More Procrastination. Maybe you need more sleep. Maybe you need 10 hours. everyone is different. Try getting 10 hours for one week and see if it helps.
Don't delude yourself into thinking that you're "talented" or "gifted". You're a product of your history: if you spent a significant portion of your life playing DOTA, you're a DOTA-head. In your case, you seem to have spent it trying to get people to view you in favorable light. It's as simple as that.
You're missing the big picture: if you spend 3 hours writing code, and 8 hours playing games, which activity do you enjoy more? Why is that? If you pick up saw and find that you're absolutely terrible at sawing wood and cut yourself multiple times, would you enjoy that activity? OTOH, if you go out and play football (or something you've been practising for years), and manage to score many goals for your team leading to victory, would you enjoy the activity?
Your discontentment arises from a simple mismatch between what you want to do and what you are actually doing. You apparently wanted the $130k job with 3 hours of boring work, and to get by in life (or did some alien drop you into this world while you were unconscious?). What is this sudden crisis about not "changing the world"?
I have nothing to say of any significance, and the only "answers" I have are tautologies. Maybe you can try attending some inspirational talks, reading self-help books? No, I don't mean that with any condescension whatsoever; figure out where you want to invest your time and invest it there.
Most people associate ADHD with kids who struggle in school. But highly intelligent people can have it too. It still holds them back from reaching their potential, it's just that their potential is much greater.
Here are some things to ask yourself:
* Do you also procrastinate non-work things such as buying gifts, paying bills, calling people back?
* What is your home like: Do you have a lot of half-finished projects, "piles", or chores that never get finished?
* Are you always running late because you are busy doing other things, or underestimate what you need to do to get out the door and get to your destination?
* Do people tell you that you frequently interrupt others when they are talking?
* Would you describe yourself as a risk taker and more prone to high adrenaline activities? How the friends you keep?
* Are you only able to focus with the help of caffeine, guarana (eg, Vitamin Water Energy), or other energy drinks?
* Do you use nicotine to relax or be more focused? (If so, please stop and see a doctor.)
* Do you use alcohol, not to get drunk or for the drink itself, but as a way to unwind or slow down at the end of the day?
This is a good book: http://www.amazon.com/Driven-Distraction-Revised-Recognizing..., which reminds me of another question:
* Do you buy/start a lot of books, but rarely seem to finish them?
Read enough of the book to see if this resonates with you. If it does, the next step would be to talk to (a) your doctor if you have one, or (b) find a psychiatrist in your area who specializes in ADHD. The book can help you find resources.
Edit: Just to be clear, this list is NOT meant to be diagnostic. Although I happen to have an MD, I am NOT a practicing physician no one should assume they have ADHD based on any list like this. I would only say that if many of these things hold overwhelmingly true for the OP, then it might be worth learning more about ADHD and finding a professional to begin a conversation.
Yes, ADHD and meds sparks a lot of cynicism in some people. However, one reason I recommended that book is that the authors present a balanced approach to meds. One of the authors has ADHD, but doesn't find that meds make much of a difference for him (they reportedly are ineffective for 25% of adults with ADHD). But they have helped many of his patients and his own son.
There's no such thing as your "full capacity". What you're doing right now, that is your full capacity. Either accept that you're at your limit or actually do something to prove you're not.
What changed it? Probably some of it was age. Your outlook on life and what's important changes as you get older. I spent a fair bit of time talking to people 10, 20, 30, and 40 years older than me, and while I usually didn't agree with them, I did remember their words. After 10 years I was rather shocked at how my outlook had changed. Now it's coming up to 20 and I've definitely changed yet again. How do you achieve the wisdom of age without actually having to spend years aging? Beats me! But I sure learned to appreciate it regardless.
Another thing that happened is I started taking on harder and harder things. It didn't matter what, so long as it was difficult enough that it would take me years to master. Boxing, welding, classical guitar, open source projects, running a business. I just kept adding things on until I didn't have enough time to even breathe. Then I somehow managed to find the time to get all these things done. And then I piled on more, until I finally reached the point where I literally did not have enough hours in the day to get everything done. Then I dropped some stuff until I felt comfortable again.
Now I no longer have time for video games or TV (except for the odd time when I'm taking a sanity break, which is maybe once a week for a couple of hours). I have shit to do and a daily routine that gets it done. I had to organize my life because I had too much stuff to do! Now I deliberately carve out time to be with friends or do something crazy. Otherwise I'm busy at work, practicing one of my hobbies, or I'm at home on a Sunday, deliberately doing nothing all day because I've scheduled a "do nothing" day.
So my advice to tackle procrastination would be: Fill your life with so much stuff that you can't afford to procrastinate (It's even better to get into a few things you can't get out of easily). You'll figure out how to organize yourself. Then you back off a bit to get some balance back into your life.
Startups are not picking _Ruby_, they are picking _Rails_, which happens to be written in Ruby. Seriously, the language doesn't matter that much nowadays it's all about the ecosystem around it. You need one or more nice frameworks, as light or heavy as you want, and a bunch of libraries for common stuff you have to deal with (never invent the wheel again if not absolutely neccessary!).
But time goes on. I was a ruby zealot, but this changed over the last 2 years. Most of the webframeworks of other languages integrated the "rails way" in one way or another. To be clear: Rails hasn't special benefits or is "cool" any longer (i say this as an currently employed rails developer). In addition to this, Ruby itself is showing it's age:
- excessive metaprogramming (like eg. in ActiveRecord) makes these things nearly unreadable/un-understandable today. - parallel processing in MRI is not possible, Rubinius 2 didn't finish/change for the last 2 years (especially unicode support is the showstopper in non-english countries), JRuby brings the disadvantages of the JVM to the table (the startup times in short TDD-cycles are annoying). - Ruby is still one of the slowest scripting languages in use. In addition, stuff like ActiveRecord kills performance even more, some expressions (no exact number) take hundred times longer than writing the raw sql statement in the rails app. The "convenience" of AR comes with price. (and as i mentioned, the "under the hood" isn't that easy to understand either).
To be fair: other languages have their problems, though.
- python: the frameworks are similar to the language in their inception: quite good, but not mind-blowing, boundary-pushing or just "hip". I'd say most usage of stuff like Django results from "yeah, i know python, let's use a python web framework" if you know what i mean. Indeed, there's nothing wrong with that. Also: Python3-transition-hassle, GIL like Ruby prevents parallel processing, similar hassle like with the different ruby implementations.
- PHP: cheap. hosting is cheap (most customers are happy with near-garbage hosting since they won't get _that_ much traffic). developers are cheap and everywhere available. developing is cheap because of the massive amount of high-quality "frameworks" (not only coding-frameworks, but also stuff like drupal, typo3, wordpress, wiki, ...). But: you get what you pay for. Innovations happens everywhere except in PHP, folks there are just playing catch-up. If you have to develop something new, where you don't have the skeleton in place, PHP isn't the best choice. Like Ruby, performance is not that good, especially when you target modern webapps with thousands of concurrent small requests. PHP isn't made for this.
- Perl: slowly fading away. May become "cool" again, similar the way old clothes become "retro" and cool again. No pun intended, i personally like perl. And CPAN is just insane. Everything you'll ever need (and more) is available.
- Scala: very interesting (but also complicated and not beginner-friendly) language. Biggest drawback last time I used scala: the "package manager", the single most important thing of every modern language, the thing that defines how the ecosystem will behave, was just garbage. There (as i know) is no place like "rubygems.org" and just "gem install myawesomelib". It _may_ be that SBT has involved into something great over the last year, i don't know. The whole "JVM Ecosystem" has quite a learning curve, too. Not startup-friendly and you'll need _great_ developers (my experience).
- ASP.NET MVC/C#: This is my personal opinion: i would never use it again or recommend it to anyone. Not only C#, but the whole .NET stuff or other microsoft-centric technologies. It has fanboys for sure, but not only i hate to work with every single piece of the microsoft "stack", MS is fading away slowly. Even silverlight was abandoned, ehrm i mean, "open sourced". The only way to write C# code in a productive way is in Visual Studio. Oh, you'll need the features of the "ultimate edition"? Have fun shelling out thousands of $$ for your developers. Use MS-SQL Server? Look at the license costs. Whatever, i don't want to start flamewars here. Actually i (european) see C# stuff outsourced to indian offshore businesses more and more (no pun intended). C# Development is just "stuff that needs to be done" in some businesses, there is nothing really innovative or exciting going on and developers are cheap.
- JS is the only player in the browser. "unfair" advantage. Every softwarestack above have to deal with JS today. - Node.js brings JS to the server. While not suited for anything, it is just _perfect_ for many apps today. - NPM (the "rubygems" for JS/Node) is quite "better" than rubygems and seems way more active today. - Kickstart from scratch with express/mongoDB is really fast and perfectly suited for agile development.- "Big Frameworks" are evolving rapidly the last months.- Desktop- & Mobile-Apps tend to be written in HTML5/JS more and more.- Databases like MongoDB use JS as their query language.- if you don't like JS, there are preprocessing-languages like coffeescript which compile to JS. Write in the style you want, that's it.- The raw Speed of the V8 VM is amazing.
I'm not sure it is. If you look at the polls there have been here on HN, Python often places better than Ruby (one example is https://news.ycombinator.com/item?id=3745084, but there are other polls as well).
You might also check out dropbox, I think they are a large python shop.
Ask HN: Who is hiring? (August 2013) https://news.ycombinator.com/item?id=6139927 Ask HN: Freelancer? Seeking freelancer? (August 2013) https://news.ycombinator.com/item?id=6139937
 - or girl, but "good girl" doesn't mean the same thing! If you are female, then I would guess you have to be able to fake that you are "cool", whatever that means.
[edit2: If you are applying for a job programming java, then you should probably at least learn to how to write a class, instantiate an object, match a regex, etc. before going in there. But that will be easy if necessary.]
It does not matter if your formal CV does not reflect your true skills. Once you start talking to people, eventually they will refer you to their colleagues and invite you over for interviews.
From what I am told it helps to be able to jump past the "HR filter" which unfortunately places a lot of weight on keywords in CVs.
The fact that you have been working in industry means that you now have a strong "experience" component, which many places really appreciate!
Best of luck and just keep at it.
Once you accept that you will not get coverage on any of the major sites, you can think about how to promote your product. You should have already started before you built anything, to make sure your product solves someone's problem. If it solves even one person's problem well, chances are they will know other people who have the same problem and will be your biggest advocate / promotion avenue.
For promotion, sometimes the old tricks are the best tricks. Yes, ads cost money, but $100 spent on AdSense can still send a lot of people to your site if you spend it wisely.
So don't worry about launching, worry about minimizing your customer acquisition cost. And start by simply advertising so you have an initial cost of acquisition for your estimates.
So my tip is, don't just show the world your product. Show the world what your product can do.
It is best if you can show your product to where people are familiar with. In my case I used Medium, and Reddit. I'm planning to do it to some popular web applications next time.
I work in advertising, and I think that is a pretty good guide.
Here are the numbers in case you can't be arsed to click on the link:
Assuming you managed to secure a $0.50 CPM deal. And you're running 1 Dyno and 1 Worker on Heroku. To break even you need about 70k ad imps (~ 25k page views) per month.
BUT the underlying assumption that you can get $0.50 is wrong. It's actually really less than that, don't be seduced by publisher networks that say they can give you more. Always look at the small prints.
Also bear in mind that a lot of publisher networks (that pay relatively well) do have a minimum imps per month requirement - most start about 500k. Adsense of course has no minimum
Something like a games website will, at best, get around $3 CPM (counting all ad blocks). By contrast, something about cancer or payday loans will probably get $20 CPM or more.
This is further complicated by how you're doing ads, but let's just assume that you're planning to go the Adsense/similar route. (If you were thinking to run your own ads and optimise them yourself, you can make significantly more than the CPMs above, but there's more work and specialised knowledge involved.)
It's perfectly possible to make a very nice income off 50k visits a month, but you have to be in a very competitive niche.
As a rough guideline (and, as you may have guessed, I have recent practical experience in this area), aim for 800,000 visitors a month in a low-CPM niche, or 100,000 a month in a high-CPM one.
Lots of assumptions made, but gives you somewhere to start.
When you revisit a comment thread it marks which comments are new since your last visit. You can see an example in the second screenshot in the Chrome Web Store.
Go fmt all the things