AT&T Caps Unlimited Data Plans - <AUTHOR> http://online.wsj.com/article/SB10001424052970203986604577255532947217336.html?mod=WSJ_hp_LEFTTopStories

<comment><USER2> When someone offers you an unlimited plan, or says that you must sign a contract, watch out. The former means that there is a limit, and it is low and they don't want to tell you what it is. The latter means that their service is so crappy, the only way they can keep you is by legally obligating you to keep paying them.

We've seen this with "unlimited" web hosting: practically it means that you can only store a certain amount of data and only have so much bandwidth, and when you start "abusing" the service, you get booted. Calling it "unlimited" gives the provider a license to change the rules whenever it sees fit.

I welcome data caps and limits. If AT&T tells me I can only use 2GB of data and at what speed I can make an informed decision on whether to go with their offering or not. I would like to see the limits be more near a 20-30 GB mark as that is my usage, but that is better than "unlimited, but if you do something we don't like we limit you". Please, if you run any kind of service, put a limit on it an make sure you can meet the demand, unless the resource is not constrained on your part in any practical sense. For example, I say "unlimited email notifications" on Ping Brigade, but there is no real constraint in place. However, I put a hard limit on how many services/servers you can monitor because I know the limits of my system and I have planned for capacity (and have a plan to expand the capacity if all of a sudden the service gets popular).

Contrast that with AT&T, who sold first and build the service later. I guess though that it works out for them: they have billions while I can only buy noodles with my earnings.

<comment><USER3> I think you're off base on this and are looking at the issue from a single side.

The "Unlimited Data Plans" are cooked up through marketing departments that take a broad look at the numbers their network can ideally handle and conclude that when matching up customer usage models to these numbers they can offer a service that exceeds the average user's need. If they evaluate the market and determine that the average user is a 2GB/month type user and their network is supposed to be able to handle upwards of 7GB/month per user at their projected service rates they make the offer that "unlimited" is what is offered.

From the consumer's P.O.V. an "Unlimited" data plan looks much better than a "7GB/month" data plan. Smoke and mirrors.

What happens is the power users or edge cases to these hypothetical usage models break down that service offering. A lot goes into a mobile network and heavy users CAN cause issues to the equipment out in the field. What happens is the tech side of the provider begin to scramble to make things happen, project budgets skyrocket and everything suddenly looks terrible on paper.

The next step is then to realize that "unlimited" is a pipe dream and is really only available to those people who check the weather and read their emails on a daily basis.

/rant

tl;dr - its not a malicious decision by the provider to make these offerings. They work with models and offerings from a business perspective that aren't ideal from a technological perspective and the disjoint creates problems on the bottom line. To the end user however it looks like a planned event.

<comment><USER4> _"marketing departments that take a broad look at the numbers their network can ideally handle and conclude that [...]"

"the power users or edge cases to these hypothetical usage models break down that service offering"_

I don't see how you can write the former and then get the culpability so wrong in the latter. It's not the "power users" or "edge cases" that broke the model, it's that the _model was wrong_. AT&T thought they could offer "unlimited" service at a certain price, and they were wrong. And rather than honor it and lose money, or change their pricing and lose customers, they are cheating with a throttle.

I'm sorry, but that _is_ malicious. They're playing with the dictionary definition of "unlimited" instead of offering their customers the service they promised.

<comment><USER3> My apologies for my poor explanation. You're entirely correct with what you've said. The model they employ certainly is broken if it doesn't account for the possibility that not everyone falls into their ideal customer. When I said that "it is not malicious" I really should have stated that it is not with malicious _intent_. A marketing manager doesn't create offerings that they feel will piss off the customer base because a child could tell you that unhappy customers == churn and by extension churn == less marketing jobs as the company shrinks.

I merely wanted to provide a perspective as to what sort of train of thought is followed regardless of how logical it may be.

<comment><USER4> OK, agreed. It's not a bait and switch. AT&T honestly believed their pricing was sound. I believe that too.

<comment><USER5> I don't, not for a minute. Look at how the AT&T iPad plans changed a month after launch. That was not a usage based decision, and it takes longer for a company their size to create the materials than the time between launch and the change.

They've known what they were doing, and considered these actions a viable contingency.

</comment></comment></comment></comment></comment></comment><comment><USER6> This outcome is actually better than what AT&T previously has been doing.

At least now unlimited users on the grandfathered $30 plan can consume the same amount of data as the 3GB/$30 metered plan, and only get throttled after 3GB.

Up until now the throttling trigger was at 2GB. When people called AT&T and told them that customers on the current 3GB/$30 plan got more data than those on the "unlimited" plan (yet paid the same price), they were told that they were more than welcome to switch to the metered plan that doesn't get throttled.

<comment><USER7> I wish they made this an actual option though. When you hit your cap, do you want AT&T to charge you for the overage or drop your speed? Right now it's a one-way decision, and only for those who still have an "unlimited" plan.

</comment></comment><comment><USER8> I can't believe no one is talking about how this is all arbitrary and all made up, and a part of an ongoing fleecing of the public resources, the airwaves, like they fleeced us on the right-away we gave them, the telephone lines, which resulted in the whole dark fiber hooked up to nothing.

<comment><USER9> Why don't you explain it yourself?

<comment><USER8> Well, in a nutshell, back in the 80s, there was a fee tacked on to all phone bills for "upgrades" that had listed among other things that everything would be moving to fiber optic. Instead they sort of double dipped. You can read articles like <http://en.wikipedia.org/wiki/Dark_fibre> perhaps as a starting point, but essentially they charged their customers a special government mandated fee, that allowed them to build it out but not actually have to hook it up anywhere, and then when everyone forgot about this fee and what this really was, then treated as this new asset they could sell off, all while never actually figuring out the last mile problem, which was the heart of the original law to begin with. So now with wireless it is the same thing, where terms get thrown around like "bandwidth" and "capacity" and while they want to, on one hand, say that these are limitations from the FCC or just plain physics, they are actually words to describe the fact that it is their towers, or the connections to the towers, that they purposefully keep limited in order to facilitate very high profit margins. So they tell their customers "have all of this unlimited everything" but they've only built out (of their own equipment mind you) the ability to service 10% maybe of what they sell, so that when people actually start using it, they can then blame the customer, all the while showing ever increasing profits to their shareholders. I would be very very suspect of anything any of the damned companies have to say about their own capacity, and be very careful not to assume that it is the airwaves that are full, but it is really their equipment that they've oversold.

</comment></comment></comment><comment><USER10> I just got off the phone with AT&T customer support. While the representative was sympathetic, she stressed that "AT&T is not required to provide notification of service changes." I informed her that this change constituted a major change in service, and that I viewed it as grounds to waive the ETF and get out of my current contract. This, apparently, is not a view shared by AT&T. I'm debating wether or not to call again and be nasty to see if I can get out of my contract, but I doubt it will do any good.

</comment><comment><USER11> A big problem, though, is the severe and opaque nature of the throttle. From what I've heard ATT throttling can cripple the connection even for email. On the other hand I was barely annoyed when my carrier put in a throttle after a couple gigabytes because the speed is still a quarter megabit.

<comment><USER12> I ran a speed test on my (throttled) AT&T 3G connection on my iPhone 4. 5 bars, perfect signal here. 0.03 Mbps down and 0.02 up. It's absolute bullshit.

<comment><USER13> why stick with them now that the 4 major cell phone companies have the iphone and 1 (Sprint, i think) even offers unlimited unthrottled data plans?

<comment><USER14> And that's the trick: AT&T implemented throttling just after all the dedicated iPhone users upgraded to an iPhone 4S and locked themselves in for another two years.

Disgusting, eh?

<comment><USER5> You didn't have to lock in. If you paid full price for the iPhone 4s, then when you first plugged it to iTunes, you got a "congratulations, your phone has been unlocked" message, and the phone stopped being carrier locked. This worked since iPhone 4s release day, before the 'official' unlocked phone shipped.

</comment></comment></comment></comment></comment><comment><USER15> Advertising "unlimited" and then not providing it should be illegal under truth in advertising law. It's well past time for ISPs to get rid of this whole "unlimited" concept and start charging reasonable rates for usage.

<comment><USER16> Why can't we just have unlimited for wire-based services?

Also, I'll take a flat rate over "reasonable rates for usage" any day, when it comes to my internet. I'm sorry, but my usage varies wildly, and I want a consistent bill I can trust.

I would be in support of a "$0.25 a GB of 35/35 until you hit 250GB, then flat rate of $X for the rest of the month, at a limited 15/10" or something like that

<comment><USER15> Wire-based services suffer from contention as well, just at a much higher usage than wireless services.

