skysight-inc/HackerNews huggingface dataset:
Now I have a full keyboard instead of that clumsy phone.)

The very idea "to implement a List" in what is supposed to be called a Lisp is.. well, I do respect the amount of work that has been done, but.

Such kind of confusion, it seems, comes from a wrong perspective of what a Lisp is. Let's look first at what it is not.

It is not some "modern OO" language with parenthesized prefix notation, it could be so boring. Second, a List is not some "data structure in Lisp", it is the most important, non-separable fundamental feature of the language. Without "native conses" a Lisp is nonsense.

The explanations is going to grow lengthy, but it worth a try.

A Lisp is a set of layered DSLs and ADTs. Its "miracle" in what it is small and good-enough, in accordance with "Less is more" maxima.

There is no fucking "Class Node" in what a List is. It is just
(cons 1 (cons 2 (cons 3 '())))
or
1:2:3:[]
if you wish.

The big ideas is to separate clearly the use from the implementation, which is called an Abstraction Barrier.

A complete definition of the basic building block - a cons cell, or the Pair ADT is cons, car, cdr, pair? and nil while a List is just one more "constructor" - list. This is minimal and it is good-enough.

It is so "good" that it "created" another small miracle - cadr/cddr notation, which is just an accidental piece of beauty created by a human mind (like a Lisp itself). Only complete tasteless person could abandon this in order to use dull and mediocre first/rest or any other names for selectors that doesn't "chain" and reflect the notion that almost everything could be made out of conses.

The problem is that we have way too many of those who cannot grasp the beauty of what a cadr or cddr is.

Implementation in a language's runtime is quite another topic. There we probably should have a notion of a pool-based allocation (in order to not call malloc for each cons) and locality (to properly implement persistence) etc. but these implementation specific things must never leak int "high-level" use. Again, there is no fucking Class Node.

Speaking of Lisp apart form Lists is like speaking of water apart from the waves. Water has waves, Lisp has Lists in its own nature.

Giving this nature of Lists we could have a general mapper procedure, or map. The idea of a Functor from Math (or these control abstractions from Haskell) has nothing to do with it. It is just the recursive nature of List's structure allows us to define recursive processes.

Even trees not necessarily must have any Class Node. Here is a classic example:

(define make-tree cons)
(define datum car)
(define children cdr)
(define (leaf? n)
(null? (children n)))

(define (tree-map fn tree)
(make-tree (fn (datum tree))
(map (lambda (ts) (tree-map fn ts))
(children tree))))

There is no "Single-Linked List Data Structure in Lisp" because there is no Lisp without conses.

Last but not least. This very site is build in a dialect of Lisp which never tries to redefine what a List is.

More about Lisps - http://karma-engineering.com/lab/wiki/Bootstraping

More about piling up useless abstractions - http://karma-engineering.com/lab/wiki/Monads
Just because the cop didn't do anything illegal doesn't mean he wasn't being a dick.
99% of advertisers give the rest a bad name...

Why do we put age restrictions on explicit or violent movies? Because we don't want to influence kids' brains for the worse.

This principle applies to adults as well. The purpose of ads is to influence you. That "influence" goes to the highest bidder.

At their most benign, they just want you to buy their brand of otherwise identical detergent.

The worst ads are the ones for charities where some emaciated kid is filmed (in HD) tearfully looking into the camera. Fuck. That. My emotions are not the plaything of some advertiser.

What about the "one quick tip to lose weight" scams that don't-be-evil Google insists on serving up. Is that fine?

The advertising industry is not your friend. Don't waste your life trying to help them. Block everything.
Nice work guys..
Out of curiosity: when you say "weekend project", do you mean one person working for a single weekend? Because I've been seeing more and more "weekend projects" showing up on HN that look like they took a small team a week to put together, and it's really making me feel self-conscious about taking several days to just to get a couple of JS frameworks up and running on a simple proof-of-concept web-app — to say nothing of CSS, UI, server stuff, QA, error handling, etc. etc. etc. Am I really that far out of the loop?! Either way, great work!
Gotta say, it's the pixel-perfect Minesweeper that did it for me.

Cool little project. It's actually surprising to remember how intuitive Windows 3.1 was. Simple to use and got the job done.
I won't be the first to ask but: Linux client, please.
dir is working though, buggy MS as always :P
Screenshots with sensitive info are not fine, that screenshot is stored on disk unencrypted. They also often outlive the running instance of the app. This bypasses any protection regularly used by the app for that information, and therefore the best practice is to blank out anything the typical user deems sensitive.
No offense, but wasn't your advisor on the FMO complex coherence train for the longest time before they found another chromophore[1] that rendered many coherence projections spurious?

[1]http://condensedconcepts.blogspot.com/2012/07/details-do-mat...
I actually remember running a browser, probably one of the earliest versions of Netscape, on Windows 3.1 around 1995-6. We had to use a 3rd-party TCP/IP stack since Windows 3.1 didn't have it built in. Those were the days when the web was still new and exciting.
If I am engaging in anything here, it is not this. You should take a look at my blog at least.)

Clojure is gaining popularity (along with Scala) because it makes living in the Java Ecosystem a bit less painful and disgusting. It has nothing to do with the "decline" (non-popularity) of Common Lisps and Schemes in so-called industry, but more with mediocrity of those for whom this very ecosystem was created and marketed in the first place.
Got a laptop recently for a new project. All of my colleagues raved about Lenovo. I went with a Lenovo ThinkPad W530.

Great machine, right? I hate it. I hate it because they put the Fn key in the lower, left and moved the Ctrl key. Now I have to think every time I need to hit the Ctrl key!
Reminded me of this story:
http://www.leanexpertise.com/TPMONLINE/articles_on_total_pro...

One day a management consultant, Ivy Lee, called on Schwab of the Bethlehem Steel Company. Lee outlined briefly his firm's services, ending with the statement: "With our service, you'll know how to manage better."

The indignant Schwab said, "I'm not managing as well now as I know how. What we need around here is not more "knowing" but more doing, not knowledge but action; if you can give us something to pep us up to do the things we ALREADY KNOW we ought to do, I'll gladly listen to you and pay you anything you ask."

"Fine", said Lee. "I can give you something in twenty minutes that will step up your action and doing at least 50 percent".

"O.K.", said Schwab. "I have just about that much time before I must leave to catch a train. What's your idea?"

Lee pulled a bland 3x5 note sheet out of his pocket, handed it to Schwab and said: "Write on this sheet the six most important tasks you have to do tomorrow". That took about three minutes. "Now", said Lee, "number them in the order of their importance". Five more minutes passed. "Now", said Lee, "put this sheet in you pocket and the first thing tomorrow morning look at item one and start working on it. Pull the sheet out of your pocket every 15 or 20 minutes and look at item one until it is finished. Then tackle item two in the same way, then item three. Do this until quitting time. Don't be concerned if you only finished two or three, or even if you only finish one item. You'll be working on the important ones. The others can wait. If you can't finish them all by this method, you couldn't with any other method either, and without some system you'd probably not even decide which are most important".

"Spend the last five minutes of every working day making out a 'must' list for the next day's tasks. After you've convinced yourself of the worth of this system have your men try it. Try it out as long as you wish and then send me a check for what YOU think it's worth".

The whole interview lasted about twenty-five minutes. In two weeks Schwab sent Lee a check for $25,000 - a thousand dollars a minute. He added a note saying the lesson was the most profitable from a money standpoint he had every learned. Did it work? In five years it turned the unknown Bethlehem Steel Company into the biggest independent steel producer in the world; made Schwab a hundred million dollar fortune, and the best known steel man alive at that time.
That much should work; word of mouth from other Linux users suggests that there's a BIOS setting to force it to be F1-F12 by default, and to be brightness/volume/etc via Fn.
After seeing New York's "Snow Fall"[1], Exposure[2] and being inspired by Medium's focus on typography, and content, I wanted to do something simpler for Wordpress. However, I realized I have to removed lots of features so it can be used by most people and be able to switch to other themes - I don't want to hold them with plugins, and custom hooks to their contents that they're stuck with my theme. Nonetheless, the power of Wordpress also gives you lots of freedom to do interesting stuffs, specially the newly introduced (since Wordpress 3.6) post formats[3].

So, I have partnered with another great designer, was once an intern with iA[4], and we have released our first iteration of a Typographically tailored theme for Wordpress - clean designs, minimal gears, wholesome focus on the content and big photos - Acorn Wordpress Theme[5].

Our idea is to keep making it better, enhancing it without adding anything additional than the theme itself, no plugins required to work nor custom fields. When the user wants a new theme, their content should continue to just work.

P.S. I never liked parallax scrolling unless that makes sense for the content in display. It reminds me of Skip Intro.

1. http://www.nytimes.com/projects/2012/snow-fall/
2. https://exposure.so/
3. http://codex.wordpress.org/Post_Formats
4. http://ia.net/
5. http://demo-wp.theme6.com/acorn/
Please. Like this project was just sitting there, waiting for a media shitstorm to pop up. The knee-jerk cynicism on these threads is truly getting stupid.

The timing is almost certainly because the project's secrecy had been recently compromised by the FDA revealing a meeting with the engineering team on its public calendar.

http://mobile.theverge.com/2014/1/10/5297216/google-x-team-m...
I've been doing odesk/elance gigs for a few years, and though I can find work at $25/hour, the competition is stiff, it's a pain trying to get paid for all hours billed, and the clients aren't those you can easily list on a resume (good portion of the jobs are well-paid corporate sysadmins/programmers outsourcing their jobs, or shady fly-by-night spammer/advertiser types). All meaning, if companies really think $75/hour is normal in some areas, but more established programmers are unwilling to do fixed-price contract, then those contracts are low hanging fruit for the likes of me.
It's strange that it converges to a number we can describe succinctly, as opposed to a random number that has no relation to anything else.
"(New) startups shouldn't try to compete 1-1 with the handful of already stupendously successful startups on these items."

Exactly. Pay staff actual real tangible benefits that improve life for them and their families outside of work - such as a proper salary, their health insurance (if in the US or country where there is no national health service such as we have in the UK), don't expect people to work 18 hour days, give staff tangible and enjoyable responsibilities and make the work interesting.

I can't help but think there are many young devs and engineers, in their early 20's, being sucked into an almost Scientology-like startup lifestyle where they are brainwashed with massages, beer and sushi into handing their lives away for the betterment of the founders.
Obama came from Chicago politics. He was "new to DC" like John Carmack is "new to Occulus Rift". He might be working with a different crew now, but he's bringing a lot of "experience" to bear.
Google’s smart contact lens: What it does and how it works
You will get used to it. At least, I did. Other than that one thing, it is the best laptop ever.
Amazon is thinking about shipping you packages you haven't ordered yet
Have a look in the BIOS, there should be an option to swap Fn & Ctrl.
To be clear, I didn't mean to sneak in illegally. I meant that smart startups who really want to get in YC don't just write an application. They find people in (other startups in YC, mentors, investors) and network their way in. Obviously, if the startup is dumb or the application is really bad, it won't work.

Lots of current startups in YC are founded by first-employee of previous YC startups. Most YC founders I talked too knew people there before sending the application.

PG said that some startups joined YC with only the application. I trust him! But that doesn't mean that lots of others didn't networked hard. If you have a) A good application b) A good application + a previous positve experience talking with the team, who would you pick?
Nope. Scheme.
I just bought a previous gen Lenovo for that very reason. Still vey capable, especially when upgraded.
I think it would be even better if it was for Viaweb.
Exploring PyMC3
Ski Free anyone?????
$150/day living expenses? $4500/month? Where are you?
I only managed to achieve 2 levels of recursion (that is, opening the site inside explorer inside the site).
> Avoiding exceptions is a worst practice

