HNHacker News
TopNewBestAskShowJobs

johnpmayer

319 karma · joined August 12, 2011

submissionscomments
johnpmayer··on Please use git pull --rebase
If you're going to rebase every pull, you may as well just use SVN.
johnpmayer··on Want to Block Common Passwords? Sorry, That is Patented
(unrelated to the topic of OP)

Which is too bad. Doctors do, but technologists arguably have a larger effect on the lives of all people.

johnpmayer··on Introducing "Functional JavaScript"
I think that because TCO is all but inevitable in future engines/standards, starting to use functional patterns now for the programming benefits is worthwhile.
johnpmayer··on Dots - Modularize your dotfiles
I just gave up the domain name bashrx.com which I held on to for about 2 years. It was going to be a site where you could save a bunch of check-boxed modules of aliases, exports, and utility functions. So maybe I liked Josh's git aliases and Eve's screen management functions; I could save these preferences and generate a big concatenated file that I could download to my home directory using https.

Anyone think that's still a cool idea?

edit: it looks like there a are a bunch of CLI versions of this which I'm going to try out! But my big beef has always been going to a new computer and not wanting to call `curl thisorthat.sh` 50 times, and remember everything.

johnpmayer··on Gravitational Lensing to Observe Ancient Earth
Pictures seems far-fetched, but what about a radio signal of an old broadcast?
johnpmayer··on Hulk: A Haskell IRC server
> I will also add OpenSSL support using the HsOpenSSL package which seemingly makes the whole process trivial.

Sometimes people like to write about their pleasant experience before the project is completely finished. I'm bookmarking the project as a good example of Cabal Project structuring and use of some network libraries. Good examples like these aren't very well curated from the universal Haskell repertoire.

johnpmayer··on Reddit review puts some teeth into “Aaron's Law”
This may be silly semantics, but the idiom "a bad apple" typically means one bad person in a group of people who are good.
johnpmayer··on Erlang distributed node in Go
I don't think the answer to solving concurrency and parallelism problems lies entirely in the approach of Go, Erlang, or some other language. Rather, different layers of approaches seems to be the best solution. Using an asynchronous, Erlang-style, mailbox & message protocol might better approximate the network latency costs in the distributed layer of a system, while synchronized lightweight threads such as in Go might be better suited to take advantage of single-machine hardware. And that's what this project is enabling: use Erlang-style coordination, with Go-style optimized worker processes. It's just providing another option for managing concurrency, and it might be more suitable than, say, Paxos in many situations.

As far as the type systems go, it's been well established practice that you use a data interchange format. I thought Erlang used strings for its messages - surely Go can handle strings as well.

I don't think that you'd necessarily need to have both Erlang and Go running here - rather, this might be best for writing Go systems that 'act like' Erlang systems.

johnpmayer··on [dead]
I'd like to sign up using github, since that's a sensible authentication method for a developer-centric community.

> Update your user profile.

Why is this required? I very much like my profile the way it is. What do you plan on adding? Is this just poor wording in the github auth API for something that really doesn't mean "change my email, location, and availability for hire?"

johnpmayer··on Ford Releases An SDK For Their Cars
Well i guess it only takes one owner then?
johnpmayer··on Why did a Train Carrying Biofuel Cross the Border 24 Times and Never Unload?
> The RINs were supposed to be retired each time the shipment passed the border, but due to a glitch not all of them were.

Inside job? Sounds like the type of "glitch" that was in Office Space.

But probably not (Hanlon)

johnpmayer··on Hollingsworth for US Senate 2014, implementing direct democracy
Direct democracy enables citizens to vote for a balanced budget as well.
johnpmayer··on Alpha Colony fails to meet Kickstarter funding goal by $28
Well, that is only enough money for a single programmer to work 9-5 for somewhere between 6-12 months.
johnpmayer··on Copyright Act explicitly states disruptive innovation should be blocked
Imagine a start-up where you rent a tiny radio receiver, a really tiny miniature scale radio receiver in a big warehouse in Virginia next to an even tinier transmitter that you control via a "fan request" API.

So might that count as radio?

johnpmayer··on We’ve Already Passed the Tipping Point for Orbital Debris
I think I heard about that. I think it's interesting to note that, in much of science fiction, the home planets of space-faring species are always terribly littered due to the bootstrapping process of reaching the stars, whereas the orbital debris of colony planets tends to be non-existent.
johnpmayer··on Tent.is alpha
"The architects of Tent built Tent.is"
johnpmayer··on Tent.is alpha
I think the extra $2 accounts for the laziness factor. By all means run your own - that's probably better for the overall ecosystem.
johnpmayer··on Kickstarter is Not a Store
Worth mentioning that the major content of the Planetary Annihilation page was their simulation/rendering - completely concept-art.
johnpmayer··on Google's Go Programming Language Grows Up: Now What?
This is an interesting comment because I usually think of "scale" as being able to handle high load. Angular itself is itself about 500K (unminified), but still only about twice as big as jQuery (roughly). Regardless, it makes sense that client heavy apps aren't appropriate for all sites.
johnpmayer··on Google's Go Programming Language Grows Up: Now What?
Angularjs ;-)

