HNHacker News
TopNewBestAskShowJobs

msluyter

4,603 karma · joined March 5, 2008

Software Archaeologist. Lives in Orlando, FL. Unfortunately.
submissionscomments
msluyter··on State Dept.: Clinton IT aide's email archive is lost
It is hopeless to expect voluntary transparency by the government...

Well, not only that, but transparency rules create certain perverse incentives. If all emails are discoverable, for example, then people will simply tend to shift their meaningful conversations to the phone.

msluyter··on Nestlé Wants to Sell You Both Sugary Snacks and Diabetes Pills
Adding to the varieties of other explanations countering your "one explanation:"

1.) Time. Although I'm (perhaps overly) sensitive to which foods are healthy and which aren't, I often find myself eating sub-optimally simply because I can't muster the time/energy to make something healthy, do the resulting dishes, etc... And veggies can be some of the most labor intensive. Or, you want a quick snack that's also really healthy? Here's $5 for a small bag of kale chips (see "Cost," below.)

2.) Skill. It's taken me a while to learn to cook well enough that much of what I make is at least on par with (non-gourmet) restaurant food.

3.) Cost. Compare the beans with sugar to higher end -- organic, in particular -- varieties.

msluyter··on How to reduce the cognitive load of your code
Well, sure, but that's why you don't share project files.

I think that if you do things correctly, your concern is mostly mitigated. My last job was Java/Spring. As someone noted above, you really don't want to be working with Java/Spring without IntelliJ.

But we never had issues with anyone breaking builds due to screwing up project files, because those weren't shared and the project would run/build/test immediately after import into the IDE without any additional tweaks.

I think it's sort of odd that many folks complain about IDEs, but then use vim with a million plugins. Isn't vim + plugins = IDE? Or, if the overall point is "java sucks, don't use java" then fine, but if you have to use it, I couldn't even imagine using plain old vim without any language support...

msluyter··on How to reduce the cognitive load of your code
Interesting. Are you familiar with IntelliJ? My experience has been that its Spring integration provides most of what you're asking for.
msluyter··on How to reduce the cognitive load of your code
Re: "null != variable":

I don't think it's necessarily confusing, it's just that usually we tend to think of the elements we're working with (variables, objects, functions, etc...) as taking on values, and so linguistically, we ask "is my thing null?" Not, "is nullness something that applies to my thing?" Hence "thing operation value" is arguably cognitively cheaper than "value operation thing."

So you could argue that it's one of those things that increases cognitive load if you're not used to it. That last bit is important because almost anything no matter how convoluted can become acceptable once it becomes a convention. In java I used to wonder why people did this:

    if ("".equals(str)) {...
rather than

    if (str.equals("")) {...
until I got more familiar with NPEs. Now the former seems quite natural.
msluyter··on Why I don't want stuff
Related, the notion of "peak stuff:"

http://www.theguardian.com/commentisfree/2016/jan/31/consume...

msluyter··on Faker.js – generate fake data in the browser and Node
I used this at one point when I needed a large synthetic "customer" dataset, and found the sample size to be somewhat limited. I had to munge first/last names with added random characters. But looking at it now, it appears that's improved. For example, there are about 3000x500 first/last name combinations, for a total of about 1.5M possible full names (for en_US). However, if you need, say, as many unique last names as possible, 500 might still be too few. Still, a nice project.
msluyter··on The Sad State of Personal Knowledgebases
I've been using nvAlt for a while. Very fast search and ease of use. Not sure how well it scales in the long run but thus far I've had no problems.

Edit to add: Some other interesting features. You can sync to Simplenote automatically, and notes can be saved as text files for easy import/export. There is some markdown support (though I see a number of bugs in the preview). The main downsides appear to be: limited color schemes, no syntax highlighting for markdown, development appears to have stalled.

msluyter··on How the 'Quiet Eye' Technique Makes Athletes More Coordinated
I was unaware of this concept, but I think I've run across it independently in the context of music. I play the banjo and have noticed that if I'm trying to make a large left hand jump, I tend to do better if I focus on the fret I'm jumping to prior to moving my hand. I would imagine that this also applies to most stringed instruments, the piano, etc...
msluyter··on Clojure and the technology adoption curve
Let's say I'm sold on Clojure (I am; I think it's awesome) and I want to convince my boss to convert a crufty Java 7 enterprise app to a better alternative. What is the argument for Clojure compared to, say, Kotlin? How difficult is a complete conversion to Clojure compared to other JVM alternatives. My guess, in terms of ease of transition:

  Java 8 > Kotlin > Scala > Clojure
That's just my impression, especially if you're risk averse and want to make improvements as incrementally as possible. But I could be wrong. Anyone have a good counterexample?
msluyter··on Mancy: JavaScript REPL
I was just looking for something like this. How do I load external node modules into the repl? I tried "File->Add module path" but it didn't seem to work for me. Basically, having done an npm install of lodash somewhere, I want to do

  var _ = require('lodash');
in the repl.
msluyter··on Httpie: A CLI http client
I've been using this for quite some time and love it. My only minor complaint is that when redirecting to a file, it'd be nice if it defaulted to "--pretty=format" instead of "--pretty=none". (I always forget to specify "--pretty=format" the first time...)
msluyter··on Your DI framework is killing your code
A couple of miscellaneous thoughts:

1) The problem that I've noticed with the traditional OO designs that I've worked with is that bits of similar functionality tend to get scattered about the code base. For example, the author creates a CreateReport() method in the Customer class. But if later, we have, say, an Account class (not equivalent to a Customer) that also needs a report, we find ourselves with two likely similar looking methods. I've found this to become problematic as the codebase grows, and ultimately your code exhibits a massive DRY violation.

2) His complaint about singletons is interesting but I think irrelevant. In Spring, for example, everything tends to be a singleton (the default), and stateless, so indeed, your code could be replaced by static methods. Not that this would be a good idea, although in some cases it might make sense. (The Play framework does this: http://stackoverflow.com/questions/5192904/play-framework-us...)

3) The author needs to read Yegge's http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom....

msluyter··on Forcing suspects to reveal phone passwords is unconstitutional, court says
Any lawyers (or wanna be lawyers) want to chime in -- is your thumbprint protected in the same way? I can see how the 5th amendment prevents them from compelling you to reveal your passcode, but does it prevent them from grabbing your thumb and using TouchID to unlock your phone? (That, or, just using a thumbprint provided during booking or whatnot...)
msluyter··on [dead]
Not being much of a sophisticated investor (low cost Vanguard funds for me, thank you), I have a question:

Isn't the latest common wisdom the notion that money managers actually underperform the market as a whole?

http://money.cnn.com/2015/03/12/investing/investing-active-v...

If fund managers -- whom should qualify as sophisticated investors -- aren't doing that well (or at least, can't beat a market index), why would we expect the rich generally to do any better? Is it merely the ability to reap the tax benefits of capital gains/losses?

