skysight-inc/HackerNews huggingface dataset:
But it's much more fun to completely rewrite the application in a new language, rather than just submit a patch to the existing daemon! Don't you know that you can't perform "flexible filesystem mappings" in C? cough
A wonderful essay that I haven't seen before. Thanks for posting.
Have you thought about handling this at the language level? Instead of allocating the closure on the server you send a string representation of the closure to the client.

First make sure that the lambda doesn't have free variables by adding the free variables to the argument list. (lambda (x) (+ n x)) => (lambda (x n) (+ n x)) Because the resulting lambda doesn't have any free variables you can turn it into a global function. (lambda (x n) (+ n x)) => function#345 and somewhere else you (define (function#345 x n) (+ n x)).

Next you store the values of the free variables in a hash table (use the memory location of the data as the key for the hash). Now you have a string representation for this closure. The representation contains the function's name (function#345) and the keys of the free variables in the hash table.

An example. Assume that users are represented by a cons cell (cons user-name karma). We're writing a page that has a link called "increment karma". When you click this link your karma is incremented.

(let ((user the-current-user))
(display-link "increment karma"
(lambda () (set-cdr user (+ 1 (cdr user))))))

First transform this to:

(define (function#345 user)
(set-cdr user (+ 1 (cdr user))))

(let ((user the-current-user))
(display-link "increment karma"
(make-closure function#345 user)))

make-closure in pseudo code (assuming there is one free variable/argument):

(define (make-closure fn arg)
(add-to-hash *free-variables* (memory-location arg) arg)
(add-to-hash *functions* (memory-location fn) fn)
(concat (to-string (memory-location fn)) "/" (to-string (memory-location arg))))

When the server gets a request it parses the string representation of the closure, looks up the free variables and calls the function.

(define (invoke-closure closure)
(let ((fn <lookup thing before "/" in *functions*>)
(arg <lookup thing after "/" in *free-variables*>))
(fn arg)))

This solves the problem of allocating closures but the global hash table keeps growing. This may not be a problem in the average case. Consider the usual data in free variables: front page links, users, etc. These things have to be stored on the server anyway. For temporary data that isn't stored permanently you can use a seperate hash table that is cleaned up every x minutes or after it gets too big (just like the closures you're storing now).

What do you think? I'm sorry if this explanation isn't clear. I'm not good at explaining these things, especially in english.
Erlang is the new cool thing. There's a marketing benefit to writing programs in a cool new language, especially in github's early market: People who jumped on the git bandwagon because it was the new cool thing.
How does that stop script kids from messing with the GET arguments? You are still passing state in the URL, no?
I'm the dev at GitHub that's working on egitd. It's true that those two features are not Erlang specific. They could be accomplished in any language. However, Erlang lets me write very robust servers with tiny amounts of code. The automatic SMP support is also a huge plus when dealing with concurrency.
i can make the encoding of the data arbitrarily secure at a cost of time/space. in the simplest case of base64, it is just security by obscurity which is why i only asserted that it keeps out juvenile delinquents. if you want it to be robust then you must use encryption of course.
'man sftp'

:)
I like the new features, but I also don't understand the Erlang connection. I think the sentiment is right that it's "cool and new" and should therefore be embraced by geeks.

If it helps them distribute their application more in a more scalable way, or in a more stable way, I'd love to understand how.

My "guess", knowing little about Erlang, is that the server code is simpler....
"Git the basics" Screencast
Aha. My guess was close.
Ask the Tiananmen Mothers how much China has changed. Ask the Uighurs or Tibetans. Ask some of the current crop of Chinese dissidents - the ones currently being harrassed, kept under house arrest, or those who've been secretly arrested, beaten, and tortured. Ask factory workers who are finding that the new labor law gives them little/no real protection from their employers. Ask nail house residents who are being forced out of their homes with little or no compensation to make way for developers with close ties to local officials. You won't read about any of these people much in the local press - either the government mouthpieces or the censored commercial media - and any significant interaction with them will end up with you being branded an "enemy of China" and hounded out of the country.

I have been living and running a business here, in China, for the past several years and I see plenty.
It's not about that at all. I'm more familiar with Erlang than C, and the git source is a twisty jungle of advanced C code. I could have patched git-daemon, but to have a project that I can easily understand, maintain, and improve, I chose to write my own in Erlang. My tests show the Erlang and C git servers to be very similar in performance, so that's not a concern. And I can guarantee that egitd has far fewer lines of code!

I don't choose languages because they're cool or trendy. I choose them because they make it easier to Get Things Done. And for a startup, that's an unmistakable benefit.
seeking feedback from users of the Picasa desktop client
I made a picasa button for uploading photos to OurDoings, but since I'm not a picasa user myself, my testing is limited. Can anybody test how easy it is to find, use and install the button, if you're already managing your photos with the picasa desktop client?

Just go to the front page, and comment here if you get stuck or notice anything else that merits feedback.

http://ourdoings.com/
And place it in a Faraday cage.
'There are so many assumptions that go into the framework that some of them are bound to be wrong...'

...but at least those assumptions will be documented in code.
The ICFP 2008 Programming Contest (or, My Abject Failure)
Filezilla on windows assumes sftp to be SSH transfers. So I think you've got that backwards.
You know, back in the day, there was an idea called "opportunistic encryption". How it worked was, you would put a FreeBSD box running S/WAN at the edge of your network, and if it detected a similar box at the other end, they would seamlessly encrypt your stream (and if not, just let it straight through). Now, if this idea had gotten the traction it deserved, we could all happily be using telnet, FTP, whatever, rather than everyone having to be aware of encryption, your SA would just sort it once, for everyone, and they'd keep on using familiar tools.
Film Review and Lessons Learned from ‘Startup.com’
Icahn Would Sell Yahoo's Search Business To Microsoft For $1 Billion
Who to follow on friendfeed by Guy kawasaki
Interesting aggregation ... original post on http://blog.guykawasaki.com/2008/07/friendfeed-star.html
I'd definitely leave age out of the argument that FTP is bad seeing as how plenty of people use old programming languages, old OSes, and old software for the simple fact that it "just works."
OS X doesn't even really support FTP through the Finder... It's read only.

A good substitute is MacFUSE and the SSH file system. Your server gets mounted as a disk (read and write!) and it's secure through SSH. If you want goodies like preferences there is a product called ExpanDrive that makes it pretty seamless.
apparently pandora is streaming 64kbs audio
Design icon Carlos Segura discusses effective design and working with clients
Introducing the Google Webmaster Tools Access Provider Program
Yeah, I prefer the last.fm app over pandora. Its even functional over edge.
10 steps to better secure your Mac laptop from physical data theft
Apple Drank Sprints Sales Milkshake
But now every time upstream makes a change, you have to reimplement it. And the users of the C daemon don't get your improvements.

Obviously you can do things your way, and you'll probably make money doing so... but it's still antisocial.
Confessions Of A Guy Who Stood In Line 7 Hours To Buy An iPhone
"people are more content in spending effort/money on 'miracle cures'"

... or businesses are just more interested in researching products that have obvious profitability. Let's say you spread the gospel of eating healthy foods. Where is your income coming from?
Is the "First Movable Type" a Hoax?
The post mentions "iFlops." You know, I'd really love a pair of Apple Themed flip-flops. ;)
Forbidden
You don't have permission to access /onWRITING/vonnegutSTYLE.html on this server.
Well, in particular he states two things that are worth
noting:

1) You have to hand code all your interfaces. The SDK uses Interface Builder, which lets you 'draw' your UI similar to building a normal Mac app.

2) He's using a Javascript interpreter to create the UI. Unfortunately the SDK doesn't allow 'interpreted languages':