Seriously, push your templates, models, and controllers into static client code (html/js) and use any of the dead-simple Sinatra-like clones to quickly scaffold your REST resources. Go is a superb "plumbing" language, in my opinion.

johnpmayer··on Site Lets You Simulate a Facebook Hack, Goes Viral at PennApps
So let me retract that after reading some of the other posts - in the end what you guys did was still pretty slick and I'm sure you learned a lot. So sorry for being reactionary myself.
johnpmayer··on Site Lets You Simulate a Facebook Hack, Goes Viral at PennApps
Wow. As somebody who has participated in PennApps in the past and actually visited this year for the Friday night kickoff, let me just say that it is a damn shame that this is getting so much of a negative reaction because there are so many other great projects that came out this year.

https://www.hackerleague.org/hackathons/pennapps-fall-2012/h...

johnpmayer··on Quantum teleportation over 143 kilometres using active feed-forward
So Wikipedia states the following:

"Quantum teleportation is unrelated to the common term teleportation – it does not transport the system itself, and does not concern rearranging particles to copy the form of an object."

So, in a nutshell, scientists aren't always incredibly creative when conducting nomenclature. Although some people do find subatomic particles quite strange.

johnpmayer··on Memristors' one-year delay will hit IT in the wallet
Maybe something HN does automatically to prevent editorializing. Not saying that your title in particular was doing that.
johnpmayer··on Where the fuck is my Ari Gold?
Well, for the sake of discussion, how does NASA assemble the team(s) that build their stuff? That's the highest profile, most ad-hoc programming gig I can think of.

Fact is projects like that are pretty rare.

johnpmayer··on Silicon Valley Techies Fight to Save a Popular but Illegal Haven
Ugh:

"What it does not have, according to city officials, are things that would make it an office. It doesn’t have enough fire exits, sprinklers or wheelchair-accessible bathrooms, as required by city regulations."

johnpmayer··on Monads in pictures
> What is the relationship between fold + cons (::) and monadic bind? What is the natural transformation from fold to functorial map? Is there a sensical dual?

Whew, working backwards.

Fold is like your swiss army knife for working with entire lists at once; you just need to tell it what to do when it sees a node (Cons) or a terminator (Nil). If, for example, you instruct fold to apply a function to each element of the list but leave the linked structure intact, you've implemented map! And for lists, the fuctorial map, or fmap, is exactly map.

The monadic bind in the List monad is a way of expressing Nondeterminism. Let's say I have two functions...

  b = makeSomeBsFromAnA(a); c = makeSomeCsFromAB(b);
In the context of the List Monad, you would evaluate the first statement to produce a list of Bs. Then, for each B, you would generate a list of Cs, and then concatenate all of those lists into a big list. That's why bind is sometimes referred to as flatmap in the List Monad - take each element generate in the last list computation to generate a bunch of new lists, and then flatten them (smoosh them together; concatenate them). flatmap could of course be implemented using fold and cons.

The point here is that, since we're working within the context of the list monad, I can deal with a single B and a single C, even though the function calls are really giving back lists of those respective types.

By the way, in Haskell the code would really look like this

  makeSomeCsFromAnA a = do
    b <- makeSomeBsFromAnA a
    makeSomeCsFromAB b
johnpmayer··on Monads in pictures
In general, thinking about the different valid rewrites of the type signatures of the various higher order functions in Haskell tends to reveal quite a bit!
johnpmayer··on Monads in pictures
It's a bit more powerful than that - consider what would happen if, every time you sequence two statements together...

  doThingOne(); doThingTwo()
... you get to pick what happens during the semicolon depending on which Monad you happen to be working with.

For example, like praptak mentioned, maybe during every semicolon you can evaluate the failure state of your program and decide not to continue. I.E., "Maybe" the execution worked, and "Maybe" I have a valid computation at this point, but "Maybe" not!

The power here is that while you are really operating in this context with an implicit possibility of having failure, you can program as if each step succeeded. So now we can string together a whole sequence of possibly-failing computations, and create a bigger possibly-failing super-computation that error checks under the hood.

johnpmayer··on Organizing Go code
$GOPATH is like $PATH in that it is a list of colon delimited directories, so it more like ${ANYNUMBEROFPLACES}/src/packages
← PreviousPage 4 of 5Next →