Hacker Newsnew | past | comments | ask | show | jobs | submit | 2012-05-14login
Stories from May 14, 2012
Go back a day, month, or year. Go forward a day, month, or year.
1.Welcome To Life (tomscott.com)
545 points by ryannielsen on May 14, 2012 | 183 comments
2.The Coming Meltdown In College Education & Why The Economy Won’t Get Better Soon (blogmaverick.com)
339 points by dwynings on May 14, 2012 | 292 comments
3.VLC has been downloaded over a billion times (videolan.org)
321 points by m_for_monkey on May 14, 2012 | 105 comments
4.Why we moved from NodeJS to Ruby on Rails (targeterapp.com)
239 points by heroic on May 14, 2012 | 159 comments
5.We got a takedown notice from LifeShield for our positive review (pskl.us)
225 points by adulau on May 14, 2012 | 81 comments
6.Perian is shutting down (perian.org)
212 points by BenSS on May 14, 2012 | 63 comments
7.Turn anything into a videogame controller, even a banana (kickstarter.com)
209 points by verganileonardo on May 14, 2012 | 25 comments
8.Wozniak calls for open Apple (itnews.com.au)
188 points by jacobr on May 14, 2012 | 149 comments
9.How Pixar Almost Lost Toy Story 2 To A Bad Backup (tested.com)
169 points by trevin on May 14, 2012 | 75 comments
10.Somebody please, for the love of god, fix shipping/couriers
160 points by georgespencer on May 14, 2012 | 130 comments
11.Python Web Programming (python.org)
152 points by plessthanpt05 on May 14, 2012 | 54 comments
12.Experimental Page Layout Inspired By Flipboard (tympanus.net)
151 points by tambourine_man on May 14, 2012 | 51 comments

> Someone has to explain to me exactly what we should have done differently here.

Since you asked:

Ask the original author if it would be ok to include his contribution in your derived work.

