skysight-inc/HackerNews huggingface dataset:
Ask HN: Legality of using artwork from GPL-ed games
I realize you guys aren't lawyers, but I want to see if any if you have dealt with this before.

Here's what I am considering doing: I want to use the art work from GPL-ed games, and I don't want to distribute my source code under the GPL.

Here's what I'm considering doing:

* write my iPhone game (not releasing it's source)

* when run, my iPhone game contacts the debian (or source forge) servers; downloads the corresponding .tar.gz or .deb

* my iPhone game then extracts the art work + boots up and runs the game

* this artwork, of course, will then be cached on the phone for future uses

I'm thinking of doing something similar for desktop games too.

1) has anyone tried this?
2) has anyone considered this?
3) before I pay expensive lawyer fees -- is this clearly legal or clearly against the GPL?

thanks!
Regardless of AMD's intentions in this case or the financial implications of this decision. Intel with either look like a petulant corporation or worse, an organisation that actively strong arms its competition...well at least to any anti-trust commissions any way.
The median age on IRC has got to be at least 23 at this point.
No, that doesn't count as "in person", but you get to know what people are like irl based on their behaviour on irc. It's not 100% accurate, of course, but a lot more accurate than HN posts.
I think it's more likely that procrastination is a result of our internal reward system. Things considered work are not considered fun, and therefore not done. I mean, have you ever heard of a person putting off masturbation? The only things that people procrastinate on are things that don't seem fun.
Did you read the second latest 43folders.com article? It's a good write-up about the whole issue.

http://www.43folders.com/2009/04/10/free-me
I'll consider it cosmic interest on my loan of Larry Wall's karma.
Phil Plait has a pretty good write up on the photographer and method used to capture the photographs.

http://blogs.discovermagazine.com/badastronomy/2009/05/15/ch...
Invisible Hands: The secret world of the oil fixer
My dad's first computer was a DAI. So rare that I never heard anyone else mention it. It still looks good though.

http://en.wikipedia.org/wiki/File:DAI_Personal_Computer.jpg
We live in a messy world where regulators often have wide discretion and politically-driven motivations. Guilt or innocence in a matter like this is on a completely different plane from guilt or innocence in a murder trial. Even if we had perfect information about the past, reasonable people could debate endlessly about whether the sum of actions constituted "anti-competitive" behavior (which is banned) rather than just simple competition (which is encouraged, as opposed to, say, collusion).
Wow. For Scott that was very ummm.. Cringely-like.

As an aside, the system would only need to back up a database of what movies, music, and video games you own, and not the actual content. If you ever needed to do a recovery, your record of ownership would allow you to download the content again for free...

...Obviously all the technology to make this happen already exists. It's a matter of getting the cost down, negotiating all of the various licenses, and building an interface that is easy to use.

Actually, on second thought, the lunar X-Prize is a much easier task.
I think Lao Tzu said it best: "The Null that can be named is not the true Null". Or something like that.
if you follow your feedback loop you will quickly end up with nothing new on the site, but only everyone reinforcing the vocal majority.

To the contrary, I think it's possible to disagree factually with someone without being time-wastingly snarky or shallow or cliche. (I hope this comment proves to be an example of what I claim.) I got downmodded once, badly, for a comment that consisted of thanks to a submitter for submitting a post. But probably because I wrote "LOL" as the first sentence of the comment (I really had laughed out loud at the post, which was a serious post about an industry news item), and didn't add any additional information or thoughtful discussion, my comment was deemed a Reddit-style comment and voted down ruthlessly. Now if I just agree with a submission or a comment as a good contribution to HN, but have nothing further to say, I upvote. If I disagree (as here), I express my disagreement in what I hope is polite language. The feedback loop functions mostly by training us about MANNER of submissions and comments. I think I'm still able to take a controversial point of view, as long as I don't inject flaming and back up my factual statements. And I strongly appreciate comments back to me of the nature of "Could you please provide evidence for your claim?" and post comments of a similar nature to other participants here.

