Recent submissions

Comment · 12 years ago
Maybe Angular needs to take a more constricted approach and integrate naturally with something like browserify.

You are correct that you should be writing your actual angular code in those separate files. And doesn't it make sense that the export of a controller file is an injectable controller? None of this "dependency injection via a string which gets turned into a reference to real code later"

Comment · 12 years ago
" λ 5 + 7 12 :: Num a => a What the christ? The 12 I get. Got it. The colons? Not sure. I think it's just a dumb separator. Num is type! What the hell is a => a? I have no idea."

:: means "the stuff after this is the type signature"

Normally, a type signature can be as simple as something like

'x' :: Char

which is the type signature of the character 'x'. Looking at the type signature of 12 shows two parts "Num a =>" and "a". This can be read as "it returns a generic type `a` that must be an instance of the type class Num", which sounds really complicated but isn't.

The "Num a =>" is a type class constraint on the returned type "a". Type classes are basically like interfaces, they set up constraints and methods that need to be implemented for that type, analogous to how in other languages a class can implement an interface. For example, the Eq type class mandates you define the (==) and (/=) methods for that type, analogous to how something like the interface Comparable in Java requires you to define the compareTo method.

Thus the concrete type "Integer" is an instance of type class "Eq" because it implements those (==) and (/=)

Num is an example of a type class, just like Eq. But Num requires you to define a few more methods

  class Num a where
  (+) :: a -> a -> a
  (*) :: a -> a -> a
  (-) :: a -> a -> a
  negate :: a -> a
  abs :: a -> a
  signum :: a -> a
  fromInteger :: Integer -> a
So all of the things you think of as "numbers" are all types that implement "Num", e.g. an Integer, a Float, a Double.

So going back, "12 :: Num a => a" means 12 can be any type which implements Num, which is really just a fancy way of saying "this number can be cast into any numeric type". You can perform this casting manually!

  λ (5 + 7) :: Integer
 12:: Integer
  
  λ (5 + 7) :: Float
  12.0:: Float
Comment · 12 years ago
And the moderators of HN can still choose to use their discretion to remove certain articles, without necessarily banning an entire news outlet.
Comment · 12 years ago
Capital in the 21st Century by Thomas Piketty Learn You a Haskell A Wizard of Earthsea by Ursula K LeGuin
Comment · 12 years ago
> Whenever I tried to learn TDD, it only seemed relevant for back-end testing (eg REST APIs). But is there anyone left who is strictly a back-end guy? Most programmers now bill themselves as full-stack app developers, and probably spend at least half their time working on the front-end/UI.

yes?

> So what does it mean to write functional tests? I'd argue that writing modular React components is a form of functional testing. Devcards[1] is similar, and looks to me exactly like what would be considered functional testing. These two workflows feel much more natural than testing UIs methods like automated selenium browser interactions to generate screenshots.

no.

Comment · 12 years ago
MRI still doesn't follow semver but core doesn't really give a crap.
Comment · 12 years ago
I mean, I guess? I would question that business and processing model heavily, though. Most sustainable business models show growing from some kind of smaller MVP to a larger full-featured application.

Significant overhead costs to go from nothing to steady-state instantaneously would be enough to scare me.

Comment · 12 years ago
the concept of a model is not at all tied to a data access pattern unless you subscribe to model = ActiveRecord::Base inheritor in the Rails world.

Model is a well-defined term in the domain-driven design world, as in "Domain Model"

Comment · 12 years ago
uhhhhhh, I don't know if that's true.

Lotus was never a ruby web application framework. Guess Apple's going to have to change the name of Swift because of that other programming language, amirite?

Comment · 12 years ago
At that point, don't you have enough scale, money, and need to actually hire an ops person?
Comment · 12 years ago
http://www.derailingfordummies.com/derail-using-anger/

c.f. "You are hurting your cause by being angry"

try to be less of a trope.

Comment · 12 years ago
heavy eyeroll if this is supposed to be a "hidden" jab at tech feminists.
Comment · 12 years ago
helpers are awful

embrace OO

Comment · 12 years ago
The service looks great, I just wanted to comment: when I opened the page, my immediate thought was "is this done by Heroku? This page looks a lot like heroku"

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton