Sony's next-gen application platform built on Objective C/GNUStep - <AUTHOR> http://snap.sonydeveloper.com/pages/about/ <comment><USER3> Honestly I always considered Objective-C to be one of Apple's secret weapon. Both higher _and_ lower level then Java. Objective-C stays closer to the spirit of Smalltalk yet presents no hoop jumping when you need the performance of C.

That, and Cocoa was not designed by morons - protocols and delegation, _not_ inheritance, rightfully rule the day.

<comment><USER4> I prefer to think of it more as "this language has all the memory safety of C combined with all the blazing speed of Smalltalk."

I'm trying to like Objective-C but I don't. It feels like coding simultaneously in two different languages and you're never quite sure which one will be less painful to use.

It makes you write statically typed code, but you still can't figure out what methods a class has in the IDE. On top of that half of a protocol usually doesn't need to be implemented but you have no idea which parts, and the IDE again can't just fill it out for you. I find I spend more time looking through documentation and copying interface signatures than coding. It has some kind of 'automatic memory management' but it seems barely better than that of C. On top of that if you get a compiler error it usually points you to a piece of code that has nothing to do with the actual error. I'm sure Objective-C was impressive in 1986, just like Java was in 1994, but it's 2010.

<comment><USER5> > you still can't figure out what methods a class has in the IDE.

Maybe I don't understand what you mean but isn't that just an XCode auto- completion feature? Do you mean you can't see which methods belong to the class and which are inherited?

> It has some kind of 'automatic memory management'

Initially I was not too impressed by the alloc/retain/release/autorelease parts of Obj-C but now that I grok the concept well, I think it's awesome. I'm only coding for iOS devices but my understanding is that for OSX, there is a stable GC system. On iOS, you manage the memory yourself. I would have liked to not worry about memory at all but it's not a big deal after all. If you alloc/copy something, make sure you release it.

<comment><USER4> I mean the intellisense (autocomplete + docs + method signature) in xcode blows chunks compared to Visual Studio or even Eclipse.

Lots of things individually in Obj-C/Xcode are minor annoyances, but when you add them all together it's a very annoying toolchain. Comparing the UI/Polish in Apple products to Microsoft products, I figured that XCode would be one of the best dev environments ever. I think it's one of the worst.

It's not that any of the issues are insurmountable, I'd just rather not deal with them.

<comment><USER6>
        I mean the intellisense (autocomplete + docs
        + method signature) in xcode blows chunks
        compared to Visual Studio or even Eclipse.

That last sentence left me puzzled, seeing as how eclipse has much better "intellisense" for java than VS does for c++ & c# (at least out of the box - resharper brings it close to eclipse-levels with c#).

<comment><USER7> Agree 100%.

And if for whatever reason Resharper isn't available to you, then check out the Productivity Power Tools. They'll take you in the Eclipse direction. Not all the way, mind you, and they're buggy, but it's helpful nonetheless.

</comment></comment></comment></comment></comment></comment><comment><USER8> This seems like a great move superficially. Tons of dev's know Cocoa thanks to iOS, and the language and compilers are open.

It will be interesting to see transition difficulty from one implementation to the other.

At the very least, Linux is going to get a serious push for GNUStep, and a ton more dev's if it works out.

<http://fireballed.org/linked/2010/11/24/snap/>

EDIT: Site's nuked for me. Main page cache from the fireballed.org site:

 _Sony's Networked Application Platform is a project designed to leverage the open source community to build and evolve the next generation application framework for consumer electronic devices.

The developer program gives access to a developer community and resources like SDK, tools, documentation and other developers.

The foundation upon which this project is base comes from the GNUstep community, whose origin dates back to the OpenStep standard developed by NeXT Computer Inc (now Apple Computer Inc.). While Apple has continued to update their specification in the form of Cocoa and Mac OS X, the GNUstep branch of the tree has diverged considerably.

The GNUstep core libraries strictly adhere to the OpenStep standard and OPENSTEP implementation. They consider changes and additions to their API only under the following circumstances:

They add methods and classes, either from Cocoa or their own extensions, if they add substantial value and don't interfere with OpenStep and/or Cocoa compatibility. They generally don't remove things unless there is a clearly better implementation in newer Cocoa API Where there is a real problem with a change, they will attempt find a technically superior work-around. In rare cases, this might involve a change in the original OpenStep API

We depart somewhat from the GNUstep adherence in that our goal is to thoroughly modernize the framework and optimize it to target modern consumer electronic (CE) devices. These modern conveniences include such features as touch displays and 3D graphics._

<comment><USER9> I'm sure they aren't writing another phone OS, but what devices exactly are they targeting? TVs, set-top boxes, MP3 players?

I loved the hardware of a Sony MP3 a bought a couple of years ago but it was ruined by absolutely atrocious syncing software. I hope this means they open up their interfaces a little more and let other people integrate with their products.

<comment><USER10> PlayStation 4. It's a Good Thing, but I've been overly optimistic about Sony adopting a policy of greater openness before. IIRC devices classed as computers incur lower import charges in the EU than devices classed as entertainment accessories (ie games/toys). Hence Linux on PS2, PS3, and...?PS4? So far, this has been something of a letdown after launch.

<comment><USER11> > Sony adopting a policy of greater openness

Sony had, a long time ago, a family of Unix workstations. At that time, those systems were called "open" in the sense that they played well with other systems over documented protocols.

</comment></comment></comment></comment><comment><USER12> wow. wouldn't have guessed this would happen in a million years.

we are all well aware of apple's successes in the last few years, but they all seemed to be happening in their own little walled-off corner of the world. it's typically apple's tech versus the rest of the industry. now here's a sign that apple's influence is being felt at even deeper levels.

i guess webkit was another sign of this, but that doesn't seem as stark as some other company adopting objective-c.

<comment><USER13> WebKit (and KHTML) is written in C++.

I don't think it had any influence on this decision.

<comment><USER14> WebKit most probably did not have any influence here, but was mentioned because WebKit in the past, like "Cocoa/Objective-C" in this instance, is being used elsewhere. Hence, Apple's technologies are influencing adoption in the industry (yes, gnustep is not from Apple but for the most part, Cocoa is a distinctively Apple technology).

</comment></comment></comment><comment><USER15> This is a great coup for GNUStep, back in 2006 when Greg took over as maintainer he posted a blog entry about future plans. Lots of people on slashdot pretty much mocked him and the project.

[http://tech.slashdot.org/story/06/12/26/0342200/GNUstep- Proj...](http://tech.slashdot.org/story/06/12/26/0342200/GNUstep-Project-Gets- New-Chief-Maintainer)

ie: "by Psychotria (953670) ...I think this dude is a complete moron..."

Looks like Greg proved them wrong. As they say: "Living well (or rather: doing well in this case) is the best revenge."

</comment><comment><USER16> Site says "SNAP development is currently on hold" (<http://snap.sonydeveloper.com/>). Dead on arrival?

<comment><USER17> Do you think they may have run into legal issues with Apple once news of this project started to spread?

<comment><USER16> Unlikely, since they're based on GNUStep.

<comment><USER17> GNUstep being more or less a re-implementation of Cocoa (and prior to that OpenStep). I'm not suggesting any copyrights have been infringed upon (indeed, I'm an avid user of GNUstep), but I always wondered if GNUstep would fall foul of the same kind of patent threats that Mono detractors seem to feel it is at risk from if it ever gained commercial traction. In fact, Apple has already made legal threats against manufacturers of Android phones, Android having nothing to do with Cocoa or Cocoa Touch.

</comment></comment></comment></comment><comment><USER18> Interesting--they're basing the 2D graphics on Cairo, which is probably the best choice available in the OSS world.

<comment><USER19> I'm too old - when I read this my first thought was "Microsoft's stillborn 90's project?"

</comment></comment><comment><USER20> What's especially interesting about this is that Steve Jobs modeled so much of Apple on Sony. Interesting to see things work the other way around.

<comment><USER21> First time I hear about that. Source?

<comment><USER22> Jobs was reportedly greatly influenced by Sony's late-70s/early-80s design sense, especially wildly popular consumer products like the Walkman. This book has a brief mention of Apple sharing a building with a Sony office in 1977, though I could've sworn I've seen a longer discussion somewhere: [http://books.google.com/books?id=W4_P8LDZOmAC&pg=PT38](http://books.google.com/books?id=W4_P8LDZOmAC&pg=PT38). I think Jobs has actually said somewhere that the iPod was intended to be the "Walkman of the 21st century".

</comment></comment></comment><comment><USER11> I think the best thing here is that GNUStep is GPL - any improvements - <USER2> there will be many - bringing it to the same functionality level as Apple's equivalent will be also GPL'ed and open for all.

<comment><USER23> Do you know if this will have any implications for applications built on it (will they be forced to use GPL)?

<comment><USER24> GNUstep is actually licensed under the LGPL, so applications that link against GNUstep libs are not required to be similarly licensed. If GNUstep were GPL, however, the app would also need to be GPL'ed.

This is how Trolltech used to charge money for commercial use of Qt. Qt was dual-licensed under the GPL and a commercial license, so GPL'ed software could freely use the library, but non-GPL software would have to pay for the commercial license.

<comment><USER11> Oops... Correct. GNUStep is LGPL.

I should start writing * GPL as I do with * BSD

As for linking proprietary code do GPL'ed libraries, the license is not explicit. However, according to Larry Rosen ([http://en.wikipedia.org/wiki/GNU_General_Public_License#Poin...](http://en.wikipedia.org/wiki/GNU_General_Public_License#Point_of_view:_linking_is_irrelevant)) linking, even statically, does not make a derived work (that would be subject to being GPL'ed by accident). Also, the GPLv3 has some different wording. I understand the GPLv3 makes it less likely a program linked to a GPL'ed library will be considered derivative.

</comment></comment></comment></comment><comment><USER25> The thing that surprises me about this is that I took a look in at GNUStep recently and it kind of seems... unloved. I imagine Sony's had its work cut out bringing things up to date. Also, I would be interested to know how much GNUStep code Sony will be using and how much it will be re-implementing. I've heard some pretty average things about the state of the GNUStep codebase.

<comment><USER26> My impression is that Objective-C is pretty big (for a minor league language) in the US, but that elsewhere in the world its use is nearly non-existent.

