HNHacker News
TopNewBestAskShowJobs

hercynium

140 karma · joined June 5, 2010

submissionscomments
hercynium··on Dress made of living mycelium can renew and repair itself
I'm guessing that the OP didn't know about the Ars article when they posted. Perhaps "serendipitously" would have been a better word?
hercynium··on Dress made of living mycelium can renew and repair itself
Cordyceps, huh? An interesting choice! And ironically the subject of an article on Ars Technica that just dropped...

https://arstechnica.com/science/2026/08/parasitic-zombie-fun...

hercynium··on Librrd Playground
I think the Internet is running out of names for things because so expected something related to this! https://oss.oetiker.ch/rrdtool/doc/librrd.en.html

Still, it looks pretty neat. Thanks for sharing!

hercynium··on Device-detector: Universal Device Detection library from User Agent
Same here... back in 2011 or so. We needed something much more performant than WURFL. My efforts eventually became a feature/product at Akamai known as "Edge Device Characterization" (EDC) using algorithms not dissimilar to how LLMs are trained today.

I can't speak to how good the actual product is today (or even when it launched, but that's a whole 'nother story), but during development it was capable of processing 100K RPS in a footprint of ~30MB RAM with ~98% accuracy compared to WURFL as a baseline.

hercynium··on Why not to use (f)lex, yacc or bison
I've had great success with a parser-generator known as "Marpa" [1]. One of the things I particularly liked about it is how simple it made to emit accurate and useful error messages when parsing complex languages. In addition, it can handle anything that can be expressed in BNF, and it's quite fast.

[1] https://jeffreykegler.github.io/Marpa-web-site/

hercynium··on Perl Master Plan
Buy here or read online for free. This is the official website of the book: http://modernperlbooks.com/ (hint - it's worth buying :)
hercynium··on Killer Rabbits in Medieval Manuscripts
What's he do, nibble your bum?
hercynium··on Antidepressant withdrawal: reviewing the paper behind the headlines
I agree, as I've missed a dose here and there over the years and experienced the intense paresthesia and headaches and nausea from withdrawal.

Background: I've lived my entire adult life (and most of my teens) with severe chronic depression. In my early 20's I started taking pharmaceutical treatment, and once I found the right drug (after trying many over the course of years) my life became manageable. SSRIs helped but I experienced severe nausea on most of them, or worse. It was only when I tried SNRIs like Effexor that things started to get better. YMMV, IANAPsychiatrist, etc, etc.

A few years ago I switched from Effexor to Cymbalta. Same class of drug - The Effexor simply wasn't helping as much as it used to and the switchover was done with a long taper-down and replace period. I even bought a lab-grade scale to measure out the contents of the capsules so I could cross-over smoothly.

All that said, Cymbalta has the same withdrawal effects, on about the same time scale - a single missed dose. But I wouldn't give it up unless something better comes along. I still struggle with my depression and the SNRI is just one tool in my toolbox for managing it.

hercynium··on ACE Submarine Cable Cut Impacts Ten Countries
It's a pretty impressive process. The cable is indeed hoisted up, after being "hooked" by a device dragging along the ocean floor. I think I saw a video of this once, here's one on youtube (not the same one I saw, but seems to have the same info): https://youtu.be/m6qTk5WNq9E
hercynium··on Ask HN: What's the most underrated programming language?
Smalltalk is definitely underrated. It can be an extremely productive language, and has built-in capabilities you won't find in any "mainstream" language that make coding in it very pleasant. :)
hercynium··on Ask HN: What's the most underrated programming language?
This depends on your definition of "underrated" but I'd definitely throw Perl 5 into the ring here.

Edit: Specifically, Perl 5 + CPAN is what makes it so much better than many people think. The language itself is insanely flexible, which lends itself to extensions that greatly increase its expressiveness. IMO, if you start with Moose (from the CPAN) as part of your "core library" Perl 5 becomes a very powerful tool for writing very nice code, at any scale.

hercynium··on Citus Unforks from PostgreSQL, Goes Open Source
I hope that at least Cloudera will profit and thrive. Having used plain Apache components, then Hortonworks, then Cloudera... They are far and away the superior distribution, regardless of whether or not you are an "enterprise" customer.

My $employer paid Hortonworks for a support contract and I have no qualms declaring publicly that it was a total and utter scam. (We are a Java shop and know our shit)

