Z

Zef Hemel

zef.me · Personal blog · on HN since 2009

Zef Hemel, a software developer, writes about programming tools and languages like Clojure, Nix, and Dart, and about engineering careers.

What HN saysHN commenters link it for its posts on Clojure's Leiningen and web framework fragmentation, plus a piece on becoming an engineering manager.
55HN people shared it
15linked it in comments
50stories submitted
1.7Kstory points
8 years agolast shared
2009people per year2026

Most-shared posts

  1. 1
    Declaratively Provision Docker Images Using Nix
    5 people · 14 points · first shared 2013 · discussion on HN
  2. 2
    I Hate Puzzles: Am I Still a Programmer? (2011)
    3 people · 539 points · first shared 2011 · 255 comments on HN
  3. 3
    Pick Your Battles
    3 people · 108 points · first shared 2012 · 20 comments on HN
  4. 4
    Building Clojure Projects with Leiningen
    3 people · 51 points · first shared 2009 · 3 comments on HN
  5. 5
    Dart: Web Fragmentation vs. Web Development Fragmentation
    2 people · 17 points · first shared 2013 · 5 comments on HN
  6. 6
    Adia: A Week With Clojure And MongoDB
    2 people · 14 points · first shared 2009 · discussion on HN
  7. 7
    Who Needs Git When You Got ZFS?
    2 people · 7 points · first shared 2013 · 2 comments on HN
  8. 8
    The 100x Engineer
    2 people · 2 points · first shared 2017 · discussion on HN
  9. 9
    When Rails Fails, Follow-up
    2 people · 1 points · first shared 2009 · discussion on HN
  10. 10
    Javascript: OOP Style Performance
    2 people · 1 points · first shared 2010 · discussion on HN
  11. 11
    Who Needs Git When You Have ZFS?
    1 people · 206 points · first shared 2016 · 146 comments on HN
  12. 12
    The March Towards Go
    1 people · 185 points · first shared 2014 · 209 comments on HN
  13. 13
    Who Needs Git When You Got ZFS? (2013)
    1 people · 143 points · first shared 2014 · 79 comments on HN
  14. 14
    Three Routes to Spaghetti-Free Javascript
    1 people · 60 points · first shared 2011 · 15 comments on HN
  15. 15
    Declaring Reality: An Introduction to Datalog
    1 people · 60 points · first shared 2016 · 13 comments on HN

What HN people wrote when they linked it