You say this very matter-of-factly. Many (myself included) do not believe in exceptions, and in C++ where they are poorly implemented, think not using them is best practice.

I would summarize, but this 10 year old article I've seen on HN a dozen times does a much better job than I:

http://www.joelonsoftware.com/items/2003/10/13.html

Error handling is essential, but exceptions are far from a perfect solution. The Linux kernel is an impressively complicated, and robust piece of software and they get along just fine without exceptions. One just needs to be vigilant when handling errors.
I hope not... I'm four months into a "weekend project" and it's still mostly a bootstrap template...
One diabetic’s take on Google’s Smart Contact Lenses
6 More Stores Hacked Like Target; Developer is 17, from Russia
People like to brag. If someone says "this took us a weekend to put together", I generally expect (for example) all the planning was already done, a code skeleton was already put together, etc...

Any time someone says "oh here's a little project I put together in a weekend" your "bragging" detector should be quietly blinking, which signals to you the claims are likely at least a little inflated.
If you show a picture, really quickly, faster than the "refresh rate" of the eyes, wouldn't it just be blended or motion blurred into a surrounding frame?
Suggestion for methodology: First show neutral grey. The flash image for deltat. Then flash negative image for deltat. Then neutral grey again.
This ensures the average over time is grey.
As someone that wears far too many hats to the point of daily paralysis, these don't sound too intimdating... until I need to figure out what to do first. This is what iterative anything / MVP / lean startup thinking is for and also determines what I think the biggest difference between effective and ineffective people are - prioritization during execution.