Most places I've lived you could throw a shoe and hit a Java developer or a Windows (VB/.net) programmer, but you could set a nuke off and not kill any Objective-C programmers.

I think NeXT and Apple never really bothered promoting it outside of the US. Australia has just about the highest level of iPhone usage per head of population, but prior to the iPhone coming out jobs for Objective-C were running at something like one per N-thousand Java jobs. Now the iPhone pops up, and all of a sudden everybody wants an Objective-C programmer with 5 years experience and proven commercial success on the iPhone... well... guess what... you reap what you sow. Because virtually nobody in Australia invested in Mac programming for all those years, you now don't have a deep pool of talent to dip into.

But a similar thing may happen with Android ... anyone that didn't invest in Linux programmers is at a disadvantage.

<comment><USER19> Trust me... it was rare as hen's teeth in the US also, especially during the period after Java came on the scene but before the iPhone.

(In 2001 I found myself looking for work with 10 months' of Java experience, and 8 years of NeXT experience. I doubt anyone hiring had any clue what Objective-C, NeXT, OpenStep, EOF were. Certainly the HR drones didn't.)

Back in the NeXT days, I think interest was primarily in US/UK/Germany, with some interest in France and Japan and maybe some Swiss activity due to the investment banks.

</comment></comment></comment><comment><USER27> In other words Sony feel they need to at least make the iOS brain-drain a two way street?

</comment><comment><USER28> I vaguely remember that there was an Objective-C environment in one of the 90's game consoles. I want to say PlayStation, but it could have been one of the Sega consoles. Anyone know more?

<comment><USER29> It certainly wasn't the PSX, I spent years in MIPS ASM and C on that loveable rogue platform (from hell).

<comment><USER30> I still have a soft spot for MIPS. What a great assembler.

</comment></comment></comment><comment><USER31> What is the meaning of _SNAP has a re-architected display model and backend based on Cairo evolving toward COLLADA over time._

COLLADA looks like an XML based digital asset interchange format.

</comment><comment><USER32> From the chief GNUStep maintainer: [http://heronsperch.blogspot.com/2010/11/gnustep-is-not- opens...](http://heronsperch.blogspot.com/2010/11/gnustep-is-not- openstep.html)

</comment><comment><USER33> i don't see anything in the article that supports the claim of the title. seriously, did anyone even read it?

<comment><USER34> From the documentation:

SNAP is Sony's Networked Application Platform and is intended to be the basis for future consumer electronic devices. It is planned to evolve this into a complete software stack that will allow third party applications to run on Sony consumer electronics products. This Linux based software stack will include operating system, device specific middleware, general and device specific Objective C APIs including GNUstep, and key applications. The SDK will provide the necessary tools to begin developing Objective C applications for the SN Application Platform.

On a typical CE device hardware resources are much more limited than in the average PC or even a netbook. In order to get the most out of the available hardware it is therefore necessary to control access to scarce resources and manage their use and coordinate sharing them between applications. This is one goal of the SNAP stack. The other one is to provide the application developer with easy to use libraries to access all capabilities of the underlying hardware without reinventing the wheel.

</comment></comment><comment><USER35> If you can't beat 'em, join 'em.

</comment><comment><USER36> this is the secret to dethroning apple.especially if devs can have an open app store with less stringent rules</comment>


Ask HN: What do you wish you had known before you took a new job? - <AUTHOR> I have a friend looking at a job offer and we were talking about the question of hindsight. She is thinking about taking a new position and is wondering what you wish you had known/discovered about your employer before you took the job?
What do you wish you had known about the company you were working for prior to working there?
What do you wish you had discovered about your current employer before you were hired?
Any questions you wish you had asked or processes you wish you had known about?
Thanks! <comment><USER2> I've been thinking about this question for many years now and I have not been able to come up with a good, concise answer about the critical things you need to know before joining a new team. There are so many questions you could ask that it's almost overwhelming.

If I could only get a good answer to one high level question however it would be this:

"Does the company support strong, friendly collaboration inside teams and across teams?"

If a company prizes people working together to solve problems in a friendly, collaborative manner then I think it's much more likely to be an enjoyable place to work and learn. If a company doesn't appear to have this kind of culture then it's an immediate red flag.

Some examples of NOT having this kind of culture: \- Rigid silos (at the team level or across teams) \- Sink or swim culture \- Knowledge hoarding / knowledge brokering \- Backstabbing

<comment><AUTHOR> Ya that is a really good one! I've been trying to figure out how to get a real answer on a question like that :), like is there something I can ask that shows that without asking it like that.

I.e. how do you store knowledge in the x team? Or, how often would I get to work with someone in x team?

<comment><USER2> I think it's actually reasonable to literally say "Tell me about how people collaborate here at XYZ and on this team."

If people start highlighting all the ways in which they work together, how they help each other, how they do pair programming or how they support each other then that's a great sign. If they stammer and they give a lame answer then it could mean the culture doesn't really value collaboration.

</comment></comment></comment><comment><USER3> A lot of this is instinct. We may have very little experience interviewing, but we have decades of experience with humans. Nearly all the terrible moves I made was ignoring a base instinct for some positive signs.

1\. Incompetent boss - drove a car he couldn't afford, was completely out of touch with his business. Excited for new technology that he didn't understand. Ended up bouncing across multiple ideas, never focusing enough to make one work, even though there was a waiting client.

2\. Dishonest partner. Knew he was dishonest, took him anyway. Ended up burning all our other partners and flaking out of agreements.

3\. Narcissistic client. Talked about how his staff were donkeys, to be motivated by carrots and sticks. Contact person was flaky on price, because they knew the boss would negotiate hard and move goalposts.

4\. Impossible project. Project had years long history of attempts. Client brags about how marketing is the only thing that matters and that he comes from tech background. Turns out that the client overpromised to investors, can't gauge difficulty properly, and makes unreasonable requests.

5\. Asshole client. Refused to pay for drinks. Spent the hour first meeting criticizing competitors. Later ghosted after I spent 2 weeks on a prototype.

6\. Incompetent company. Boss had serious personal space issues. Was unable to explain his product. 6 years of bootstrapping to little success. Turned out that they had extremely serious issues that bled them major clients, and only won clients through blatant lies.

</comment><comment><USER4> its very difficult to get an honest read from interviewers and hiring manager. the less functional they are the more desperate they are to turn things around.

its clearly not a hard and fast rule, but one thing that I've found is the things people and companies stress are often the things that they aspire to be, and are directly in contradiction with the way things actually are.

a company that stresses how well the deal with 'technical debt', is often one thats drowning in legacy code.

'productive collaboration' might mean a systemic culture of mistrust and people going their own way for no reason.

a company that says they are hiring you to present game-changing ideas for consideration is likely to put you in a corner and ignore you.

but I have alot of baggage :)

<comment><AUTHOR> :), so the more they try to define themselves as x that usually means they are defining themselves by their biggest challenge.

I kinda like that :). Now I have to go think about what that means for me personally!

