skysight-inc/HackerNews huggingface dataset:
Something I've never gotten around to is building an algolish-lisp -> lisp translator.

[a, b, c] -> '(a b c)

f(x) -> (f x)

These two translations are strictly syntatic modifications to lisp.

Some syntactic sugar:

{
f(x)
g(x)
} ->
(progn
(f x)
(g x)
)

With these three tweaks, we are probably 90% of the way to recruiting the common man (if syntax is really what puts them off).
Well, here's a rough summary of the post:

Instead of commenting on the content of the article, I am going to complain about tangential meta-issues.

Dunno about downvoting, but at the least it's hardly something I feel compelled to upvote.
As hybrid cars gobble rare metals, shortage looms
Actually the external screen stuff worked quite well since one or two releases ago. At least for me. They added nice controls for it.

Printer - oh well, just have to buy the right one, I guess.

Docking station: very exotic use case.
Ask HN: How do you do realtime
Hi all, i was wondering, there is alot of talk about realtime and up to the minute data but what i dont understand is this.

Twitter for example is considered realtime because the information is up to the minute and discussing topics that are now.

However with twitter if you dont refresh your page the information will be old. In friendfeed for example, if there is some new information, it will automatically show and appear as it is created.

My question then is, what is realtime, is it the ability for the information to appear on the website as it is created or is it more about the data being about realtime events and topics ?

My next question is, if it is about the page being updated and refreshed in realtime like friendfeed and gmail, how do you implement that short of polling. Doing it with polling is very easy but also very inefficient, is there actually something out there that allows this realtime update of information without polling or is this how friendfeed and gmail do it ?

Thanks alot guys
xmpp seems to have taken off pretty decently from what i've seen so far (rfc process, ietf backing, adoption by google et al)
Let me summarize this video for you and save you some time:

1) Guy makes some good money in the "sewers" of Internet Marketing during the boom years (using search engine spam tactics to gather traffic, resell it to the .com startups for inflated prices, then moves on to "finance and other" affiliate programs)

2) Guy gets involved in domain name squatting. Runs into some issues, doesn't pan out.

3) Guy gets involved in "gaming marketing" - online casinos. Makes good money as casino are cash-rich businesses. But it turns out that casino marketing is a seedy business!

4) Develops "Casino Affiliate Program" certification program. Make money off the Casinos - the guys with the money - rather than the affiliates - most of who are just trying to follow get rich quick ebooks they bought from an adwords ad.

Only part of his story that is missing is (my guess):
- Selling porn/Acai berries/Loan Consolidation leads
- Spamming email lists/search engines

Good for him for making tons of cash online. Maybe not the most noble of businesses, might not be for me, but alas, each person has their own goals.

My take away: easier to make money off rich firms than poor individuals.
> The whole point of GCD is that it is a central entity that knows how much work the entire system is doing on each individual processor core, and can adjust the number of threads accordingly.

No. That's a side effect and benefit. The whole point of GCD is that it's trivial to use, therefore making it easy to benefit from multicore machines.

> Does your Erlang example take into account the overall work the entire OS is doing on each individual processor core, adjusting the number of threads as the amount of overall work changes — or does it just take the Erlang-program's own work into account?