tosh · 2013-02-12
I like many of the state of the art frameworks, especially backbone.js and I'm really thankful for how much impact they had on making complexity in web apps manageable. That said I absolutely agree with you regarding the fragmentation problem which seems more like a stack problem to me. For me personally it looks like what the web desperately needs is a common ground for how widgets work and behave. Web Components look like what we will get and I really can't wait to see that happen: https://dvcs.w3.org/hg/webcomponents/raw-file/tip/explainer/index.html Here are some examples from Dart Web UI (web component polyfills for Dart) http://www.dartlang.org/articles/dart-web-components/ Also here is a great article about the web stack fragmentation that you might be interested in: http://zef.me/4835/dart-web-fragmentation-vs-web-development-fragmenta… Exciting times, Thomas
sketerpot · 2010-04-14
I'm tickled that their build system, a slicker replacement for Ant, is called Leiningen. http://zef.me/2470/building-clojure-projects-with-leiningen It's a reference to the classic short story "Leiningen versus the Ants", which is a good read: http://www.classicshorts.com/stories/lvta.html And the build system looks nice. It has the pleasant feeling I get from scons, with the advantage of being Clojure-specific, so common Clojure tasks are easy.
Zef · 2009-11-12
btown · 2014-04-02
It's interesting that you mention Javascript. There was recently a post on CoffeeScript that hit the frontpage, and one reference it linked was to a point of contention between CoffeeScript's developers and a library creator over whether CoffeeScript should introduce a nontrivial amount of wrapper code to support attribute setters and getters [1]. The library author made the following argument: For CoffeeKit specifically, the getters for all accessor properties are totally without side effects. They are getters because they have to wrap access through objective-c selectors. I can't make them fields. I also can't in good conscience make them all functions, requiring people to write: uikit.UIScreen.getMainScreen().getBounds() instead of: uikit.UIScreen.mainScreen.bounds yuck. This, however, speaks directly to the point at hand: one could argue that a library creator in good conscience should make them all functions, since it would force library users to "reason about performance." It's tempting to remove extra syntax whenever possible, but sometimes verbosity can reduce technical debt insofar as it encourages developers to think about performance. Ruby on Rails definitely leans towards reducing verbosity, but it has such a good ecosystem that even though I'd like a platform that makes things a bit more apparent about what things have/don't have side effects, it's still the best option for many projects that need to…
chris_melman · 2019-01-04
A short but interesting post on becoming a manager in engineering https://zef.me/so-you-want-to-be-an-engineering-manager-bcddaf302938
virgilp · 2018-02-14
> I'm talking about completed, tested, accepted features, as defined by our project teams. Still rather strange metrics for productivity in a senior engineer. This is more what I'm taking about: https://zef.me/the-100x-engineer-6d50a690a866 If you're really senior, you shouldn't be working on the kind of features that get delivered at a rate of "5 per sprint". More like on stuff that gets delivered once every year. The junior SHOULD outperform you in "code produced" - they just shouldn't outperform you in dollars produced (or saved).
ramblenode · 2016-05-26
Yes, you can do this. There is a utility "nix-docker" that will convert a Nix configuration file into a BusyBox Docker image (see e.g. http://zef.me/blog/6049/nix-docker)
CMCDragonkai · 2014-07-15
The advantage of Mongrel2 is this: http://zef.me/4502/message-queue-based-load-balancing Message queue based load balancing. Also dynamic load balancing without restarting any daemons.
amirouche · 2014-04-29
Maybe this nix-docker can help http://zef.me/6049/nix-docker direct-link to nix-docker command line dance http://zef.me/6049/nix-docker#introducing-nix-docker
jakozaur · 2013-02-12
http://zef.me/4235/pick-your-battles Pick technologies which are most suitable for the job, not the most "hyped" ones. Also don't forget that sometimes the latest technologies comes with innovation tax, you may be the first to solve some issues, because of the small ecosystem.
pmahoney · 2014-10-20
> how you do we (container creators) know the dependency tree for the app Nix package manager [1] offers a potential means to know the complete dependency tree. If you're not familiar, a nix expression to build a package takes a set of inputs (specific binary packages of, e.g., make, gcc, bash, libc, libxml2) and produces a binary output (depending only on the inputs). The run-time dependencies can be a smaller set than the build-time dependencies and are deduced by observing shared library linking for example. I've been using it (outside Docker) for various Ruby apps, and I can't say it's been easy, but a large part of the pain has been Rubygems' inability to encode dependencies on C-libraries (e.g. libxml-ruby depends on libxml2). There have been attempts at provisioning Docker containers with Nix [2] Of course, if you are using Nix, some part of Docker's isolation becomes redundant (Nix isolates multiple version of things on the filesystem using plain-old-directories, so it's trivial to run ten different versions of Ruby side-by-side, for example). [1] http://nixos.org/nix/ [2] http://zef.me/6049/nix-docker/
badave · 2010-03-02
Ok, for example, this morning I've gone through: http://zef.me/2913/javascript-oop-style-performance http://cairnarvon.rotahall.org/2010/02/28/search-trees-are-e... http://norvig.com/sudoku.html http://en.wikipedia.org/wiki/Knuth%27s_Algorithm_X http://www.topcoder.com/tc?module=Static&d1=tutorials... http://www.extjs.tv/index.php/2010/javascript-debugging-tech... I suggest reddit.com/r/programming, Hacker News obviously, and YourVersion.com for finding new stuff to read based on your interests, and then you can usually find more to read without too much trouble. There is always more!

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close