HN user

metaguri

205 karma

This account is dead. See https://news.ycombinator.com/user?id=diegs

Posts3
Comments54
View on HN

How do _you_ know your contract is secure?

Ideally, using formal methods [1], one can write a provably correct program. Just because software can have bugs does not mean it must have bugs. Human contract law has no analogue.

Personally I'd be wary of any electronic contract that wasn't formally verified. The DAO exploit is unsurprising.

1. https://en.wikipedia.org/wiki/Formal_methods

I set up a FreeBSD box at a computer shop I worked at in high school. We had a T1 and static IP, so I set up some routes to make it internet accessible (my boss wanted to use it to host pictures for his eBay transactions).

I set it up, threw it under a table in the corner with nothing but a power and ethernet cable, and moved on.

I was surprised when 5 years later he called to ask why it had stopped working. I told him where it was, he rebooted it, and it came back.

(My memory was a little fuzzy but I probably set it up in 2001-2002 and it ran until at least 2007-2008)

Does the course cover Functors, Applicatives, Monoids, and Monads? What about other higher-level functional constructs (Arrows, Zippers...)?

From what I've seen, I think Scala is a nice language. One thing I don't like is particularly that it's a bit kitchen-sink-ish: there's a whole lot of syntax and semantics to learn, seemingly due to the OO side of the language. By comparison Haskell is quite simple. All the higher-level constructs are implemented in plain Haskell, so you can easily understand them but thanks to a flexible, uniform syntax, using them doesn't feel clunky.

To me the main reason for not learning FP through Scala, however, is that the community isn't organized around teaching FP in the same way that Haskell is. It sounds like this course is an exception. But otherwise, I found that trying to learn about Monads from the scalaz documentation was not satisfying, and we all know that "A Monad is a Sheep with Curly Hair" blog posts are a dime a dozen (in Haskell and Scala). Learn You a Haskell made the concepts, and also their benefits, clear to me for the first time. Now I'm working through Real World Haskell to build my chops and reinforce my understanding.

While trying out both languages and picking which one to learn, I came across an interesting post on Gilad Bracha's blog which had a lively discussion including a comment by the [claimed] original author of Scalaz [1], which made it clear to me that it would be easier to start in Haskell and move to Scala than vice versa. I think I (and the OP) are both seeking to gain a strong foundation in FP concepts. To summarize, in my experience most Scala resources on the internet (blog posts that come up, etc.) aren't quite as good in this regard; at this point a lot of the Scala programmers using these techniques are probably Haskell programmers anyway.

That being said, the internet is a huge place. If there's a Scala equivalent of this post [2] please do share it! I agree with other posters here that Scala has quickly gained a significant amount of industrial acceptance. I'd imagine that I'm more likely to write Scala professionally in my lifetime than Haskell. But I also believe I'll be better off approaching it having learned the FP concepts in Haskell first.

[1] http://gbracha.blogspot.com/2011/01/maybe-monads-might-not-m...

[2] http://stackoverflow.com/questions/1012573/getting-started-w...

What functionality does prelude provide? Unless I'm missing something, the website suggests that you can find out by "reading the source."

I had a similar experience once with the emacs starter kit [1]. Though it's a noble effort and probably does have a ton of great features, there are some problems: you pretty much get all or nothing (ESK split it out into a "core" and "per-language" set of libraries but still, there's a lot of stuff) and it's hard to tell which things are emacs builtin and what is customizable. If you disagree with a customization you're SOL; I knew enough about emacs to know that some things had been customized, and I didn't like them, but it was nigh impossible to find out where they were customized and how to turn them off.

It reminds me of the libraries vs frameworks discussion [2]. Emacs works well with libraries (with little elisp functions counting as "mini-libraries"), and the ESK/prelude seem like frameworks.

I'm not trying to pick on these toolkits in particular. They are probably a good way to start out with emacs--I know that the ESK provides a bunch of features to make it more "friendly" out of the box for someone who is coming from something like TextMate.

Most "old-school" emacs people I know have their own .emacs that have accumulated over years and years of trying to solve specific problems or customize that one thing that's annoyed the crap out of them for a while. My .emacs is not pages and pages, but it does have some good stuff in it.

