skysight-inc/HackerNews huggingface dataset:
> public/protected/private is a dumb idea in dynamic languages.

PHP is mostly a static language; it has more in common with Java than with say Ruby.

> prefix it with an underscore

Oh god, really. Next you'll be telling us we don't need namespaces, we can just use an underscore as a separator!

> and say "the results are undefined if you call methods that start with an underscore". Done. Easier to maintain, easier to test, less code to type in.

Or you could just build that all into the language itself so it's self documenting and provides a nice concise error message when used incorrectly!

I'm amazed that people would argue for naming conventions over actual features. Hell, nobody is saying you have have to use it; if you'd rather use underscores the languages will let you.
You know what's even easier to learn and more beginner friendly, has great debugging tools and is very powerful? MATLAB.

And most engineers/scientists use it.
If you know MATLAB, I don't see why you would even bother going to figure out the dozens of Python libraries available.
I often find that PHP coders lack a total understanding of the LAMP stack. "Apache configuration? Huh? I don't know, our admins do that." "MySQL? I don't know, I'm not a DBA. I'm a developer." "UNIX commands?!! I don't like going in the terminal. I'm a developer." No, sorry, you're not a developer. You're a glorified web page editor.
Clearly, smallpox is more evil than communism.
You can do this via yahoo mail. It's the only service I've seen that exports email addresses. I signed up for a fake yahoo account a few months ago. Works perfectly and exports to .csv just like this app.
I imagine dealing with the RIAA was giving Google flashbacks of Google China and Google Books. Everyone wants to extort Google and censor the search results while viewing Google's goals with hostility.

Google needs to make a YouTube of music services that will host anyone's music for others to stream freely. Give content creators a cut of the advertising revenue and provide a store front to sell mp3s direct to consumers. Make some indie millionaires and attract a few high profile experiments and the music labels will start submitting music the same way as everyone else.
The best thing to do would be for them to disrupt themselves. Apple does that. Historically Microsoft has shied away from "canabalizing its existing businesses". Netdocs is a famous example. It's much better to own the disruptions rather than allow your competitors to do it. If someone at Microsoft can invent disruptive technology then someone outside Microsoft can do the same thing. It's better for Microsoft to get that money then Apple or Google.

Accomplishing that, however, would require a cultural revolution within the company. I would argue that they should have groups inside Microsoft dedicated to continuously disrupting their existing businesses. That's the only way they can stay in front of people like Apple or Google. That would effectively convert "disruptive innovation" into "sustaining innovation".
Sustaining innovation favors the incumbent. You could also look at it as a form of "meta-disruption", as it would disrupt the act of disruption.