"3.3.2 An Application may not itself install or launch other executable code by any means, including without limitation through the use of a plug-in architecture, calling other frameworks, other APIs or otherwise. No interpreted code may be downloaded and used in an Application except for code that is interpreted and run by Apple’s Published APIs and built-in interpreter(s)."

Javascript may be a fuzzy point if Jiggy doesn't use only apple's internal/native stuff. Plus, I notice Jiggy still lists itself as requiring a Jailbroken iPhone. Cool stuff, but not sure if it's usable on the SDK for those building mainstream apps.
That 'strong message' and $4 will buy you a Starbuck's.
I'd like to use SFTP or scp for everything, but I've discovered that it's considerably slower than regular FTP. I wish that there was a way of encrypting the login but sending everything else via plain FTP for speed.
Chess could be interesting from an AI perspective if you limited the amount of brute force searching allowed. Computer chess and human chess are, by and large, completely different games.

I'm not sure I agree with this article about patterns in chess. The real masters think strategically as well as tactically, and use the structure of the pawns and pieces, combined with intuition, to guide their moves.

Ultimately, I suspect that go and chess fire up similar regions of the human brain.
See also http://www.halfbakery.com and (if it ever comes back from 'redesign') http://www.shouldexist.org/ .
Man, why can't people let me take 10 minutes of their life to explain trivialities for me to grasp in 60 seconds, instead of me being the one to waste 10 minutes looking it up? Are you all really that lazy and self-centered?
It's worth noting that it can beat 1k players on a 9x9 board. On a 19x19 board (the standard board size), they are both weaker and less consistent.
I think using encryption limits the size of the files to about 2 GB in current versions. It is too little for DVD images.
How We Built an iPhone App for $4873.92
"You say: generate a link, and if the user clicks on it, run the following code."

