Daring Fireball: The Kids Are All Right - <AUTHOR> http://daringfireball.net/2010/04/kids_are_all_right <comment><USER2> Things have never been better for kids and technology than they are today, and I agree with Gruber that it's a bit myopic to suggest otherwise.

But, it is dangerous to ignore negative events, just because the overall trend has been positive for the past 30 years. Apple has been responsible for a number of very negative events in the past few years. Going back to more closed systems is not a good thing, even if the iPad is awesome and seems like magic and kids love it (and I'm sure they do). The iPad and iPhone are more closed, more hostile to tinkerers, more hostile to adventurous users, than most other similar devices. This is a _bad_ thing. One shouldn't apologize for a company doing bad things, just because things in the industry as a whole are better than they were ten or fifteen or twenty years ago.

Open Source software has made dramatic improvements in the landscape for kids learning technology today. Apple is fighting those improvements, and they _should_ be called out for that bad behavior. Apple is behaving in ways that are bad for developers, and bad for kids who might become hackers. Just because they also happen to build awesome products, and do happen to provide an approved relief valve for their closed ecosystem, doesn't make it OK to be hostile to developers and would-be hackers.

<comment><USER3> Sorry, but how do you qualify negative events?

First, let's take a look at what I suspect you think are negative events:

1) iTunes Music Store has DRM encumbered music

2) iTunes Video Store has DRM encumbered video

3) iPhone App Store has closed ecosystem with infuriating approval process

Now, let's peel back the bullshit and look at the reality of the situations:

1) Before the iTunes music store, the only way you could get music legally on the internet was a $10 a month subscription to the Real Player music store. You did not own your music and you could only play it on a number of devices. Concurrently, many music publishers were trying to develop technological means to prevent users from taking music from CDs they had purchased and ripping them to MP3's.

Overall, I rate that as a win for consumers. A double win considering the later removal of DRM from iTunes music.

2) Before the iTunes video store, you could buy a few DRM encumbered videos from Amazon (pretty sure they were the only game in town at that time). Some of the current stores for digital video don't even allow you to view video on a device different from the one you purchased it on. There is still not a really great source of High Def video.

Overall, I rate that as a neutral to slight win for consumers.

3) Before the iPhone App store, the only way you could get an application was through a carrier approved store. The apps themselves were 99% garbage and if you changed phones, good luck transferring them. With the iPhone App store, there has been a cambrian explosion of mobile software. Despite the denial of apps in several specific categories and contentious policies regarding duplication of built in software, for the most part there is an app for that. The best part though is that applications do not depend on carrier approval for the most part and handsets are free to transfer across networks provided they are hardware compatible. I would like to remind you again that before June 2007, this shit was fantasy.

Overall, I rate that as a win for consumers.

<comment><USER2> _1) Before the iTunes music store, the only way you could get music legally on the internet was a $10 a month subscription to the Real Player music store. You did not own your music and you could only play it on a number of devices. Concurrently, many music publishers were trying to develop technological means to prevent users from taking music from CDs they had purchased and ripping them to MP3's._

This is simply, and provably, untrue. I had an eMusic account several years before iTunes existed. It has always distributed DRM-free MP3s.

 _2) Before the iTunes video store, you could buy a few DRM encumbered videos from Amazon (pretty sure they were the only game in town at that time)._

I don't know about this, as I'm not a big movie/TV watcher. I'll leave it for someone else to debunk.

 _3) Before the iPhone App store, the only way you could get an application was through a carrier approved store._

Demonstrably untrue. There was a thriving and open application market for Palm devices, Windows mobile devices, and others, long before the App Store. The Sidekick had a similar marketplace model to the App Store and a similar approval process, and it was in place for many years before the iPhone. Pretty much all smart phones allowed installation of applications from third parties before the iPhone and App Store. The success of the App Store, for Apple's bottom line, was the primary motivation for several other vendors introducing similar markets.

But, I wasn't talking about iTunes (though there are probably things to say about iTunes, I don't really know enough about it; as I mentioned, I've been an eMusic user for many years, and have never wanted anything iTunes had to offer; besides that iTunes doesn't run under Linux, so I can't use it). I'm talking about specific negative things Apple has done for openness and creativity in the technology world with the iPhone and the iPad, which is the subject of all of these rants.

The iPhone and iPad are the most tightly controlled ecosystems in their respective niches (if we count netbooks and other tablets as in the iPad niche, which I kinda think we have to, for now). This is a _bad_ thing.

And, I was saying that the kind of apologia you're using is enabling Apple to do these bad things. One shouldn't apologize for bad things Apple has done by presenting the good or neutral things Apple has done. We know that the closed nature of the iPhone/iPad and the App Store ecosystem is bad for developers and bad for tinkerers and would-be hackers. We should call them on that bad behavior.

Praise them all you want for other behaviors, but don't use it as an excuse for the bad things they do.

<comment><USER4> eMusic distributed DRM-free MP3s for artists that most people didn't care about.

<comment><USER2> And the eMusic catalog has expanded through the years to encompass most of the artists that matter. By the time iTunes came along, eMusic had a pretty good catalog...by the time iTunes started offering DRM-free music, the eMusic catalog included a huge array of major label acts.

But, I'm not really talking about iTunes. I'm talking about the hacker culture and the chilling effects of the closed iPad/iPhone ecosystem. I just couldn't let an utterly untrue statement go uncorrected. But it's not really the point of my rant.

<comment><USER4> Seriously, I mostly listen to independent music, and I don't steal music, and I haven't bought a physical CD in something like 5 years so I'm pretty sold on downloading, and when the iTMS launched eMusic was absolutely not a draw for me. I think it's a little disingenuous to suggest that eMusic solved the same problem Apple did.

The original statement simply wasn't "utterly untrue". Sorry. I hear where you're coming from.

</comment></comment></comment></comment></comment></comment><comment><USER5> _You can buy a new car, drive it for years, and never once open the hood yourself. That's the iPad._

If the iPad were a car, it would be _illegal_ to open the hood.

Yes, there's some 13 year old kids writing iPhone apps. There are even more 13 year old kids writing PC and Mac apps, so I'm not sure what that proves. What there won't be by design in the iPad world is disruptive innovators like Linus Torvalds. As I've said before, that's good for Apple and bad for everyone else.

<comment><USER6>
      If the iPad were a car, it would be illegal to open the hood.

That's incorrect, if the iPad were a car opening the hood would void the warranty.