Is "Windows Mobile 7" the best response? Perhaps not. The ideal response would be to disrupt the smartphone market all together. You could see the purchase of Skype providing potential for this (whether or not that's their intention is a separate question). Producing a "carrier free smartphone" would be a good example. That's not easy to do. It requires ubiquitous access to free internet services. It would take a long time. There are high fixed costs. There may be better options.

I think Windows Mobile 7 makes sense as an interim step. It provides a battle ground to impeded progress while they gear up for the real fight. Think of it like the Allied North African campaign during WWII.
I think it really depends on what filter or function you are implementing. For example, programming an FIR filter in assembly is easier to do on a DSP than on a conventional processor. It is true that DSPs are designed for speed, but they do that by making the architecture and instruction set match the problem space. So programming a DSP to do DSP isn't that bad.

To make a programming analogy, a DSP is like a domain specific language. It is more efficient and easier to use when used in that domain.
Interview with Ubuntu Kernel Manager
I prefer Javascript for example: JQuery's calling conventions would not be possible if function args were mandatory.
Apple Files Lawsuit Against White iPhone Kid
Samsung,Mobile,Phones
Samsung,Mobile,Phones
Samsung mobile phones is considered the mobile phone makers third-largest in the world. The revolutionary technology Samsung mobile phones as digital cameras,ringtones, leading, and especially the high quality LCD display gives him an advantage over its competitors.
I not only live in Texas, but we did exactly what you describe to a small group in MountainView. We're private, though, so it (presumably) wasn't your group. I'm fairly certain none of them are still around, if they even came along after the acquisition.

I figure when it comes time for me to move on it'll have to be to a "safe harbour" state that views such agreements as unenforecable.
You can just read the internals, but that doesn't mean that the criticism is wrong. Certain problems do suggest deeper internal issues.

"Good error messages cost a lot" and "They turned off yacc's 'produce better error messages' mode" seem to contradict one another.

And no, in a lot of cases the parser emits weird error messages because the internal variables are named weird things. If you're telling me it's unreasonably difficult for PHP to produce a better error message than "Unexpected CONSTANT_NAME" than why name your constants unintuitively?
There should be a bullshit tax for having employees sign agreements the company knows aren't enforceable.

I was working at a place for 4 years before they tried to get me to sign one. They said it was standard and wasn't enforceable anyways, and I pushed my point (why bother having me sign if its pointless) and they eventually dropped it. No agreement is better than potentially having to deal with an unenforceable one down the road.
In America we believe ideas are property, and that companies can call dibs on ideas to bully people who use this idea later. It's a really good idea, and also why we need to censor the internet so that our property isn't stolen.
What is the Role of Government in Respect to Netizens Security and Privacy?
You are making assumptions about my thinking on this subject. All I'm saying is that the parent commenter is advocating gating access, so as not to "ruin Harvard". Maybe he believes there's a fixed amount of wealth.
Yup, wouldn't a final class with a private constructor be more appropriate there?
How to Address Startup Comparisons
What aspect of PHP is "very very good"? Genuinely curious to know.
Former CS professor of both Gates and Zuckerberg on dropping out of college
but JS isn't behaving weirdly with return values. Overall, JavaScript is much less WTF than php.
You're implying that it's never in anyone's best interest to sell ownership in a business, when wealthy, successful, well-educated and self-interested people do that every day in every stock exchange all over the world.
Wow, that's incredibly simple! We've been looking at using ESPER at work to do correlative analysis and aggregation on telephony events that go through our system, but figured the configuration of that system would be fairly complex.

This is an incredible little demo of JRuby and ESPER, and shows how simple it can be to get up and running! I can't wait to show this to everyone and get a dev spike going.
Your issue applies to any system that can pull executable code from the web and dynamically execute it, including almost every scripting language. You could pull the password before it hits the browser plugin. There is no remedy to this under the circumstances -- not open source, not peer review, not SSL, not distributed systems. You'd have to use a signed binary whose source you had examined yourself, at the least. So even the distributed FOSS argument is snake oil.

BTW, I'm not trying to imply that these guys have solved the problem -- there are numerous problems, as you pointed out.
Except when you're comparing objects!

I want to make sure that object A and object B are instances of the same class. Also, I want to make sure that they are equal i.e. that every attribute is equal. Also, since I'm now used to always using === instead of == for such comparisons, I use === to make the comparison. I would think that == would perform an == comparison on every attribute, whereas === would perform an === comparison on every attribute.

Nope! Using === actually verifies that the A and B are in fact references to the same object in memory, just like the "is" operator in Python. Got me again, PHP! How do I do my === comparison? Manually, that's how!
MATLAB is a bad choice for science. It is proprietary, making it difficult to share work among people who do not own a license, therefore making it more difficult to reproduce results.

Not to mention the fact that the MATLAB language is extremely awkward anytime you want to work with something that isn't a matrix.
Why should an emacs article mention vim? The author probably isn't qualified to fairly compare them and so doesn't bother trying. The focus is also writing prose rather than coding or basic text-editing.

The differences between vim and emacs are so fundamental that once someone goes down the emacs path it's not uncommon to never turn back.
> the solution isn't trying to impose an infrastructure on a system which has a natural resistance thereto, and will require enormous costs with little payback, the solution is to recognize "this is a bad place to exist in" and get out.

You're making it sound like these are two alternative solutions by setting them next to each other, but they aren't. No agent faces the dilemma of improving the desert infrastructure or moving someplace better.

City planners, legislators, etc. can choose to improve living conditions in deserts. Desert residents can choose to leave (of course, even if this does eventually better their situation, the short-term result will be a decrease in living standards).
From the description it looks like all computation happens client-side. However, you could verify this with the Webkit network tools.
All this does is just scrap off whatever public data is available on your friend's profile. It COULD NOT obtain your friend's email addresses.

What's the point of having your friend on gmail without their emails?
I'm actually quite fond of that particular quirk. At least it's easy to search for!
I am getting a 404 with the link right now. Railo is a JBOSS project that is an open source version of CFML. Here's what they say about Railo in comparison to PHP:

• Simplicity

More powerful tags for simple file, email, database and other common operations.

• Best Practices Support

If you want to build OO apps using TDD, you can do so. If not, you can still hack out working scripts in minutes.

• Frameworks

A wide range of frameworks designed to make it quick and easy to build well designed web applications.

• OSS Projects

RIAForge has hundred of pre-built projects so you can quickly deliver anything from a blog to a content management system.

• Robust deployment

Railo CFML is easy to manage and deploy, but it's sitting on top of the Java Virtual Machine so it can be deployed to any servlet container or J2EE application server and can take advantage of all of the tooling available for deploying and maintaining Java applications (JMeter, Maven, etc.).

Is this more clear?
Its axiomatic that every proposal should start with a statement of the problem.

MacCready's insight was that building a human-powered aircraft was 'easy' if you knew how to build such a craft. (And in fact today you can take his work and build your own Gossamer creation) So the challenge was this was a search for a new airplane design methodology to explore the airplane design space, and that this 'meta' problem had a much different form of solution than the stated problem of 'build an airplane that does this.'

The applicable insight for entrepreneurs is that if someone thinks solving problem 'x' in a cost effective (i.e. monetizable way) is "impossible", then the search is for new and different ways to solve 'x' which are more efficient than the well known ways. Too meta I know, sorry.
I can't state this enough. Building your company which heavily relies on an API provided by someone else is risky business.

Why are we still in this infatuation stage of ignoring the pitfalls of this?
The original post mentions a 3-year deprecation period. Given the speed of technological progression, that would be pretty difficult for me to complain about.

Edit: The Translate API, specifically mentioned, will be deprecated December 2011. That's pretty soon.
>what is it in programming that excites you?

Not quite sure actually. I've always been fascinated with computers and the web from a young age. And I've gotten to a point where I have (at least what I'd like to think of as) great ideas and not being able to program is what's been "holding me back" from executing them. So, I bit the bullet and decided to start learning how to program.
and it pick mongrel 2 I have to evaluate a number of different products for hosting ruby, each of which claims to be way better than all the others... yeah right
Google has made some unpopular developer-facing moves lately (App Engine pricing changes come to mind), and it seems entirely out-of-character.

From now on, any API announcement from Google should be accompanied with a GIANT expiration date stamped all over it by default. Then, if it keeps going... happy surprise!
Regarding Clojure on Emacs, just use the up-to-date stuff by technomancy. The following is based on my notes from a recent talk by Phil Hagelberg at a Boston Clojure Meetup.

1. Download lein from
https://github.com/technomancy/leiningen/raw/stable/bin/lein

2. Launch lein (self-install) from the command line.

3. Run lein plugin install swank-clojure 1.3.0 on the command line.

4. When you first run swank, it may complain you do not have project.clj or something like that, because it expects to be launched form inside a project directory. You may create a dummy project directory (cd; lein new dummy; cd dummy).

You need to run the above steps once, to install. Run the following at the beginning of a clojure session:

5. Run lein swank on the command line.

6. In emacs, run slime-connect (with the default parameters, most likely).

In case I have garbled the above, I am sure someone will correct me. Although I did it both on Windows and MacOs and it worked. (On Windows, I use bash shell form the MinGW project, but I see no reason for the standard Windows shell not to work.)

Separately, you may want to install clojure-mode from the same repository.

Happy hacking!
Multiverse Theory, Quantum Events & Pug Nappytime
when you ain't got nothing, you got nothing to lose
First of all, various members of the Lisp family are used for major developments.

Secondly, rewriting Emacs would be a major undertaking and which modern language would it be? My choice would be Common Lisp, for other developers it would be Clojure, Haskell, Python, Ruby, etc. Whatever choice it would be, you'd lose developers who would rather see Emacs rewritten in one of the other languages. Even worse they might spawn forks in their own favourite languages.
General silliness from one of my favorite webcomics :)
hmmm... ok. I've been hearing a lot on how learning Data Structures (from creeping other Ask HN questions) helps.

Can you recommend a good source on learning data structures?
This shit still happens?? and people fall for it?!

http://raganwald.posterous.com/this-shit-still-happens-and-p...
you've got to be kidding; PHP is a better Cold Fusion than Cold Fusion ever was
What threat does the D-Wave pose to current encryption methods?
Open source scoring system for GitHub
As usual, when one of these lists comes out about PHP there are some real issues, some non-issues, some have been fixed, and a few things that are just different. I'm surprised these sorts of posts keep getting voted up here; haven't we seen it all before?

I do a lot of PHP development but not exclusively and rarely does these sorts of deficiencies in PHP ultimately matter.
Nationalizing the communications hardware (the towers and cables), then having a state-owned company lease the bandwidth wholesale to private-owned cell carriers, doesn't strike me as inherently a bad idea.

Other than creating a chokepoint for government censorship of the internet, of course.
I would be very interested in seeing how many developers would pay for the Translate API if Google had decided to monetize it instead of deprecating it then shutting it down as some of the commentors on the blog had suggested. At the same time if the Google Translate API is such a popular service then maybe there is enough demand to support a startup providing a Translate API ;)
Bolting on garbage collection to system libraries that weren't made with it in mind probably wouldn't work well. Even in OS X, when the system had been designed for garbage collection and extensively tested, it still didn't work right (memory leaks, extreme slowness at times) in the first version.
I'm not taking a stand on the argument one way or the other, just pointing out how similar they sound.