Maybe I'm being dense here, but how is:

(user state + resource state) -> link -> code

different than:

(resource state -> link) + user state -> code

other than that in the first instance you're encoding user state in the control layer?

In both cases you're mapping (user state + resource state) to a specific block of code. How does the order you do it in affect anything else?
I love the idea. Is anyone here using it?
Its a shame its a US only application, last.fm app is working well though
Problem with the little yellow dots:

I pay cash for a printer and fill out the warranty card with someone else's information that I don't like.

I send the warranty info back to the printer company; they now have a record of my neighbor owning the printer in question.

Next, start printing out all sorts of illegal stuffs, distribute, and let the good times roll!

In summary: Using those little yellow dots to track things or people is just a horrible, horrible idea.
Amazing Linux Kernel Development Stats from Greg Kroah Hartman
At and Between. Interoperability and the future of the Web.
Opportunistic encryption is generally a good idea, but as it has no feedback method you can't really be certain if it is working or not. The seamlessness works both ways.
They did MRI on Z.Polgar while she was playing.
What they found out was chess thinking happens in a small region of the brain. The region is the same humans use when trying to recognize faces. Training modifies that machinery to recognize chess board positions too.
Changes to the git protocol happen at a glacial pace. Keeping up with them will not be a problem. The only users of the C daemon that would benefit from egitd are our competitors. We've open sourced our Ruby git library since that has benefit to the community as a whole. I'd hardly call our decision to write an Erlang git server antisocial. As far as I can tell, it's not hurting anyone.
IIRC the UI isn't a fundamental part of Symbian, it can look like whatever the vendor wants.
You're right, if I ask the most oppressed people in a society, they will tell me everything wrong with the government. I'm sure that's no different anywhere else.

My question is: what do you do about these problems? How do you curb local political corruption? How do you maintain governance of a mostly uneducated mass, while transitioning to capitalism? How do you keep the country developing while minimizing pollution? etc etc etc...throwing stones is the easy part. Building is the hard part.

My entire point is: you won't be able to come up with good, sound solutions to any of these problems without a deep understanding of China, and even then, I doubt there are any really great solutions without side effects.

Edit: but to reply, a lot has changed since Tiananmen. I don't have to ask the Mothers of those killed, I can see it myself. Maybe it hasn't changed as much as you like, but it has changed a lot.
AI is search, brute-force or otherwise. There are a number of fascinating things that have come out of chess research on the way to grandmaster-level play, and even if the strongest chess players are all computers, that doesn't mean that it's suddenly become a worthless pursuit. The day that a perfect game of chess is played is the day that it gets boring, not before.