If I go into too much detail I'll write countless pages like my internal report on why we needed to switch, but the bottom line is that Cloudera's products are well and honestly documented, while, as of last year, Hortonworks' products are simply one land-mine after another.

Their management platform (Cloudera manager) being closed-source is barely a mark on the comparison analysis when you compare it to Ambari in practice. Ambari is a bad joke and I'd rather do without it after spending significant time using it and trying to extend it.

And I could go into excruciating detail as to how Hortonworks abuses the Apache License to try and force lock-in. It's disgusting and pathetic.

hercynium··on Teaching kids to program in their native language
While Perl 6 was designed with English method and object names, it's a fully-Unicode-enabled language, with the ability for identifiers and even operators to be defined in any language one may desire. The name of the (currently) primary implementation is a Japanese word, "Rakudo", which is also a pun in Japanese depending on how you say and/or interpret it. Larry specifically wants Perl 6 to noy be limited by English as much as is practical (or even impractical, if you know him you'll understand - to him, code is just as much poetry and art as it is engineering!)
hercynium··on Perl 6 Released
I can't compare to the tools you mentioned since I haven't done much PHP in the last 10 years, but for Perl, I would strongly recommend you check out the following (Most are from the CPAN):

  * For a graphical IDE: Komodo or Padre or Eclipse with EPIC (great debugger support in those, since Perl 5's built-in debugger is pretty old-skool, requiring significant skill and experience to use effectively)
  * For code quality/standards static analysis: Perl::Critic
  * For performance profiling: Devel::NYTProf (seriously one of the best profilers I've used in any language)
  * For test coverage analysis: Devel::Cover
  * For benchmarking: Benchmark (core module) and friends
  * A REPL: Devel::REPL or Reply
  * On-demand debugging: Enbugger and Devel::Trepan
  * Unit testing: Test::More (and there are many, many other Test::* modules for anything you can think of that use the same general testing framework as the basic Test module that comes with Perl 5)
And there are so very many others out there that to mention them all would take all day, but these are the ones I use and like the most. Of course, others may have their own preferences and I'm sure there's even better stuff I haven't yet discovered TIMTOWTDI and all
hercynium··on Perl 6 Released
Reminds me of a friend whose band cut an album back before anybody could do it, and got a local music chain to put them on the shelves. A month later, he bought a single copy from that store, explaining, "I just wanted to double my record sales"
hercynium··on Sthttpd: Tiny and fast http server with a mature codebase
I imagine this is pronounced like the word "stupid". I'm not saying it is, but it's an amusing thought :)
hercynium··on Akamai release source to their custom secure_malloc for OpenSSL
I haven't been there for almost two years, even then, I'm sure most engineers wouldn't have stood silent if an OSS license was being violated... unless their managers made them afraid for their jobs and careers for doing so. Oh, and getting permission to submit a simple patch made to an otherwise completely GPL'd piece of software was always an exercise in frustration. Send the necessary info to legal. Wait 3-6 months for them to say no. Lather, rinse, repeat. It was pretty damn bad while I was there.

Now, my current employer... Email your manager: "I wrote this entirely in-house and would like to open-source it." Manager: "OK, let's talk to Legal" Legal: "OK, get at least one other person to verify that it doesn't contain any trade secrets and sign this." Upload to github. Done.

And submitting patches upstream - just a matter of code-review and sending it out. Now that's OSS-friendly.

hercynium··on Losing graciously
Indeed, I think we're about to see some very interesting times in the next year or so, with regard to GUI/Windowing systems in the Linux world.

Wayland has been a long time coming, and I do hope that's because those working on it are really shooting to get things right. Mir is interesting, and it looks like it will be able to do some things that Wayland/Weston can't, or would require some difficult hacks or even spec changes to make work. I don't know if Mir would be better than Wayland for me, but if you ignore all the FUD from both sides, I think the bottom line is that Mir is better for Canonical's plans unless or until Wayland/Weston can be changed to accommodate their needs.

I personally have no positive or negative opinion on Mir vs. Wayland, but I hope that at least one truly delivers on their potential and shows a clear improvement over our old trusty ;) X11/Xorg.