msluyter··on GitHub Desktop is now available
Just downloaded it and tried it out. Looks pretty nice, but the history view isn't populating when I try to use it for github enterprise projects (I did login successfully). I'm just seeing a completely black rectangle and no commits.

One theory I have is that our default upstream branch isn't master, but I'm not sure where to set that in the app. Anyone else noticed this?

msluyter··on It Just Works
I read some pretty bad reviews of the Galago. A full third of the Amazon reviews are one star:

http://www.amazon.com/System76-Galago-UltraPro-Ubuntu-Laptop...

msluyter··on It Just Works
Yes, I've also noticed an increasing number of software bugs on my Macs. FWIW, I wanted to try out the Dell XPS "Developer Edition," which appears to be about as close as you can get to a Macbook level build quality in a linux box (without having to jump though the hoops of installing linux on a macbook itself), and you simply can't order it from Dell's website. A chat with a rep suggested that it's out of stock.

So, I think Apple is creating market opportunity -- a high quality linux based laptop aimed at developers that, like the Mac, doesn't require constant fiddling or kernel rebuilds to get working.

msluyter··on Don't test with SQLite when you use Postgres in Production
On the project I work on, we face a similar problem. We use H2 for an in memory test database, but now we're frequently running into the problem where we'd love to use a specific postgres feature (say, json support) that isn't supported by H2.

That, and occasionally we find syntax differences that cause a headache when doing a database setup/teardown. A single minor SQL difference requires us to create separate H2/Postgres flyway configurations.

I think a better option than H2 or SQLite, that we're currently investigating, is using Docker to bring up a local postgres instance for testing.

(All of that assumes a certain dedication to using Postgres. If you want to be database agnostic, then you may in fact be better off not using Postgres in dev/test just to force yourself to remain compatible with other DBs.)

msluyter··on Take-home interviews
I did one of these when I applied at my most recent position. It took most of the weekend and actually it was a lot of fun. But I doubt I'd do it again if it required more than a few hours of my time. Any test that time consuming is arguably biased against those with families.

Some advice to those doing take home tests: write (good) comments and include tests.

msluyter··on Who's doing this to my internet?
There should be a name for this phenomenon. It appears that any service that attempts to remain un-gated eventually will be forced to run ads in order to stay afloat. The ads become more prevalent over time, until an equilibrium is reached. The service is now barely tolerable, with just a high enough content/ad ratio to keep you around but not high enough that the experience is actually pleasant. Say, Pandora, for example. Call it "the dismal equilibrium" or something.
msluyter··on Ask HN: Has anyone here programmed in Kotlin? What do you think about it?
> I mean Maven really sucks

Why?

I think after a while one gets tired of using XML as a configuration language. It's verbose and not the easiest to read. Beyond that, we used to find ourselves in dependency hell with maven pretty frequently, though that hasn't happened to me in a few years.

The biggest problem, imho, is that it's inflexible. You can't just (easily) throw in a bit of functionality or make an unusual tweak to your build. So, if you can't find an existing plugin to do what you need, you have to write it yourself.

I've written a maven plugin, and the documentation/support was rather poor. I also found myself having to use an older version of various plugin libraries in order to write proper tests for the plugin. It took me a couple of weeks. Had I done all that in Gradle, I could have just thrown in a few lines of groovy and probably finished in a day.