<comment><USER5> No, that would be reasonable. Apple has specifically stated in filings to the Copyright Office that jailbreaking is and should be a criminal act: [http://www.eff.org/deeplinks/2009/02/apple-says- jailbreaking...](http://www.eff.org/deeplinks/2009/02/apple-says-jailbreaking- illegal)

<comment><USER7> I guess it depends on what we mean by 'opening up the hood.' Sticking to the analogy I would take that to mean cracking open the physical case. Most of the 'black boxes' in a cars engine are also protected with various DRM methods to make it illegal for others to reverse-engineer them (therefore making it so that mechanics have to pay the manufacturer for access to the devices). I would associate those with the actual chips inside of the iPad/iPhone as well as the OS.

<comment><USER8> "make it illegal" in the USA. Reverse engineering is not (yet) illegal in other (most?) countries.

</comment></comment></comment></comment></comment><comment><USER9> Gruber's argument isn't an argument. He acknowledges that Doctorow, Pilgrim, and Payne have a point and then fails to address the real issue: Apple's veto power over apps on its devices.

His answer: Be happy you can write Web apps.

That's like saying freedom isn't an issue in China because Hong Kong has freedom.

There's simply no rationale for Apple to reject apps based on content that's not illegal, like political speech.

The car analogy fails because cars are not useful for content creation, the way computers are.

Gruber suggests its a trade-off, in which something is lost and something is gained. But that which is gained -- an effective online market for apps through iTunes -- isn't necessarily linked to what is lost -- Apple's dictatorial control over its hardware and third-party apps.

There's no reason it can't just be something gained and nothing lost, at least with regard to content approval.

Access to hardware is a related issue and there Apple could afford to be open too.

<comment><USER10> _He acknowledges that Doctorow, Pilgrim, and Payne have a point and then fails to address the real issue_

Except the "real issue" isn't actually an argument either. There _is_ a tradeoff happening here: for the average non-programmer, devices which have at least a certain level of "no user-serviceable parts inside" can be made to be much simpler, much easier to use and at least slightly more secure (in that attacks which depend on duping a user into installing/executing malware will fail) then devices which are completely "tinkerable".

The problem lies in failing to acknowledge that this tradeoff exists or that it should be considered on its merits rather than ideologically rejected out of hand; this takes it from the level of rational argument down to the level of blindly applying dogma.

Most of the rest of the "argument" is merely a classic slippery slope (allowing just a few devices to have just a little bit of control built in is assumed to lead automatically to all devices having total control built in), and as such doesn't really stand up on its own.

</comment></comment><comment><USER11> _"Such is the march of progress. 40 years ago you could open the hood of your car and see and touch just about every component in there. And you had to, because many of those components required frequent maintenance. To properly own a car required, to some degree, that you understood how a car worked. Today, you open the hood of your car and you see a big sealed block and a basin for the windshield washer fluid. You can buy a new car, drive it for years, and never once open the hood yourself."_

(Warning, car guy!) First, I don't think this is a bad thing. The average person doesn't want to perform any maintenance anyways. Heck, oil changes. They're still just as easy to perform. You're not even saving any time by going to the dealership and back, plus waiting around. You're certainly not saving any money (I can save $45 changing my oil myself). People just don't want to expend the effort.

In the case of cars, at least in the US, they went from an object to pride to... a nuisance for most motorists. They want to be comforted, coddled, and have as much as possible done for them so they can chat with friends, sip their coffee, or have a conversation via text message.

That applies to many things. I know plenty of folks who spend $10-12 a day on lunch. $10-12 of ingredients gets me a _far_ better lunch for the entire week. Even saves me time, because I don't have to wait in a line every day.

It's not cheaper. It's not even less time. It's the time spent is "lower impact" I guess. That's what's paid for. Consumers are given a choice, and many choose the path of overall least resistance. I'm sure there's plenty of other psychological factors at play (i.e., "Well I have the money to not need to cook for myself all the time!", advertising making things seem more appealing), but the reality is when presented with all the options, folks just want to do the least work possible.

Give people more iPads. At least in the current consumer culture, it's exactly what people want. They don't want to explore or program. It's the path of computing least resistance. Enthusiasts and people who have a serious need for one will still buy computers.

<comment><USER12> > You're not even saving any time by going to the dealership and back, plus > waiting around. You're certainly not saving any money (I can save $45 > changing my oil myself).

Actually, even this has gotten a bit debatable. My dealership has wifi available, so I can take my car in for an oil change and I don't have to take any time off work to do it.

<comment><USER11> I'll concede that... to a limited extent. Not every job makes that possible. Even the ones that have the possibility, the number of employers that would allow that is also limited.

VPN access, in my experience, is in the hope that people will do MORE work when they normally aren't expected of it. As opposed to having a more flexible work environment.

</comment></comment></comment><comment><USER13> "Something important and valuable is indeed being lost as Apple shifts to this model of computing. But it's a trade-off, because something new that is important and valuable has been gained."

This is true, but for people like me, beside the point. A car is either open or closed, to the extent the terms mean anything. A computer doesn't have to choose! It can be closed, until you press the "Yes I Want To Possibly Break My Box" button and all it has to do is _stop checking executable signatures_ and let things that aren't from the official source run. (Isn't this how Android works? I don't have one.)

This is not a fundamental tradeoff that Apple with some regret has been forced to make to make their product easy to use. Gruber is hiding his arguments behind a technical tradeoff that is entirely manufactured by Apple in the first place.

A few weeks ago I bought my wife an HP Mini running Windows 7. She will never crack the hood. It is an easy to use machine, browser here, open office there (which, by the way, _I was allowed to install_ ), IE locked away behind this icon over there to access her ActiveX-based time-and-attendance system. It is one application install away from having an "app store"; for instance, Steam could probably be installed in about five minutes.

And I could turn it into a Linux machine in about half-an-hour. Because none of that ease-of-use actually _requires_ the machine to be tinkerproof.

<comment><USER14> This is exactly my complaint. I think everything about the iPad and App Store is brilliant and the closed defaults make sense. But preventing _everybody_ from opening the device because _most_ people shouldn't/won't is the problem. This is not a _necessary_ trade off. If I want to run my own code on my own device, make me jump through a hoop (so I know what I'm getting into) but don't stop me from shooting myself in the foot (and don't make me pay you a $99/year subscription).

</comment></comment><comment><USER15> I'm starting to become a defeatist on open platforms. I'd love to see them succeed but it just doesn't seem like the quality and usability is there. If it annoys me it must drive the average person totally insane. Now if you'll excuse me I have to go back to trying to figure out why Dolphin on my Android phone crashes on startup and how to restore the original built-in browser which I must have deleted.

<comment><USER16> I couldn't agree more.

I would LOVE to use something that's open vs something that's closed. Ubuntu instead of Leopard. Android instead of iPhone. OpenOffice instead of Microsoft Office. Gimp instead of Photoshop.

Problem is, all those things are inferior compared to their closed-source counterparts (my opinion only), and don't let me do the job I need them for nearly as well, or in as much comfort.

I am a "tinkerer", programmer, tech geek, etc. Am I going to sacrifice my iPhone just because it's closed-source, and start using something else? Never in a million years. I have enough things to tinker with in my life.

Some people may disagree, and that's fine, but for me and majority of others it's just not such a big deal if the damned thing works as it's supposed to and I'm happy with it.

<comment><USER17> This seems to be a fundamental problem of open source: people contribute because it is fun. However, the stuff that brings value to your average user, i.e. nice UI and good documentation, is boring.

So, OS is great for hackers, some of the best technologies are open source. But, it tends to suck for the end user.

</comment></comment></comment><comment><USER18> While I agree that being able to sell apps on the iTunes Store is a good thing, and worth $99, I don't think that Apple should limit owners of their iP* devices from creating and installing unapproved applications. Why should I have to pay $99 just to sign my own apps for personal use? You don't pay the car manufacturer for a license to modify your car. This is the only problem I have with these devices.

In my opinion, Apple should just do what Windows does with downloads, and warn users when installing unsigned apps. This provides the best of both worlds. Keep charging for the privilege to sell on the App Store, but please, just let me use my device how I want to.

<comment><USER7> A possible solution:

* Apple still charges $99 for a developer license/kit

* Apple still runs their AppStore

* Apple releases specs/API for creating your own AppStore

* People create competing AppStore implementations

* By default, Apple's AppStore is the only one configured

* The interface for adding extra AppStores is a bit hidden and rough around the edges, so that people have to be motivated to actually do it. (i.e. raise the bar a bit, so that the people that do it know what they are doing)

The majority of people would still just use Apple's AppStore, but this would allow Apple to side-step the "We can't approve that because it would be bad for our company image to have it in our AppStore" type of issues. Apple could even void the warranty for people that use competing AppStores as a way to raise the barrier, but at least it would still be there for the people that wanted to use it.

<comment><USER19> If the majority of iPhone users are satisfied with the current arrangement, what would be the incentive for Apple to open up the venue for other App Stores? I can't see benefit to Apple from doing so, aside from a theoretical, "more geeks will like us because they can have more control over the distribution of their software."

Would I like to be able to use more crazy, non-standard , non-Apple-approved software on my iPhone? Hell yes! If I were Apple, would I allow others to distribute software for my device? Hell no!

If I had created both the device(s) and application market, I certainly wouldn't let other people compete with me in my own business -- that's just foolish, especially since the current business model works, and works well. Appeasing a minority of highly technical users doesn't make sense in this market.

Besides, how is Apple's model different from what set-top console makers (Nintendo, Sony, Sega, ...) have done for years? $99 is cheap for a console development kit; since you must have Mac to run it, it'd be about $700 total for a development kit + Mac Mini -- and that's still inexpensive in the console devkit market. It's a unique niche, and I'm more than happy to pay to play in it.

</comment></comment></comment><comment><AUTHOR> The point that's worth mentioning is that, in the olden days, families had just one computer, they cost a small fortune. That isn't the case anymore. In my family of 5, there are currently 10 computers of various sizes in use. This is mostly my fault since I own 5.

An iPad can be used for viewing the photos that someone just edited in photoshop on their 'regular' pc. They're complimental.

</comment><comment><USER20> I did read this post, but as a warning to others, it says nothing that you didn't already know Gruber would say about the iPad.

(Sacrificing karma to illustrate double standard.)

EDIT Clarification: double standard remark is wrt my guess on how comment voting would turn out.

<comment><USER4> What double standard? I agree with you. This isn't news.

</comment></comment><comment><USER21> Last two paragraphs:

 _If you could go back and show my 10-year-old self an iPad — millions of colors, video, photographs, gorgeous typography, a touchscreen interface, networking (wirelessly!) — and offered to let me write web apps for it in exchange for my agreeing never to touch an Apple II again, I'm pretty sure I know what the answer would be.

Something important and valuable is indeed being lost as Apple shifts to this model of computing. But it's a trade-off, because something new that is important and valuable has been gained._

I'm sure a lot of early audiophile tinkerers would be gobsmacked if someone shoved a Bose system at them through a time portal.

Perhaps our fears of the death of tinkering are like laments about the death of penmanship. Maybe what's essential survives in a different form?

</comment><comment><USER22> The iPad is more open than a game console and less open than a personal computer and you can't use either comparison alone to predict the future. The point of being in a new category is that it won't replace existing products, though it will change the way we use them.

I sincerely doubt that the children of tomorrow will grow up without personal computers just because the iPad is around. Computers are dirt cheap, can do way more stuff, and kids aren't afraid of them like "mom" is.

It's difficult to say whether the iPad will be a net win or loss for software freedom, in the long run. Never have so many developers been so tightly controlled by a single vendor. However, the iPhone/iPad platform has opened up a world of opportunities for developers, inspired the creation of other, more open app stores, and will probably encourage, far more than deter, aspiring young developers, as Gruber's anecdote illustrates.

</comment><comment><USER23> whether or not the ipad is a step in the wrong direction, i feel bad for the kid learning how to program by having to save up to pay for an apple developer account (and having to use his parents' bank account information since he's under age), learning with apple-supplied-and-regulated documentation, then submitting his work to apple, stressing out over whether they'll approve of it and think it's good enough, and then probably not making much money at all on the whole thing and taking that to mean he's a bad programmer. not to mention all of the idiots dismissing his software with "this app sux" on the app's review page.

<comment><USER24> The reality is that this 13 year old kid has positive reviews on his app, has the increased confidence to go along with actually making something, and will undoubtedly use that confidence and passion to create more substantive projects as he gets older.

The bar is ostensibly higher for the inexperienced to get involved with programming. But $99 for a developer license is nothing compared to the cost of an Apple ][e, Amiga, Atari, etc. Most kids already have a Mac anyhow. And if they don't, a Mac mini + LCD is not prohibitively expensive. PcC developers have to start on something, too.

I see the iPad as an easier way for a 13 year old to show off his work. And at that age, since you're not living off the money you make, you are largely living off props. And what better way to boost confidence than to have real live customers.

<comment><USER23> i think we both know that the particular 13 year old mention in this article is rare and that developers of any age have a hard time making a hit iphone app. it's nice to focus on the few that have made lots of money, but the reality is that there are many thousands of apps that haven't made any money (especially considering the $99/year fee) and some that were never approved in the first place.

while you state that "most kids already have a mac", which i'd disagree with, the costs to acquire that and the iphone/ipod touch that they're actually using to run the app, are much higher than an old computer running linux, where they can make whatever they want for free and distribute it on the internet or at school without having to have anyone else approve it or anonymously judge its quality.

<comment><USER10> _i think we both know that the particular 13 year old mention in this article is rare_

I think most of the commentaries have overlooked the fact that the people who fondly remember typing in programs from the back pages of magazines are themselves extreme outliers, and only become more so with the passage of time. Many more programmers today get their start playing around with web technologies, for example, or through simply deciding to take some classes in college and learn how to do stuff.

</comment></comment></comment></comment><comment><USER25> Apple has a negligible global penetration, and I believe iPad will have a user base smaller than 1% of the total number of computers in the globe in the next 5 years, so even if Apple intends to be evil this will not affect any would be developer. Maybe in the US the case is different, but the iPad will probably not affect how a guy in China, Russia or India learns how to develop an application.

</comment><comment><USER26> The way my 4 year old interacts with iPod Touch and does some amazing things. Learn words, numbers, play kid's games.

I think he will learn lot more interactively on iPad.

<comment><USER27> The apps are not the problem. That's actually a great use of the platform. Rather, when/if your child becomes curious about creating something of his own, he's met with a $100 barrier to entry.

<comment><USER28> No; he's met with a $100 barrier if he wants to supply his software to others via Apple's App Store. Creating and developing for OS X and for iPhone OS on iPod/iTouch/iPad is entirely free. The XCode suite and the SDKs cost nothing to download.

<comment><USER29> No, he's met with a $100 barrier if he wants to load that app onto his iPhone/iPod touch/iPad, or submit it to the AppStore.

<comment><USER28> This does not hinder someone from developing software, which is what "op" was under the impression of.

<comment><USER29> I was merely addressing an inaccuracy in your post. And sure it does: there are tons of scenarios where the Simulator doesn't work like the real hardware or doesn't work at all: location-based apps, many audio and graphics scenarios, Youtube video playback, etc.

</comment></comment></comment></comment></comment></comment><comment><USER9> Can a 13-year-old legally be an Apple developer? Doesn't one have to be 18 to be bound by a legal contract like the Apple Developer Agreement?

</comment><comment><USER30> While the App Store allows (at Apple's discretion) many people to write applications and have them available to a large user base, that is not even close to being 'open'.

All of these apps, and any content you want to buy and consume on your iPad, is going to be routed through Apple. To paraphrase an insightful author (who I cannot remember right now), it is an expensive device: apart from the initial investment, you will be paying Apple in order to tailor the device to your own desires, whether that involves downloading an app, a book, or a magazine to read.

Also, there's something else that gives me something to consider before contemplating another Apple purchase: the whole Flash dilemma seems to fit in too well with Apple's business goals for everything to be about Adobe being 'lazy' and having a poor-quality product in Flash. While Adobe may have its issues (can have high RAM requirements, particularly in Linux), I think they have enough talent that it could be fixed, at least for target platforms (probably not Linux, sadly, but at least popular mobile devices). On the other hand, Apple has no reason to allow flash. Why would you buy a $5 game if there were other, ad-supported versions that you could get for free through Safari?

I'm not panning Apple in general. I run Linux for work, but just started to complement those workstations with a couple Apple products for personal use.

It just doesn't ring the free/open platform bell for me; however, it's an ambitious and interesting project...I'm curious to see where it goes.

</comment><comment><USER31> Perhaps Apple products represent the progress of innovation. Since Henry Ford was young, the kids tinkered with gas engines and buggies. Now, automobiles are a mature technology and largely black boxes. Consumer electronics have gone the same way. There used to be a time when kids tinkered with radios. Now radios are black boxes. Progress, though, has not destroyed opportunities for innovation. On the contrary, opportunities have grown. Robot technology, for example, seems to be just beginning.

<comment><USER32> Would that be the fate of software? will that be a benefit, if software like Apache be closed? and only vendors with closed technology sell closed software?

</comment></comment><comment><USER33> I'd like to call a moratorium on iPad speculation until the damned things actually ship. You know, wait for some concrete data, rather than bullshit hypotheticals.

Our imagined use-cases are usually _wrong_. Telephones were going to be a broadcast mechanism. Java was going to be an embedded systems language. Wave was going to replace email.

Sorry to be such a grump, but I feel like all useful analysis has been exhausted. Wait until people actually buy (or don't buy) the device, then we can talk some more.

<comment><USER34> In this case we're speculating about market evolution that will take place over the span of a decade or so... and by the time we have hard data it will be too late to change anything due to path dependence.

</comment></comment><comment><USER35> The reason things are so good for us now is the free software and free culture that gave us the tools we have. Apple firmly sits on that back.

</comment><comment><USER36> Where are the open-systems advocates who want to make something even better than the iPad instead of complain about it?

</comment><comment><USER37> Not to be snarky, but why isn't John Gruber an evangelist at Apple? Surely Apple would want him on their team.

<comment><USER38> He's already evangelizing for Apple as a somewhat objective 3rd party. Bringing him in-house would cost them money and compromise his perceived reliability.

<comment><USER39> He's currently doing a good job of at least appearing neutral. See his recent comments on Apple's patent litigation against HTC -- he doesn't like that at all.

[http://daringfireball.net/2010/03/this_apple_htc_patent_thin...](http://daringfireball.net/2010/03/this_apple_htc_patent_thing)

(And I, of course, am a completely neutral third-party John Gruber evangelist.)

<comment><USER40> Yeah, John Gruber is neutral about Apple the same way Cory Doctorow is neutral about open platform.

<comment><USER41> I'm quite confused about the meaning of neutral in this context. Being neutral in itself doesn't seem like a virtue to me. Being neutral is a useful position if you don't know what you are talking about. Being neutral is a useful skill if people expect you to present facts.

Both of those things don't apply to either Cory Doctorow or John Gruber. It's just normal that they hold and present certain views in their writing. Calling them out on not being neutral (or saying they successfully appear to be neutral) seems to not make any sense.

I expect them to not be neutral. I don't read BoingBoing or Daring Fireball for news.

<comment><USER40> My comment was meant as a sarcasm. Of course both of them are not neutral, its hard to say if one can be truly neutral but at least we expect most journalist/author/reviewer/whatever-you-may-call-them to be somewhat objective in their views when doing reviews. Both Doctorow and Gruber have very polarized views on this subject.

Expecting Gruber (or Doctorow) to have neutral (or even an appearance of neutrality) views is quite silly.

Fan-boys will remain fan-boys and Gruber is a classic example of a fan-boy who will take any criticism of apple or their products, personally.

Yes, even fan-boys can say things against their idol occasionally, doesn't make them any less bias.

<comment><USER41> Ad hominem, dude. Ad hominem. "He is a fanboy!"/"He is not neutral!" is a classic ad hominem when not backed up by actual arguments :)

<comment><USER40> How long have you been reading his blog for? In order for my arguments to make sense to you, you will have to read more than just couple of his recent blog post.

I don't think it is ad hominem, I think it is widely accepted that he is an Apple fanboy. Your mileage may vary.

I am a happy macbook/iphone owner (but not exclusive apple user) and I think he is an apple fanboy.

<comment><USER42> _I don't think it is ad hominem, I think it is widely accepted that he is an Apple fanboy._

The truth or falsehood of a claim is logically separate from whether it is an ad-hominem attack.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER43> On the topic of Atari 2600 BASIC, at least there was PEEK and POKE, not that it was easy to figure out the different addresses without a manual.

Amusingly, I have a floppy on my desk that my little brother wrote on when he was about 4 or 5. It has two commands on the label - POKE and PEAK :)

<comment><USER44> There actually was an amazing little book published by Compute! that contained information on every memory address of interest on the Atari 400/800, and what peeking/poking different values at each address did. It was fantastic, and a tinkering teenager's bible.

</comment></comment><comment><USER45> I'm not demeaning the actual work of Sam Kaplan, I applaud it, but I think argument from cute kid tinkering should only work once for each child in question.. (see video below) please find another 13 year old poster child whose love of technology and entrepreneurship has been kindled by apple's closed ecosystem.

[http://www.cnbc.com/id/15840232?video=1377966471&play=1](http://www.cnbc.com/id/15840232?video=1377966471&play=1)

also, does this kid have parents with marketing backgrounds or what? :)

all I'm saying is, maybe Sam Kaplan isn't the average kid on the block consuming apple products?

</comment><comment><USER46> Yeah, the Atari comparison is ridiculous-- it's comparing the defending closed system with an older and MORE closed system.

Let's change it to, "Imagine a 13 year old in 1995 who could produce&sell his own internet game/app on the web." and see how the comparison flies. Because I can imagine that just fine.

I see the benefits

</comment><comment><USER47> I hate that people like Gruber keep making the analogy to automobiles.

Because the car manufacturers didn't try to lock down their system and took government intervention to prevent this? But if Apple does it, it's just "progress".

</comment><comment><USER48> It's a credit to Apple's importance to the industry (and future hackerdom, apparently) that noone is having the same debate over the JooJoo tablet.

</comment><comment><USER49> Tinkerable or not, a platform where Apple decides which applications can be distributed stinks!

</comment><comment><USER50> Faulty analogies. Computers are not cars. Web clients are not gaming consoles. The iPad is a closed client for an open system.

</comment><comment><USER51> > Something important and valuable is indeed being lost as Apple shifts to > this model of computing. But it's a trade-off, because something new that is > important and valuable has been gained.

Why should it have to be a trade-off? Because Steve Jobs said so? With Chrome OS, there's a dev mode where you can do/install everything you want and get into console mode. And Android is totally open source too. So as much as Apple wants us to believe there's a necessity in restricting, the truth is that there is absolutely not, it's an artificial restriction.

<comment><USER52> There is a big trade off the other way. Android has a terrible UX. There are a lot of examples but one is their store. App prices are listed in Dollars, Euros, Pounds, and Yen and that is just a small sampling of apps I've seen. What you gain in openness with open OS you lose majorly in polish and usability. There is no perfect platform that satisfies all needs.

<comment><USER5> _Android has a terrible UX._

To the extent that's true, it's not _because_ Android is open. The Android Market does have many shortcomings (my favorite WTF is the 325 character description limit), but fixing them in no way requires adopting a closed model.

 _There is no perfect platform that satisfies all needs._

Agreed. I have no problem with the existence of a walled-garden platform that has armed guards facing both in and out. I do have a problem with that being the only model for mobile computing, which is exactly what Apple is aiming for with their lawsuits asserting that Android is illegal.

</comment></comment></comment><comment><USER53> If you are regular guy using a car to go from A to B, you definitely don't want to open up the hood. But if you bought a car to learn a thing or two about the engine inside, then you are in trouble with a locked down hood. The same with kids who wanna be hackers.

If your kid want to be a hacker and learn things, he is definitely going to be in big trouble with locked down devices like iPad and companies like Apple .</comment>


New fun music web app I built - Billboard.fm: Listen to all the hits since 1946 - <AUTHOR> http://billboard.fm Billboard.fm is ultimate radio web app to listen to the top hits from all the decades including the 1940s, 1950s, 1960s, 1970s, 1980s, 1990s, 2000s and 2010s all in one easy page.<p>Ever wonder what was popular the year you were born? Check it out! <comment><AUTHOR> Please let me know what you think. I kept it very simple to start with. I have two versions. One where play loads object (playlist) in div without changing pages, but then you can't share different years with your friends.

Any tips or ideas? I was thinking about incorporating history of the year into each page.</comment>


Photos of an NSA "upgrade" factory show Cisco router getting implant - <AUTHOR> http://arstechnica.com/tech-policy/2014/05/photos-of-an-nsa-upgrade-factory-show-cisco-router-getting-implant

<comment><USER2> It's not as easy as steaming the packing tape off. Some security standards require tamper-evident seals on equipment. Either equipment makers are enabling these "upgrades," or tamper-evident seals aren't.

<comment><USER3> Roger Johnston's "seal defeat laboratory" at Argonne has published many results about this [1]. The vast majority of seals are defeated in five minutes or less.

[1] [http://www.ne.anl.gov/capabilities/vat/defeat.html](http://www.ne.anl.gov/capabilities/vat/defeat.html)

<comment><USER2> Wow, a whole "security" industry unmasked as a security theater prop shop. Considering the stakes in food adulteration, etc. you would think the FTC would shut down ineffective products in that category, especially since VAT at Argonne not only defeats defective seals, but invents ones that work.</comment></comment></comment>


Jeff Bezos Becomes the First Person Ever Worth $200B - <AUTHOR> https://www.forbes.com/sites/jonathanponciano/2020/08/26/worlds-richest-billionaire-jeff-bezos-first-200-billion/ <comment><USER2> Thanks COVID lockdowns for killing the competition eh.</comment>


The physics and biology of the TSA's backscatter security scanners - <AUTHOR> http://arstechnica.com/science/news/2010/12/the-physics-and-biology-of-the-tsas-backscatter-security-scanners.ars/2

<comment><USER2> A minor, slightly pedantic, point about the physics:

Electron density is the quantity that determines x-ray absorbance, not mass density. Of course, a correlation exists between the two, but they are not exactly the same thing.

</comment><comment><USER3> A very clear technical discussion. Great diagrams!</comment>


Hypocycloid circular motion optical illusion - <AUTHOR> https://thekidshouldseethis.com/post/hypocycloid-optical-illusion <comment><USER2> Yeh.. but.. each "white dot" is itself rotating as it is moving across....</comment>


Streem (YC S12) Offers Unlimited Cloud Storage and Streaming for $20/Month - <AUTHOR> http://lifehacker.com/streem-offers-unlimited-cloud-storage-and-streaming-for-1563536464 <comment><USER2> The instant I see the word "Unlimited" \- I don't even bother to investigate further, as the project is either (A) Lying, (B) Unsustainable, (C) Rate limiting or otherwise bottlenecking you so you can't really use the service effectively.

I've seen dozens (maybe more) references to the "Unlimited" service, and with only a few exceptions, they always fall into one of those categories.

I'm wondering when other people come around to my perspective, such that companies just put what those limits are, or clarify what the bottlenecks are.

I.E. Flickr doesn't say, "Unlimited Photos" for free, they say one Terabyte. One Terabyte of photos is much, much more interesting to me than "unlimited". And, when it does say "Unlimited Uploads" \- it notes that you are limited to 200 MByte/photo.

<comment><USER3> In this case, "unlimited" probably means "~1TB on average".

Lots of companies already offer several hundred GB of storage and sharing at the $20/mo price point, and there are backup services like Backblaze that offer "unlimited" backup space for $5/mo without going out of business. So the monthly fee is enough to cover the storage and bandwidth that most users are realistically ever going to use. And when you have a lot of users, the average is the only thing that matters. If you use 1PB, you're being subsidized, not by the company but by a thousand low-utilization users.

In addition, they're probably betting on the price of storage to go down roughly in proportion to the gradual increase of average utilization over time. Actually, this is a relatively safe bet. 6TB drives now occupy the price point that 4TB drives used to occupy, which in turn can now be had for what 2TB drives cost a few years ago. With SMR & HAMR on the horizon and with neat tricks like stuffing 7 platters in a single drive filled with helium, this trend is likely to continue for quite a while (unless the Thai factories get flooded again).

<comment><USER2> The reason why Backblaze's unlimited backups aren't as much of a problem for me, is I have no desire for more than about 12 Terabytes of backups. So, as long as Backblaze's definition of "Unlimited" is 12 terabytes or less (and, based on their performance with me the last couple years, they are) - we are good to go.

But, I'm pretty certain if I tried to backup a 200 TByte iSCSI array (which appears as a "local drive", and, is theoretically something that could be backed up by BackBlaze) - I'd find myself either throttled, or receiving a polite email from Backblaze suggesting I was using their service in a manner that was not intended.

That's the thing with unlimited services - if you ask enough times, they will always tell you what the actual number is - I just wish they would come out up front and share it.

<comment><USER3> Since there is no such thing as unlimited _anything_ in this universe, it would be unreasonable to assume that "unlimited" is anything but an exaggeration.

Then we enter the same territory as any other case where technically incorrect claims are used in the media. Like GB vs. GiB, or "hacker" vs. "cracker", or "hashing" vs. "encryption", you name it. When we nerds complain about people who fail to make such distinctions, it makes no difference whatsoever and they'll just look at us funny. Because vagueness and exaggeration are integral features of natural language and it is _we_ who are being anal retentive about it.

In common parlance, "unlimited" is just a shorthand for "we're going to give you a large amount that we believe will be more than enough for the vast majority of our users, and we're not going to set up a specific limit, but we reserve the right to put up a limit if you do something that anyone with common sense should realize is an abuse of our policies". This works just fine in a world where people actually use common sense. You instinctively know that backing up your 200TB iSCSI array would be an abuse of Backblaze's policy, just as you know that grabbing a hundred napkins at the local McDonald's every morning and using it for all your personal hygiene needs throughout the day would be an abuse of McD's napkins-are-free policy. As long as everyone only uses as many napkins they need to wipe the ketchup off their fingers, McD's can continue to offer free "unlimited" napkins.

Typically, the actual quality of service and quantity of available resources does not depend on whether or not the service advertises "unlimited" something. Rather, it depends on the quality and integrity of the people who provide the service. A typical EIG-owned web host with an "unlimited" plan will kick you out if you use 100GB of bandwidth. YouTube, on the other hand, will happily let your homemade full HD music video consume 10PB of bandwidth.

<comment><USER2> You've come to the crux of the matter - but I think this is a battle we can win.

I was recently in BC, Canada, and I was purchasing a SIM for data use, and was told that it was, "Unlimited for 3 days". When I asked them "How much is unlimited" \- I expected to have to dance back and forth a bit before getting an answer, but the sales rep instantly said, "4 gigabytes."

I then noticed on the brochure that I got from them, that the plan clearly was listed as, "Unlimited data over three days up to 4 gigabytes"

I guess that could be considered winning half the battle.

Even better, though, is Singapore - where there is no concept of "Unlimited" with Singtel - word never appears anywhere. You purchase data packages with very clearly listed time and data amounts. And, if say, you want to use 100 GB - then you go purchase 14 GB for S$25, 4 times. Couldn't be more straightforward.

</comment></comment></comment></comment></comment><comment><USER4> Does anyone actually have experience with this? It sounds like one of those "there has to be a catch" type services.

Any limits on filetypes? Is there a max size per file? How is the network speed? Do they fire any customers who use too much storage space and/or bandwidth?

What is stopping my company from encrypting our database backups and uploading them to Streem nightly for permanent storage at a fraction of the price of normal offsite backups?

<comment><USER5> It sounds like the catch is that you grant them "a royalty-free, transferable, perpetual, irrevocable, non-exclusive, worldwide license to use, reproduce, modify, publish, list information regarding, edit, translate, distribute, syndicate, publicly perform, publicly display, and make derivative works of all such User Content"[0].

Perhaps this is the start of a massive stock photo/video company?

[0] [https://www.streem.com/terms](https://www.streem.com/terms)

Edit: Or even if it's not the start of such a company, it would look awfully tempting for a company in that space to acquire. Having thousands of terabytes of media data, and the rights to modify and distribute it, can be very valuable.

<comment><USER6> Definitely not our goal; happy to explain further: [https://news.ycombinator.com/item?id=7601652](https://news.ycombinator.com/item?id=7601652). Or take a look at the CEO of Reddit's post on this: [http://www.reddit.com/r/blog/comments/1sndxe/weve_rewritten_...](http://www.reddit.com/r/blog/comments/1sndxe/weve_rewritten_our_user_agreement_come_check_it/cdzaf2a)

</comment></comment></comment><comment><USER7> You should really avoid using this service. The terms are really scary. You should read them before using them for anything. They basically take over the rights of anything you put up there and may use them in any way they want. Upload your home movie? They can use it for ads, selling it to 3rd parties, use your audio for a new product or anything else they can imagine. The "best" part is, they provide you no way to delete your data. Once you upload it, they "own" it and they may (and will) keep it forever:

"By posting any User Content on the Service, you expressly grant, and you represent and warrant that you have all rights necessary to grant, to Company a royalty-free, transferable, perpetual, irrevocable, non-exclusive, worldwide license to use, reproduce, modify, publish, list information regarding, edit, translate, distribute, syndicate, publicly perform, publicly display, and make derivative works of all such User Content and your name, voice, and/or likeness as contained in your User Content, in whole or in part, and in any form, media or technology, whether now known or hereafter developed, for use in connection with the Service and Company's (and its successors' and affiliates') business, including without limitation for promoting and redistributing part or all of the Service (and derivative works thereof) in any media formats and through any media channels. You also hereby grant each User of the Service a non-exclusive license to access your User Content through the Service, and to use, reproduce, distribute, display and perform such User Content as permitted through the functionality of the Service and under this Agreement."

"If the features of the Service allow you to remove or delete User Content from the Service, the above licenses granted by you in your User Content terminate within a commercially reasonable time after you remove or delete such User Content from the Service. You understand and agree, however, that Company may retain, but not display, distribute, or perform, server copies of User Content that have been removed or deleted. The above licenses granted by you in User Content for which the Service does not provide you a means to delete or remove are perpetual and irrevocable."

<comment><USER6> Here's a breakdown of what each of these things mean:

 _royalty-free_ : Streem doesn't have to pay the user to display the content they upload back to them from our authorized clients (web, desktop, mobile).

 _perpetual_ : The right to display the content doesn't expire after some time, unless the account is closed and data is deleted as described in the second paragraph.

 _irrevocable_ : Once the user uploads content, they can't tell Streem that they take back the right to display the content, except by deleting the content, which is covered in the second paragraph.

 _non-exclusive_ : This is there for the user's benefit. It means that the user retains the right to the content they uploaded, and we don't take exclusive rights on displaying it back to them. So they have full rights to upload/store/do whatever with it elsewhere.

 _worldwide_ : These rights are not restricted to a specific country/zone, like the US, because our service operates and displays content around the world.

 _publicly perform, publicly display_ : Users can generate public links to their files, so we have to cover the case where they post it publicly and let their content be publicly displayed via the link they created. Publicly display covers still work like images; publicly perform covers "moving" work like music and videos.

 _derivative works, copies_ : Gives Streem access to make thumbnails/cover arts (derivative work) and copies of the data (redundant storage).

 _authorizing others to do so_ : Lets Streem pass the content through different layers and service providers during the upload, processing, and when data is requested. For example, Streem has to pass the content through a CDN when the user accesses it, which this gives us the right to do.

The main thing that prevents Streem from abusing these policies is the "for use in connection with the Service and Company's (and its successors' and affiliates') business" line. This ensures that we can only operate on the data to provide our service to the user when they authorize us to do so (i.e. if they click the "Share" button, they authorize us to operate on the file to enable it for sharing), and not for something like advertising the user's content to generate money since they haven't authorized us to do that (we'd have to add an opt-in "Advertise this for me" button or add it in to the TOS and appropriately notify everyone if we wanted to be malicious like that, which would be ridiculous for us).

Other cloud storage companies also have very similar TOS's, although they're more colloquial in their wording, so they may be easier to understand, but no different in the rights they're asking for.

If you want a more credible source, take a look at Yishan Wong's (CEO of Reddit) post: [http://www.reddit.com/r/blog/comments/1sndxe/weve_rewritten_...](http://www.reddit.com/r/blog/comments/1sndxe/weve_rewritten_our_user_agreement_come_check_it/cdzaf2a)

<comment><USER8> It sounds like you acknowledge that your TOS is scary and you know how other companies have fixed this problem but you refuse to do it. Why?

<comment><USER9> It sounds to me like he acknowledged that other companies are able to phrase their TOS in a more friendly way while still essentially getting you to agree to the same terms. Whether that's "fixing" the problem depends on what you view as the problem, I suppose.

</comment></comment></comment></comment><comment><USER10> I have some concerns on the 2 sentences (from their website):

\- "We've developed proprietary de-duplication and compression technology to be able to give you unlimited storage"

\- "Your files are encrypted with AES-256 bit encryption"

I'd prefer to know that my data is not encrypted, rather than reading marketing sentences that have none or obscure meaning when read together.

<comment><USER6> Happy to clarify. We use convergent encryption ([http://en.wikipedia.org/wiki/Convergent_encryption](http://en.wikipedia.org/wiki/Convergent_encryption)), which works with our de-duplication.

Example: You and I both have a file A. Our software encrypts that file A with a unique key generated from the file (say, the MD5 hash of the file), which makes E(A). Every user that uploads file A will generate the same encrypted version E(A) because the encryption key will be the same across each user (the MD5 hash of A).

<comment><USER11> Does the de-duplication aspect of it have any impact on DMCA/copyright issues?

For example, lets say somebody from HBO downloads Game of Thrones from The Pirate Bay and then uploads it to Streem. We could assume that many other people on Streem also have that same copy of the episode uploaded. HBO then issues a DMCA takedown (could they?), would Streem delete the file for everybody? And does Streem then have to prevent anybody from re-uploading it?

<comment><USER12> Since there's no way to globally "publish" a file, I don't see how DMCA takedowns could work.

<comment><USER11> Hence why in my hypothetical it would take the copyright holder themselves to both upload the file as well as issue the DMCA takedown.

<comment><USER12> By uploading the file, wouldn't the copyright holder be authorizing the cloud service to store it for them?

</comment></comment></comment></comment></comment></comment><comment><USER13> Cloud storage is not about size for me. It's about the experience. I'm pretty happy paying $2 a month to Google and getting tons of different services for my cloud

</comment><comment><USER14> It was only recently i had the pain of looking for a Cloud Storage solution and none of them seems to fit my needs / taste / price.

Yes. Whenever i see unlimited i dont even look further into it. Well unless they are from big companies like Microsoft or Google which could actually afford to do it. Otherwise they dont have a viable business model. And i am weary of that.

I dont (quite) trust Google. And Client of Google Drive just somehow doesn't really suit my taste either. Skydrive is expensive. Dropbox client is the best, but i cant bring to myself to pay 5 times the price. Hubic has crap interface. I am looking at MediaFire and Bitcasa, but both previously had some bad reputation with it. Copy from Barracuda looks like best candidate at the moment.

I have my own NAS at home. 2x2TB Synology. But I know my home's power delivery quality isn't that great. Power Surge and Lighting are things that could easily destroy your NAS or Data even i have Raid 1 with another external backup. Having something in the cloud just removes the hassle of doing it yourself.

I have been dreaming lately of a NAS that does it with Backup in the Cloud in one go. And i just pay an initial fees with a monthly fees. Hoping Apple would do one. But since margin is so low i guess they are not interested.

</comment><comment><USER15> Will this work with Rsync and allow me to automatically copy the contents of my seedbox (Linux) so I can stream it? My seedbox only downloads free indie movies...

<comment><USER16> love those free indie movies :)

</comment></comment><comment><USER17> Can you explain how this is better than - for example - Google Drive with their 1TB for $10?

<comment><USER18> I want to know this as well. Google Drive also will stream your media, and allows files of any filetype for general storage. Also, easy sharing with anyone anyone on the web (even people who don't have a Google account).

</comment></comment><comment><USER19> This looks like a much worse deal than OVH's new service Hubic. At 10 Euro a month ($13.80), they offer 10 TB (an essentially unlimited amount of space) with no restrictions on file size or file type. You can actually encrypt your files before uploading (which you should be doing) and host whatever you want.

<comment><USER20> Interesting, I didn't know OVH had that service, looks very nice. Although it looks like it's limited to 5GB max file size and 10 Mbit/s bandwidth, which seems very low for anybody with a decent internet connection.

</comment></comment><comment><USER21> If they offer a video/audio streaming service, what happens if I upload an mp4 of a copyrighted movie, even if I own it? Do they check files to see if they are copyrighted? If they do, will files be deleted automatically or will notice be given?

</comment><comment><USER22> How can it de-dupe properly if it is truly encrypted? Also, it's not unlimited storage for $20/month, it's only 200GB for $20/month.

Not nearly cheap enough for use with movies / music IMO

<comment><USER6> Encryption is done through convergent encryption (example here: [https://news.ycombinator.com/item?id=7601277](https://news.ycombinator.com/item?id=7601277)).

We do offer unlimited storage for $20/month, the 200GB for $20 is what Dropbox offers -- sorry if that was unclear.

<comment><USER22> Oh right!

Thank you for the clarification, it might be worth re-wording it slightly on your site? (or maybe I'm just blind!)

</comment></comment></comment><comment><USER23> This almost seems too good to be true. Can you stream .MKV files too? Looks like there's no iOS or native apps yet. I guess we just use our browser and stream directly?

<comment><USER6> Yes, we transcode all video files so that they're streamable on whatever platform you're on (including directly streaming from the browser). We'll be giving users access to our iOS app slowly, which will let you stream MKV (and other formats) directly. You can also use our desktop app to stream directly into your native video player.

</comment></comment><comment><USER24> Sounds like Plex? And plex has apps for my smart TV as well...

<comment><USER25> With respect to Plex, I think Streem could act as a 'Cloud Sync' option.

</comment></comment><comment><USER26> Do you offer an api or any sort of non GUI access? I've come so close to building this out for myself(at much greater expense), looks fantastic

<comment><USER6> On our roadmap! We'll make an announcement once we release it.

</comment></comment><comment><USER27> Having been sorely disappointed by crashplan's rate-limited servers and dodgy software, I'm wary of anything 'unlimited'.

<comment><USER28> I've had the opposite experience with Crashplan. Their software does take a lot of RAM though. I'm happily storing 3TB on their servers for $5 a month (yearly). I don't think that's such a bad deal.

<comment><USER23> IMO, Crashplan's service is terrible. On a university network I was never able to max out my upload. With BackBlaze I was able to max it out. Crashplan's built on Java, which is the reason for the RAM usage, while BackBlaze is native to OS X and Windows.

</comment></comment></comment><comment><USER29> Is there anything from preventing people from encrypting their hard drive and uploading it as 10 10GB avi files?

<comment><USER6> We have a few advanced techniques that inspect the file data and ensure that the file is valid. So even if you rename your encrypted backup to to My_Home_Video.avi, it wouldn't pass our check and would fail to upload.

<comment><USER20> And what about lossless image formats like .tiff or .bmp? These allow you to basically store any data in an image, and although the photo looks just like noise it's a completely valid image file with minimal overhead.

I do know some people that use that for backups on picasa and flickr, which have unlimited storage and 1TB respectively.

</comment></comment></comment><comment><USER30> How is this different/better than streamnation.com?

<comment><USER6> \- Native desktop filesystem integration. We don't make you go to a website to access your content; everything is accessible as a regular file in Explorer/Finder and opens/plays in your native player (i.e. VLC).

\- Instant adaptive bitrate transcoding. Videos you upload to Streem play instantly on any device, regardless of bandwidth (slow connections automatically get a lower quality; if your connection gets better, we auto- upgrade to a higher quality). Streamnation has a large wait time before the video is transcoded and ready for playback.

\- Streamnation has illegal features built in to their app (i.e. auto-scraping and uploading YouTube videos), which makes them much more liable for shutdown.

<comment><USER31> Illegal? If VCR and cloud DVR are legal I would expect a personal youtube recorder's legality to be murky but _probably_ acceptable.

<comment><USER6> Sorry, bad choice of words. It's against YouTube's TOS, and there have been quite a few YouTube-scraping sites that have been taken down by YouTube/their legal team in the past, so there's precedent for Streamnation to go under the same way.

</comment></comment></comment></comment><comment><USER32> Can I store RAW photo files on this storage?

<comment><USER6> Absolutely! We're also testing out our Javascript RAW image viewer so you can browse your RAW images without any special software, directly on the web, and on any computer.</comment></comment>


A Comprehensive Super Mario Bros. Disassembly - <AUTHOR> https://gist.github.com/1wErt3r/4048722 <comment><USER2> [https://gist.github.com/1wErt3r/4048722#file-smbdis- asm-L601...](https://gist.github.com/1wErt3r/4048722#file-smbdis-asm-L6011)

I think this is where the real gems start. The biggest contribution that SMB had was the "physics engine", to retrofit a modern term. The friction, the jumping, the inertia. If you compare it with the primitive physics in Donkey Kong or Mario Brothers, you can really grasp the groundbreaking novelty that was SMB. You can change direction in mid-air, but not too much. When you run, you skid if you try to run in the opposite direction. The height of your jumps is affected by your running speed.

It's all of these little details combined, barely noticed in tandem, which made the game new and fun.

<comment><USER3> I once read that the way SMB was able to pull off the physics engine on such limited hardware was that it used lookup tables for physics instead of actually calculating velocity. My assembly-fu is weak but it looks like your link is to the section that contains all the lookup tables. I think JumpMForceData for example is a series of offsets for each successive frame after you hit the jump button.

[https://gist.github.com/1wErt3r/4048722#file-smbdis- asm-L611...](https://gist.github.com/1wErt3r/4048722#file-smbdis-asm-L6116)

This line shows the calculation that makes use of the JumpMForceData.

<comment><USER4> Lookup tables were indeed a common technique used by games in the past.

<comment><USER5> And present, too, right? It's not the same reason as it would have been in the 80s, but today in performance critical code it is not uncommon to reduce the number of conditionals for better CPU pipelining, and lookup tables are a very common tool for this.

<comment><USER6> > it is not uncommon to reduce the number of conditionals for better CPU > pipelining, and lookup tables are a very common tool for this.

On modern CPUs, data dependency, such as lookup tables often cause pipeline stalls — worse pipelining.

L1 cache is at a premium as well, you rarely want to waste it to access LUTs.

You can compute a _lot_ in 12 cycles caused by L2 hit (L1 miss). In _theory_ up to 32 * 12 = 384 floating point operations.

<comment><USER7> To be fair, replacing a series of ALU ops with a lookup table doesn't usually add a "data dependency" \- the data dependency probably already existed, but perhaps flowed through registers rather than memory.

What adding a lookup table can do is to add the load-latency to the dependency chain involving the calculation, which seems to be what you are talking about here. For an L1 hit that's usually 4 or 5 cycles, and for L2 hits and beyond it's worse, as you point out. How much that actually matters depends on whether the code is latency-bound and the involved lookup is on the critical path: in many cases where there is enough ILP it won't be (an general rule is that in most code most instructions are not on a critical dependency-chain).

If the involved method isn't that hot then L1 misses (like your example) or worse are definitely a possibility. On the other hand, in that case performance isn't that critical by definition. If the method is really hot, e.g., in a tight(ish) loop, then you are mostly going to be getting L1 hits.

The comparison with 384 FOPs seems a bit off: I guess you are talking about about some 32-FOP per cycle SIMD implementation (AVX512?) - but the assumption of data dependencies kind of rules that out: one would assume it's scalar code here. If it's vectorization, then the whole equation changes!

<comment><USER6> > To be fair, replacing a series of ALU ops with a lookup table doesn't > usually add a "data dependency"

If it's not vectorizable, LUT result is often used for indirect jump/call (like large switch statement) or memory access (say, a histogram etc.).

> What adding a lookup table can do is to add the load-latency to the > dependency chain involving the calculation, which seems to be what you are > talking about here.

Yeah, used a bit sloppy terminology. Loads can affect performance system wide. To be a win, LUT function needs to be something pretty heavy, while LUT itself needs to be small (at least <16 kB, preferably <1 kB).

> If the method is really hot, e.g., in a tight(ish) loop, then you are mostly > going to be getting L1 hits.

That really depends. It's generally good to keep L1 footprint small. There are just 512 of 64-byte L1 cache lines. Hyperthread shares L1 as well. There can be other hot loops nearby that could also benefit from hot L1. It's very easy to start to spill to L2 (and further). Microbenchmarks often miss "system" level issues.

> The comparison with 384 FOPs seems a bit off

384 was for the extreme vectorization case, 12 x 2 x 8 FMACs (AVX). Most vendors count FMACs nowadays as two FOPs...

> If it's vectorization, then the whole equation changes

Well, isn't that where the performance wins are and what you need to do to extract maximum performance from that hot loop? A good truly parallel vector gather implementation could make (small) LUTs very interesting performance wise.

<comment><USER7> > If it's not vectorizable, LUT result is often used for indirect jump/call > (like large switch statement) or memory access (say, a histogram etc.).

You've lost me. The parent comments were specifically talking about using LUTs to replace calculation, and particular calculations involving branches. So basically rather than some ALU ops + possibly some branches, you use a LUT and fewer or zero ALU ops, and fewer or zero branches.

No one is talking about the context of a LUT of function pointers being used for a switch statement.

A histogram is generally a read/write table in memory and doesn't have much to do with a (usually read-only) LUT - unless I missed what you're getting at there.

> Yeah, used a bit sloppy terminology. Loads can affect performance system > wide. To be a win, LUT function needs to be something pretty heavy, while > LUT itself needs to be small (at least <16 kB, preferably <1 kB).

Definitely. Useful LUTs are often a few dozen bytes: the JumpMForceData one referring to about was only _8 bytes_!

> Microbenchmarks often miss "system" level issues.

Definitely.

But it's like a reverse myth now: at some point (apparently?) everyone loved LUTs - but now it's popular to just dismiss any LUT use with: "yeah but a cache miss takes yyy cycles which will make a LUT terrible!" or "microbenchmarks can't capture the true cost of LUTs!".

Now the latter is certainly true, but you can certainly put reasonable bounds on the cost. The key observation is the "deeper" the miss (i.e., miss to DRAM being the deepest, ignoring swap), the less the implied frequency the LUT- using method was being called anyways. If the method is always missing to DRAM, the LUT entries are being cleared out before the next invocation (that hits the same line) which must be a "while". Conversely, when the LUT method is very hot (high of calls), the opportunity for the LUT to stay in cache is great.

You can even analyze this more formally: basically looking at the cost-benefit of every line of cache used by the LUT: if the LUT didn't use that line, what would be the benefit to the surrounding code? For any non-trivial program this gets hard to do exactly, but certainly with integration benchmarks and performance counters you can make some reasonable tests. Associativity makes everything tougher and less linear though...

> Well, isn't that where the performance wins are and what you need to do to > extract maximum performance from that hot loop?

Sure, if it can be vectorized. My point there was that you were discussing the _latency_ of L2 misses rather than the throughput, which implies that the operations on consecutive elements were dependent (otherwise it would be the throughput of 1 or 2 per cycle that would be important). So you just have to keep it apples to apples: if you assume independent ops, you can perhaps vectorize, but then the LUT comparison is a throughput one (as is the scalar alternative), but if the code is dependent and non-vectorizable, then the LUT latency more becomes important.

> A good truly parallel vector gather implementation could make (small) LUTs > very interesting performance wise.

Anything that can be vectorized usually adds another factor of 4 or 8 to performance making it much harder for LUTs to come out on top, since the gather implementations on x86 anyways just use the same scalar ports and are thus still limited to 2/cycle, and without any "smarts" for identical or overlapping elements.

Sometimes you can use pshufb to do what amounts to 16 or 32 parallel lookups in a 16-element table of bytes. If your LUT can be made that small, it works great.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I wrote this earlier on another forum but I'll repost it here:

I've seen Shigeru Miyamoto speak at several game developer conferences over the years. He's absolutely brilliant, a really nice guy, and there's so much to learn by studying his work and listening to him talk. Will Wright calls him the Stephen Spielberg of games.

At one of his earlier talks, he explained that he starts designing games by thinking about how you touch, manipulate and interact with the input device in the real world, instead of thinking about the software and models inside the virtual world of the computer first. The instantaneous response of Mario 64 and how you can run and jump around is a great example of that.

Shigeru Miyamoto GDC 1999 Keynote (Full): [https://www.youtube.com/watch?v=LC2Pf5F2acI](https://www.youtube.com/watch?v=LC2Pf5F2acI)

At a later talk about how he designed the Wii, he said that he now starts designing games by thinking about what kind of expression he wants it to evoke on the player's faces, and how to make the players themselves entertain the other people in the room who aren't even playing the game themselves. That's why the Wii has so many great party games, like Wii Sports. Then he showed a video of a little girl sitting in her grandfather's lap playing a game -- [http://youtu.be/SY3a4dCBQYs?t=12m29s](http://youtu.be/SY3a4dCBQYs?t=12m29s) , with a delighted expression on her face. The grandfather was delighted and entertained by watching his granddaughter enjoy the game.

This photo -- [https://i.imgur.com/zSbOYbk.jpg](https://i.imgur.com/zSbOYbk.jpg) \-- perfectly illustrates exactly what he means!

Shigeru Miyamoto 2007 GDC Keynote - Part 1: [https://www.youtube.com/watch?v=En9OXg7lZoE](https://www.youtube.com/watch?v=En9OXg7lZoE)

Shigeru Miyamoto 2007 GDC Keynote - Part 2: [https://www.youtube.com/watch?v=jer1KCPTcdE](https://www.youtube.com/watch?v=jer1KCPTcdE)

Shigeru Miyamoto 2007 GDC Keynote - Part 3: [https://www.youtube.com/watch?v=SY3a4dCBQYs](https://www.youtube.com/watch?v=SY3a4dCBQYs)

Shigeru Miyamoto 2007 GDC Keynote - Part 4: [https://www.youtube.com/watch?v=jqBee2YlDPg](https://www.youtube.com/watch?v=jqBee2YlDPg)

Shigeru Miyamoto 2007 GDC Keynote - Part 5: [https://www.youtube.com/watch?v=WI3DB3tYiOw](https://www.youtube.com/watch?v=WI3DB3tYiOw)

Shigeru Miyamoto 2007 GDC Keynote - Part 6: [https://www.youtube.com/watch?v=XvwYBSkzevw](https://www.youtube.com/watch?v=XvwYBSkzevw)

Shigeru Miyamoto Keynote GDC 07 - Wife-o-meter: [https://www.youtube.com/watch?v=6GMybmWHzfU](https://www.youtube.com/watch?v=6GMybmWHzfU)

<comment><USER9> The Miyamoto approach of starting with a desired emotion and working backward toward a design is profound. This is radically different from most things I've read which involve cramming emotion into existing designs. This changes everything for me. Thanks for sharing.

</comment></comment><comment><USER10> Ben Fry, the creator of Processing, created a beautiful visualization of the disassembled machine code of Super Mario Bros with arrows representing jump instructions:

[http://benfry.com/dismap/mario-large2.jpg](http://benfry.com/dismap/mario- large2.jpg)

via: [http://benfry.com/dismap/](http://benfry.com/dismap/)

I've always loved this as a visualization of machine code. It's simultaneously amazing how complex it is and yet how simple it is when you consider that it represents the entire game all in one graphic. This is from 2007 I believe. I love that 10 years later the machine code is now fully annotated and understood.

<comment><USER11> Wow, that is amazingly complex! It's beautiful, in a way.

I tried to see if there was something very central, called from lots of places, but there doesn't seem to be any such place. There are a few, but not something singular that stands out as completely dominant.

Long jumps get a more dominant visual appearance than short jumps. Would be interesting to see what it would look like with the address printed in size proportional to eg how many places call it, or how CPU intensive that subroutine is, etc.

<comment><USER11> Also check out the other example dismap shows: Excitebike! Much fewer and longer subroutines. Interesting, I wonder if that in turn is mostly a result of developer coding style differences, or a result of game mechanics being different.

</comment></comment></comment><comment><USER12> Check out the section under "DemoActionData": this is where it stores (and plays) the demo you see when you don't push Start and Mario runs around on his own volition.

It just simulates player input and runs it through the regular game engine. (The alternative, playing a recorded video, would have been laughably data intensive.)

<comment><USER13> Same thing goes for Super Mario 64. The popular TASer pannenkoek actually explored whether it was possible to manipulate Demo-Mario's starting position in such a way that he collects a star with the demo input (this was for the purposes of special "A-Button Challenge" speedruns, where pressing the A-Button must be kept to a minimum, but since the demo input isn't actual player input it isn't counted) Sadly I think there was no conceivable way to do it. (i.e. manipulating the starting position is possible, but not in a way that leads to collecting a star)

[https://youtu.be/-0emgkIEobI](https://youtu.be/-0emgkIEobI)

<comment><USER14> That's an amazing youtube channel. Here [1] the creator describes in an over seven-minute long video the intricacies of Mario falling asleep.

[1] [https://www.youtube.com/watch?v=7OtW- LLZ2OA](https://www.youtube.com/watch?v=7OtW-LLZ2OA)

<comment><USER13> That's nothing! He has two videos on walls, floors and ceilings, each longer than half an hour (and both of them extremely interesting)

Part 1: [https://www.youtube.com/watch?v=UnU7DJXiMAQ](https://www.youtube.com/watch?v=UnU7DJXiMAQ)

Part 2: [https://www.youtube.com/watch?v=f1kbABTyeo8](https://www.youtube.com/watch?v=f1kbABTyeo8)

</comment></comment></comment></comment><comment><USER15> I remember using this disassembly many years ago when writing a little NES emulator. Having a reference available for a popular game is _incredibly_ useful.

Here's one of my favorite parts: [https://gist.github.com/1wErt3r/4048722#file-smbdis- asm-L942](https://gist.github.com/1wErt3r/4048722#file-smbdis-asm-L942)

The byte here is for the BIT instruction, but why is it just a lonely byte? Well, the BIT instruction in this case also includes the two following bytes. When the game processes that instruction, the `ldy #$04` is swallowed up as part of the BIT instruction, effectively skipping over it. IIRC this was a pretty common trick used among 6502 programmers. It allows you to jump ahead over the next (2byte) instruction with just a single byte!

</comment><comment><USER16> You might also be interested in the dissambly of the first pokemon games:

[https://github.com/pret/pokered](https://github.com/pret/pokered)

And some other pokemon games:

[https://github.com/pret/pokered#see- also](https://github.com/pret/pokered#see-also)

<comment><USER17> I loved this article regarding the algorithm used for capturing pokemon: [http://www.dragonflycave.com/mechanics/gen-i- capturing](http://www.dragonflycave.com/mechanics/gen-i-capturing)

<comment><USER18> Good gosh, that was a long, fun read.

</comment></comment></comment><comment><USER19> There's also a Legend of Zelda disassembly, but it's not as nice:

[https://github.com/camthesaxman/zeldasource](https://github.com/camthesaxman/zeldasource)

It's a much larger game, though.

I haven't checked, but I'm assuming that a lot of the giant chunks of statically-defined data are just graphics and audio (unlike many games, LoZ stored graphics interspersed with the program code and copied data over to an in-cartridge RAM chip, instead of storing the complete graphics data in a ROM chip.)

<comment><USER20> > unlike many games, LoZ stored graphics interspersed with the program code > and copied data over to an in-cartridge RAM chip, instead of storing the > complete graphics data in a ROM chip

This is because Zelda 1 was a port from the Famicom Disk System—no memory- mapped ROM chip to rely on, so you've got to load everything you're going to use to RAM. (Also like this: Metroid.)

I believe this is why both LoZ's and Metroid's maps are built out of individual "screens" with a "pause to transition" effect between them: in the FDD version, the game would be reading the new map from disk, and there'd (sometimes, if the load took long enough) be a loading screen involved. (You can see the screen for LoZ here: [http://tcrf.net/The_Legend_of_Zelda/Console_Differences#Load...](http://tcrf.net/The_Legend_of_Zelda/Console_Differences#Loading_Screen))

<comment><USER19> Cool, I never dug in to see why they were that way, but those were both test cases when I built an NES emulator.

</comment></comment></comment><comment><USER8> How I love the sleek smooth razor sharp columns of three letter 6502 opcodes. The right edge of columns of opcodes in other instruction sets look so rough and jagged like sandpaper in comparison. That's what I've always hated about x86 code. It looks rough and torn.

<comment><USER21> Nice observation. Its 35+ years since I last did any 6502, and this morning teenage-me looked at those opcodes and smiled a little.

</comment></comment><comment><USER22> Master list of SMB glitches makes a nice companion to this. Sorry in advance if it results in anyone staying up well past their bedtime ;)

[https://www.mariowiki.com/List_of_Super_Mario_Bros._glitches](https://www.mariowiki.com/List_of_Super_Mario_Bros._glitches)

<comment><USER23> That'd be great if someone knowing the disassembly well enough could explain some of these glitches, for example the Minus World[0]. I guess the logic (or bug) to active this appears somewhere in the disassembly.

[0] [https://www.mariowiki.com/Minus_World](https://www.mariowiki.com/Minus_World)

<comment><USER24> [https://www.youtube.com/watch?v=Hv_h_R3o9r8](https://www.youtube.com/watch?v=Hv_h_R3o9r8)

</comment></comment></comment><comment><USER25> I love that this is just a gist. Like 'hey just needed to copy and paste this for a minute'

</comment><comment><USER26> In case anyone else is trying to re-assemble this into a working game, here's one way to do it :)

[https://github.com/x3ro/super-mario-bros- build](https://github.com/x3ro/super-mario-bros-build)

</comment><comment><USER27> This seems like a really impressive effort to make sense of all this!

Would the original game have been written in assembly? And if so, would the source have looked similar to this?

Having never touched assembly language (aside from learning some very basic cracking many years ago swapping JE for JNE in the serial check routine, haha), it seems like a true dark art to me, so I'm really curious to know!

<comment><USER28> Yes, all old NES games were written in 6502 assembly (named after the NES's 6502 processor), and even most games into the Super Nintendo and Game Boy days were written using assembly language.

The source would've looked very similar to this, although I can assume the original labels would've been in Japanese. The difficulty in creating a disassembly like this isn't converting the machine code back into assembly, which can be done rather simply, but instead re-adding all the label names, which are lost when the game is built. It's quite the undertaking, and the author must know the complete game back to front.

<comment><USER29> For another interesting read there's the guy that disassembled Robotron, and traced the code out by hand across 512 printed pages of assembly and fixed 2 long-standing bugs.

[http://www.robotron2084guidebook.com/technical/christianging...](http://www.robotron2084guidebook.com/technical/christiangingras/)

</comment></comment></comment><comment><USER30> I also have a makefile and game genie code generator for this on github: [https://github.com/nwoeanhinnogaehr/smb- assembler](https://github.com/nwoeanhinnogaehr/smb-assembler)

</comment><comment><USER31> What is the goal of a project like this?

I'm absolutely not meaning that as a pejorative. I am just curious if there's an actual goal here. Is the goal to make a faithful reproduction, historical reference, a hacking challenge, or? Is it just curiosity?

I see lots of links in the thread, many for different games. Curiosity is as valid a reason as any other, but is there some sort of end result trying to be had? The various links don't actually seem to enumerate this very well, unless I missed it.

<comment><USER32> It has many uses really. It's a nice resource for learning assembly, especially 6502 assembly; it's a good reference for creating NES games, whether those are original titles or simply romhacks; it's also a great reference for building an emulator for the platform or a level editor for the game. And of course, disassembling a game and documenting the source code is a great hacking challenge that will leave you confident that you know asm. So, all the reasons that you listed, I suppose.

<comment><USER31> I can also understand a 'just because' answer. I was just curious if there's a greater goal. I'm not a gamer but I do kind of pay attention to some aspects.

</comment></comment></comment><comment><USER33> I love stuff like this. Seeing the disassembly somehow adds to the nostalgia for a childhood pastime.

What's this endlessloop for: [https://gist.github.com/1wErt3r/4048722#file- smbdis-asm-L712](https://gist.github.com/1wErt3r/4048722#file-smbdis-asm-L712)

(Yes, please ;)

<comment><USER34> You can see that just above the endless loop, the code will "enable NMIs". I'm not sure about the nomenclature here (because normally NMI stands for non- maskable interrupts, meaning you can't disable them) but basically the game at this point becomes event (interrupt) driven, probably from the vertical retrace interrupt or another kind of timer interrupt. When no event is being handled, the CPU idles within this endless loop.

<comment><USER34> [https://wiki.nesdev.com/w/index.php/PPU_registers#Controller...](https://wiki.nesdev.com/w/index.php/PPU_registers#Controller_.28.242000.29_.3E_write) states that bit 7 of the register at $2000 (which they call PPUCTRL, and this disassembly calls PPU_CTRL_REG1) will "generate an NMI at the start of the vertical blanking interval"

</comment></comment></comment><comment><USER35> For people interested in the SMB disassembly, you may also be interested in this one: [http://bisqwit.iki.fi/jutut/megamansource/](http://bisqwit.iki.fi/jutut/megamansource/) NES MegaMan disassembly, with some comments

</comment><comment><USER36> Looks like data for the various songs here:

[https://gist.github.com/1wErt3r/4048722#file-smbdis- asm-L160...](https://gist.github.com/1wErt3r/4048722#file-smbdis-asm-L16027)

I'd love to see the process of extracting actual audio from that.

<comment><USER37> The NES had a memory-mapped APU[1], so the game just sets sound registers to play the appropriate notes, and ticks down a timer until it's time to switch to the next note: [https://gist.github.com/1wErt3r/4048722#file-smbdis- asm-L156...](https://gist.github.com/1wErt3r/4048722#file-smbdis-asm-L15610)

[1] [https://wiki.nesdev.com/w/index.php/APU](https://wiki.nesdev.com/w/index.php/APU)

</comment></comment><comment><USER38> Lots of retro game reverse engineering stuff on HN lately; please continue this trend :-)

</comment><comment><USER21> I'm not familiar with the history of this work, so I'll just ask. Is this the assembler code that was written by the original dev team, or were the comments reverse-engineered from a dissassembly of the game's machine code?

<comment><USER39> It's a "disassembly", so it's the work of somebody converting machine code back into assembler, and studying it long and hard to add comments, break out numbers into sensible-named constants, and choose decent names for loop labels. The original dev team was almost certainly not involved.

<comment><USER21> Thanks for the clarification. Given what you've said and the size of the thing, this is an awesome piece of work. The level of detail and perseverance required is enormously impressive.

</comment></comment></comment><comment><USER40> The entire game in 16,000 lines of assembly code. :-)

</comment><comment><USER41> I love how the 'author' expresses his thanks for everyone and his dog, except for the people at Nintendo who actually wrote the code.

</comment><comment><USER42> Is the gameplay logic in a different file or did i miss something?

<comment><USER43> It's all in there. Probably start with PlayerCtrlRoutine.

</comment></comment><comment><USER44> This is insane.

</comment><comment><USER45> Tu tu tu turuturu turuturutururur...

</comment><comment><USER46> Is there a version of this somewhere that people have changed it to C or some other higher level language for easier skimming? I'd love to see that.

(Yes, I know it was written in ASM).</comment>


Ask HN: How to compare different programming languages - <AUTHOR>

C++ is best for performance, in this case how to compare c++ to other languages in term of performance. <comment><USER2> Assembly code is best for performance but it is a huge pita.

<comment><AUTHOR> Of course, but how to determine languages that near ASM performance

<comment><USER2> C, c++ and ask permit allocation on the stack. Many others require dynamic allocation. Whether one language is faster depends on whether the problem at hand can take advantage of stack allocation.

<comment><USER2> Most modern computers have caches. On the whole they speed you up but some access patterns lead caches to slow you down. Some instruction set architectures have more registers than others.

So the fastest language also has to consider the hardware it is used on.

<comment><AUTHOR> Thank you very much! insightful comments!

<comment><USER2> Some people just aren't very good coders. No language will make their programs run faster. What will are books like effective c++, effective java and refactoring.

The fastest language only makes sense when the code is written by an expert.</comment></comment></comment></comment></comment></comment>


Show HN: (lambda speech), a λ-calculus' dialect on the web - <AUTHOR> http://lambdaway.free.fr/workshop/?view=lambdaspeech <comment><AUTHOR> (λ speech) is a dialect of (λ calculus)(1936) taking benefit of modern web browsers.</comment>


Seth Godin has a new Podcast on Earwolf - <AUTHOR> http://www.earwolf.com/show/startup-school/ Just found this while looking for something to listen to on my drive home.  Interesting introductory talk from his start-up workshop. <comment><AUTHOR> First episode is his summary of a Freelancer vs. Entrepreneur. The distinction being working for yourself vs. building something bigger than yourself.</comment>


Apple Shipping ARM Based Macs to Devopers - <AUTHOR> https://www.macrumors.com/2020/06/29/mac-mini-developer-transition-kit-arriving/ <comment><USER2> This is from the end of June. Some other threads include:

[https://news.ycombinator.com/item?id=23683185](https://news.ycombinator.com/item?id=23683185)

[https://news.ycombinator.com/item?id=23678865](https://news.ycombinator.com/item?id=23678865)</comment>


Show HN: Searchly – a Search Expert - <AUTHOR> http://micronest.com/searchly/ <comment><AUTHOR> I have implemented this app to get useful information summary from your search results instead of mining the search results on mobile. Moreover, the app also highlights the most liked result (on the social web).</comment>