hercynium··on Losing graciously
Sometimes that's the best perspective to have. And in this case, I believe it is. If left up to us engineers/hackers/nerds, we would continue to stubbornly work on or with one system or the other, prolonging the debate indefinitely. And hey, if enough people really feel strongly that Upstart is superior, it's FOSS! Fork and build a community! I know it's not easy but if enough people share your passion it can happen, and that's Yet Another Reason(tm) Open Source rocks.
hercynium··on Losing graciously
AFAIK, Packages are available in Arch and the latest releases of Fedora may have Wayland packages available, but it's not (yet) the default window system for either distro. Fedora has been planning to ship Wayland in the main distro for some time, but it's not an easy task, and it keeps getting pushed out to "the next release". They want to do things right, and seem to be the biggest supporter of Wayland, so it may still be some time before a major distro starts using it as their primary GUI layer (aka windowing system, though I'm not so sure that's an accurate term for these things anymore)

In addition, GNOME is busily porting everything to work on Wayland. I think when that is finally done, we will begin to actually get Wayland-by-default on a few dists, and from there, well... that depends on how well it works!

Links to additional info:

  https://fedoraproject.org/wiki/Changes/Wayland
  http://blogs.gnome.org/uraeus/2013/09/09/fedora-wayland-update/
  http://fedoramagazine.org/?p=538
  https://wiki.gnome.org/Initiatives/Wayland
  https://wiki.gnome.org/ThreePointEleven/Features/WaylandSupport
I personally have nothing against either Wayland or Mir, I just want my system to work and if I can get better security, performance, features, etc out of it... score!
hercynium··on Even Akamai screws up their SSL certs
chuckles

This isn't a SSL cert screw-up, but certainly a silly misconfiguration. They should certainly have known better than to let that happen.

To be fair... when I worked there, I thought about different ways to transparently enable SSL across all domains using a CDN that would work with all existing SSL-enabled browsers and it's a freakin' hard problem. There are potential solutions, but they're not particularly cheap or simple given the IPv4 address crunch and for Akamai even more so since the edge servers are so widely distributed.

Bottom line - I never pitched the idea anyway because while I was interested in making the internet a better place, I knew that it was DOA at Akamai because they're much more interested in making it a more profitable place, and I couldn't think of a strong-enough business case...

hercynium··on Fired? Speak No Evil
Then my sympathies to you. But people who've been in this industry far longer than I have assured me - it's pretty damn normal.

Oh, and people in other industries have told me it's par for the course everywhere.

This is why networking is so important. That's my main advice to give. Meetups, user-groups, etc... get involved in them and do your best to learn, interact, and "level up" (to steal a brilliant recruitment/marketing slogan from the big A)

hercynium··on Fired? Speak No Evil
No apologies needed, but thanks! I learned some valuable lessons.
hercynium··on Fired? Speak No Evil
Heh. Almost two years ago I was fired from a fairly prominent internet services company... Ah, who am I trying to avoid? It was Akamai.

I speak ill of them all the time. Not about their impressive infrastructure and engineering, or the scores of brilliant people I had the privilege to work with. No, it was more my experience with the corporate culture and the pervasive games of "power politics" that anybody who wasn't a manager was constantly subject to. Unfortunately I ended up in a position to be the patsy for a director's bad decisions, to make a long story short.

Indeed, I was asked to sign an agreement in exchange for money, and because of the timing of things (newborn baby 2.5 weeks prior) I needed the money more than I needed the freedom to speak my mind about the situation. And it really wasn't very much money, just like in the linked article.

However, despite sending the signed agreement certified mail, the money never showed up, their HR department claims it was never received, and the money didn't end up mattering so much as I was fielding offers within a month and began my current position in short order.

Since then I've received several letters from them, asking for my signature on various things and I refuse - There's simply nothing they can do to me. But I know quite well that I'm lucky. I've got a skill set and experience that puts me in demand, and anybody who asks why I was fired can get a simple answer: "Here's my LinkedIn profile, take note of the slew of recommendations I got within a week of my termination."