With respect to go, the current approach is completely brute force; it plays thousands of games at random, and uses the percentage of wins by one side to evaluate the strength of the position. The challenge is how to use the information you've already encountered in your searches to reduce the search-space to something manageable.
Does the brain feature built-in noise?
One of the strongest current programs, MoGo, recently beat a 5 dan player on 9x9 using a monte carlo approach.

http://en.wikipedia.org/wiki/Computer_go#Monte-Carlo_methods
Viximo: We want you. We need you.
Yeah - find some Australians, British citizens, Canadians, etc. who are serving lengthy jail terms or are currently under house arrest for speaking out about environmental disasters, labor disputes, and the like. Especially reach out to the ones who've been beaten and tortured for voicing their views and attempting to organize.

The problem of course is that none of that stuff happens to peaceful protesters and activists. It does happen in China.

Any effort to cast the Chinese government and its policies as somehow morally equivalent to the governments of liberal Western democracies is going to fall flat.
Cash and code-based software economies
I made no such argument.
added you as a friend. I'm 12k as well, though I have a lot of variance in my skill level.
Microsoft to buy Zoomix
Incoming rant:

"Viximo is a venture-funded startup, based in Boston, building a digital goods platform that will help creators, developers, and online communities monetize social interactions."

Seriously, guys? Is this what you do with your Harvard MBA, come up with crap like that? Should that inspire me as a developer?

"venture-funded startup, " -- who cares? I don't.

"based in Boston, " -- you could be based in a bathtub, for all I care, if your product puts the fire out in my pants.

"building a digital goods platform " - a who? what? do you talk to real people like that? What does that even mean?

"that will help creators, developers, and online communities monetize social interactions." -- am I a creators? Oh, wait, humans don't talk like that. "social interactions?" /sigh.

However, you almost redeem yourself:

"Want to send your friend a cupcake for his birthday? A beer? Maybe a pair of handcuffs? This is where the magic happens."
Filezilla on windows assumes sftp to be SSH transfers. So I think you've got that backwards.

What, exactly, do you think I have backwards? I just tried to explain how wildly diverse the meanings are, and how people use the terms. I don't care what your favorite FTP client means when it uses the term SFTP (bully for you, that you happen to use one that uses the term correctly)...I'm telling you that there is little agreement in the wild about what the term means, and many people use it incorrectly to refer to FTPS (and other kinds of secured FTP).
What? It's MUCH simplier than than: I can't send a Windows/OSX user an email with an SFTP version of this line:

ftp://server.com/report.pdf

It's that simple.
I had always assumed that SFTP was always and only SSH transfers, just like using `scp`. Is this wrong of me to think this way?

