"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
HN user
papaver
this.
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.
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%.
to prove you are elite, what do these mean: f00, BAR, SLOW, ABS, NB, TF, SLM
;P
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.
oh and loops constructs are not composable...
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.
would definitely agree. i find tmux + vim does almost everything i need. granted i don't try to script anything myself. generally there are command line tools or vim plugins that do most i want. adding to much gravy to vim also just slows vim down which can be incredibly frustrating when one is used to typing very fast.
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.
if you enjoy functional programming and are looking for a utility library, ramda has been a joy. very very well thought out. being able to compose functions together and treat data as a stream of information being transformed is incredibly easy. it is also compatible with libraries which implement algebraic structures like fantasy land. coupled with the other r libs its quite fun to program with. just be careful as it gets hairy to read pretty fast if one doesn't understand all the functions that come into play...
// 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'])))));let them cheat. every assignment let them know that in the end they are only hurting themselves. the ones that want to learn, won't cheat. simple as that. and that ones that cheat and leverage it, great. hope that works out in the future at your next destination. all you can ever do is present the facts. there is no point wasting time trying to catch this.
yes, hiccup. small stuff is fine but when working with real apps and 100s of lines of html that make up pages... no thanks.
absolutely love clojure and all that it's taught me. i even ported many of the core functions to python so i could continue using them.
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...
SEEKING WORK | Asheville, NC | Remote Friendly
Master generalist with 30+ years of hacking experience, 15+ years coding professionally with a dozen languages on over half a dozen platforms. Highly adept at understanding business problems and architecting proper solutions. All development is well documented to ensure easy handoff. We know processes can be important as code. Linkedin has up to date recommendations from our clients. Links available in profile section and contact form at the bottom of website.
We charge day rates of $1,200 w/ a minimum contract of $12k (10 days).
can't say i'm a fan of the decorator to implement functional concepts. jut feels dirty. type hints in python are just as meh. feels like it's not taking advantage of pythons duck typing.
a version of try and either, with a decent do notation taking advantage of for comprehension... https://github.com/papaver/pyfnz
thats correct. its now $70 for new customers.
funny, comcast tried to do the same thing in longmont, CO and lost. we've had fiber unlimited 1gb up/down for $50 (i think $70 for new customers now) w/ no contract for over 3 years.
Because you won't care, you'll just make the thing for your enjoyment.
bingo. that is the lesson to be learned. it's all about the journey, not the destination. it really matters zero if you actually ship or release any side projects. all that really matters is the enjoyment working on it.
i've wondered the same thing about the overhead. the argument given to me by some friends in non-profits is that raising money is an art and they have to compete with profit companies for the same people. hence they offer high salaries for c-level positions who can bring in money. there are only so many people that are willing to do it for a under industry salary.
not sure i agree one way or another, but penny for your thoughts.
totally agreed. the best way to learn vim is slowly. teach your self one thing a day and use it all day. if you keep using it great, if not move on to the next thing. otherwise you get brain overload and someone is trying to teach you how THEY use vim and you don't create your own style.
wow thats the biggest cop out i've ever heard. quality 100% matters, if not even more. shipping crap code still makes it crap and it will come to bite you in the end.
libfreetype is an example of a great library, clean and well documented...
beautiful coding isn't a myth, it actually works... write code like poetry and it pays off 10 fold... less errors, easier to reason about, malleable... the benefits are extreme... try to actually experience something before making unfounded claims... i've been writing beautiful for over a decade now... once you realize code is written once and read 100 times, you'll come to the realization of doing it clean and right the first time pays of in the future, which means less work and bullshit...
can't say i'm a fan... i found the best way to learn to use vim is to force yourself to use it in an everyday environment. that means at work, where you need to get stuff done. and it will suck and hurt but it works. jump in the water and you will learn to swim. i wanted to quit around a dozen times but i stuck through it. sometimes i would copy and paste using the cursor and clicking so i could move forward, that's fine. you have to learn little things at a time. in 6 months i found i was fluent enough to get my normal work done with ease. 10 years later i love every movement of it and am still learning new things everyday... what an amazing editor...
i think the only unfortunate thing about this story is the lack of experiencing life on old pcs. the kiddo has definitely mastered video games and learned a whole bunch doing it but it's too bad he didn't have that same experience on a computer. one thing a computer gives you is a tool, which really taught me all about hacking things in so many ways. hand eye coordination and reflex gained from playing video games is awesome but problem solving skills are way more useful in the long run. the old school adventure games taught patience and problem solving like few games do these days.
i would say this is the epitome of followers vs leaders... a significant portion of devs are introverted, and don't have a life outside work, hence being in a social setting like the office is how they make friends and communicate with the world... yes i used to be one of them...
but once you have other avenues of creativity and life, suddenly working in an office is little more than mundaneness... i've been working remote for over 5 years, and usually do my best to hang out with my team ever few months, mainly to bond on a more personal level which can only be achieved in real time. but a week or two every few months is enough to gain that perspective. working remote is blissful.
there are two major problems. most companies are scared of remote workers because they don't have the trust that remote workers can integrate into the culture, and a large portion of people just can't handle working remotely. it's an art to be able to work without a definite schedule (like being at the office for x hours).
open space work environments are bullshit, read the actual studies done and all of them point to more controlled settings, which allow devs to get into the flow which allow them to produce some of their best work and allow the to be the most fulfilled by their work.
my dollar goes way father than the devs living in sf. i can visit when i want and then bail. i'd rather invest in my family, my house, and my hobbies than paying rent in sf or nyc. and yes there are plenty of cities that offer similar awesomeness for way lower price.
except clojure is one of the most powerful languages around atm? which is a lisp??
insomniac has been working on this kind of stuff for the last decade... the stuff they do is impressive, but don't think it just happened out of the blue...
completely disagree...
why using a throwaway account? if you are going to dis someone, at least stand up and don't hide.
most all companies ignore emails upon rejection (at least in my exp), don't take it personally.
my experience with svb has been the complete opposite. the initial programming test was short and sweet, shouldn't take much more than an hour. they reached out a bit after i submitted the quiz.
i've had a chance to speak with the crew and they are a great bunch.
was a little disappointed with these guys. spent sometime doing their simple challenge and cleaned up the code to look nice only to get stubbed with no reply. thanks guys.