HNHacker News
TopNewBestAskShowJobs

cschneid

1,612 karma · joined May 9, 2008

submissionscomments
cschneid··on “Mostly functional” programming does not work (2014)
Don't confuse new terminology with math. Programming has lots of terminology, and some of it is backed by mathematically rigorous definitions, but that doesn't require you to know that in order to use them.

OO has 'Inheritance', 'Subclassing', 'SOLID', 'Liskov', every design pattern name, 'Object', 'Class', 'Overloading', 'Factory', etc, etc.

Haskell has similar words, covering both core concepts, and common patterns of implementation. 'Monoid', 'Monad', 'State', 'Reader', 'Function', 'Lambda', 'Typeclass' are all examples of terminology in Haskell

None of those words are inherently more difficult than the OO ones, you're just not familiar with them.

The best way to learn Haskell is to follow along with a course that has you do exercises, and actually do the exercises. See the https://github.com/bitemyapp/learnhaskell course for some class recommendations.

cschneid··on Haskell as a JavaScript MVC framework
I've explored ghcjs. I had a reasonable react based site down to ~400k after dead code removal and minification. Still biggish, but not multi-megabyte.

The raw unoptimized code was in the several megabyte range though.

cschneid··on Call me maybe: Aerospike
Thank you! That's perfect.
cschneid··on Call me maybe: Aerospike
What is the 3 color chart that I've seen posted in several of these articles? I get that it breaks down the different CAP combinations with the things that it allows/implies. But is there a good breakdown of all the terms and what they mean?
cschneid··on Fuzzing Nginx – Hunting vulnerabilities with afl-fuzz
The afl fuzzer relies on compiling C code with its own compiler, so I think it's limited to only C based programs.

