"Most ambitions are either achieved or abandoned; either way, they belong to the past. The future, instead of the ladder toward the goals of life, flattens out into a perpetual present. Money, status, all the vanities the preacher of Ecclesiastes described, hold so little interest: a chasing after wind, indeed." - Paul Kalanithi
a lot of good points but i feel like one of the biggest i've learned is missing...
leaning toward functional techniques has probably had the biggest impact on my productivity in the last 10 years. some of the highest cognitive load in code comes from storing the current state of objects in ones limited memory. removing state and working with transparent functions completely changes the game. once i write a function that i trust does its job i can replace its implementation with its name in my memory and move on to the next one.
Before OOP became popular the usage of global variables was discouraged in procedural languages because it was the cause of many bugs and errors.
In OOP global state variables were renamed to instance variables and are now widely used. The problem why it was discouraged beforehand did not went away by renaming but is now spread all over the place.
thats like the entire jamband scene which been around since the 60s... the grateful dead, phish, kind gizzard and the lizard wizard...
one could also mention the electronic scene in there. aphex twin released ventolin in 1995 which was the same track remixed multiples times with different edits.
i've worn my 13oz raw denim everyday for 2 years and they still look new and are incredibly soft. the only tares are along the cuff where i folded them and where my buckle corner rubs against the jeans. conversely most levis or similar will fall apart within 6 months for me.
just let it go and move on... don't let the negative energy eat you up, it's just not worth it.
i was screwed out of over 6 months of pay north of $50k. i wasn't keep tabs on the payments and i wasn't keeping detailed records of my work. both things i no longer let slide in any way. i spoke to many people and lawyers, but decided to move on and let it go.
in the end how much money and time and energy do you want to spend on another lousy human being or entity? it only hurts you emotionally and takes up valuable time to focus on more productive things. ten years later it's a blip in my life that forced me to learn and be better about picking clients and billing, etc. don't let the 10% ruin your work with the other 90%.
I'm sorry you lost your money but that's really bad advice. The proper solution was given below: send a letter (real, snailmail) demanding payment within 14 days or the debt will be passed to a debt collection agency.
If there's no response just do that. If you have a good paper trail you can get half your money from them and then forget about it. Plus you have the happy knowledge that the collection agency don't take no for an answer and will literally turn up at their office with a warrant and start taking equipment out to cover the debt.
Edit: I just noticed you said you didn't have a good paper trail. Well, an expensive lesson but I'm sure it's one well learned! :)
most functional techniques wrap walking a loop into a few functions, like fold. writing loop constructs can be error prone. one is much less liable to make a mistake passing in an array into a function and have it processed using another function. idea being separation of logic. why care about loops when one only thinks in arrays and streams being processed? i don't think i've written a for loop in js in a couple years at this point with the help of libraries like ramda.
the difference is using tools vs building your own tools when you need to. the idea of these algorithms is not to memorize them but to understand how they are build and what goals they are trying to accomplish. understanding of the basic building blocks allows approaching and solving problems in a different light.
seems weird to me that one would want to do any of these things inside vim... though it should be possible with the right plugins... but why? just use a window manager like screen or tmux to multi-task.
It's because of the tight integration with the rest of the editor and all the rest of the packages that I use.
For example, when I go to edit an email I don't have to start up an external editor, so there is no context switching. Also, as emacs is super powerful, the editor that I use to edit my emails is super powerful, unlike the editors in most other mail clients.
Copying and pasting or importing/exporting between the various packages and other emacs buffers that I use is also seamless unlike anything that you do between conventional, separate applications. Everywhere that I go within emacs and everything that I do has the full power of emacs to do it with. I have macros, snippets, and elisp (to name just a few) at my fingertips.
Another advantage is that all these packages that I use (email, my git interface, RSS reader, etc) are all written in elisp and are integrated using elisp, so if you know elisp (which I do) it's easy to modify them to your liking, and have them do exactly what you want. This makes the whole experience super customizable to an extent unmatched pretty much anywhere else.
Without such integration and customizability, virtually all other software that I've used seems primitive and rigid by comparison.
> seems weird to me that one would want to do any of these things inside vim... though it should be possible with the right plugins... but why? just use a window manager like screen or tmux to multi-task.
Imagine you put tons of information in vimwiki from your browser.
It's not a far stretch to wish you had a text browser inside of vim to more easily get important information into vim wiki.
At some point the browser could even begin to feel like a hindrance to curating and improving upon your higher quality vimwiki notes.
Emacs is like this, but not just for notes... for pretty much everything.
> just use a window manager like screen or tmux to multi-task.
I'm quite used to my auto-completion and snippets in emacs. As well as my clipboard history. The flexibility of isearch and how intuitive it's UX is.
If I leave emacs I never have all of those familiar things that fit like a glove. I'm in a different world with different rules that is far less malleable, understandable, and introspectable as emacs.
Hopefully that helps make sense of things a bit =)