A provider's costs to serve you are largely fixed. A sane bill will have a large fixed cost plus a variable cost for usage. For example, rather than the fixed ~$45/month I pay to Comcast, I'd expect to pay something like $30/month for the connection itself, then another $15 (or perhaps more, since I'm probably a heavier user than the average) for bandwidth.

We manage to get by without fixed bills for gasoline, food, electricity, water, etc., what makes internet special where you absolutely need it to be consistent?

<comment><USER17> For wired lines, he provider does not pay for usage, it pays for a certain sized pipe. So if you use a terabyte of data in a month but all of it comes at off-peak times, but your neighbour uses 10 gigabytes a month but always does it during the peak evening period, your neighbour costs the provider more than you do.

<comment><USER15> If the provider did not pay for usage, then why would they care how much you use in a given month? And yet, wired internet providers are demonstrably upset if you use "too much", with some even having official policies of kicking you off their network if you do it consistently.

Ultimately capacity is the limiting factor, but the way capacity is managed is to charge people to use it. Your ISP is charged by the byte for its connections to other ISPs.

You're absolutely correct that usage patterns greatly impact the cost of usage, but simply charging by the byte is a good approximation. A more sophisticated arrangement might have different prices at different times of day (this is already common for electricity) but so far it doesn't appear that this is necessary.

</comment></comment></comment></comment></comment><comment><USER18> I'm with Sprint and they offer unlimited data for iPhone users and probably across their network for smartphone users.

My usage is higher then average but even using Spotify and Pandora in the car everyday (30 to 40 mile drives) I rarely go over 2 gigabytes.

</comment><comment><USER19> if i recall correctly, it used to be the case that if a cell phone provider made major changes to an individual's contract (at least in california), one had a small window to terminate the contract without the termination fee (or with a reduced termination fee).

am i mis-remembering this or does anyone know if this is still the case?

<comment><USER9> That sounds correct. I used this before in Washington, DC when I was a Verizon subscriber. I cannot remember what Verizon changed at the time... It might have been the price on text messages. I did the same with Sprint when I changed to an iPhone in 2009 also.

I'm very interested to know if this applies here. I've been LOOKING for a free way to switch from AT&T to Straight Talk!

</comment></comment><comment><USER20> Off-topic: How do people typically go over 3GB in a month? The only time I came close was when Spotify forced a re-download of all my previously-cached music and I had my wifi turned off. My IT person (in a company <50) said I'm the only person to have ever gone near 2GB.

I'm sure you can easily go over the limit by streaming Netflix...but I generally watch Netflix at home.

<comment><USER21> On my Android phone I use the doggcatcher app to download podcasts. I go well over 3gb each month, but as a Sprint customer I currently do not need to worry about the limits.

I could certainly set the app to only download on wifi and avoid the issue entirely. However, it is quite nice to have it check hourly for new podcasts and download them at that point no matter where I am.

<comment><USER22> AT&T has pushed on us hard. We pay almost $200 for 2 people. We will be moving over to T-Mobile when the contract is up. It will save us almost $100 a month and still keep the unlimited plan. Ive had enough of AT&T for a while, im just waiting for this damn contract to be done with.</comment></comment></comment>


Even Great Mathematicians Guess Wrong - <AUTHOR> http://rjlipton.wordpress.com/2011/04/13/even-great-mathematicians-guess-wrong/ <comment><USER2> Well, his argument is unconvincing -- it only proves that there is no _normed_ division algebra on R^3. Division algebra on R^3 would be interesting and maybe useful even without norm. However, its existence is still impossible. One can prove it for instance by noticing that if it existed, then {1, v, v^2} for any non-scalar v would span whole R^3 (the hardest part of proof), so v^3 would be a linear combination of them, say v^3 = a 1 + b v + c v^2 for some a, b, c \in R. Then v is the zero of polynomial f(x) = x^3 - c x^2 - b^x - a. But deg f = 3, so it has real zero, so for some q, w, p \in R, f(x) = (x-q)(x^2 + w x + p), and 0 = f(v) = (v-q)(v^2 + w v + p 1), and factors on the right side are non-zero, so we have non-trivial zero divisors which is imposible in division algebra.

There is also a theorem due to H. Hopf, stating that the only finite dimensional, commutative division algebras over R are C and R itself, but the only proof I know requires pretty heavy topological machinery.

</comment><comment><USER3> I think it's an even better story how he "guessed wrong" with Hamiltonian mechanics, also; the only difference is that he never fixed the mistake and it wasn't really fixed until the early 20th century with the development of optimal control.

See "The Brachistochrone Problem and Modern Control Theory" ([http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.26....](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.26.825&rep=rep1&type=pdf))

The TL;DR is that classical mechanics can be formulated as finding a time history of position and velocity which minimizes a certain function of them both. Hamiltonian mechanics essentially optimizes the function over position and velocity as if position and velocity were independent, then adds the constraint that velocity be the time derivative of position via a Lagrange multiplier. This Lagrange multiplier is the momentum.

Of course, no one in a physics course actually learns it that way; undergraduates just memorize some equations and graduate students, if they are lucky, learn if from the Hamilton-Jacobi equation (which is how Hamilton developed it in the first place) where the momenta become the spatial gradient of the function to be minimized when evaluated at all positions. (It's exactly the same as the Bellman return function in dynamic programming; hence the name "Hamilton-Jacobi-Bellman equation.")

IMHO, neither of these other developments is as intuitive as the Lagrange multipler one; but because Hamilton's original formulation obscures it, no one in physics learns it that way.

A fun postscript: when you consider the equations of classical mechanics in terms of position and momenta (this combination is what physicists call "phase space") they form a manifold with a special property called "symplectic"; symplectic geometry can be formulated in terms of matrices over the field of quaternions. According to some people, this idea was a big breakthrough, but I don't believe Hamilton himself, despite having formulated both, ever noticed.

<comment><USER4> _"IMHO, neither of these other developments is as intuitive as the Lagrange multipler one; but because Hamilton's original formulation obscures it, no one in physics learns it that way."_

I'm pretty sure learning a bit about Lagrange multipliers is standard for a grad classical mechanics class. Granted, I've forgotten all I learned back then, b/c it has never come up in anything else I do, but it was definitely part of the course.

<comment><USER3> I believe it used to be standard to use Lagrange multipliers to handle constraints on the state space in R^n as an alternative to using generalized coordinates. For example, when you handle the case of motion on the surface of a sphere you can either use R^3 with a Lagrange multiplier enforcing the constraint that you stay on the surface of the sphere, or you could use latitude/longitude as coordinates.

The interpretation of the momenta themselves as Lagrange multipliers is completely nonstandard, though. Try googling "hamiltonian mechanics lagrange multipliers"; you'll get either examples like the sphere thing or hits from optimal control tutorials.

</comment></comment></comment><comment><USER5> Another great example (technically a physicist, not a mathematician) is Einstein and his quest for a local theory of quantum mechanics.

In his original paper deriving EPR ( <http://en.wikipedia.org/wiki/EPR_paradox> ), he believed it was a reducto ad absurdum which invalidated configuration-space based quantum mechanical theories:

 _We are thus forced to conclude that the quantum mechanical description of physical reality given by wavefunctions is not complete [...] No reasonable definition of reality could be expected to permit this._

<http://prola.aps.org/pdf/PR/v47/i10/p777_1>

Nevertheless, he thought a local and complete theory of QM was possible and spent many years searching. Bell showed this to be impossible (after Einstein's death). Eventually experiments showed the predictions of the EPR paper to hold, thereby implying that the definition of reality is not "reasonable".

If a scientist never gets things wrong, they aren't doing anything interesting.

</comment><comment><USER6> If you enjoy playing around with quaternions, you may also have fun with geometric algebra.

Geometric Algebra for Physicists is very clear and gently paced. [http://www.amazon.com/Geometric-Algebra-Physicists-Chris- Dor...](http://www.amazon.com/Geometric-Algebra-Physicists-Chris- Doran/dp/0521715954/)

This one also looks good: [http://www.amazon.com/Linear-Geometric-Algebra- Alan-Macdonal...](http://www.amazon.com/Linear-Geometric-Algebra-Alan- Macdonald/dp/1453854932/)

</comment><comment><USER7>
         Complex numbers are a powerful tool for studying the two-dimensional plane: each point corresponds to a unique complex number . The beauty of this correspondence is that it allows you to add, subtract, and multiply points in the plane

I wish someone would have told me this five years ago, it is such a neat way of thinking!

<comment><USER6> My introductory physics class in college included a problem that investigated the effects of "2d" gravity (a generic attractive force proportional to 1/r instead of 1/r^2) on a point mass in the plane.

When the professor mentioned that I could write all the vectors as complex numbers, and do regular old algebra with them, my brain almost melted.

</comment></comment><comment><USER8> Another fascinating idea is to consider the split-complex numbers (and their split-quaternion cousins) as ways to express hyperbolic geometry (in 2 or 3/4 dimensions respectively).</comment>


GitLab – Announcing March 20, 2018 Critical Security Update - <AUTHOR> https://about.gitlab.com/2018/03/16/gitlab-critical-release-preannouncement/ <comment><AUTHOR> There is a new minor patch released today[0].

I don't understand if this minor patch will fix this critical issue or not.

[0] [https://about.gitlab.com/2018/03/19/gitlab-10-5-5-released/](https://about.gitlab.com/2018/03/19/gitlab-10-5-5-released/)</comment>


Accelerate State of DevOps - <AUTHOR> https://cloud.google.com/blog/products/devops-sre/the-2019-accelerate-state-of-devops-elite-performance-productivity-and-scaling <comment><AUTHOR> The direct link to the report is [https://services.google.com/fh/files/misc/state-of- devops-20...](https://services.google.com/fh/files/misc/state-of- devops-2019.pdf) .</comment>


Probabilistic Models of Cognition - <AUTHOR> https://probmods.org/ <comment><USER2> Good reading. Nice introduction that explains when approaching AI development it's difficult to provide a computer with an exact rigid mechanical model of how the world works, and that's not how we think anyway, but rather we store a lot of small inference models we learned of how things work in general, and then we recall these simple rules to make guesses on what will probably happen in each situation, hence the probabilistic approach to cognition.

</comment><comment><USER3> Wow. Even starting to explain generative algorithm that can predict a sentence completion or estimate flight of a ball to a dunderhead like me is a tall order - but they have started well

<comment><USER4> Where is the flight of the ball explanation? Do they explain "gaze heuristic" in it?

<comment><USER3> I was extrapolating from cognitive thought and physics to the obvious example

</comment></comment></comment><comment><USER5> I had like a lot of pop-ups with ajax failures?

<comment><USER6> I'm one of the developers.

Yeah, sorry about that. Parts of the javascript are packaged using Browserify, but other parts are loaded using a too-clever topological order hack I wanted to try.

This should get fixed by a couple weeks from now (I'm a grad student and this isn't my full-time project :/) but just try reloading the page until you don't get errors.

<comment><USER5> Okay, Mainly I just wanted you to be aware of it too ;)

</comment></comment></comment><comment><USER7> Is there a dead-tree version yet? This is required reading.

</comment><comment><USER8> love this book.</comment>


Gods, Gurus, and the Search for the Holy Grail: Bach Recordings from 2018 - <AUTHOR> https://hudsonreview.com/2019/02/gods-gurus-and-the-search-for-the-holy-grail-bach-recordings-from-2018/ <comment><USER2> I have nothing concrete to base this on but I've always found it a source of inspiration that perhaps what contributed most to Bach's genius is the fact that his compositions were literally his work. I.e. he was paid to write and perform music.

Literature on creativity stress that it's less about possessing some kind of 'gift' but rather the importance of simply showing up, whether you're feeling inspired or not, and pushing through the resistance to just create something. Anything.

I like to think that Bach's music is evidence of this.

<comment><USER3> I agree. Knocking out a mass a week at least ups your production and keeps your creativity in good form.

Another case that I marvel at is Carl Stalling. During the heyday of the Warner cartoon unit he did most of the scores. Yes, yes, not the same as Bach -- Stalling cribbed a lot of well-know music and had access to the Warner music catalog. But the production rate! Imagine: The Warner cartoon studio had 4 units. Each unit did one feature per month, so that they could deliver one new animated short feature every week. Show up Monday with blank paper. Record with the orchestra at a Warner sound stage on Friday. Repeat every week. Wow.

<comment><AUTHOR> In a similar vein writers such as Dickens, Sir Arthur Conan Doyle and Dumas were heavily serialized and required to produce content at a rate that few of our contemporary writers could match [0].

[0] [https://en.wikipedia.org/wiki/Serial_(literature)](https://en.wikipedia.org/wiki/Serial_\(literature\))

</comment></comment></comment><comment><USER4> My problem with Bach is that the best advice to a musician seems to be: Just play the notes.

Most other composers can benefit from creative interpretation.

<comment><USER5> Do you know "Play Bach" from Jacques Loussier Trio?

<comment><USER6> I don't know if he does but I do and it is a favorite for many years, so long that I had the original on vinyl.</comment></comment></comment>


Ask HN: Which press release distribution service? - <AUTHOR>

Which press release distribution services provide the best bang-for-buck for consumer focused techreleases? I'm based in Canada, but the only audience restrictions are english speaking, broadband, and privacy concerned/interested. <comment><USER2> How about www.prweb.com? Seems to be very used...

</comment><comment><USER3> Search the old YC posts - comes up about 1-2x a month. <http://searchyc.com></comment>


Why Organic Food Costs So Much - <AUTHOR> http://www.mint.com/blog/trends/organic-food-07082010/ <comment><USER2> Point 2 is weak.

Farmers only need to reach an economy of scale up to a certain level. I'm a member of a local CSA (community supported agriculture) and the prices are way less than organic at Whole Foods or a comparable market.

Much more worrisome is government subsidies to large farms _cough_ corporations _cough_ and kickbacks from these large farms.</comment>


Amazon: 7 Billion in European Profits, no Tax - <AUTHOR> http://www.guardian.co.uk/technology/2012/apr/04/amazon-british-operation-corporation-tax

<comment><USER2> It is unfair that big companies like Amazon avoid paying taxes while the old traditional bookshop companies who play by the rules and pay taxes can hardly survive the competition. It is time to stop this unfair practices by the new high tech companies such as Amazon, Apple, eBay, etc...

</comment><comment><USER3> "If the same profit margin was applied, this would have generated taxable profits of £266m-£360m"

incorrect to say £7 Billion Profits.</comment>


Show HN: I made a thing to copy custom Slack emojis between teams - <AUTHOR> https://slackporter.com

<comment><USER2> I was thinking of making this but haven't gotten around to it. Thank you!!

[https://twitter.com/andyjiang/status/587835685672849409](https://twitter.com/andyjiang/status/587835685672849409)

</comment><comment><AUTHOR> Oops; I shouldn't have used 'Slack' in the domain name. Gonna shut this down for now, but I will leave the source up.

<comment><USER3> Where can I find the source? I could actually make use of this.

<comment><AUTHOR> I was going to make the domain name redirect when I got a chance, but until then:

[https://github.com/mootcycle/slackporter](https://github.com/mootcycle/slackporter)

</comment></comment></comment><comment><USER4> This is a very specific tool.</comment>


I'm a moleskine guy, what do you all doodle and brainstorm in? - <AUTHOR>

<comment><USER2> I can never commit to a book of blank paper. So when I find scraps of paper, like receipts or a page to tear out of something, I write everything on those and staple them together as I go so I'm not carrying around excess weight and it fits in my pocket. And I'm always sure to have free, ugly paper surfaces to fill with my ugly writing for the rest of my life.

</comment><comment><USER3> Like Moleskine only way better: <http://www.leuchtturm1917.com/en/content/medium-notebook> I love the dotted ones. Hard to find though.

<comment><USER4> What distinguishes it from a moleskine?

<comment><USER5> Much heavier paper, less bleed-through. If they don't feather fountain pen ink badly, I may have to invest in some.

</comment></comment></comment><comment><USER5> My carry-everywhere notebooks are Moleskines, mostly because I have a ton of them I got for a song on a good sale a while back. When that stash runs out I'll look for something with an equally-or-more indestructible cover and better paper inside.

At my desk, I have a pretty extensive collection of papers, but my go-to for quick brainstorming or hashing things out is a couple of Arc notebooks (Staples' in-house brand). It's easy to move the pages around, and the paper is very fountain-pen-friendly.

</comment><comment><USER6> Just got some Rhodia dot grid paper (<http://rhodiapads.com/collections_boutique_dotPad.shtml>) to sketch out layouts and icons and I love it. For brainstorming and general chaos organization, I use iThoughtsHD. If I ever run into a bump in the road, I highly recommend the free and beautiful Unstuck iPad app.

</comment><comment><USER7> 8.5x11 printer paper is my favorite. You can find it in any office, school, or modern home. It makes no assumptions about line direction or grid size. And with entry-level origami techniques you can reconfigure it into mobile sizes. Then, when you realize what you wrote on it wasn't actually important, you can use it as an impromptu fly-swatter or dustpan.

</comment><comment><USER8> Any pocketable notebook with square grids, I've used moleskine and these:

[http://www.amazon.com/Leuchtturm-Pocket-Notebook-Squared- LB1...](http://www.amazon.com/Leuchtturm-Pocket-Notebook-Squared- LB12/dp/B002CVF7Y4/ref=sr_1_1?ie=UTF8&qid=1344361045&sr=8-1&keywords=leuchtturm+pocket+squared)

</comment><comment><USER9> I carry one of these in my back pocket at all times. "a year of white pages" by Nava. You switch books every month, and then can look at them later.

[http://www.navadesign.com/_funzioni_articoli_dettaglio.php?A...](http://www.navadesign.com/_funzioni_articoli_dettaglio.php?A=ESPONE3)

</comment><comment><USER10> Wirebound artists sketch pads. Usually the store brand from Office Depot or Staples or wherever I pick up a fresh batch. I carry at least one of these things and box of colored pencils, plus a couple of drafting pencils, with me most of the time for quick doodling and sketching out ideas and what-not.

</comment><comment><USER11> I use Workflowy [1]! Looks like a simple notepad and work great with bullet points and indents. Probably the best and simplest tool I've found to keep track of brainstorming and to-dos.

[1] Ref link: <https://workflowy.com/?ref=6c6be5d> :)

</comment><comment><USER12> Muji recycled A5 notebooks. Perfect size to carry around everywhere, good paper quality (I use a fountain pen).

</comment><comment><USER13> Inkflow for iPad. Then if I like something I shoot it over to Inkpad, slap a new layer on top of the doodle and convert it to nice vector graphics.

Edit: Changed second 'Inkflow' to 'Inkpad' as it should have been initially.

</comment><comment><USER14> moleskine, which is kind of weird though if you think about it: any other sketchbook is likely to be a magnitude cheaper and would for me probably suffice the purpose of doodling/sketching just as well. I do catch myself subconsciously factoring this in when sketching/doodling though by using the paper surface more errr... economically ;-) The best reason I could think of is the leather cover; it holds amazingly well in my overly packed backpack :)

</comment><comment><USER15> I use a bevy of various brands and sizes. Mnemosyne grid pads, Caslons, as well as stuff I've picked up at various stores like Utrecht and Amsterdam Art.

</comment><comment><USER16> Index cards. I doodle on either the blank side of ruled cards or purchase un- ruled index cards. I brainstorm on whichever side makes sense.</comment>


Today, Web Development Sucks - <AUTHOR> http://harry.me/2011/01/27/today-web-development-sucks/

<comment><USER2> _Write once, run on the continuum between the server and browser, and forget that theres actually a difference between the two. Validations can be shared and server dependent ones can be run there..._

This might be an interesting goal to work towards, but I'm not convinced that one actually wants to achieve it. I'm skeptical that abstracting away the boundary between client and server is a good idea. Unless you're a DRM true believer, there will always be an essential difference: The server is (more- or-less) guaranteed to be running the code you wrote, and the client _is not_. In the end, unless you are comfortable with allowing an AI to dynamically adjust your application's attack surface for you, you'll always want visibility and control of what gets done where.

 _SEO works fine because the page can be rendered entirely server side._

Are we missing the point that web-based applications and web pages have totally different semantics? The major difficulty with getting Google to index my single-page application is not the need to run multiple rendering engines. It's that Google indexes web pages, and my application is probably not built out of web pages -- not without a great deal of creative thought, anyway. Try to imagine an iOS application that could be fully rendered for Google. How would you do that? Does each possible window and window state get a URL? How should Google index the little popups that appear when the user executes a three-fingered leftward swipe with a twist?

The reason why you're writing your views and rendering twice is probably that you need to design them twice. You can either make your users view your app as Google does, as a series of HTML pages at distinct sensible URLs with a minimal amount of Javascript sprinkled on top (which was good enough for 1998, and even 2008, but perhaps not good enough to compete with iOS long-term), or you can design a glorious GUI experience for your users that is largely opaque to Google, or you can do the work twice: Figure out one view of your data that appeals to humans and another that appeals to indexing bots. And that job probably can't be done for you by some magic framework. Figuring out sensible views of your data is design work, for humans.

 _A departure from the routing paradigm found in Rails, Sinatra, Sammy, and Backbone. The traditional one URL maps to one controller action routing table no longer applies._

We didn't converge on this routing paradigm arbitrarily. Among other considerations, it is very strongly influenced by Google, a company that literally _pays you money_ if you design a URL scheme that can be usefully interpreted by Googlebots.

<comment><AUTHOR> Great points.

The attack surface is something I didn't consider, and presents a tough challenge. If the framework were to implement the transport layer in a predictable way, I think it still might be a net win. It could build in all sorts of automatic good protection against XSS and CSRF and have even better control than today's frameworks since it can validate on both sides and know what to expect. The ever changing attack surface is a problem without a doubt, but the usual vectors can be better protected against, and the visibility and control issues can be mitigated with inline directives.

With regards to SEO, I disagree. There are two issues at heart here. Firstly, some web applications are single user apps with no publicly indexable data (ex Mockingbird, Basecamp), and optimize landing pages to direct users to use the application and explain why it is worthwhile. That's the data they want in Google, not the data from within the application. For these types of apps the issue SEO isn't that big. The issue is big with apps like Hunch, where as you say there are many states and non page-like semantics. Take a moment to examine the data that these kinds of apps want indexed and searchable. It's usually central to the app, the meat of the whole thing, and in the case of Hunch, available as a discrete page because it makes sense. This leads me to believe that you can without too much difficult come up with a URL scheme for representing it that either does or doesn't have an anchor in it. Thats the central idea, is that the routing table is the same on both sides of the wire. The first page they visit can be rendered server side and all ensuing pages can be rendered client side using fragments after the "#", and the Googlebot can index the pages as they are all renderable server side. This also ties into your third point, that the routing paradigm used by Google and everyone now is the only way to go. I really don't know how to solve the multiple state vs url segments problem while remaining indexable, but I believe it can be done. Do you disagree that the paradigm is no longer as useful?

<comment><USER3> New Twitter is really the example to look at here (and they aren't the first). New Twitter doesn't have unique pages anymore for tweets, and everything is happening in a single page. But each of those tweets also has a real HTML version generated separately for SEO. That is a perfectly valid way to do it, especially when you think of New Twitter as a content creation app, and each individual tweet as its own random piece of content.

Granted, the simplicity of Twitter's content makes that choice easier than it might be for a lot of people, and I agree that hopefully we'll converge on tools and frameworks that will make this more automatic. But in a world where your app is largely running on the client, and data exchange is done largely via some kind of simple REST AJAX API, writing an additional (likely quite simple) HTML template for the same data doesn't seem like an impossible challenge for most web apps.

<comment><USER4> I'm not sure New Twitter is good model in its implementation however. I don't think I'm the only one who's noticed that the new interface is a client-side pig, taking _all_ the CPU time it can grab.

</comment></comment></comment></comment><comment><USER5> Yes, we thought this in early 2005 and created NOLOH (<http://www.noloh.com>) as a solution. You write your app in a single tier, rather than having to worry about all the plumbing (Cross-browser issues, AJAX, client-server interaction, Comet, etc). You can even use your existing HTML, JS, CSS, if you like, and NOLOH then renders a version of your app targeted specifically towards the end user, whether it's IE, Chrome, Mac, Windows, etc. or a search engine robot, in a "lightweight" (only the correct and highly optimized code is loaded for a specific user) and "On-demand" (only loads the resources that are absolutely necessary at a given point) manner, thus allowing for rich web apps like gmail, to load instantly, and as needed, rather than a traditional web fat-client.

Every few months someone will write a post like this, and I wince. We've written several extensive articles for php|architect magazine and have presented NOLOH at several major web development conferences around the world. The fact of the matter is that tools like NOLOH exist, there are others, and they can be used now. Today, web development doesn't need to suck.

If you're interested in the specifics of the above stated "lightweight" and "On-demand", specifics can be found in the article "Lightweight, On-demand, and Beyond" in <http://www.phparch.com/magazine/2010-2/november/>.

[edit] Link to free December issue of php|architect article "NOLOH's Notables" so that you can more easily see what I mean without the November issue paywall. [http://beta.phparch.com/wp-content/uploads/2010/12/PHPA- DEC-...](http://beta.phparch.com/wp-content/uploads/2010/12/PHPA- DEC-12-noloh.pdf)

Disclaimer: I'm a co-founder of NOLOH

<comment><USER6> Have you considered that you could potentially make a lot more by open sourcing NOLOH and building a support infrastructure around it? It seems like the closed source aspect of it might be holding you back. If NOLOH truly is the Rails of the future, it might be wise to unleash it.

I've always thought this was part of what kept REBOL from catching on. Nice little language, but its closed nature hampered its adoption.

<comment><USER5> We have. The problem of course stems from the more established brands picking apart our tech and incorporating it into their own, thus making our tech obsolete. There's also the issue regarding our existing customers that paid for Professional and Enterprise licenses. We currently offer free licenses to open source projects, but we do understand that there are those that are turned off to any proprietary tech, even if they'll never actually go under the covers.

We'll likely revisit this issue later in the year after we make a series of major product announcements. Those announcments may make it unnecessary for the tech to continue to be closed, until then, everything we do other than the core is open source and available on github, this includes numerous modules. I'll likely blog about this in the next month or so.

</comment></comment></comment><comment><USER7> This whole article complains about something simple. Web development sucks, but not because of form validations, it sucks because of IE. But that's another story.

> Services must be adapted to spit out JSON data for interpretation and > rendering client side, or have their view code refactored to be accesible by > fragment for use in AJAX calls.

It must be real hard to call your JSON encode function on your data set, that would make it 1 line longer. :)

> A radical departure from the jQuery mindset of DOM querying and > manipulation, and use a UI kit instead. We aren't in Kansas any more folks, > its time to go where every other platform has gone and use the language to > its fullest.

People wouldn't query the DOM if that wasn't the most effective way of getting stuff done. jQuery has a UI kit, it's called jQuery UI. And how is using jQuery equals to not using JavaScript to the fullest?

> The DOM should become an implementation detail which is touched as little as > possible, and developers should work with virtual, extendable view classes > as they do in Cocoa,QtGui, or Swing.

The author said "using JavaScript to the fullest" and now the author tells us to create "extendable view classes" in JavaScript. JavaScript is a prototypical language, you can't use it to the "fullest" if you force OOP on it.

> If we want to build desktop class applications we need to adopt the similar > and proven paradigms from the desktop world. Sproutcore, Cappucino, Uki, and > Qooxdoo have realized this and applied these successfully.

"proven paradigms" is a ridiculous term by itself in software development, putting it in web development context just makes it dumber. If desktop apps are so good, then how come web apps are still around? There is a reason why people still prefer jQuery over many of those.

Overall I feel this article is highly biased and the author doesn't really understand web development. The author's complaint's are invalid because the stuff that he is missing are already around.

<comment><USER8> I agree with a lot of your points, except where it comes to JSON encoding. In many of my apps I use an ORM, NHibernate to be specific. I've found that this makes a lot of operations on the server side much simpler as there is less code for me to write and debug.

The problem comes though when I'm ready to encode to JSON to send to the client. Your correct that it is just one additional line to encode to JSON, but NHibernate creates objects that have relationships to other objects, and serializing those relationships can be very tricky. I have not found a great way to do this and often end up writing simplified versions of the server side classes and code to map from a server side class to a client side class.

Now you could argue that my framework or language sucks, but I think this goes to the point of the article. I feel the code I am writing on the server side is pretty solid and I am happy with my productivity. But as soon as I introduce any complex behavior on the client side, I end up with a lot of duplication and the entire code base gets much harder to manage.

<comment><USER9> I feel your pain, but it's not a new problem.. I spent years building server side apps with Hibernate, and before there was JSON, there was XML, or transfer-objects, or even hibernate entities that were disconnected from the backend (and would throw arbitrary exceptions when calling across un-fetched relationships). There's always a need to sort out how to represent these models across tiers.. In general, I favor only serializing relationships to things that are completely dependent (ie: dependent children who's lifecycles are married to the parent).. I try to never serialize relationships to independent entities.. let those get fetched by id if the client needs them.

</comment></comment></comment><comment><USER10> There are two frameworks that come close to this, both of them are rarely mentioned and I am not really sure why other than the fact that they aren't "sexy".

First is SmartClient:

<http://www.smartclient.com/>

SmartClient has the best databinding support I've seen in a JS lib. Binding is automatic between server and client, between controls, and validation code can be written once. It also has the richest UI control library I've seen, full of controls that actually work and aren't just a shiny layer over simple code.

Second up is OpenLaszlo:

<http://www.openlaszlo.org/>

OpenLaszlo provides a much more raw layer for creating UX on the web, similar to the OP's complaints about not having a UIKit like API. Additionally, it provides a declarative language for laying out controls, and also provides expression binding, so you can say "the width of this element is always 2x the height of this other one" and the binding and event handlers are created automatically. Its declarative language is XML, so there are some nice homiconic properties you get by making it possible to return XML from a web service to generate UI elements. As a bonus, it can generate Flash or DHTML.

Edit: Of course, both of these frameworks have their downsides. They're horribly ugly to look at (out of the box.) The declarative language for SmartClient is really ugly Javascript, and the language for Laszlo is really ugly XML.

However, they've solved the hard problems and left the "easy" ones. They're both open source. If someone were to come along and clean up some of the syntax and add some real polish to either of these, I think they'd really be remarkable technologies.

<comment><USER11> The problem with OpenLaszlo is that while apparently its actively developed i rarely hear about anybody using it. It seems to have had its hayday years ago and now is used only by a very few projects.

<comment><USER10> My entire point here is that these frameworks are not sexy or popular but have very strong technical foundations and it would be a noble goal to fork either of them to polish them into something better.

</comment></comment></comment><comment><USER12> We've taken the view that the server side code and the client side UI are two different applications and should be developed as such.

We write all the server side stuff as "REST-like" web services and then use whatever makes sense for the UI, whether that is javascript, html emitted from the server, action-script or native binaries.

Separation of concerns.

<comment><AUTHOR> The concerns aren't separate, thats the whole point! The validation and view logic is shared in "both" applications as you put it, so we either have to duplicate code or try and only put it in one place. This doesn't work or requires monumental effort, hence the whole post.

<comment><USER12> They are separate. Yes, the UI and the service both validate the data, but they do it for different reasons. One is concerned with the user experience, and the other is concerned with data validity. There may be some functional duplication there, but they are separate concerns.

The service validates to make sure that the data it is dealing with is safe and isn't going to corrupt something.

The UI validates input to make sure that the service won't reject it so that the user doesn't have to deal with inconvenience of making a round trip to the server, or having to remember what a valid value for a field is.

If you're not feeling up to making things easy for your users you can always throw all the data at the service and wait for it to tell you why the data is invalid. You don't HAVE to validate the data twice.

<comment><USER13> As a user interface shishya, I agree completely.

As a developer, I still have to write code that validates the data twice and possibly deal with validation failures in two different ways. Further, I have to make sure that both checks are using the same criteria for validation and keep them in sync if requirements change. This seems less than ideal.

</comment></comment></comment></comment><comment><USER14> You can still handle your validations server-side in a single-page application. The client JavaScript code sends a JSON packet to the server containing whatever data it needs to process. The server responds with a JSON packet which looks like

        {"status": "ok", "data": ...}

to signify success, or

        {"status": "validation_failed", "details": {"email": "malformed email"}}

to signify validation failure. Then the client-side code updates the UI appropriately. The client JS code does not bother with validation at all. If this seems wasteful in terms of hitting the server, remember that you have to talk to the server for this task anyway.

<comment><USER15> A user makes a mistake in typing email, adds in rest of form. Presses submit. Form takes 3s to send. Throws validation error and highlights email. User corrects it and sends it again (hopefully you're not punishing your users by clearing the form).

Or, you could present client-side validation which alerts user on focus out.

Other uses for client-side validation:

\+ Multiple emails (Gonna verify them all in many calls?)

\+ Prerequisite for further steps

Of course, have server-side validation. Client-side validation is convenience for the user.

</comment></comment><comment><USER16> This could be extended to say "Today, Development Sucks." Today, not only do you need a web-accessible application to stay competitive, you best develop native iPhone and Android apps. Even better, whip together a native Mac app.

You think both client-side and server-side validation is bad? Try developing 4 different client-side applications on different languages and frameworks.

Evernote came out and said it attributed part of its success to developing native apps for Android, iPhone and now Mac. Adobe Air and HTML provide an inferior user experience on respective devices.

This is also the reason I feel 37Signals is falling into obsolescence. They just launched a mobile "site" for Basecamp. Not an app, but an HTML, mobile- optimized site. Their blog admits to simply wanting to focus at "what they are good at" which is the first foot in the obsolesce coffin. They hired an iOS developer for their Highrise iPhone app, but said they felt the talent should be in-house for future projects. I agree, but their decision, again, was to keep doing the same old thing. Not exactly an innovative, hacker mindset in my opinion.

<comment><USER17> > Try developing 4 different client-side applications on different languages > and frameworks.

People aren't going to keep doing that. As soon as there's a web app store that allows them to achieve a better cost/revenue ratio, they'll move away from native apps. Sure, web apps have inferior user experiences, but the difference won't be big enough to keep them on the native platforms, just like how it didn't keep them on the native desktop.

</comment></comment><comment><USER18> Strangely he didn't mention server-side javascript, which would be the obvious way to share code between client and server.

<comment><USER19> This is how SproutCore validation logic is used on the server, BTW.

It's easy to use SproutCore's (very) powerful model layer on both the client and the server.

</comment></comment><comment><USER20> Just a small note, but despite the common belief, Gmail isn't written with GWT. Serious web app development seems to result in creating a framework of your own, as your examples show, so I'd agree some useful frameworks would be good, but we have not yet worked out what they should do.

<comment><USER11> What is Gmail written in?

<comment><USER21> Closure

<http://code.google.com/closure/>

<comment><USER11> Any idea why thats being used as opposed to GWT?

<comment><USER14> Gmail predates GWT by several years. I'm also not entirely sure Gmail is written in Java to begin with.

</comment></comment></comment></comment></comment><comment><USER22> _Google built the GWT so they didn't have to write code twice, but I don't want to be stuck in the Java world or be forced to learn the whole GWT and make any open source buddies of mine learn it too._

Groovy/Grails works well with GWT. Idiomatic Groovy looks more like Python than Java. Another possibility is Vaadin, which is built on GWT.

<comment><USER23> i don't have a lot of experience with vanilla GWT, but i have been using vaadin a lot lately and it is very frustrating to look at the (bloated) html that vaadin generates and not to be able to do anything about it (without designing new widgetsets).

Also i have found with vaadin the client side rendering times can be a problem. ( though my whole team is new with vaadin so there's a good chance that that is our fault)

I definitely see the appeal of vaadin, but i think that ultimately its not the paradigm you want for web application development. I think that for many cases you really need to know exactly what will run on the client side and what will run on the server.

Back when i was doing lots of silverlight development there was a very clear division between the client side and server side code. However, because they were both implemented in the same language i was able to factor out shared components (models mostly) into seperate projects that i could individually compile for both sides (for smaller chunks of functionality such as some socket protocol validtion code i just linked the files into multiple projects). This allowed for good reuse as well as good seperation. I think that this is ultimately what you want: the ability to share some code between both sides not to blur the line completely.

</comment></comment><comment><USER24> Agree with you on most points.

However on some points I'm not as convinced. Take the DOM abstraction, it works and is implemented by several SPA frameworks. You can design good looking, "desktop class" applications pretty fast. But problem arises quickly when your graphic designers send you those PSD mockups, full of great looking artwork waiting to come to life.

With a normal DOM approach you've always been able to solve this. With hacking some HTML, tuning CSS and a lot of swearing you pull through. But with SPA frameworks that favor "components" over low-level, raw DOM elements things usually aren't as straightforward. Very often you need to start picking apart the provided "ready-made components" to get any work done. Ends up being very contra-productive and usually takes way longer to do.

It has happened to me numerous times before with both GWT and Adobe Flex. Nice and shiny, given you don't try changing the layouts too much. Surely, I'd be one happy camper if this wasn't the case, web development need to move forward. And I hope the goals proclaimed by both Cappuccino and Sproutcore will work in practice some day.

Regarding your other point about routing, departing from the route paradigm will be only be true if what your designing is not a document-centric application. In my world, an SPA can be either document-centric or desktop- like (containing a lot of UI state, as you mention). Think the answer to that is the boring "it depends".

Worth mentioning, many of these issues are stuff we've been trying to resolve with the Planet Framework (<http://www.planetframework.com>), essentially bridging the gap between client and server.

<comment><AUTHOR> Great points. The design issue is a big one, and I think the main reason is that PSDs can be translated to HTML and CSS easily, but extracting a theme for a set of widgets is much harder. The widgets give you rich interaction and an easy way to set up complex layouts, but as you said can be very rigid and not allow easy modification of their behaviour. And I agree, I end up longing for the simple world of HTML and CSS where I know exactly how to change something instead of fighting the framework. I think thats something that will be remedied if a framework like Planet or my hypothetical one reaches ubiquity however. If developers learn the ways the framework works, just like how they learned the ways HTML, CSS, or Rails works, they'll be ok with extending the widgets to do what they want.

Another good point about routing, and this I'm admittedly fuzzy on. Above mechanical_fish mentioned some serious SEO issues that arise from moving away from the standard paradigms, so I'm not quite sure how it should be solved.

All in all, Planet looks neat, thanks for sharing!

</comment></comment><comment><USER25> I'm with him on most of this, but I just can't agree that frameworks like Sproutcore or Uki are good fits for all or even most of the the web apps out there. We've spent years showing off the beautiful things you can do with HTML & CSS and most web users have come to expect that.

Sure, the desktop-in-browser approach works in some places, but ignoring standard elements and replacing them with non-semantic, inline-styled <div> elements, and script handlers (e.g. inspect elements on <http://ukijs.org/examples/core-examples/controls/>) strikes me as cavalier and reminiscent of how SOAP treated HTTP.

The DOM is not something to be coerced and abstracted upon: it is the presentation structure for the largest aggregation of human knowledge ever. It deserves some respect! :-)

<comment><USER19> SproutCore loves the DOM. You're thinking of Cappuccino.

</comment></comment><comment><USER26> For validations, at least, there are Rails plugins for checking model validations in the browser (by augmenting the form helpers to generate Javascript which does the checks). For example, <https://github.com/dnclabs/client_side_validations>

This won't work to forward more complicated logic, though. For those who are really feeling the pain, the best cure might be writing the back end using server-side JS, so you can run that code in either environment.

</comment><comment><USER27> I'm surprised there was no mention of WebSharper in here, it's almost exactly what the author is asking for. And it's implemented in a functional programming language too...</comment>


Is there a list of companies that allow you to nap during the day? - <AUTHOR> For me, it's a really important factor, and it's hard to figure out which allows you to nap and which doesn't. <comment><USER2> I knew Google and Virgin allows employees to nap during the work time, if preferred. They have "Sleeping Pods". Here are few:

[http://www.inc.com/zoe-henry/google-uber-and-other- companies...](http://www.inc.com/zoe-henry/google-uber-and-other-companies- where-you-can-nap-at-the-office.html)

[https://www.virgin.com/entrepreneur/are-sleeping-pods- about-...](https://www.virgin.com/entrepreneur/are-sleeping-pods-about-become- commonplace-offices)

</comment><comment><USER3> I would assume that most companies that work remotely are flexible enough that you can squeeze a nap in.

(Waiting for the upcoming napjobs.io)

<comment><USER2> napjobs.io RFLAMO.. Me too, waiting ;)

</comment></comment><comment><USER4> I just take a shorter lunch and do the nap on my desk.

</comment><comment><USER5> Any company with a work-from-home policy.</comment>


Ask HN: Is it worth pursuing an idea ... - <AUTHOR>

Is it worth pursuing an idea that could be easily implemented by a big company (Google, Facebook, etc)? <comment><USER2> This question doesn't make sense. "Big Companies" have thousands of developers. Thousands. You're 1 guy, maybe a small team of 5. "Big Companies" could easily implement ANYTHING. But guess what? There are thousands of YOU out there. More than at any big company, and they can't do EVERYTHING. So just do it and stop worrying about it.

<comment><USER3> Ooh, I really like this logic. (:

</comment></comment><comment><USER4> If they haven't done it yet, then yes. Then politely allow them to acquire you for something in the low 8 figure range.

</comment><comment><USER5> Microsoft could have built Facebook. But they didn't.

<comment><USER4> Upvote x 100. This is the mentality all developers and entrepreneurs should have when pursuing a serious project. Unfortunately, we don't hear wisdom like this enough.

</comment></comment><comment><USER6> There are many ideas that a large company could implement on a whim.

However it is often the case that due to internal politics and bureaucracy a company might have many reasons not too - or be slow to adopt - or have to hobble with perceived business goals.</comment>


2nd Hackathon by HackPR - <AUTHOR> http://elweb.co/eventos/2nd-hackathon-by-hackpr/

<comment><USER2> I'm gonna be attending. It should be fun :P.</comment>


Inbreeding and small population may account for Neanderthal extinction - <AUTHOR> https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0225117 <comment><AUTHOR> Allee effects, like 25% or less females giving birth in one year, could have caused extinction in populations with 1,000 Neanderthals. Combined with inbreeding and fluctuations in birth and death rates, extinction would have been likely on their timescale over 10,000 years. [1]

[1] [https://edition.cnn.com/2019/11/27/health/neanderthal- extinc...](https://edition.cnn.com/2019/11/27/health/neanderthal-extinction- scn/index.html)</comment>


The Ghetto and the Mansion - <AUTHOR> https://www.the-tls.co.uk/articles/fire-is-upon-us-by-nicholas-buccola-book-review/ <comment><USER2> This is a pretty weak article with a smarmy attitude and mostly just a hit piece on Buckley (who I certainly have no love for) and a lionization of Baldwin. It's also filled with quite a few misleading, if not actually false, statements. See the paragraph mentioning Malcom X for an example.

Nonetheless, it's interesting to watch old episodes of _Firing Line_ on YouTube. Buckley doesn't generally come across as the smarter person, but the guests themselves are usually worth watching. The show is a calm, rational discussion between people with diametrically opposed worldviews. This seems almost unthinkable in the shouting match, tribalistic media we have today.

[https://www.youtube.com/watch?v=oFeoS41xe7w](https://www.youtube.com/watch?v=oFeoS41xe7w)

<comment><USER3> +1, I also fell down a rabbit role of old _Firing Line_ episodes recently. Buckley can be condescending and paternalistic; but he nonetheless engages in good faith with the other side, letting them sink or swim by their own words, which is an immense improvement compared to today's soundbite-strawman media landscape.

A couple elements I found interesting: young Arianna Huffington was explicitly anti-feminist [0], and Ann Coulter's case for impeaching Clinton [1] provides an interesting contrast to her modern support for Trump.

[0] [https://youtu.be/NDs966SDgVY](https://youtu.be/NDs966SDgVY)

[1] [https://youtu.be/YbmAROJMswU](https://youtu.be/YbmAROJMswU)

<comment><USER4> Except when he gets talking with Gore Vidal.

<comment><USER3> True. As overloaded/charged as the term has become, it's hard to describe Buckley's reaction to Vidal as anything other than "triggered". :)

</comment></comment></comment></comment><comment><USER5> Poking around, I also found this interesting article about Buckley, Vidal, and the movie _The Best of Enemies_ : [https://www.politico.com/magazine/story/2015/08/buckley- vs-v...](https://www.politico.com/magazine/story/2015/08/buckley-vs-vidal-the- real-story-121673)

</comment><comment><USER6> Buckley vs Chomsky:

[https://www.youtube.com/watch?v=9DvmLMUfGss](https://www.youtube.com/watch?v=9DvmLMUfGss)

</comment><comment><USER7> I thought this was going to be a take on "The Cathedral and the Bazaar" but how scrappy startups should be building a house like in a ghetto where they make do with anything they can in contrast to building a mansion where the ornate fixtures and appliances are highly expensive, specific purpose, and more refined quality. Boy, was I off!</comment>


Launching Fortune - <AUTHOR> http://blog.getfortuneapp.com/post/97276230912/launching-fortune

<comment><USER2> Are there any plans for a coinbase integration?

Not that I spend my bitcoins often but it if I did I would have to manually update it within the app. With a coinbase integration it would just be in sync.

<comment><USER3> Definitely not in this application! But we are working on something more bitcoin centric and real time.

So stay tuned.

</comment></comment><comment><USER3> I am here to answer any questions people may have about strategy and things we would do differently!

<comment><USER4> When are you releasing an android version? =)

<comment><USER3> Honestly, no timeline on that now. We are focusing on growing the community and completely satisfying our current customers! We know the android community is clamouring for it and will get it out as soon as we can!

</comment></comment></comment><comment><USER5> I really love these types of post, allows for very transparent view on strategy.</comment>


The Lean Startup is a NYTimes Best Seller. - <AUTHOR> http://www.nytimes.com/best-sellers-books/2011-10-02/hardcover-advice/list.html

<comment><AUTHOR> This really is amazing news, Eric is leading this movement. The Lean startup is influencing every part of this 'industry' if you can call it that considering how broad startups can be.

</comment><comment><USER2> Their pre-sale was so well marketed that I managed to order 3 different copies without realizing it (all from different channels or at different times, i.e. my error).

<comment><USER3> That's not great marketing! They just exploited those with short-term memory :)

</comment></comment><comment><USER4> Congrats Eric! Being on the bestseller list should drive awareness of your methodologies to a broader group. You've been working hard at it. Keep it up!

</comment><comment><USER5> Congrats Eric! Amazing launch strategy, looking forward to seeing how the book does in successive weeks and hope it stays on the list!

</comment><comment><USER6> Ash Maurya's Running Lean did not get as much attention, but it is also a great book[1]. Many of his experiences are also easily found on his amazing blog[2].

[1] <http://www.runningleanhq.com/>

[2] <http://www.ashmaurya.com/>

<comment><USER7> +1 definitely check out Ash's work. great content around customer development, lean and also bootstrapping.

</comment></comment><comment><USER8> Has anyone read it? I would like some comments on the book. I am considering buying it.

<comment><USER9> I'm usually in the camp of "those who can, do; those who can't, read business books" but this book is worth stopping everything you're doing and fully internalizing.

I think the lean movement (directly and indirectly) will increase value creation in silicon valley by 10-20%, and this is the holy book of it.

<comment><USER2> Pretty sure the impact isn't just limited to silicon valley. If anything, I think the relative impact of other areas will be far greater elsewhere.

<comment><USER10> Totally agree. I'm based in the UK and I'm looking forward to putting his methods into practice over this side of the pond.</comment></comment></comment></comment>


Farming in the desert: Are vertical farms the solution to saving water? - <AUTHOR> https://www.dw.com/en/united-arab-emirates-vertical-farming/a-54252631 <comment><USER2> Why? I think the United Arab Emirates have plenty of land and plenty of sun. Why do they need to use a vertical farm instead of a normal greenhouse?

With a greenhouse, you can control the humidity and water loss. You save all (half?) the light of the leds, perhaps you need some kind of shades to avoid too much light.

Perhaps stacking the farm vertically saves some money in the air conditioning and ceiling construction?</comment>


Ask HN: Can I kill the 'uses cookies' warning? - <AUTHOR> Has the 'this site uses cookies' saved anyone from anything?<p>Is there a way to get rid of that stupid message without having to find a button, an X or something and having to click it every single time? <comment><USER2> Many of those silly warnings are inserted by Javascript code running on the page.

Installing NoScript and by default blocking all Javascript blocks any of the 'we use cookies' warnings that are inserted by Javascript.

I see very few of those warnings myself (NoScript in default deny all JS mode), beyond the ones that are hard-coded directly into the HTML page.

<comment><USER3> +1 Blocking JS makes the web a much better experience.

<comment><USER4> This is my experience, so not sure why the downvotes.

</comment></comment></comment><comment><USER5> Yes you can, mostly: [https://chrome.google.com/webstore/detail/i-dont-care- about-...](https://chrome.google.com/webstore/detail/i-dont-care-about- cookies/fihnjjcciajhdojfnbdddfaoknhalnja)

</comment><comment><USER6> This has made the web truly infuriating. It has got a lot worse since the GDPR introduction, it feels like every other site wants to greet you on arrival with some message you just want to bat away.

</comment><comment><USER7> Browser should just build this in and have it say - you agree to use cookies when browsing the internet so you can answer the question one time for the internet cause... yeah it's a feature

<comment><USER8> It's not the cookies but how they are used. You need to tell people how they are used. To give them a clear choice in managing their privacy.

</comment></comment><comment><USER9> You could crowdsource it, or use machine learning to read the screen and look for buttons to click? heh

</comment><comment><USER10> Yeah it's the worst. For reading articles I recommend outline.com and their chrome extension (no special permissions required!) Just click the button on the annoying page and it will generate a reader mode version for you. It also gets around paywalls.

No affiliation, just really like the product. Also hoping they don't get sued.</comment>


WECO: A transparent nonprofit Reddit Alternative - <AUTHOR> https://www.weco.io/b/root/wall <comment><USER2> Sites like this pop up every week. What's different about WECO?

It's always the same story, a new site popups up claiming to be a perfect reddit alternative, yet brings nothing new to the table beyond the promise of "we have better morals!".

Fast forward a month, the site has failed to generate a community (what would drive people to switch?) and instead has attracted the dark corners of the web and become Voat 2.0/3.0/X.0</comment>


The 'Unicorn' Club, Now Admitting New Members - <AUTHOR> http://www.nytimes.com/2015/08/24/technology/the-unicorn-club-now-admitting-new-members.html

<comment><USER2> I REALLY hate the word unicorn in this context.

There is nothing mythical about well funded startups having high valuations.

You don't stumble into one while galavanting through an enchanted forest.

You can't drink the blood of a successful SV CEO to prolong your life.

If you say "unicorn" in reference to tech startups I immediately assume you are a trendy idiot who's vocabulary doesn't extend past memes and buzzwords.</comment>


Ask HN: Why am I blowing my interviews at great companies in the Bay Area? - <AUTHOR> I'm an iOS developer in the Bay Area with 8+ years of iOS experience (and 10 years overall) with a CS degree (non-ivy league, not Stanford). I've never had trouble finding work in the Bay Area, but my career has mostly been small, young startups and contract gigs. Lately I've been trying to find work at more established "Big 5"/FANG companies. Unfortunately it seems like I'm blowing my interviews and can't figure out what it is that they're seeing or not seeing in me. I've done two on-site interviews in the last 2 weeks, both of which went exceptionally well from my perspective. One was at Apple, the other at a very well funded and established startup with many ex-Apple/Google employees. I was invited for the on-sites after passing 2 phone interviews in both cases. Both on-sites were flawless from a technical perspective. I answered every question and solved every problem that was thrown at me. In both cases I met the hiring manager and VP at the end (so the interview wasn't terminated early). And yet both rejected me without any explanation other than "we chose another candidate". I can't pinpoint what might have gone wrong. Is it an age bias (I'm in my late 30's) or perhaps over qualification for IC developer roles? Is it that these companies will only hire Stanford grads or candidates who have worked at other elite companies? Can someone tell me what other factors a hiring manager at an Apple/Google type company might be looking for, other than technical competence? Note that I have no trouble getting into smaller startups and also very lucrative contract gigs, but it seems like there's something preventing me from getting into the truly elite companies. I can't figure out what I'm saying or doing wrong. thanks! <comment><USER2> The problem here is that you only have your own perspective. You may feel that you answered the technical question flawlessly but the interviewer may have felt the answer was so wrong they just moved on.

What were some of these technical questions and what were the answers you gave?

I know that FAANGs will likely be cautious bringing in someone with too much experience as they need to change how they have learned to work in the past. It sucks but younger people are easier to mould and are cheaper.

Did you price yourself out of a job?

I know from my experience interviewing at a FAANG that the interviewers rely a lot more on STAR based questions than the technical questions.

On top of that if you've got 8+ years of iOS experience it could mean that you've made your qualifications too narrow. If you sell yourself as just an iOS developer then people expect that you can only do iOS development.

EDIT

I'm also curious why you mention Ivy league education. This doesn't matter after your first one or two jobs.

<comment><AUTHOR> Thank you, you bring up some excellent points.</comment></comment>


Uber CEO slams founders' 'pirate' culture, pledges to grow 'responsibly' - <AUTHOR> https://venturebeat.com/2018/01/22/uber-ceo-slams-founders-pirate-culture-pledges-to-grow-responsibly/ <comment><USER2> Hmm...lovely words, but how is he going to do that when the entire business model is predicated on behaving irresponsibly?

<comment><USER3> ... and by hemorrhaging cash.</comment></comment>


For Food Startups, Incubators Help Dish Up Success - <AUTHOR> http://www.npr.org/blogs/thesalt/2014/08/18/336877182/for-food-start-ups-incubators-help-dish-up-success

<comment><USER2> I've got a bunch of really good ideas for food containers and packaging. I've always wondered what the first steps would be for getting a business going?

I guess that's not really what these type of incubators help with.

<comment><USER3> For something like that I'd suggest talking to potential customers.. if restaurants, for example, are you target audience, go and visit... become friendly with a bunch of owners/managers/etc.

<comment><USER2> Unfortunately it's mass market consumer stuff.</comment></comment></comment>


An Introduction to Programming C-64 Demos - <AUTHOR> http://www.antimon.org/code/Linus/

<comment><USER2> For Amiga demo programming with 68000 assembler, this video tutorial series is great as well: [https://www.youtube.com/watch?v=p83QUZ1-P10](https://www.youtube.com/watch?v=p83QUZ1-P10)

I wish I could send these back in time to my teenage self.

<comment><USER3> My teenage self spent quite some time hanging around Amiga users, watching demos, reading Amiga technical manuals and playing out tunes in protracker.

Assembly and AMOS ruled.

Nice memories.

</comment></comment><comment><USER4> Example final result, apparently coded by puterman (the author of the tutorial) and others: [https://www.youtube.com/watch?v=vfJjRRICzv8](https://www.youtube.com/watch?v=vfJjRRICzv8)

<comment><USER5> He's been busy: [http://csdb.dk/scener/?id=835](http://csdb.dk/scener/?id=835)

</comment></comment><comment><USER6> Wondering how to program C=64 demos back in the mid 80s kickstarted my interest in computers and ultimately my career. Jim Butterfield's "Machine Language for the Commodore 64, 128, and Other Commodore Computers"[1] got me started on this path when I was 12.

[1] - [https://en.wikipedia.org/wiki/Jim_Butterfield#Publications](https://en.wikipedia.org/wiki/Jim_Butterfield#Publications)

</comment><comment><USER7> My love for computers started with my C64, I'm very nostalgic about this period. I'm very admirative to people putting so much effort into their passions.

However, with so many more useful (and possibly lucrative) things to learn and do, I would never find the time for programming C64 demos.

</comment><comment><USER8> Doing some (simple, mostly unreleased) demo programming for the C-64 forever doomed me to swear whenever I see information systems with jittery, choppy or flickering scrolling text, given how easy it was to scroll text smoothly on early 80's hardware.

<comment><USER9> Experience with 8-bit micros also makes me curse the barriers you often find on modern machines that prevent you from _really_ controlling the video display. Whether it's well-meaning display drivers refusing your custom resolutions to avoid "blowing up" the monitor, problems with bad or partially implemented drivers (in the open-source case, probably due to the video card manufacturer having a proprietary hold on the necessary information), or going through graphics APIs which are only specified to suggest what the hardware should do rather than command it - for example, if you want to avoid tearing you may ask (in some very platform/API/situation-specific way) for vsync, but whether you'll get it is another matter. Yeah whenever I see a monstrously powerful modern system seemingly wheezing and straining to push a few pixels smoothly from one end of the screen to the other it makes me sad.

</comment></comment><comment><USER10> I never owned a C64 so I have a question. Where do you write the Turbo Assembler code, is this code which you start typing after the C64 booted? I saw a friend to write there some basic commands like LOAD to load stuff from the casette player, is it there you just start writing assembler? Or is there some special command you have to write first, or do you need to start a texteitor or what is this "monitor" he is talking about? Do you need to install it first in some way?

<comment><USER11> The screen you're talking about is just C64 BASIC. You'd do LOAD to get Turbo Assembler into memory (from cassette tape or disk), then go from there...

<comment><USER10> Ah I see, thanks for clearing that up :)

</comment></comment></comment><comment><USER12> An enjoyable read! Also from the genius Puterman, the Chipophone [1] and also some Hubbard goodness [2].

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

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

<comment><USER13> That's Linus _Åkesson_ (lft):

[http://demozoo.org/sceners/3621/](http://demozoo.org/sceners/3621/)

Puterman, who wrote the article, is Linus _Åkerlund_ :

[http://demozoo.org/sceners/2803/](http://demozoo.org/sceners/2803/)

They're both amazingly talented and in Sweden, but not the same person.

<comment><USER12> Thank you for correcting me. As a Swede, I feel somewhat ashamed, despite my awful record when it comes to names.

</comment></comment></comment><comment><USER14> This is exactly what I was looking for. My brother gave me a C64 (a 1982 model) for Christmas this year, so I'm going to play with this in 2015 and code some demos.</comment>


Show HN: Rockhopper – Launch windows apps from bash on Windows 10 - <AUTHOR> I made a thing this afternoon. If you are using windows 10 and would like to open windows apps from the ubuntu bash shell normally you can't do that. I wrote this app to (sorta) let you do that. It's a two part app, first is a dotnet core webapi C# app that runs on your windows box. Next is a shell script that you put in your path on the ubuntu shell.
It's called Rockhopper (named after a species of penguin, since you are hopping form Linux to windows with this app is just seemed like the right name :) ), and you invoke it like this:
rockhopper -c code -a C:\\\\Users\\\\shawn\\\\Documents\\\\file_to_edit.txt
That opens Visual Studio Code from windows with that file passed in. Couple of caveats, the windows app has to be launchable via the windows cmd prompt, currently only supports 1 argument to open and the pathing is touchy, and lastly this has absolutely 0 security built in. I plan of fixing all of that but would welcome anyone else's contributions. Speaking of that it's all open source and MIT licensed here:
https://github.com/jaegerpicker/Rockhopper
Have fun and use github to report issues if you have them. Currently I don't have a binary build up yet but I do have TFS doing CI so every push to master kicks off a build, I'll publish them if more than just I use it at some point. It's early but very much working. <comment><USER2> Looks like this provides an official solution:

[https://msdn.microsoft.com/en- us/commandline/wsl/interop](https://msdn.microsoft.com/en- us/commandline/wsl/interop)

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

</comment><comment><USER3> You can also try: [https://github.com/xilun/cbwin](https://github.com/xilun/cbwin) (I wrote that)

<comment><USER4> Good job there

</comment></comment><comment><AUTHOR> I'm thinking about converting the bash script to another scripting language as it should make it easier for the script to add some convenient features. Like auto escaping the path and providing more options to get info back from the web service. Also likely I'll restrict the app to only allow posts from localhost as a first pass in security land.

</comment><comment><USER5> Those are some huge caveats but you're filling a real need. Keep it up!

</comment><comment><USER6> A better name might be hoop-jumper. If you want a POSIX shell and real interoperability with Windows, I can recommend MSYS2 instead.

<comment><USER7> I really like Msys2 and have used it extensively in the past (to some hilarity when people have commented on some sh files running exe's etc) - but recently I have been thinking, if msft really starts iterating and supporting their bash tool, then hopefully it could become something similar without maybe some of the weird dependency rabbit-holes that sometimes pop-up in msys2.

</comment></comment><comment><USER8> Nice work!</comment>


Russia Invades Crimea - <AUTHOR> http://www.nytimes.com/2014/03/02/world/europe/ukraine.html?hp

<comment><USER2> Here's the story from CBS News: [Ukraine puts armed forces on combat alert, warns of war][1].

[1]: [http://www.cbsnews.com/news/ukraine-puts-armed-forces-on- com...](http://www.cbsnews.com/news/ukraine-puts-armed-forces-on-combat-alert- warns-of-war/)

</comment><comment><USER3> Kremlin Clears Way for Force in Ukraine; Separatist Split Feared

 _" Russian armed forces effectively seized control of Ukraine's Crimean Peninsula on Saturday, as President Vladimir V. Putin had the Russian Parliament grant him broad authority to use military force in Ukraine in response to deepening instability there"_</comment>