It's important to never downmod (and upmod) based on whether or not you agree with the subject!

The founder of the site, pg, has expressed disagreement with this idea in a public comment, although I don't have the reference at hand. Sometimes downmodding to show factual disagreement is the most efficient treatment for a comment that mostly expresses a wrong opinion with little sign that the commenter will be willing to bring forth evidence, or with an existing reply-to-reply comment showing that the commenter doesn't think evidence is an issue he should concern himself with.
The Plan 9 from Bell Labs file system is called Fossil, due to it's snapshot capabilities.

Unfortunate name clash.
We build our computers the way we build our cities -- over time, without a plan, on top of ruins.

Yes, but didn't Christopher Alexander, the Pattern Language guy, praise the way we sometimes build (unplanned) things like villages?
IPhone and Seaside
My biggest problem is with people who haven't got the skills to communicate their point properly. In many debates here on HN (or even in single replies) people get personal and passive aggressive, labeling the people they disagree with "assholes" or worse.

Debate is good and very healthy, and we should be having it, but some people's communications skills can't get beyond turning debates into personal attacks and IMHO that means I've automatically won the debate as soon as they do that.
Ask HN: After SICP, what next?
One of my friends just finished working through SICP (progress here - http://lawfulsamurai.blogspot.com/search/label/SICP, - the last few sections still have to be updated) and asked me for reccomendations for future work.

I thought of telling him to get really strong on algorithms etc (perhaps by working through Tardos/ Cormen et al, doing all the exercises like he did for SICP), but thought I'd tap the good folk of HN for better (or different) suggestions. Working through CTM for example is an option (another of my friends was doing this http://ctm-himanshu.blogspot.com/ but he didn't quite complete it).

(This has nothing to do with his day job which is java/python/Django. Just something for him to work through when he has a few hours and learn cool things.). Any suggestions gratefully accepted!

Thanks in advance.
NaCl has as much in common with software virtualization as it does with Java-style bytecode verifiers.
Poll: What (freemium) contract forms would be most useful for startups?
I'm a technology lawyer (former IP-firm partner, then public software-company GC). I'm building a freemium collection of contract forms and commentary, and am wondering what forms people would find most useful. See http://www.firstdrafter.com for more details. Feel free to suggest other forms in the comments.

NOTE: The FirstDrafter Web site has the capability to pre-configure a given contract form so that it favors one side or the other, or so that it goes 'down the middle.'
Nondisclosure agreement (several forms are currently available at the FirstDrafter site)
Employee invention-assignment & work-for-hire agreement
Employee confidentiality agreement
Employment agreement w/ all of the above as options
Employee stock-option agreement
Software license / maintenance agreement
Web site terms of service
Web site privacy policy
Consulting agreement - master form for possible multiple projects
Consulting agreement - single project
Reseller agreement
Referral agreement (to pay commissions for referrals)
Other - please post suggestions in the comments
Just enjoy your life, stop worrying about it. If you do it you do it, if you don't you don't. No matter how many blogs you read no matter how many comments you post the bottom line will come down to done/not done.

It's 50% vs 100% Don't be the guy that runs 2.5k in a 5k marathon.

Procrastinating is probably better for you than everyone makes it out to be. If you never procrastinated you would look at sleep as some sort of slavery, you would look at relaxation as a disease and eventually it would spiral out of control.
Maybe bitfrost would help http://blogs.zdnet.com/security/?p=20
Yes. If possible, if a variable is for a Floogle, then make it always have a Floogle in it. If the thing is not there, represent it with a MissingFloogle.