Uh, no. You're making an editorial point that they both seem equally silly, you just aren't saying that. If your only purpose to posting was a bland linguistic analogy with no bearing on the subject being discussed, then I withdraw my argument on the grounds that your post is unimaginably boring. :)

But to respond: the sentences differ in that one statement is truer than the other. "Hugs are good." and "Suffering is good." use the same language too, but you wouldn't use that as part of a sideways argument that huggers are insane, would you?
When I was 12 I took the Commodore VIC-20 Programmer's reference guide to spain on vacation (!) for 2 weeks. I figured out how to program assembly and hand-assembled a short program to rapidly toggle the screen color from black-to-white.

Hmm if I try real hard I can probably recreate it here:
169 0 141 15 144 169 1 141 15 144 76 0 32

Anyway, when I got home, I tried it out. It changes the screen color, but then crashed because of a mistake in the loop instruction.

That was definitely an AHA moment - realizing how CPU's work.
Society evolves. Society is often engineered. The attempts often turn out badly, or well. Many societies are engineered to reduce poverty, and many societies have.
Agreed. When I started using python I thought that I would miss protected/public methods, but I was wrong. Conventions are the better solution and make testing incredibly easier.
It's not just Blake Ross and Chrome - Apple's Safari/WebKit team is led by Firefox co-creator David Hyatt. And long-time IE platform architect Chris Wilson left Microsoft to work on web platform stuff for the Google TV team...

