Author here. I wrote this many years ago (2017?) while exploring techniques to create art that I could put up on my walls :-) If you enjoyed this article there are more similar ones linked on the main page: https://sighack.com/
HN user
mvanga
I write at https://sighack.com and https://www.mvanga.com
Does anyone know if there is something similar for 2D platformers?
Can I ask how you find the fastest links between countries and the servers for them? (Background: during my vacation last month I was playing an MMO from the APAC region but with servers in Germany, and it was crazy high latency. It made the experience quite bad. I wanted to rent my own servers and build a faster link for myself.)
It really depends on the complexity of the topic and the accent of the speaker. Most videos I watch at 2.8x. Otherwise it's 2x.
These are a nice set of tools. I used this long ago for extracting onset times from audio files: https://sighack.com/post/extract-onset-beat-times-from-audio...
I really enjoyed the courses at: https://learnwatchmaking.com/
I wonder if there exists a Sci-Hub equivalent for ISO standard PDFs somewhere.
I know the feeling.
I'm also motivated by small wins. However, at some point you have to face the realization that you need to power through some drudge work to get to those wins. I don't know if there's an easy workaround.
What I found worked best for me was:
1. Being passionate about the goal. This in isolation is not enough, but when you're already working on something, it helps for coping with the inevitable roadblocks and the frustration that follows.
2. Launch asap. Then iterate. Iteration is more fun than launching because the former provides quick wins while the latter requires expending enormous energy upfront before you see a win. The approach that worked for me is to pick the minimal features I need for the end product and build towards that with (metaphorical) blinders on w.r.t. all other features. Really think about the bare minimum features you need, and then slog through till you hit it. It's basically the path of least resistance to get to your MVP. Once I hit that, iteration is more fun.
3. Consistency beats extreme bursts of productivity. Try to improve things a little at a time. This isn't always possible, but still attempting to tackle things in digestible chunks helps me with procrastination. Whenever I do bursts of work, I get the results but also burn out on that particular project. I can't look at it for a while afterwards. It's like squatting five reps of 150kg at the gym and recovering for the rest of the week vs. lifting five reps of 75kg for three days in the week. The difference in total weight moved at the end of the week is huge.
4. Energy management. The above point is one example of energy management over time management. Attempting to micro-manage my time to gain efficiency never seems to work for me in the long run. Instead, thinking about it as managing my overall energy tends to be more fruitful. Eat healthy, daily exercise however little it might be, good sleep, and some social interaction all help. All those will improve overall energy and psychological outlook. Beyond that, work during your peak energy hours and temporarily remove distractions that will waste them.
5. Get feedback. Show it to your target community and gather feedback. This is the best form of external motivation you can get. (Of course this may also be very hard to get depending on the community you're targeting.)
Good luck!
Amazing how Stripe consistently executes fantastic solutions for all the very real and difficult pain points of building commercial products on the web. Fantastic work!
I've worked on several solo projects in the past. I've personally found the below stack to be quite productive:
Frontend: NextJS + Tailwind Backend: Flask Ops: Heroku + addons
Interesting. Do you have some reference or link where I can learn more?
Very nice! I like your way much better than the one in my writeup :-) I'll refactor things over the weekend to use this approach if that's OK with you.
Agreed. The patterns are the most interesting bits. Actually, just the fact that there exist patterns is pretty amazing. It's unfortunately hard to see them through the notation and that made it very unintuitive for me for the longest time.
Unfortunately the momentum that Western music notation has, with a few centuries of tradition behind it, means one has to work within that system.
There was an interesting discussion I came across on Stack Exchange while writing the article: https://music.stackexchange.com/questions/67730/why-have-sha...
Oddly, for me it was the opposite!
I used to be confused on why modes required modifying certain notes from a major scale until I tried deriving them in the way shown in the article.
Of course, once you understand that, the way you go about memorizing and practicing is probably easier the way you described; that is, deriving modes in any given key by modifying notes of the major scale using the circle of fifths.
Do I have to read x86/arm spec + pcie spec + acpi spec + usb spec?
Pretty much, yeah. There's a reason not everyone is sitting around writing hardware drivers.
The alternative is reading through Linux kernel code. However it typically requires you digging through many layers of abstractions to get a fuller picture.
Generally, x86 is generally more mature, and the specs tend to be fairly large. ARM documentation should be a little simpler to dig into.
Honestly, this article presents a fairly ridiculous comparison. You could bump deploy times on Heroku to 20 minutes and I would still use it without a second thought. At best, I'll complain a little louder.
Here's step 1 from the article: The documentation says to create a new AWS IAM role with credentials for automation.
At this point, you've already failed. You are forcing more complexity on me than I have to care about when using Heroku. And the underlying complexity is worse. You need to be familiar with Gitlab's CI/CD pipelines. Your included YAML file hides all the complexity and uses all your magic variables: https://gitlab.com/gitlab-org/5-minute-production-app/deploy...
What happens when something breaks?
Quite literally, the only downside of Heroku is the pricing. Even that, I question for smaller teams where operational overhead can get way worse. I have yet to come across anything in the ballpark.
Anyway, this may still be a decent setup for deploying an app to AWS perhaps, but comparing to Heroku in the title is way off base.
The graph approach (e.g. Wikipedia) is pretty much useless without a search engine (e.g. Google) directing you to the first useful node in the graph. When is the last time you just jumped onto the Wikipedia homepage and found your way to the information you wanted?
So once you accept that a graph structure is useless without powerful search behind it, the advantages of the tree approach are more obvious: it provides a basic search mechanism through hierarchy, and still allows for a graph approach (via linking and duplication of content in multiple categories).
Also, maintaining documentation sucks. So there's that...
Can anyone more knowledgeable comment on the details and significance of the comment regarding the frequency of formation being a normal distribution?
Straight away, they noticed a statistical pattern in the frequency at which the crystals emerged; it followed what’s known as a normal distribution, which has long been theorized but only now experimentally verified.
Clean, well-documented projects showcasing demos that end up having huge impact. Some of these projects single-handedly spawned entire tech ecosystems. (see FFMPEG, QEMU, JSLinux)
Confirm or reject the Younger Dryas impact hypothesis. While I'm at it, stop by Göbekli Tepe just to check out what they were using the site for.
Check out the construction of the pyramids at Giza. There's still so many mysteries surrounding them and they're just overall fascinating.
Then pay a visit to the Library of Alexandria. I always wondered how much civilization was set back by it being burned down.
The cynic in me sees this, which is just the latest move in a series of overreaching actions being taken by the big social media giants, as an effort to get Section 230 repealed.
The more blatant they are in their partisan actions, the more they rile up the opposition and the more the pressure on lawmakers to repeal Section 230.
Once that happens, they get to have full control over the content on their platforms "because the law makes them liable", and they never have to worry about competition ever rising up against them ever again. They basically got to ride the coattails of Section 230 to the point of a monopoly; repealing it just gives them everything they want.
Ah whatever, censorship is not the answer in a free democracy. Freedom of speech has to be more than just a law written on some paper somewhere for it to mean something; it has to be something the people believe in their day-to-day interactions with their fellow countrymen. I suppose that's gone at this point...
The Stanford Encyclopedia of Philosophy (SEP) is pretty fantastic. They have a lot of articles summarizing debates as well, which I find very useful. Example: https://plato.stanford.edu/entries/platonism-mathematics/
Just my 2c below.
I went down a similar path over the last few years. Here is what didn't work well for me:
- Reading books on the history of philosophy summarizing a wide range of ideas from famous philosophers. Examples would be Bertrand Russell's and Anthony Kenny's books. The problem I found is that there's just too much stuff in there that is not of interest to me personally.
- Reading books by author. For example, just reading through Plato's dialogues never worked for me, again because the topics are vast and varied, and many are not of interest to me personally.
What worked for me are diving into specific topics that interested me deeply. In my case: political philosophy, the question of the existence of "God", and topics pertaining to morality and ethics. (There also happens to be a nice overlap across these topics making it easier for me.)
Starting out is the hardest part. I find that the first books you pick seem to set the stage for one's worldview to a large extent. That's just a correlation from personal experience, not necessarily causation. My basic approach to not blindsiding myself to specific views has been to work my way up through history to understand how the ideas and arguments pertaining to a topic evolved over time. I found that during this phase I have to actively suppress my natural impulse to immediately criticize arguments I come across; I rather assume that I missed something. The next phase for me is to actually dig deeper into some of those criticisms that came up, and see if they hold up.
Next, pick your translations very carefully. Research the best translations for each book before purchasing. /r/askphilosophy and /r/philosophy are great resources for this and the deep-dive phase of your research.
A final piece of advice: read slowly. Comprehension is king when it comes to philosophy. I was reading, re-reading, and parsing through 2-3 pages per hour when I started out. This is mostly because many terms that you wouldn't think are technical turn out to be (for example, Aristotle's use of the term "motion" refers to something much more expansive than what we think of motion as today). However, on the bright side, that speed tends to go up (slightly) over time as you become familiar with the area.
So to summarize: my recommendation to you for developing a personal philosophy is to ask questions first, and then seek out answers that you judge on their merit, regardless of who wrote them.
TLDR: Ask questions first, read widely second, and think for yourself.
Honestly, having gone down this path a year back, just use Heroku for your backend. Maybe Netlify if you want to separate your frontend and backend.
The amount of complexity and interdependencies these "here's my stack" posts describe are always a huge cognitive overhead for running a one-person SaaS.
Heroku costs more, but there's a reason for it. If you're even remotely making money from your product, and are alone in running the show, it's a no brainer to drop a couple hundred dollars a month to eliminate 99% of your ops headaches: the documentation, the add-on's, the fantastic UI, decent reliability, and ease of operations are totally worth it. Literally the worst thing one can say about Heroku is the cost, and possibly, the inability to build certain complex architectures (which most single-person SaaS services aren't).
Not entirely related to the article, but rather why I think we're seeing all these problems in journalism of late.
The rise of the internet gatekeepers (Google, Facebook, Twitter) has forever destroyed the old business model for journalism.
Today, in order to have any success at building an audience on these platforms, one needs to appease the algorithms that these gatekeepers employ.
Unfortunately, their algorithms are designed to bring out the sinister side of human nature; tribalism, extremes of opinion, polarization.
I suspect anyone that tries to stay on the neutral side of journalism will eventually be forced to pick a side to stay afloat. Not because of the gatekeepers themselves anymore, but because the gatekeepers have amplified qualities in all of us that have irreversibly changed individual behavior itself.
I'm not sure of what can be done to ebb the tide. The problem is you can no longer look to fixing the gatekeepers. The real problem is how to turn back the clock on individual behavior en masse.
Definitely true. The author could have chosen differently and it would have probably led to more constructive comments.
However, I'll also point out that focusing on the snark and ignoring the rest of the article is also a choice made on the part of the commenters.
Given a choice, I personally prefer to take the strongest and most charitable interpretation of someones ideas before choosing to criticize them. At least the discussion is interesting that way...
This is one weird comment section.
There are people attacking the author for a statement made about CoreOS, and for some hate towards Kubernetes.
The key point of the article is not really being addressed here: vested interests from large companies are able to introduce huge complexity into simple, well-designed projects. While the complexity may be good for some end that said vested interest has in mind, they are also in a position to absorb the cost of that increased complexity.
In the meantime, the simpler version of the software is long gone, with the added complexity placing a large burden on the solo developer or small team.
It's almost like there's no good representation in the open-source world for the solo developer or small team. Funding and adoption (in the extreme, some might say hijacking) of open-source projects from large corporations dictates the direction of all major software components today. Along with the roses come some very real thorns.
Just my 2c.
I find this a common sentiment here. As someone who left his country to study abroad, I find it very odd.
An individual looks at his or her options, decides that pursuing education in a foreign country will result in a better future for them and their family.
And somehow restricting their opportunity and their freedom to do so is a good thing? Certainly not for the individual in question.
Personally, I think the way to prevent brain drain is not to impose restrictions on individual liberty but to compete better on the education/career market.
I made Artbuffer to create my own wall art without having to spend years learning to paint. I've successfully used it to create my own :-)
Some examples:
https://www.artbuffer.com/view?a=wslyHCoGjqoA3ZKgsQ_hNAlnshT...
https://www.artbuffer.com/view?a=-9Wr6aLtgF383zsAWxchXJbt8CW...
https://www.artbuffer.com/view?a=OuIs3I6vHAyqV-PoMb6EFiRVAFw...
I built this: http://artbuffer.com/
I built it so I could easily create unique art for printing, framing and putting up in my home.
Some examples: https://www.artbuffer.com/view?a=wslyHCoGjqoA3ZKgsQ_hNAlnshT...
https://www.artbuffer.com/view?a=-9Wr6aLtgF383zsAWxchXJbt8CW...
https://www.artbuffer.com/view?a=OuIs3I6vHAyqV-PoMb6EFiRVAFw...