I think dynamic languages would be wise to support this explicitly. (There's always a Missing subclass of every type.)
The BitFrost security model in OLPC
Only 13.5k tweets disagreed with the Twitter replies change
The myth of the Eureka moment
Perhaps. I'm not willing to assume that Intel is stupid though. It's conceivable that they are playing a strong card here. Intel could be in the right on this dispute; AMD could be clearly in breach, but Intel simply didn't want to pursue it until it was clear to them that the European Commission was going to move against the company anyway.
I'm failing to see how this could possibly disadvantage Microsoft at all. Since the sandboxed code runs as a native X86 app, it also uses native system calls. Games (or any desktop app delivered via NaCl) using DirectX or other native Windows system APIs would be just as tightly coupled to Windows under NaCl as they were when running standalone.

If anything, Microsoft should welcome this as a defense against the encroachment of cross-platform JS and Flash applications.
Seems to be summed up by 2(b) in the GPL:

You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.

That suggests you need to GPL your application to use art from a GPL'd game.
Some were probably missed in the early hours of Wednesday.
Yeah, but it can play every game of Sudoku ever - all at the same time!!!!
On the need for a Hippocratic Oath for programmers.
So is it a case of "damned if you do, damned if you don't"? How do startups expand when they really have outgrown that little hole in the wall without losing the startup culture that allowed the initial success?

Is the curse of the new building unavoidable?
Richard Dawkins' rage of reason
> it's probably better to let it go, or to flesh it out with something more substantial

My thought on this exactly. When in doubt, elaborate.

There are many times I come up with something I think is fairly clever to say, but I'll resist saying it unless I can find something genuinely useful to say as well. Sure, my fellow HNers might have to miss out on all my wit and charm, but at least if the joke flops, the (hopefully) relevant comment that follows might redeem it a bit.

In this particular situation, I think the reaction would have been much different if "What's the difference?" was followed by roughly the same explanation of your line of thinking as posted here...

As for kyro's remark, while it strikes me as a bit trigger happy, it doesn't seem particularly insulting. If anything, I'm curious how he extrapolated "childish, baseless, and condescending" out of three relatively innocuous words. It seems like you'd have to write more words to be all three of those things.

Anyway, not like anyone actually cares about my view on this, but I can't resist the opportunity to go all meta every once in a while.
<pedantry>There are no uninitialized values in Java. Reference values are initialized to null by default.</pedantry>

I'm not sure how null makes your problem worse...? If you want a value meaning "this value hasn't been set by the program yet" then you'll have to specify a value for that purpose. The easiest thing is to just use null... unless null corresponds to a valid value for the type, in which case it seems fortunate that it's available to represent that value. I find null annoying when it doesn't correspond to any valid value for my type and I'm forced to check for it everywhere anyway.
At first it looked like link bait, but was well worth the read. Very articulate and for some reason I found it quite comforting.
Wow is that ever wrong.

NaCl sandboxed code does not use native system calls. If it did, running a NaCl program would be just as bad as running an ActiveX control.

NaCl programs are restricted by the verifier so that they can only run a set of virtual system calls defined by Google. That system call file is like its own cross-platform OS interface, like NSPR except for desktop programs.
Thanks for the reply. Very good points. NULL is perfect for DIV/0 or no record in join errors. I have absolutely nothing against that. It's the NULL instead of empty string that really bothers me and causes problems. Setting the field to NOT NULL has its own set of problems when used over ODBC. I know it's not the fault of the DB but the problem still remains.
Now Twitter gets a guy arrested in Guatemala
Slicehost are great, but afaik they are hosted in the US. Rackspace and Serverbeach good in the UK.
> Unlike many professions where ethical decisions must be made everyday... we in the software business are often (though not always) engaged in ethically inert pursuits

This attitude is the real problem. There scarcely exists such a thing as an ethically inert pursuit. I am reminded of a proposal I once read for something like a Hippocratic Oath for programmers:

http://glyf.livejournal.com/46589.html
I wish there was this for regular clothes. I virtually never go out and buy clothes (lack of time, interest etc.) until my old ones starts to wear, it's pretty much a maintenance thing for me. I'd just like to put in my measurements, maybe rate a few clothes I so it knows what I like and then have stuff magically appear every now and again. I'm sure a random fashionable person would improve my looks by actually having taste. :P

http://shirt.woot.com is nice for T's at least but I don't think it would work well for anything more expensive or less expressive than that.
It's an overreaction. We clearly don't like that our use of employers computers is monitored. But it isn't reasonable to expect that we'd have so much privacy on those computers that our managers wouldn't be allowed to see how we're spending our time. Just because we don't like it, doesn't mean it's wrong.

Of course, we're all free to work for companies that promise not to perform this kind of monitoring.
Did he enjoy sections 4 (Metalingustic Abstractions) and 5 (Register Machines)?

If so, he'd probably be interested in both these books. They are quite hefty, but seem to be goldmines (so far, I'm only just getting started on them myself).