- Deploying? I do integrations and devops-like stuff at work, and online discussions tend to overblow this topic given this probably matters among the least. The "correct" way is the fastest that will get the job done now so you can keep your momentum going. Until you go full hog hot-deploying to keep your uptime high, expect to destroy everything eventually, who cares if it's sloppy if it went into the trash? Just git receive hooks are good enough for toy projects like O(n^3) algorithms are probably fine for starting some random webapp.

-Business models are in abundant supply out given the number of times "ideas people" that "just need someone to make an app/site of it" have approached me. Unless you're undertaking significant costs or are on the edge of financial ruin, you shouldn't worry though given starting a tech company is the cheapest it's ever been and only getting cheaper (per Mark Cuban). However, you may want to do some quick market research so you don't waste too much time building something that nobody wants - your time is actually going up in cost at a rate faster than Moore's Law gives you savings! On the other hand, don't be like me and think that focus groups and all the stuff that big companies do for thousands typically for a waste of money applies for you. It seems common sense but we all do dumb things in hindsight and it can be hard to step outside your box. People with good prioritization skills do less dumb things wrt execution, that much I can assure you.

- Taxes are pretty simple for tiny companies in the US (this IS still a cheap place to run a business comparatively), you can probably hire an accountant to do it for a couple hundred bucks without paying a lawyer for even more. Everyone gets moved to Delaware or something later, just get that done hastily to check it off. It's the FUNDING that will make your head spin, taxes are trivial in comparison. Beyond that it's all good problems to have from everything I've read.

For me, I honestly think the hardest part is coming up with a coding project that keeps me motivated long enough without encountering some real hard blocks that just can't scale even though I know they're stupid easy for others. I get a small aneurysm having to deal with frontend design decisions & execution as a systems & backend stack guy primarily. Font choices, picking color palettes for an audience, ... am I making a business or planning my wedding again?

I've only shipped maybe a couple personal projects for the public to see though, so perhaps I'm full of crap and I wasted everyone's time. But if anything, I know how my own habits lead to ineffective output even with what seems like a lot of effort, so I think by telling people the opposite of what I do, it would give better results for others than saying what I actually do.
The advertising industry gets implicit carte blanche to do things to thousands or millions of complete strangers that, if I were to do to my friend, would be considered mortifyingly offensive or rude. I really don't understand it.
Well, Mac OS X's firewall is based on pf - OpenBSD's packet filter. So OSX users turn on firewall _are_ using OpenBSD's work.

http://www.opensource.apple.com/source/xnu/xnu-2422.1.72/bsd...
Subjunct: Secrets protected by other secrets
That seems much more reasonable - assuming 260 work days a year and 2 trips per day, we'd be looking at just under 450 cars off the roads due to shuttles.
Clearly it's Arc.
Because the JVM doesn't have tail call optimization, Clojure doesn't allow you to do many of the exercises in SICP the way they were intended to be done, so it misses the point of SICP.

So for example:
https://github.com/nickbauman/sicp/blob/master/src/section2_...

You'll see I solved the exercise by ignoring what they were trying to teach because it can't be done in Clojure they way they were trying to teach it. I did learn how to make a tree with only lists, which is cool.
The tilde isn't missing, it's on the bottom-right, making it very strange for the times you need it. I really thought the fact that the ESC key was in its place was more problematic than moving the key, since it will either do nothing (the best possibility), or perform some default action (being the ESC key, likely one that will cause loss of work as well).
Doesn't address reduction or elimination of technical means, and therefore is unacceptable. This can be turned evil with the stroke of a pen.
I'm a developer and I either don't care about or specifically do not want everything on your list except "robust case". You've confused "great laptops for developers" with "great laptops for nextos".
What? c:\ Why, doesn't even work, it's not about path, but a drive letter. c: is right format.
NCSA Mosaic and Trumpet Winsock worked well.
Chrome is more like Java or .NET runtime than C runtime. You can build full blown apps as Chrome packaged apps. Google has not polished it very well. If done well, developers can use it to build apps that run on Windows/Mac/Linux without change.
I suffered from some form of CTS and I can say split keyboards didn't really make much of a difference. It's all about placement of the wrists and keeping a good posture. Also breaks, lots of small breaks throughout the day.
Finally, somebody with some sense.

If you want a fairly high level, cross platform C++ library, there is no reason NOT to use Qt.
Lenovo lost at least $800 of revenue from me because of this. I was going to get the T540 or W540 ($2400+), but the idiotic keyboard layout means I can't really type in front of it without feeling a pain in the neck. Now I'll probably get a T440p, although I'm very wary of the lack of physical buttons for the trackpoint (and the reviews are mostly negative).

The X201 and other earlier keyboards are damn perfect. Full size 7 row, including the propery 6-key pgup-dn/del-ins/home-end. Has break and sysrq. I'd pay a $$$ to put this keyboard on a W540 or T540.

Other things like removing LEDs for power charging, but adding them for mute and fn lock (or removal of screen hinges) show that the last of decent IBM engineering is gone, replaced by some idiot managers intent on locking slick instead of satisfying their high end customers.

It wouldn't surprise me if on the next gen, another laptop line surpasses ThinkPad. Lenovo inherited ThinkPad with such a huge lead on everyone else, it's taken them a while to totally screw it up. It's only because other OEMs suck so much more that ThinkPads are still in the lead.
A keep-alive TCP connection, or bunch of UDP packets is enough for that.
I've heard it can take as many as 7 tries!
What, no WfW 3.11 support?

It's almost too perfect... Windows 3.1 only had window resizing via a thick stipple outline of the window border, and the included web browser reflows too quickly, although that's a function of the hardware performance. It would be interesting to run Win3.1 on a modern multi-GHz machine.
Each AdSense advertiser can turn off specific channels for their sites including 'health and wellness' (weight loss) and 'dating' (scam chat sites). Unfortunately, there are baddies in nearly every category. The software category, for instance, which is the majority of our income, is a hotbed of spyware/adware vendors. And blocking them is nearly impossible since Google doesn't really care to know. So you're left manually determining domains yourself and blocking them. But it's just wack-a-mole as they create new domains when enough sites block them.

This isn't too surprising considering that the top link for a Google search for Firefox is a Google ad for an advertiser that will deliver Firefox via a downloader along with 8 different spyware/adware apps. My mom made that mistake last weekend. We would up reimaging her computer.
If a simple C++ server is left in such a poor state, it stands to reason, how can there be a culture of C++ excellence? Why wasn't someone assigned to maintain the server? A culture is everybody, not just a few brilliant individuals or teams.
C++ cant be saved. Its complete, utter trash, and given that google employees write Java so incredibly badly, I seriously dont want to see one line of intern, just got out of college C++ stroke fest from them.

Google sux, C++ sucks, Go sucks and you people suck.
Assuming no growth for an investment in Dropbox is like assuming no air resistance when designing a jumbo jet.