In the erlang view of the world, the erlang runtime is the OS. And within that context, Erlang takes in account the overall work of itself (in fact, it more precisely doesn't give a damn: it spawns a scheduler thread per logical core -- or more or less if you ask it to -- and then dynamically maps Erlang processes on these OS threads the way GCD dispatches queued tasks to its threadpool).
by reading your profile I could see that was you first comment, please don't post such comments in the first place.

Content is to be discussed, not style
Contemplative Science by B. Alan Wallace. It's about stripping out the analytical tools of Buddhism for study of the mind and creating a robust and consistent tool set for scientific inquiry into the nature of the subjective mind. Very interesting stuff IMO.
He is complaining about docking a Dell. Can anyone here confirm that latest Ubuntu works with latest Dell Latitudes and their docking stations?

I just placed an order on one of them and I'm getting nervous. Google searches didn't reveal any potential problems.

My specs:

Latitude E6400,

NVIDIA Quadro NVS 160M,

Intel® WiFi Link 5300 802.11a/g/n Draft Mini Card,

E-Port, dock for charging, digital video, and USB / eSATA port support
Think about it: would EBay sell a company that generates $900m (or $600m for that matter) a year? And sell it for only $2b, less than they bought it for?

There's always a tendency to assume organizations handling such huge amounts of money know what they're doing. The fact deals like the Skype purchase seems insane to laymen only encourages many people to try and rationalize it with "facts we don't know" and "long term strategy" etc.

However, if you follow Hi Tech for a while, you may find that the simplest explanation for deals like these (or Sun buying MySql for $1b, or AOL buying Bebo for $0.8b, or the AOL-Time Warner merger) is that they are irrational, and the people making them are as susceptible to hype, hubris and ulterior motives as anyone else, perhaps more so - they usually stand to personally lose less as result of their mistakes than the your local Tacqueria owner will lose by choosing a different lettuce supplier.
Umm... what's this scheme_make_pair(car,cdr) function in plt/src/mzscheme/src/list.c? That's a wart (the crisis is in my mind :-)

It doesn't have to be that way: Clojure has abstract sequence types, with cons/car/cdr wrappers in case you want them.
See Uladoo http://uladoo.com/

It was just blogged about at Atomic Object
http://spin.atomicobject.com/2009/09/01/chart-your-life-with...

Edit: fix links. Arrgh!
After reading [insert technical field]'s [insert age-appropriate medium], I found that there was a constant among them. You see, the representation of females in [technical field] is limited, and anecdotes related to females in [technical field] are largely the same.

They start with: "My [diminutive significant other] once asked me", "Jane Doe isn't just hot, she's also [common rank in technical field]" or "The best [common rank in technical field] I ever met was Jane Doe."

Replace [technical field] with cars, planes, motorcycles, programming and cinematography. Adventure travel, graphic design, marine biology and non-profit work tended to have more equal representation, and I saw less of this patrician attitude being slung around there.
The Lost Continent, Bill Bryson.

An amazing book, very readable.
Smartassembly wins the Red Gate million dollar change
xcompmgr is a Composite manager. It will run along side any other window manager (that doesn't already do compositing... this excludes Compiz, newer KWin, Xfce4's window manager, but exactly what would happen if you tried to run xcompmgr and Compiz at the same time I don't know). It just does things like add drop shadows around windows and enable true transparency. {edit} You can configure the drop-shadows or disable them through command-line options {/edit}

I said 'stomach' because xcompmgr has been unstable at times in my experience. IIRC, none of the xcompmgr crashes have taken down X11 or the window manager. I have not used it in a while though so it may have changed, but I was under the impression that it doesn't get much work done on it. It's original goal was just to be a reference/example implementation of the compositing extension for X. I could be wrong though and it might be in a more stable state now.

If anything you might be motivated to see if there is a way to run it with debugging information. I can't imagine it's highly complex in the way that I assume Compiz is. It might be fairly easy to do some fixing up of it, as long as a person is motivated to look into it.
15 working days is 3 work weeks.
"Exactly 15 working days" might be a reasonable length for a sprint, but "around 15 days" is not.
This is a nice article. He makes some good points. I'm generally leaning Linux-ward these days, but I really appreciate what he says about laptops.

A few notes:

- On the initial installation, CD + 20 minutes for Linux, CD + 2 hrs for Windows, sounds about right to me. But another point to make is that on Ubuntu, another 20 minutes, maybe an hour at most, gets me a fully loaded system, while on Windows I'm swapping CDs for days. Of course, I don't have to do that Cisco VPN stuff he complains about.

- An issue that he doesn't touch on at all is the general "scriptability" of the system. I've found that under Linux, it is usually much easier to write a little script to automate some task, than it is under Windows. Of course, this matters not at all to some people.

- Laptops, external displays, etc.: Definitely. If I were running the Ubuntu project, I'd put everything else on essential-maintenance-only status, and get it working right on a laptop as soon as possible.
Given the number of Economist articles that involve this particular stimulant, I'm starting to wonder what their writing pool is up to on Friday nights.
A modern day version of:

1.Quit job

2.Ask HN

3. ???

4.Profit!

Love it :)
It seems that the more the site focuses on bids, the more likely this is to happen.

Bidding systems inherently ignore distinctive qualities of at least one side of the transaction. In this case, it treats programmers as commodities, and so the prices tend toward commodity prices.
Easy Time Tracking for the Mac - Lapsus
Could do without the attitude, but would be interested to see the author of the blog try a mac for a bit and compare.
Something else most may have not known about apache is it has a built-in server-side scripting feature, think php w/o loops, called mod_include http://en.wikipedia.org/wiki/Shtml In the purest sense though, it is templating for html.

This feature is a bit dated and unnecessarily redundant if you write php, but could be great a addition if your back-end requires CGI or you don't wanna 'messy' up your pretty mark-up with php. ;)
Gang Leader for a Day --> Awesome Book!
Describing that as 'cold calling' is a bit misleading.
And anyone who could write this, can grasp Lisp themselves.

Write the memorizer? That's basic functional programming, but what does that have to do with Lisp? You could write it in JavaScript:

function memoize(f) {
var memory = {};
return function memoized(arg) {
return arg in memory ? memory[arg] : (memory[arg] = f(arg));
}
}

The big thing Lisp has left is reader and compile-time macros, and other systems [1] might be able to do both better pretty soon. Yes, Lisp has a lot to teach people who think that programming languages are passed down immutable from the superior minds of GvR or Stroustrup, but once you realize the enormous variety of decisions made in designing a language, it becomes clear that almost no number of languages will fill the space of possibilities.

A lot of ways, languages are like religions - they're part of social structure, and part of people's identity, and they tell you how to pray, when to fast, how to allocate and free memory, how to traverse the call stack, etc. But when you think about it hard enough, it's clear that all of these decisions are better made by individuals, not committees or institutions.

1. http://piumarta.com/software/cola/
In his defense, doing a proper alpha/beta test is really hard with the iphone, as distributing applications through channels other than the app store isn't exactly easy, to say the least
Compare the C# version of memoize to this one (from On Lisp). The C# one looks very long and ugly in comparison, so I hope it isn't the new Common Lisp.

(defun memoize (fn)
(let ((cache (make-hash-table :test #'equal)))
#'(lambda (&rest args)
(multiple-value-bind (val win) (gethash args cache)
(if win
val
(setf (gethash args cache)
(apply fn args)))))))
Ugh, I hate it when science reporting makes you go on a massive hunt for primary sources. Does anyone have a reference to the original paper?

Something is definitely fishy about this article. Line testing has a R of 0.99 with intelligence tests but intelligence tests themselves have a poor correlation after 18 months. Does that mean line tests are still 0.99 correlated after 18 months? It's hard to see a plausible explanation that fits this data.
I enjoy explaining technical things to my girlfriend. She has a habit (and poker tell) of furrowing her brow whenever she has trouble grokking something - this serves as a sign to me that I didn't explain a concept clear enough, either through my communication or me just not knowing enough about a subject. That's when I know I've got more learning to do!
Complaints are:

1. Hard to set up printing to complicated printers.

2. Laptop docking station doesn't work.

Yeah, hardware compatibility is indeed a perenial problem with linux distros. The reason is that it's not something the OS vendor can solve. The truth is that Microsoft doesn't make this stuff work, HP and Dell do. They're the ones who get the support calls when stuff fails, so they're the ones with an incentive to make the integration work right. The linux world has no equivalent player (in the consumer space -- there certainly is on servers, where vendors care deeply about linux support).

3. Distros don't update Firefox when new releases come out.

I think this is fair. There are arguments to be made either way, but it's true that a windows user has a much easier time upgrading to new versions of popular software at release time than linux folks do, where you generally need to wait 0-6 months for the new Ubuntu. I think some kind of answer for the user who wants to download someting new Right Now would be a good thing.

4. External monitor support sucks in X.org.

Absolutely true, but it's improving rapidly.
Yeah, the VPN paragraph had me laughing. Surely one of those 14 blogs should've mentioned "sudo apt-get install network-manager-vpnc". VPN is a breeze on Ubuntu.
cygwin and putty help with making windows bearable again, and the new kernel patches and video driver updates make flash pretty darn good
The most unrealistic part of Gattaca is how confident they are in their DNA-based projections. Like in Gattaca they can determine you are unsuited for a particular career based on your DNA.

But we are nowhere near determining someone's potential intelligence based on their DNA. I think most scientists believe that is impossible - DNA does not determine your intelligence with that much detail.

I do think that soon it will be cheap and easy to sequence your own genome. There is great hope for personalizing medicine, treatments tuned to you that are twice as effective. But genetic screening will not take on the role it does in Gattaca. A genetic screen will not give you better information than a 1-hour interview.

(I'm not a professional in this field but I did get a master's in computational biology, working on genome sequencing.)
Every five-year-old who can answer “paper” won’t turn into a financial analyst who puts a buy rating on Honda at $25, or have the mental skills to do so.

Slightly OT:

I had hoped that our current economic situation would help obliterate the myth that our best and brightest work on Wall St., but apparently we still have some convincing to do.

A good intelligence test will predict which children will grow up to be doctors and engineers. If you want to find the future financiers, you should put them all in a room and see which kids start bullying the others.
Yeah good luck with the docking station and installing on his computer.
Just wanted to see it happen. I wonder if the rat just dives in or is apprehensive. Still a great video on the plant growing.
Well, the idea behind "realtime" as it pertains to Twitter is that it is about events happening that minute. While your page might not be refreshed immediately to see new information, you COULD refresh it yourself to view it. That's real time, versus something like a blog (except a live blog of course) where the information is not time sensitive or about something that happened that second.

Pages like Twitter or Gmail use AJAX to retrieve new information from a server without refreshing your whole page. Twitter does do this (or did, at least when viewing search results and it would tell you how many new results there have been since the last page refresh). The polling here I assume happens in a simple loop that probably iterates every set number of seconds.
You should only use 75% of the rated capacity of a circuit, which means you have enough power to turn them all on at once.

some of the more expensive managed power supplies also support a staggered power on after power fail. But I don't worry about it; only using 75% of the power circuit solves that problem for me.
Any of the ones read by Tim Curry are excellent. His voice characterizations are very good.
I've done things like this in Scheme - not robustly, but it's worth pursuing IMHO. I can't stand math formulas in SEXP notation. Array/slice/hash lookup notation would be nice too.

Lisp gets it right by excluding sugar from the language kernel, but a "batteries-included Lisp" should include it in a standard library.
This topic is as fascinating to me as it is impenetrable. I'd love to understand what he's saying but get balled up in the abbreviations and not understanding how to calculate how much lithium is usable from each mined mineral.

Not to be too USA Today, but my understanding would certainly benefit from a couple pictures/graphs.
FaceBook Marketing Kit for Free
One of the smart guys in our (Y!) cloud team just point out something to me that hadn't occurred to me.

This system is definitely optimized for backup. That totally make sense for Backblaze. However it's important to not compare this like for like with something like S3 which is optimized for much better read/write performance.

At the basic level the cooling on this system seems minimal. Those tightly packed drives would sure get hot if they were all spinning a lot. More than that since they are using commodity consumer hardware, and they already used up their PCIe slots for the SATA controllers there isn't any place to add anything more than the gitabit (I assume) ethernet jack on the mobo. That means there throughput is limited.

Again, this is a great system for backup. Most of the data will just sit happily sipping little power. However, if you are thinking of this as equivalent to a filer, that's an unfair comparison.
Just a note for the upcoming October release of Ubuntu: I've been trying the alphas, and in version 2 all my external display woes have gone away. It's as easy as setting up external displays in windows.
cannot reproduce. which os are you on? It works for me.
Its a sad thing that while most of linux kernel code is drivers, its hardware support is still flaky in many places :(
According to Zed (who from my understanding has programmed in R a fair amount), these are some of the worst style guidelines ever: http://twitter.com/zedshaw/status/3690822968.
or maybe the Wikipedia article was incomplete.

Also, it doesn't say that rodents don't fall in, it says it seems to be more of an accidental catch.
The thought of putting a tinted contact in my eye to change my eye color still makes me nervous... jeeze.
Just tried it (Mac version), and somehow the browsing is smoother in Safari (scrolling, transition between pages). Not sure about absolute speed, but subjectively, it's not as good.
Collaborative Filtering with Ensembles (GitHub contest / Netflix challenge)
I was looking for a web analytics solution recently. I looked at Mixpanel, but it was hard for me to understand what benefits the product had over google analytics other than being real-time.

Event tracking / funnel analysis look about the same on both products.

Maybe I'm waiting for the article - 'how to use realtime analytics to improve your site'.
Realtime is a thing that has two meanings, what you call 'realtime' is not really realtime, which means 'when it happens', but more of a softer version of it.

To make the distinction, consider 'hard' realtime, where the events are very closely followed, usually with a guaranteed latency between something occurring and a response.

Twitter and all kinds of other 'realtime' applications are probably better described as 'near realtime'.

To make a website that displays 'live' data you can use ajax for underwater calls to see if the data on the page has been updated since the last time you related it.

Plenty of sites now use this technique, and while it gives you the impression that it now really is 'realtime' the only difference really is that you no longer do the poll to see if new information has arrived, your browser does it for you.

The web being 'pull', in other words you contact a server to retrieve information short of keeping an HTTP connection open all the time and streaming data through it as it becomes available you have to perform some kind of poll. And, as you already noticed this is pretty inefficient.

If you use server-push, which is technically possible - and which I've been using in some form or other since the mid 90's to stream 'video' (read a sequence of still images) - the upper limit is usually how many concurrent connections your server architecture can handle.

For a single machine with a single IP that upper limit is about 60,000 connections, a multi-homed machine can do a multiple of that by binding to more than one IP address. The reason for this is that every connection requires a socket which maps to a port and the TCP field for a port number is only 16 bits.

By using a poll system the overall latency goes up but you can handle many more concurrent users with the same machine.
> Docking station: very exotic use case.

It's only exotic to Linux users.
Lack of ZFS File System Support in Snow Leopard Due to Licensing Issues?
First off, I generally agree with what you're saying. I think the reason that most people look at Linux and compare it to Windows is because most people start on Windows, so it's what they're used to.

I live on Linux for the most part, so I've gotten used to things, but there are still some things that need some work, especially when it comes to laptops: namely, dealing with resolution issues, external screens, and power management. Most of these things can be dealt with if you're comfortable in Linux, but this stuff is REALLY easy to do on Windows (most likely because the driver support is better there, and will continue to be as long as Windows is the dominant user platform).

Anyway, I think Ubuntu has come a long way, and I'm perfectly happy running it as my main OS, but I can see what the author is saying here.
I'm a little depressed that external monitor support is still so poor. The last time I tried it was 2 years ago back in college, and it took me weeks of Googling, reconfiguring and reinstalling to get it to just barely work. Seems like it has barely moved since then... what a shame for something so obvious and vital to many laptop users! Reminds me of the xkcd comic. (http://xkcd.com/619)
I have met some very high paid consultants who doesnt look smart at all(smartly dressed, if any);

Knowing stuff and being able to do something useful with it (AND sell it) looks pretty smart to me. :)
The alternative to polling would be to have the server notify the browser that the data has changed. Here is one way to do it: The browser can do an HTTP GET and have a thread block on it -- later when the server has new data it sends the notification as a response to this GET. This way you are not polling over the network.