http://research.microsoft.com/en-us/um/people/simonpj/papers...

and

http://research.microsoft.com/en-us/um/people/simonpj/papers...

Both books cover much of the same ground. The first one is heavier on theory, while the second one reads a LOT like SICP. Currently I'm working through the second one and using the first one when I want more in-depth info on a certain topic.
Lunar? The fricken lets-get-to-jupiter x-prize is an easier task than "negotiating all of the various licenses".
The image is surprisingly clear as I can make out a wing and the tail. Here are two more images of similar transits:

http://apod.nasa.gov/apod/ap050729.html (ISS and Discovery)

http://apod.nasa.gov/apod/ap080730.html (ISS)
How Social Media Will Change Hiring
I haven't read up on BitFrost in several months, so bits of the model may have changed by now, but as best I can recall, BitFrost is very closely tied to the Linux/POSIX process model. A core part of its process isolation model is the execution of each task under its own ephemeral user and group ID, with system-mediated IPC over DBus.
> we're all free to work for companies that promise not to perform this kind of monitoring.

While such companies exist.
Or if browser has builtin support (a la card space) for OpenID, which would solve the problem.
The LinuxMCE is no thing of beauty yet, though. Here's hoping this changes soon.
I think this issue would come to the fore front' with an example where you surf to all these places, and let the top bar ads pile up - then screen shot it ...

- the campaigns slogan "If we all acted like Digg and About.com"

- If this keeps happening I think a frame buster will soon become something that is automatic, which will break things that use it for the good of the internet (Google cache)
I was pretty disappointed. Usually his posts have interesting insights and are well thought out. That's what makes them worthwhile. This post was the exact opposite of that.

It's an insight that pretty much everyone who knows anything about computers has had in the past and even the most basic scrutiny turns up a major flaw in his idea, namely that media companies make a huge chunk of their income from buyers who lost their original copies and are forced to buy new ones.
Naval Ravikant: Venture Hacker Interview
Okay, good to know. It was unclear from the article what set of syscalls we exposed to the apps running within the NaCl sandbox.
If your friend wants to a) get really strong on algorithms, b) put in some hours, and c) actually do the exercises, I'd recommend Knuth. It's worth the effort.
Implementing Functional Languages: A Tutorial
Blacksocks had come up earlier on HN, with some interesting comments.
http://news.ycombinator.com/item?id=534330
It depends on what he wants to learn.

I got more out of How to Design Programs than I did from SCIP. Though to be fair I read it before SCIP:)

http://www.htdp.org/

On the other hand if he wants to learn Lisp then I really enjoyed Lisp in Small Pieces though its not a quick read. It consumed almost all of 2005 for me:)
Thanks for posting this link. I hadn't seen it before, and it really does hit the nail on the head.
Ask HN: do we need a pusher/seller/rainmaker?
With my partner we plan to create a startup in the cloud security domain. While we technically complement each other perfectly and already worked together very well, I am afraid we are both a little too friendly, humble, judicious.

So my question: do we need to complete our team with someone energetic and emotional, who adores talking to people, convince customers at conferences or tradeshows, and even doesn't mind to aggressively and persistently try to sell our idea - the pusher/seller/rainmaker guy, the kind of charismatic arsehole ;-)? Or will we grow automatically in such kind of role?
Any opinions, storys, examples?
Wasn't that TiVo's business plan before they decided to focus laser-sharp on TV instead of a generic difficult-to-describe home server?
I like CTM. http://www.amazon.com/Concepts-Techniques-Models-Computer-Pr...
About the campaign:

