Xbox Kinect Accelerometer & Motor Hacked - <AUTHOR> http://nuigroup.com/forums/viewthread/11154/ KinectMan writes "First test of controlling the Kinect from a PC. Outlook looks good for other sensors of the device."<p>Johny 5 is alive! <comment><USER2> Sweet.

Time to get one.</comment>


A history sheds light on venture capital's ties to military-industrial complex - <AUTHOR> https://www.bookforum.com/print/2602/a-history-sheds-light-on-venture-capital-s-ties-to-the-military-industrial-complex-22006 <comment><USER2> There seems to be a lot of confusion in the US about what military spending entails.

The WTO and other agreements largely limits what the US government is allowed to contract only from US companies. One of the exceptions is national security.

If something is national security related the US government can spend money and restrict the companies it does business with to US companies.

It's just a hack on Keynesian Economics.

<comment><USER3> I don't see this as an issue? Would we want our security software written by foreign interests. Especially places like Australia

</comment></comment><comment><USER4> War and the preparation for war is a feedback loop. The military industrial complex is a symptom of technology. The more tech we develop, the more things we have to protect and the number of ways we can be attacked increases non- linearly. Hence, this massive growing defense budget. If we stop developing new tech, history has shown that somebody else will gain an advantage and try to dominate us or an ally. Talk about tough nuts to crack.

</comment><comment><USER5> If you're interested in learning more about the "early days" of SV, check out this video by Steve Blank: [https://www.youtube.com/watch?v=ZTC_RxWN_xo](https://www.youtube.com/watch?v=ZTC_RxWN_xo) [1 hour]

Lots of it goes back to WWII and development of advanced radar and anti-radar tech.

</comment><comment><USER6> Anyone know how a good book or three about history of the military-industrial complex?

I'm especially curious how various economic ups and downs in the military may have influenced venture capital. I'm also interested in tracing back those ups and downs to various presidential mandates. Seeing the whole chain from presidential biography to consequence on the investor landscape. (Other than that it's generally good to know the history, I think it could also act as a source of amplified imagination about how things that's going on right now might produce similar effects.)

<comment><USER7> _MITRE - The First Twenty Years - a History of the MITRE Corporation_

There used to be a lot of juicy stuff shared on various .mil(.x) domains ~1990s, that provided a view in to the apparently significant transition to viewing the world as constantly at war, and the US and its allies' views during the initial phase of militarization of non-military information and communications networks and space. Probably some portion available on archive.org. Search using domains of military research organizations.</comment></comment>


Ask HN: Anyone would like to team up? I have tons of unfinished projects. - <AUTHOR>

I have many projects laying around, waiting for their heros to get them up and complete. They might not be the next biggest things, but might be fun.
Projects are based on python and django.
Some of them are:
1 - A social job listing board. Users can submit their ads for seeking jobs,
for employees, or about their services etc. My aim is to eliminate the sending
cv and waiting for a possible reply or having to struggle gazillions of cvs or
applications all stating that "the applicant is the best for that job" problems.
For that reason a dynamic questionairre system is provided where ad owners can
ask applicants to write code samples, essays, or answer some specific questions
to see if applicants fit their needs. I'm planning many other features, but need
to get it online first.
status: almost done, needs effort on design and bugfixes
2 - An open social bug filing system mostly for fun. you can file a bug on anything,
on your girlfriend, on god, on your cell phone, on your drink etc. Bug reports are
legit, though the content may not be :)
status: almost done, needs some work on features and design.
3 - A soc^H^H^H community based recipe & question & answer system for web developers
to improve their skills. The drill is that it provides a canvas based draw board
where users can quickly come up with a mockup of layout of the elements and ask
their questions, or provide sample css & html recipes on them. nothing big, but might be fun. status: mostly done, needs design and some more work on draw board, bugfixes.
4 - Awesomelist. A very old project, where users share information about the things they find awesome (or sucky?) in life which'll eventually build up a community(ha! no escape from communities). might already been implemented a gazillion times. status: uhm..uh.. don't remember where i left it.
5 - Pros & cons. Another old project. Listing page about the pros and cons on anything.
Most probably this idea also has been exploited to death, but you know oldies are goldies.
status: not really sure. i might have never started this.
So if anyone would like to team up with me on any of these projects, please drop me a line. <comment><AUTHOR> bumping for the sake of bumping</comment>


Wall Street banking on a Covid-19 vaccine before US election - <AUTHOR> https://www.aljazeera.com/ajimpact/wall-street-banking-covid-19-vaccine-election-200619204859320.html <comment><USER2> It would seem Wall Street is as astute a gambler as my second stepdad.</comment>


Ask HN: What's your morning routine? - <AUTHOR>

Even if you don't adhere to it perfectly, what do you find gives you the best start to the day? Could be exercise, reading, etc. The more specific, the better. <comment><USER2> Wake up stressed about traffic and revenue, toilet, coffee, pet the cats, start up rusty old Dell, add another 0 to the revenue chart on the wall, minor bump on the traffic chart, post self-deprecating comments on HN, THEN get down to work so I don't wake up to another zero tomorrow.

</comment><comment><USER3> As I live in the Netherlands, a lot of interesting stuff that happens online during the day in the US, happens in the night for us. While my GF is taking a shower and dressing, I'm usually still in bed checking Twitter, Reeder and Reddit for what happend during my sleep.

Then I'm off to the shower (no shower means waking up takes longer) and will sometimes have breakfast with my GF. Most of the time however, I just drink something and leave home for my one hour commute to Amsterdam (by train), during which I read up on online stuff (or continue reading a book) on my iPad.

I usually show up at work somewhere between 8.30 and 9.30 am. Once my laptop is hooked up to my screen and everything is ready for work, I grab a glass of fresh tea and a cracker with cheese, and I'm off hacking :-).

Additionally, I work from home two days of the week. The routine is a lot simpler then: after having checked the latest news from my bed, I jump into my clothes and start hacking right away. Shower and breakfast occur somewhere between 11am and 2pm. For some reason I'm awake and ready to hack much faster when I'm working from home. Does that sound familiar to anyone?

TL;DR: quite a lengthy routine on the days I commute. When working from home going from bed to hacking takes me ~2 minutes

</comment><comment><USER4> I wake up, sometimes get my laptop and read something while I am in bed. Sometimes I get up to read. I check my FB, email, and then HN, BBC, Economist etc. which takes about an hour or so normally. I eat some cereal while doing that - must of the time Honey Bunches of Oats.

Then I get to work brainstorming, emailing, brainstorming, speaking with my programmer, brainstorming, and then lunch. In the afternoon/evening I usually go to the gym or sometimes play soccer at lunch.

</comment><comment><USER5> This is a really cute feed - I watch a 20 or so page power point I designed that visualizes my perfect life and also has all the steps I need to do and jobs I am working on. I created from the saying 'You become what you think about most of the time' so I've tried to immerse myself n this vision. I've been doing this for about 6 months and it gets me positive and inspired for each day.

Then I nerd out on the internet for ages.

</comment><comment><USER6> Interesting that most people seem to work from home! and none of you shave (or do hair/makeup!) which leads me to believe you all have giant beards!

</comment><comment><USER7> Coffee, WSJ&HN, Bathroom, Emails, More Coffee, then off to work. If I wake up with my gf, then love replaces coffee. Endorphins > Caffeine.

</comment><comment><USER8> 3 days a week it is: wake up at 7, eat müsli, drink coffee, read HN for 30-45min or clean up the kitchen then bike 40min to work (used to be an hour), shower there, stretch, more coffee The other two I work at home and will try to work first thing in the morning until my wife and daughter get up, then make breakfast for them or play with the little one. After breakfast I continue working

</comment><comment><USER9> Wake up, gmail, thefeelgood.com (music), HN, code 1h, breakfast, code 3h, lunch out with friends. I dont drink coffee, i dont smoke, try to stay healthy.

And what energizes me is that i love what i work on. The simplest, easiest and best motivator. Otherwise lots of contacts with lots of friends, Sports, games and sex (when circumstances allow) keep me in good mood and happy.

</comment><comment><USER10> Pro tip: drinking a glass of water within 10 minutes of waking up will cause a bowel movement. No better way to start off the day.

</comment><comment><USER11> Coffee, HN, more coffee, Reddit, grapefruit, cereal and then a 20 mile bike ride into work.

</comment><comment><USER12> I'm from the Netherlands so my rountine is; Wake up, check mail and HN/reddit/businessinsider/TC/Mashable, shower, make sandwiches for lunch, get on the tram. Upon arriving boot up pc, respond to work mails, grab coffee and the day starts.

</comment><comment><USER13> Wake up, shower, make sandwiches for lunch, grab bike and ride to work (this is the Netherlands after all, you get funny looks for walking), arrive at work and grab a coffee and a water, catch up on HN, Twitter, Reader, commence working.