(BCM43 is right that none of us at Mozilla have any reason to complain about ex-Mozillians and others helping to increase competition on the web.)
> It doesn't make sense unless you understand how PHP works ...

In other words: equality is not intuitive. Awesome!

---

Let's take a look at "how PHP works":

0 == 08 // true!

WTF, really? Well, let's just use the magical 'I-mean-actual-equality-not-some-other-kind-of-equality' operator:

0 === 08 // also true!

(Sonofabitch/Facepalm) * Infinity

Of all the areas of a language in which one could gain expertise in, I think testing equality should not be one of the more difficult to master.

This is just stupid behavior. 08 is an invalid octal sequence, but no error is raised. You can't detect this condition unless you do your own pre-parsing before allowing PHP to try to parse it!
DropURL - Upload to Dropbox from URL
Ask HN: Looking for a world clock HTML 5 web app
Recently, I found someone created a world clock with HTML 5 with some neat UI on HN. I forgot to bookmark it, and now, I can't find it. Does anyone remember the site?
That's true. I'm considering making a few screencasts that show how go from nothing to a full Emacs installation/customization on different platforms. I think that would be neat/fun.
Ask HN: Reading Non-Fiction
Hey Guys

I'm a 21yr old student and I love to read. Before my early high-school days I used to read a lot of fiction. I then took up a course on C++ programming and started to love programming. Ever since I've spend most of my time reading technical books (books on programming languages, Algorithms and the likes).

