HNHacker News
TopNewBestAskShowJobs

preordained

658 karma · joined December 30, 2015

submissionscomments
preordained··on 'Unsolvable' exam question leaves Chinese students flummoxed
That's like a question that might appear as a gag in a SNL final exams skit. I'm for the odd unconventional question that might not follow a premise that was well-established in class per se (used deliberately, and sparingly)...but not a question which can only result in confusion and frustration.
preordained··on Ask HN: What influenced your personal growth the most?
Some guy on a forum running circles around a group of us doing some golf/puzzle programming in Haskell. Made me realize how much I had to learn, got me into functional programming.
preordained··on The mysterious case of the Linux Page Table Isolation patches
If you're taking off for vacation and forgot to lock your door, the best thing would be to go back and lock it. If you couldn't get the door locked right away for some reason, you probably wouldn't want the news of your unlocked door broadcast through your neighborhood...

Obscurity actually is a layer of security. The mistake is is when people are dependent upon it.

preordained··on Opinions on functional programming and OCaml
I think a lot of these grievances, substantial or no, are addressed pretty well in Clojure. Early return comes to mind. I do it all the time in the form of a loop macro "spitting out" a value instead of recurring. I know I felt more handcuffed in other functional languages, where I had to get weird to do what I wanted...but I don't think it has to be this way.
preordained··on Former Facebook exec says social media is ripping apart society
True. Porn didn't invent lust...it just perfected it, heh.
preordained··on Former Facebook exec says social media is ripping apart society
I think this is very insightful. Agree, that the online experience basically allows an unimpeded vent for frustrations that are always there but are checked in physical social situations. It's kind of a negative feedback loop, though...in the sense that when you are seeing everyone's unfiltered thoughts, you feel even more justified in your own frustrations and prejudices. You're just blowing off steam, but these thoughts are genuine representations of these "other" people.

Discontent would be expressed somewhere, but yah, it's definitely encouraged to escape (no friction!) through Internet discussion.

preordained··on Integration tests are a symptom of poor design
Eh...if you have a REST API for instance, If I'm an ardent user of your API I'd sure feel a hell of a lot better if you were testing at the REST layer. I'm sure your mocks for your internal helper classes are really swell, but being a dev It really doesn't make me believe the thing is actually working.

https://twitter.com/kentcdodds/status/628658648001048577

preordained··on The Lure of a Better Life, Amid Cold and Darkness
Not for most...but there are us weirdos who actually like the cold and dark :)
preordained··on Google collects cell tower info even if location services are disabled
Yah, if you thought changing privacy settings in $big_company software would really be honored, I have a bridge to sell you.
preordained··on Absent-mindedness as dominance behaviour
Exactly. One I'd have a hard time explaining by this model is my comical ability to get lost while driving. This has almost always hurt me--occasionally others--but primarily me. I have the same problem navigating halls in a video game. I've worked at it and gotten better, but that weirdly specific deficit has always haunted me all the while Ive been perfectly adequate as a programmer, etc.
preordained··on Eight years of Go
This isn't true at all depending on your work. I program software that has to work alongside other programs on busy file systems...failing to read/write a file is not someone else's problem...it needs to be handled, logged, there is potentially a retry and/or notification.
preordained··on Why I'm Productive in Clojure (2013)
I spent a good year or so with Haskell. I guess at first blush, one thing that jumped out was that Clojure was made from the jump with a focus on productivity and pragmatism, whereas you never feel too far from the academic origins of Haskell. Clojure is a very shrewdly designed--it's not proud, it takes leverage where it can find it, and makes some very deliberate and sensible trade offs. A large aspect of that is the JVM it sits atop of. You will know that it's Java underneath the hood, but this is not a bad thing at all. You get to have your cake and eat it too. It's done really well in the sense that while it would be awkward and not Clojure-like to promiscuously call native Java--especially code with side-effects--it it is perfectly alright, and practical, to pull in any of the multitude of proven Java libraries where it can obviously save you time and effort. There is no snobbery in the core language itself or in the community about "ew, icky Java". Or put another way, there is no from-scratch ecosystem like in so many languages where a new language means starting over (so the language needs a crypto library, and a web server, and...) Not to mention, many of the utility libraries out there are largely functional in nature anyhow (you can use a massive chunk of the wealth that is Apache Commons as just an arsenal of pure functions).