</comment></comment><comment><USER5> I wish I'd read up about the stability of the company I'm joining and if they're financially sound or not. Companies that aren't doing well financially usually have problems with management (for example, projects don't get enough funding).

Another thing I missed is if the people on your team sound bored or don't seem interested or excited about their work. One way I found telling was if they didn't go into details about their projects and try to be ambiguous.

</comment><comment><USER6> Most large corporations are more run by personal dominance and fear than by use of profitable skills. Once you reach a certain size, the economy caters to you rather than the other way around. Reality is determined by the will of the powerful, rather than what is observable.

Profitable skills in and of themselves can be dangerous in a large corporation, as skillful people can change things outside the will of the politically powerful.

</comment><comment><USER7> I wish I had fully understood their business model, not what their business could be, but how it really makes money. Who drives that money being made, and what would be my working relationship with them? It's not always transparent how this works, all useful politics within a company revolve around the working group that is bringing in the money. Your experience and future at a company from a monetary and career perspective is directly linked to this, everything else is secondary.

<comment><AUTHOR> If you had understood the business model and how it really makes money, would that have changed your mind on joining? Or more give you more info to succeed once you were an employee?

Got any examples?

<comment><USER8> If you are an engineer and the company primarily makes money through cold calls by salespeople, then the salespeople are a revenue generating center and you are a cost center. A company increases profits by increasing revenue and reducing costs, so you can figure out which group will be prioritized when it comes to promotions and bonuses.

<comment><AUTHOR> ah right, great point!

</comment></comment></comment></comment><comment><USER9> That everyone there above the bottom-tier staff were jerks. (Not referring to my current or any recent job.)

I've turned this over in my head for more than a decade now and have concluded there was no question I could have asked, or other way I could have known before accepting the position. Likewise, I've concluded that there's no reliable way to what a new hire will be like to work with until you've worked with them for several months.

Sometimes you just gotta change jobs. Small companies can be great places because sometimes the leadership directly sees the problems of turnover and wants individuals to succeed.

In large companies if you don't like where you are there are generally more options to move around.

Medium-sized companies can be the worst of both worlds. (I'm sure some are the best though.)

</comment><comment><USER10> If there were any offhand remarks made during the interview/recruiting process that are influencing your friend's decision then it's worth asking more detail about that, preferably in email.

</comment><comment><USER11> Instead of asking "what hours will I be working?" swap that with "how many hours does $COWORKER put in each week?".

Or even just: "Am I expected to be available 24/7 if something goes wrong?"

A workplace culture of being available 24/7 is awful (regardless of the salary) in my opinion.

</comment><comment><USER12> That they were about to relocate their office.</comment>


Ask HN : What do you think of my app - lyrics formatting - <AUTHOR> http://lyrics.azankatech.com

<comment><USER2> I took a look. Just a few comments:

Typo here, I think you meant "you're": "Formats lyrics on your screen to be easy to read while your playing an instrument."

It took me a little while to figure out how to create an account. You should probably let people create their own account on your site. It seems redundant but I think it's an accepted convention.

I clicked on "try it" and I can't honestly figure out how to do anything. I clicked all over, tried dragging the red bars, tried editing text, etc.

Hope that's helpful, and best of luck.

<comment><AUTHOR> Thanks for the typo.

For the login, I really don't think I will do it. Maybe I'll try to make it clearer but nothing more. If it means that nobody will ever use this tool, I'm ready to live with it.

I really don't want to make a lot of money out of it. I basically did it for my own use but thought that I'm surely not the only one with that problem.

<comment><USER3> I didn't want to sign up either, maybe a demo link to a video showing how it works, or some screen shots or something. I have no idea what this is, how it works, or what it does...but i'm asked to log in.

It is much harder to get users to sign in to something than it is to get them to watch videos, look at pictures, read testimonials. Don't sell you site short by not marketing the sites benefits.

</comment></comment></comment><comment><USER4> I tested it out by clicking try it, and then copying the lyrics that were there and pasting them a few times (to see what happens when there are 3 times as many lyrics).

It looks like your app finds repeated sections (or paragraphs) in the lyrics, like choruses, and then is able to abbreviate the repeated occurances after to one grayed-out line. That's pretty cool, but it took way to much work on my part to figure it out.

Also, maybe it would be helpful to color-code the different sections (keeping the repeated sections the same color). When I'm playing an instrument, once I get to one of the grayed out parts that indicates it's a repeated section, I then have to hunt back through the sections to find the corresponding unabbreviated section. This is a hassle and kind of negates the benefits of not having to scroll (i.e. it distracts me and makes me pause my playing, just like scrolling does).

Other than that, I agree with the other comments that this is an MVP to the extreme, and I would not feel comfortable handing over my credit card info to a site that looks like this.

</comment><comment><USER5> I'd rewrite this sentence: "To create a user or log in, click on that button", maybe something like "To create an account or log in, click on the button below"?

More generally, I don't understand what this app will do for me (and didn't want to give up my credentials to find out).

As imp asked, do you have a lyrics database or do I need to key in the lyrics myself?

Once I have lyrics, what exactly will the app do for me? Is the answer simply format them into two columns with zebra striping? What happens when there's not enough room on the screen for the full lyrics? (You promised me no more scrolling, does the font just get smaller?)

Maybe I'm just not in your target market, but I'm having a hard time understanding the value proposition here. More importantly, while I'm a fan of the MVP approach, your site does not currently inspire much confidence. There's no way I'd give my credit card details to this site if I encountered it in the wild.

</comment><comment><USER6> This app is simply awesome. I can't believe almost no one saw its potential. Of course you have to be a musician or else it wont be of any interest. The point is to be able to clearly see the lyrics while you're playing the song with an instrument. Btw, I would love it if there was a place to see the chords. I mean, not the chords above the lyrics but just a little floating box with the basic structure of the song (ex. Chorus : G - D - C, Verse Em - C, Bridge ...)

</comment><comment><USER7> I poked around for a bit. I guess I wasn't sure if you have a database of song lyrics, or if I need to type in the lyrics or something. The "try it" demo didn't really explain how it works.

<comment><AUTHOR> Thanks, I'll reword a bit.</comment></comment>


'Gaming Disorder' Deemed an Official Illness by World Health Organization - <AUTHOR> https://www.cnet.com/news/world-health-organization-deems-gaming-disorder-an-official-illness/ <comment><USER2> I keep seeing this debated. But if sex and addictions are a thing, I don't see why gaming (and social networking for that matter) compulsions wouldn't be.</comment>


Inside the Former US Embassy in Tehran, Iran (2015) - <AUTHOR> http://thecitylane.com/inside-former-us-embassy-tehran-iran/ <comment><USER2> I don't know why people think the USAs relationship with other countries is complicated. I guess it's complicated in the fact that we aren't the good guys as we've been brought up to believe. "We" have overthrown democratically, elected governments, trained death squads, assassins, and insurgents. Our own Navy shot down a passenger plane, and we tried to convince the world it was terrorists,and the best we could do was sorry, not sorry.

It's not complicated, the US does bad shit, too. Sometimes it blows up in our face.

<comment><USER3> The Cold War was a struggle for the future of mankind. The spread of communism was a very real threat and would have been catastrophic, much worse than the fall of Rome; a new Dark Ages with mankind under a boot for a thousand years was a real prospect.

The Iranian government was cozying up to the Soviets and bringing in communist forces into their government. There is good reason to believe that the Soviets were pulling off the kind of suriptitious legitimate-looking takeover that they had so successfully executed in Eastern Europe before everyone realized what was happening. Just like our support of Pinochet in Chile, it was a choice between two evils. We did what we though had to be done. In the years preceding the installation of the Shah, the iron curtain had fallen around Eastern Europe, China had fallen to Mao, the Soviets had tested their nukes and built an arsenal, Korea had been split, etc. This was an all out struggle.

<comment> guard-of-terra It's now obvious that the spread of communism was a straw man. It didn't turn out viable after all.

Torturing or killing people in the name of straw man containment doesn't sound as a valid excuse anymore.

> legitimate-looking takeover that they had so successfully executed in > Eastern Europe before everyone realized what was happening.

This is plain false. Takeover of Eastern Europe was a result of USSR winning the war that Germany lost. It was arranged so that USSR gets Eastern Europe that it has already took. Everybody realized what was happening.

Don't see how it could happen in Iran, much less how post-communist Iran would be worse these days than jihadist nuclear Iran you now have.

<comment><USER3> You're mistaken about the nature of Stalin's takeover of Eastern Europe. He maintained plausible deniability until the very last minute. He made it look like a democratic process while his cronies were throwing opponents out of windows. Some people did see through it, people like Churchill and Patton. But Roosevelt and Truman were completely fooled by Stalin, and thought they could trust him. [https://en.wikipedia.org/wiki/Eastern_Bloc#Concealed_transfo...](https://en.wikipedia.org/wiki/Eastern_Bloc#Concealed_transformation_dynamics)

As for communism proving non-viable, how can you possibly judge actions in the 50s by what surprised _everyone_ in the 80s? And we have every reason to believe that communism would have spread further and lasted longer if not for the extraordinary Western efforts to prevent and undermine them. They would certainly have taken all of Asia and South America, for instance.

<comment> guard-of-terra > how can you possibly judge actions in the 50s by what surprised everyone in > the 80s

The thing is, _your ends don 't justify your means_. It was Stalin's dogma and boy was he wrong. You can't justify crimes with "or what would have happened". The fall of communism just makes that apparent.

<comment><USER3> That's a worthless platitude. Your values mean nothing if you lose. Our ideals of democracy and human rights wouldn't be worth the paper they're written on if the Nazis or Communists achieved world domination.

<comment> guard-of-terra But they didn't and they couldn't.

However, what do your ideals of democracy worth when you overthrew democratic regimes?

<comment><USER3> > _But they didn 't and they couldn't._

They most certainly could have.

<comment> guard-of-terra I don't think so. With their half-life they'll never be able to overrun much of the world. And thing is, we'll never know now. It's your opinion vs my opinion.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER4> is still Exist</comment>


Avatars in Emails Increase Response Rate up to 20% for Rypple - <AUTHOR> http://bokardo.com/archives/avatars-in-emails-increase-response-rate-15-for-rypple/

<comment><USER2> Interesting, almost makes me want to test it out. What's holding me back is the wide-spread use of head shots by realtors, I almost puke in my mouth at the thought of doing it too.

</comment><comment><USER3> I would have not gone down that path after my years spent with Clippy.

</comment><comment><USER4> 'Highly productive people' have been using this for quite a while... ;)

<http://doc.cat-v.org/bell_labs/face_the_nation/></comment>


Why Skype should buy mobile client iSkoot - <AUTHOR> http://latestgeeknews.blogspot.com/2008/04/why-skype-ebay-should-buy-iskoot.html

<comment><USER2> So...Skype dropped the ball (didn't develop a mobile client), got their asses handed to them (by iSkoot, which did, and got a Hutchison partnership out of it) - and then decided to catch up cheap by making their own, rather than buying the startup.

So why should Skype buy iSkoot - especially now they've fully duplicated their one big asset? The article doesn't really make much of a case.

I can understand the sympathy with iSkoot, as the startup underdog - but they _were_ playing in Skype's back yard, in territory that really should have belonged to the bigcorp from the start, and so it should surprise nobody when the gorilla chooses to "build, not buy". (Especially for such a relatively simple product...)</comment>


India defends NSA's PRISM - <AUTHOR> http://timesofindia.indiatimes.com/india/India-defends-US-surveillance-programmes/articleshow/20874742.cms

<comment><USER2> Of course they do. They're planning the same.</comment>


Fakecracker: NetBSD as a Function Based MicroVM - <AUTHOR> https://imil.net/blog/posts/2020/fakecracker-netbsd-as-a-function-based-microvm/ <comment><USER2> Intersting, always fun to read some BSD content. One thing that bothered me though is that no bootup times are specified anywhere in the article which after all focuses on exactly this, it would be very nice to see boot time of Fakecracker vs Docker vs NetBSD amd64 w. bootloader (and unmodified), and compared to the minimal Linux kernel menitoned in the begining.

<comment><USER3> Docker is not exactly "booted" in the traditional meaning of starting a (real or virtual) computer.

<comment><USER2> No but the process is still started and I suppose there's still some sort of setup time for networking, context group, etc.

</comment></comment></comment><comment><USER4> I'd like to see a small lean kernel like NetBSD ported to WASM. You could run services in the browser or in a relatively safe and portable local WASM VM. Would be an interesting way to distribute certain kinds of software. Performance wouldn't be up to par with native, but it wouldn't be too bad.

<comment><USER5> And then let's ship desktop apps in electron running NetBSD. And we will finally have come full circle :)

<comment><USER4> Can you build NetBSD to run as a user process like user mode Linux? A cross platform user mode "kernel" would also be a pretty interesting runtime.

</comment></comment></comment><comment><USER6> NetBSD is so fun to play with. Highly recommended.

<comment><USER7> I don't really know much about NetBSD. Where is a good place to jump in?

<comment><USER8> The NetBSD Project has its own collection of tutorials here: [https://wiki.netbsd.org/tutorials/](https://wiki.netbsd.org/tutorials/)

</comment></comment></comment><comment> yjftsjthsd-h One limitation of this system as it currently exists seems to be that you need a working i386 NetBSD host to built the filesystem. It might not be worth the effort once pkgin gets involved, but in theory I would expect this to be perfectly possibly to get around; after all, NetBSD's own build.sh is perfectly happy to build a full system image for ex. i386 NetBSD from source on ex. an amd64 Linux host. Or, if you didn't want to deal with cross- compiling, perhaps it would make things easier to build a Fakecracker VM that itself builds root filesystems, analogously to building docker images from a container using dind.

<comment><USER9> "One limitation of this system as it currently exists seems to be that you need a working i386 NetBSD host to build the filesystem."

One does not need a NetBSD host. This is not the most time/space efficient method I can think of, but it's the easiest to explain...

On Linux host:

1\. Download

       for x in gnusrc sharesrc syssrc src;do ftp ftp://ftp.netbsd.org/pub/NetBSD/NetBSD-9.0/source/sets/$x.tgz&& tar xzf $x -C /;done

2\. Compile toolchain

       mkdir /usr/obj

       PATH=/bin:/sbin:/usr/bin:/usr/sbin ./build.sh -m i386 tools

3\. Make filesystem

Using makefs instead of vnconfig + mount + newfs has the advantage that makefs is part of the toolchain while vnconfig is not

       makefs root.img fakecracker

<comment><USER10> Wouldn't that crap out /usr/include?

<comment> yjftsjthsd-h Nope; all the netbsd source tarballs extract to [/]usr/src

</comment></comment></comment></comment><comment><USER11> Does NetBSD support initramfs (the name of the Linux feature)? That would avoid having to create a disk image by running a bare system from a ramfs/tmpfs.

I experimented with something like that with Linux and cloud-hypervisor (a firecracker fork): [https://gist.github.com/gdamjan/1f260b58eb9fb1ba62d223495858...](https://gist.github.com/gdamjan/1f260b58eb9fb1ba62d2234958582405)

</comment><comment><USER12> I assume this is a play on the word "firecracker"? :D

[https://github.com/firecracker- microvm/firecracker](https://github.com/firecracker-microvm/firecracker)

<comment><USER13> No need to assume anything. The article starts out:

> _In November 2018 AWS published an Open Source tool called Firecracker, ..._

<comment><USER12> > No need to assume anything. The article starts out:

Aha. Reading now.

</comment></comment></comment><comment><USER14> Think of the overhead which could be saved if services could be "spun up" in chrooted environments or even just as members of traditional Unix-style user- private groups! I know, I know, this is a newish concept which seems crazy. But it could work.

<comment><USER10> Ahem. Chroot has lots of ways to escape.

<comment><USER14> The article mentions this but links to a Google search as "proof." Even VM's have lots of ways to escape these days.

Chroot vulnerabilities have been discovered and fixed over time, as any security issue in an operating system is. It's not accurate to say that they are insecure in a blanket fashion especially these days. My opinion is that we should be using Unix as it is meant to be used, as on operating system, and using its time worn facilities meant for purposes such as security and sandboxing. They are very well tested and the solutions are baked-in and generally pretty small in terms of both code and overhead when compared to spinning up a VM, for instance. There are arguments for using VMs for security and scaling but they don't always win over just one modest local server in either domain. We're not all serving Google search after all.

<comment><USER12> > Chroot vulnerabilities have been discovered and fixed over time, as any > security issue in an operating system is. It's not accurate to say that they > are insecure in a blanket fashion especially these days. My opinion is that > we should be using Unix as it is meant to be used, as on operating system, > and using its time worn facilities meant for purposes such as

I think you are right in general terms but I do not think an attacker will play by the rule and use `chroot` in UNIX-like OS as it is "meant to be used". They will use whatever means necessary - whether it be 0day or other un- patched vulnerability to get a break out.

<comment><USER15> Doesn't this apply to really any sort of isolated environment? What's wrong with chroot vs a vm?

<comment><USER12> > Doesn't this apply to really any sort of isolated environment? What's wrong > with chroot vs a vm?

If you are implying _PoC GTFO_, then definitely I do not have anything to suggest today that either is secure but I would rather not base my comment on what's not seen in the wild and also on the limited breadth of my research.

If anything, we've learnt the from past exploitations of guest additions/kernel modules in guests/vmm, that all of it is real and possible. Given enough resource, time and eyeballs, a _lot_ of the bugs are _exploitable_ \- you just have to ask some of the folks in offsec who develop exploits for living.</comment></comment></comment></comment></comment></comment>


Bash scripting cheatsheet - <AUTHOR> https://devhints.io/bash <comment><USER2> My bash scripting cheatsheet after maintaining a couple tools for 4+ years: use system Ruby / Python or anything else instead, really. Once over a hundred lines of code it becomes a massive pain to work with.

<comment><USER3> The biggest benefit to Bash scripting over a friendlier language is that Bash is guaranteed to just work on pretty much every machine. Bash is on virtually every *nix machine (except maybe embedded devices), and it's extremely resilient to time. Looking through the change history ([https://wiki.bash- hackers.org/scripting/bashchanges](https://wiki.bash- hackers.org/scripting/bashchanges)), I'd wager that 99% of scripts don't use anything that wasn't in Bash 2.05b, which came out in Jul 2002. Anecdotally, the "newest" feature that I've ever used is regex support in conditional expressions, which was added in 3.0-alpha (Aug 2004).

Ruby and Python, meanwhile, are not quite so universally installed as Bash, and they have had all sorts of major breaking changes since 2004. And even if they are installed and version-compatible, they still might not work. Countless times have I seen a misconfiguration with Python 2 vs 3 or RVM or the PATH variable or whatever else cause errors, but I have never run into a scenario where a Bash script didn't just work.

All that said, I'm totally with you that Bash scripts should be short and sweet. If you're doing something with over 100 lines, Bash's downsides overtake its benefits.

<comment><USER4> It's true that bash can be installed on any Unix-like OS, but so can Python, Perl, etc, but it's not available by default, on OpenBSD there's pdksh, FreeBSD tcsh iirc, and on MacOS I believe the version of bash is really old due to some previous license change.

Edit: I read your post quickly, you addressed the old bash scenario, but still in my opinion I would always, and do target POSIX shell for maximum cross- platform compatibility and that is definitely available on Unix-like OSs by default.

</comment></comment></comment><comment><USER5> > Note that [[ is actually a command/program that returns either 0 (true) or 1 > (false).

This is true for the [ command, which is the same as `test`, but the [[ ]] syntax is parsed directly by bash, as is (( )). In particular, [[ ]] is not subject to whitespace splitting, so you don't need to quote most variables.

They mention $(( )), but don't go into (( )), which gives you very nice integer arithmetic and logic:

        for (( x = 0; x < 5; x += 2 )); do
           echo $x
           (( y = x * 10, z = y + 2 ))
           echo $y $z
        done

<comment><USER6> Yes I wrote about this on my blog:

 _[ Is a Builtin, But [[ Is Part of the Language_

[http://www.oilshell.org/blog/2016/10/12.html](http://www.oilshell.org/blog/2016/10/12.html)

I didn't know that before I started implementing a shell :)

I knew that [ could be a builtin or /usr/bin/[, but not about the difference between [ and [[.

</comment></comment><comment><USER7> Here are two lesser-know tricks that can be quite handy:

Using () instead of {} for the functions body allows to isolate it:

        foo=5
        bar() (
          cd /
          foo=7
        )
        bar
        echo $PWD # not / but the current directory
        echo $foo # still 5

Bash 4.0 can splat array of arguments back into a valid bash string with @Q. This is super useful when you need to stop using arrays, like with `bash -c`

        ary=("arg1" "arg 2")
        echo "${ary[*]@Q}"
        # outputs: 'arg1' 'arg 2'

</comment><comment><USER8> My newly forming pet peeve are cheatsheets that are long scrolling documents with way too much whitespace.

Cheatsheets are dense, well formatted items that either demonstrated a thing or reminded you of a thing. Ideally they would be printable in either letter or A4, possibly double-sided.

We need a different word for what this is. Tips/hints blog post?

<comment><USER9> Plus this page doesn't print nicely, either to paper or PDF.

</comment></comment><comment><USER10> A few things I would add:

brace expansions

      combine for combinations

        {a..c}{1..3}  # a1 a2 a3 b1 b2 b3 c1 c2 c3

      step size

        {0..10..2}  # 0 2 4 6 8 10

mapfile to read lines from file to array

      mapfile -t arrayname < filename

        -t     # remove trailing newline for each element

        -u FD  # read from file descriptor FD

        -s N   # skip first N lines

        -n N   # read at most N lines

        -O N   # start populating array at index N

array quoting

      "${array[@]}"  # expand all elements, individually quoted

      "${array[*]}"  # expand all elements, group quoted

translate number from base to decimal for base in (2,64)

      $(( base#num ))

</comment><comment><USER11> .. looking at >1000 LOC bash project this week, with autotools install to make them go.. it uses 'SOURCE' as an include mechanism.. runs FAST and uses lots of whitespace, but no one on earth but the original author wants to touch it

<comment><USER5> If you want to port such a project:

Start by moving code into bash functions if it's not already doing that.

Declare variables with `local` to reduce the amount of global state.

Once you have code in functions, you can factor code into independent scripts. Anything that runs in a subshell can move into its own script, so anything:

1\. in a pipe | line

2\. running in the background&

3\. in a ( subshell )

4\. that doesn't modify global variables

You can then work on those scripts piece by piece.

<comment><USER7> 0\. run shellcheck and fix all the warnings

Using shellcheck will give the developer more confidence in their code, and also learn through the feedback it gives

</comment></comment></comment><comment><USER12> Related, I love to send my bash scripts though [https://www.shellcheck.net/](https://www.shellcheck.net/)

<comment><USER13> Shellcheck is awesome! Been using it for about a month and it's great to understand certain behaviour in the script, even if I don't end up fixing every single warning.

</comment></comment><comment><USER14> The very first example (echo "Hello $NAME!") won't work if `histexpand` is set, which I believe is the default.

<comment><USER15> Also, '< file.txt | ...' does not work as well. Not sure if its well researched.

<comment><USER5> Which is surprising since "research" here means pasting it into a terminal...

Maybe they meant `cat file.txt | while ...`? Even then, you never want to do that when you're reading because elements of a pipeline are run in subshells. The usual idiom is:

        while cond; do
           thing
        done < input > output

It's also the problem with cheatsheets: the underlying idea in bash is that compound statements are like mini programs, so they have file handles that can be redirected. That doesn't come through a cheatsheet very well.

</comment></comment></comment><comment><USER16> We used to use things like this way back. In fact I would purchase these laminated sheets full of hints on various topics (c, unix, bash) and so on.

The thing is I actually find it quicker to simply use my own notes today and/or google anything I need to know when I need to know it.</comment>


Canvas Now Offering Riak Hosting  - <AUTHOR> http://canvashosting.com/solutions/riak/

<comment><USER2> It is great to see more competition in the riak hosting market. It would be even greater if they offered a free plan for development.</comment>


Pinebook ARM Linux Laptop Powered by Allwinner A64 CPU - <AUTHOR> http://www.cnx-software.com/2016/11/24/pinebook-arm-linux-laptop-powered-by-allwinner-a64-processor-to-sell-for-89-and-up/ <comment><USER2> It's nice to get a laptop form-factor with a 720p screen for less than $100, but it's worth noting that the specs are on-par with a 2-year old smartphone flagship. Given Allwinner's history of GPL skirmishes and backdooring, I'm also not too happy to see their CPU in this machine.

<comment><USER3> > specs are on-par with a 2-year old smartphone flagship

Cortex-A53 is a low cost, energy efficient, slow, in-order implementation. I don't think it was ever used as the main core in a flagship smartphone. Something like a 2012 ODROID-X2 SBC with its Cortex-A9 cores should have no trouble outperforming it, but it doesn't support AArch64.

> Given Allwinner's history of GPL skirmishes and backdooring

On the other hand, the linux-sunxi community does a pretty good job of bringing mainline support for Allwinner SocS and they're working on the A64. That's probably the longer term plan for the creators of this laptop.

<comment><USER4> The Cortex-A53 is also used in the Orange Pi 2, a Raspberry Pi 3 alternative for $20. On paper this is some nice bang for the buck hardware, just the implementation is sub par.

</comment></comment></comment><comment><USER5> This must be based on the NexDock: [http://nexdock.com/](http://nexdock.com/)

The pictures of the laptop are exactly the same device I have sitting in my lap right now. The NexDock of course has no computer inside it: it's a keyboard, touchpad, SD reader, USB hub, and display.

<comment><USER6> Looks pretty interesting and my initial excitement for this soon dulled when I thought that if I'm taking this device somewhere I might as well just take my laptop.

Still, it looks like a very cool gadget. What's the battery life like on it?

<comment><USER7> There are places I'd take something like this but not my laptop. A CTF competition at a security convention, for example. I've already got a burner laptop that gets wiped every time I use it just for this purpose.

</comment></comment></comment><comment><USER8> That's useful. I've been buying old Asus EeePC machines on eBay for small projects. Unlike a Raspberry Pi, you get a keyboard, screen, case, and power supply, all for under $50. But the supply of old subnotebooks can't hold out forever.

<comment><USER9> What sorts of small projects?

<comment><USER10> I increased the RAM of my EEEPC 901 to 2 GB years ago (2009-2012?) and I used it to develop Rails applications on trains and during a vacation. Not as fast and comfortable as my Core 2 Duo laptop at that time, but it worked. By the way, it still works even if I don't turn it on often nowadays.

</comment></comment></comment><comment><USER11> Remember, this company is known for flouting all of the GPL, and providing extremely out of date drivers. And they also refuse to submit back into main any of the hardware changes they make.

Whatever condition you buy it in now will be the condition it will be in 10 years. Expect absolutely no upgrades of the kernel subsystem.

<comment><USER12> The sorry state of open source on ARM is not due to the vendors but ARM itself and to an extent Google. The effort to open GPU drivers on ARM is over 5 years old now I think and you can see all the promises made on the ARM community forums.

The blame is shifted from the vendor to ARM and then back like a football and open source developers give up and look for something productive to do.

It appears Arm is not interested in open source or moving beyond the mobile market where things are tightly controlled.

<comment><USER13> Can you explain further how Google is possibly at fault here? Legitimately ignorant of the situation.

<comment><USER14> Google is currently developing an alternate kernel which will be MIT licensed. They've been removing GPL from userspace as fast as they can, and now it seems they want to remove it from the whole system.

[http://www.theverge.com/2016/8/15/12480566/google-fuchsia- ne...](http://www.theverge.com/2016/8/15/12480566/google-fuchsia-new- operating-system)

[https://github.com/fuchsia- mirror/magenta/blob/master/LICENS...](https://github.com/fuchsia- mirror/magenta/blob/master/LICENSE)

<comment><USER15> I doubt that the primary motivation for Magenta is to eliminate the GPL'd Linux kernel from Android. A much more practical way to do that would be to use one of the BSDs.

<comment><USER16> They also deprecated GCC from the NDK, going forward only clang will be supported.

GCC is still around, because just like it happened with Apple, there are a few features that clang still lacks in order to fully replace it in the context of Android.

Brillo has even less GPL components than Android.

</comment></comment></comment></comment></comment></comment><comment><USER17> Are there any other 64 bit ARM laptops out there worth looking at? Maybe with a GSM/LTE module, more RAM, or a better screen?

<comment><USER18> Some chromebooks have aarch64 ARM CPU, including new Acer Chromebook R13

<comment><USER17> Oh hrm, yes I didn't think of those. Some even have SIM cards.

</comment></comment></comment><comment><USER9> This is getting close, but I don't think my dream machine is on the market yet - I'd really like something dirt-cheap, has has an ARM chipset running Debian/Ubunt and lasts for 15 hours on battery. A modern Tandy 100.

Are there any other machines like this, or are cheap machines like the post as far as it gets? I would have considered the ARM Samsung Chromebook, but it has pretty awful battery life.

<comment> david-given I have an Asus Flip Chromebook. It doesn't do 15 hours, merely 10, but it's very light, pretty cheap (I bought mine in the UK for £250, but I've seen it in the US down at about $150), has 4GB RAM and a quad core ARM processor making it plenty fast enough for development, and it's even got a reasonable keyboard.

Minor features: capacitative touchscreen, screen that folds all the way round for use in tablet mode, MicroSD card slot, nice big clicky touchpad, completely silent, and a metal case.

[http://www.trustedreviews.com/asus- chromebook-c201-review](http://www.trustedreviews.com/asus- chromebook-c201-review)

I run ChromeOS on mine, with Debian in a chroot using Crouton; but I gather you can run Debian on it natively, although with some blobs:

[https://wiki.debian.org/InstallingDebianOn/Asus/C201](https://wiki.debian.org/InstallingDebianOn/Asus/C201)

<comment><USER19> I have an Acer R11, which is similar. Crouton is a great project.

Given the price and performance of current generation Chromebooks, I don't see much advantage in going for ARM systems right now.

<comment> david-given The Flip _is_ an ARM system!

<comment><USER19> Yes. What I mean is that the power consumption is a little better, but the current generation Intel Celerons have quite low power consumption too.

One nice thing about x86-64 is that you can also run closed-source apps like games. For example, after having installed Crouton, I was able to install Steam and play some of the Linux games in my library.

</comment></comment></comment></comment></comment><comment><USER20> This is going to be exactly $89 worth of computer.

More for people who never leave terminal or for teaching kids linux.

<comment><USER21> even if you live in a terminal all day 1280 x 720 is just too small to be practical.

edit - I too once basked in the warm rays of a 320x200 CRT, it's OK at the time if that's all you've ever experienced, but it's hard to go back to that from 4k.

<comment><USER22> It was possible to achieve a lot with just 320x200 on 8-bit systems.

Or on programmable calculators (TI, HP, etc.), with just 128x64 or so screen.

Or on Amiga (704|640)x(200|256|400|512).

Or VGA PC 640x480. VGA was for the first time truly enough for an IDE. SVGA 800x600 soon followed. And 1152x864, etc.

So one should definitely be able to manage with 1280x720.

I think we can adapt to whatever is available. I guess one could even manage software development with just a single line (320x8, 40x1 characters) display. It'd certainly be far from optimal, but you could do it.

Of course now I enjoy 4K resolution and multiple monitors...

<comment><USER23> _I think we can adapt to whatever is available. I guess one could even manage software development with just a single line (320x8, 40x1 characters) display. It 'd certainly be far from optimal, but you could do it._

Or even a dumb terminal (TTY) that prints to physical paper.

</comment></comment></comment></comment><comment><USER24> What's the mainline kernel story? Or story for ongoing kernel security updates by other means?

<comment><USER25> For the A64, mainline support is still very much a work in progress that isn't usable as-is I think.

</comment></comment><comment><USER26> Why only 2GB? Especially for a device that's not shipping yet. I understand there might be SoC limitations, but I would be really surprised if the A64 cannot support 3 or 4GB.

A53 is a bit on the slow side, but the worst part is that it's not a great (as in, representative of the architectural requirements on software) chip for porting software to AArch64, because of its simplistic design - you will be able to get away with forgetting a barrier, or TLB or cache maintenance instruction here or there, and your code will work (but blow up on other, more advanced uarches, like A57 or other non-ARM designs). It's basically a minor step above using Foundation Model.

</comment><comment><USER27> I wish they could do exactly the same thing, but the form factor of a Psion 5MX Palmtop

</comment><comment><USER28> As someone who emails from a Nextcloud instance online, writes and reads a lot of text and logs into a Linux cluster for data analysis in Jupyter Notebooks. This could completely replace my company issues HP Elitebook (price around 1200€), the screen is even better.

I would like it even more if it were just a Raspberry Pi (possibly with a very fast ssd if it were possible) inside, simply because of the support and trust I have in them.

</comment><comment><USER29> I fully expect it to be an utter piece of junk, but at 89 dollars with 2GB RAM this beats a Raspberry Pi or a Cubietruck hands down on price/performance considering either of the latter require at the very least 100 bucks extra for monitor, keyboard, power supply, SD card, and cabling, after which you're also left with a rats nest of wiring and awful little plastic bits and pieces all over the place.

</comment><comment><USER30> I've been waiting on this for years! Not specifically THIS, but hardware along these lines. I'd like to see at least 4GB of RAM, and then I think that I could use this with Alpine Linux as my daily driver. Not quite perfect yet, but very close to what I want!

<comment><USER31> if you don't mind X86, [http://www.cnx-software.com/2016/10/24/jumper- ezbook-2-cherr...](http://www.cnx-software.com/2016/10/24/jumper- ezbook-2-cherry-trail-laptop-with-14-full-hd-display-4gb-ram-64-gb-storage- sells-for-190-promo/)

Current black friday sale is $178 to $185

</comment></comment><comment><USER32> I own a Pine 64 board (2GB RAM, 1 gigabit ethernet) based on the same Allwinner A64 SoC. It performs OK for light tasks (Debian), however, it lacks proper graphic acceleration (which is OK for using it as a build server, but short if you want e.g. play YouTube videos, so unless in the case of the laptop hardware accelerated graphics are provided, it would be hard to use it comfortably -if they do, I would love to buy one!-).

</comment><comment><USER33> Anyone know if more RAM will be plausible for a machine like this in the near future? I'd love to have a new netbook, but 2GB is what my 6+ year old Dell mini 9 has; this wouldn't be a very big upgrade, though a bigger screen and keyboard would make it more suitable for actual work.

</comment><comment><USER34> If it had a normal keyboard I'd buy one. Amazing little package.

<comment><USER35> Article says it has full-size QWERTY. In what sense is that, umm, not normal?

<comment><USER34> It's one of those apple candy keyboards. Typing on those is only slightly better than typing on glass.

</comment></comment></comment><comment><USER36> Impressive specs, How much cost difference if 1080P screen is used ?

</comment><comment><USER37> major downside for me is the DC jack for charging, they always break for me...

<comment><USER38> The entire machine is the same price as an apple power adapter.

<comment><USER39> To be fair, they have a processor in the power adaptor

<comment><USER21> Is that processor more or less powerful than the processor in this laptop?

<comment><USER40> Funny question, but the answer is less powerful.

"This processor is a Texas Instruments MSP430 microcontroller, roughly as powerful as the processor inside the original Macintosh."

"MSP430 is a 16 bit processor running at 16MHz. The Dhrystone benchmark measures 1.4 MIPS."[1]

No doom or rooting your MagSafe adapters.

[1]: [http://www.righto.com/2015/11/macbook-charger-teardown- surpr...](http://www.righto.com/2015/11/macbook-charger-teardown- surprising.html?m=1)

<comment><USER41> MSP430 are nice to play around with for hardware projects and they are very cheap, so you can quickly get to cheap products if you start your work with them instead of far more expensive processors.

<comment><USER42> Is an MSP430 really cheaper than a low end STM32?

I mean the MSP430 was great, 10 years ago, but the industry hasn't stood still.

<comment><USER41> True, good point. I just have many MSP430 boards lying around, so even blowing up and giving away a few 100 I would be fine hence I go for them when trying something out. I worked on a few projects with low powered bluetooth that had mandatory MSP430 usage so I again something I go for if I have to try something quickly and has the potential to turn into something I want to give away/sell.</comment></comment></comment></comment></comment></comment></comment></comment>


Dropbox App Won't Die - <AUTHOR> https://twitter.com/marcoarment/status/1151600604227211264 <comment><USER2> Right when I was contemplating actually paying for Dropbox to use it as a proper cloud backup system and get around the 3-device limit, they pull this BS. At least it happened before I handed over my card details...

Seriously Dropbox, you used to be the simplest, easiest-to-use cloud-storage system on the planet. That's all you needed to be. You'll wind up like Evernote at this rate, destroying your originally exceptional product and your reputation along with it. Here's to 10 years as a loyal customer, and no more!

<comment><USER3> > At least it happened before I handed over my card details...

> 10 years as a loyal customer, and no more!

So, not a customer?

</comment></comment><comment><USER4> Lately started using my self hosted NextCloud and it's amazing!

Good bye Dropbox :)

<comment><USER5> I don't completely get the tweet. Maybe I haven't been updated to whatever that is. But for now i much prefer the convenience of Dropbox over doing it on my own like you've done. It's not even close for me. Just my personal opinion.

<comment><USER6> Looking at other replies to the tweet, the Mac version is randomly launching itself and making itself the front-most window with focus.

I stopped using the Dropbox app a while back and switched to interfacing with Dropbox via Mountain Duck instead on Mac & Windows: [https://mountainduck.io/](https://mountainduck.io/)</comment></comment></comment>


Bacteria Use Brainlike Bursts of Electricity to Communicate - <AUTHOR> https://www.quantamagazine.org/bacteria-use-brainlike-bursts-of-electricity-to-communicate-20170905/ <comment><USER2> Not just that bacteria can use electricity for communication, but DNA also has the computing power of a neural network. Imagine every cell with the intelligence of a neural net of many thousands of neurons (= to the number number of genes).

[https://en.m.wikipedia.org/wiki/Gene_regulatory_network](https://en.m.wikipedia.org/wiki/Gene_regulatory_network)

> In single-celled organisms, regulatory networks respond to the external > environment, optimising the cell at a given time for survival in this > environment.

> Genes can be viewed as nodes in the network, with input being proteins such > as transcription factors, and outputs being the level of gene expression. > The value of the node depends of a function which depends in the value of > its regulators in previous time steps (in the Boolean network described > below these are Boolean functions, typically AND, OR, and NOT). These > functions have been interpreted as performing a kind of information > processing within the cell, which determines cellular behavior. The basic > drivers within cells are concentrations of some proteins, which determine > both spatial (location within the cell or tissue) and temporal (cell cycle > or developmental stage) coordinates of the cell, as a kind of "cellular > memory".

<comment><USER3> This is intriguing to hear of the "computing power" of genes - especially the metaphors of the circuit/computer/program like boolean functions, information processing, memory, storage.

I read once about how scientific fields like biology and psychology were influenced by the industrial revolution, to view the world and ourselves using metaphors of the machine - e.g., the steam engine - to "let off steam", etc. These days, we are using metaphors of the computer, hard/software, networks, to model/describe/understand the mechanisms operating in nature.

It makes me wonder about how there are so many similarities of form and function across layers of the physical world, in the quantum scale, microscopic, human/social levels and beyond. How these bacteria "glom together", form communicating communities, and how they use "quorum sensing" (secrete chemicals to reach a critical level and trigger mass change). It's fascinating to consider how we humans behave very similarly to colonies of (somewhat) intelligent bacteria..

<comment><USER4> Since you point it out, the computational analogy of the brain is useful but also has shortcomings as it leads us to misconceptions.

There's also a model/theory called enacting which doesn't consider cognition like a computer but rather like a piano.

<comment><USER3> Thank you for the pointer on enacting and a curious metaphor of cognition as a piano, that made me dig deeper. [https://en.wikipedia.org/wiki/Enactivism](https://en.wikipedia.org/wiki/Enactivism)

</comment></comment></comment></comment><comment><USER5> This reminds me of the issue of the comic book, titled Mr. Majestic, written by Alan Moore, in which the universe suffers heat death and among the last few remaining survivors alive to witness it, is a hyper-intelligent strain of syphilis, which is able to communicate telepathically with its hosts.

<comment><USER6> Likewise, it makes me think of the Descolada virus from the _Ender 's Game_ sequels.

</comment></comment><comment><USER7> Lynn Margulis has proposed that our neurons have bacterial origins[1], this would certainly appear to support that hypothesis.

1: [http://onlinelibrary.wiley.com/doi/10.1111/j.1749-6632.2001....](http://onlinelibrary.wiley.com/doi/10.1111/j.1749-6632.2001.tb05707.x/abstract)

<comment><USER3> "The Conscious Cell" \- intuitively I could see how the hypothesis makes sense; this was a deeply interesting paper, and led me to Margulis' book _Acquiring Genomes: A Theory of the Origin of Species_. Appreciate the link!</comment></comment>


Ruby Benchmark - <AUTHOR> http://rubybenchmark.com/

<comment><USER2> A handy list, I'll have to read through it more completely some time. There are some surprising speed differences. For instance, array.drop is hella- faster than array.clear, and array.shift(n) is faster yet (what?).

Nitpick on their array tests, however:

      measure "Array#delete_if" do
        a = ARRAY.dup
        a.delete_if {|o| o}
      end

Ah, _no_. If o == false, that won't delete it. Also, you're calling object == true; how about a.delete_if {true}?

      "Array#delete_if{true}" is up to 30% faster over 10000 repetitions
      </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>

        Array#delete_if{true}     1.42472314834595 secs    Fastest
        Array#delete_if{|o| o}    2.03995013237    secs    30% Slower

Also:

> _gsubbing with string literals vs regex. For some reason regexp is faster. I > suspect it converts string literals to a regexp anyway._

Really? You're surprised regex literals are faster than regex strings?

The gem however is interesting and nice and simple, I may end up using it for my future testing. Haven't looked through the code, however: anyone know if it's making any mistakes?

<comment><USER3> I'm not a Ruby programmer, so I'm interested to hear your view on this: as a non-Rubyist reading Ruby code, the "assign variable to a new array" method is much more readable to me than than the .shift(n) method and is only 2% slower. Is shift(length-of-array) an idiomatic way to clear an array in Ruby? From my perspective the site looks like a great way to encourage confusing code for little gain.

<comment><USER2> No, it's just a benchmark testing many ways to clear an array; there's nothing idiomatic about shift(n) that I'm aware of. Benchmarking code should always be taken with a grain of salt, it can get pretty needlessly esoteric at times in the pursuit of speed.

I _would_ be interested in if anyone knows how the garbage collector handles a.drop vs a = []. Maybe a.drop collects earlier, and the gc is causing the slowdown?

<comment><USER4> GC should be disabled for proper benchmarks anyhow, honestly. Or at least measured. REE has handy switches to measure that sort of thing.

<comment><USER5> Disabling the GC means your benchmark is worthless.

1\. Valid GC during execution: you are removing an actual factor;

2\. "Invalid" i.e. unrelated GC during execution: your benchmark is too narrow in scope.

<comment><USER4> It depends on what you're benchmarking. If you're benching wall time, then yes, you need to have GC on, and you need to do a ridiculous number of iterations to average out GC runtimes. You also need to invoke the GC before you begin your benchmark; doing a collection pass early in the benchmark for all the objects created on startup/setup skews the benchmark.

Separate benchmarks should be conducted for execution speed (CPU time) and garbage generation. Saying "X is faster than Y" tends to suggest a CPU time benchmark. "X is faster than Y with W delta garbage and Z delta less time spent in GC" suggests a proper wall time benchmark.

</comment></comment></comment></comment></comment></comment><comment><USER6> This is awesome. It would be really cool if they added comments so that people in the know could explain things (and possibly dispute the outcomes)

<comment><USER7> Thanks. Comments would be cool, I'll give it a shot.

</comment></comment><comment><USER8> Nice work Sandro.

Andy Stone has a benchmark file he's been maintaining that has some similarity to your project. Check it out if your looking for inspiration on additional tests: [http://github.com/stonean/benchmark/blob/master/benchmarks.r...](http://github.com/stonean/benchmark/blob/master/benchmarks.rb)

<comment><USER7> Great resource. Looks like I've got a lot of porting to do =). Thanks.

</comment></comment><comment><USER9> It doesn't seem to throw out / properly mark insignificant results: <http://rubybenchmark.com/reports/10> (is there any reason these 2 variants could get different bytecode results?)

That's the way echo -vs- print wars start...

<comment><USER7> Looks like there can be a more significant difference after 100,000 repetitions: <http://rubybenchmark.com/reports/13>. In general, the program is pretty dumb and my math isn't that great. Accepting patches: <http://github.com/sandro/bench_press>

</comment></comment><comment><USER10> > "while" is up to 92% faster over 100000 repetitions

        Array#each_with_index    1.3768820762634277  secs    92% Slower
        while                    0.10703921318054199 secs    Fastest

Don't you mean it's around 13x fast (or 1200% faster)?

<comment><USER11> This is always rather ambiguous terminology. For some people, it makes no sense for thing a to be more than 100% faster than thing b. Other people see it clearly meaning that thing a take half the time of thing b.

What we really want to measure is time quantities rather than speed quantities. I find comparisons of time much easier to grasp than comparisons of speed.

</comment></comment><comment><USER12> Although it usually only matters when compared code scores similarly, it is important to be able to know when benchmark comparisons are _statistically significant_ [1]. I wrote a library[2] a while back to do this. This becomes even more of a concern when the benchmarked code is running on a machine which is not well-isolated and dedicated to running the benchmark.

[1]: <http://en.wikipedia.org/wiki/Statistical_significance>

[2]: <http://github.com/Pistos/better-benchmark>

</comment><comment><USER13> Funny, just finished installing rails 3 and the latest ruby. What a headache that was, really. In spite of following a tutorial I ran in to a whole series of showstoppers and only just now finally got it to work.

I've never played with ruby/rails before so I figured I'd better go and see what all the noise is all about but I had definitely not counted on so many installation issues.

I should probably clean this machine and do it all over again to be able to write up the exact steps to get it to work (from not having ruby before) but I'm too scared of having to go through another day of fiddling.

<comment><AUTHOR> I'm not sure the relevance to the OG post, but I'll grant you that Rails 3 is less than stable, thusly it's tagged RC2, ie: not a release proper.

<comment><USER13> You're right, it's not relevant, I just thought it was coincidence to see a rails post at the top of HN while I'm taking a break from my troubles.

It looks like there is light at the end of the tunnel though.

<comment><AUTHOR> If you're entirely new to the ecosystem, I would not be running Ruby 1.9.x or Rails 3. It may seem counter-productive to learn 'legacy' software, but these version will be around for a while I'm sure, you'll not hit nearly the snags you currently are, and you won't have /that/ much to learn when the later version are ready for you (and you them).

also, ruby != rails ;)

<comment><USER14> If you're quite familiar with Ruby/Rails, but you left the ecosystem for a while (before 1.9 existed), would it be better to re-acquaint yourself with 1.8/Rails 2 first, or just dive into the new stuff?

<comment><USER12> [Setting Rails aside, ]the Ruby community needs help to move forward into the world of 1.9. 1.9 has many improvements that most people would benefit from, but many folks are either afraid to get their feet wet with 1.9, or have to support legacy applications. If anyone would be writing anything new in Ruby, I encourage them to write it for 1.9 and to leave 1.8 behind. For the past year or so, only about 5% of my stuff has been written to support 1.8. The rest has been written for 1.9, usually with syntax or feature usage that will not work under 1.8.

When developing new Ruby stuff, one thing to watch for is interoperability with old gems that are not 1.9-ready. But the good news is, most gems work just fine under 1.9 -- at least in the non-Rails world. I think I recall only one or two gems I tried to use that weren't updated to work with 1.9 yet, out of many that I use or discovered.

</comment></comment></comment></comment></comment></comment><comment><USER15> That's a great idea. I'd really like to see a "raw" format option on the server that would give the code and metadata in a structured format.

With that one could write a tool that suggests improvements to code as it tests it using this as a sort of crowd-sourced benchmark suite. It may not be 100% accurate, but at least it would give verified data instead of the educated-guess strategy most of us employ now.

</comment><comment><USER16> It might be fun to add some Date tests as well. The methods are very slow to say the least. There is a 'date/performance' gem I think.

<comment><USER7> Cool, I'll keep that in mind. The site is intended to have user-generated content so if you find the exact thing you'd like to benchmark, use the bench_press gem to test locally, then publish it to share your findings.

</comment></comment><comment><USER5> I am, uh, highly sceptical of the value of this. That is, even ignoring the variance between runs of the same code, differences between implementations and within an implementation with slightly different objects.

Writing code based on "what is fastest" is an overall awful strategy.

</comment><comment><USER17> How about an RSS feed for the recent benchmarks?

<comment><USER7> Top of my list!

</comment></comment><comment><USER18> The site is awfully slow at the moment. Is it written in Ruby ? That would make the benchmark even more convincing ;)

<comment><AUTHOR> Looks to have been fixed(?), perhaps the 2 day old project wasn't ready for the HN frontpage.</comment></comment>


Microsoft Wants to Embed Windows Phone into Every Android Device - <AUTHOR> http://www.digitaltrends.com/mobile/android-windows-phone-chestburster-dual-booting/ <comment><USER2> How is more choice bad for consumers? There are phones I currently wouldn't touch that I would consider using if I could put any mobile OS I wanted onto them. We should applaud HTC if they choose to make phones that aren't locked to one OS. If MS wants to provide a struggling HTC with incentives to do just that, so much the better.

<comment><USER3> Three words: embrace, extend, extinguish.

Microsoft will push for better interoperability between the two OSes, however MS will notably utilize proprietary features (disk access protocols or some- such) and encourage handset manufacturers to utilize and rely on these proprietary interfaces.

What's the problem with this? More features are better, right?

 _Wrong._ When it comes to Microsoft, they will happily and quickly change proprietary communications protocols and file formats so that competitors -- AHEM, partners -- cannot keep up with these changes. At some point in the future, MS will ignore requests for technical specifications on the changes made and the partner's features will languish into obsolescence.

Features built on top of this integration between the two OSes will be half- baked and second-rate compared to the native Windows Phone experience, and they will be frequently incomplete or unstable.

MS will be using this opportunity to influence the direction of Android (and its derivatives), and they will be pushing it directly into the ground. Integration between the two OSes will break and Android will be left out in the cold.

<comment><USER4> This cannot be stressed more. Microsoft's business practices have not changed, nor has their mission, this is just another ploy to lock consumers into their ecosystem....

<comment><USER5> Wouldn't you say that all the competitors are following in Microsoft's footsteps?

It isn't like Apple and Google are not also trying to lock you into their platforms.

<comment><USER4> Apple definitely is. They used the same strategy by switching to x86 and making it easy to run Windows on a Mac.

Google is a bit different, since they have a distributed platform that you can use on literally, any OS. They definitely want people on their platform, but so far they haven't taken any steps to 'lock' people in (I mean, they renewed their contract with Mozilla, they open-sourced Chromium/Chromium OS, Android, etc...).

I suspect most people are in Google's ecosystem simply because it's better. And until Google say, makes Chrome and Google services run only on Chromebooks and Motorola phones, I'd say they haven't behaved the same as Apple and Microsoft.

<comment><USER5> I find this interesting, does platform lock-in have to mean that you've bought a technical platform (OS)? Google locks you in by having your data on their services. The new 'lock-in' is cloud storage and cloud based apps. I think the big money isn't from directly locking in consumers, but rather locking in enterprise. That's where Microsoft also made a ton of its money.

</comment></comment></comment></comment></comment></comment><comment><USER6> At a time when Lumia 520 and Lumia 925 have been selling like hot cakes ( don't know about 1020, but it has excellent reviews so far ) in many regions and WP is slowly, slowly gaining some market share, the article seems to underestimate WP a lot.

</comment><comment><USER7> I disagree. Even though it seems most people hate WP8, or Microsoft, or whatever gets your panties in a bunch about it, I would love to get one of these. I really like WP8, and have had up to the 920, but there are just some apps that I need right now that don't have even 3rd party equivalents, so I am forced to use Android (its not bad, but I still would prefer WP8 with the same apps)

I would buy this in a heartbeat. I have an HTC One anyway, so if its just an HTC One with both, i am right at home.

</comment><comment><USER8> If I had the option of a good, dual-booting phone, I would take it.

If I could then quickly switch to the other OS within a virtual machine to run an app or access some data, even better.

There's a lot of crud behind why it's a bad idea rather than actual reasoning.

</comment><comment><USER9> The Lumia windows phones actually don't look that bad, and I've heard from people they're pretty slick.

However, it's not just a phone you're buying and wanting, it's an ecosystem. You want email, music, video, apps, and everything in between, to sync seamlessly with all your devices. I don't want Microsoft's ecosystem, and more and more people don't these days.

As far as dual booting windows, I would probably try it once, and never try again.

<comment><USER10> I think this is the point; I don't know many people who care at all what OS the phone is running. They buy Lumia because it was a good deal but don't really notice what is running on it. They start complaining when it's hard to put their music/movies on it; when they cannot play the games their friends are playing or when they cannot use certain apps. My wife has a Lumia and is complaining how it is far more annoying to transfer music/movies/pics to it than Android / iOS which currently is the reason she doesn't really use it despite it being decent smartphone.

I see some changes as well when it comes to apps and games; in 'the olden days' when you wanted to create software you picked some eco system and was kind of bound to it if you wanted to have a half decent user experience. Like you had to pick DOS or Win or Unix or Mac OS (before that even options like Amiga/Atari); cross platform stuff hardly existed and if it did it was horrible. Now, especially for games, it is possible to reuse almost all code on all platforms, so launches of apps/games are simply across platforms. So why would you care about what OS you are running? It's not like the interfaces are vastly different...

Which is the other difference; I still know people who cannot 'use' anything else than Windows; they just don't 'get' it when they are in front of Mac OS X or Ubuntu. That's why Win8 without start button was such a bad idea; a lot of 'non geeks' just couldn't use it at all after the previous versions since '95\. With touch devices all are simple enough for my 93 year old grandfather to use; all of them. Android, iOS, Firefox OS, WP8 etc. They are not the same but so simple they are interchangeable after a few minutes interface wise. Another reason to not care about the OS at all.

</comment></comment><comment><USER11> Stage 3: Bargaining

[http://en.wikipedia.org/wiki/K%C3%BCbler- Ross_model](http://en.wikipedia.org/wiki/K%C3%BCbler-Ross_model)

</comment><comment><USER12> This article is weirdly convinced that Microsoft is talking about dual-booting WP and Android, but even the source article they cite says that that's pretty unlikely.

<comment><USER13> Yeah... from the cited article[1]:

"Of course, there's no official confirmation this type of deal has been discussed, so it must be taken as a rumor for now."

[1] [http://www.digitaltrends.com/mobile/microsoft-wants- windows-...](http://www.digitaltrends.com/mobile/microsoft-wants-windows- phone-on-htcs-android-phones/)

</comment></comment><comment><USER14> Instead of effectively dual-booting Android/WPF, Microsoft should add a compatibility layer to WPF to run Android apps.

<comment><USER15> == Microsoft should kill their platform.

If all windows phones ran all android apps, why would anyone write apps for Windows phones? That's especially true for the long tail. A popular a Windows phone OS with Android support may get a Twitter app and a Facebook app, but your bank's app or that public transport one? Forget it.

We have seen that with OS/2 and its Windows compatibility layer, with Mac OS when Apple advocated Java, and in some sense with Linux and Wine (a great effort, but it does give people an excuse for not porting their stuff to Linux.)

I think they would be better of writing a launcher for Android that launches Windows apps. If that gets popular, they could start leveraging that by releasing new features on their hardware first and on the Android layer later. Good idea? I wouldn't know, but the reverse certainly isn't.

<comment><USER16> That's effectively the same argument as if all smartphones run HTML5 apps, why would anyone write native code?

<comment><USER15> Only slightly so. The answer to that question is "because they can do more things, better".

A native compatibility layer does (almost) everything the 'real' system does, (almost) equally well. If it doesn't, people will be disappointed with it, and by extension, with your system ("yes, Windows Phone can run Android apps, but some will crash, and that game does only 20 frames per second")

If/when HTML can provide the same experience as native code on a mobile phone, many of what now are apps will move to web-only.

</comment></comment></comment></comment><comment><USER17> I am using windows phone for more than 3 months now..and I am happy I moved from Andriod to Windows...

</comment><comment><USER18> What Microsoft should probably be doing instead, is writing some software layer to enable running apps based on a certain popular open-source operating system to run seamlessly on their device alongside native apps. If they did, it wouldn't be the first time MS has written a better Java VM than the official implentation.

</comment><comment><USER19> What Microsoft is slowly discovering is what their competitors discovered back in the 90s: how hard it is to enter an established market.

Back then Apple was also ahead of the curve for a long time and carved out is own niche market, slowly to see a competitor take the mainstream market share.

No matter how good your solution is, no matter if it is technically superior, like Linux was in most respects compared to 16-bit and pre-nt versions of windows, once an established player appears, the dominant platform already has the key applications and mindshare and because of that gets to keep it.

Thus in Linux-land people made wine to cover their windows compatibility needs. Will Microsoft admit defeat and add an android compatibility layer into windows phone?

I doubt it, but I have no doubt they should.

</comment><comment><USER20> i'd be happy if i could load "whatever os i want" on my phone. android, windows, firefoxos, or a random linux distro. ;-)

<comment><USER4> This of course would be the ideal situation for the consumer. Doubt it will happen though.

</comment></comment><comment><USER21> Microsoft is taking something out of Google's playbook. Google is doing something similar with their Chrome apps on Windows, just that this is a lot crazier and resource intensive.

<comment><USER4> Except at least Google is making their platform available on every other platform (that allows them in anyway). With Microsoft you know that eventually they're just going to pull out the rug and lock everyone in...

</comment></comment><comment><USER22> They tried to do this with BeOS back in the day. They forced hitachi and sony to release their BeOS machines with windows as the primary boot and hid the BeOS from usage.

</comment><comment><USER23> This article is based on rumors that are not even very likely. I'm surprised its voted up so high. I guess when its about bashing MS, the facts don't even matter so much.

</comment><comment><USER24> Isn't this just point of desperation! MS just needs to learn they wont rule in an android-iphone dominated market ... kinda like blackberry... wait who?

</comment><comment> void-star Triple boot to iOS and I'll think about it...

</comment><comment><USER25> _" Revise Windows Phone. Right now, as nice as it looks, there are a lot of reasons to choose Android or iPhone over Windows Phone, but few reasons to choose Windows Phone over Android and iPhone"_

Revise what exactly? Windows is perfectly fine for probably 95% of the people. Revising it will not make a difference, but price, branding, apps, deals with Verizon, AT&T etc will make a difference.

<comment><USER6> The article talks about lots of "reasons" without giving any example.</comment></comment>


Stuff in Space - <AUTHOR> http://stuffin.space <comment><AUTHOR> Not mine - but looks very interesting</comment>


Handling Human Error in the Datacenter - <AUTHOR> http://www.spiteful.com/2008/08/11/handling-human-error-in-the-datacenter/

<comment><USER2> a problem everywhere I've worked, especially in places where the rack is 'organically grown' is power cables getting accidentally pulled when other servers are added or removed.

on all servers that I have physical access to, I use zipties on both ends of the power cable. you need a knife to unplug anything. One problem, at least, solved.

Generally, I categorize mistakes as 'mistakes of knowledge' (that is, I did the wrong thing because I believed something that was incorrect.) and 'mistakes of inattention' (where I knew it was the wrong thing to do, but I wasn't paying attention and did it anyhow.)

Generally, you don't make the same mistake of knowledge twice, so I don't worry about them much. They happen, but they only happen once. Learning, we call it.

Mistakes of inattention are much worse, in my opinion. without further action, I will almost certainly repeat a mistake of inattention.

The idea is that every time you make a 'mistake of inattention' you put in place a procedure that will prevent the mistake.

<comment><USER3> Never use zip ties in a data center. Use velcro strips instead.

I don't want people trying to pop zip ties with knives near my cables carrying production traffic.

<comment><USER2> the difference between zipties and velcro is that velcro is best for organizational binding... zipties are structural, and should be largely considered permanent. You shouldn't cut a ziptie holding a cable that would take down production any more than you should move a rack while production servers in it are still running. If it is the sort of thing you might want to move while the servers are running (like, say, ethernet, or a bundle of cables that goes to more than one server) like you said you should use velcro or something else temporary.

</comment></comment></comment><comment><USER4> Also, if your scripts have any dev mode features for testing (such as cleaning up some database values and regenerating, removing some files etc), make sure that you are unable to execute them on production or some sort of confirmation is required.

I had a script on my server that did clustering of stories from different news sources. The script also had some test methods which deleted all the clustered data and rebuilt it. I once accidentally ran the "cleanup method" on prod server and that created disaster because somehow cascaded deletion took place. I had to refer to replay log to get everything back and took hours of efforts plus a lot of pressure. From then onwards I placed a check on each of my script to get a confirmation twice before executing any such test method on prod server.

</comment><comment><USER5> For his last suggestion about coloring the terminal background, it might be easier to just color the name of the machine in the prompt

e.g.: <http://i34.tinypic.com/5ecthx.jpg>

<comment><AUTHOR> Ah, changing the color of the prompt is a much better idea. Thanks.

</comment></comment><comment> a-priori You should also look into software such as Puppet to reduce the amount of manual administration you have to do.</comment>


Obama Officials In 2010: 93 Mil. Will Be Unable To Keep Plans Under Obamacare - <AUTHOR> http://www.forbes.com/sites/theapothecary/2013/10/31/obama-officials-in-2010-93-million-americans-will-be-unable-to-keep-their-health-plans-under-obamacare/

<comment><USER2> Still unclear: of those 93 million whose plans change, how many will see their coverage get more expensive, or worse in quality? This number could actually be the 15 million suggested by Jay Carney. The rest might be switched into comparable plans.

<comment><USER3> The new floor for health plans is quite high, so we can be sure at least the latter. E.g. the old "I'll cover my healthcare, you cover catastrophes" major medical _insurance_ plan is now outlawed, with very little grandfathering, if your policy changed in any way but increased premiums.

Problem is, roughly one half of the nation decided none of us were fit to make a whole set of quality and cost trade-offs. One should not be surprised a good fraction of the other half are not happy. They knew they were being lied to, and, surprise, surprise....

And I'm seeing indications that people who used to have what they thought were high quality, Cadillac plans are now having to pay much more for much less, e.g. this domain expert: [http://healthpolicyandmarket.blogspot.com/2013/10/mr- preside...](http://healthpolicyandmarket.blogspot.com/2013/10/mr-president-i- like-my-health-insurance.html)

<comment><USER2> _And I 'm seeing indications that people who used to have what they thought were high quality, Cadillac plans are now having to pay much more for much less, e.g. this domain expert_

My point is that aside from anecdotal evidence like this, are there any hard numbers about the number of people who had individual market Cadillac plans that will be replaced by more expensive, but lower quality plans? I bet that there are very few people (by percentage) who bought Cadillac plans on the individual market. I have a Cadillac plan which would cost $2000+/mo on the individual market if it were even offered (it has $0 deductible and $5 copays). I only have it because my wife is a Kaiser nurse. There is no way that there are large numbers of people buying these plans on the individual market, and if they are, they could afford it even if it increased to $3300.</comment></comment></comment>