No, this is absolutely correct. But don't be surprised if someone misinterprets you.
Huh, that surprises me. I would have expected a chess master to use more of her brain than I do (not that I know how my own brain would look all wired up, but I have trouble believing that I don't think much more narrowly about the game - kind of how people who actually understand math approach factoring a set of equations differently from people who need a set of rules they can follow closely).
I didn't realize you weren't releasing egitd. If you're keeping it to yourself, it doesn't really matter what it does or what language it's written in.
Can someone with an account please paste the article?
Tila Tequila is number one and they couldn't even get the CEO at Linden Lab right? Fail.
I've kept out of KGS for a long time since it was just too tempting, but this post has inspired me to get back into action. I'll also be looking out for other HN readers, username d00d.
In what product? I have frequently transferred files larger than 2GB on SFTP as well as storing them with encryption on my computer and there is no 2 GB limit.
Surely it matters insofar as people find it interesting to hear about, even if they might prefer to actually see the code.
Is there any sign of a FineTune iPhone app? I liked their Nintendo Wii interface and I'm disappointed that web on Wii hasn't been as popular as expected
Making printed representations of closures is a very hard problem. I wouldn't say insoluble, if you were willing make compromises in the language semantics, but one sign of its hardness is that all Lisp implementations I know of punt on it.

You could write a whole PhD dissertation on this topic. My gut tells me it probably wouldn't be worth it. Closures don't feel like something one should expect to be representable. But I'm not 100% certain.
The phones were going to be out this Summer (so now) but have been delayed. Who knows if Christmas will slip too
In chess you could have a checkmate without a single capture. Fool's mate, right?
Follow Reddit from the Console
Very nice. This reminds me of that "groups" feature request for HN...
HTML 5 data- elements to store private values
And I heard it totally Cockney, not that I hear much of these accents outside of the telly (that's what you call it right?).
Mark Twain: Our Original Superstar
Blown to Bits - Hal Abelson's (SICP author) latest book on future of privacy
TokBox launches Adobe AIR-based video chat app
I'd seen that, but I haven't seen any published results of 1k players being routinely beaten at 19x19. If I've missed something like that, I'd be grateful for a link.
Just to add, here's what wikipedia says about the term:

http://en.wikipedia.org/wiki/SFTP
grin 1.1 - tool to search directories full of source code
I detect the beginning of a new Internet meme: "How we did XXX for $YYYY.YY".

I don't really see the point of these articles either. Why include memory for XML parsing and the flight to WWDC? I'm pretty sure the app could have been made without those. The article is about what they spent, but it doesn't generalize in any meaningful way.
Is there anybody out there? Results of last week's engagement and influence experiment.
Traffic Master John Reese Shows You Once And For All How To Grow Your Traffic
Hi, Cory here with a quick Newsflash for you about all the Buzz around John Reeses re-launch of Traffic Secrets 2.0. At exactly Noon EST tomorrow (Tuesday, July 15th) John Reese will finally release his long-awaited Traffic Secrets 2.0 training course.
I can see you haven't optimized your social cloud economic leveraging potential by re-factoring your economic practicality baseline.

Do I get the free beer now?
I just quit my job and started freelancing, and one thing that I have to point out is that although I'm working from home now, It still sometimes feels like a 9-5 job. I can only handle one contract at a time, and will get burned out if I do more than 8-10 hours of work a day. The weekends are all mine however (including Fridays).
It's very rare when two things I have turn out to be able to be used with each other. But I do have Netflix, and I do have an Xbox 360. This could be useful :)
This guy should look into XUL Runner:

http://developer.mozilla.org/en/docs/The_Joy_of_XUL
Yes, it'd be lovely if everyone used the term correctly...but a large percentage of users do not.

Googling SFTP is actually very heartening--it takes quite a lot of searching to find anyone using the term incorrectly. This wasn't always the case (and the hearts and minds of the non-technical masses takes a lot longer). We still see at least 50% of our customers saying "SFTP" when they mean "FTPS" (and we don't support any of the proprietary FTP-with-encryption protocols).

I think part of our users confusion comes from the fact that the server that provides SFTP service is called sshd and the server that provides FTPS is called proftpd. Obviously, FTP is right in the name of one of them, so that's where all FTP comes from! System administration is hard.
Ruby/Web 2.0 snob opinion on compilers is that they are lame. See, e.g., http://www.jroller.com/obie/entry/top_10_reasons_why_java and
Few stones being captured is usually a sign of skillful players. I don't think the same can be said of fool's mate.
I find it disappointing that you feel dynamic typing is incompatible with performance.

Now's the time to rediscover optional static type annotations used for optimizing compilation. Radically innovative!
"""This is implemented in Java, a language I have been told by people who get heavily voted up on this site is a ball and chain."""

They were simply wrong. Java is a powerful and productive environment. Even for startups.

S.
You might have a workable compromise if you cheat and only serialize the portion of the closure's environment that refers to some simplified set of types.

A way of serializing closures such that they kept bindings to symbols, numbers, strings and conses in the local environment would probably be pretty useful. (On the web, I think you usually want to preserve fairly simple values - usernames or whatever.)

map-closure would make it easy to do at the language level, too.
FSF laucnhes autonomo.us activist group to focus on freedom in network services
Continuing that line of reasoning, that makes 37signals the more "credible" source because they're unbiased. YC has a vested financial interest in lots of young people attempting "it".

Now that doesn't have to mean it's not in your interests too ...