Whenever I had this impulse to pick up a unrelated book I found myself telling me to finish my stack of technical books before buying a new non-fiction/fiction one. A few days back, however, I got my hands on a cheap copy of a book called Dot.con by John Cassidy. The book talks the dot com bubble and its history. I'm almost done reading the book and I'm glad to say that I thoroughly enjoyed it. It was a very pleasant change to read up something different.

So my question is what kind of books (preferably, non-fiction) do you guys read? Are there books similar to the one I mentioned - about technology, silicon valley, wall street etc ? And how do you guys manage to balance the books you WANT to read and books which you SHOULD read?

Thanks a lot for your suggestions.

PS: Can someone link their readernaut/amazon wishlist/goodreads account so that I can follow them. I'm extremely uninitiated in this regard. Thanks.
I made this yesterday because someone on a mailing list I'm on wanted to view his friends birthdays on his Google Calendar and merge in some other contact info.

I'm working on email addresses, but as others have noted, it's not in the API and would probably get this application banned...which wouldn't be the first time for me as many of you may know ;)
In German at least, the future exists, but is rarely used unless it is necessary to disambiguate. For example, you would just say, Ich fahre morgen mit meinem Auto in die Schweiz. Lit. translated: I drive tomorrow with my car in/to Switzerland. More idiomatically translated: I will (or I'm going to) drive in my car to Switzerland tomorrow. I assume it's the same in Finnish, but it might not be because Finnish isn't even a Indo-European language.

N.B: I just finished my first semester of German. Please someone correct me if I am anyway wrong.
What doesn't make sense is the rationale for designing it this way.
Indeed. In 5.3 you could have regular functions in a namespace, so there's no need to abuse class for that any more.

Other than that it smells like a variation of the singleton antipattern.
The majority of PCs sold run in the world runs windows. They are pretty much complementary. So the amount of PC sold should be similar to the amount of OS sold.

If they are not similar then you got to look at substitute OS that these PC users are using, ie linux, pirated software, etc. I highly doubt these Chinese consumers know anything about Linux being a viable option. Linux hasn’t even deeply penetrated the desktop OS market here in America. There could be higher density of usage in areas like the Silicon Valley, but as a whole the average joe shmo American who are more enlightened consumers than the Chinese won’t be using Linux as a alternative in mass.

So what are these PCs running on? It’s pirated copies of different distributions of Windows.

This is because the IP laws aren’t being enforced, Chinese consumers don’t see the value of buying the real windows version (ie: updates) or the consumer is not educated and doesn’t know if they are buying real or a pirated copy of windows.

Microsoft is getting jipped in china because they should be getting $ on almost every PC sold in that country.