That said, it's stable and well known. Gradle seems to have the momentum and increasing mindshare, but you probably won't get fired for using maven.

msluyter··on Introduction to Microservices
Funny, I made a very similar comment recently:

A concrete example we've faced. A certain operation requires writing data to N flaky services. You successfully write to N-1 of them, but the Nth fails. Now what do you do? If these N things were just database writes to the same DB, transactions would save you, as you could just rollback. Without that, the answer has to be handled in code -- do you reverse the previous changes (if possible) by sending delete events, or leave the system in some sort of half-baked state and rectify things later via some other process? (I'm interested in hearing of other options...)

The answers I got were:

1) apologetic computing (Amazon)

2) consensus algorithms / paxos

The problem I see is that these may be non-trivial to implement and/or not fully understood or standardized.

msluyter··on Postico: A Modern PostgreSQL Client for OS X
A lot of nice things here. See my comment above for some similar concerns/desired features that also apply to this.
msluyter··on Postico: A Modern PostgreSQL Client for OS X
It's improved since the last time I looked at it, so good work. A couple of issues I ran into:

1) if you have an empty blank line after a query, you get a syntax error

2) an option to expand column widths to match column name would be nice.

3) Perhaps I'm not getting it, but for ad hoc sql queries, I'd prefer a free form text window a la Toad or Squirrel, where the query that the cursor is on is the current query to be executed (via key binding). I switch back and forth between queries a lot, and it's useful to be able view several of them simultaneously. The current interface is feels way too limited and clumsy, imho. Being able to go forward/back in history is nice (though I need to be able to rebind the shortcut, as ctrl-cmd-left/ctrl-cmd-right are both bound to Spectacle), but not sufficient, imho. You need to be able to view multiple queries at a time.

4) An optional 'auto-limit' is an awesome feature of squirrel that allows you to do all sorts of queries quickly without having to always type "limit 1" or whatnot. I had forgotten how much I had relied on it until I tried using this and kept accidentally getting giant result sets.

5) Another nice to have (also in Squirrel) - autocomplete.

6) If you could pull up and instasearch the query history with like cmd-P (like sublime or atom) or something that would be amazing.

7) Essential: allow user to remap/redefine keyboard shortcuts.

Keep going! If one day this is sufficient to supplant Squirrel then I'll definitely buy it.

msluyter··on Ask HN: What are some podcasts you listen to?

  The Simple Programmer Podcast
  Javascript Jabber
msluyter··on Discovering the Computer Science Behind Postgres Indexes
The wikipedia article on b-trees suggests a variety of possibilities for the etymology, "binary" not really being one of them:

After a talk at CPM 2013 (24th Annual Symposium on Combinatorial Pattern Matching, Bad Herrenalb, Germany, June 17–19, 2013), Ed McCreight answered a question on B-tree's name by Martin Farach-Colton saying: "Bayer and I were in a lunch time where we get to think a name. And we were, so, B, we were thinking… B is, you know… We were working for Boeing at the time, we couldn't use the name without talking to lawyers. So, there is a B. It has to do with balance, another B. Bayer was the senior author, who did have several years older than I am and had many more publications than I did. So there is another B. And so, at the lunch table we never did resolve whether there was one of those that made more sense than the rest. What really lives to say is: the more you think about what the B in B-trees means, the better you understand B-trees."[3]

https://en.wikipedia.org/?title=B-tree#Etymology

msluyter··on How to Become a Great JavaScript Developer
Well, wrt chess, we can have dueling GM quote battles over this point:

From "Andrei Istratescu's top 10 reasons for stagnation:"

1) Too much play Playing chess - practice - is very important for improvement. When you play chess (over the board, at tournaments), you put into practice what you have learned, you use your brain to think chess, you are in the testing environment, you test your accumulated knowledge and skill against another person. However, too much play and too little study holds you back. You can repeat the same mistakes over and over. You will tend to follow your own old patterns and not have time to develop a different, correct thinking process, and to learn proper strategy and new ideas. In this case, you should take a long break from playing and concentrate only on study for several months. You will make a significant improvement.

In my experience, the first chess book I read (Logical Chess, Move by Move) probably bumped my rating by 400 points. Then, more specialized openings and tactics books another couple hundred. After that, simply playing got me mostly nowhere.

msluyter··on Java Micro Frameworks
The author did mention Dropwizard:

The first wave was around lightweight Java frameworks (a few of which we wrote about: Dropwizard vs. Springboot). These delivered lightweight, modern frameworks for Java and helped cut down development time. Now there’s a second wave that’s been recently hitting the scene. That wave is Java micro frameworks.

msluyter··on Apple Debuts New 15-Inch MacBook Pro and $1,999 27-Inch Retina iMac
It seems that you can upgrade to 32GB as well.

For the iMac, yes, but apparently not for the Macbook Pros. See:

http://store.apple.com/us/buy-mac/macbook-pro?product=MJLT2L...

← PreviousPage 9 of 33Next →