What I'd love to see (and maybe I'm inviting myself to do this) would be a tool (maybe ELPA is this tool, though It's hard to know) which allows you to search for, browse, and install elisp snippets to help you out. ELPA is good for bigger libraries (i.e. major modes) but not for "how do I create an unfill-paragraph function?"

[1] https://github.com/technomancy/emacs-starter-kit [2] http://news.ycombinator.com/item?id=2762280

Lisp Machines 14 years ago

Hairy, especially because most of us haven't done systems programming like that, but how cool is it to see "(without-interrupts ..."??

Netflix has algorithms that decide how quickly your next dvd is sent. More accurately, it uses a score to rank the group of people who have the same DVD at the top of their queue in order of who should be allocated the next available copies.

This score is based on a number of factors, with the objective being to maximize subscriber happiness (one example question is whether is it more valuable to have quick turnaround for a frequent subscriber who is already happy with the service, versus an infrequent user who might be on the fence--it is not obvious who would be more sensitive to and negatively impacted by a delay in receiving the next DVD).

(Source: I work with people who previously worked at Netflix. This is not confirmed fact but a loose understanding based on casual conversations.)

Your latter point is a tautology. You win arguments by making really good ones and gaining an advantage over those you don't. By the measure of "able to win arguments" the former viewpoint is better than the latter. If you're using other measures to evaluate viewpoints, you shouldn't do so in the framework of arguments.

Regarding this particular argument and how difficult it is to value ones that sound valid: at the time, this argument was quite cogent and I would have agreed with it. The author made a well-researched, well-formulated, convincing argument. He (along with many others, I'm sure) was later proven wrong, but at the time of the argument, he had a convincing case. Nothing wrong with that, in my opinion.

Often old articles with predictions that turned out to be horribly wrong come up on here. I think that whether the person turned out to be right or wrong is not very relevant. When you make an argument you are stating your opinion at that time, and so the quality of the argument should be measured in that context. That isn't to say that you can just make wild predictions without risk of losing credibility; again, your prediction can and should be measured at the time you make it, and I think that baseless ones should be critiqued appropriately.

He is an inspirational dude. I can't find a direct quote, but when I read the article posted here some time ago (http://news.ycombinator.com/item?id=458090) I got the sense that he wants to change the world, and potentially going broke doing it is an unfortunate but permissible side-effect. Given the various posts about "what to do with my millions" today, I think what Musk has chosen to do with his capital provides a poignant perspective.

No, I did see that, but to zoom in further, what is meant by "in accordance with its privacy policy"?

For Google's other apps, their privacy policy lets them confidentialize and then use data about you to improve their services. Don't see anything that stops them from doing stuff with your data as part of "providing you with the service", without giving up your ownership of it.

Yes, I'm speculating. But it just struck me as a reason for google to offer this service. And honestly, if I were a user I might be ok with them using my data anonymously to improve said service that I am using.

I was guessing that google (in their never-ending desire to consume more data) would want to use us as guinea-pigs to improve their algorithms. It's not 100% clear to me, but from the terms of service:

By submitting, posting, displaying, or transmitting Data on or through the Service, you give Google permission to process your Data for the sole purpose of enabling Google to provide you with the Service in accordance with its privacy policy. You hereby grant Google all licenses to your Data necessary to process the Data and provide you with the Service in accordance with its privacy policy. As a part of the Service and through provided interfaces, Google may allow you to remotely access, view, and download results of the processing of your Data. (via http://code.google.com/apis/predict/docs/terms.html)

I imagine that they might claim the right to use your data anonymously to improve their algorithms, much like they do for your personal data in their other apps. I mean, what better way to refine their supervised learning algorithms than via an endless supply of training sets? But I hate wading through legalese, anyone have any insights?

I remember reading once that on military planes, everyone sits backwards because that is safer. I wonder if it is true?

The other important reason to use a library is that if someone improves the algorithm someday, you can benefit for nothing more than installing and testing the new version of the library.

I remember this also being the case for Constraint Satisfaction Problem (CSP) algorithms in AI. If you can formulate your problem as a CSP and feed it to a library, you automatically benefit from future improvements in the field of CSP solvers.

i've been using this knot for years, and it's great. i dream of some day teaching my kids to tie their shoes with this knot, and then having them explain to the other kids in class why their system trumps the standard methods.

The QWERTY myth 17 years ago

qwerty and dvorak are open standards. beta and vhs are licensable. windows and mac os are retail products. although all three pairs are "competitors" in a sense, i don't think it's reasonable at all to compare their adoption by the market.

Wow, this looks awesome. Even if I don't make it into the competition, I'd love to play with the APIs.

I've always wanted to get into RTS games but I am just not very good at the mouse--I always get bogged down by failing to click on the right units and issue the right commands at the right times, and I've fond that once you make a few mistakes you usually don't recover, or you are back to square one.

Board games and turn-based games don't share this problem of course, but they aren't quite the adrenaline pumpers either... not worse, just different :-)

or for all intents and purposes none at all. i could be wrong but given the relative sizes of the sun, the solar array, and the distances involved, the amount of sunlight that is blocked by the array from any observer's point of view on earth would be negligible.

for example planes flying at 35k feet don't cast visible shadows.

Wow. Yeah. Nobody "put" them in charge of this company.

Perhaps "hippies" have the vision to create something that will change the world (a bold claim about twitter... but at least somewhat true already) and "non-hippies" have the pragmatism to make a copycat mmorpg that will rake in a few million bucks but no one will remember next year.

When I think about what spurred the creation of a memorable technology that changed the course of human history, I see vision, not monetization. (Ford => a car for each family, Edison => light in every home, Apple => easy to use computers, Google => bigger, better search)

i have the opposite problem -- i can't wake up. i'm not horribly sleep deprived, although my schedule isn't very regular (and i don't think it ever will be).

has anyone else had and overcome this problem? i'm talking about a sleep-through-your-alarm-and-never-remember-it-going-off inability to wake up.

i once read that you could try "rehearsing" waking up (getting ready for bed, turning out the light, having your alarm clock 5 minutes later and springing out of bed, repeat ad infinitum). but i don't know if that'll help.

If you work 100 hours a week for someone else and are not bringing in a million plus per year, your wife is going to think you are a chump, because you are.

How many people like this exist in silicon valley? a lot. wall street as well. and more and more, "traditional" corporate america as well.

edit: i meant to add that i think it's a poignant, alarming, and relevant statement.

The TTY demystified 17 years ago

I think the modern idea of a "cloud" is the Plan 9 philosophy coming full circle. Many breakthroughs in Plan 9 (distributed architecture, everything as a file, unified user experience) are being recreated on the web (cloud storage/photos/music/email, open APIs so all your webapps can intercommunicate--when I squint really hard while looking at screenshots of Plan 9, it almost reminds me of google's suite).

The OS will become extinct once everything happens in the web browser, and the OS becomes not much more than a web browser itself. And then they'll have pretty much reimplemented Plan 9.