Super Wi-Fi Technology Isn't Really Wi-Fi - <AUTHOR> http://www.pcmag.com/article2/0,2817,2399447,00.asp

<comment><USER2> There are a couple TVWS (TV White Space) equipment designers now that I know of, from following discussions among the Wireless Internet Service Provider Association (WISPA) trade group in the US: <http://www.carlsonwireless.com> <http://www.ktswireless.com/> <http://spectrumbridge.com/>

I believe the fastest airspeed I've seen claimed is 16 - 20Mbit/s using these devices. Although, this is using pretty basic 802.11-style signaling, and with a signal antenna. Multiples of this airspeed via dual adjacent channel modes, comparable to HT modes in 802.11n are technical possible, although likely unfeasible due to the licensing situation. Fortunately, the spatial multiplexing done right now with the fancier 802.11n radios is quite possible with TVWS, with the non-negligible drawback of then having to deploy 2 or 4 identical antennas at critical spacing b/w each other. (And these antennas are comparable in size to old UHF TV aerials.)

That said, deploying TVWS in an urban area doesn't make much sense right now. 10 to 20ml of range is quite nice, but the tradeoff is that you will either have to severely limit your subscriber density, or severely reduce the bandwidth allotted to each subscriber.

<comment><USER2> Sorry for typo. "Signal antenna" = single antenna.

</comment></comment><comment><USER3> Pass me the kleenex, I'm going to cry for the loss of protected trademark status. (I had to google for the technical bits. Beats having to xerox them at the library.)