In nitty gritty terms, programming in Clojure actually feels a lot like programming in Haskell to me, without the heavy type system. Lazy infinite lists, all your FP classics like map, reduce, filter, etc. work exactly like you would expect. But I don't miss having to create a stack of monad transformers in an area of code where I need to mix IO and state or something...and using type synonyms to mask the monstrous Turing-complete type signatures I had to make to describe it... In Clojure, you just put the "dirty" work in its own function, clearly separated from the pure functions (which are the de facto default), and you push them to the boundaries of the system while passing extracted data into pure functions (just like Haskell). If you did anything different, you'd get the stink eye from even the least principled Clojurists. It's just not done. A ball and chain type system is unnecessary.

The lack of (explicit) types has been at the very most a minor nuisance. Occasionally I mistype something or miss a parameter, you're going to see the error pretty quickly in the REPL. If you run or test your code at all, the pedestrian type errors (oh, that was a string not an int) will be wrung out immediately. That benefit of type systems (preventing typos, essentially) has been much, much overstated IMO. Given you're going to be in the REPL a lot with Clojure, you'll be iteratatively developing and running your code constantly, so it's really not an issue. As far as refactoring, I think that's where there is more meaningful benefit. I use Intellij/Cursive IDE, and the refactoring capabilities are good--much like if it were a Java project (and there are hints and such for the typos I mentioned earlier, autocomplete, etc). So, while it is more of a challenge for IDEs, there are some excellent ones that do a pretty bang up job of inferring types for you.

I haven't used Clojure on the job (Java dev by day), but I would have no problem using it for something "real", whereas I never felt anywhere near confident in using Haskell for something outside my own fiddling.

preordained··on Why I'm Productive in Clojure (2013)
I've really taken a shine to Clojure. Parentheses and dynamic typing initially kept me away, but they're far from the thorns they've been made out to be.

Parentheses? You don't even see them after a short while--as a beginner, you use something like parinfer, you are good to go. That, and like all lisps, you begin to appreciate programming directly in the abstract syntax tree: the language you type and the way it is interpreted aren't disjoint things.

Dynamic typing? Being functional, immutable by default, and data orientated steal the vast majority of the sting from that in my opinion--and leave you with often downplayed advantages. On the last point, "data oriented", to put it succinctly, data itself is first class or the prominent currency among Clojurists, rather than a zoo of abstractions that never quite fit and and all have to be reconciled and made to play with one another (and often the reason you need types everywhere to keep it all straight).

But where types--or validation--are more crucial near the boundaries of the API, there are outside the box solutions like Spec that don't rely on a baked in type system.

The recent keynote by Rich Hickey covers a lot of these points (and far better than me):

https://m.youtube.com/watch?v=2V1FtfBDsLU

preordained··on To type or not to type: quantifying detectable bugs in JavaScript
Don't you just need to to actually use/test your code? Don't you need to do this in a statically typed language as well?
preordained··on Moving Java Forward Faster
Java is the worst managed project you've ever heard of? You must live a charmed life.
preordained··on Ask HN: What books have made the biggest impact on your mental models?
Life:

The Disappearance of the Universe

Programming:

Effective Java - straight forward pragmatism

Learn You a Haskell for Great Good - took me down the rabbit hole of Haskell, which is just a natural mindbender

preordained··on The Unreasonable Effectiveness of Dynamic Typing for Practical Programs [video]
The thing I find interesting is that in many cases the types are "there", dynamic or not, except in most statically typed languages you have to type them out for the compiler. If explicit types everywhere arent an awesome communication tool, then shouldn't we be able to do away with them and keep the benefits? Or 85%? 90? Why not an uncluttered lisp or Python syntax and tools that don't require us to spell out the types by keyboard?
preordained··on Read This Before You Build Uber for X
I'm an introvert as well...plenty are...but I don't think avoiding "unnecessary contact" is really healthy. Introversion is a weakness as I see it honestly...a negative feedback loop of underdeveloped social skills yielding yet more fear, insecurity around social contact. It's not a binary condition like I'm a Leo or a diabetic. Just saying, it's probably better to view as personal challenge than a condition that needs to be accommodated outright.
preordained··on Ask HN: I just discovered a new algorithm. What should I do?
I'm so out of my depth here it isn't even funny. Just wanted to say way to go...whether you indeed have something novel or not, thats awesome to even have a brush with such a thing.
preordained··on E-commerce will evolve next month as Amazon loses the 1-Click patent
Haha. Single-click. 1-click-buy. The things you can claim rights to...utterly absurd.
preordained··on Pharo – Quuve
I thought Smalltalk did native UI, but not so much web stuff? Is this that Seaside framework they talk about?
preordained··on JavaScript Fatigue or My History with Web Development
All this great "progress" and "innovation"...and yet, have you been out there lately? The web? Everything just barely works, and I haven't the slightest illusion that I'm using anything but a patchwork networked application. Most times I'm trying to kill or avoid whatever the hell this page is trying to do and just get my text or content, or submit the stupid form.

