papaver
Joined 15 years ago
Joined 15 years ago
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.
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 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%.
;P
oh and loops constructs are not composable...
i would say just a couple of years of vim isn't enough to really become one with the software. think it took me around 5 years to really understand why vim is amazing. took me at least one year just to get the hang of it properly and be highly productive. i can't even type in a normal editor anymore as my brain is wired to vim commands. and i still to this day learn new commands which make my life easier.
that being said i totally understand why people love emacs. but i get a decent amount of the window management stuff just using the tmux.
and vi is installed almost everywhere as an editor which makes editing in 90% of environments a breeze. even when in windows gvim does pretty good.
// pull traits dictionary out of tokens
const extractTraits = R.pipe(
R.map(R.pipe(
R.last,
R.prop('attributes'))),
R.reject(R.isNil),
R.reduce(R.mergeWith(concatValues), {}),
R.map(R.pipe(
R.unless(R.is(Array), R.of),
R.groupBy(R.identity),
R.map(R.count(R.identity)),
R.toPairs,
R.sortBy(R.prop(0)),
R.map(R.zipObj(['name', 'count'])))));but not a fan at all of writing html in clojurescript. it's extremely ugly to look at vs raw html/jsx. and became cumbersome really fast for me as my app grew in size... maybe there are better alternatives now, this was around 5 years ago.
using react with libraries like ramda/redux/rxjs in affect achieve the same thing but with 10x more libraries and references online.
the philosophy behind clojure will completely change how you code and visualize problems if you embrace it. honestly can't remember the last time i wrote a for loop...