While I agree that deliberately marketing a new product with the name of an old one (that you don't own) isn't kosher, the public is going to use the terminology that it uses. Pretty much all that's left is to remember that this means you won mindshare.

</comment><comment><USER4> It may not be that super either, since you're not going to get much throughput in a 6 MHz channel, and increasing range tends to also reduce per-customer throughput because they have to contend with more other customers.

</comment><comment><USER5> This is basically a turf-war between wifi (802.11) and cellular (802.22) people. I think this announcement was to pre-empt 802.22 from taking over tv white-space band and making it popular, because there is a TV-whitespace standard being developed (802.11ah) from the 802.11 folks (aka wifi folks) but is a couple of years away from production.

</comment><comment><USER6> "Wi-Fi" is a dumb name anyway.

<comment><USER7> Well, it's accessible to aging Boomers for whom "Hi-Fi" actually means something. I suppose in that sense it helps them get on board.

For the younger generation, I'm noting a thing where wireless internet is perceived as the standard nowadays, and you actually have to be specific when talking about "wired" internet.

<comment><USER8> "What speed of internet do you have?"

"Wireless!"

 _sigh_

</comment></comment></comment><comment><USER9> Sounds like Scott Kargman doesn't take trademarks too seriously.

</comment><comment><USER10> _In other words, from a technical perspective this is no more "super Wi-Fi" than Bluetooth is "mini Wi-Fi" or Sprint's 4G WiMAX is "mega Wi-Fi."_

They cleverly named Wi-Fi after the universal audio term Hi-Fi. Therefore, as far as I'm concerned, it's perfectly appropriate to apply Wi-Fi to _any_ wireless TCP/IP networking device.

<comment><USER11> > it's perfectly appropriate to apply Wi-Fi to any wireless TCP/IP networking > device

Until you try to explain to your Uncle Ed why his laptop can't access the eBay even though they just rolled out the Super-WiFi in his region.

<comment><USER12> Uncle Ed's laptop may not get 802.11 n or 802.11 ac (maybe not even g) either even those are all official "Wi-Fi" protocols.

<comment><USER4> An n-only device probably wouldn't get certified as Wi-Fi™; AFAIK Wi-Fi devices have to have b and g for precisely that compatibility reason.

</comment></comment></comment></comment><comment><USER11> The problem is the confusion it causes. When someone calls a photocopier a 'xerox', it doesn't matter much because it still works as they expect regardless of brand. When someone calls something that's not 802.11 compliant Wi-Fi, it still won't work with their laptop's Wi-Fi card even though "They're the same thing!"</comment>


Federal Judge: Kentucky price gouging statute is "likely" unconstitutional [pdf] - <AUTHOR> https://www.courtlistener.com/recap/gov.uscourts.kyed.92141/gov.uscourts.kyed.92141.36.0.pdf <comment><AUTHOR> Money quote:

>At this stage, the Court finds that Merchants Guild is likely to succeed in showing that the practical effect of Attorney General's recent investigations into possible violations violates the dormant Commerce Clause. Healy, 491 U.S. at 336 (citing Brown-Forman Distillers Corp. v. N.Y. State Liquor Auth., 476 U.S. 573, 579 (1986). Like in Snyder and Frosh, it appears that application of the Kentucky price gouging statutes to transactions that occur on Amazon have the inevitable effect of regulating the price charged outside of Kentucky. In other words, the Attorney General's actions effectively dictate the price of items for sale on Amazon nationwide.</comment>


Async/Await will make code simpler - <AUTHOR> https://blog.patricktriest.com/what-is-async-await-why-should-you-care/ <comment><USER3> I wish the await syntax was inverted; instead of waiting for an async function, let all async functions await by default. In other words, I wish this worked:

        let foo = myAsyncFunc()
        foo.bar()

Why? Because that's the common case, and the caller shouldn't care whether the function is async or not. If you have a non-async function that you want to change to be async, or the other way around, then you have to change every single call site.

The case where you want to store a promise or wait on multiple is actually the edge case, and they could have reused "async" here:

        Promise.all([
          async myAsyncFunc(),
          async someOtherAsyncFunc()
        ]);

Bonus functionality: If you do "async foo()" and foo() isn't async, the compiler could still ensure that it provided a promise.

Sadly, it's too late for this, and everyone's code will suffer as a result. It's way too easy to forget to add "await" to an async call, and doing so leads to failures that can be hard to track down.

<comment><USER4> > If you have a non-async function that you want to change to be async, or the > other way around, then you have to change every single call site.

At least in the direction non-async -> async, that is clearly a good thing, since you are changing semantics a lot.

This code is always safe:

        x = globalObject.a
        functionWithoutSideEffects()
        gobalObject.a = x + 1

While this is not:

        x = globalObject.a
        await functionWithoutSideEffects()
        gobalObject.a = x + 1

> It's way too easy to forget to add "await" to an async call, and doing so > leads to failures that can be hard to track down.

This a situation that could clearly be improved with better detection of these cases. Or maybe it should be completely illegal to call an async function without a keyword, so you have to do either `await func()` or `promise func()`.

</comment></comment><comment><USER5> I heard Doug Crockford talk about how he doesn't think async/await is that great an idea on a podcast a while ago.

His argument was that it's an unclean abstraction - it gives you access to 'features' of synchronous imperative syntax (lines in a function always execute in order, try-catch blocks, etc) but it remains conceptually and literally promises all the way down.

Therefore, all await 'calls' are really non-blocking at a global level, yet they appear blocking to the local lines of code inside the same async function. This is liable to cause confusion - particularly for beginners or occasional visitors to JS who don't fully grok or have the concept of promises top of mind - but really for everyone.

I've used async/await a fair amount in production code now (with babel) and while it does make some code a bit cleaner, honestly it is often to the detriment of understanding it when you come back to that code it in a few weeks. I've made plenty of stupid mistakes where the two 'faces' of the abstraction don't marry up, and it's frustrating.

More and more I'm inclined to just use promises, even when I have the choice of async/await - call a spade a spade and get on with your day. The article talks about promise chains getting complex and hard to read. Well, if this is the case, maybe it's your code or logic flows _in general_ that need to be cleaned up, and changing the syntax to flatten the structures is actually just a sticky plaster over that.

<comment><USER6> Here's a great article somebody posted on HN awhile back, "What Color is Your Function?"

\-- [http://journal.stuffwithstuff.com/2015/02/01/what-color- is-y...](http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your- function/)

The proper abstraction is threads--i.e. a stack structure used for the storage of temporary values, which is shared by nested function invocations as well as similar structured programming constructs like if/else conditionals that together represent a singular thread of control through the program as it processes data and events. "Thread of control" is precisely what you're cobbling together with promises, async/await, etc, using clunky compiler constructs bolted onto the language model and implementation. The problem is that we conflate the implementation with the abstraction, sometimes by necessity (the legacy of the contiguous, so-called "C stack") but usually unnecessarily.

It pays to remember that some operating systems, such as some of IBM's mainframe platforms, IIRC, implement a thread stack as a linked-list of invocation frames, rather than a contiguous array. But it's completely transparent, as it should be. Async/await does the exact same thing, except it's not transparent as it should be. So now you have _two_ distinct, mutually incompatible kinds of functions solely because the implementation is unable to properly hide the gory details, which is ludicrous on its face.

<comment><USER7> light-weight multithreading that enters a scheduler loop when I/O would block is great, and I haven't seen any advantages of async/await compared to that, other than ease of implementation (you make the programmer or library author implement multithreading, rather than implementing it in your runtime).

Promises are at least slightly more interesting because they can functionally compose in various ways (but most of the time it's just a dozen then() calls in a row, and threading would have been better).

<comment><USER8> I'm sure you can agree, that not having to worry about all kinds of races, contentions, deadlocks, wasting time on shotgun debugging, but still never really feeling like your program is reliable enough and about other "nice" things that come with shared memory multithreading is a huge advantage for any concurrent program.

<comment><USER6> Multithreading is not synonymous with preemptive scheduling. That's an entirely different issue. A chain of promises or async/await functions is no better in this respect than so-called green threading, and in many cases is worse than a cooperatively scheduled framework that provides more explicit control over the points at which thread execution can switch. For example, a system built on stackful coroutines where thread execution only occurs at explicit resume points, or a simple message passing model where execution changes only at the point a message is transferred. These are basically continuation passing style, except importantly the _state_ of recursive function invocations is completely transparent to intermediate functions, without having to explicitly pass around state or annotate your function definitions. In other words, no different than how you'd write any other function.

That's my point. The better _abstraction_ for all these things is a thread, no matter how you choose to schedule chunks of work or how you choose to implement things under the hood. A thread is just a construct that encompasses nested function invocations, and that construct is what promises and async/away emulate, except that that they leak implementation details and restrict the normal things functions do, like call other functions.

<comment><USER8> Here's the thing, if you can call functions that themselves can yield - <USER2> are in a shared memory multithreading model, where you can never guarantee for any function not to yield, so you have to use synchronization for that guarantee with all the same issues.

<comment><USER7> In a cooperative multi-threaded model you can only have data-races at function-call boundaries. For example: `x+=1` can never data-race.

<comment><USER9> Except if your programming language allows you to override the += operator.

<comment><USER7> You are proposing a situation where someone overrides += to specifically both call a blocking function _and_ to not make it work correctly. I'm not saying it doesn't happen, but bad code is bad code regardless of your paradigm.

Though I must admit I've not done cooperative multitasking in a language with operator overloading so I can't say whether or not this is a problem in practice.

<comment><USER9> In can happen for example in Python with gevent.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I was super excited about async/await when it first came out. I hadn't really understood the point of Promises, but async/await looked simple and useful.

However, I recently started using async/await in TypeScript, and the result seems to be try/catch statements everywhere. Code using async/await seems to be more verbose and unruly than just sticking to Promises, which I now appreciate the elegance of much more (callee convenience/error delegation).

I think I'm just going to stick to Promises for the time being, until I see some hidden usefulness of async/await syntax (which could totally happen. It took me a long time to realize how awesome promises are).

<comment><USER11> This makes little sense. You don't need more try..catch blocks than you would normally have a catch promise clause.

Exceptions bubble up.

<comment><USER12> I'm finding that with client side async, the awaited behaviour is often external, heterogeneous and unreliable. When an operation fails, it typically requires a state-machine transition to a failed/retry state or fallback service rather than just bubbling up to a top level handler like a coding error i.e. there is something specific you need to do unlike typical exceptions.

Retrofitting a code base with async I concur that local try / catch has been necessary and has added code complexity and doesn't always feel like an improvement. In contrast, server side async has been much more elegant because the errors with internal async server operations are much more exceptional and don't require so much case specific handling.

<comment><USER13> You should make your API client layer be able to retry operations (and maybe track the status of a network connection) rather than write catch/then() manually.

<comment><USER12> It would be nice if it was that easy but if retry behaviour is dependent on the specific operation attempted and the error information in the response then you need some degree of local handling even if its just to prepare information for a generic handler.

Exceptions work best when the error is fatal for the local scope but responses from external services aren't like that. The general problem is that the dividing line between errors and information becomes too blurry - your error might only be information to me. A simple example is where something like axios will (by default) throw on 404 responses but an external api might use 404 to indicate a resource does not exist. If your app logic makes a decision based on this information, you will find yourself using exception handlers for control flow despite not experiencing any actual errors.

</comment></comment></comment></comment></comment><comment><USER14> Though the article doesn't mention it, the "alternative" is Reactive programming (via RxJS) I think for the typical UI application developer, async / await can provide easier readability and debugging, but at the cost of some expressive power and conciseness.

Now that chrome supports async / await in the debugger, it's almost certainly the best choice, compared to promises and callbacks.

In the redux world, you can see this by comparing redux-observable [1] (reactive / rxjs) with redux-saga [2] (generators)

Rxjs requires a deeper understanding of Reactive programming. Once you understand it, you can write very powerful expressions in a few lines. But debugging is tough and it doesn't translate well for your fellow developers.

[1] [https://github.com/redux-observable/redux- observable](https://github.com/redux-observable/redux-observable)

[2] [https://github.com/redux-saga/redux-saga](https://github.com/redux- saga/redux-saga)

<comment><USER15> Only downside I've found with this is that Observables feel like more of a pain to test, since your logic gets more tightly coupled to your I/O. Or at least there's more complexity involved in the relationship between I/O and data manipulation. I used them for a Node project via RxJS and ended up just switching back to promises, as it wasn't complex enough of a project to really see much of a benefit from Observables.

<comment><USER16> The only difference between promises and observables are multiple-emission & cancelation, they shouldn't be any more complicated to use or test than promises. Often I find the main complicated part is the source, everything else is just filter/map functions, sometimes to more streams. All of these individual units are more easily described/tested in comparison to the entire chain (and even then you are only caring about the ends of it).

</comment></comment></comment><comment><USER17> I go back and forth on async/await. On the one hand, it is utterly brilliant. On the other hand, it seems like the final epicycle, trying to fit a theory of circular geocentric orbits (call/return) onto a real world of elliptical heliocentric ones (asynchronous programming).

So yes, it will make code easier, but I fear that will only serve to prolong the dominance of what is arguably the wrong programming model/architectural style. Or more precisely: an insufficient programming model/architectural style (it is great for a lot of things, just not for all).

<comment><USER18> await/promises/etc mostly exist to solve the problem that JavaScript doesn't have threads so it can't wait for callbacks.

About JavaScript, many other languages have had async/await for a long time. I have no idea why JS made such a huge deal of promises, I guess they're better than the callback hell before. Of course, in most languages using async isn't nearly as important for performance because they have thread pools.

Some interfaces aren't and won't be asynchronous (like Linux file IO) so eventually JS will support proper threads and we can stop talking about how great asynchronous programming is (it isn't).

<comment><USER15> Node has threads in C++ for that sort of thing. Async programming is a big deal for performance. That's essentially the main reason Node is any faster than Python. If you use fully async Python on uvloop, you can get comparable performance.

<comment><USER19> It is ultimately a failure of language and runtime that programmer has to manually specify where he wants to make asynchronous vs. synchronous functions to get the optimal performance.

This blog posts elaborates on that better then I could do here, so I'm just going to link to it: [http://journal.stuffwithstuff.com/2015/02/01/what-color- is-y...](http://journal.stuffwithstuff.com/2015/02/01/what-color-is-your- function/)

<comment><USER20> > that programmer has to manually specify where he wants to make asynchronous > vs. synchronous functions to get the optimal performance.

programs aren't just pure computations. There are plenty of times when you want a specific event to happen at a specific time (as in, wall-clock), and plenty of times when you don't care when something computes as long as you end up getting a result at some point.

<comment><USER18> You don't get reliable wall clock time unless you're working in RTOS. In a threaded OS everything in userland is async to an extent. In this school of thought, having to specify that something should be async manually could be seen as a failure of the language.

<comment><USER20> on recent good hardware there is no problem being around 1ms accuracy.

</comment></comment></comment></comment></comment></comment></comment><comment><USER21> I really don't see the need for such a syntax. If I say:

      Foo foo = someFoo();
      ...
      String content = foo.getContent();

I really don't care if foo was returned when I called someFoo(), I only care that getContent() is not attempted until after foo is defined.

There's little reason for me - in this situation at least - to need this async functionality to be explicitly stated.

The biggest problem I see is a when you use this functionality in a loop of independent executions (when the results of any given loop don't depend on the results of prior loops):

      for(Foo foo: asyncFoos()){
          Foo foo = someFoo();
          ...
          result.add(foo.getId(), foo.getContent());
      }

The problem here is that the use of a for loop will introduce latency, potentially dramatically increasing execution time.

Now you can either replace this "for" with some sort of "for-each" type of block, or you can go async all the way and treat "for" as "for-each" and any referenced result of a prior iteration as yet another async value.

That covers sets and singletons, I imagine that any other situation that needs to be dealt with can also be covered on the compiler side of things with only minimal changes to syntax.

<comment><USER22> You may not care, but the computer does!

<comment><USER23> Why doesn't the computer do it for me?

<comment><USER22> Agreed.

</comment></comment></comment></comment><comment><USER24> I really like the succinctness of async/await, and I feel like it's the last step of a long journey. The single threaded callback based style of Javascript has always been a mixed blessing. It has allowed for great performance, and it gives better control that having to juggle threads, but it was all to easy to get into deeply nested callback hell.

If you see design patterns as indicators of language smells -- and it's a useful perspective IMHO -- then in this case callbacks were the smell and the various promise libraries were the design patterns. It's a nice thing that promises and their async/await sugercoating have fairly rapidly made it into the core language.

Now, for the one thing that I don't like about async/await: it's deceivingly simple and it's bound to fool both novice programmers and programmers arriving from threaded languages. If you don't understand the underlying concept of promises, you'll easily end up writing suboptimal code (e.g. executing stuff in sequence which would be better executed in parallel).

Still, a net win.

</comment><comment><USER25> same example with async control flow library and node style callback conventions

function getUserInfo(callback) { async.parallel([api.getUser, api.getFriends, api.getPhoto], callback) }

<comment><USER26> Even with a library like async there will be so much boilerplate, since you need to handle (or pass) errors every step of the way.

With async/await you only need to deal with errors at the level you actually care about them (using the language build in try/catch block).

<comment><USER27> In the example above, any error will be passed to the callback sent to getUserInfo - i.e., where you care about it.

</comment></comment></comment><comment><USER28> Async/await can be used to implement coroutines, but IIRC only if you wrap all of the code that might be called in async/await as well, and this catch makes them practically useless. Why not just provide proper coroutines?

<comment><USER29> Because people don't need coroutines, just a simpler way to write async code than callbacks and manual promises.

While we're at it why coroutines? You can implement coroutines, generators, even try/catch and return given continuations [0].

[0]: [https://curiosity-driven.org/continuations](https://curiosity- driven.org/continuations)

</comment></comment><comment><USER30> Not a gigantic fan of async/await for the reasons that others have mentioned here, but that said it provides the only sane out-of-the-box way for JS to handle loops that contain callbacks/promises.

</comment><comment><USER31> Anyone else bothered by the utter lack of semicolons in the example code? :D

<comment><USER32> If you've got a halfway decent linter, semicolons are just clutter. [https://eslint.org/docs/rules/no-unexpected- multiline](https://eslint.org/docs/rules/no-unexpected-multiline) is the sort of thing that makes semicolon free style practical.

<comment><USER33> There is one situation where semicolons are important - when concatenating multiple script files & using IIFEs.

This subtlety is being obsoleted by ES modules & the build tooling around them, but it is a nasty bug that has sucked many an hour away from frontend devs whenever it is encountered.

</comment></comment></comment><comment><USER23> I much prefer observables to tasks...

</comment><comment><USER34> not too long ago, async used to be the "thing".

and now sync is the new "hot stuff".

a bit ironic but at the end of the day, simplicity always wins.

</comment><comment><USER35> try catch try catch try catch try catch try catch try catch try catch try catch

<comment><USER36> Or, you know, a single try catch. Or several of them. At any level you like and fits the problem. And no lost exceptions.

<comment><USER35> You're right and async await is much nicer but all the try catch blocks are slowly getting to me</comment></comment></comment>


Open Letter to the Queen - <AUTHOR> http://www.abundancypartners.com/open-letter-queen

<comment><USER2> 'We will of course report findings of such debate to Your Majesty'.

Please can we come back to earth?

<comment><AUTHOR> I think that the people who wrote that letter are certainly pretty high, but I doubt they have yet left earth.</comment></comment>


Which is less expensive: Amazon or self-hosted? - <AUTHOR> http://gigaom.com/2012/02/11/which-is-less-expensive-amazon-or-self-hosted/ <comment><USER3> "Today, instead of simply assuming that you'll be buying and operating your own servers, storage and networking"

umm... I've been _leasing_ dedicated servers since 1999 just fine. Why is all 'cloud' discussion always about AWS vs buying dedicated hardware? The vast middle ground serves most people just fine.

EDIT: Actually, I can understand these discussions in some capacity - <USER2> large enough orgs, money may come from budget X vs budget Y, and there can be tax implications depending on what option you choose. The majority of people I see/read/hear having these discussions are not at that level though.

<comment><USER4> I'd say the tax portion is actually a huge consideration for many businesses that would be comparing between leasing or buying. If you purchase $100k of hardware or more, that can have a pretty significant tax benefit.

<comment><USER3> Yes, again, true, but... the majority of people I know that have these discussions, and make these decisions, aren't dealing at anywhere near that level, and start to justify AWS because of a free micro tier vs having to shell out $40/month on a VPS.

Again, yes, there _can_ be bigger considerations at play, but I contend it materially impacts far fewer people than think they would be impacted.

</comment></comment></comment><comment><USER5> It seems to me that this post is missing the advantages of Cloud Computing (AWS) and the Cloud Ecosystem. The Cloud is not less expensive than physical servers - it is different and a different beast. You have flexibility and a different toolset, as well the ability to start a new server without procurement. As well, it completely disregards some of the advantages of physical servers, including in-box IO (disk) needs. Clouds have not been good in the past for high-IO apps. As well, you get more control at the expense of flexibility.

Overall - the determination of Cloud vs Physical should not be based solely on Price but needs and overall Ecosystem that you want to participate in.

Not to mention, as an independent consultant and developer, the ability to spin up a new server to play with any time is invaluable.

</comment><comment><USER6> Long term yes, it's cheaper to own than rent/lease.

Renting/leasing is often more cash flow friendly in the short/near term (due to not needing large sums of initial investment and [in the U.S.] tax implications of OpEx vs CapEx expenditures)

If you're trying to preserve capital in a start-up situation renting/leasing is the way to go until you know what resources you actually need.

<comment><USER7> It's also risk mitigation. You can spin those AWS instances up and down smoothly depending on your needs.

You can't get rid of a 1+ year lease agreement, or something that you purchased. Nor is it a good idea to buy/lease more quickly without really thinking about the long-term financials.

<comment><USER8> Unless you're running spot instances, that logic doesn't work.

<comment><USER7> Could you elaborate on this?

<comment><USER8> Reserved instances are paid for a full year.

<comment><USER7> 1) There's a difference between on-demand and spot instances.

2) Well... yes. My entire premise is based upon not making any long-term leases/purchases, as I stated. Hence, if you bought a 1 year reserved instance, you're doing long-term leasing, and therefore your situation doesn't fall into what I was discussing. So, I'm not sure what your point is.

</comment></comment></comment></comment></comment></comment><comment><USER9> I'd like to see this same sort of thing done with updates for the lower 2014 pricing and in either the US West Oregon Region or the US East Region instead of Northern California. NorCal is roughly 10% more costly for many instance types.

Edit: And a little more attention paid to cost of maintenance and outages, which does factor into the decision of self-hosted vs AWS quite heavily. This article sort of does some hand-waving to get away from it, but it is an important consideration.

</comment><comment><USER10> At my last startup we were running everything off of AWS but i would not do it again except for some short running toy projects. We ended up paying a few hundred $ per month for a web and db server that were just barely usable in terms of speed.

Compare that to a box i can get for EUR 50 over at Hetzner that alone is multiple times faster than the 2 small AWS vms . Need another one ? Will be provisioned in about an hour...don't need an instance anymore ? Cancel it by the end of the month, no long term contracts. Yes there is a one-time fee for setting up a new box, but thats about it. And you don't believe how far you can get with a proper beefy 2, maybe 3 machine setup..For EUR 150 you get power equivalent to spending >1000 on AWS easily.

Today AWS to me only makes sense for short term computing projects or something very time limited (eg <4weeks) or if money simply doesn't matter. Everything else is just marketing bla, i still need todo the same setup work on AWS.

</comment><comment><USER11> Another case where self hosting can be much less expensive (by orders of magnitude, in fact) than cloud providers is compute-bottlenecked tasks, e.g. machine learning experiments with huge training sets.

A single self-hosted compute server that costs ~$20/month in electricity to run 24/7 would cost over $1500/month from AWS.

<comment><USER12> This may be swayed by the fact that you might have a task that can be run in parallel on multiple machines and then finish in an hour, so that you can then move on. Buying or renting enough capacity and then leaving idle for the remaining time is not an option, but with AWS you can easily spin up 100 instances for an hour and do the computational worth for 4 days of a single machine, then shut them down at no extra cost.

<comment><USER13> That is the use case that AWS is best for. That is not the use case covered in the article, though. The use case being discussed is that for a cluster of always-on machines with a fairly consistent load. If you have a minimum baseline load on your servers, fulfilling that from AWS, or Azure, or similar services doesn't make financial sense. Colocated (if you don't mind dealing with the hardware) or leased (if you do mind) servers for your baseline load combined with cloud machines for load spikes makes the most sense.

</comment></comment></comment><comment><USER14> It is the most ridiculous article I have ever read because it doesn't consider the cost of maintaining and support.

<comment><USER15> I agree with you. Sometimes hiring a person for maintaining is more expensive and sometimes is cheaper. It depends on the scale of product.

<comment><USER14> It is not just about hiring people there are too many parameters like providing backups and infrastrcture and so many on

<comment><USER13> And how many of those are significantly different between the two options? Either way, you still need one or more sysadmins, you still need a backup setup. Sure, there are extra maintenance costs associated with owning the hardware, but what portion of maintaining a server infrastructure is tied up specifically in that, and how does it scale relative to the size of the cluster?

<comment><USER8> In my experience of managing a team of 10+ admins, less than 5% of their time was spent dealing with physical hardware and that includes installation and repair.

Today's equipment is very reliable.

</comment></comment></comment></comment></comment><comment><USER16> I think this article does an OK job of outlining parts of the decision tree for cloud vs. self-hosted (while ignoring other options like traditional hosting providers). The other things to consider are staffing and materials costs if maintaining servers in house, DR/business continuity, time value of money depending on how the servers are financed, replacement of aging hardware and operating environments, and differences of how the infrastructure would be built (clustered, load balanced, geographic load balanced, etc.). The reality is cloud providers provide a lot of building blocks for you to use to design infrastructure in a more robust manner but that doesn't mean that other options should be ignored - it's another decision that depends on the factors laid out in the article and a lot of others that are specific to each organization.

</comment><comment><USER17> Article is from February 2012. Does this price comparison reflect today's situation?

<comment><USER15> Amazoon has updated AWS pricing list recently, But I think the method which this article introduces is useful generally for estimating server costs.

</comment></comment><comment><USER18> _> ... a bit more than half of the total cost for each alternative is for bandwidth/data transfer charges ($35,144 for self-hosted at $8/Mbps and $36,900 for AWS)._

If you're buying ~5 Gbps and paying $8/Mbps for it, please please please get in touch with me. I will sell it to you for $6/Mbps and save you 25% off the top! :-)

<comment><USER4> About $5/Mbps here! It seems like you can get some pretty good deals if you find a newish data-center. Internap has been building out like crazy recently and gave us a great deal on bandwidth. I remember the days of potentially hundreds of dollars per Megabit!

Edit: Expanded my comment.. this isn't fark.com

<comment><USER13> I have a single-server colo at a local datacenter here in Dallas[1] for $49 total (with 10Mbps). Same datacenter will give you 2Gbps to a half or full rack for $1900/mo.

[1] [http://www.colounlimited.com/](http://www.colounlimited.com/)

<comment><USER19> At 5 Gbps order size, if you're paying more than $0.9/Mbps you're getting screwed.

</comment></comment></comment></comment><comment><USER20> You also have to take time into account. Self-hosting is going to take a bit more time to coordinate, administrate, and possibly even fiddle with hardware.

I'd also like to see a comparison with other cloud providers, since Amazon is rather expensive.

</comment><comment><USER21> I don't see any mention of storage costs in the article. If you're using S3, it's really hard to wean off of it, and using it externally doesn't usually make economic sense because you're paying twice for bandwidth. And if you go to a S3-compatiable service, you miss out on Amazon's cost-saving features like Glacier, lifecycle management etc.

Amazon's storage pricing is already pretty competitive: [http://www.twinstrata.com/cloud-storage- pricing/](http://www.twinstrata.com/cloud-storage-pricing/)

</comment><comment><USER22> I don't think "bang for the buck" comparisons are the main issue here.

The main advantage of going for AWS (especially) or other cloud provider is flexibility: you shrink and grow your server farms whenever you need to, with little setup/maintenance costs.

So, cost savings come, mainly, from not paying for idle/underused hardware. At scale, these can make it cheaper to go cloud rather than self-hosted.

<comment><USER10> Sounds nice in theory, but how often do you actually need to do that? More often than not, you are still overpaying on AWS vs a simple leased server. Look at what you get for a mere 50 bucks/month [http://www.hetzner.de/en/hosting/produkte_rootserver/ex40](http://www.hetzner.de/en/hosting/produkte_rootserver/ex40)

Add 10 to that and you have dual SSDs, no long term contracts and provisioning of new machines within the same day, mostly <2 hours.

<comment><USER22> > "More often than not, you are still overpaying on AWS vs a simple leased > server"

Sorry, didn't explain myself properly: that's exactly my point. Unless you have enough scale to enjoy the benefits of on-demand shrink/grow, you're better off with offers like the one you posted or even other cloud providers like DO.

A good thing about AWS is that it ended up forcing down prices for leased servers.

</comment></comment></comment><comment><USER23> While it may depend on a company's requirements; speaking for the startup I work for -- we use bare-metal servers that give us more bang for the buck and they are cheaper than aws and cloud solutions in general that we've compared (note: we were on Linode in the beginning but are now on SoftLayer)

</comment><comment><USER24> What's the cost of staff who speak AWS lingo and know how to engineer solutions vs. traditional server environments?

In our work with private cloud, traditional enterprise data center folks don't seem to grok cloud.

</comment><comment><USER25> There is something wrong about the "Total Costs for Different Data Transit Cost Assumptions". The hybrid cost should not be less than its parts, it could follow the lowest cost line at best.

</comment><comment><USER26> AWS isn't about being cheaper, it's about capital preservation. (Although reserved instances give you an option to make an investment if you choose.)

</comment><comment><USER27> That depends.

How much do you feel that outages / lost data cost you?

How much is your time worth while managing your own servers & network?

<comment><USER3> Because Amazon has never had outages? It happens to everyone at some point.

<comment><USER28> It does happen to everyone including those hosting their own. What if your transit provider in your colo goes down? What if their UPS goes boom? That is why if you are hosting your own and will lose significant money on downtime you need to have another colo which adds a lot of cost. If you want to stay in AWS you can provision machines in other availability zones if things go bad quite quickly or have them running in other zones. You could also have redundancy by having assets with other cloud providers too.

<comment> grey-area You should have offsite backups anyway, no matter what service you're using, and a quick way to deploy to other providers if whatever host/datacenter you're using dies. That applies no matter what sort of host you use really, which I think is what the OP tried to say - not that self-hosting is bullet- proof, but that AWS is not bullet-proof either.

AWS outages in one zone do sometimes affect other zones too, so it is not disaster proof:

[http://www.zdnet.com/amazon-web-services-the-hidden-bugs- tha...](http://www.zdnet.com/amazon-web-services-the-hidden-bugs-that-made- aws-outage-worse-7000000186/)

</comment></comment></comment></comment><comment><USER29> Google started with used computers crammed into a Stanford dorm room.

Just sayin'...</comment>


The problem with StackOverflow - <AUTHOR> https://www.reddit.com/r/ProgrammerHumor/comments/7vh2rd/stackoverflow_in_a_nutshell/dts8kf6/ <comment><USER2> What frustrates me the most about SO is that they've already solved this problem.

The crux of the problem is that SO is great if you have a clear question, and a clear answer. More often than not, this isn't the case, or what you're seeing is a symptom of a larger issue that is several layers deep.

Initially, Stack Overflow created comments, but these didn't really fit the need to get further information, except in the most basic of circumstances. To make things worse, sometimes the answer is in the comments, and not in the answers. A few years after, Stack Overflow added chat functionality, and later expanded it to allow private question-based chats, and while these are pretty much a localised Slack/IRC clone, they work well for their intended purpose.

What I don't understand is why this chat functionality isn't pushed by SO. Instead of simply closing a question as a duplicate, or not being clear enough, why not allow someone to request a chat, and to create a forum-type thread that can be attached into the question and answer. If the chat answers the question, leave it to the answerer to re-format the chat into a legible question, and offer to leave a doctored version of the chat for reference.

This doesn't solve the communities constant need to close questions, so I would also open the chat for further discussion around the decision to close. If the decision is overturned by a group of peers, like it is now, the people that first locked the thread should have to part with enough karma to re-open and add a bounty, so that the question is answered properly.

<comment><USER3> It's definitely a thing, other forums with similar goals suffer from this as well. For instance I know a math forum (not on Stackexchange) with exactly the same (implicit) code of conduct. It works really well if you have a sharp question and obviously invested some time yourself but just are stuck. And now you describe exactly where and why you are stuck.

On the other hand, if the problem is open, it's less likely someone else had a similar one before. In fact it might take quite some time to analyze it and for the helper it's not clear whether it's afterwards possible to write an answer that brings the OP forward. Thus SO might end up consisting of tons of unanswered questions or answers of low quality - because they are just answered by point seekers who don't care if it truly helps.

IMHO the best place for this is IRC, dev mailing lists or local meetups.

</comment></comment><comment> King-Aaron trout_fucker hits the nail on the head. SO frustrates me so much these days that I haven't contributed there for nearly a year or so.

Although, I have to say, worldbuilding has some great responders there, and motor vehicle maintenance and repairs do too.

</comment><comment><USER4> this is actually why I really like SO. Whenever you have a problem, you'll eventually find one comprehensive thread covering the solution. If they weren't so strict about duplicates or poorly formed questions, they wouldn't have such a strong collection of answers.</comment>


Ask HN: Why are you still on Ruby on Rails? - <AUTHOR> Why are you still on Ruby on Rails?<p>I started web development with Ruby on Rails and learned other frameworks like Express, Meteor, Django, Flask, etc. along the way. Before working at a startup, I had thought Rails was too "old" and I should stick to JS frameworks (i.e. isomorphic or universal javascript). But after I started working with more experienced developers at my previous company, I started appreciating Rails the most out of all the frameworks I've tried. I also started noticing a lot of startups around us (in SF) still stick to Rails. This is contrary to what Google Trends shows me here (https://trends.google.com/trends/explore?q=nodejs,ruby%20on%20rails,ruby,javascript) and I might be too myopic. Any thoughts on why people (esp. startups) still stick to Rails? <comment><USER2> Personally I think it's good for standing up a first-cut of a CRUD web application quickly, but if I wanted a maintainable product going forward I'd use a statically typed, more fully fleshed out framework (Java/Spring, C#). I don't like where JavaScript has gone on the frontend, and certainly not on the backend, so I personally would avoid universal JavaScript like the plague - it's still reinventing wheels that were solved ages ago, and bringing very little the party as far as I can tell (apart from ease of transitioning from frontend web hacker to backend).

</comment><comment><USER3> When I speak to experienced Rails developers (and most of the ones I speak to are consultants, so heavy bias there), the argument is that they are able to very quickly spin up an application and be productive. JS's toolset and quirks do not allow this.

Note: I'm not one of these devs and have only really used Ruby, not Rails, so I cannot confirm or deny this.

</comment><comment><USER4> IMO it's the ecosystem of Rails, libraries and tutorials etc. Rails has a huge community behind it and it's quicker to get an MVP out there.</comment>


Show HN: A virtual whiteboard for working or teaching remotely - <AUTHOR> http://whiteboardfox.com/ <comment><AUTHOR> This is little 'scratch-your-own-itch' project I started working on about 9 months ago. Front end is GWT, back end is Java servlets. Database was originally MySQL but switched to Prevayler for performance reasons.

My YouTube video gives a nice overview of the benefits of a virtual whiteboard: [http://youtu.be/MDEHFHG1l3Y](http://youtu.be/MDEHFHG1l3Y)

What does Hacker News think?

<comment><USER2> The video shows Mark explaining to Sally how a Facebook login would work on her website with the whiteboard.

A killer missing feature seems to be microphone support, which the video alludes to.

<comment><USER3> Looking at all the feature requests here I can't help but think that you guys are reinventing TeamSpeak. The only difference I see is that with TeamSpeak you first must install a client whereas this runs in a browser.

<comment><USER4> Actually, there are lots of other online whiteboards that have all of these features without requiring a download or plugin.

</comment></comment></comment></comment><comment><USER5> I love it - works perfectly... but immediately the feature creeper in me has kicked in. Killer features

1\. Be able to type in text (any font will do)

2\. Drag-and-drop an image to be be able to annotate it over the top (would be excellent design task, e.g. using screenshots of some work-in-progress).

3\. Movable objects?

<comment><USER6> A similar site I built ([http://stoodle.org](http://stoodle.org)) supports these three features in addition to group voice conferencing through Twilio.

<comment><USER7> I just tried stoodle, but I'm not seeing the data being replicated across windows. e.g I have some doodles here in [http://stoodle.ck12.org/class/53f619cc417e3](http://stoodle.ck12.org/class/53f619cc417e3) but when i open this link in another chrome tab (or a different browser ffox), I am not seeing anything

</comment></comment></comment><comment><USER8> [http://whiteboardfox.com/972-7551-8980](http://whiteboardfox.com/972-7551-8980)

<comment><USER9> Crowd sourced art is in progress :-). Everyone please join!

</comment></comment><comment><USER10> Oh my god. I love this! I've been waiting for a simple polished solution for this for years and years. When skype came along and then we got skype extensions, I thought they'd solve this, but oh no. Every solution that has come out so far has been mediocre at best. I'm glad someone decided to tackle this properly. I haven't had chance to try on iPad, but from the homepage it seems it'll work fine there as well?

<comment><AUTHOR> Haha thank you! Yes it works fine on an iPad - in fact better than an laptop because using a finger to draw is so much more fluid and intuitive than a mouse or touchpad. Here's a video of me using WhiteboardFox.com to draw with my iPad: [http://youtu.be/MDEHFHG1l3Y?t=1m10s](http://youtu.be/MDEHFHG1l3Y?t=1m10s)

And yes I had the same thoughts last year when I was looking to work with a remote programmer: "Surely, surely someone has a half-decent solution?!". At the time, no. Now, yes :)

<comment><USER11> "Yes it works fine on an iPad"

Understatement - it works _really_ well on an iPad (even my ancient iPad 1).

</comment></comment></comment><comment><USER12> Very nice. Seems to be vector-based (ie. how the eraser and undo/redo work, and allowing things like pan&zoom).

I'm the author of a similar tool, [https://awwapp.com/](https://awwapp.com/) , which is bitmap-based, ie the eraser works as it'd on a physical whiteboard, and there's no zoom (or undo/redo).

Great start, looking forward to seeing the future progress!

<comment><USER13> Care to share income numbers (assuming it is ads based)? thanks

<comment><USER12> It's not, but we've recently rolled out the ability to add the wihteboard to your own site, which is a paid subscription-based service.

</comment></comment></comment><comment><USER14> This is freaking awesome. You probably know this but it does not work in IE on windows 8 with a touchscreen. Chrome works fine however. I am guessing it is something to do with the touch events that IE has that are different?

<comment><AUTHOR> I didn't know that! Afraid I don't have a Windows 8 touchscreen device, so haven't tested on that platform. Will look into it....

</comment></comment><comment><USER15> The brain-shaped thought bubble filled with blue gears is _very_ reminiscent of the devopsdays[1] logo...

[1]: [http://devopsdays.org/](http://devopsdays.org/)

</comment><comment><USER16> SSL, private boards, and some kind of assurance that what we're drawing truly is being erased.

Add that, and we'll pay you money to let us use it. I suspect other companies will, too.

</comment><comment><USER17> This is handy for remote tutoring. I dropped a math worksheet image onto the whiteboard. Imagine working remotely with a student. Here's a static 'snapshot'.

[http://s1.whiteboardfox.com/s/54cb7dbaf913f471.png](http://s1.whiteboardfox.com/s/54cb7dbaf913f471.png)

Tried this years ago over dialup with some MS app. The technology was flakey and kept getting in the way. This works great.

</comment><comment><USER18> You hear that? That's the sound of Google's Business Strategy team cueing Wagner's 'Ride of the Valkyries'.

</comment><comment><USER19> That's something I've had on my todo list for ages. As others have said though, it'd be great to be able type text as drawing letters with a mouse always takes ages and looks rubbish.

SVG export would be nice too, perhaps a paid for extra :)

<comment><USER20> Also, needs video/audio chat integration, in case you want to do more than watch the board getting filled up.

</comment></comment><comment><USER21> Very nice!

My friend's parent is disabled and we thought about doing something like this and hooking it up to a touch-screen monitor for them.

That way the parent can see messages from her kids (in a different city) and vice versa without any effort or typing.

</comment><comment><USER22> Do you have any plans to have a 'broadcast' mode where the person who creates the whiteboard is the only one who can draw on it? I can see itchy student fingers abusing it otherwise in a teaching context... ;-)

</comment><comment><USER23> Nice first cut. It's actually surprising that it took a full seven years for anybody else to show up Twiddla's [1] space with a true HTML5 whiteboard. Back when we started out, there were half a dozen commercial versions of this exact thing, but all in Flash or Java, and all trying to compete with WebEx.

It think you're on the right path positioning this for use in schools. That's our main use case too, replacing overhead projectors in the classroom, and ruining snow days for an entire generation of kids.

Good luck!

[1] [http://www.twiddla.com/](http://www.twiddla.com/)

<comment><USER4> It was more like two years actually :)

Anyway, back in 2007 java and flash were reasonable solutions. Today, not so much.

PS, how do you make any money from twiddla if you give away free educational accounts?

<comment><USER23> We make the lion's share of our profits from API customers.

</comment></comment></comment><comment><USER24> I use this kind of thing professionally, for distance tutoring. Looks very nice, draws smoothly. I like the easy "erase" function.

There's one thing stopping me from using it: the URL

I use jotwithme right now, and I can set a session name, then tell people to go there. Here, I have to get the url from my ipad, sent it to myself somehow, and send it to the student.

That's not exactly hard, but it's annoying enough compared to jotwithme that I'd keep using that. But if you had that feature, I'd switch. Jot's erase feature isn't as good.

</comment><comment><USER25> Back in 2011, when I was starting with node.js I built something I called 'Writeboard' [https://github.com/gtramontina/Writeboard](https://github.com/gtramontina/Writeboard) . It's not an active project anymore, but I've considered resuming working on it. A rewrite of it is hosted in heroku, at [http://writeboard2.herokuapp.com/](http://writeboard2.herokuapp.com/) \-- Check it out.

<comment><USER25> Totally experimental, by the way...

</comment></comment><comment><USER26> This tool was pretty responsive to draw with using a tablet, and I'm glad the pen width isn't very large.

I love using a Wacom tablet for drawing diagrams, and wish there was a good shared whiteboard tool that supported pen pressure.

I didn't know if this is possible at first, but a quick search revealed [http://muro.deviantart.com/](http://muro.deviantart.com/), which supports pen pressure using a plugin.

Any chance you might add that kind of flair to whiteboardfox?

<comment><AUTHOR> Maybe in the long term, but for now I'm concentrating on other things (like adding typeable text)

</comment></comment><comment><USER27> Surprised to learn this is Java and long-polling. (These features scream Meteor / DDP to me.) Regardless, it's a v good start. Thanks for sharing!

<comment><AUTHOR> Yes the Java async messaging stuff required some pretty deep understanding, especially ironing out a couple of deadlock bugs (ironically drawing a diagram in whiteboard fox helped me understand the deadlocks: [https://s1.whiteboardfox.com/s/420876221780898a.png](https://s1.whiteboardfox.com/s/420876221780898a.png))

I would have much preferred a solid framework or library. Maybe I didn't spend enough time researching the alternatives to writing it myself.

But then again I wonder if a library would have had the low-level flexibility I needed. For example, I found that one of the most frustrating things when using whiteboard fox was that your internet connection would go down and you wouldn't know about it. So you would not realise that there was a problem and think that the other person had simply stopped drawing. My solution was to add a 5-second heartbeat so that the browser could display a 'disconnected' message when it didn't get the heartbeat. Would a high-level library allow me the option of such a heartbeat?

</comment></comment><comment><USER28> @MarkMC - Any idea if your browser whiteboard will with the TouchPico ([https://www.indiegogo.com/projects/touchpico-turn-any- surfac...](https://www.indiegogo.com/projects/touchpico-turn-any-surface-into- a-touch-screen/x/1083434)) which is an inexpensive touchscreen projector. (I'm just thinking these would be a great combination of technologies.)

</comment><comment><USER29> I tried opening "my" whiteboard in a second tab in Firefox (on Windows). The second tab's view is distorted, it reminds me of having a badly programmed modulo register on the Amiga.

Which doesn't say much to most, I guess... It looks as if the scan lines are mis-aligned, i.e. as if some pixels in each line is missing from each, causing the resulting image to be slanted and distorted.

<comment><AUTHOR> Hmmm - send me a screenshot. I'll take a look.

<comment><USER29> "You have mail". Good luck. :)

</comment></comment></comment><comment><USER30> Great work! My feature request: similar to the "insert pic", create an insert slide. You upload a .PPT and select which slide you want to use.

If teachersare going to use this, many of them will already have a powerpoint to use.

Adding to this, an easy way to navegate betweens different whiteboards of the same author (so it is easy to go to the next slide).

Just my opinion about what might work.

<comment><USER31> The problem is that it will then become an interactive powerpoint, not a whiteboard anymore. It sounds more like a new product to me, not just a simple new feature.

<comment><USER4> Actually, it is a very commonly used feature...many teachers using online whiteboards for tutoring will upload a preprepared word doc/ppt worksheet and then the student will write in the answers.

</comment></comment></comment><comment><USER32> I would love to use this, but i don't have a facebook account. I hope you support other login options

<comment><AUTHOR> You don't need to log in at all - just bookmark the whiteboard pages you want to keep!

</comment></comment><comment><USER33> My respect for use the java stack, I like it. Here another guy to tried to build his own whiteboard a few years ago [http://notephy.com](http://notephy.com) , I'm just searching a solid support to audio recording with webrtc to improve it.

</comment><comment><USER34> google drawing -> setup share settings so anyone with link can edit -> scribble

[https://docs.google.com/drawings/d/11ZmEeCZa_2pAwe9KjHDoAOOK...](https://docs.google.com/drawings/d/11ZmEeCZa_2pAwe9KjHDoAOOKLaBn-C769WahOYr4kmE/edit)

</comment><comment><USER35> Did something like this myself, a few years ago:

[https://itunes.apple.com/us/app/remote- whiteboard/id52213886...](https://itunes.apple.com/us/app/remote- whiteboard/id522138867?mt=8)

Except all you need to follow along is a browser.

</comment><comment><USER36> I played around with something like this when I was a kid (it was a group of kids drawing anime characters if I recall). Every once in a while I search for something like that and I can never find it. Now it's back :D

<comment><USER4> Try searching for 'online whiteboard' and you'll find lots of them :)

<comment><USER36> Hmm maybe I wasn't searching hard enough :D

</comment></comment></comment><comment><USER37> This looks similar to Citrix's Talkboard [http://www.citrix.com/products/talkboard/overview.html](http://www.citrix.com/products/talkboard/overview.html)

</comment><comment><USER38> My quick-and-dirty hack for a one way version of this is to open skype using screen sharing and then to run 'gimp' while using the chat & voice for instruction/questions.

</comment><comment><USER39> Reminds me of [http://www.citrix.com/products/talkboard/overview.html](http://www.citrix.com/products/talkboard/overview.html)

</comment><comment><USER40> I did something like this a few years ago, but we were forced to use flash- [http://flockdraw.com](http://flockdraw.com)

<comment><USER4> Why were you forced? html5 was around at the time (and in fact twiddla was launched two years before flockdraw).

<comment><USER41> Open the same Flockdraw URL in two side-by side windows and draw in one of them. Compare that to the WhiteboardFox video or Twiddla demo.

WhiteboardFox says a few seconds is "fast syncing". Flockdraw's sync is realtime (try it for yourself).

The kind of latency and overhead I wanted when building Flockdraw is only really feasible in JS when using WebSockets (which wasn't even fully standardized until 2011) but was doable in Flash in 2009.

</comment></comment></comment><comment><USER42> This article was awesome, teaching remotely are very effective because other people are busy , they dont have time to go institution.

</comment><comment><USER43> come draw with me:

[http://whiteboardfox.com/3341-4061-6898](http://whiteboardfox.com/3341-4061-6898)

<comment><USER43> oh, it was a lot of fun until somebody erased everything.

<comment><USER44> Yeah, I almost finished my drawing of Elsa (from Disney's Frozen) :/

</comment></comment></comment><comment><USER45> nicely done. I will try using it with my coworkers. The video was helpful with suggestions on zooming to draw text.

</comment><comment><USER46> Awesome!!..with tablet. You can add text support, and login with email id..dont have facebook!

</comment><comment><USER47> My only suggestion is to make sure the youtube video plays in HD by default. Excellent work!

</comment><comment><USER48> Very well done. I can see myself using this in the near future. Thank you for making this.

</comment><comment><USER49> There should be an "omeagle" version of this where you draw pics with strangers.

</comment><comment><USER50> Doesn't work if cookies are blocked. Well, it is a "white board," anyway.

</comment><comment><USER51> Very nice, but you just made me remember how hard it's to draw with a mouse.

</comment><comment><USER52> Very impressed Mark. Nicely done. Do you mind telling the technology stack?

<comment><USER53> He has commented below that the 'front end is GWT, back end is Java servlets. Database was originally MySQL but switched to Prevayler for performance reasons.'

I have built a similar tool that is also an HTML5 / Canvas collaborative drawing app which uses Google Drive for storage and has no server code beyond that. It works offline (and syncs up with collaborators when you come online) and runs in Chrome, Firefox, Safari, iOS, and Android and supports touch. [http://thesavior.github.io/draw/](http://thesavior.github.io/draw/)

<comment><USER54> you have to login?

<comment><USER53> It uses Google Drive for cloud file storage (syncing and sharing)

</comment></comment></comment></comment><comment><USER55> This is very cool! Is there a way to zoom in on desktop? Mouse wheel perhaps?

<comment><AUTHOR> Yes - click the Options button

</comment></comment><comment><USER56> Very nice! I gonna use it myself for drawing using tablet on big screen!

</comment><comment><USER57> Great stuff ! I'll try to build my own version using socket.io :)

</comment><comment><USER58> Making it easier to zoom would be nice. Maybe with scrolling?

</comment><comment><USER59> A simple chat functionality within the app would be nice...

</comment><comment><USER60> A zoom in/out with mouse scroll would be good to have.

</comment><comment><USER61> How long do you take to complete the project? Awesome work!

</comment><comment><USER62> This is fantastic. How long is a whiteboards lifetime ?

<comment><AUTHOR> Thanks :)

A whiteboard lasts 30 days at the moment, but that number may change in future

<comment><USER36> Is that from the last date of use?

</comment></comment></comment><comment><USER63> Only works in Internet Explorer 9, doesn't work in IE 8 in some companies they only allow you to use IE only and only upgrade the browser if they install a new OS.

<comment><USER64> If you're on IE 8, you have bigger issues than this working for you.

<comment><USER63> My work mate is using IE8 I am using IE9 just happened to try it out. But found out you can do the same thing in microsoft lync which I didn't know you could do.

</comment></comment></comment><comment><USER65> Interesting, seems like TogetherJs or Prezi.

</comment><comment><USER66> very nice, responsive. Great job. I was looking for such tool. Feature request, should allow copy paste :).

</comment><comment><USER67> Might this use Firebase?

</comment><comment><USER68> looks good to me, congratulations

</comment><comment><USER69> great! only missing typing text

<comment><USER70> I don't think this should have typing of any kind. I think it will be faster and easier if stays as it is. The focus should be in making it even more reactive/real time.

We might start using it right away :-)</comment></comment>


Steam Link Beta Now Available for Raspberry Pi 3 / 3B+ - <AUTHOR> https://www.cnx-software.com/2018/12/06/steam-link-raspberry-pi-3-board/ <comment><USER2> Seems strange that they are releasing binaries for Steam Link without buying their specialized hardware. Then again, I don't know of many people that bought a Steam Link.</comment>


I Wish We Were So Stupid (As Stupid as Y Combinator) - <AUTHOR> http://www.metromodemedia.com/blogs/posts/TMeloche3037a.aspx

<comment><USER2> I was born and raised in upstate New York. I have never seen an article that better describes the rotting corpse that is the Rust Belt of the United States - "You can't make money with some goofy website! When are you going to get a real job? I hear they're looking for people at the Old Mill." Never mind that the Old Mill, in its heyday, employed ten times as many people as it does now. It just boggles the mind...

</comment><comment><USER3> I think his repetition of the word stupid, and addressing California/startups/etc. as such, without really backing any of it up, was rather... stupid.

Also, smart does not equate to being overly cautious and paranoid, as it sounds in the way he describes his beloved Michigan. Smart, in my opinion, when referring to the startup scene, is being able to analyze the current trends, approximate which direction societal trends will move, and take calculated risks accordingly.

'Smart' will make us stagnant and if being innovative, creative, and progressive is stupid, then for once in my life, i'd rather pursue stupidity.

On another note, it's nice to see Michigan on the cutting edge and flourishing.

<comment><AUTHOR> You may want to finish the article. :-)

<comment><USER3> I read the whole thing before I posted. My comment still stands as far as his uses of 'smart' and 'stupid.'

</comment></comment></comment><comment><USER4> "Failure is simply the opportunity to begin again, this time more intelligently." ~Henry Ford

<comment><AUTHOR> "Opportunity is missed by most people because it is dressed in overalls and looks like work." \- Thomas A. Edison

One of the reasons Henry Ford was willing to risk so much to start an automobile company is because Thomas Edison, who Henry idolized, encouraged him to do so. Edison told Henry something along the lines of "Do it Henry. If I was a young man I think I would start an automobile company."

I think companies like Y Combinator are serving much the same purpose, helping encouraging people to go after their dreams. Most will fail, but they have probably learned a lot more than they would have in a cube, about both software and business. Those that succeed, well, hopefully they will pass the encouragement on. I wonder who Henry Ford encouraged?

<comment><USER5> I'm not sure about the truth of that anecdote, but I liked it and I've never heard it, so upvote!

<comment><AUTHOR> Edison as I Know Him by Henry Ford. Around page 5? Edison was really happy with the "power plant" in the car idea of the internal combustion engine.

</comment></comment></comment></comment><comment><USER6> This was surprising well written. I grew up in Toledo, OH (on the border of Michigan) and this describes the attitude there very well...</comment>


Ask HN: The future of Remote Worker (WFH) technologies - <AUTHOR> Back in early 90s I had a software consulting gig with a telecomm company down in Austin, TX. I have completely forgotten the software project itself. What made a lasting impression was the attached small call-center (of the same company), and the fact that the operators were monitored down to strictly scheduled "toilet break".
In my opinion, it is inevitable that one day WFH software will be required to be always on, and "remote workers" subject to the same regime essentially as those of the above call-center workers. And that "surveillance free" jobs will replace "corner office" jobs as the new status symbol of wage earners.
https://activecollab.com/blog/guest-post/make-sure-you-workers-are-working-full-time
What is your opinion of the evolution of WFH technologies? For example, how far away is the "feature" that allows managers to randomly check a video feed of a remote worker? <comment><USER2> Many corporate systems already allow them to check your screen.

But I absolutely disagree that we are headed in that direction. Leadership that succeeds with remote work does so by trusting their employees to do their jobs well without micro-management. If anything, the tech we have is fine, but we're heading towards a management culture shift that learns how to work well remotely.</comment>


New Bird Species Arises from Hybrids, as Scientists Watch (2017) - <AUTHOR> https://www.quantamagazine.org/new-bird-species-arises-from-hybrids-as-scientists-watch-20171213/ <comment><USER2> Say whatever you want about Eugène McCarthy[1], he seems to be right about hybridization being an overlooked evolutionary force.

1\. [http://www.macroevolution.net/](http://www.macroevolution.net/)</comment>


Linus Torvalds's first public mention of git (2005) - <AUTHOR> http://lkml.iu.edu/hypermail/linux/kernel/0504.0/2022.html <comment><USER2> > Never mind merging. It's not an SCM, it's a distribution and archival > mechanism. I bet you could make a reasonable SCM on top of it, though.

Linus Torvalds really has a gift for under-promising:

> I'm doing a (free) operating system (just a hobby, won't be big and > professional like gnu) for 386(486) AT clones.

[...]

> It is NOT protable (uses 386 task switching etc), and it probably never will > support anything other than AT-harddisks, as that's all I have :-(.

<comment><USER3> That's simply so genuinely Finnish.

<comment><USER4> YES! Thanks for that. It's exactly the truth, and something I so sincerely appreciate about their (and more generally Scandinavian) culture.

</comment></comment></comment><comment><USER5> Arguably, he's referring to (what would become) git in this earlier message in the same thread: [http://lkml.iu.edu/hypermail/linux/kernel/0504.0/1826.html](http://lkml.iu.edu/hypermail/linux/kernel/0504.0/1826.html)

> So I'm writing some scripts to try to track things a whole lot faster. > Initial indications are that I should be able to do it almost as quickly as > I can just apply the patch, but quite frankly, I'm at most half done, and if > I hit a snag maybe that's not true at all. Anyway, the reason I can do it > quickly is that my scripts will _not_ be an SCM, they'll be a very specific > "log Linus' state" kind of thing. That will make the linear patch merge a > lot more time-efficient, and thus possible.

The whole story of how git was cockled together to ameliorate the awkwardness of dealing with BitKeeper licensing (right?) issues, and marched from there to greatness is a pretty inspiring one, to my mind.

<comment><AUTHOR> Oh, good catch. It's a very vague allusion to git, though. The one I linked was the first one where I could find the string "git" in it.

> The whole story of how git was cockled together to ameliorate the > awkwardness of dealing with BitKeeper licensing (right?) issues, and marched > from there to greatness is a pretty inspiring one, to my mind.

Let's not over-romanticise the subject. Github obviously had a lot to do with it, along with luck and admiration for Linus. Also, git is hardly alone: Mercurial was almost the same idea in the beginning. Let us not forget how early git only had branching by cloning, like the Bitkeeper that both git and hg were emulating.

Also, it wasn't just that bitkeeper had an awkward license. It's that Tridgell reverse-engineered the Bitkeeper protocol, and thus Larry McVoy took away Linux's permissions to use Bitkeeper.

<comment><USER6> > It's that Tridgell reverse-engineered the Bitkeeper protocol

I always thought it was weird how telnetting into a port and typing "help" was considered "reverse engineering".

<comment><AUTHOR> Hm, it was more than that. It involved inspecting network packets.

What _I_ found weird is how Linus blamed Tridgell for the reverse engineering:

[http://www.theregister.co.uk/2005/04/14/torvalds_attacks_tri...](http://www.theregister.co.uk/2005/04/14/torvalds_attacks_tridgell/)

<comment><USER7> I also find that weird.

Could someone elaborate more on this?

</comment></comment></comment></comment></comment><comment><AUTHOR> And the Mercurial announcement:

[http://lkml.iu.edu/hypermail/linux/kernel/0504.2/0670.html](http://lkml.iu.edu/hypermail/linux/kernel/0504.2/0670.html)

Matt Mackall had been working on hg for a couple of weeks prior to the public announcement This means that both projects started at almost the same time. I believe that Matt actually privately showed Linus hg before he made a public announcement, but maybe I am mistaken about this story.

</comment><comment><USER8> > I bet you could make a reasonable SCM on top of it, though.

Still waiting for that :)

<comment><USER9> I'm the 'git expert' at work, and someone sent me this recently: [https://www.youtube.com/watch?v=CDeG4S-mJts](https://www.youtube.com/watch?v=CDeG4S-mJts)

<comment><USER8> That so didn't need the cancer thing.

</comment></comment></comment><comment><USER10> Out of curiosity, was anyone else surprised to learn when git first came out? I had been using it for a while, and assumed it had been around for ages, based on how it seemed to be so oriented around a unix file system and using the command line.

<comment><USER11> The fact you're surprised makes me feel really, really old. I remember watching the initial conflict with popcorn in hand. I was more interested in OpenSolaris in those days, but it was still entertaining to see the pissing matches Linus caused as part of finding _the new way_.

<comment><USER10> I'm not what they'd call very young (33), and I'd been programming from an early age; I just hadn't done legit software development with version control until about 2011, and hadn't looked up git's origins until about 2014.

</comment></comment></comment><comment><USER12> I'm looking for a good collection of Linus' own emails discussing some of Git's more advanced topics, as I remember he discussed some subtleties that may be missed by other documentation such as the Pro Git book and the manpages. (maybe said documentation has caught up, but I'd like to check to be sure).

So far, all I've found is a few threads collected at yarchive.net [1], which is promising, but how can I find more? Google fails me :(

[1] [http://yarchive.net/comp/index.html](http://yarchive.net/comp/index.html) search for "git"

<comment><USER13> I don't think you need to go much further than LKML archives. He wrote git because of the bitkeeper incidence and then handed over the maintainership very shortly after. There was also some mail about ranting when to rebase and when to merge more recently, but it is also in LKML. I don't think he regularly writes to other public lists than kernel anyway :)

</comment></comment><comment><USER14> The Git-Merge conference, April 8th & 9th in Paris, France will celebrate 10 years of Git:

[http://git-merge.com/](http://git-merge.com/)

<comment><AUTHOR> Any idea what precisely they're counting as the birth of git?

</comment></comment><comment><USER15> In case anybody hasn't tried it yet: It is pretty cool to check out the first copy of git that was committed to git. It is incredibly simple, yet was sufficient to create a commit that is still in the same git repo as modern git.

[https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23...](https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290)

<comment><USER16> This is interesting: [https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23...](https://github.com/git/git/commit/e83c5163316f89bfbde7d9ab23ca2e25604af290#diff- ca7628e295e2c5654dbdec183d70158dR94)

A commit having multiple parents is not possible in git as of today. Change of mind?

<comment><USER17> It is possible for a git commit to have zero parents (initial commit), one parent (the direct ancestor in a linear path), two parents (generally referred to as a merge node) and more than two parents (also referred to as a merge but only possible using the octopus strategy).

<comment><USER16> Ah, of course, merge nodes have multiple parents.

I had never heard of octopus merges though. It's fascinating. Here[1] is the article I read on it.

[1] [https://developer.atlassian.com/blog/2015/01/git-merge- disti...](https://developer.atlassian.com/blog/2015/01/git-merge-distinct- octopus-merge/)</comment></comment></comment></comment>


Show HN: Fyipe – Status Page, PagerDuty, Pingdom All in One - <AUTHOR> https://fyipe.com/ <comment><USER2> Strange that the homepage is a direct copy of the [stripe]([https://stripe.com](https://stripe.com)) homepage.

<comment><USER3> So is their status page - which is their product.

[http://status.stripe.com](http://status.stripe.com)

[http://status.fyipe.com](http://status.fyipe.com)

<comment><USER4> So is their name - Fyipe rhymes with Stripe (at least how I imagine the pronounciation).

</comment></comment></comment><comment><USER5> There is inspiration for design, and then there is completely copying a design. This website copied CSS exactly, just open up the source and you'll see the exact same css classes.

<comment><USER6> This is also a repost from last month, where there were similar comments left.

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

</comment></comment><comment><USER4> So, apparently they're advertising with having CloudBoost and Stripe as customers.

* CloudBoost is built by the same company/people (HackerBay)

* I doubt Stripe is actually their customer, given it's their _only_ external reference apparently.

This smells like borderline fraud to me.

</comment><comment><USER7> You've misspelled the "stripes" ID for the header background. Should have been "fyipes".

</comment><comment><USER8> It's very hard for me to take a service seriously upon seeing the "$5 per user per _month_ (billed _annually_ )" pattern on the pricing page. It's sneaky. Gas stations don't show prominent signs with the price per gallon and "100-gallon minimum" in tiny font beneath.

<comment><USER9> Unfortunately, this pattern is used a lot now by companies big and small. Here's Adobe:

[https://www.adobe.com/creativecloud/plans.html?promoid=NV3KR...](https://www.adobe.com/creativecloud/plans.html?promoid=NV3KR7S1&mv=other)

Creative Cloud with all apps is $52.99 per month. If you click "See plan & pricing details", you see that's an "annual plan, paid monthly".

<comment><USER8> Also sneaky, although a 1-year commitment is better than having to pay for next December's usage in January under the terms of an allegedly "monthly" charge.

</comment></comment></comment><comment><USER3> Looks like their status page shows them as down.

[https://status.fyipe.com/](https://status.fyipe.com/)

<comment><USER7> They will probably go down pretty soon, when Stripe finds out about this blatant copyright infringement.</comment></comment>


Ask HN: Where do you buy your coffee beans? - <AUTHOR> For the coffee lovers of HN, where do you buy your coffee beans. I'm based in SF and know the local roasters pretty well but would be interested in some online offerings. <comment><USER2> Craft Coffee is great, they ship freshlyb roasted coffee to you, so very convenient. I've given gift cards out for the past 3+ years during the holidays (my mom complained when I said I wasn't getting my father it again). As a bonus, the founder is involved in the NYC startup scene.

</comment><comment><USER3> I'm in SF too and get mine from Sweet Maria's. I know I can pick them up from Berkley but it's honestly a pain to get over there and if I'm getting ripped a $7 toll... Well the $8 delivery isn't so bad, and I get my beans 2 days after ordering. I've bought about 35 pounds in the past year.

</comment><comment><USER4> [https://truestonecoffee.com/](https://truestonecoffee.com/)

Great roaster out of St. Paul, MN. They know their stuff in the land of 10,000 lakes of coffee.

</comment><comment><USER5> A friend started roasting a few years ago and now I only drink their coffee. [https://miblendcoffee.com/](https://miblendcoffee.com/)</comment>


FCC Chairman dressed up as Santa and wielded a lightsaber to mock net neutrality - <AUTHOR> http://www.chicagotribune.com/business/ct-biz-fcc-ajit-pai-net-neutrality-video-20171215-story.html <comment><USER2> Outside of all the discussions surrounding the policy itself, the one thing that's been the most heartbreaking/angering about this is how unprofessional Pai has been throughout the entire process. Even in a more formal environment (the FCC vote/hearing) he couldn't help but laugh and mock.

Regardless of policy he is unfit for office.

</comment><comment><USER3> Just when I thought it wasn't possible to hate that piece of shit more than I already do, I get to see this first thing in the morning. I really hope this video is somehow used as evidence in the lawsuits against the fcc. I'd love to see that played in a courtroom in front judges.</comment>


What is the best way to escape the police in a high-speed car chase? - <AUTHOR> http://www.quora.com/Whats-the-best-way-to-escape-the-police-in-a-high-speed-car-chase#ans731539

<comment><USER2> An interesting question (disclaimer: for intellectual interest only, of course, if the police ever _are_ actually chasing you the only right and smart thing to do is to pull over before somebody gets hurt).

Assuming they _really_ want you for something, and it's not just a speeding ticket (in which case you _really_ should have pulled over) I think you'd actually have a better chance by pulling over somewhere and running and hiding on foot, before the chase gets too big (and especially before a helicopter shows up). Depends where you are, of course.

<comment><USER3> Excellent chance of getting away if you can stop (without making a scene) and blend into a crowd, hop onto a subway car etc.</comment></comment>


Ask HN: Best single board computer for computer vision? - <AUTHOR> I know there is a Raspberry pi 3 on the market right now but I was wondering is there any other more powerful option for an embedded computer vision project (with OpenCV) ? <comment><USER2> Have you had a look at the BeagleBoard?

Or maybe something like this [http://www.nvidia.com/object/jetson- tk1-embedded-dev-kit.htm...](http://www.nvidia.com/object/jetson-tk1-embedded- dev-kit.html) ?

<comment><AUTHOR> The BeagleBoard doesn't have such strong processing capabilities that I need.

However, this Nvidia TK1 seems like a perfect match, It is bit expensive but definitely worth investigating more.

Thx for the info!

</comment></comment><comment><USER3> [https://developer.nvidia.com/embedded/buy/jetson- tx1-devkit](https://developer.nvidia.com/embedded/buy/jetson-tx1-devkit) ?

<comment><AUTHOR> $599

It has a hefty power but also a hefty price! Never heard of this one. Thanks for the info!

</comment></comment><comment><USER4> FPGA?

[https://hackaday.io/project/2951-fpga-opencv-object- tracking](https://hackaday.io/project/2951-fpga-opencv-object-tracking)

<comment><AUTHOR> Never actually worked with FPGAs...

How difficult is to set everything up on it, as now it seems it is just the best to stay out of it?!

<comment><USER4> It's more work, so one might not start with an FPGA but if you need performance...</comment></comment></comment>


Ask HN: Any tips for selling SaaS to colleges/universities? - <AUTHOR>

I have been working on a product that will help colleges cut down their levels of roommate conflicts and have started sending emails and making calls.<p>Any tips for how to elicit the most interest from these universities? Dealing with universities is a bit tricky, and I would appreciate any advice or experience you all could offer. <comment><USER2> To me, this looks like the sort of thing a university develops in-house [and maybe hopes to license]. See: <http://www.uga.edu/housing/prosstudents/roommate.html>

> _"a product that will help colleges cut down their levels of roommate > conflicts"_

Can you really substantiate that claim and quantify a cost savings associated with it?

If not, there's too much blowback potential for a college administrator to gamble on it.

.</comment>


A Brief History Of: The Therac-25 (Short Documentary) - <AUTHOR> https://www.youtube.com/watch?v=-7gVqBY52MY <comment><AUTHOR> This is a fresh look at one of the nastiest software engineering disasters ever. While it was not the deadliest nor the most harmful, it is a great case for examining what we desire when we ask for our computers to be correctly programmed.</comment>


Ask HN: Experience with Hamming's Advice: "Keep your subconscious starved" - <AUTHOR> I feel a strong resistance against it - it sounds like it might drive me mad - and I read that many great ideas were had while their inventors tried to focus on something else. On the other hand it also sounds tempting. "so you can sleep peacefully and get the answer in the morning, free."
Even if you decide to do it, how do you force yourself to follow through with it.
What are good schelling points, like I'll think about this for a day, a week, then do other things ..?
I didn't have internet access for a while and I managed to write down some things I had had in my head for some time, so that's some data for it. <comment><USER2> Have you seen "Hammock-Driven Development"? It's a great talk.

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


The Chromebook Pixel's best feature - <AUTHOR> http://shayelk.in/?p=841 <comment><USER2> I feel like I'm taking crazy pills when I talk about aspect ratios with average consumers. Most people really do believe--probably through HDTV marketing--that wider screens are better. The lion's share of most people's time on the Internet is spent reading and scolling vertically, yet our devices are optimized for watching little sixty second movie clips at a time. Why wouldn't you want to make the 95% case more pleasurable at the expense of a few black bars on the top and bottom of your movie? Besides, most Internet videos need to be upscaled to fill the screen anyways, the detail is mostly interpolated anyhow.

<comment><USER3> The author dismisses the possibility of side-by-side windows on a small screen, but I no problems using multiple windows on my 1080p 15" laptop screen. Therefore i find a wider screen much more productive--it's much harder to intelligently fill a screen with a narrower aspect ratio

<comment><USER4> I have a 13" Macbook Air with a reasonable 1440x900 resolution, and I can fit about 1 1/3 windows on screen, at best: a narrower-than-usual browser window and TweetBot.

Laptop screens are generally not wide enough to fit two windows side by side. Even the ones that are, such as your 1080p 15" laptop, are unusable for most of us due to tiny text and so on.

<comment><USER5> My 15" MBP at 1400x900x2 is wide enough to fit a split editor, or an editor and part of a terminal (I find that having part of a background window visible makes it less jarring to switch to it). I wouldn't mind it being physically taller, but I wouldn't want it to be any narrower.

<comment><USER4> 1440x900 is just enough for me to use Sublime Text 2 in two column mode, or Xcode with the assistant editor. I do have to hide any sidebars for both to be usable.

I stand by earlier post for, say, a web browser or email client.

</comment></comment></comment></comment></comment><comment><USER6> Absolutely. I hated when everyone started making 16:9 monitors. The 16:10 ones weren't quite as bad, but seriously, give me some vertical pixels. Especially true for coding where it's useful to see as many lines of code on the screen at possible.

<comment><USER7> Get a monitor stand that swivels, so you can use the 16:9 ratio to your advantage. The only catch is that you start noticing when people write long lines over 120 chars, though they shouldn't do that in the first place.

Edit: It's also really awesome for reading/editing documents, since you can fit the full page onscreen.

<comment><USER8> I'm doing this right now @ work with 2x16:9 monitors. Coworkers are amazed and amused, but if you don't do this with IPS panels, the vertical viewing angles (now horizontal) are pretty bad on most non-IPS monitors... so it's sometimes hard to share your screen.

</comment></comment></comment><comment><USER9> I agree.

I really dislike 16:9 on productivity machines. It's not wide enough for 2 windows side by side, and too short for a single window.

Even Lenovo has recently switched to 16:9 (probably from the incentives of Microsoft Windows 8), leaving Apple as the last one standing making 16:10 laptops.

16:10 is the maximum wideness I can accept, but 3:2 (i.e. 15:10) would probably be slightly better.

</comment><comment><USER10> The Pixel's best feature is the touchscreen. The first time you tap a tiny onscreen link with your finger, instead of trying to aim for it with the trackpad, or the first time you pinch to zoom out on Google Maps, you'll never want to use a non-touchscreen laptop again.

<comment><USER11> My understanding (source: most recent verge podcast) was that the touch screen doesn't support pinch to zoom - is that incorrect? I'd love to be wrong

<comment><USER12> It does, according to the product page.

[http://www.google.com/intl/en/chrome/devices/chromebook- pixe...](http://www.google.com/intl/en/chrome/devices/chromebook-pixel/#pixel- touch)

</comment></comment></comment><comment><USER13> This blog entry presents a single argument: aspect ratios should favor a more narrow width because they should aspire to the readability of a page.

That's a single bullet point in a long pro/con list and you'll never reach consensus on the definitively correct aspect ratio. Plenty of people watch movies on their computer screens, others like having an IDE with frames on the side, others want games to spread across their horizontal field of view and some just think it looks modern. Why on earth does that make the screen ratio 'boneheaded?'

Be excited for your preference, argue the use cases that it suits, that's all fine. Maybe toss the prescriptive attitude that your opinion is categorically correct for everyone else who has not yet discovered it.

<comment><AUTHOR> (author here) I would have written that as a one line, but to quote Pascal, "that I had not the leisure to make it shorter then it is." Thank you for doing that for me.

I don't call for a single aspect ratio: I just call for more variety: there is a good use case for more squarish laptop screens, but they are gone from the market, the main reason for that mistake being copying TV designs.

</comment></comment><comment><USER14> I find the aspect ratio an interesting choice. And I agree that 'wide' isn't necessarily "good" with laptops. Although, as the Ubuntu for Tablets demo showed, you can do some interesting things with the extra space to the right of a 4:3 (or 3:2) chunk.

I would really like to see some interesting really wide and short touch screens as the 21st century replacement for 'function' keys along the top of the keyboard. Sure there are keyboards with LCD screens on every key but a nice 1920 x 480 bar that was as wide as the top of my keyboard, three rows of 12 "160 x 160" 'super tiles' I could put status in, or touch to activate, or what not, but below the screen where its easy to press my finger. Won't happen for a while though I'm afraid.

</comment><comment><USER15> Google should make Android tablets 3:2, too, if they aren't going to make them 4:3 like Apple. It should be a bit better than 16:10, which I think still turns a lot of people off from using Android tablets vs iPads, knowing they can't really use them in vertical mode.

<comment><USER16> The Nexus 7 viewport feels very book-like as portrait. The iPad is the one that looks "wrong", too fat.

<comment><USER17> This is a matter of opinion, and I imagine probably highly correlated with which device you own.

<comment><USER18> "book-like" seemed spot on, maybe it's also correlated with how much time you've spent holding print books in your hand?

</comment></comment></comment></comment><comment><USER19> How big of a difference is this though? 16:10 is 3.2:2.

<comment><USER20> Lots of different comparisons here: [http://en.wikipedia.org/wiki/Aspect_ratio_(image)#Visual_com...](http://en.wikipedia.org/wiki/Aspect_ratio_\(image\)#Visual_comparisons)

</comment></comment><comment><USER21> Interesting observation. I don't particularly care if the Chromebook succeeds or not, but I wholeheartedly agree that the trend towards wider and wider (i.e. shorter and shorter) screens was terrible. In addition to all the valid points I'm seeing other people make here, it's also worth noting that the move to widescreens has enabled manufacturers to ship displays that, based on their diagonal measurement, a customer would think are larger than their non- widescreens when they're actually the same size or even smaller. For example, a 47" 4:3 screen has the same area as a 50" 16:9 screen.

<comment><USER22> <http://tvcalculator.com/> has been around forever and is good for comparing these things.

</comment></comment><comment><USER23> The 13" retina Macbook Pro is 2560 x 1600 at 229 ppi - about the same.

<comment><USER9> They use 16:10 screens. The 13" rMBP has 2560x1600 resolution while Pixel has 2560x1700, 100 pixels taller.

</comment></comment><comment><USER20> That's a very interesting point. I remember when we had 15 and 17" LCDs back in the day that were always nearly square. Now it seems rare to find a computer screen even remotely square.

<comment><USER24> I find this (oddly) most pronounced on the iPhone 5. On previous models, landscape browsing was a valid option, but once you get the extra length vertically in portrait, the limited landscape view feels completely uselessly constrained.

</comment></comment><comment><USER25> Personally, my preference for aspect ratio varies by screen size and how I'll likely divide it up.

On a small laptop screen like a Chromebook, I agree with the author that a wide aspect ratio can be annoying because a maximized window often feels to short.

On a large monitor (ie 27+ inches) though, I think wide aspect ratio is good because a common use case is multiple side by side windows, and it's also a good fit for full screen video.

</comment><comment><USER26> Use xmonad, reclaim your space.

</comment><comment><USER27> I held onto my 3:2 thinkpad until it died for exactly this reason. You literally couldn't buy a new 3:2 laptop. Especially on small screens it is so much better.

</comment><comment><USER28> Who makes the panel, is it custom?

</comment><comment><USER29> It is a great machine crippled with 32gb hard drive.

<comment><USER30> Well, obviously it's marketed as a device that is supposed to have the lion share of its data in the cloud. In that regard, 32GB is plenty.

I like to think of it as something that could make a pretty neat remote desktop workstation. I've actually thought about putting my main linux workstation on the LAN, somewhere else (it's a bit noisy) and logging into it from a thin client. The Chromebook Pixel does make a rather attractive option for that.

Of course, you'd have to slap a proper OS on it, but that may be an intentional hidden option. I'm also not up to date on how well modern day RFB/X11 performs in terms of i/o latency, so I have all this marked as "potential weekend project".

<comment><USER31> Actually it would be a pointless to use it for the purpose you describe.

What truly separates Pixel from a $250 laptop is the retina, touchscreen display which is wasted if you are exclusively using it for VNC.

<comment><USER30> The touchscreen maybe, but why the high resolution?

</comment></comment></comment></comment><comment><USER32> anyone knows if i can just replace it with a custom ssd and put on a random linux distro? i have a feeling the answer is no.

also 4 gb? not for me ;/

</comment><comment><USER33> The oculus rift is going to be an unbounded monitor. It has no screen size!

</comment><comment><USER34> Currently they say the battery comes upto 5hrs. If they could double it up, it will be great,

<comment><USER31> Really. The only thing not making it a 'great' device is the battery life ?

You do realise that ALL it does is surf the web ? I don't understand why anybody would buy it over an iPad or a refurbished MacBook Pro. I personally think it is one of the most pointless devices released in the last few years.

<comment><USER29> It can boot Linux. In that regard, it has the potential to be a general purpose laptop. Although you have to keep your files in the "cloud" because it only has 32gb of storage.

<comment><USER31> It can boot Linux but the trackpad and touchscreen doesn't work.

Again. Why wouldn't you buy a MacBook Pro that is usable out of the box ?

<comment><AUTHOR> I ran into warranty issues with the last Mac I owned, and swore never to buy one again.

But even if I did, I'm not sure it would run a sane Linux distribution out of the box (from what I'm reading, it's a bit touch and go,) and I don't consider a computer usable unless it can run the setup I need, which depends heavily on Linux -- developing on Mac OS X and deploying to Linux never worked for me: I could never keep a "sane" environment with the former.</comment></comment></comment></comment></comment>