I feel like if the front-end dev world is so keen on reinventing itself, it should just go all the way...repackaging HTML/CSS/JS in new and interesting forms and frameworks isn't getting anyone anywhere, IMO. Scorched earth, a new protocol for web applications...don't even call it the web anymore...just put on your CS hats and start over...kill the whole thing with fire.

preordained··on Google’s Flutter = React and Java Swing
For real. Cakewalk to do these sort of "responsive" applications in Swing, and Swing is hardly the most elegant native GUI framework (though well known).
preordained··on DevOps is a culture, not a role
There is too much. It's specialization out of necessity. I know enough "DevOps" to be dangerous, but in addition to having a deep knowledge of our product's codebase, the multiple features of our product, configurations, etc. there are not enough hours in the day to master (not simply be familiar with) Jenkins pipeline, Docker, AWS, Ansible, Zookeeper, etc, etc.

99% of the people who could claim to have knowledge of all the above in their organization either have a very shallow (read: not useful) knowledge, OR their product itself is simply the gluing together of various DevOps technologies listed, so there is little more to know outside that.

preordained··on MicroPython running “bare metal” in the browser via unicorn.js
"New". Haha. That's generous.
preordained··on I made a Phoenix webapp as a veteran Rails dev
I 100% respect that. It sounds like you didn't jump to that conclusion in 1 Phoenix project over a month, though...and when you say "my tasks" the situation may have been that you weren't churning out "normal" CRUD apps that Rails is so good at?

For sure its a lack of careful thinking and consideration of trade offs I'd take any issue with...it sounds like you didnt come to those conclusions out of emotion or a deep yearning for something new.

preordained··on I made a Phoenix webapp as a veteran Rails dev
Being aware and trying things is one thing, I meant more a seemingly cavalier attitude of taking all your eggs out of an old technology basket and putting them in a new one, with slim justification.

And then there is survivorship bias. What if by some strange turn of events, ColdFusion had continued to evolve and eaten its respective niche? While I wouldn't condone an attitude of not being open to new things, the ColdFusion stalwarts would look like sages, while people who invested in an upstart technology could well have wasted a lot of time.

The move "backwards" to older, more mature technologies happens often enough, too. Startup uses latest NoSQL thing, and then realizes an old timey SQL database would have saved them a lot of trouble, etc. It cuts both ways.

preordained··on I made a Phoenix webapp as a veteran Rails dev
What did he gain? Some performance? Did he need it, and was there no simpler way to get it?

I get the premise, just trying things and having fun. But I get the impression that in a lot (most?) scenarios this would be a lateral move at best. His last comment about going with Phoenix instead of Rails for new projects, if he's not just being kind, that seems like a major case of throwing out the baby with the bath water.

Goodbye 10 years of experience, knowledge of pitfalls, etc...hello 1 month of promise and years of gotchas and relearnings for small benefit?

preordained··on Let me take you through my dream office
It's an issue developers, or hacker news, harps on all the time. You would think we are working in some unregulated third world factory conditions. Most of us work in a comfortable office with plenty of amenities. Yes, the open trend is less conducive to work we do. Noted. I just feel fixating on this stuff and (IMO) exaggerating how vile and terrible the average working conditions for us are makes us look needy and entitled as a community. My .02

I'm just honestly disturbed how much this "issue" seems to resonate with hacker news. I could leave well enough alone, but I had an opinion I wanted to share.

preordained··on Let me take you through my dream office
This is a nice thought exercise...but that this is often treated like one of the great tribulations of our time as developers...it's a bit pathetic. I'm not saying things can't be better, but as a working people, we're not exactly oppressed.
← PreviousPage 7 of 10Next →