What you may want is to use something like `quickcheck` (scalacheck or clojure's test.check I guess?) to send lots of "arbitrary" xml at your code and see what breaks. With sufficiently interesting definitions of "arbitrary" you can probably find bugs.

That approach would be testing inside the process, as opposed to passing in whole http requests. But if you know a section of code is more vulnerable than others, focus on it. No need to test all of tomcat's http parsing when you really care about your specific library.

cschneid··on Why We Let Prison Rape Go On
It even happened the other night on The Nightly Show - an otherwise wildly liberal show opened their panel with a recommendation that Tsarnaev should be raped in prison.

The amount of vengeance in the american system, at the total exclusion of anything else disgusts me. See-also the torture that is super-max [1].

[1]: http://www.nytimes.com/2015/03/29/magazine/inside-americas-t...

cschneid··on Learn Spock, a Haskell web framework
I have been using spock for a 2-3 end point website. It's good. Very simplistic form of web framework (along the lines of sinatra).

The docs should be a bit better, with some examples of how to use the database and session features. I couldn't figure out how to get the database pool to work with Persistent (a db mapper library).

I bet its obvious to somebody with more knowledge of the type system extensions used, but I gave up after playing with it for an hour or two.

cschneid··on ES6 generators in depth
Amazingly in depth post!

I'm sad when programming languages have to reach for new keywords and syntax to add features.

`function*` is difficult to google for, and doesn't have any human readable hints for somebody to understand.

cschneid··on Amazon Goes After Dropbox, Google, Microsoft with Unlimited Cloud Drive Storage
I keep tax and similar docs on dropbox inside a truecrypt encrypted disk. Suitable level of security for my needs, and I like that its synced across a few systems (including one that is separately backed up).
cschneid··on Practical testing in Haskell
Good article. I like these articles that discuss haskell from a practical engineering point of view, rather than the bleeding-edge researchy point of view.

Even if I disagree with some of his style, its a cool way to get a starting point and begin getting a feel for what good haskell code looks like, and how to lay out an application.

cschneid··on Learning Haskell – A Racket programmer's foray into the land of Haskell
The downside of using (.:) is that it is used heavily in other libraries (Aeson for instance) in a very different context (field accessors, similar in look to json's `:`).
cschneid··on Category theory for beginners
Its riding the haskell bandwagon to some degree. By borrowing ideas from category theory they have some really nice abstractions in practical code. But then it gets more confusing so you want to loop back and see what the actual definition of a "monoid" is, or understand "functors". Even if haskell's idea of functor isn't 1 to 1 with category theory's.
cschneid··on A Localization Horror Story: It Could Happen to You
This is by far my favorite bit of documentation. I have to go look it up every time a manager or client starts asking for localization to justify my high estimates on how long it'll take.
cschneid··on Announcing LTS Haskell 1.0
Sorta yes. In order of wild-west to stable, it's:

Hackage - live packages get uploaded and released fast

Stackage - a rolling tested release. It promises that all packages will compile together. (There are a few flavors of this).

and now LTS Haskell. A snapshot of Stackage that doesn't roll very quickly (every 3 months). It won't do upgrades to packages at all, except for bug fix & patch releases. So your own application code can pull down the LTS today, and again tomorrow, and be relatively sure that everything will work the same.

cschneid··on FTDI driver kills fake FTDI FT232s
Can somebody give me the background here? What is a FTDI FT232s?

It appears to be a fairly low level USB controller chip? Is this chip (or its ilk) in every kind of usb device? What is the impact of this?

Most of this article dives in with a fair bit of preexisting knowledge - can somebody fill me in?

cschneid··on Building Good Docker Images
From what I understand, docker caches the state of its world during each step. So you add a file, it caches, remove the file, it can't free that space from the layered filesystem. But if you create & remove in the same `RUN` command, it never gets persisted as a step, so doesn't take up space.
cschneid··on [dead]
Can somebody expand on using a Chromebook + a service like Nitrous.io to do out-and-about coding as a second computer?

I worry about taking a mac pro to any given coffee shop or bar, just due to the chance of coffee spills, theft, and general wear & tear.

Does anybody use a chromebook for this kind of purpose?

cschneid··on What kids around the world eat for breakfast
In terms of running a kitchen, and how to think about food, I really liked the book The Everlasting Meal [1]

It was a bit fluffy, but gets at the heart of how to run a kitchen as an ongoing concern, rather than as a place you dive into as a one-off recipe, and leave when done.

[1] http://smile.amazon.com/An-Everlasting-Meal-Cooking-Economy/...

cschneid··on How we might abolish Cabal Hell, part 1
In my local group of haskellers, nixos is taking off as a system level package manager that does virtual envs, and multiple package versions pretty well. I haven't had a chance to play with it, but perhaps a sufficiently smart package manager can do both?
cschneid··on A Site That Teaches You to Code Well Enough to Get a Job
Probably just that nobody has sat down and done it. Maybe that could be you... :)

https://github.com/exercism/x-api/blob/master/CONTRIBUTING.m...

cschneid··on Tech Has a Depression Problem
There is a discussion forum specifically for this: http://devpressed.com/ Please check it out, and also any of the talks [1] by its founder, Greg Baugues. It's from a ruby conference, but is applicable to all developers.

[1] https://www.youtube.com/watch?v=yFIa-Mc2KSk)

cschneid··on Weave – The Docker Network
Each `W` node in that graphic is a different physical host. So 3 kernels.
cschneid··on Configuring Rails Environments
That sounds great - push it up! Is there a github repo for it (hackage is downish at the moment).
cschneid··on A game engine for building online adaptations of board and card games
Tabletop simulator doesn't implement any rules. It is a physics sandbox with the focus on game related physics. It's a ton of fun to play with, and infinitely flexible, since there's no coding of rules. It does have specific coding for cards, dice, and a few other things, but no game rules.
cschneid··on How I Went From An Idea To Paying Customers In 3 Days
The 30x500 philosophy the article mentions takes that to the extreme.

The workflow is basically:

    1. Find an audience ("wordpress consultants")
    2. Stalk their forums & chat rooms. Listen to complaints and problems.
    3. "Flip their pain" - figure out how you could trivially fix their problem. Nothing more. Don't jump straight to "web app" or even "softwarE" at this point. People in my class were working on shipping well built excel sheets, or books, or trainings.
    4. Build that thing in #3, and sell.  Normal email / blog marketing techniques apply here.  Get paying customers right away.
cschneid··on How to Drink All Night Without Getting Drunk
I'm glad to see my local (Fort Collins) beer scene swing that direction. See the IBUs in the various beers at Pateros - http://pateroscreekbrewing.com/pcbc/beers

New Belgium has Shift ( http://www.newbelgium.com/beer/detail.aspx?id=fc35795d-8d9d-... ) as a good session beer.

Fort Collins Brewery has a nice list of less hoppy beers:

http://www.fortcollinsbrewery.com/brews/red-banshee/

I like that I can still get the crazy IPAs, but there's a ton of other good stuff to drink too.

cschneid··on Write Code Every Day
Yeah, probably. Also I didn't think it through either.

I extract the goodies from whatever I'm learning, and never finish the project I'm learning from.

My attention shifts as soon as the project stops being interesting & new, and becomes "work" to finish up.

cschneid··on Write Code Every Day
I agree. I have the habit of constantly learning, without producing. So I'll pick up side projects, suck the learning-marrow from their bones, and discard them without finishing.

I have so little to show in terms of actual work product, which I am attempting to fix with a similar "don't break the chain" approach.

cschneid··on The 49-U6U Slaughterhouse
Note that this is on the Chinese server - so I don't know if the USD translation is the same.

Most of the time it's (USD per 'plex' divided by ISK to sell a plex on the market) to get the price in USD per ISK. a 'plex' is a 30 day pass to play the game, and is also an in-game item suitable for sale.

The Chinese server is totally distinct from the RestOfWorld server - no shared space / market / anything. So I have no idea what the price of ISK is on the Chinese market, or if they even support that kind of trade.

cschneid··on Conquering Hadoop with Haskell [pdf]
This is great. I've been learning Scalding, which is a vaguely similar Scala library for doing map-reduce jobs (where you're writing higher level workflow, and it handles the map/reduce/map/reduce.... cycle to get it done).

I'm going to have to give this a try :)

← PreviousPage 6 of 20Next →