> I honestly [] absolutely no idea what we should have done differently here to illustrate an interesting fact with our readers and reference the original source (we did that twice in the article...even with his full name (a screenshot of which he conveniently didn't include in his post))...and still he comes out guns blazing like he wrote a full-on opinion piece and we decided to just copy/paste.

Crediting someone does not automatically give you the right to copy their work without their permission. That's a misplaced sense of entitlement, and one I would definitely not accept from a site with the visibility of TNW.

Would it be ok with you if I copied TNW and linked back to your pages to credit you? No? Why not? Where would you draw the line of what is acceptable and what is not?

Oh, and you did just copy/paste.

> We work immensely ha[r]d to product original content

So don't cut-and-paste interesting bits you find on the web.

> I'm honestly amazed that this is crawling up Hacker News quite frankly.

The Next Web is featured on HN quite frequently, so it is logical that any criticism of your website would feature here as well. And I wouldn't call it crawling, you've got top billing.

I'm honestly amazed that you did this, and how utterly wrong your stance is. For a person associated with a publication I would expect a much higher level of knowledge of things like 'how to cite' and 'how to attribute' and maybe a dash of copyright 101. How hard is it to ask someone if you can use their stuff? Just ask, worst case they'll say no and then you can always simply link to them to make your point. It's not like he's suing you for $125K per copy, he's just upset that you didn't have the common courtesy to ask.

The fact that people usually are not upset and that people don't care does not change a thing with respect to what's right or not and asking is the normal thing to do.

I've had my content cut-and-pasted so often that I no longer care but it seems to me that if you want to write original content you should simply write rather than try to pick up which bits are trending on certain websites to re-package those for a larger audience. Besides the fact that it does not say much for how you produce your content it also shows that you don't even bother to do your own fact checking. You could easily be set up to parrot incorrect data like this.

Do your own homework, write your own text supported by facts that you have researched yourself and cite your sources. That is original content.

14.Why can you turn clothing right-side-out? (math.stackexchange.com)
145 points by ivoflipse on May 14, 2012 | 33 comments
15.Are Stanford Students Just (Really Excellent) Sheep? (stanford.edu)
142 points by schmico on May 14, 2012 | 167 comments
16.Schemaverse: MMO entirely in Postgres (schemaverse.com)
140 points by willlll on May 14, 2012 | 28 comments

False dilemma. The third and correct option is "don't be a dick".
18.Gameboy color emulator entirely in Javascript (grantgalitz.org)
128 points by kmax12 on May 14, 2012 | 32 comments
19.Migrating From MongoDB To Riak At Bump (bu.mp)
131 points by timdoug on May 14, 2012 | 131 comments
20.Amazon CloudFront - Support For Dynamic Content (aws.typepad.com)
124 points by jeffbarr on May 14, 2012 | 60 comments
21.(Some) ORM haters do get it (revision-zero.org)
116 points by blambeau on May 14, 2012 | 105 comments

The old adage is you can't copyright facts and there was certainly no requirement for TNW to do any "original research" to share these findings.

However, when you copy/use facts, you wade into hot water if you also copy the structure and the way those facts were originally expressed. The original TNW article shown here seems to step over that line with a barely masked copy of the original paragraphs.

What bothers me more, though, is that seemingly a CEO of a media organization has failed to do any damage control based around a genuine grievance (that wasn't even aggressively delivered). Saying things like "think it's pretty ridiculous that you're even getting the slightest bit annoyed about this", "needless to say, we'll be staying well clear of anything ur involved with in future for fear of ridiculous reaction" and using "u do realise that about 50% of all publications is content sourced from other publications right?" as a sort of defence is a horrible PR line for a proprietor to play, even if that's his honest opinion.

23.The Dictator's practical Internet guide to power retention (pwd.io)
110 points by euphemize on May 14, 2012 | 34 comments
24.Easel.ly - A nice HTML 5 infographics editor (easel.ly)
107 points by mg on May 14, 2012 | 58 comments
25.Refer.ly (YC S12) Lets Regular Folks Earn Affiliate Revenue (techcrunch.com)
110 points by dmor on May 14, 2012 | 60 comments
26.The average Greek is working a full 40% longer than the average German (bbc.co.uk)
103 points by antonellis on May 14, 2012 | 144 comments
27.Chrome supports TCP & UDP sockets (alexmaccaw.com)
104 points by maccman on May 14, 2012 | 32 comments
28.git playback (codingfearlessly.com)
100 points by mmozuras on May 14, 2012 | 35 comments
29.GPU accelerated arrays for Haskell (justtesting.org)
100 points by dons on May 14, 2012 | 5 comments

Comments for your C learning:

    #include <stdbool.h>
is better than

    typedef int bool;
    #define true 1
    #define false 0
Always, always, surround your if and else clauses with brackets. There are plenty of ways leaving them naked will screw you over. This goes for any language.

This is terrifying, and broken:

    char * s = malloc(snprintf(NULL, 0, "%s/%s", cwd, argv[1]) + 1);
    sprintf(s, "%s/%s", cwd, argv[1]);
Passing NULL to snprintf, first of all, should be a huge red flag for you. If it's not, train yourself to recognize it. I realize what you're trying to do, but it relies on non-portable behavior. In particular, from the manual:

    The glibc implementation of the functions snprintf() and vsnprintf() conforms
    to the C99 standard, that is, behaves as described above, since glibc version
    2.1.  Until glibc 2.0.6 they would return -1 when the output was truncated.
So until glibc 2.0.6, your program would be allocating 0 and then sprintfing into it. Always be careful when you read the manual, to read everything. And even then, program defensively, and train yourself to watch for errors like this one. In this case, passing NULL as the destination argument was an immediate no-no.

In this function, you really should be checking errno (for ENOENT). stat(2) can fail for all sorts of reasons, one of them is that the entry is not there.

    bool dirOrFileExists(const char dir[]) {
	struct stat st;
	if (stat(dir, &st) == 0) {
		return true;
	}
	else {
		return false;
	}
    }
Same for this loop, check errno to make sure the function's failing for the reason you think it should.

    while((entry = readdir(mydir)))
Here, you have something a little messy:

    int fileOrDirectory(const char path[]) {
	struct stat s;

	if (stat(path, &s) == 0) {
		if (s.st_mode & S_IFDIR) {
			// Is a directory
			return 0;
		} else if (s.st_mode & S_IFREG) {
			// Is a file
			return 1;
		} else {
			// Something else
			return -1;
		}
	}
	else {
		// Error
		printf("Error occurred\n");
	}
    }
First of all, returning values only you know about is bound for destruction. You should define an enum if you want a function to return specific states. Better yet, just do these checks in the function that would normally call this. It's not so bad usually, and you're probably calling stat(2) more than you should. It's a syscall, and those can be expensive. But more importantly, you have a branch where all you do is print something (to stdout, not stderr as you should), and then just return nothing! If you hit an error state, you need to either propagate that error up and handle it in the caller, or crash immediately. Don't leave your program in a garbage state and keep going. A compiler should have warned you about this (not having a return value in one branch). Turn on -Werror and at least -Wall. And fix your warnings, don't try to suppress them.

You should use fscanf(3) instead of this:

    while (1) {
	ch = fgetc(fp);
	newch[i] = ch;
	if (ch == EOF) {
		newch[i] = '\0';
		break;
	}
	i++;
    }
That's all for now, I gotta go. Good luck!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: