HNHacker News
TopNewBestAskShowJobs

bitwalker

511 karma · joined May 10, 2013

Senior Compiler Engineer at Miden
submissionscomments
bitwalker··on Npm's Self-Signed Certificate is No More
Software development as a career isn't about making you as the developer comfortable. Your job is to build high quality software using the tools given to you. If you are good at your job, and you are able to be a convincing salesman, you can often build software using the tools _you_ want (this has never been an issue for me anyways), but it is not going to be given to you on a silver platter.

It sounds to me like you are convinced that Node is the one and only way to build the software you work on (I think that's bullshit frankly), and you won't accept any alternatives. Well, you are about to find out the hard way what happens when you aren't willing to work past your own pride.

bitwalker··on Ask HN: Why isn't Erlang more popular?
I've started using Elixir on my projects over the last few months, and I absolutely love it. It's not just the cleaner syntax, the language adds features on top of what Erlang already provides, and provides easy interop between the two languages, the documentation is better, the build tool (mix) is great, and I think the community is awesome.

It's a new language, and it won't be 1.0 until later this year, but if you're willing to live on the edge a bit, I think the rewards are well worth it.

bitwalker··on The Erlang Shell
I think the difference here is that the migration of internal state happens the moment the module is swapped out in memory. Erlang doesn't have mutable state, so state is instead passed around within a module. When a fix needs to be deployed, the two versions (old and new) run simultaneously, any new processes immediately run the new code, old processes call a `code_change` function which takes the current state within that process, performs any transformations required for the new code, and then the old module code is swapped out for the new.

That's not at all a perfect explanation of the process, but it's more or less useful enough to describe the difference between the two platforms.

bitwalker··on The Erlang Shell
Thanks for breaking it down! I'll have to investigate further, but there is a lot here to like.
bitwalker··on The Erlang Shell
> It's not. iIRC there's even a version of the JVM with code reloading.

I've seen some info about the JVM implementation, but I could've sworn it wasn't able to preserve state while hot swapping. I haven't dug in to it though, so it's totally possible it handles that.

> There are a tonne of features in Common Lisp like this that are geared towards robust, maintainable software.

I'm a fan of Lisp in general, though my experience is limited to a tiny bit of Scheme and experimenting with Clojure. I'm glad to see that stuff like this is available in at least one of the Lisp variants! Question for you (if you program in Common Lisp): What are the main selling points? I spend a lot of time already with a couple of languages, Elixir/Erlang (for fun), C#/F# (for work) - what is it that would make me want to switch from one of those to Common Lisp?

Thanks!

bitwalker··on The Erlang Shell
Is it actually possible to do hot code reloading while preserving the state of the running system in Common Lisp? I'm genuinely curious, I kind of had this impression that it was a feature fairly unique to Erlang.
bitwalker··on Stop the autoconf insanity – Why we need a new build system (2003)
If that was true then people wouldn't be trying so hard to build alternatives.
bitwalker··on Mac Pro (late 2013) replica inside a real trashcan
That's good to know, might have to give that a shot next time. I've actively avoided doing it that way up until now since it's the standard recommendation not to. I just upgraded mine to 10.9.1 today from 10.8.5, by booting from a Unibeast USB stick - worked flawlessly.
bitwalker··on Mac Pro (late 2013) replica inside a real trashcan
You can't use Software Update to install OS updates (you can update everything else through there though). It's fairly easy to install the updates via USB as long as you have your configuration and drivers backed up though.
bitwalker··on Hate Parking Tickets? Fixed Fights Them In Court For You
Tickets being a revenue source because some people value the convenience of parking illegally over the cost of the ticket is one thing. Tickets being given deliberately as a means of increasing revenue is another.

I've been given tickets for parking illegally when I was parked in my own residential parking lot, while displaying the required parking tag on my dash. It was done deliberately in the off chance that I might be too lazy to fight it. It's that kind of blatant disregard for the spirit of the law that they are arguing against, not tickets being a source of revenue in the more general sense. Granted, I'm not them, so maybe they were - but that was what my impression was from their comment.

bitwalker··on Elixir and the Internet of Things – Handling a Stampede
Personally I don't find Ruby and Elixir to be very similar. Maybe some of the terms are the same, but in general they feel very different. Elixir has a much more consistent syntax than Erlang (imo), it's macros are more powerful, it has a great build system right out of the box (inspired by leiningen for Clojure), and it can make use of any Erlang library with no additional effort. I'm also a huge fan of Elixir's pipes feature, which I think makes a lot of code much cleaner and easier to read. I love Erlang, but I wouldn't call the use of Elixir over Erlang a bandwagon - there are good reasons why one would favor Elixir as a starting point. There are probably reasons why one would choose Erlang instead too, but I feel like if you are at a point where you can choose one or the other, Elixir makes the most sense.
bitwalker··on Elixir is for programmers
I recently started programming in Elixir. I chose to rewrite the customized Hubot instance I'm running at my company from the ground up in it - it's been a great way to learn the language, and especially OTP.

OTP is really what makes Elixir (and Erlang for that matter) so impressive. Supervised, lightweight processes just seems so obvious as a solution to fault tolerance and concurrency - coming from C#, where doing multi-threaded programming is error-prone at best, Elixir/OTP is a dream. I do miss the type system from C# or Scala, but type specifications help to mitigate the loss.

The one other feature that has been really pleasing to work with is pattern matching. Scala is the only other language I've used with some form of it, and after using Elixir/Erlang's pattern matching, Scala's seems deficient in comparison. It's an insanely powerful construct, I wish more languages had it.

bitwalker··on Why Mac users don’t rant about the OS
You didn't need to download Xcode for that, you just run `xcodebuild -license` from the command line.
bitwalker··on How GitHub No Longer Works
I suppose you might be right, but I definitely don't feel that way myself. If it wasn't for GitHub, I don't know if I would've made an effort to get involved with the projects I use. It's made it insanely simple to find a project, get documentation and a list of open issues in one place, with a consistent UI across projects. It's also been a pleasure committing fixes for projects I use - as mentioned above, being able to discuss the fix in a code review style environment, with the original author is hard to beat.

Projects I've published myself have been a breeze to maintain, because pull requests are really easy to manage. I can review changes with the submitters, pull the changes myself to tweak if I need to, and auto-merge when changes are simple enough. It also acts as a nice portfolio for potential employers.

I guess I feel like OS in general is benefiting from the likes of GitHub, not suffering. Just my two cents.

bitwalker··on Mercurial 2.8 Released
I'm curious why you need to preserve the timestamps. I'm not saying it doesn't make sense, I just haven't ever had a time where that's been a requirement.
bitwalker··on Anyone Else Notice Login to Random User on Refresh of HN?
Yeah this happened to me, I created another post about it as well with some screenshots. So bizarre.

http://i.imgur.com/27NyTmm.png

bitwalker··on Every time I logout, I get logged in to HN as someone else
I came home from work a few minutes ago, hopped on HN, and I was logged in as some other random user. I have no idea how, I've never logged in to HN on any computer as anyone other than this account.

Even stranger, when I logged out, it automatically switched to another user! Clicking it a third time, and I was logged in as a third random user. Finally, after 3 attempts to logout, it finally allowed me to login as me.

Anyways, I'm sure someone probably wants to know about this.

bitwalker··on An Absolute Beginner's Guide to Node.js
async/await are just sugar over the much older asynchronous delegate pattern that has been in the language since day one. So yes, they were.
bitwalker··on Learn By Example: Scala Parser Combinators
This is my first foray into explaining anything programming related, and I'd like to do more of it. I'm looking for suggestions on writing style, issues with the code, or with how I've explained things - so any comments or suggestions are welcome!
← PreviousPage 7 of 7