(I will add, my subsequent contact with their HR and legal department did have me worried about things for a while - not to mention various thinly-veiled verbal threats made by my former director before and during my termination, in case you're wondering just what kind of politics and culture made me dislike the place)

hercynium··on The danger of "language" in programming (2009)
Our backgrounds and experiences may well be very different, leading to starkly different opinions - but, well... that's programming!

Though I don't know Haskell, ML, or Rust, I do know Java, Clojure, C++, and a few other languages quite well.

In a nutshell, I like type-checking and smart-pointers, and module systems and such. They often save me lots of trouble! But not all the time. Sometimes, these features get in the way - either to making the code more flexible, or to making the code more readable. (casts dirty look at Java)

But at the end of the day, no matter how precisely one can communicate to the compiler, and no matter how good one's compiler is at detecting (or even correcting) inconsistency, flawed logic, corner-cases, over-specificity and under-specificity (or the reverse of genericity, take your pick)... We puny-brained humans still manage to screw things up. The compiler can't read the spec, never mind actually cognitively understand the problem trying to be solved... so it's up to us to attempt to translate.

And fill in the inevitable gaps.

And attempt to anticipate future needs.

And finish on-time.

With our pitiful, buggy, meat-based processing organs.

Sure, "readability", "maintainability", and "understandability" are all pretty subjective, but that's part of the point. With the languages I've used, I find that sometimes the "safety mechanisms" get in the way. Working around them with "design patterns" tends to add code that might not otherwise be necessary. And might contain more bugs. I'm sure I'm missing something life-changing by not knowing Haskell or ML, but more important to me is that the code I write be, well... "readable", "maintainable", and "understandable" by whomever might be working on it (fixing, extending, whatever) next!

'Cause experience has shown me that bugs happen. And I want finding and fixing them to hurt as little as possible - whether it be me or some other poor fool.

Oh... also, I couldn't help but have a snarky response to your last remark: (no offense intended :)

> I see writing buggy code as negative productivity. So a language that gives you the illusion that you are writing correct code, when you in fact are not, actually makes you less productive.

FTFY: I see writing buggy code as inevitable. So a language that gives you the illusion that you are writing correct code, (by sucessfully compiling) when you in fact are not, actually makes you less productive.

hercynium··on The danger of "language" in programming (2009)
Bingo!
hercynium··on The danger of "language" in programming (2009)
Indeed, the blurring of this distinction became the means by which Larry Wall earned his college degree!

https://en.wikipedia.org/wiki/Larry_Wall#Education

He talks about it in more depth in this interview: http://youtu.be/aNAtbYSxzuA

hercynium··on The danger of "language" in programming (2009)
There are two ways to deal with bugs. Correcting them, and avoiding them. ... Of these two, the only one that is significantly influenced by the structure of programming languages is avoidance.

This is an interesting statement to me, and one that I think may be telling towards the author's experience as a programmer. This is not my way of saying he is a poor or inexperienced programmer! I skimmed through a few other articles on the site and what stood out to me is that he is heavily "academic." Some of the best programmers I have worked with had deep academic experience and were quite adept at writing fast, concise, correct code in many different languages.

What stands out to me is the absence of something that (as is my personal observation) most experienced programmers in non-academic settings begin to realize at some point... While avoiding bugs (by, for example, choosing a language with strict type-checking, or immutable data/vars) is quite important, writing code that can be easily corrected is arguably just as important!

In regards to just the use of a programming language, this comes down to choosing a careful balance of constructs - syntax, features, naming, etc. Coding standards for a project or organization are not just there to stoke somebody's ego or cater to the "lowest common denominator". Well-chosen standards and conventions are there to simultaneously avoid bugs and make code easier to debug and maintain - which is what one must do to make corrections!

It is therefore crucial to insist on it when choosing (or designing) one.

This sentence is what really drove me to comment: No programming language can prevent all bugs. Not even most bugs.

In practice, I have even found that constructs and limitations that are intended to prevent bugs of one type can lead to bugs of some other type. In the worst cases, these limitations can lead to programmers making code that is much more verbose and complicated, which, of course... leads to more bugs that are harder to correct.

IMO, one should choose a language based on many, many more criteria than "avoidance of bugs." Personally, one of my top criteria is to choose a language with which those who will write and maintain the software (now and in the future) are going to be most productive.

hercynium··on BASH as a Modern Programming Language [ppt]
For an interesting take on "Modern Bash" I came across this a few months ago, from the deliciously twisted genius that is Ingy döt Net: https://github.com/ingydotnet/bpan-bash
hercynium··on For Nearly Two Decades the Nuclear Launch Code Was 00000000
"That's the stupidest combination I've ever heard in my life! That's the kind of thing an idiot would have on his luggage!"

/obligatory

Page 1 of 2Next →