Ahahaha, someone please do that! It'd be awesome :)

About framebusting:

Yeah, it sucks to break some good uses of framing. Anyone know of a service out there that does busting based only on a list of known abusive URLs? That sounds like something that would be useful...
- Concepts, Techniques and Models of Computer Programming

- Algorithms, a functonal approach

- Real World Haskell

- Paradigms of artificial intelligence programming

Any of these are excellent post-sicp reads.
Please consider adding item excerpts/descriptions to your Hacker News feed. I love the feed and am subscribed to it, but without excerpts or descriptions for items it is not as easy to skim.
I'm personally going to work through Programming Language Pragmatics. I want to have a better foundation in language paradigms, plus fill a hole in my education (no, zero, nada, real exposure to compiler design).

I'll also be learning more about Lisp concurrently.

Sadly, none of this has much bearing to my day job, but when I have an hour or two it seems like a nice way to spend it. At that pace, I plan to finish sometime in 2015 . . .
The research paper says it's a sandbox.

http://nativeclient.googlecode.com/svn/trunk/nacl/googleclie...

Here's an interesting comment I read on Slashdot a while back that summarizes the paper:

This is really a little operating system, with 44 system calls. Those system calls are the same on Linux, MacOS (IA-32 version) and Windows. That could make this very useful - the same executable can run on all major platforms.

Note that you can't use existing executables. Code has to be recompiled for this environment. Among other things, the "ret" instruction has to be replaced with a different, safer sequence. Also, there's no access to the GPU, so games in the browser will be very limited. As a demo, they ported Quake, but the rendering is entirely on the main CPU. If they wanted to support graphics cross-platform, they could put in OpenGL support.

Executable code is pre-scanned by the loader, sort of like VMware. Unlike VMware, the hard cases are simply disallowed, rather than being interpreted. Most of the things that are disallowed you wouldn't want to do anyway except in an exploit.

This sandbox system makes heavy use of some protection machinery in IA-32 that's unused by existing operating systems. IA-32 has some elaborate segmentation hardware which allows constraining access at a fine-grained level. I once looked into using that hardware for an interprocess communication system with mutual mistrust, trying to figure out a way to lower the cost of secure IPC. There's a seldom-used "call gate" in IA-32 mechanism that almost, but not quite, does the right thing in doing segment switches at a call across a protection boundary. The Google people got cross-boundary calls to work with a "trampoline code" system that works more like a system call, transferring from untrusted to trusted code. This is more like classic "rings of protection" from Multics.

Note that this won't work for 64-bit code. When AMD came up with their extension to IA-32 to 64 bits, they decided to leave out all the classic x86 segmentation machinery because nobody was using it. (I got that info from the architecture designer when he spoke at Stanford.) 64-bit mode is flat address space only.

http://tech.slashdot.org/comments.pl?sid=1056231&cid=260...
Funny how a little care in naming can save countless hours of confusion and explanation. In the original case of VBScript, if the value had been called "Unknown" instead of "Null," it would have saved a lot of confusion.

Now when it comes to languages like Java with only one special non-value value, "null" or "Null" or "Nothing," you have to know the context to know what it means. It might mean "this value is unknown," "this value has not been calculated yet," "an invalid value was calculated," or "there's a bug in the program." Or it might be overloaded to mean that one or more of those might be true.

If exactly one of those special cases is possible in your program, then everything is peachy: use null to represent that case. If you need to represent zero or more than one of those cases, then you'll end up with some kind of ugliness or imprecision.
This site is both ridiculous and awesome
Threadless does it for tshirts:

http://www.threadless.com/12club
This is the single best text I've seen on algorithms in the real-world: http://www.amazon.com/Algorithm-Design-Manual-Steve-Skiena/d...

Can't recommend it enough.