</comment><comment><USER14> How many of you go do some exercise or workout as a part of your morning routine? I have been thinking of doing this, but I have heard people saying it's more beneficial to do this in the evenings.

<comment><USER15> For the majority of people, the hurdle is getting exercise regardless of time of day. I think once you get past that, everything else comes down to personal preference and priorities.

<comment><USER8> I second that. Started convict conditioning a month ago and I don't have a rigid schedule for training. But I will train every other day regardless of what happens on that day. This can mean I will do it at midnight but usually I do it earlier taking a break from work. It is a great way to channel procrastination into something useful.

</comment></comment></comment><comment><USER16> HN, Coffee, Cigarettes, and a shower with orange scented shampoo.

<comment><USER17> Do you drink coffee and smoke cigarettes? Do they affect you similarly, and does the effect amplify if you do both? (not having smoked before, I'm genuinely curious)

<comment><USER16> I dunno really. The smoking is constant fuel through the day (disgusting, I know, but it's programmed into my brain) while the coffee (with lots of sugar) gives me a kick when I start to feel blah.

</comment></comment></comment><comment><USER15> Wake up. Eat oatmeal or cereal + tall glass of water + piece of fruit. Quick 5K jog. Shower. Catch up on stuff (email, HN, twitter). Work.

</comment><comment><USER18> milk + cornflakes, instant coffee, HN, mails, HN, stats, Facebook, HN, playing some music

I have still to find one, a good one which includes going to the gym

</comment><comment><USER17> Driving. Even when I work from home, I make sure I drive.

<comment><USER19> Care to explain why?

<comment><USER17> It serves 3 purposes:

\- forces me to dress / shower / maintain a modicum of hygiene

\- gets the heart pumping (at high speeds :)

\- with the top down (or all windows open) at higher speeds you feel quite a bit cooler than if you stood in the outside air (in the summer). And in the winter, car blows warm air across the neck, so your head doesn't freeze

</comment></comment></comment><comment><USER20> wake, make some tea, read flipboard/zite, go workout for an hour, come home shower, and head to work.

</comment><comment><USER21> I get up, get dressed, and immediately go to work. Then at work I get coffee as I restart the computer (it has docking issues).</comment>


Twilio Recipes Open source PHP for common PBX features - <AUTHOR> http://www.twilio.com/docs/recipes/

<comment><AUTHOR> VoiceXML certainly has it's place in the Enterprise, but it's definitely a steep learning curve. At Twilio, we've attempted to simplify the model for developers who are already busy with many projects and technologies.

As Caligula pointed out, you can "play around" with VoiceXML on a number of Enterprise platforms such as TellMe, but if you want to launch, you'll have to engage in a long enterprise sales cycle and sign long contracts. That's no fun :(

\- jeff

Jeff Lawson Co-Founder, Twilio

</comment><comment><USER2> How about a PBX application that asks me to leave my name and number and when rep picks up my call (# in queue) my phone rings. No waiting hours on the phone with cable company. This is not a new idea - maybe some1 is doing this alrready.

Could initiate this by calling & entering info or going to a website or Twitter.

</comment><comment><USER3> I fail to see why this got 23 upvotes. From what I can tell, it shows examples using their API. They are an alternative to VoiceXML. VoiceXML is a industry standard that most companies use.

I would avoid Twilio as I cannot find a justification to making a different standard. Although their transparent pricing and hosting everything is appealing. I actually looked into them before but their xml language turned me away.

If you want to play around with making voicexml apps for free try out <https://studio.tellme.com/>

<comment><USER4> Twilio will succeed simply because they've reduced it to being ridiculously easy. I mean, a complete non-coder could practically put together a working app based on Twilio, which I doubt is the case with any VoiceXML provider.

I personally wrote a phone-in support service, company extensions directory and voicemail-to-email service with Twilio in literally a couple hours. It now integrates seamlessly into a new support system I'm launching for one of my companies in the next month or so. Twilio's part was so easy it was an afterthought, but will really make my new service shine.

Couple that ease of use with their super affordable and transparent ($5/mo + $0.05/min for an 866#) pricing model, and you've got a winner. I can appreciate the need for standards, but sometimes they're simply trumped by easier and better technologies. Look at the progression from SOAP -> XML-RPC -> REST for example :)

<comment><USER4> PS. Had an interesting issue with call forwarding through my wireless carrier and Twilio's support has been top notch in helping track it down. Can't say the same for my wireless carrier though... ;)

</comment></comment></comment><comment><USER5> Anyone have an invite code? I would love to try this service out, looks very promising. The first thing I have in mind is allow for call in issue tracking/complaints/bug reports. Something like this coupled with basic speech recognition would easily allow that, and likely cost thousands of dollars less then a similar commercial solution.

<comment><USER6> They're liberal with the invites, just try to get on their beta invite list. A week or so ago I got mine right away.

<http://www.twilio.com/request-invite></comment></comment>


Othello in BASIC - <AUTHOR> https://github.com/menezesd/othello/blob/master/othello.bas <comment><USER2> Shakespeare lose a lot in the translation... (Sorry: couldn't resist)</comment>


If Design's No Longer the Killer Differentiator, What Is? - <AUTHOR> http://www.wired.com/opinion/2012/09/so-if-designs-no-longer-the-killer-differentiator-what-is/

<comment><USER2> The author makes a grandious claim that art is the differentiator in technology with little to no evidence. What advantage does art in technology bring to the user? What is an example of this? Isn't technology simply the means to an end? If so, why would adding art to the mix improve it? Art would bring more ambiguity and confusion to many while possibly sparking an emotional response to some. I don't understand this article at all. Art has its place. Technology does too and sometimes it helps facilitate the creation of art.

</comment><comment><USER3> Design was never the "killer differentiator" - it mattered to a subset of people, for a subset of products.

If you look at the world through Apple-shaped glasses, you see a VERY skewed view of the world.</comment>


Ask HN: Solving chicken and egg problem - <AUTHOR> How do you solve chicken-and-egg problem especially for web 2.0 apps requiring hard traction (and many users) to function (e.g. date site, marketplace, etc)?
I have an idea for a collaborative/shared marketplace for a niche product (think airbnb, but for other niche) and is currently building a prototype, but is confused on how to get the very early user for the site to function. I know how user #1 experience is crucial and how del.ico.us was started as a personal bookmarking site, but how does airbnb, craiglist, and many social site gain traction?
Many thanks for the help. <comment><USER2> One way to get past this (it worked for 'reddit') is to fake a bunch of accounts and stop sleeping for the first three months or so, until you have enough real 'eggs' and chickens to keep real ones interested.

The way I got past it on ww.com is to launch the site from a mailing list that was already 'on topic' so a large number of people decided to try it out at once and found each other.

<comment><AUTHOR> that has not crossed my mind.. still it's unbelievably difficult though..

</comment></comment><comment><USER3> Check out Strategy Letter II: Chicken and Egg Problems by Joel Spolsky. It has some good thoughts on the problem.

<http://www.joelonsoftware.com/articles/fog0000000054.html>

<comment><AUTHOR> wow thanks. I'm reading it now.

edit: i've done reading it and it seems that the solution is to provide some sort of backward compatibility so you would have a user base or (software base) on day 1. so essentially if i want to start a date site, i should flirt with random girls on the street on behalf on requests from the internet as a backward compatibility?

</comment></comment><comment><USER4> You need to either:

1\. Tap into existing communities that would be a good fit for your product that are already using other processes for transactions...

2\. Provide some utility to the eggs (or the chickens) that doesn't require the other party.

3\. Spend money on advertising to both sides.</comment>


Ask HN: What's the best programming book you've read recently? - <AUTHOR> <comment><USER4> "Peopleware" [http://www.amazon.com/Peopleware-Productive-Projects- Second-...](http://www.amazon.com/Peopleware-Productive-Projects-Second- Edition/dp/0932633439) , a lot of insights and ideas how to build great teams. Great to read for developers, team leads and managers.

"The art of multiprocessor programming", excellent book on parallel programming theory with code explanations: [http://www.amazon.com/gp/product/0123705916?ie=UTF8&tag=nirs...](http://www.amazon.com/gp/product/0123705916?ie=UTF8&tag=nirshavitshom-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0123705916)

<comment><USER5> I read (not all of it, maybe 50% of it) "The art of multiprocessor programming" a couple of years ago and I agree, its an excellent book. I have a handful of books on the topic and I find this to be my favourite.

<comment><USER4> If you have the list of books to read on the topic I would be happy if you share it. My next book on the topic will be [http://mitpress.mit.edu/books/programming-distributed- comput...](http://mitpress.mit.edu/books/programming-distributed-computing- systems)

<comment><USER5> The only ones I can think of off-hand are these two. The second one isn't really about parallel/concurrent/distributed programming per se, but rather about using Intels Threading Building Blocks - good book if that's what you want to do, but not very useful if not. The first book is interesting and covers a lot of ground (covering general techniques and algorithms as well as specific implementations with OpenMP, MPI and Java's facilities), but I liked Art of multiprocessor programming more, probably because it has a more beginner friendly teach everything from the very beginning approach.

[http://www.amazon.com/Patterns-Parallel-Programming- Timothy-...](http://www.amazon.com/Patterns-Parallel-Programming-Timothy- Mattson/dp/0321228111/ref=sr_1_1?ie=UTF8&qid=1400477708&sr=8-1&keywords=patterns+of+parallel+programming)

[http://www.amazon.com/Intel-Threading-Building-Blocks- Parall...](http://www.amazon.com/Intel-Threading-Building-Blocks- Parallelism/dp/0596514808/ref=sr_1_1?s=books&ie=UTF8&qid=1400477796&sr=1-1&keywords=intel+threading+building+blocks)

</comment></comment></comment></comment><comment><USER6> Stroustrup's "A Tour of C++" is a great overview of C++11 and modern C++. It's not very long and worth a read to see what's new in the C++ world. The audience is aimed at people who already know C++ but want to know what's new with the latest version. I've been doing a lot more with C++11 recently and am really impressed with the language--dare I say C++ is actually fun to use.

<comment><USER7> Just purchased this. I'm hoping it can make up for a year of not attending my c++ lectures, to learn enough for my exam in 1.5weeks.

<comment><USER6> I don't think it's going to help that much if you're new to the language. You probably want to cram something more beginner friendly like Thinking in C++: [http://mindview.net/Books/TICPP/ThinkingInCPP2e.html](http://mindview.net/Books/TICPP/ThinkingInCPP2e.html) It's a great book that helped me really start to grok C++ long ago when I was new to the language.

<comment><USER7> I'm pretty proficient in a ton of other languages, so I'm hoping I have a pretty good head start and will be able to follow the book, but I'll read Thinking in C++ in the meantime until my order arrives. Thanks for the suggestion!

</comment></comment></comment></comment><comment><USER8> I've really been enjoying The Joy of Clojure ([http://joyofclojure.com/](http://joyofclojure.com/)) -- note that there's a nearly-finished 2ed in PDF form if you buy the early access version.

I've also been reading Clojure Programming ([http://www.clojurebook.com/](http://www.clojurebook.com/)) to reinforce concepts from the above.

</comment><comment><USER9> Code Complete has pretty good bang per page, especially if you are beginner.

[http://www.amazon.co.uk/Code-Complete-Practical-Handbook- Con...](http://www.amazon.co.uk/Code-Complete-Practical-Handbook- Construction/dp/0735619670)

<comment><USER10> This is the most disappointing programming book I have ever had a misfortune to buy. If you ever read any UML / Rational Software books - this is right up there in terms of sucking all joy out of programming, putting a blue collar and tie on you and then strangling you to death with soul-less trivialization of the software creation process. Horrible, horrible book.

If you like K&R books, stay the hell away from Code Complete. But make sure to read it though if you think programming is a career.

<comment><USER9> I must strongly disagree. If you like K&R books, you will find a lot of useful tips like

if (!b) { a();} else { b();}

change to

if(b) {b();} else { a(); }

</comment></comment></comment><comment><USER11> "Programming Erlang: Software for a Concurrent World", by Joe Armstrong himself.

I have not read it completely, because the first chapters inspired me to start programming (in Erlang) and I haven't gotten back to the book yet.

<comment><USER12> I also read this earlier in the year. I used Erlang in a few projects at university, but never formally learned much about it beyond what I needed.

I invite you you to hop back into the book. I found it to be a fairly quick read for a technical book. The chapters are well motivated, and the code samples were well placed.

Since you have some additional experience with Erlang now, you might want to skip directly to the later chapters on libraries and frameworks, or on building real applications.

</comment></comment><comment><USER13> JavaScript: The Good Parts. Made me see JS in a much more elegant way. Coding JS is not trivial. I did use JS in webdev in general, and APIs. But really, I would have never known the mysteries behind it such as prototypal inheritance.

</comment><comment><USER14> I thought I knew how to write good Ruby code, but then I read "Practical Object-Oriented Design in Ruby". [http://www.poodr.com/](http://www.poodr.com/)

</comment><comment><USER15> Currently reading Programming Pearls by Jon Bentley. Interesting small case studies that gives insight on how to tackle problems and think about programming.

<comment><USER16> First time i see this one. Could be interesting ;-)

</comment></comment><comment><USER17> Clean Code: A Handbook of Agile Software Craftsmanship, by Robert C. Martin.

</comment><comment><USER18> The Soul of a New Machine. Fascinating documentation of Data General's development of the 32-bit Eclipse machine. Sorta programming, sorta hardware... back when the two were more tightly integrated.

<comment><USER19> I had the good fortune to work for Tom West after that book was written. He was, quite simply, the best.

</comment></comment><comment><USER20> Peopleware

pretty much the most important programming book a programmer who works with / in teams can / should / must read.

</comment><comment><USER21> "Programming in Lua", by Roberto Ierusalimschy. This is a gem of a programming book. Some of my favorite chapters: coroutines, metamethods, weak tables, threads and states. Similar in tone and clarity to K&R "The C Programming Language". I learn something new every time I flip through this book.

</comment><comment><USER22> As part of the MOOC course Paradigms of Computer Programming ([https://www.edx.org/course/louvainx/louvainx- louv1-01x-parad...](https://www.edx.org/course/louvainx/louvainx- louv1-01x-paradigms-computer-1203)) I read the initial parts of the book: "Concepts, Techniques, and Models of Computer Programming" (mitpress.mit.edu/books/concepts-techniques-and-models-computer-programming). The initial chapters provide a good approachable way to get started with functional programming. Though working with Oz (the programming language used in the book) gets some time to get used to, this is an excellent book. I am bit surprised that this book is not as well known, and probably I wouldn't have known about this book if not for the MOOC course.

</comment><comment><USER23> Refactoring by Martin Fowler. Extremely practical if you work with old and large code bases.

<comment><USER24> "Refactoring" is next on my list, but I started with "UML Distilled", and am currently working on "Design Patterns", partly in preparation for "Refactoring" (and "UML Distilled" was partly in preparation for "Design Patterns").

<comment><USER25> Suggestion : Invert the order. :)

Read Refactoring first than read Design Patterns(GoF).

<comment><USER26> There's a great book called Refactoring to Patterns which I would suggest after GoF (and just overviewing the Refactoring book)

[http://www.amazon.com/Refactoring-Patterns-Joshua- Kerievsky/...](http://www.amazon.com/Refactoring-Patterns-Joshua- Kerievsky/dp/0321213351)

</comment></comment></comment></comment><comment><USER27> I've been reading Real World Haskell recently and loving it. It does a fantastic job of blowing your mind while simultaneously showing you how to apply Haskell to real-world problems.

<comment><USER28> Actually I didn't like it at all. It's been a few years, but it totally put me off learning Haskell. Doing some small steps again now, but although I'm usually all for real world applications first (instead of doing the millionth factorial function) - but it did not make much sense to me didactically.

</comment></comment><comment><USER29> I recently went through the later chapters of The Little Schemer again. I still find it incredibly challenging and awesome. As many have said, this is a great book to teach you to think recursively.

[http://www.ccs.neu.edu/home/matthias/BTLS/](http://www.ccs.neu.edu/home/matthias/BTLS/)

[http://www.amazon.com/The-Little-Schemer-4th- Edition/dp/0262...](http://www.amazon.com/The-Little-Schemer-4th- Edition/dp/0262560992)

</comment><comment><USER30> Clean Code, by Robert Martin. Excellent book that dives in deep on how to write solid code. It's like having the ultimate code review in book form.

Shameless plug: I just finished writing the first in a series of books about Backlogs. Good backlogs can make programming a lot easier. Conversely, horribly formed backlogs can turn coding into a death march. [http://bit.ly/1fJd5Gg](http://bit.ly/1fJd5Gg)

</comment><comment> why-el Effective Java. A very succinct collection of wonderful practices and ideas on how to code great software that you can finish in a couple of days, even if you are on a working schedule. Don't mind the "Java" in the title; I read the book regularly and it applies to pretty much any language capable of some OO.

Check the table of contents, it will give you an idea of what to expect from the book.

<comment><USER31> I've got this right at the top of my wish list. Got a list of other books I gotta finish first though, lol:

Code Complete 2, The Web Application Hacker's Handbook, Algorithms in a Nutshell, and Code.

Not to mention an Arduino book - but I'll probably get Effective Java and read it first.

</comment></comment><comment><USER32> Not trying to sound cute, but The Elements of Programming Style by Kernighan and Plaugher (1974). Just read this last week during a day of plane travel.

It's all PLI and Fortran, with lots of GOTO being harmful examples, but surprisingly much of it is still relevant. It's a quick read and interesting look at some of the problems they had back then (and some that we still create plenty of today).

</comment><comment><USER33> The books on and around my nightstand:

\+ _Joy of Clojure_. A recent gift[card]. I put off learning Clojure because of it's more complex syntax. I'm both glad I did, and that I have this book now that that's the no longer the case.

\+ _ANSI Common Lisp_. Lisp was out of reach at the time when my younger self might have pursued computer programming, and realizing around two years ago how accessible it had become got me to download Lisp in a Box and then buy the used copy. Currently visiting, this book orbits in and out of the rotation with a cometary periodicity.

\+ _Art of Computer Programming: Volume 3, Sorting and Searching_ Twenty-five years ago or so I bought volume I and about 15 years I donated it to the community radio station's books sale [WMNF 88.5]. I spent about $25 dollars including shipping for used copies of the first three volumes from Amazon last year. Right now each is on a different floor. The proximate reason _Sorting and Searching_ is by the bed: I'm taking Algorithms I on Coursera and it is the first one that really dives into algorithms. A deeper reason is that Knuth always reminds me how much more there is to know - I'm getting better at the maths, but haven't learned MIX. Maybe one of these nights.

\+ _Structure and Interpretation of Computer Programs_ I bought a "used" copy from MIT via Amazon last year. It's staggering how much is really in it that I glossed over 'reading' the free online version. It's much better than I thought, and I find myself constantly referring to it or just reading a section. It's also a reference for the other Coursera course I am taking: Funtional Programming in Scala with Martin Ordersky.

The non-programming books are from the public library:

\+ _How Literature Works: 50 Key Concepts_. The sections are four to six pages and lightweight. Makes for something brief to read. It's the sort of book that I feel no obligation to finish.

\+ _Poetry of the First World War: An Anthology_ This book is actually why I mention the non-programming books. I don't read poetry, but I'd always seen people make a big deal about it, and there this was on the new book shelf. I see why the English make a big deal about Siegried Sassoon. I see why they make an even bigger deal about Wilfred Owen. It's potent and powerful and the bench of poets runs much deeper. It makes that war the last ancient one.

</comment><comment><USER34> "Concepts, Techniques, and Models of Computer Programming" by Peter Van Roy and Seif Haridi.

Also "The Reasoned Schemer", which has the same pedagogical style as the other Schemer books, but works around logic programming.

Both of those books are mind benders and I've gotten a lot out of them recently.

</comment><comment><USER35> Richard Bird, Philip Wadler - Introduction to Functional Programming [http://www.amazon.com/Introduction-Functional-Programming- In...](http://www.amazon.com/Introduction-Functional-Programming- International-Computing/dp/0134841891)

Richard Bird - Pearls of Functional Algorithm Design [http://www.amazon.com/Pearls-Functional-Algorithm-Design- Ric...](http://www.amazon.com/Pearls-Functional-Algorithm-Design- Richard/dp/0521513383)

Christian Queinnec - Lisp in Small Pieces [http://www.amazon.com/Lisp-Small- Pieces-Christian-Queinnec/d...](http://www.amazon.com/Lisp-Small-Pieces- Christian-Queinnec/dp/0521545668)

</comment><comment><USER36> A little more than just programming, but just finished Ilya Grigorik's new book, "High Performance Browser Networking" (available free online). I learned a lot about Javascript/HTML loading and execution that I had never even thought about.

</comment><comment><USER37> I've recently read The Passionate Programmer and was rather disappointed.

The book has a few very valuable insights. For the most part it reads like a series of blog posts from a slightly experienced developer.

<comment><USER38> It's like a fish to water nowadays, basically assimilated into the programming culture by now.

</comment></comment><comment><USER39> Doing Bayesian Data Analysis

Interesting topics: MCMC, Gibbs Sampling

F# for C# Developers

This book seems to leave lot out in order to simplify but good starting book nonetheless

TCP/IP Illustrated, Volume 1: The Protocols, Second Edition

I wanted to know what really "connection" means. This book has answer.

An Introduction to R

I guess everyone dealing with data should know R, right?

Here's my Amazon list with quite a few very interesting books collected over time: [http://www.amazon.com/gp/registry/wishlist/RXLC4WK1ZOJR](http://www.amazon.com/gp/registry/wishlist/RXLC4WK1ZOJR)

</comment><comment><USER40> I'm attempting some self-taught coding (my degree is in history), and after much dithering, have started with How to Design Programs (htdp.org). SICP is beyond me at this point, and I wanted to get a good grounding in general concepts and good design before jumping into some other more (theoretically lucrative)language.

HtDP is wonderful at what it does, and while perhaps a tad dry in writing style, it is, for me, a page turner in terms of engagement and presentation of new ideas.

</comment><comment><USER41> Physically Based Rendering by Pharr and Humphreys. Excellent book on modern ray tracing that is a literate program. It's an amazing piece of work (even won an oscar!)

</comment><comment><USER42> "C# In Depth, 3rd edition" by Jon Skeet. I had been falling behind on the new stuff added to .NET and C# and this is a good way to get back on the curve.

<comment><USER43> I'm half way through this and slightly disappointed with it. I thought there was too much material on upgrading from early versions that have been obsolete for a long time. Hopefully the second half is better.

</comment></comment><comment><USER44> Computer Systems: A Programmer's Perspective and NAND2Tetris: Elements of Computing Systems are the best books to learn the internals of computer hardware and solidify your understanding of how a computer works.

The Pragmatic Programmer - My all time favorite. Awesome book to learn best practices of various aspects in programming.

The Code Book: The Evolution Of Secrecy From Mary, Queen Of Scots To Quantum Cryptography, if you have a thing for cryptography.

</comment><comment><USER45> Effective Objective-C 2.0: [https://play.google.com/store/books/details/Matt_Galloway_Ef...](https://play.google.com/store/books/details/Matt_Galloway_Effective_Objective_C_2_0?id=qp4ZXAmGaoQC)

In the style of other "Effective Foo" books. Excellent overview of best practices for ObjC, it's the first book I hand new developers on my team.

</comment><comment><USER46> I have a few coming from Amazon

OpenGL Insights - Cozzi and Riccio

Game Engine Architecture (2nd Edition) - Jason Gregory

Programming: Principles and Practice Using C++ (2nd Edition) - <USER2>

</comment><comment><USER47> Not programming per say, but love Downey's ThinkOs (free): [http://greenteapress.com/thinkos/](http://greenteapress.com/thinkos/).

Am currently reading Think Complexity (also free): [http://greenteapress.com/complexity/index.html](http://greenteapress.com/complexity/index.html)

</comment><comment><USER48> Linux Device Drivers, 3rd Edition still not finished, but this is best book i have encountered for linux driver programming.

</comment><comment><USER49> Functional Programming in Scala.

It's not a book about scala, it just so happens to use scala as the language to teach you how to program functionally. I've read other books that purport to do the same, they end up showing a light sprinkling of functional concepts. This book goes much deeper, and is ultimately much more rewarding.

</comment><comment><USER50> Secrets of the JavaScript Ninja [http://www.manning.com/resig/](http://www.manning.com/resig/) has helped me understand some of the more interesting parts of the language (such as functions being first class objects) better.

</comment><comment><USER51> It depends heavily on what stage of your career as a programmer you are.

I strongly suggest most junior programmers I work with to read Effective Java and Head First Design Patterns. To me, it's a great combination to help you write code that's easy to understand and maintain.

</comment><comment><USER52> "Mining of Massive Datasets", by Jure Leskovec, Anand Rajaraman, and Jeffrey D. Ullman. You can get the PDF here:

[http://infolab.stanford.edu/~ullman/mmds/book.pdf](http://infolab.stanford.edu/~ullman/mmds/book.pdf)

</comment><comment><USER53> Not strictly programming, but been reading Information, a history, a theory , aflood. Been strugling to userstand what life would have been like before various aspects of storage/transmision would have been like.

Looking forward to when it hits Claude Shannon

</comment><comment><USER54> [http://en.wikipedia.org/wiki/Code:_The_Hidden_Language_of_Co...](http://en.wikipedia.org/wiki/Code:_The_Hidden_Language_of_Computer_Hardware_and_Software)

Really good introduction to computers from relays up.

</comment><comment><USER55> "More Effective C++" by Scott Meyers

While directed at the C++ crowd, I would recommend this book to any programmer, as it explains many interesting concepts and idioms that are not C++ specific.

</comment><comment><USER56> C++ Concurrency in Action, Practical Multithreading, by Anthony Williams

[http://www.manning.com/williams/](http://www.manning.com/williams/)

</comment><comment><USER57> Non-technical but some great concepts which can be adapted to programming: Thinking in Systems by Donella Meadows The Checklist Manifesto by Athul Gawande

</comment><comment><USER58> Working Effectively with Legacy Code, by Michael Feathers

<comment><USER43> What do you think of it? I've been considering buying this for a while.

</comment></comment><comment><USER59> Structure and Interpretation of Computer Programs (SICP)

</comment><comment><USER60> C Primer Plus and Expert C Programming. I wish there was a book similar to the latter that covered C99/11.

<comment><USER61> Have you tried C Programming: A Modern Approach? It is very good with C99 but there is no C11. My only problem is that it spends too much time for people who are new to C.

<comment><USER60> Not yet, I'll take a look - thanks!

</comment></comment></comment><comment><USER62> I recently got "Hackers and painters" by Paul Graham. I'm still reading but pretty cool so far.

</comment><comment><USER28> Modern Operating Systems by Tanenbaum, although it's more basics, still relevant for low-level stuff.

</comment><comment><USER25> Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman - <USER3> Hoover , Adewale Oshineye

</comment><comment><USER63> Computer Systems: A programmer's perspective

Great look at under-the-hood of what happens when a program runs.

</comment><comment><USER64> Have read over half of Learning Python by Mark Lutz (O'Reilly). A good read.

</comment><comment><USER65> I've recently started my way through SICP and Algorithms in a Nutshell.

</comment><comment><USER66> Effective Javascript.

<comment><USER31> Been reading this one on my Kindle app, but it seems very "entry level" so far. You know of any good Intermediate to Advanced JS books out there? I have Test Driven JavaScript Development by Christian Johansen that I've dug into a bit, but have yet to finish (it's got some more "advanced" stuff I guess, currying, etc).

<comment><USER67> Check out JavaScript Allonge[1] or JavaScript Enlightenment[2]

[1]: [https://leanpub.com/javascript- allonge/read](https://leanpub.com/javascript-allonge/read)

[2]: [http://shop.oreilly.com/product/0636920027713.do](http://shop.oreilly.com/product/0636920027713.do)

</comment></comment></comment><comment><USER68> The Little Schemer.

Fun to read, solidify knowledge of Scheme.

</comment><comment><USER69> Beginning Java EE7 is good, a refresher.

</comment><comment><USER70> Sql Antipatterns by Bill Karwin

</comment><comment><USER71> The Little Schemer

</comment><comment><USER72> "Practical Object-Oriented Design in Ruby. A Agile Primer" By Sandi Metz. I am not so much a ruby fan, but don't let the title decive you, ruby is just the tool (since it could use any other OOP language) to show what the book is realy about (OOP Design shown in the best way possible).

<comment><USER73> I think this book is a little too basic for anyone who's already studied any OOP. I'm no expert, but what I learnt from this could've been condensed into a blog post. I think it'd make a great introduction (a word that should be included in the title) to OOP though.

</comment></comment><comment><USER74> Last one was probably _Let Over Lambda_. One of the few programming books I've read cover to cover.

</comment><comment><USER75> TAOCP by Knuth (if you can get past the maths).</comment>


The $99 TouchPad Sale Overwhelms Ebay - <AUTHOR> http://techcrunch.com/2011/12/11/they-love-me-they-really-really-love-me/

<comment><USER2> I tried to sign up for the $150 TouchPad developer deal a few days before they stopped accepting submissions, but they never even responded.

<comment><USER3> Same here, it was through some channel called ViennaChannels.com [Sales- Focused Demo Programs for Mobile Device Manufacturers & Carriers]

I signed up, and was later told that they were out of devices, but later I got one (last one according to them).

I see that the ebay.com's site the $149 one is still for sale (the one I got).

I was able to cross-compile and run luajit on it, and creatonix (Tim Caswell) got even more stuff (but haven't tried it yet).

It looks like there is a whole "homebrew" society distributing lots of open source packages. It's called Preware.

</comment></comment><comment><USER4> A nice trick was that you could get one from ebay.ca or ebay.co.uk, since most people were hammering .com's servers.

</comment><comment><USER5> I attempted to get one but had no luck. I didn't even think of using ebay.ca like the commenter veeti mentioned.

</comment><comment><USER6> It truly boggles the mind that this tablet saw little interest at $500, $400, or even $300 (I finally got it when it was on sale for $300 at Staples), but bring it down to $100 and it sells out at iPhone/iPad speed.

Having an open-source webOS is great and all, but this shows just how mistaken Leo Apothecker was when he unceremoniously dropped webOS.

</comment><comment><USER7> give it 3-6 months and the current crop of android tablets will be outdated, and available for peanuts.

</comment><comment><USER8> got one, 16gb.</comment>


An Apple ISA is coming - <AUTHOR> http://adriansampson.net/blog/appleisa.html <comment><USER2> This has been stated before: LLVM Bitcode is architecture specific. It's dependent on the architectures ABI and can contain inline assembly. There are LLVM targets with corresponding ABIs that are nonspecific to architectures like PNaCL but Apple is not using them

Things Apple can do with bitcode: Produce binaries optimized for different ARM processors. Reoptimize with new versions of LLVM as soon as they are available. Use a big database of LLVM IR to tweak optimizations. Keep some optimizations secret and not even publish binaries doing them.

The biggest argument IMO that speaks against an Apple ISA is that they would have to rewrite tons of hand tuned assembly code.

<comment><USER3> Another thing they can do: it allows them to introduce new non-ARM-standard ops and immediately recompile the app store to take advantage of them.

Every now and then I see a new comparison of the Swift/ObjC dispatch assembly. Now imagine — that could be a single opcode. Or the dispatch table could get pinned to a particular cache. Or it could be other micro-optimizations that they are in a unique position to exploit with full control of the language, compiler and chip.

I have no idea how feasible these things might be or how much of a gain it would create, but they can look through their corpus of LLVM-IR and identify hot-spots where a new opcode would speed _everything_ up by some margin.

<comment><USER4> Good point, but remember Apple license the ARM architecture from ARM (the company), and they probably aren't allowed to deliberately ship partially- compliant ARM hardware.

<comment><USER5> Apple is much bigger than arm and could easily change the rules.

<comment><USER6> They may be smaller, but they have IP Apple needs now. Apple just can't do whatever it wants to just because it's big.

<comment><USER5> They could buy arm, or offer enough cash until they capitulate.

</comment></comment></comment></comment></comment></comment><comment><USER7> To understand Apple today you have to look to the past. Apple ended up being stuck with Motorola's inablity to deliver faster PowerPC chips. Whole product lines were delayed, or not possible. Effectively they gave control on when they could ship new product to a third party.

10 years later they are now in the same position with Intel. If Intel delays the next version of its product line by six months then Apple has to put things on hold. This is bad for a company like Apple as it could cause them to miss out on potentially lucrative periods (back to School, the Holiday season etc).

Ultimately I suspect in the very near term we will see Apple move off Intel, first for the laptops. LLVM IR would fit this strategy better than fat binaries as Apple would not have to wait until developers recompile. They can have the entire App Store available on day 1 of a product release.

<comment><USER8> And if a company with as much experience and expertise as Intel misses their ship dates, what on earth makes Apple think they can do better?

I could see an argument for cutting cost by eliminating the margin that Intel dictates... but even that assumes that you can find a third party to manufacture the chips at a rate that is low enough to both cover the IP Intel has in their chips, and the manufacturing cost itself.

<comment><USER9> Well, first of all Apple could do it and fail. They're done that before. They're confident/arrogant/audacious enough to try things that they can't pull off.

Also, they could take a two-pronged approach -- cherry-pick talent from Intel, nVidia, etc. and offer them the opportunity to leapfrog baggage from the past. How much of the difficulty of moving the x86 platform forward is a result of the ludicrous amount of cruft? Grabbing a few of the smartest people and narrowing your focus to an easier problem gets you a long way.

Apple has managed to outpace the entire industry (including Intel) with its customized ARM cores (getting to 64-bit over a year ahead of everyone, and take a look at benchmarks between Apple's Ax CPUs and rivals usually running at far higher clocks with more RAM and sucking more power), and it got there by cherry-picking talent, omitting stuff it didn't need, focusing on design, and treating fabs as a commodity.

Looks like interesting times ahead.

<comment><USER7> Broadwell slipped by several months meaning that Apple couldn't do their traditional pre Holiday refresh in 2014. I believe the Skylake chipsets that would allow Apple to switch to using USB-C for the Pros aren't available until next quarter meaning it's possible that Apple could miss another fall refresh.

Given that the holiday quarter is Apples best season you can probably make bets that they are at least exploring their options.

</comment></comment></comment></comment><comment><USER10> It is a common theme in computer architecture for someone to say, 'look I have an awesome new architecture all you need is a clever compiler to make it work'. None of them really pan out (other than in specific applications, you could argue GPGPU is as an example, though that appeared more by accident than by design).

Apple would need a very good reason to produce their own ISA. Sure they like to do many things in house but they don't do everything themselves. The resources required to produce and support a whole new ISA are a major investment, they're only going to do it if in the long run is cheaper than paying for an ARM architecture license. I just don't see a solid argument that a custom ISA and shiny new compiler would give them much (if indeed anything).

Whilst they may be shipping LLVM IR for the watch apps rather than ARM code I think this is just so they can target the compile for a specific processor. Each one has its own performance quirks and especially in such a power sensitive environment it would make sense to do specific targetting.

<comment><USER11> > The resources required to produce and support a whole new ISA are a major > investment

It's not that hard, really. With such powerful tools as LLVM, a new ISA can even be designed and implemented with all the tooling by a very small team.

What is hard in all this ISA business is the backward compatibility concerns. Once you're liberated from this, you're free to do whatever you like. They may want to experiment with a family of ISAs, maybe entirely incompatible, targeting different device classes (instead of a single ISA across the range).

Source: experience in the mobile GPUs design.

<comment><USER12> Apple is basically free of backwards compatilbiitly concerns, since they use LLVM and Xcode. They have previously required all new apps to be recompiled for the current version.

It won't be too long before Apps that have not been updated in 2 years start disappearing from the store-- that's all they'd have to do and the app makers would comply.

<comment><USER13> And Apple has a long and reasonably successful history when it comes to forcing developers to adopt new approaches e.g. PowerPC, Intel, 64-bit, LLVM, OSX.

</comment></comment></comment></comment><comment> geoff-codes I don't think this holds water at all.

The crux of the article is:

> ...one last gap remains in the middle of this stack of system exclusivity: > Apple licenses the instruction set architecture for its mobile devices from > ARM.

But Apple already not only designs the own SoCs independently already, they regularly add their own opcodes to the ARM instruction sets they license, as they see fit.

The alternative to _not_ licensing from ARM, even if they "invented their own ISA", would be to pay an exorbitant sum in royalties to ARM _and_ every other patent-holder whose technology they might dare use in their chip. So paying ARM for their technology in one go just makes the most economical/legal sense.

</comment><comment><USER14> It's widely disputed that LLVM bitcode is actually ISA-agnostic. There is a HN comment quoting Chris Lattner as saying that CPU independence isn't really the point of bitcode apps (I'd find it now but I'm on mobile). The thought is that it has a lot more to do with the ability to re-optimize.

<comment><USER15> I believe it's here: [https://news.ycombinator.com/item?id=9728162](https://news.ycombinator.com/item?id=9728162)

</comment></comment><comment><USER16> Though the arguments are interesting, I'm not convinced

Sure, the semantic gap exists. But ARM and x86 have evolved and have overcome a lot of difficulties.

People like to bash x86 but it has a big advantage: it's compact. ARM Thumb is compact but not so much.

Also remember how big the last 'new ISA' (Itanium) success was?

Compiler and processor front-end beat "perfect ISA" today

<comment><USER17> The reason other ISAs have failed to get traction is compatibility. They couldn't run any existing binaries, and everyone wanting to use it would have to develop and adopt new tools. But Apple don't care about interoperability and completely control the entire software tools and distribution stack from top to bottom. They don't have to ask anyone else to do anything at all that they aren't doing already. No previous ISA vendor has even been in that position. Not even IBM with their mainframes. Furthermore the architecture of LLVM decouples it from particular processor architectures in ways that previous compiler architectures didn't, greatly easing the migration process at a technical level.

But what's the benefit? Maybe a few percent speed/power efficiency boost? We've already seen that Apple will go to extraordinary lengths for a few percent improved performance, particularly when it comes to power efficiency. A few percent here, a few more there and soon you're talking an hour+ extra battery life.

I think this is highly plausible. There just doesn't seem to be any particular reason why they wouldn't do it, and plenty of reasons why they would.

<comment><USER18> > Furthermore the architecture of LLVM decouples it from particular processor > architectures in ways that previous compiler architectures didn't, greatly > easing the migration process at a technical level.

How is LLVM IR (which I am told is arch specific) different from GCC with RTL?

</comment></comment></comment><comment><USER19> > a traditional von Neumann ISA like ARM incurs a semantic gap; the > architecture wastes time and energy rediscovering facts that the compiler > already knew.

So thought the designers of Itanium too; it turned out that the compiler doesn't know _sufficiently_ much for an architecture like Itanium.

Were there any significant advances in compiler technology since then that would make it worthwhile to experiment with a new ISA?

</comment><comment><USER20> This seems a bit like click bait. It holds no substantial information. They might as well have summed up the article with, One day, apple will make their own processor. That's all it says.

<comment><USER21> To be fair, It says a wee bit more, it says apple has an llvm IR layer and a semantic gap exists with arm -> so it'll be both easier and necessary to create their own ISA layer.

I'd really like to know the details behind the semantic gap, though. That was annoyingly vague and really is the premise of the entire argument.

</comment></comment><comment><USER22> I don't think they'll produce their own ISA. They have an architectural license from ARM, so why bother.

But, Intel doesn't exactly produce chips that are helpful to Apple. Since Apple switch, Intel has gotten rid of third-party chipsets. This removed a lot of customization options and basically made life easier for Intel since they produce a fixed set of chips and you have to take them. Also, Intel's market differentiation of chip features probably doesn't help.

Apple wants to provide a custom experience, and Apple building their own PC- class ARM chips will allow that.

[edit: also Intel's paying people to produce Macbook Air clones probably didn't help]

<comment><USER23> It will never happen. There isn't an ARM chip out there that could handle the x86 emulation needed to move off of the platform. The only reason Apple was able to move off of PowerPC is because they were able emulate the ISA on x86.

<comment><USER22> I don't think that will be the limiting factor. I can see Apple saying the new machines will run only newly compiled software.

On that note, I get the feeling Bootcamp for ARM Macs would be interesting since it would be an ARM version of Windows.

<comment><USER24> The last time Microsoft made an ARM version of interactive/desktop Windows (Windows RT for the Surface/Surface 2), it didn't support legacy Win32 apps (native or x86 emulated). It was a huge flop; Win32 apps are still the overriding reason why anyone runs Windows.

And now that Intel has gotten its act together with low-power SoCs, I don't see desktop Windows coming back to ARM any time soon.

(yes, there is Windows 10 for ARM but only for IoT platforms, it doesn't support graphical apps)

<comment><USER22> The Windows RT Surface was a big flop for a lot of reasons. Telling developers it had an iPad store model when the x86 version didn't was probably a bigger problem.

</comment></comment></comment></comment></comment><comment><USER25> I'm read this wondering if the author had any remembrance or understanding of the original CHRP/PReP fiasco ([https://en.wikipedia.org/wiki/AIM_alliance](https://en.wikipedia.org/wiki/AIM_alliance)). That was a painful time for Apple. Given the nature of how ARM operates, and the fact that Apple has has a full ARM license (so could, at their leisure add special sauce in the instruction set if needed) that they would do a new ISA, they already did, x86-64 => ARM. The question for me is whether or not their desktop/laptop series moves that way or not. I've said for years a 12" MacBook Air running IOS would put a huge dent in the Chromebook market, and a 12" ARM based Air running IOS? Well that would be a pretty obvious move to me.

</comment><comment><USER26> This article points to another bit of the technology stack that Apple doesn't own - LLVM IR.

LLVM is open source and therefore doesn't require licensing unlike the ARM Instruction Set, but it's another thing they don't perfectly control and they're happy with that.

Developing a new ISA would be extremely expensive, and they'd have to have a really good reason for doing it. The post doesn't suggest why it would be beneficial, merely extrapolates a pattern.

<comment><USER27> According to Wikipedia Apple hired Chris Lattner, one of the original authors of LLVM, in 2005. ([https://en.wikipedia.org/wiki/LLVM](https://en.wikipedia.org/wiki/LLVM))

So they don't own it, but they do employ some of the most knowledgeable developers of the project. They almost certainly have control over the direction it takes, and could easily develop features behind closed doors.

</comment></comment><comment><USER28> Apple has owned part of ARM holdings as part of a joint venture between them and Acorn for decades now. That was one of the first pieces of the widget they had. Joke is on everyone making phones and servers: you are paying Apple already.

From Wikipedia:

"The company was founded in November 1990 as Advanced RISC. Machines Ltd and structured as a joint venture between Acorn Computers, Apple Computer (now Apple Inc.) and VLSI Technology."

<comment><USER29> Apple sold their remaining stake in ARM back in 2003.

[http://appleinsider.com/articles/13/08/12/iphone-patent- wars...](http://appleinsider.com/articles/13/08/12/iphone-patent-wars- apples-11-billion-arm-injection-ignites-a-mobile-patent-race)

</comment></comment><comment><USER30> I can't see this as a definitive sign that Apple are going to introduce a new ISA. Instead, this gives them flexibility. They can switch ISAs (e.g. to a new ARM revision, it doesn't have to be an Apple-specific one though) without authors having to recompile their code for all platforms. It also allows Apple to support multiple ISAs without code bloat - the app store can download the correct binary to your phone, just like they now can send only the correct size images.

I don't know how abstract the LLVM IR is - can you take IR and compile it to two wildly different ISAs, (say) x86 and ARM, and get full optimisation on both? Or is it more limited, e.g. allowing you to compile to ARM version x and ARM version y (e.g. if version 'y' supports some new SIMD instructions).

<comment><USER31> LLVM converts your input language into the intermediate representation (LLVM IR) with a frontend. Then, a backend takes IR and spits out code for an ISA.

IR is ISA agnostic. Compiling the same code to x86 and ARM will have the same IR, it's only the backend step that's different. Thus, of course you can take IR "meant for ARM" and compile it to "x86" and get full optimisation. The IR isn't meant for ARM anyway, IR is just IR.

<comment><USER10> > Compiling the same code to x86 and ARM will have the same IR

This is incorrect. Clang has specific code paths (producing different IR) for x86 and ARM, specifically around calling conventions but I'm sure there are more.

</comment></comment></comment><comment><USER32> I think the Mill team is a good acquisition target for Apple... Apple could swiftly switch their whole stack over and gain remarkable benefits. I can't think of another company that would even be able to switch to the mill line.

</comment><comment><USER33> Given the effort put into engineering support for bitcode in iOS 9, it's clear that the processor's instruction set is definitely going to change at some point. The only question is when. I wouldn't be surprised if these new processors were unveiled about 8 and a half hours from now.

<comment><USER34> >I wouldn't be surprised if these new processors were unveiled about 8 and a half hours from now.

I believe that we will see the new processor architecture in the next Apple Watch, not the next iPhone. I think A9, that will be unveiled later today, will be an improvement over A8 but it will not be a radical improvement and will not contain a new ISA. It will have improved ARM cores.

Apple also doesn't require bitcode for iOS apps right now. They suggest you add them but don't require them. They're required for watchOS apps.

Once Apple starts requiring bitcode for iOS, within a year or two you can expect some radical Apple CPUs for iPhone/iPad.

</comment></comment><comment><USER29> Apple doesn't want their own ISA. MIPS was going for a song just a couple years ago and Apple decided not to buy. That was the best shot they'll have at their own ISA (they could go with RISCV, but they wouldn't own it).It is my belief that they got what they wanted by forcing ARM to switch to the ARMv8 ISA.

New microarchitectures take 4 years or so to design. ARM announced the new ISA in 2011 and didn't have a shippable product until 2015 which is very typical. All the other implementers (eg. Qualcomm) have also not been able to ship until now (Qualcomm's custom Kryo doesn't hit until later this year). Apple shipped a better product in 2013 than A57 is today (ARM doesn't catch up until A72 later this year). To my knowledge, a licensee had never shipped a new ISA before the ISA designer up to this point. How did they get a chip designed, validated, tapped out, produced, integrated, and shipped out in 2 years?

I believe that Apple looked into purchasing MIPS or designing a custom ISA, but was put off by the costs and headaches associated with moving ISAs (having already done this with the change from POWER to x86). Instead, they design an ISA that is incredibly close to MIPS and start implementing a micro- architecture. Once they reach the stage where they must make a decision about which ISA, they tell ARM to use their ISA or they will move to MIPS. This head-start also

ARM is already somewhat threatened by Android having first-class support for MIPS. Having such a big player switch would be extremely threatening to them. The result would be an immediate caving. ARM would need to publish the ISA, but Apple would have a couple year head-start on implementing it (this head- start also puts Apple in a good competitive position relative to Android phone manufacturers). The rest is observable history.

This may not accurately represent what really caused this series of events, but it does explain why Apple got a good chip out before ARM could release a bad one (ARM couldn't even get a smaller, easier chip out the door). It also explains why all the other chip companies hint at their surprise at Apple's early launch.

</comment><comment><USER35> Getting rid of accumulated cruft would simplify decode logic. Customize it for iOS. Siliconize common functions.

Apple doesn't have to worry about standards, backcompatibility or adoption. If they have noticed unneccesary inefficiencies, they can fix them.

</comment><comment><USER9> Very insightful little post. In theory Apple could start evolving their ISA over time alongside everything else because LLVM gives them an abstraction layer. (Everyone else could do this too of course.)

</comment><comment><USER36> I'm pretty certain that lots of folks here are looking at this from an unproductive perspective.

Robert Colwell from DARPA presented a talk at HotChips 2013 which was focused on post 'Moore's Law' technologies and he brings up specialized ISAs.

Looking at the potential of Apple releasing chips with new ISAs from this perspective seems to me to make a lot more sense (to me at least).

[https://www.youtube.com/watch?v=JpgV6rCn5-g](https://www.youtube.com/watch?v=JpgV6rCn5-g)

</comment><comment><USER37> Thought provoking, but I disagree with pretty much every conclusion. If there is anything they _really_ need they can likely get ARM or Intel to put it in there, so building an ISA from scratch isn't going to gain them much. It's the same reason why they aren't going to become a cell-phone carrier even though that's another part of the vertical stack that they could try to get into: the cost/benefit makes it not worth it.

</comment><comment><USER38> This "get freedom from binary compatibility by shipping binaries as compiler IR" concept is a venerable one and has been done many times with VLIW machines:

See here, [https://scholar.google.com/scholar?hl=en&q=A+Technique+for+O...](https://scholar.google.com/scholar?hl=en&q=A+Technique+for+Object+Code+Compatibility+in+VLIW)

(Not to mention earlier examples like AS/400, P-code etc)

I think the Mill was doing this too?

</comment><comment><USER39> The key sentence is: "the [current] architecture wastes time and energy rediscovering facts that the compiler already knew."

If Apple does something here it's going to be for the watch, not Macs. Pushing the envelope of efficiency for the watch is where it becomes worth it to make this kind of (otherwise insane) investment. It's also a relatively simpler stack, so more feasible.

</comment><comment><USER40> In case you were wondering, like I was: [http://google.com/search?q=what+is+an+isa](http://google.com/search?q=what+is+an+isa)

</comment><comment><USER41> trying to understand a bit more about bitcode concept. Since a developer submits a bitcode for apple watch, does that mean he can't optimize his own app for performance?

FWIK, on android you can still optimize your app at assembly level and i think that's what motivates developers at times. Remember the iphone camera high speed shot app, that was hand coded to be fast on iphone.

<comment><USER42> Bitcode can contain inline assembly still. Additionally, bitcode is significantly more tied to the target architecture than the author is assuming.

</comment></comment><comment><USER43> We'll see an Apple GPU IP in iPhones/iPads before a new ISA.

</comment><comment><USER44> Why didnt Apple just ask authors to submit source code?

<comment><USER45> Many developers see Apple as a competitor, and Apple has had a long history of putting their platform's developers out of business. For example, iTunes destroyed the market for music library software.

</comment></comment><comment><USER46> LLVM "owned" by Apple? Can't really "own" open-source.

<comment><USER11> To some extent, it does own it. Ever tried to push even a mildly controversial patch to LLVM or Clang upstream? If Apple guys are against it, it's a full stop, no matter how many other parties are interested.

And their reasons to be against a particular patch are often as simple as that it'll break compatibility with their _internal_ , _unpublished_ changes to LLVM.

Learned it the hard way...

<comment><USER47> Chris Lattner is the "Apple guys" now, so..

</comment></comment></comment><comment><USER48> For Apple to develop an ISA they would have to develop a CPU. Something they don't do inhouse.

Up until now the CPUs have been designed by ARM. Cores like Swift for example were not developed at Apple, but rather at ARM.

The likelihood of ARM releasing a chip into the wild with a non-ARM ISA is not all that great, since the ARM ISA is what ARM makes all of its living from.

Until the day where Apple is capable of creating a CPU by themselves there will be no Apple ISA.

<comment><USER49> _For Apple to develop an ISA they would have to develop a CPU. Something they don 't do inhouse._

Apple owns PA Semiconductors which employs some of the smartest and most experienced CPU designers in the business.</comment></comment>


Ask HN:  Looking for a guide to build a PC - <AUTHOR> I have always put together my own computers, because I can buy only what I need and don't have to pay markup for a full system.  I really don't enjoy following every PC hardware trend.  Historically, every few years, I would pull up the system guides from Ars Technica and buy all the parts for one of their systems.  It appears that this guide has gone away and the closest thing I can find is a ton of articles from Tom's Hardware which don't really compare.
Is there anything online that just tells me what to buy.
I'm looking for the equivalent of a friend that keeps up on all the hardware trends that can tell me what parts he would buy if he had $500 to spend. <comment><USER2> Your profile doesn't have a contact e-mail address. Drop me an e-mail at (my username) at gmail.com if you'd like, because I have some interest in discussing this a bit.

I had begun working on a site that tracks current hardware trends, pricing, shopping, and recommendations but I haven't looked at the project in a while. If anyone is interested in collaborating on something like this, please feel free to contact me as well.

<comment><USER3> There's probably significant value in building something that works like a DELL build your own PC tool, but pulls in components from all the sites over the net, then puts together the shopping cart for you:

1) Takes you through each component choice: memory, case, cd/dvd, hd,etc.

2) As you choose the size for each one. 1tb hd? 8gb of ram?, it pulls together the lowest price, and sets up the shopping cart for you.

Problem I see- getting orders from multiple vendors.

<comment><USER2> Roughly what I had in mind - along with other shopping options, such as (mentioned by the OP) "what is the best computer for application X for $Y?"

</comment></comment></comment><comment><USER4> a) <http://www.anandtech.com/tag/guides> has guides that are updated frequently and are pretty good. b) You can also head to www.hardforums.com and get recommendations from techies themselves. People on hardforums are extremely helpful and knowledgeable.

<comment><USER5> This. Also look for the roadmap articles and head to head comparison articles:

<http://www.anandtech.com/tag/cpus>

And there are usually head to head comparisons for each generation of new components:

<http://www.anandtech.com/tag/mb>

<http://www.anandtech.com/tag/gpus>

<http://www.anandtech.com/tag/memory>

</comment></comment><comment><USER6> In that price range?

ASUS P7H55D-M EVO ([http://www.newegg.com/Product/Product.aspx?Item=N82E16813131...](http://www.newegg.com/Product/Product.aspx?Item=N82E16813131625))

Intel Core i3-550 ([http://www.newegg.com/Product/Product.aspx?Item=N82E16819115...](http://www.newegg.com/Product/Product.aspx?Item=N82E16819115065))

OCZ 4GB (2 x 2GB) 240-Pin DDR3 SDRAM DDR3 1600 ([http://www.newegg.com/Product/Product.aspx?Item=N82E16820227...](http://www.newegg.com/Product/Product.aspx?Item=N82E16820227507))

Western Digital Caviar Green WD10EARS 1TB ([http://www.newegg.com/Product/Product.aspx?Item=N82E16822136...](http://www.newegg.com/Product/Product.aspx?Item=N82E16822136490))

</comment><comment><USER7> What's wrong with the articles at Tom's Hardware like "System Builder Marathon, June 2010: $550 Gaming PC" - [http://www.tomshardware.com/reviews/cpu-gpu- overclock,2659.h...](http://www.tomshardware.com/reviews/cpu-gpu- overclock,2659.html)

I found it very clear and informative. They also have $1000 and $2000 guides.

</comment><comment><USER8> It's right in front of you, everywhere, even at the supermarket -- MaximumPC magazine, in print and online. It's all there, building machines from $500 to $3000. I'm building a new one right now and picking up all the hints that the experience people will share in their articles even though I've done it many times before.

</comment><comment><USER9> The Ars Technica guide is still there. Here's the most recent one: [http://arstechnica.com/hardware/guides/2009/10/ars-system- gu...](http://arstechnica.com/hardware/guides/2009/10/ars-system-guide- october-2009-edition.ars)

<comment><USER10> That Ars article is 9 months old and there have been no postings in the ars hardware guide section since January. Since then, Intel updated its product line with i3/i5/i7, so I think the poster is right to ask for a different source.

</comment></comment><comment><USER11> This book might be of interest to you: [http://www.amazon.com/Elements- Computing-Systems-Building-Pr...](http://www.amazon.com/Elements-Computing- Systems-Building-Principles/dp/026214087X)

</comment><comment><USER12> this will certainly help you

[http://www.makeuseof.com/tag/the-idiots-guide-to-building- yo...](http://www.makeuseof.com/tag/the-idiots-guide-to-building-your-own- computer/) (MUO)

</comment><comment><USER13> thank u so much i wanna retweet this.</comment>


Show HN: Free India Mutual Funds API - <AUTHOR> https://www.mfapi.in/ <comment><USER2> With free things, I'm usually sceptical, if it's okay, what are your intentions behind it and future plans, can I relay on them for long term.

<comment><AUTHOR> Developer here. The cost of running this api is very minimal. Also later I may sell technical indicators for mutual fund. But API will always be free. You can rely on it</comment></comment>


ThreadThat.com - A New Way to Communicate - <AUTHOR> http://www.threadthat.com

<comment><USER2> As video starts straight off with describing features of using "threads", I am left wondering: what is a "thread"? You are introducing new terminology without defining what it is.

Give me a one liner at least. What problems does a "thread" solve? Don't list features, let me know what makes this different over email.

<comment><USER3> <http://www.threadthat.com/FAQ.aspx#QB57>

It's linked from the front page.

</comment></comment><comment><USER4> Uh... well.. it looks like a remake of Google Wave with Google Docs access and SSL. How is this "a new way to communicate"?</comment>


Ask HN: An acceptable cross-platform GUI toolkit? - <AUTHOR> It's interesting but disappointing that there's no standout "winner" among desktop GUI toolkits. Among other things, devs want to write software that runs on their favorite GNU/Linux distribution, but that also runs nicely and is easily installed on MS Windows and Mac OS X. Ideally there would be an API that abstracts over each platform's GUI toolkit, giving native look-and-feel from one code-base.
I came across this old thread on the topic: https://news.ycombinator.com/item?id=423119 and there didn't seem to be an agreed upon solution.
Have things improved in the last 3005 days? <comment><USER2> Probobly qt if you are anti-electron</comment>


Ask HN: How can I determine what my salary should be? - <AUTHOR>

I am working in the Bay Area as a network engineer and will be looking for a new position soon. However, I have relatively few contacts in the same field as I am and it is difficult for me to gauge what my salary should be. Are there any accurate tools for this?<p>I am a network engineer, cisco CCNP certified, about 10 years of experience and also have somewhat senior unix, linux and windows skills... <comment><USER2> Salary.com has reasonably good data that I have found to be at least directionally accurate.

</comment><comment><USER3> Try Glassdoor.com</comment>


Show HN:  Launching my humble site, attachcache.com - <AUTHOR>

Hello,
I've been hacking on a site off and on since early 2010, and now I'm totally out of motivation and ideas, so I'm throwing up my hands (and a URL!) and hoping for some feedback.
This started out as a 100-line python script and grew to something more ambitious.  I built the site to scratch my own itch, and because I had a hunch that it might be useful to other people, but now I'm at a technical/spiritual impasse.
The basic idea is to mirror a Gmail account's attachments, and make them instantly searchable/sortable.  The original idea was to provide a single email address per user account which can accept and parse attachments (i.e., via forwarding), but I found myself gravitating toward sync.  So both sync and email forwarding are currently supported, but I'm not sure how stable it will be under load (or any part of the site, for that matter).
I'm really interested to know if anyone has ideas for more features (I have a few of my own), and also whether you think there is a market for this site.  There are definitely bugs, so caveat emptor:
https://attachcache.com
Please try it out and let me know what you think.
Thanks!
Noah <comment><USER2> wouldn't give you access to my gmail, but the forward seems useful. I already use google docs to index all my documents. I open the attachment in docs, save it and gets indexed. Just wondering in this case whats the benefit to using your service ?

<comment><AUTHOR> Security is definitely a hurdle, but I don't think it's insurmountable.

The main benefit to using Attachcache is greater automation. It sounds like you're doing work to get your attachments filed away. All that opening, closing, context switching adds up over time.

With Attachcache, you can either set up a Gmail "has:attachment" filter to be used in conjunction with Forwarding, or just use Sync. After you've done one of those 2 things, it's a totally hands-free solution:

<https://mail.google.com/support/bin/answer.py?answer=7190>

Also, Attachcache Sync is retroactive -- it can mirror my 2k+ emails and 8k+ attachments going back to 2006 in about 10 minutes. Doing this by hand would take a long time.

Hope that explanation helps, and thanks a lot for your comment!</comment></comment>


X-No-Wiretap - <AUTHOR> http://antimatter15.com/wp/2013/09/x-no-wiretap/

<comment><USER2> I remember the "American Bit" or similar that was mentioned in Ars comments.

</comment><comment><USER3> I assume this is a joke, but really though, interesting concept.

</comment><comment><USER4> Would terrorists really abstain from forging this out of fear of penalty for purjury? And why would I give up all my anonymity on the Internet just to prevent the NSA from accidentally capturing my traffic?

<comment><USER5> It's satire.

<comment><USER6> It's a double satire, actually. The obvious level is the infeasibility, in the good old style of [http://tools.ietf.org/html/rfc3514](http://tools.ietf.org/html/rfc3514) `Evil Bit'.

At the other, darker and more nefarious level are the proposals of national electronic ID, being put forth every once in a while. A government-issued ID would be _the_ mandated ID for official and semi-official transactions. It's easy to imagine that any communication not signed with such ID would be subject to extra scrutiny, and possibly treated as exempt from legal protections.</comment></comment></comment>


Top mistakes in handling website images and how to solve them - <AUTHOR> http://cloudinary.com/blog/top_10_mistakes_in_handling_website_images_and_how_to_solve_them

<comment><AUTHOR> This blog post details solutions to common mistakes developers and designers make when handling images on their web sites. Failing to address these issues can result in a negative effect on user experience, website performance and bandwidth costs.</comment>