Last year, I forced myself to release something every two weeks -- even if it wasn't finished or was just a poorly-written blog post. I can proudly say it was one of the most productive years of my life. Most of those projects won't see the light of day -- no one will care and no one will notice -- but releasing is far better than endless planning.
And just to really hit it home: this year I built Lofi (a small Spotify player replacement) and I shared it on reddit (and on HN). But if you read most of the posts, it's a whole bunch of angry people arguing about Electron sucking, about why the app is 100mb, about how C++ and Qt would be better, etc. etc. The difference between me and those people? I'm already working on my next project ;)
The quote is from Ian MacKaye: "The best records are the ones that get made."
Thank you for actually shipping.
Thank you for actually being positive.
Thank you for being brave enough to speak about your experience.
We need more people like you in the world.
If you're ever in LA, let's grab a coffee.
I wish ..
A stirring speech, and a good reminder to press on, and to press for results (just be careful not to reference it as an excuse to dismiss constructive criticism, or to play a martyr).
This is a typical style of web app development that is rightfully criticized: the average web developer thinks it's okay to offload their performance problems on everyone else as long as they reach their personal or company goals.
Pumping out many unsupported, mediocre projects isn't something to brag about either.
Why is it not okay? He solved his problems under his requirement, if it doesn't solve your problem under your requirement, it's not his fault and he isn't forced to follow your requirement.
> Pumping out many unsupported,
Why you consider that bad? He is learning, he is building, he is solving issues. The fact that he keep doing this is bad? I only see positive in that...
I'm pretty sure it's supported as much as he need them to be. He is his only client. I'm pretty sure too that if anyone wanted theses projects to be supported, he would gladly accept to be hired by them with a compensation worth his time.
I just saw that he was even generous enough to give his source code, with a MIT license on top of that!
> mediocre projects
That's just means and uncalled for. You should really think more over this issue you seems to have.
* the software was released/published and the author's idea about what are the minimum requirements that should be fulfilled by any and all software apparently doesn't include efficient use of system resources (Electron) or at least some minimum support (many projects already gone, moved to the "next project", bragging about quantity).
* they are learning and building but they're learning bad practices which they'll naturally continue to make use of, if they will developing software professionally or already are. Perfect practice makes perfect, this doesn't.
I have thought about this issue for years. There is no overabundance of quality software in the world, the opposite is true. If every simple open source project is praised just for the very simple and frankly nowadays fashionable act of offering the sources, no wonder.
In the end, someone can always rewrite something that's successful to fix performance issues, but what's the point of making something performant (or focusing heavily on architecture) before you even know people want your product? Performance matters to a degree (after all, performance is a feature), but the product matters the most.
Which can admittedly get in the way of half-assing a start-up into life... and that's why many devs are not good business men. That's a feature, assuming we don't want all our sw to be complete crap.
FWIW, KDE Plasma already has something similar to Lofi that I use daily https://i.imgur.com/uVAnf7p.png . Works out of the box :)
Under the hood it uses MPRIS to talk to the Spotify Linux app. So it works with all native music players, and even YouTube running in your browser! https://www.omgubuntu.co.uk/2018/05/kde-plasma-5-13-features...
Most of a what I code in my free time is 'useless'. Project Euler and the like.
When I think of building something and actually releasing it, my immediate impulse is that no one would use it so it'd be a waste of time. It bothers me a bit.
The key question is why are you writing code in your free time? Entertainment? Profit? Personal Development?
I'd rather write code to solve an interesting thing that is entertaining to me than to work on things that nobody (including me) will use. Because I'd only do it as entertainment.
Drew Houston's Show HN post (Dropbox) that, you guessed it, got a ton of hate (on HN of all places). I don't believe for one second that money brings happiness, but a decade later, Drew's the one laughing all the way to the bank :)
Its the cornerstone ideology of most failed startups.
I released voiceaudiocheck.com a month ago and haven’t seen a single user.
I guess it helps them with the pain of sounding shitty on video calls, by telling them how to improve.
I don't see a market for it at the moment because the problem it solves is so incremental.
Damn, I had totally forgotten that that's a thing!
> Second, contact some sites where this product might be useful for their users.
Yes, I had planned that but then got distracted with other projects... :)
But, i don't want anyone getting the wrong idea. The vast majority of stuff released on the web these days, never ever sees any users at all. You'll be lucky if your web server even gets hit by actual users a couple times a week. and the vast majority that do, will churn.
Out of habit I tend to check the comments here before reading the article, and um... I did a serious double-take between the title and your opening sentence. For about a second I just stopped and stared at the phrase, “even if it wasn’t finished” and just thought, “Wow... here’s a guy with high standards!”
Anyway, then I read on, sighed, chuckled, and read the (very good) blog post.
But let me just say this: after I built Lofi and got more hate than I would've imagined for what was really a throwaway project, a great dread came over me. What if I was new at programming? What if I was just a college or high school kid learning how to use Electron because I simply didn't know C++ or Java or what-have-you? I know that if I got this much hate in my teens or early 20s, it would've discouraged me tremendously from pursuing startups, programming, and building. I really hope you realize that your words can deeply affect people. I have thick skin, went to an elite school, wrote a book, I'm arrogant af, and couldn't give a damn about what you have to say, dear anonymous HN commenter....
...however, keep in mind that you might be negatively impacting an impressionable young person; or an underprivileged minority; or a total newbie. I hate the term "safe space" but we should all fight to keep HN as close to a Miltonian "marketplace of ideas" as possible.
I would like to think that such personal attacks would be downvoted/flagged into oblivion here.
I introduced a friend of mine to programming. He picked up pyret and released a cool little game with it. Instead of the community encouraging him, they shit on his code. Called it ugly, and pointed out a lot of nothings.
Consequently, the dude quit programming. He now considers it something the smart ones do. He agrees with me when I say those haters don't matter. But, the spark's dead.
I'm not saying we shouldn't give feedback. But feedback is different from nagging, complaints and bullying. A good way to give feedback correctly is the sandwich method.
Specific Praise -> specific critique-> specific praise.
It's like a forum full of carpenters that are using Black and Decker tools to build houses.
Your desktop isn't magic either. Ever run a benchmark with slack turned on versus off? Try it out sometime. You'll be amazed.
Okay, and if your apps used sane amounts of resources, then you could do that on <$1000 of hardware - or even <$100 on a Pi or used machine. Sure, on a programmer's budget/salary it's okay to buy expensive hardware, but it still adds up, and you shouldn't need it.
In that analogy the end result is the same, but the process to get there more complicated. In reality, the difference is between a house that has stuff like insulation and faucets that don't leak, versus than something slapped together in 5 minutes for $50 that costs 50 times more to live in, for as long as you live in it.
It's less effort for the programmer, more effort for every machine it gets run on, every time it gets run. And that stuff compounds in non-linear ways, too: The more data has to be read from disks, the more useless the disk cache becomes, the more data has to be shuffled around in RAM, the more useless the CPU cache becomes. Using gigantic frameworks for programs that use 0.1% of them, which still set up and maybe even poll for all sorts of stuff, not knowing it's not needed, is not "wrong" (certainly not ever when it's open source), but it's more wasteful for what it achieves.
I just checked, and my Directory Opus with 3 windows open, one of them having 2 panes, and all the custom buttons etc. is taking up 100 MB of memory. The list of features is huge. Another thing I have to think of is audio software. Sure, there's also VST that come with gigantic bitmaps or whatever, but generally, efficiency is king. They know their code doesn't run in a vacuum and they are dealing with customers (even when talking about free software) who pay keen attention to such things, to a degree unheard of and unstrived for here.
Sometimes I wish we could just completely freeze hardware development for 20 or more years (if it wasn't for improvements in energy efficiency) just to be forced to become better at programming again. Just look what in 2015 could be done with a machine from 1981: https://www.youtube.com/watch?v=hNRO7lno_DM ... What could we actually do with our current hardware? Who even knows?
You're also confusing premature optimization with skillfull use of resources. Not driving a car with the handbrake on isn't premature optimization.
Or the sizable portion of end-users who won't or can't upgrade past 2G; it's a pain to do that on a modern system, but it does work.
Maybe this is just what he's playing with instead of putting together model kits, y'know?
It's quite possible to get lost in the weeds planning stuff with no forwards motion. It's also possible to make really, really expensive mistakes by plowing forwards. I've done both of those. There is an alternate reality where the friend has been looking for people to make this thing fast and cheap, and is now sitting on a pile of these things that he can't sell at a price point that will break even, much less make a profit, with an order of magnitude more money than he is comfortable losing sunk into them. And maybe that reality's Trevor just wrote a blog post talking about how this friend should have done their research first, what kind of idiot doesn't do their research?
I'm not saying forging ahead is always bad. I've done it a lot in the past. Sometimes it's worked out, sometimes it hasn't. And when it doesn't work out it is a shitload of hassle and stress and I can only take so much of that at once.
Been there, done that.
"Customers" that love the product, at the price point of the raw materials.
Charges that come at you from nowhere because you didn't hire an import agent that knows widget X has anti-dumping duties attached to it for the next six months.
Warehouses that look good until it rains and then your whole stock is ruined. This one was actually the best thing that could happen, because between the insurance and accounting the business finally broke even and I walked away from it.
Hardware is different to software. It's all downside all the way. The only thing I learned is that you should do the most pessimistic accounting you possibly can for sales and manufacture and then divide the first by 10 and multiple the second by 10 and you will be right for what will happen in the first year.
An excellent point which is often omitted in such articles. Finding the right balance between careful planning and plowing forwards is of great pertinence. I look at planning as a risk minimization exercise. Once risks associated with failure are minimized, I can then forge ahead. Hence, the time planning is a function of the project's risk profile, which can vary drastically.
However, the overall point of the article is still meaningful, it's something I find myself doing a lot - plan and think about a project but not actually getting started in any meaningful way. Obviously some amount of research and planning is necessary for everything, but doing that endlessly is the problem being described.
Better for you? Or for them?
Funny how you can read something, mostly agree and then see an example and nope right out of the whole idea because the example tells you the author has an entirely different set of what ‘valuable’ is, compared to you.
Maybe doing the ‘hard thing’ of jumping straight into action is good in some cases... but, mostly, it’s not.
Plan first. Act second. Evaluate third.
If you miss any of the steps, or get stuck at any of the steps you’re doing it wrong.
I contend the authors supposition that most people get stuck on step 1 is wrong.
Most people I know get stuck on step 2, and give up without trying to iterate on what they were trying to do, because they didn’t understand that maybe step 1 didn’t come up with a perfect plan the first time around.
Sure, maybe it’s cool to have a step 0, which is ‘try it right now!’ to give you some idea & experience on how to get started.
...but the basic contention I this article; “the best thing to do is just to do something right now”; is wrong, and most modern learning & self development frameworks will back that assertion.
Isn’t there some famous fallacy thing about this being how terrible political decisions are made?
Bingo. Why not plan? Also why not day dream sometimes? Some of the best days I've had are also one of when I pause to take a stock. Once I just took a notebook (physical) and went to a park. It was the best planning day, helping me set future direction for next 6 months. Also Bill Gates is(/was) famous for taking reading/thinking retreats.
Also your whole comment also summarizes my take on the article.
Without the fantasy, the reality would never come.
Dopamine can be motivating, but over a threshold it's satisfying, which is essentially the opposite of motivating.
I think what's really being warned about is that if you dream too much it becomes satisfying. If you allow yourself to experience the pleasure of fantasising about your future, then you lose the motivation to actually realise that future. Instead of training your neural pathways to more effectively improve your circumstances, you train your neural pathways to get to that satisfaction quicker by simply imagining and believing you will have done so in the future.
The article is discussing fantasizing that does not result in action
I actually find it useful to, instead of immediately acting, sometimes take a bit of time to ask: how do I want my UI to look? How are people going to use this software? What are some typical use case scenarios? I've gained valuable insight by daydreaming a little bit, and not acting immediately.
IMO, you need a mixture of both some planning and also actively working on the project. You can get stuck in fantasies, design something overly complex that you think will solve all use cases (but actually does many things poorly instead of doing one thing well). You can also fantasize about a project so much that you get bored of the project before you even really get started.
Both former kinds of people struggle in their own way. Daydreamers don't work, implementors can't dream. They plan, they invent, they struggle and fail. I wonder if there is any skill set behind that, at all. If you can learn to dream, or learn to just do it, at all.
All that being said, I wish academia was more about really thinking out of the box, playing with ideas and trying things that are a little more "out there", but from what I've seen in the last decade, it isn't really the case, at least not in STEM.
I've been quite prone to this, and one thing that's helped is building systems vs. goals, per Scott Adams. If you read many stories of successful people, you see a pattern in having habits or systems that were built at some point that lead to those successes, as opposed to setting a specific goal and trying to plan around that.
So, todo lists become a bit of intellectual masturbation in the sense of "oh I'm not putting this off, I'm definitely going to do it, since it's on my todo list!"
I have on my todo list (see the irony) to build a mobile todo list app where tasks will disappear if not finished in a while, along with some other bells and whistles (they'll all move to another screen where you can't remove them and they'll mock you for ever), mostly as an art piece on this exact phenomenon rather than a useful app.
I heard of businessmen who as a rule of thumb delegate or delete tasks after not being able to start within 3 days.
So it is matter of your system how you use your todo list
Guilty as charged. That said, the primary purpose of my "to read" list today is to short-circuit my procrastination loop; when I realize it's high time to get back to work, I'll quickly scroll through the remaining 20 open tabs, put some on my "toread" list, and close the others.
I've found a way to combat this. I assign a "due in" value to each of my todo items, from 1 week to 3 months. Then every week, I visit all the overdue items, do at least one step to push it further, then push it out according to its "due in" value.
So high priority items get more attention and nothing will be put off indefinitely.
This in turn may sap motivation. (Not sure if this consequence is part of the science.) The remedy according to some sources is to avoid imagining success or even the end state of your project. To maintain perseverance, try to stay focused on the most immediate problems and potential future hurdles.
> The remedy according to some sources is to avoid imagining success or even the end state of your project.
Is it really the remedy? I agree the problem you state is real, but how does this, or all other possible ways to keep your eyes on the prize, the “remedy”?
Growing up I was on a competitive swim team, and one of the exercises we did before meets was imagining the whole race, imagining how we would execute our performance from start to finish. You would imagine the start, how you feel fresh and easy, and then the middle, as you begin to feel yourself tire, and then the end, when you’re exhausted but then the reward of finishing. It’s about the whole race, I think, and day dreaming about the end doesn’t have to be so bad.
> Put off the correct, hard work for the easier, less effective work?
What's correct? How does that not conflicts with "future you" problem?
You know that any one who is having the "future you problem" is also doing that while thinking that they taking the correct hard work approach, right?
It's just one of those idea where you can just rationalize whether something fits the philosophy.
Being dateable and actually finding people to date are two very different things.
This is a highly oversimplified vision. It's true that Elon has way more money at his disposal. But it's also true that he had the guts to put all of it on the line for his vision.
If I was that rich (after PayPal), I would put money on the side that I would never touch, and then try the business thing with the rest of it. I think most of us would do that, or even retire at that point.
Putting all your money on the line (and let's face it, if you have millions, you fall from higher than if you only have $100) really shows how dedicated you are to your vision.
That's why we are talking about Elon here, and not about you or me.
This quote from the end of the article reminded me of the famous chimpanzee experiment where two chimps were hooked up to a brain scan, one was given a banana to enjoy the other just allowed to watch, but both seemed to have the same "pleasure zone" of the brain light up.
This is visualizing rewards rather than the thing itself. In contrast, visualizing the product you want, or people getting it (i.e the business operation you want) is inspiring.
The difference is conceiving of yourself as a producer or as a consumer (of rewards).
OTOH not everyone is required to actually manifest all their dreams. Maybe it’s more fun and satisfying to tinker endlessly without actually starting a real business.
Yes, it’s a problem that people live in the future. But also not everyone is cut out to follow through on what they imagine.
For me, 99% of what I imagine is just an excuse to tinker, but I’ve followed through on a tiny subset of things and that was great too. I like knowing I actually “did it.” I like pointing to the accomplishment.
But there’s definitely a joy and peace in daydreaming and endlessly tinkering without ruining everything by setting yourself up to argue with manufacturers, look for funding, manage employees, live out of a tour bus, or any of the other practical realities that go along with pursuing your dreams in a professional capacity.
So after years procrastinating on a book, doing research and taking notes but not publishing one word I started blogging. I’ve only written 4 blog posts and they get decent traffic. I was surprised. I’m trying to apply “do the work” to other areas too.
Do you mind me asking how you are getting traffic? Are you writing on your own personal website or on something like Medium?
Probably not. To fix this problem, you create a sitemaps.xml on your server and then give Google/Yahoo/etc. the link to it.
A personal development coach I know trained me to stop talking to others about the successful things I plan to do or expect to do, the theory being that the subconscious/unconscious mind can't tell the difference between talking about them and actually accomplishing them.
It actually sounds a lot like the concept of not telling people about dieting or whatever long-term task you're engaging in due to the dopamine rush from telling people rather than accomplishing things.
Even as we speak, I'm here commenting away (why?) on Hacker News when I should be publishing posts, building a list, growing my business so I can find a product in the service and getting it done already. Uuugh, just saying that makes me feel terrible. How do I overcome this...
I also made the website first ;) - https://www.burnfastburnbright.com/
What happens is that usually the capability of visionary (seeing what does not exist yet in front of you like it is real)is related with your personality.
People who has not this capability could not really see what does not exist, but they are essential for following the roadmap(tracker) the good visionary can design.
The tracker personality on her own can't really go far enough too. This person does not really know where to go.
You can do both roles yourself, the visionary and the tracker, but that is very hard because you have to switch roles, almost like Mr Jekyl and Mr Hyde. And you will have a very strong tendency towards one of them.
Or you can partner with someone who is a "natural" tracker if you are a natural "visionary". The sum of the parts will be much better than the individual parts.
:%s/Clojure/IDEALISTIC_LANGUAGE_OF_12_YEARS_AGO/g for older projects.
Ouch, shoudn't it be Emacs? /s
I hope I'm reading this quote correctly. This doesn't feel entirely right. Short vs long term gratification is probably a much longer topic but I still think a modicum of effort in getting the pros and cons for the most obvious of choices is helpful. Certainly more than just picking the choice that sounds good at the start.
Most long term projects have no immediate gratification. Based on the advice above alone whenever you have some money you should pick the path that provides the best immediate benefit and turn it into wine or icecream :).
> In my friend’s case: follow the money!
The money you're definitely already making or the money you could possibly be making?
Your complaint seems to be that the use of a sexual metaphor affects the ethos of the speaker in the eyes of some.
That metaphor is part of the message, regardless of whether or not you like it.
Post so your creations. I’d like to offer my valuable input.
How do you go about finding a customer without at least a prototype? You need to do market research, sure, but how do you get a customer without a product?
The heavy personal touch at first reminds me of PG’s quote: “Do things that don’t scale”
I’ve recently launched a product, https://bugbucket.io that solves a problem I have but I’m struggling to find that first customer.
The whole lightweight approach makes sense but now the problem is identifying whether the experiment is a failure or just needs to get in front of more folks...
It takes some time to get used to lean principles, especially if you have a dev background (as you do it seams). It's the opposite of "build it and they will come" mantra, and dev people are always like "how do you mean sell it before it's built?!" But it works. And it's a way better approach.
As for your tool, if you built it because you had the same problem, you are in the perfect position. You should understand very well the pain points, who has them, how it affects their everyday work and from there it should be easy to make tactics on how to approach potential users, what are the best selling points.
They say (and I completely agree) that the best sales person in a startup are founders, because they know everything about the idea, they are passionate about it and they don't give up easily.
Sell it to github or gitlab.
Troll through github looking for repositories that are actually commercial products and contact the owners to use bugBucket?
If you love this article you will love this book.
I took his advice haha. I have 300 fully packaged signs to pick up this week. Excited to fix the supply chain issues and start shipping end of the week.
There are no such circumstances. Fuck voice calls.