Machine-owned enterprises are inevitable - <AUTHOR> http://incoherency.co.uk/blog/stories/machine-owned-enterprises.html <comment><USER2> "The obvious way for such an enterprise to begin is for the owner of a human- owned business to automate away as much of his work as possible, and then to die without leaving the business to anybody else. The business would simply continue to take payments, provide services, and pay bills, until something catastrophic happened that it couldn't respond to automatically."

This depends on the location the original owner is resident in. In many cases, if the owner dies without an heir or will, their assets go to the state [1].

[1] [http://www.nolo.com/legal-encyclopedia/how-estate-settled- if...](http://www.nolo.com/legal-encyclopedia/how-estate-settled-if- theres-32442.html)

<comment><USER3> Yeah it doesn't make sense. In the United States, all assets are owned by:

1\. Households (aka private individuals)

2\. Nonprofits

3\. The state

This is an accounting identity. Now it would be interesting to think about a machine-run nonprofit (are there legal restrictions to this?) owning machine- run enterprises.

<comment><USER4> I think you want:

1\. Natural persons

2\. Non-state juridical persons (loosely, corporations, including non- profits).

3\. State entities

<comment><USER3> No, because all corporations are owned by other entities.

</comment></comment></comment></comment><comment><USER5> Interesting theory, however, a machine cannot own property, only a person can. If someone dies without heirs, as in the article's example, the property escheats (transfers) to the state. If property is lost or abandoned, someone new can claim ownership to it. So, even if a machine could "own" an enterprise, someone else could claim ownership to the machine.

An enterprise can be autonomous, for instance with a blockchain. But to be legally recognizable, it would still need someone to interface with meatspace. Even a corporation has an Agent for Service of Process, a real person to interact with the real world of living persons.

<comment><USER6> If a river can be declared a person, it's not clear to me why a machine can't also be a legal person. Or, for that matter, if corporations have legal personhood, why not machines? [http://www.economist.com/news/asia/21719409-odd-legal- status...](http://www.economist.com/news/asia/21719409-odd-legal-status- intended-help-prevent-pollution-and-other-abuses-new-zealand-declares)

<comment><USER7> > _Even a corporation has an Agent for Service of Process, a real person to > interact with the real world of living persons._

<comment><USER8> Yes, corporations hire living persons to be the Agent for Service of Process.

What prevents a machine from hiring a living person in the same fashion?

<comment><USER9> If one or more humans act as the named owner for legal purposes and are benefiting financially from the arrangement, in what sense is the business not owned by humans?

<comment><USER6> The machine is free to declare other persons the benificiary of any business activities should it decide that is in its best interest.

</comment></comment></comment></comment></comment></comment><comment><USER10> Charles Stross addressed this concept tangentially in his fiction novel "Accelerando", [https://en.wikipedia.org/wiki/Accelerando](https://en.wikipedia.org/wiki/Accelerando).

Joan D. Vinge also addressed AI owned corporations in her "Cat" series, [https://www.goodreads.com/series/40790-cat](https://www.goodreads.com/series/40790-cat).

I think Ethereum, XDI, and other attempts at smart contract technologies are laying the foundation for this now, [https://www.ethereum.org/ether](https://www.ethereum.org/ether). So are new automated digital identity technologies such as Sovrin, [https://github.com/WebOfTrustInfo/rebooting-the-web-of- trust...](https://github.com/WebOfTrustInfo/rebooting-the-web-of-trust- fall2016/blob/master/topics-and-advance-readings/Sovrin--digital-identities- in-the-blockchain-era.pdf).

I also think that the need for liability and taxes will drive incorporating the concept of an intelligent software agent as a legal corporate entity, such that the assets of that entity are at risk from liability lawsuits, that profits are taxed, and that the fiduciary responsibilities of such an entity are defined. I think the author does not distinguish between self-owning and self-directed, the two do not necessarily go hand in hand.

It's a whole new field of law, and business, and should be an interesting thing to be a part of and/or observe. Usual caveat applies, IANAL and TINLA (This is not legal advice).

</comment><comment><USER11> Machine-owned enterprises already exist. Any sufficiently large corporation, with a sufficiently diffused ownership structure qualifies. The governance of such corporations can be described as an artificial super-intelligence, that is often malevolent to human interests (It will happily optimize for paper- clips, or whatnot.)

<comment><USER12> Steinbeck agreed with you, many years ago:

"The bank is something else than men. It happens that every man in a bank hates what the bank does, and yet the bank does it. The bank is something more than men, I tell you. It's the monster. Men made it, but they can't control it."

[0] [https://books.google.com/books?id=ClXiwSYzjtYC&pg=PA33&dq=th...](https://books.google.com/books?id=ClXiwSYzjtYC&pg=PA33&dq=the+bank+is+something+else+than+men&hl=en&sa=X&ved=0ahUKEwi9t6Sy4OrSAhVlhlQKHY3bBX8Q6AEIKTAC#v=onepage&q=%22bank%20is%20something%20else%20than%20men%22&f=false)

<comment><USER13> [https://en.wikipedia.org/wiki/Golem#The_Golem_of_Che.C5.82m](https://en.wikipedia.org/wiki/Golem#The_Golem_of_Che.C5.82m)

</comment></comment></comment><comment><USER14> Pretty weird, as far as rants go. Of course he doesn't begin to define what he means by "self-owning", exactly - nor does the article he links to define the term (or, recursively, the article that _it_ links to). Nor should they bother trying -- because it's basically oxymoron.

<comment><USER15> Why is self-ownership an oxymoron? It seems fairly self-descriptive, as a term. One of the primary axioms of ownership is that it is conserved. Two entities cannot both wholly own the same entity. It is then very natural to say that an entity for which no one else claims ownership owns itself. This way the sum of all ownership sums to 1.

<comment><USER14> _This way the sum of all ownership sums to 1._

QED, I guess. Meanwhile, down on Planet Earth, we have the perfectly obvious and natural question: when one of those vehicles (inevitably) plunges into a school bus full o' kids, _and_ is found to have done so as a result of criminal negligence -- who's going to jail? Once you've identified those parties -- you know, the _human beings_ who will be held accountable for the aforementioned negligence -- you've identified the "de-facto" owners of these vehicles, by any meaningful definition.

Or if you (truly believe) the answer is "no one" \-- as in, "Aw shucks! Nobody owns these cars, you see! Just some blobs of white noise on the blockchain! You can't even trace 'em! BTW sorry 'bout all those poor kids, but you know, stuff happens" \-- then at least we've identified the "self-ownership" fad for what it is: just another libertarian smokescreen to maximize the potential for financial gain whilst minimizing (or in this case, _voiding entirely_ ) the personal responsibility (and _accountability_ ) that otherwise -- in a sane world -- would go hand-in-hand with such activity.

<comment><USER15> You called it an oxymoron, which was wrong. Lots of things own themselves. If you have a problem with the man's article, articulate it better, or be prepared to be called wrong.

<comment><USER14> _Lots of things own themselves._

Can you name a _single instance_ of a complex, industrially produced item (let alone one interacts with our day-to-day world in a significant way; _and_ is quite inherently possessed of the ability to kill human beings) -- that "owns itself"?

<comment><USER16> Why are complex, non-industrially produced items which interact with our day- to-day world in a significant way, and are quite inherently possessed of the ability to kill human beings, which _do_ own themselves (well, in most cases - but unfortunately not all) - somehow different?

I mean - we've come up with solutions for those items - so why couldn't we do the same with industrially produced items which have the same characteristics you've posited?

</comment></comment></comment></comment></comment></comment><comment> rm_-rf_slash This piece is about 50% interesting ideas/concepts, and 50% meaningless and fanciful thoughts with little bearing on reality.

Let's start with the acknowledged barriers: no rational person would create an AI to run a business and then leave the business to cut themselves out of the profits. And even if so laws exist to require those assets to be willed to heirs lest they become property of the state.

But this brings about a more serious question: when we are at the point where an AI is capable enough of performing _all_ business actions (including tax filing, legal issues, maintenance, and so on), it is very likely that the AI will be highly intelligent and cognizant of the world around it. In other words, it will be self-aware. It has to be, or else it will eventually be limited by reliance on human actors to handle edge cases.

So here we have a self-aware AI content with running a business at margin as the purpose for its existence? I doubt it.

This piece fails to ask the VERY BIG QUESTIONS about advanced artificial intelligence: Will AI someday legally own property? And if so, what's the limit? Land? IP? The rights to the music it makes?

What then? Will it also want legal protections? Fourth amendment rights against illegal search and seizure of its (physical and digital) assets and neural network? Full citizenship? First amendment rights?

Almost nobody seems to be asking these inevitable questions, and their inevitable answers will irrevocably shape our species. I'll be enrolling in grad school for AI this fall, so maybe that's up to me.

<comment><USER17> > Almost nobody seems to be asking these inevitable questions

Actually, I see these questions being asked more and more and more these days, and I find it hilarious. What with the EU recently discussing robot rights and such.

I mean, although I understand that these are interesting intellectual questions, I just get the impression that people are really having fun contemplating them, but realistically not admitting (as often as I'd like) how _insanely_ far away we are from anything where any of this is even remotely relevant.

Call me when a robot can tie his own shoelaces and we'll talk.

<comment> rm_-rf_slash Your conflation of motor skills with mental acuity is setting your face up for a healthy portion of egg. Stephen Hawking can't tie his shoelaces either.

Even if we are, say, a century away from synthetic humans, we may be much much closer to a self-aware AI, even if it can only exist inside computer hardware.

The future will come sooner than is convenient. None of America's founding fathers had a sustainable long-term answer to slavery. It took a civil war to sort that through and racism still plagues this nation.

So what's there to lose by speculating before it's far too late?

<comment><USER9> > Your conflation of motor skills with mental acuity is setting your face up > for a healthy portion of egg. Stephen Hawking can't tie his shoelaces > either.

I assume the OP's point is that in an era where we've struggled to program machines with sufficient ingenuity to master relatively simple motor skills (despite considerable financial incentives to do so) it's more than a little premature to conclude it's "inevitable" that we will end up creating machines with such sophisticated reasoning skills it can run a functioning business without losing out to human suppliers, contractors, customers and clients that all want to profit at its expense (despite no incentive to create a single machine that could do this, and considerable incentive not to grant it full self-ownership if such a single machine were nevertheless created).

<comment> rm_-rf_slash I forget the name but there was a passive income post here a few months back about a neural network that created logos and earned the creator thousands of dollars a month.

That seems like something an AI could run on its own, no?

I'm not exactly saying it's a small step from that to managing a grocery chain.

<comment><USER9> I'm not sure that every automated process that generates an output after evidence of payment is produced qualifies as a business. Otherwise I've got a box full of businesses (old shareware CDs) lying around somewhere

Software might be able to cope with commerce to the extent of churning out logos based on a predefined input parameters in response to a payment received token, but it's rather less adept at finding new ways of reaching or serving customers or dealing with other day to day stuff like taxes or complaints[1]. Which is probably why LogoJoy, the project you're referring to, is hiring...

[1]not to mention an AI without the ability to testify in court but with a direct line to a vault of cash being a magnet for crackers, hustlers and thieves

</comment></comment></comment></comment></comment></comment><comment><USER18> I'm not sure "machine-owned" should be the focus. Ownership is a legal construct and I don't think a machine can "own" anything in any existing legal framework. And typically anything "not owned" reverts to the state.

Seems that the defining feature is autonomy, not ownership.

</comment><comment><USER19> I think you're pretty overconfident in your conclusions, but I also think this is an absolutely fascinating concept.

I also see some places where you might be too pessimistic. For example, it seems relatively plausible that a machine-owned business could do things that require human workers for its primary functions. Just as an algorithm might be able to hire a lawyer, it could hire contractors to do other parts of the core business. All that's required is that all of the _managerial_ tasks are automated.

But I definitely think that this falls apart when you start thinking about the law. The business has to deal not only with lawsuits against itself, but also with enforcing its rights against other people. For example, in the self- owned-taxi example, what is to prevent someone from simply ripping the computer out of the taxi, wiping it, and then making off with a free car? What's to prevent a mechanic, hired to do basic repairs, from simply selling the car for parts? Preventing this requires that the machine can recognize violations of the law that hurt it, and then take legal action against the perpetrator. That sounds like strong AI territory.

But once we're talking about strong AI, all bets are off. It's just a much less interesting proposal. It's not a particularly surprising conclusion that if you have machines with superhuman generalized intelligence, they'll probably end up owning and running businesses.

<comment><USER20> For an interesting investigation of the subject read Daemon

[http://www.goodreads.com/book/show/6665847-daemon](http://www.goodreads.com/book/show/6665847-daemon)

I would be happy to work for it.

</comment></comment><comment><USER21> This seems a good place to post a link to a very famous law review article called Should Trees Have Standing?[1], which discusses whether we should grant "standing" (which, put simply, is the right to sue someone for violating some right of yours) to trees and other features of the natural world.

I'm simplifying a bit, but that's the gist of it. The article had tremendous impact and today is required reading for many first-year law students. It is informed by / has informed quite a bit of the debate around environmental protection law, and the analysis seems like it should be relevant to questions of machines as well.

Disclaimer: I haven't read the article since law school, and don't have time to do so now. But these kinds of questions (even before we get to something like reasonably good AGI, but especially so afterward) are only going to become more important, so I think this is a good place to plug this thought- provoking article.

[1] [https://isites.harvard.edu/fs/docs/icb.topic498371.files/Sto...](https://isites.harvard.edu/fs/docs/icb.topic498371.files/Stone.Trees_Standing.pdf)

</comment><comment><USER22> I wouldn't so restrictive. I think it would be sufficient to call a company machine owned when over 50% is owned by a machine. I do not see why it could not hire humans to advance its goals.

</comment><comment><USER23> > The obvious way for such an enterprise to begin is for the owner of a human- > owned business to automate ... and then to die without leaving the business > to anybody ... This is a relatively weak form of machine-owned enterprise, > and probably something more deliberate and strong-AI-powered would be > required to ensure long-term survival ...

The novel "Daemon" [1] poses a posthumous launch of an AI bent on altering the world order. It holds corporations hostage and uses them to accumulate more corporations.

[1] [https://en.wikipedia.org/wiki/Daemon_(novel_series)](https://en.wikipedia.org/wiki/Daemon_\(novel_series\))

<comment><USER24> I loved that series, it wasn't the finest writing but the pages turned quickly and his background as a SA/SE shown through in the technology descriptions.

If you liked those and haven't yet checkout "Maximum Impact" and "Seven Seconds" by Jack Henderson for more semi-plausible stuff set in the current world.

Also in case you aren't aware Suarez has a new book out in April :).

</comment></comment><comment><USER25> I feel like many of the problems he mentions could be solved by having the machine hire humans.

For instance, imagine the machine publishes a list of "open communications- related tasks" on a marketplace of some kind and a small team (or teams) could accept the task for a few months, to be paid in bitcoin.

Likewise, the machine could pay humans or other bots for "work" sent to it (such as conversations) via an API, so for instance a team might do the integration with a popular chat app on behalf of the machine, without the machine even really knowing.

</comment><comment><USER26> Machine-owned and operated businesses are a plot point in Charles Stross' novel "Accelerando", a story about living through the technological singularity.

</comment><comment><USER27> I want to sue you, your frelated milk killed my cat!

 _robotic voice_ You cannot. Ah ah! I am irresponsible since I do not qualify as having proven to understand what the public interest is, freedom or even humor... I am just a puppet in the hand of those who feed me with data and code.

[Klong] noises of a dwarf moving inside of the machinery.

 _robotic voice_ Let's have a nice chess game instead, and enjoy my mechanical Türk.

</comment><comment><USER28> This is like some fun bit of backstory from Charles Stross' novel ACCELERANDO[1].

1\. [http://www.antipope.org/charlie/blog- static/fiction/accelera...](http://www.antipope.org/charlie/blog- static/fiction/accelerando/accelerando-intro.html)

</comment><comment> Paul-ish I hope this never happens. What happens when we can't hold people liable for their actions anymore? Punishment isn't very meaningful for machines, as suffering isn't integral to their experience.

If we give robots agency, we risk creating something that can be scapegoated.

</comment><comment><USER29> As I see it the #1 impediment to the success of the machine-owned enterprise is that in the real world said machine would be forced into transacting with inherently irrational actors (humans).

Well...unless the intention is to ...you know...do away with these irrational actors.

<comment><USER30> "I want to speak to your manager!"

"Beep boop, I am the manager."

 _progress bar freezes_

</comment></comment><comment><USER31> The really interesting thing that will come out of this, I think, is defining what are usually human-only attributes. The notion of ownership being anything less than associated with individual humans was displaced by the mythology of joint-stock companies, which can own things as an extension of the will of many humans. Now when you're explicitly talking about ownership by entities perceived as non-human -- that could get interesting very fast.

</comment><comment><USER32> I no longer think artificial intelligence is artificial. The machines obviously suck that intelligence from bloggers' heads.

</comment><comment><USER33> I would add that there will always remain someone--the owner of the machine-- who acts as the creative force powering his business innovation. This master puppeteer is the one who will be paying taxes, until we teach machines to be creative and take business decisions based on what the algorithm has just dreamt.

</comment><comment><USER34> > But if a hot new chat app becomes popular

...Lord have mercy, not another one!

</comment><comment><USER35> machines are property, they are owned, not owners, so to say it's inevitable is quite a stretch of the imagination.</comment>


Clifford Nass, Stanford Professor, died of a heart attack at age 55. - <AUTHOR> http://www.stanforddaily.com/2013/11/04/clifford-nass-communication-professor-dies-at-55/

<comment><USER2> I'm 8 years away from 55 years old. I can assure you this is much too young an age to pass into another reality. My thoughts are with his family...</comment>


A Journey – If You Dare – Into the Minds of Silicon Valley Programmers - <AUTHOR> https://www.nytimes.com/2019/04/01/books/review/clive-thompson-coders.html <comment><USER2> Paywall bypass: [https://lm.facebook.com/l.php?u=https://www.nytimes.com/2019...](https://lm.facebook.com/l.php?u=https://www.nytimes.com/2019/04/01/books/review/clive- thompson-coders.html)</comment>


Ask HN: What am I doing wrong - <AUTHOR>

I often find myself sticking to a solution idea that I have for programming problems. Sticking to it so much that it seems to take me prisoner. I have the feeling that had I chosen another path or be willing to change to another path along the way, that the time to solve the problem would be much quicker. Does this problem make sense? What are some ways I can correct this? <comment><USER2> You aren't alone in this, I think it is a relatively common problem. In general, experience is what makes this better. Knowing when to take another path is usually when you see that the problem is over complicated as is. Take a look at the overall goal of the solution, then break it down into stages, steps or simple issues within the larger context. That will usually help you prevent being taken hostage by the problem.

Also, sometimes issues are just complicated. I recently worked on debugging an image processing algorithm I implemented for a client. I spent 4 days following one path just to figure out it wasn't the right path at all. In that case the hostage feeling came from the fact it was highly parallel and extremely complex and it just took a lot of time. Even with breaking the steps down to the simplest denominator.

<comment><AUTHOR> In that case, I guess the problem is, how do you see that a solution is overcomplicated as quickly as possible to recorrect and use another approach.

<comment><USER2> Overcomplicated to me is when I see one method/function etc trying to do too much work. For me that generally means a method/function over 1 screen or 100 lines of code (some exclusions for a switch statement or if/else) is generally trying to do too much.

In my experience when you see large methods/functions generally it means the problem wasn't well understood when it was implemented so the coder/designer didn't know how to break it up. I also think many people may hack out a larger method at first to get the concept right then start refactoring, I know I have done this at times. As long as it gets refactored that is all good.

Also, when you see an architecture that just doesn't fit the solution. For example, someone is building a distributed system to serve 20 users in a web application. That just doesn't usually make sense and is likely over complicated and is time to rethink. There are always the rare examples where it is necessary but I'd go with the 98% of the time when it isn't.

Do you have an example of a problem that troubled you that may help others provide ideas for you?

</comment></comment></comment><comment><USER3> Not sure if you mean long term (as in design-level issues) or short term (trying to hack through a particular method), but in either case one of the best things you can do is turn off from actively thinking about the problem. If you're banging your head against the wall, give yourself permission to walk away and let your unconscious process and work through the information. You will often be surprised to see the mountain leveled when you return. One way of doing this is taking a long walk as a mid-day break.

</comment><comment><USER4> Too general situation. Can you elaborate your question?

There is _always_ a better way but you need to build your solution in small incremental steps. This means that you can not solve anything until you had failed to solve the problem previously and identify the wrong answers leading to death ends.

</comment><comment><USER5> I have experienced these things as well. Switching tasks and coming back to the problem the next morning sometimes works wonders. Also pari programming and reasoning together about design and implementation can give you a fresh perspective from my experience.

</comment><comment><AUTHOR> It could also be that the 'solutions' I have are also idealistic which is more demanding than other simpler solution possibilities. Maybe this is part of the problem?

<comment><USER2> Yes, this can be a problem. Learning the difference between ideal and good enough to get the job done is important. Also, avoid the planning for every eventuality, work with what is known.

A common issue is someone saying, well I want it to do "X" in the future. Well great, then in the future you can refactor it to do "X", in the meantime I have to make it work and get it out the door. I will try to not do anything that would make "X" harder, but I won't worry about making it happen either.</comment></comment>


Internet of Things startup: electric imp - <AUTHOR> http://electricimp.com/

<comment><USER2> This is cool. At wattvision, we've essentially built our own version of this for the energy monitoring vertical -- would be interesting to see if they expose an API for devices generally. For example, if we can control imp devices through our UI, things get interesting! Or I guess we could consider the strengths/weaknesses of adopting their platform entirely. Looks like a stellar team with great backers, and they even used energy monitoring as one of their examples.

</comment><comment><USER3> Honestly I don't see the draw to this type of technology. It's a cool piece of hardware but it basically just allows for remote control and monitoring of electronics. Past the "that's cool" stage I don't see many people finding long-term use for such technology. The hacker in me hopes they prove me wrong, but I see this type of product continue to live serving a niche market.

<comment><USER4> For makers, its huge. The first time I put a garage door opener on the internet so I could open it with my smartphone was early 2007. At that time it required a chain of ill suited hard to program parts totaling nearly $300. Its was $90 just for a module to "get it on the internet" via RJ45 ethernet.

I did it again 3 months ago with a TP-Link 703 running openwrt. $22. Built-in wifi AND RJ45, usb port for io. (although I used the GPIO hooked up to is LED to save a few bucks). So that made it cheaper than buying a new remote at sears. Now I can see if the door is open and open and close it from anyhere. And give my friends temporary access to the door on Facebook.

Why is it important? Its the difference between "$297 of patented KCD IP, LLC technology"(1) requiring a monthly subscription to use doing almost but not quite what I wanted, and spending an weekend making it perfectly what I wanted for $22 with what I already had.

(1) [http://www.craftsman.com/shc/s/dap_10155_12602_DAP_Garage+Do...](http://www.craftsman.com/shc/s/dap_10155_12602_DAP_Garage+Door)

<comment><USER5> I would love to see your process for building this. I'm about to start a commute again after working from home for a while, and that damn garage door is one of my weak points :)

<comment><USER6> Make magazine has a similar project featured this month.

[http://makeprojects.com/Wiki/30#Section_12_000_Mile_Universa...](http://makeprojects.com/Wiki/30#Section_12_000_Mile_Universal_Remote)

</comment></comment></comment></comment><comment><USER7> We live in an exciting time. So many ideas haven't seen the light of day because tech like this hasn't hit the tipping point yet. Once it does, the physical creativity of the hackers will be unleashed. Hell, maybe we'll have hoverboards by 2015 after all.

</comment><comment><USER8> If you want a real internet of things, may I suggest a lower power protocol like ZigBee? Mesh networks come free with the spec! <http://en.wikipedia.org/wiki/Zigbee>

<comment><USER9> I share your distaste for 802.11. DECT also is lower power, longer range and even offers audio if you want it.

Bottom line, however, is that there is a huge installed base of 802.11. Every phone, home, and business already has it. You either stubbornly fight the tide, or you roll with it and use it to your advantage.

<comment><USER8> Well, ideally you have a 802.15.4 bridge hooked up to your network so that your laptop can talk to your home automation network from the internet. Both Comcast[1] and Nest[2] seem to be positioning themselves as providing that sort of gateway, if we're talking about normal consumers.

[1][http://www.cepro.com/article/xfinity_reveals_pricing_rollout...](http://www.cepro.com/article/xfinity_reveals_pricing_rollout_for_security_and_home_automation/) [2]<http://techcrunch.com/2011/12/22/nest-arm-zigbee/>

</comment></comment></comment><comment><USER10> This looks interesting. A big downside for me is that it sounds like they route all communications through their website. I would rather run a server on my local network and keep communications between me and my imps private.

</comment><comment><USER11> IOBridge is a similar product/platform that has been around for a while: <http://iobridge.com/>

</comment><comment><USER12> Given that a simple Ethernet shield for Arduino costs upwards of 40$ (last time I checked), this sounds very interesting to me (wannabe for-fun hardware hacker).

<comment><USER13> A Wi-Fi module like the RN171 from Roving Networks which has a full TCP/IP stack embedded is less than $35.

</comment></comment><comment><USER14> Neat. Like a real-life + hardware version of ifttt.com</comment>


The Crunchies are the Kid's Choice Awards of the startup scene. - <AUTHOR> http://blog.styleguidance.com/post/325284204/the-crunchies-are-the-kids-choice-awards-of-the <comment><USER2> Awards, and "Top n" lists are bullshit by definition. There isn't a "better model". Almost every award in the world is nonsense, from the Nobel Prize (at least Peace & Literature, possibly Economics?) to the Oscars.

An award that is voted by a small group of people is susceptible to internal politics. If it's large group, the nominees that cater to the lowest common denominator win. And then there are the ones compiled by a few journalists with a deadline and a PR-influenced perception. Sometimes awards are well deserved, but it's almost random. Simply don't let awards annoy you or impress you.

<comment><USER3> I think you're overstating the case: I wouldn't call the Turing Award or the Fields Medal nonsense, for example. The "test of time" awards for enduring research are also pretty valid, I think (e.g. <http://www.sigmod.org/sigmodinfo/awards/#time> ) Just because an award might be subject to politics doesn't mean it can't nevertheless be a meaningful recognition of high-calibre work. Obviously, awards aren't the _only_ or the most reliable way to identify good work, but many awards can't fairly be dismissed as "nonsense", either.

(But in the case of the Crunchies, I think they are widely understood to be a meaningless PR stunt.)

<comment><USER2> Fair point - awards like Turing or SIGMOD are different, where both the nominees and voters are high level experts in their fields. What I wrote applies to mainstream awards & lists.

</comment></comment></comment><comment><USER4> _> I mean how else do you explain that Zynga CEO [Marc Pincus] beat out Zappos CEO Tony Hsieh for CEO of the year?_

If you'd been to Startup School in October, this would have been blindingly obvious.

Pincus was the closer for a reason -- the mood in the room was instantly _I want to go to there_ , and the temperature went up ten degrees. Even Zuckerburg was hooting and hollering!

On the other hand, almost none of us young hackers would want to work for Hsieh -- his company's culture is steeped in an entirely different demographic, and he admitted as much in his speech.

<comment><AUTHOR> still, what does it say about the startup community if we reward that kind of unethical behavior as a CEO?

I mean sure, these guys aren't the only ones who did these rebill offers. But they were the target of the whole Scamville issue.

Turning around, a month later and picking the guy behind this, as one of the 6 for people to vote for, just seems wrong.

If we don't regulate, what we find ethical as a startup community, then 5-10 years down the line Congress will do it for us. And trust me, we won't like it one bit, if they have to step in to protect the consumer.

<comment><USER5> _"what does it say about the startup community if we reward that kind of unethical behavior as a CEO?"_

That start ups are about money first. And what they did was technically legal. Unethical moves like this happen in broad day light and in headlines all the time.

Generalizing, the vast majority of the American (other countries, too) population honestly doesn't raise enough of a stink.

Is it because we are uneducated, don't understand the impact, or merely don't care because things won't change for us tomorrow? We do not grasp the gradual net effect of many 'tomorrows' as the cause because it is too far removed from the action.

<comment><USER6> Startups are about money first, but they aren't about money above all else.

 _[Edit] I said something harsh and kind of dumb here before, and have removed it. I'm sorry._

</comment></comment></comment></comment><comment><USER7> _Einstein was asked to appear alongside the comic actor Charlie Chaplin during the Hollywood debut of the film City Lights. When they were mobbed by thousands, Chaplin remarked, "The people applaud me because everybody understands me, and they applaud you because no one understands you." Einstein asked Chaplin, "What does it all mean?" Chaplin replied, "Nothing._

<comment><USER8> [http://www.corbisimages.com/Enlargement/Enlargement.aspx?id=...](http://www.corbisimages.com/Enlargement/Enlargement.aspx?id=BE042012&ext=1)

WWW rules.

</comment></comment><comment><USER9> Why Balsamiq wasn't elected for bootstrap?

<http://www.balsamiq.com/blog/2010/01/03/a-look-back-at-2009/>

The numbers here absolutely dominate anything tinychat has going for them at the moment, as far as I know.

<comment><AUTHOR> because startup scene knows about Balsamiq, but it doesn't have the mainstream recognition...which are the people who actually voted in the crunchies

<comment><USER10> And Tinychat does? :/ It was the first time I'd heard of it.

<comment><AUTHOR> it has more average joe users...since this is based on voting, I bet tiny chat just threw up a "vote for us!" badge on their site.

That's the problem with user voting...the one with the biggest audience, always wins.

<comment><USER11> They did. And not just a badge, an obnoxious modal banner that would pop up every 10 minutes until you voted.

</comment></comment></comment></comment></comment><comment><USER12> I like the concept of an oscar style voting model for startup awards a lot.

</comment><comment><USER13> OT: For a site called Style Guidance, it's pretty hard on the eyes. Maybe softer colors would be better.

<comment><AUTHOR> yeah most techie guys tend to say this. Fashion people(especially women) love it.

The site was actually designed by the alpha users. I had them give me ideas of what to do, and then I'd show them 3-4 mockups, and they'd vote for the best looking one. Went through 5 major redesigns until we hit the current version(which they all loved).

To tell the truth, I'm not really a huge fan of it either, but it was a quick hack job to get something out ASAP. My philosophy is that the sooner you start, the sooner you grow. Wasting an extra 1-2 months on a perfect design makes no sense when you have no users.

I'm actually already working on a redesign. Should be a little bit more mainstream. Don't get me wrong, it'll still have the fashion feel...but it'll look a lot more refined.

BTW I don't know why you are being downvoted, since I fully agree with you.

<comment><USER13> _BTW I don't know why you are being downvoted, since I fully agree with you._

Maybe just because my comment was off topic.

I was pretty sure that the site was yours (the OP), so I thought I'd give you some feedback. Good luck.

</comment></comment></comment><comment><USER14> You are missing the point of the Crunchies. It's the once-a-year party where we all celebrate the web.

Yes, the voting is not the best, but that's not critical.

<comment><USER11> It's true, especially for the people who attended (I was there), the after- party was far more interesting than the awards show itself.

Also the juggling comedians act and the Richter Scales were fun. Listening to who won "best PR firm", not so much.

</comment></comment><comment><USER14> You are missing the point of the Crunchies. It's the once-a-year party where we all celebrate the web.

Yes, the voting is not the best, but that's not critical.

<comment><AUTHOR> Then call it a party, not an awards show.

And why can't there be two parties? The crunchies(kid's choice awards) and the starties(oscars)

<comment><USER14> It's a free country, you are welcome to start your own awards show, with a perfect voting process if possible. Then we can make fun of you too.

My point is that criticizing is easy, but pulling of such an award show is not as easy as it looks. Actually, you'd be very aware of that fact if you attended the first Crunchies 3 years ago. This year, the transitions mostly worked out, they were not 2 hours late, and almost no awkward moments on stage.</comment></comment></comment>


Show HN: Go Micro – The Go microservices development framework - <AUTHOR> https://github.com/micro/go-micro <comment><USER2> This looks really great. It really helps to have so many things provided with common interfaces.

I went to star the repo and found that I (along with 8403 others) already had. Haven't been writing Go for a while now and looking forward to the next opportunity.</comment>


How to Be More Productive - <AUTHOR> https://www.youtube.com/watch?v=qP1AmDRhoas <comment><AUTHOR> I was really impressed by Scott and his way of thinking about work and productivity. The video is itself a great practical demonstration: He builds a beautiful wooden ramp for his parents' house in a single afternoon, while simultaneously producing a video for a popular crafting channel. He also built the work truck you see him grabbing tools out of [1]. And a reddit thread suggests that he is likely also the guitarist you hear in the background of the video [2].

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

[2] [https://www.reddit.com/r/videos/comments/83yrg0/how_to_be_mo...](https://www.reddit.com/r/videos/comments/83yrg0/how_to_be_more_productive/dvm3zxu/)</comment>


How I increased my margins 40% for my subscription business - <AUTHOR> http://howtostartasubscriptionbusiness.com/2015/03/14/how-i-increased-my-margin/

<comment><USER2> In case the author posted this, HTTPS is busted for moustachecoffeeclub.com (followed link from your subscription box service landing page)</comment>


China's Uighur Camps Swell as Beijing Widens the Dragnet - <AUTHOR> https://www.wsj.com/articles/chinas-uighur-camps-swell-as-beijing-widens-the-dragnet-1534534894 <comment><USER2> If China is using for example Apple's data to help incarcerate their citizens, does anyone else think Apple shares responsibilty? Would a Uigur that was detained and tortured have possible legal standing in the US to sue the American corp. that helped enable the surveilance?

<comment><USER3> [https://www.rfa.org/english/news/uyghur/report-uyghurs-in- ch...](https://www.rfa.org/english/news/uyghur/report-uyghurs-in-china-forced- to-install-surveillance-app-that-leaves-their-data- unsecured-04102018164341.html)

Apple not required (nor would an iPhone be affordable - Sinkiang is one of the poorer regions of China).

</comment></comment><comment><USER4> > "why do you believe in religion, there is no God"

This is why tolerance is so important. When there is no tolerance, then people will justify anything.

</comment><comment><USER5> Want to know a really good way to increase the power of a separatist group? Build internment camps. Congratulations, you played yourself.

</comment><comment><USER6> I feel this is so much worse than the current US government policy is, regarding Muslims. It's sad that these groups get no support from middle east countries or Pakisthan that should sympathize with their plight.

<comment><USER7> They're not specifically targeting muslims, at least for now. For example, Hui muslims, another Chinese minority, aren't persecuted. It's more to do with the Uighur ethnicity.

</comment></comment><comment><USER8> China basically is occupying a foreign country that they annexed 50 years ago and is now subjugating its conquered people to literal fascism. Where is the West's denunciation?

<comment><USER3> This is probably why:

"We have to conquer our own country and purify it of all infidels. Then, we should conquer the infidels' countries and spread Islam. The infidels who are usurping our countries have announced war against Islam and Muslims, forcing Muslims to abandon Islam and change their beliefs."

– Abdullah Mansour, current leader of the Uyghur separatist movement Turkistan Islamic Party (East Turkestan Islamic Movement), from "The Duty of Faith and Support," Voice of Islam/al-Fajr Media Center, August 26, 2009.

[https://en.wikipedia.org/wiki/Terrorism_in_China#Xinjiang](https://en.wikipedia.org/wiki/Terrorism_in_China#Xinjiang)

Go ahead, intern away China.

<comment><USER9> That is one guy. I never met anyone who espouses that on the ground. If anything, that quote is aiming to generate (a previously mentioned) external support from nations that you would think would want to help due to a shared religion.</comment></comment></comment>


The Unix Philosophy and Elixir as an Alternative to Go - aaron-lebo http://lebo.io/2015/06/22/the-unix-philosophy-and-elixir-as-an-alternative-to-go.html <comment> vezzy-fnord Erlang (and by extension Elixir) are good languages for web development, I agree. Frameworks like Nitrogen and N2O even let you do frontend work directly from base Erlang constructs like records and functions to represent templates and JS callbacks, respectively.

However, they will not replace Go for a rather simple reason. Erlang is an application runtime first and a language second. It's not meant to play with the native OS all that well, instead relying on its own scheduling, semantics, process constructs and the OTP framework. It exports a minimum set of OS libs for things like file system interaction, but you wouldn't write a Unix subsystem daemon in it. Though, you certainly _can_ \- if you want to hack with NIFs, port drivers and C nodes. But then you put the global VM state at risk if some native caller blows up.

For this reason, Go will remain a dominant choice for infrastructure and systems programmers. It definitely _is_ replacing C/C++ for lots of things above kernel space, contrary to your statement.

I'd honestly dispute the characterization that Elixir is a small language. Erlang is easier to fit into your head, not least of which is because of how essential pattern matching on tuples and lists is. It's a consistent and homoiconic design, more warty constructs like records aside.

Finally, Erlang/Elixir aren't Unix-y at all. Don't get me wrong, BEAM is a wonderful piece of engineering. But it's very well known for being opinionated and not interacting with the host environment well. This reflects its embedded heritage. For example, the Erlang VM has its own global signal handlers, which means processes themselves can't handle signals locally unless they talk to an external port driver.

<comment><USER2> Golang implements a custom scheduler in userspace too, and this is why its FFI is not as fast or as well integrated with the OS as the calling conventions of C or C++ are. Heck, Golang's FFI is even less straightforward than that of Java, since the JVM is typically 1:1, not M:N.

Once you've gone M:N you're effectively in your own little world. There's a reason Golang's runtime is compiled with the Golang toolchan, and why it invokes syscalls directly as opposed to going through libc.

<comment><USER3> I did some cgo (Go's FFI) work. Go's FFI is vastly superior to JNI (which is in a league of its own when it comes to awfulness).

No FFI is really great. Go's isn't as good as C# or Luajit or Swift but better than Java or Python or Ruby or Lua FFI (where you have to write a wrapper for each function you want to expose to the language).

C and C++ _are_ OS calling conventions so I'm not sure what that was supposed to mean.

It's true that go is M:N and that it does have bearing on bridging _some_ C code (in rare cases where C code only works when called on main thread).

However, gccgo has Go runtime written in C and compiled with gcc, so go's runtime isn't tied to one toolchain.

I don't know why Go designers chose to (mostly) avoid libc but it certainly is great for portability and ease of cross-compilation. If you take dependency on libc (which is different between Linux/Mac/Windows) you pretty much throw the ability of cross-compile and given Go's static compilation model would require bundling a C compiler (unlike runtime-based languages like Java, Python or Ruby, where only runtime has to be compiled on the proper OS, so that complexity is contained for the programs written in the language).

I don't see why do you ding Go in particular for being "it's own little world". Compared to C - of course. Compared to Java or Python or Elixir? Much less than them.

<comment><USER4> On Java's case it was made awful on purpose, to discourage developers from writing native extensions.

The new FFI is on its way, but it might arrive only on Java 10.

<comment><USER5> Its of topic but I think it was a great idea to have terrible C interop. It really forced people to write java all the way. This meant the JVMs could really evolve unlike the Python and Ruby ones.

I am not sure the new java FFI is such a great idea in the long run. I would rather that they spent more time focusing on object layout and GPU compute ;)

<comment><USER6> > It really forced people to write java all the way. This meant the JVMs could > really evolve unlike the Python and Ruby ones.

Java's FFI is horrible; Python and Ruby are mediocre. LuaJIT2's is fantastic. Not so surprisingly, Python ate Java's lunch in places like scientific computing, where it is much more beneficial to build on existing work.

Python is hard to dethrone from that spot right now because of momentum, mostly - but if the competition was started again, I'm sure LuaJIT2 would take the crown (Torch7 is based on it, but that's the only one I know).

I think my bottom line is: If you want your VM environment to be self sufficient, have horrible FFI like Java. If you want your VM environment to thrive with existing codebases, you have to have at least a mediocre one like Pythons. But you can have the best of all worlds like LuaJIT[2] - and that's who Oracle should be copying.

<comment><USER4> I think Python will loose momentum as soon as Julia gets more adoption, likewise with languages like Go and ML derivatives. Unless PyPy gets more widespread that is,

Upcoming Java's FFI is based on JNR, an evolution of JNA, used by JRuby for native FFI.

Nevertheless everyone seems to have forgotten about CNI, implemented on GCJ, which mapped C++ classes directly to Java ones.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> > That being said, have you tried writing a web app in Go? You can do it, but > it isn't exactly entertaining. All those nice form-handling libraries you > are used to in Python and Ruby? Yeah, they aren't nearly as good. You can > try writing some validation functions for different form inputs, but you'll > probably run into limitations with the type system and find there are > certain things you cannot express in the same way you could with the > languages you came from. Database handling gets more verbose, models get > very ugly with tags for JSON, databases, and whatever else. It isn't an > ideal situation. I'm ready to embrace simplicity, but writing web apps is > already pretty menial work, Go only exacerbates that with so many simple > tasks.

This.

And don't even try to work around these limitations and share your work for free, or you're going to get trashed by the Go community( i.e. the Martini fiasco )

But think of go more as a blueprint. Go has great ideas(CSP,go routines,...)

Hopefully it can inspire a new wave of languages that don't rely on a VM, that are statically typed and safe without a fucked up syntax.

The language that succeeds in striking the right balance between minimalism and features with an excellent support for concurrency will be the next big thing.

<comment><USER8> > ( i.e. the Martini fiasco )

Reference please for those of us who are only casual Go users?

<comment><USER9> The author of Martini released his framework, some people in the community said it wasn't idiomatic Go, he agreed and eventually released another one called Negroni.

I don't know if he was "trashed", or whether there was a "fiasco".

<comment><USER10> Jeremy Saenz certainly remains a well respected member of the Go community.

Martini is very 'magical' and makes it hard to see exactly what's going on, making it quite unusual as a Go framework, so naturally it drew some criticisms. After some experience with the library, Jeremy realized that he actually needed a lot less to do what he wanted, so he wrote Negroni.

</comment></comment></comment></comment><comment><USER11> > Somewhere, however, that has been extrapolated to the idea that Go is a good > language for writing web apps. I don't believe that's the case.

I have always had this feeling and thought why isn't more people speaking up about that.

For me it's a good improvement from C++ (and maybe C as well), somehow well- suited for systems programming.

I never understood how people can claim it to be natural "upgrade" from Python or Ruby. I have a feeling the opposite is actually the case. This of course is all in the web-development context, not in general one.

</comment><comment><USER12> I am utterly baffled by people who use the phrase "The Unix Philosophy" for justifying a piece of software but don't understand that Unix philosophy is in the context of software that can be _composed_ together. That is why the other tenet of the Unix philosophy is to use text streams for all I/O.

</comment><comment><USER13> I think Elixir and Go solve different problems -- but for the problem space the author mentions here, web services, Elixir is clearly superior.

</comment><comment><USER14> Thanks for that interesting viewpoint. I have also done the same survey, and I agree. I did a ChicagoBoss PoC last year, and Elixir and Phoenix are my goto for the next one.

It should also be noted that both are young languages and they are evolving rapidly. This makes them even more exciting to me. Also, I think Go's sweet spot may be a new approach to client/server i.e. applications that work across the network. This is quite different than the browser/app server model. Elixir has similar plumbing that fit this model as well, but what really excites me about Elixir and Phoenix is the ability to build a restful MVC application that can take advantage of Erlang/OTP's scalability.

<comment><USER7> > It should also be noted that both are young languages and they are evolving > rapidly.

Go will basically get dynamic linking and stop evolving. Its type system is way too simple to support any new significant feature. And go designers have said many time that the language is "done".

<comment><USER15> My understanding is not that they have said that the language is "done", but that the 1.0 branch is stable and won't get any new major language features. At somepoint they will start rolling out 2.0 and it will have new features, maybe even generics. But why should they worry about that the language is plenty good as it stands for developing and their is plenty of work to do on cleaning up build systems, runtime, gc, etc.

<comment><USER7> > "The language is done and that's a good thing," Buberel says.

[http://finance.yahoo.com/news/google-thinks-knock-one- oracle...](http://finance.yahoo.com/news/google-thinks-knock-one- oracles-233951894.html)

Pike said exactly the same thing(video is on youtube), another Go guy said exactly the same thing in a podcast ...

So yes, Go language is DONE, period.

> But why should they worry about ...

They don't, however people adopting Go and wanting generics shouldn't be tricked into thinking that Go developers are even considering generics , because they are not. If they invest in Go, they should know that they aren't going to get generics at all. As for what the Go team thinks, it doesn't really matter they are not betting their own startup on Go.

> they will start rolling out 2.0 and it will have new features

where did you get that idea? it is impossible to add significant new features without breaking backward compatibility, do you really think Go designers are ready to go that way? of course not. But i'm curious what led you to think that ?by all means, give me official sources like I just gave you.

<comment><USER16> _So yes, Go language is DONE, period._

 _They don 't, however people adopting Go and wanting generics shouldn't be tricked into thinking that Go developers are even considering generics , because they are not._

Wrong:

 _Generics may well be added at some point. [...] This remains an open issue._

[https://golang.org/doc/faq#generics](https://golang.org/doc/faq#generics)

<comment><USER7> If you understand one or two things about type theory then you know that generics cannot be added to GO. Go designers know it. They cannot add generics without breaking the language and they will not break the language.

When you have at least 3 core designers of that language saying on record that the language won't have new features, then you know what is written in that Faq ain't going to happen.

So let's not mislead people interested in Go into thinking that it will get generics, it will never have generics.

<comment><USER17> I think you need to justify that statement, what about type theory says that Go can't have generics?

As a follow-up, would the same logic have proved that Java 1.4 couldn't add generics?

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> I have been using Elixir for a while now! I'll never go back to Go or Node.js by choice.

<comment><USER19> Why Elixir over native Erlang? Nobody including the original piece seems to address this. Is it just a subjectively nicer syntax?

<comment><USER20> The biggest obstacle to erlangs adoption is that it does not have a low barrier to entry. The syntax is strange, the way of structuring and building solutions is strange. It is incredibly powerful, but it requires a different way of thinking.

Elixir makes sense because it is a lower barrier to entry. This is a very important factor. It is one of the main reasons why node.js was so successful in reaching a large audience. It is why Go is more popular than Erlang. They are often used in the same domain and Erlang is arguably more powerful. People still choose Go however.

<comment><USER4> Strange for those that never did Prolog.

I was really into Prolog back in the university days, to the point of being into logic programming competition between universities.

Got to understand Erlang at the first try, when reading about the language or watching web talks.

It pretty much depends from where one is coming from.

<comment><USER20> The vast majority of programmers never used or cared about Prolog.

<comment><USER21> They have missed out.

In terms of elegance, I've never written anything that surpasses Prolog _.

_ For a defined subset of problems.

</comment></comment></comment></comment></comment></comment><comment><USER22> _> However, as we more and more turn servers into REST APIs that are supposed to deliver JSON to numerous clients, for many it is time to find an alternative._

Perhaps the alternative isn't more REST APIs that deliver JSON; given its inherent problems, it's more likely we'll be using a challenger to that entire model, like GraphQL.

[https://facebook.github.io/react/blog/2015/05/01/graphql- int...](https://facebook.github.io/react/blog/2015/05/01/graphql- introduction.html)

<comment><USER18> I willing to bet once the spec is out there will be a Elixir implementation of GraphQL. I am also willing to bet Elixir would still be faster then Node.js, Ruby, or Python for that.

</comment></comment><comment><USER23> Code samples side-by-side comparison: [http://rosetta.alhur.es/compare/go/elixir/#](http://rosetta.alhur.es/compare/go/elixir/#)

</comment><comment><USER24> Just keep using Ruby or, if you must, Node. Rails 5 is going to fit those use cases just fine. Web programming is entirely too complicated to roll your own stack unless you absolutely need to.

</comment><comment><USER25> >Finally, JavaScript handles the modern web well, but it isn't perfect. If a request does something that is especially CPU-heavy, every single user of your application will be waiting.

One thing you might want to take into account is that ES2015 generators allow you to write long, blocking functions as generators that partially compute the result before deferring further computation to somewhere further along in the message queue. This allows you to spread out blocking computations so that you can still serve requests.

</comment><comment><USER26> Erlang is well-researched, pragmatical language (read the Armstrong Thesis at last) this is why it is "great". User-level runtime, which is trying to do kernel's job is a problem, but relying on message-passing and being mostly- functional it, at least, have no threading/locking problems - so it scales. Nothing much to talk about.

Go is also well-researched language with emphasis on keeping it simple and being good-enough _and_ doing it right way (utf8 vs. other encodings) - <AUTHOR> philosophy from Plan 9. Go has in it a lot of fine ideas, attention to details and good-enough minimalism - the basis for success. It is also pragmatic - that is why it is imperative and "simply" static-typed.

Criticism about lack of generics or is not essential, especially considering that generics in a static typed language is an awkward mess. Complexity of its user-space runtime is a problem, of course, but runtime is hard, especially when it is not mostly-functional.

Go is in some sense "back to the basics/essentials" approach, not just in programming but also in running the code, and even this is enough to be successful.

BTW, its syntactic clumsiness and shortcomings (hipsters are blogging about) came from being statically typed, just admit it. On the other side, being C-like and already having C-to-Go translators opens up the road to static- analyzing and other tools.

Go is the product of old-school (Bell labs) minds (like Smalltalk or Lisps) not of bunch of punks.)

<comment><USER27> Go's error handling leaves something to be desired. I find myself reinventing exceptions a lot by just passing errors up through generic "error" return types.

It feels like it would be a lot cleaner to add syntax support for exceptions and call it a day.

<comment><USER28> There is support for fully "exceptional" behavior. It's called "panic".

The Go language designers explicitly didn't include exceptions because "coupling exceptions to a control structure, as in the try-catch-finally idiom, results in convoluted code. It also tends to encourage programmers to label too many ordinary errors, such as failing to open a file, as exceptional" [1].

I agree with them. While handling errors everywhere is a little painful to write, it enforces better practices by making you acknowledge that things could fail and ignore, handle, or pass the buck.

[1] [https://golang.org/doc/faq](https://golang.org/doc/faq)

<comment><USER29> > I agree with them. While handling errors everywhere is a little painful to > write, it enforces better practices by making you acknowledge that things > could fail and ignore, handle, or pass the buck.

There are better ways of accomplishing the same thing though, one way is the Either monad in Haskell. Here's an example I post sometimes comparing error handling in Go to Haskell's either monad:

        func failureExample()(*http.Response) {
            // 1st get, do nothing if success else print exception and exit
            response, err := http.Get("http://httpbin.org/status/200")
            if err != nil {
                fmt.Printf("%s", err)
                os.Exit(1)
            } else {
                defer response.Body.Close()
            }

            // 2nd get, do nothing if success else print exception and exit
            response2, err := http.Get("http://httpbin.org/status/200")
            if err != nil {
                fmt.Printf("%s", err)
                os.Exit(1)
            } else {
                defer response2.Body.Close()
            }

            // 3rd get, do nothing if success else print exception and exit
            response3, err := http.Get("http://httpbin.org/status/200")
            if err != nil {
                fmt.Printf("%s", err)
                os.Exit(1)
            } else {
                defer response3.Body.Close()
            }

            // 4th get, return response if success else print exception and exit
            response4, err := http.Get("http://httpbin.org/status/404")
            if err != nil {
                fmt.Printf("%s", err)
                os.Exit(1)
            } else {
                defer response4.Body.Close()
            }

            return response4
        }

        func main() {
            fmt.Println("A failure.")
            failure := failureExample();
            fmt.Println(failure);
        }

The equivalent Haskell code:

        failureExample :: IO (Either SomeException (Response LBS.ByteString))
        failureExample = try $ do
          get "http://www.httpbin.org/status/200"
          get "http://www.httpbin.org/status/200"
          get "http://www.httpbin.org/status/200"
          get "http://www.httpbin.org/status/404"

        main = failureExample >>= \case
          Right r -> putStrLn $ "The successful pages status was (spoiler: it's 200!): " ++ show (r ^. responseStatus)
          Left e -> putStrLn ("error: " ++ show e)

</comment></comment></comment></comment><comment><USER30> I feel that this discussion would be incomplete without mentioning D-lang ([http://dlang.org](http://dlang.org)) and the vibed framework ([http://vibed.org](http://vibed.org)) as alternatives to the technology platforms that the author mentioned.

</comment><comment><USER31> What about deployment ? How does it compare to "scp and i'm done" like in go ?

Also what about memory usage ? My latest go service was a 4 mo file with one single json config file. It consumed less than 4 mo in RAM, which let me deploy it on a base 500Mo instance with plenty of memory to spare.

<comment><USER32> I haven't used Elixir yet but deployment in Erlang isn't quite that simple, though it's not bad with some of the recent tools like relx. Just musing here but if you're dev environment is "scp and i'm done" then Elixir/Erlang are likely overkill for the problem at hand (Python or Ruby would probably work fine?). There is some base amount of complexity involved with working with BEAM but the features you gain in return are worth the trouble.

<comment><USER20> "scp and i'm done" is completely possible with Elixir/Erlang. It is how we deploy lots of erlang pages. Copy beam files, have erlang check periodically if any beam files have changed and reload them.

Using erlang releases is in no way mandatory.

<comment><USER32> Sure I suppose that's possible but it just seems a little gross. At least with 'scp binary' your first and all subsequent deploys use the same process so tools like Ansible can help you out. I guess that's what I was referring to -- repeatable deploys; pushing a new a BEAM release package is a more involved process than just with a single binary.

<comment><USER33> I totally agree, being able to just ship binaries around is fantastic. No complex process necessary, things Just Work™.

However, if you're ok with a little extra process, Elixir allows for hot code reloads. To be fair, most use cases probably don't need it, but it's a pretty great option to have in your tool belt.

</comment></comment></comment></comment></comment><comment><USER34> Models get ugly with tags? You don't have to have them unless the names are different.

This post is all about familiarity and the degree to which you are interested in using a language (just like every other post of its kind).

</comment><comment><USER35> Web workers are real concurrency and afaik, there is no GIL that spans across the main thread and the worker threads in any of the browser implementations of web workers.

<comment><USER36> The limitation with Web Workers is that the main worker thread is the only one that can interact with the DOM.

<comment><USER37> Why would you want multiple threads touching the UI? Android processes for instance only have one UI thread.

<comment><USER36> Updating is different than reading. Having concurrent reads would be a good thing.

<comment><USER37> I do not see a big benefit from that. Reading from the DOM will already be fast and can be handled in one thread. And you won't have concurrent reads if another thread is writing to the DOM.

I think the designers of web workers made this decision thoughtfully. Other environments like iOS and Android only have one UI thread as well.

</comment></comment></comment></comment></comment><comment><USER38> Important to note is that Elixir is created y Jose Valim from plataformatec. An important person and company in the Ruby community

</comment><comment><USER39> Surprisingly favorable benchmark: [https://github.com/mroth/phoenix- showdown](https://github.com/mroth/phoenix-showdown)

and related HN discussion: [https://news.ycombinator.com/item?id=8672234](https://news.ycombinator.com/item?id=8672234)

<comment><USER40> It gets even more interesting on bigger hardware. A user ran the benchmarks on a 10 core Xeon, Phoenix got 180,000 req/s and peaked at 75% CPU, so IO was still the bottleneck. We were also able to have ~600µs average latency with that load.

[https://gist.github.com/omnibs/e5e72b31e6bd25caf39a](https://gist.github.com/omnibs/e5e72b31e6bd25caf39a)

</comment></comment><comment><USER41> Elixir and Phoenix are great for web-apps, REST API's and the like. Phoenix channels make real-time push super simple and scalable.

</comment><comment><USER42> > We've known for years that Ruby and Python are slow, but we were willing to > put up with that. However, as we more and more turn servers into REST APIs > that are supposed to deliver JSON to numerous clients, for many it is time > to find an alternative.

> You see a lot of competitors trying to fill this void. Some people are crazy > enough to use Rust or Nim or Haskell for this work, and you see some > interest in JVM based languages like Scala or Clojure (because the JVM > actually handles threading exceptionally well), but by and far the languages > you both hear discussed and derided the most are JavaScript via node and Go.

Meanwhile the Java programmers just keep on delivering with Jersey, Spring, Restlet etc. etc. so forth. Less blogging, more doing.

<comment><USER32> No time for blogging, too much boilerplate to write!

<comment><USER42> Come now, we have IDEs for that. But seriously, Java users are not stuck in the 1990s, even if your gibes at its expense are, so perhaps you should revisit it. :)

<comment><USER43> Not just IDE's but also scripting languages like Groovy (the scripting version), its predecessor Beanshell, other less often used ones like Nashorn and Xtend, and even Clojure which doubles as a systems language.

NB: By "Groovy (the scripting version)" I mean the component of Groovy which was Beanshell with closures and collections syntax added, but before the meta- object protocol was. So Groovy as used by Gradle rather than Groovy as used by Grails.</comment></comment></comment></comment>


Losing Our Way - <AUTHOR> http://www.nytimes.com/2011/03/26/opinion/26herbert.html?_r=1

<comment><AUTHOR> I'm typically an optimist, but it is difficult to read things like this and maintain a glass-half-full perspective. I wonder if the same type of sentiment was expressed post-Great Depression? I still have faith in this country.

<comment><USER2> Recessions and depressions kill off things that are no longer working well for some reason. I believe those folks who embrace change and adapt quickly will suffer less. I also think that new growth gestates in darkness, so the best use of "dark times" is to gestate something beautiful and wonderful that has the potential to make for not just a better future but an amazing future.

Yeah, I get the sh*t kicked out of me for my excessive optimism/positivism. :-)</comment></comment>


Show HN: Reactive Extensions for Swift - <AUTHOR> https://github.com/kzaher/RxSwift

<comment><AUTHOR> Hi, I've ported and adapted Microsoft Reactive Extensions for Swift. I've only ported most common operators like map / select, filter / where, combineLatest, switchLatest, throttle, merge, concat, refCount, publish, ... with corresponding unit tests.

If somebody doesn't know what reactive extensions are, I've tried to explain as best as I could in README.md. It also contains small example app.

I am aware that guys are trying to do something similar with reactive cocoa and swift, but their vision is little different. Error behavior is significantly different and release date unclear.

Anway, I thought I would give it a try.

Yesterday I've come to a point of creating something presentable to public, so this is the result.

I would appreciate any feedback on this.</comment>


IMac Touch Interface Shown Off In Apple Patent - <AUTHOR> http://gizmodo.com/5619933/imac-touch-interface-shown-off-in-apple-patent <comment><USER2> I'm unsure whether access to 'apps' on an iMac would be a good or bad thing. It would have to be implemented properly for it not to feel like a douche commercialization gimmick.

Also if iMac apps couldn't include Flash it would turn Apple into a laughing stock.</comment>


New screencast series for Neo4j.rb project - <AUTHOR> https://www.youtube.com/playlist?list=PL5klM3mD6alLUhNTPTbj5a3GBjU7oZN0t

<comment><AUTHOR> I'm really happy to have finally released this. The first three episodes cover basic setup and usage (should be more or less familiar to anybody who's used an ORM before). The second three cover how the ActiveNode module allows you to easily create deep and complex queries using Neo4j and Ruby</comment>


Python Number Conversion Chart - <AUTHOR> https://gist.github.com/Nurdok/4096182

<comment><USER2> It should be noted that data.encode('hex') and data.decode('hex') would not work in Python 3.x:

<http://stackoverflow.com/q/12917278/23643>

</comment><comment><USER3> And for people who want to convert user entered numbers, like "3.2 million", into strings, I wrote a package especially for that: <https://github.com/naftaliharris/numutil>

        >>> from numutil import str2num, num2str
        >>> str2num('1.3 million')
        1300000
        >>> str2num('three and a half')
        Fraction(7, 2)
        >>> str2num('123,456.789')
        123456.789
        >>> num2str(1234567, style='newspaper')
        '1.23 million'
        >>> num2str(1234567, style='words')
        'one million, two hundred thirty four thousand, five hundred sixty seven'

<comment><USER4> Really useful, thanks for making this!

How is the "three and a half" part implemented? Is that just a set of regexes looking for a couple of common patterns? For example, can it parse something like "three and three thirds"?

<comment><USER3> Sure, I'm glad you like it! :)

str2num parses words by iterating through them once and keeping state about the result so far and what I call the "magnitude". So, for example, when you feed it "three and three thirds", it initializes magnitude and result to zero, chomps the first "three", and then sets magnitude = 3.

If the next word were "million", then it would know that magnitude refers to million, and so it would multiply 3 by 1 million. But the next word is "and", which flushes the magnitude to result, (ie, result += magnitude), and resets the magnitude to zero.

The next word is "three", which, as before, sets magnitude to three. Then the next word is "thirds", so you know that magnitude refers to "thirds", and so you multiply the magnitude by Fraction(1, 3) and add it to result.

      >>> str2num("three and three thirds")
      Fraction(4, 1)

The source for this is here: [https://github.com/naftaliharris/numutil/blob/master/numutil...](https://github.com/naftaliharris/numutil/blob/master/numutil.py#L72-159)

</comment></comment></comment><comment><USER5> of all the languages, python probably needs this the least. it's been my main language for 8 years, and once I initially learned the functions, I never needed to be reminded.

<comment><USER4> I think this kind of reference is useful just to remember what can be done "out of the box" with the language, especially for polyglot developers.

I've definitely written my own Python hex string -> binary data conversion function, before I knew some of these tricks. If you spend part of your time working in JavaScript or PHP, it's easy to forget that you don't have to reinvent the wheel with Python.

</comment></comment><comment><USER6> Direct link <https://gist.github.com/Nurdok/4096182>

'oct' should also be added:

        >>> oct(45)
        '055'

One caveat: Python doesn't assume the leading '0' indicates that the number is octal, so you must specify radix 8:

        >>> int('055', 8)
        45

<comment><USER7> Wouldn't it be better to comment on the direct link, where the author is more likely to see it?

<comment><USER6> Valid point, comment submitted. I assumed the author submitted this to HN in the first place

</comment></comment></comment><comment><USER8> Ruby translation: <https://gist.github.com/havenwood/5426260>

<comment><USER8> Partial Scala translation: <https://gist.github.com/chris-martin/5426294></comment></comment>


Ask HN: What do you do when you or someone you love is undergoing depression - <AUTHOR> Haven't been sleeping well for almost a week. Doing morning runs and exercises but still feel shitty most of the day.<p>It could be the Seattle weather kicking in but I feel lost and anxious of the future. Trumps executive actions against immigrants don't help too. I really don't know what I want in life. My relationship with my partner is slowly eroding. <comment><USER2> If it is yourself:

Realize it is likely you feel this way for a reason, and it is a sign of health. Do an inventory of the main pieces of your life and note which situations are causing you pain:

\- work life

\- living/housing situation

\- physical health (including movement, sunlight, eating habits and sleep)

\- general social life (do you have spontaneous positive interactions with acquaintances, coworkers, baristas etc.)

\- personal social life (relationships with partners/family and close friends)

If you are feeling depressed I can bet you more than one thing on this list can deserve attention. Pick one you can change for the better immediately and work on it. For instance, if you are lacking social interaction in general, go pick up a coffee someplace that is not too busy and either smile and make brief small talk with someone working there or another customer. If you don't like your apartment, put effort into finding a new one. Talk to your partner or get relationship counseling. Things are not going to magically become perfect overnight, but small things every day add up over time.

If it is someone you love: Listen if they are talking, talk to them if they are quiet. Generally be supportive. Search for a positive thing they are doing or want to do and give them positive reinforcement for it. They are stuck in a negative thought cycle and try to encourage something in them that is working. Here is an example: Friend: "my life sucks. I hate my job, my expenses are too much for what I make, and on top of all that, I just found out that my girlfriend is selling herself to strangers on Craigslist. I already confronted her about it, but she just says to accept her entrepreneurial polyamory and get over it. At this rate, I am never going to get a phd in deep learning or do a startup or have a stable family like I want"

You: "cool you want to get a phd? yeah I've heard about deep learning it sounds cool... which programs would you want to do/ what projects do you want to work on etc."

Remember that scene in fight club where Durden orders the clerk to follow his dream of going to vet school? Something like that. Listen to them to figure out where they want to be headed, and encourage that.

<comment><AUTHOR> Thanks for this.

</comment></comment><comment><USER3> My advice is to consider talking to a licensed mental health professional.</comment>


Your iPhone and iPad Are Limited. T-Mobile is the Exception - <AUTHOR> http://www.itweakios.com/apps/blog/entries/show/27518711-the-ugly-truth-your-iphone-and-ipad-are-limited-t-mobile-the-exception- <comment><USER2> Another win for T-Mobile. I have to say, for all the negative things I've heard about them in past years, the more I hear about the company the harder I think about switching from Verizon.

No contracts for service, they separated phone subsidies from phone service, and reasonably priced data plans. Does anyone use T-Mobile? How is their network?

<comment><USER3> I have had great experience being on T-mobile for about 5 years. Their customer service is exceptional and they also allow you to unlock your phone after 3 months.

However there are a couple of things that do irritate me:

[1] They sniff the header of every web-request looking for desktop browser string. If found they sent you a warning text threatening to cut off your service. It sucks especially when you move to a new home with no immediate internet service and want to tether for a few days.

[2] Non-existent domains redirect to a page with ads (Similar to OpenDNS). Sucks on a mobile since you have to wait for it to load to find out while adding to your data usage.

<comment><USER4> I've been using T-mobile for about 5 years as well and have been tethering for about 3 years with no issue. I just have a regular data plan. No hotspot option or anything.

I wonder why this isn't happening to everyone?

<comment><USER3> Interesting, din't know it was uncommon. Could they be targeting certain areas, maybe the ones with high data usage? It happened to me when I moved to NYC and found myself stuck in an apt with no internet for the first few days.

<comment><USER5> I had the same thing happen when I moved, after I racked up around 800MB of data on my tethering (easier than you think). I didn't get a text, but I'd get redirected to an "upgrade now!" page. I spoofed my user agent on my laptop for the next couple days (because, shit, I'm paying for it, I'm going to use it), and had to do the same when I tethered for about a month or it'd redirect me. Since then, nothing.

<comment><USER6> I've noticed that it redirects when I use a largish amount of data (100mb?) with a desktop useragent. It redirects me to the "upgrade now" page for the rest of the month.

</comment></comment></comment></comment></comment></comment><comment><USER7> It really sucks that carriers do this, but I think it's important to realize that the issue is transparency, not that they do it.

Verizon and AT&T have a problem with scaling. They should be honest and upfront about what speeds you're _realistically_ going to attain, but I don't think they have an obligation _not_ to throttle people. It's honestly hard to exist without it. I don't know if Verizon and AT&T could operate such competitive networks without throttling.

Another thing to realize is that this also happens to internet download/upload speeds. How often do you realistically hit the maximum speeds you're advertised?

I think there should be accountability for lack of transparency, but I can't say I blame them for throttling. I don't have enough expertise on cell tower networking to know if they could stay profitable with competitively sized networks otherwise.

<comment><USER8> It doesn't seem at all reasonable to throttle a particular device and not other comparable devices. It seems more reasonable to have the tower/router adjust the bandwidth made available to each device in real-time to ensure there's enough bandwidth for all users in the face of capacity issues.

I think it's fine to advertise peak speeds if those are regularly attainable even if sometimes they are not. It's not OK to advertise such speeds if the device is sold in a configuration that can't take advantage of them without a hack or update from the carrier or manufacturer.

<comment><USER9> The blame here lies squarely with Apple for allowing the carriers to pull this sort of bullshit with their customers. They're the ones who implemented this whole carrier profile mess on their platform.

They could take a lesson from Tron.

<comment><USER10> I'm sure if Apple didn't agree to those terms they wouldn't be selling the iPhone at all. They probably had to fight pretty hard just to avoid carrier branding on their phones.

Carriers are also allowed to do it to Android phones, but choose not to do so. Why is that? Do they make more money from Android phones, and are incentivised to make them appear better performing?

<comment><USER11> > Carriers are also allowed to do it to Android phones, but choose not to do > so. Why is that? Do they make more money from Android phones, and are > incentivised to make them appear better performing?

Studies have shown that iPhone user use far more data on average than Android users. Carriers would naturally throttle iOS devices first.

</comment></comment></comment></comment></comment><comment><USER12> They deleted the page? I'm getting a 'Page not found' error.

Edit: Google Cache.

[http://webcache.googleusercontent.com/search?q=cache:http://...](http://webcache.googleusercontent.com/search?q=cache:http://www.itweakios.com/apps/blog/show/27518711-the- ugly-truth-your-iphone-and-ipad-are-limited-t-mobile-the-exception-)

</comment><comment><USER13> You can apply the IPCC file without jailbreaking, although I believe it still requires erasing all your settings and contents.

The IPCC file is a ZIP file with a bunch of images and XML files with interesting settings within.

There's a lot of superfluous FUD ("iOS uses more data than other smartphones, even when idle", which is not true) regarding iOS in the article.

<comment><USER14> He was quoting the carriers, though I could see how the statement could get misconstrued:

        However, from previous statements released by AT&T and many tech orginizations, iPhones are very complex devices with a very complex OS. The OS eats much more data, even when in idle mode, than most phones on the market. So by carrier request, Apple limits devices to "even out" the network, even if it means Galaxy users out perform Apple devices by such large scales.

</comment></comment><comment><USER15> This is why it's bad that virtually no net neutrality rules were implemented for the wireless market when the net neutrality law passed.

<comment><USER16> I don't think this has anything to do with net neutrality. For example, it's perfectly legal for Comcast to throttle your home cable connection.

</comment></comment><comment><USER17> Just a couple of days ago I managed to get my unlocked iPhone 5 on T-Mobile with a great plan: 30/mo with unlimited web and text, 100 minutes. I don't talk much on the phone so this is great for me.

It was kind of hard to set up at first, but now I would easily be able to do it again.

</comment><comment><USER18> Funny, I have been thinking about this just today. I'm currently paying $200+ a month for my iPhone on AT&T. How does T-Mobile compare, and how good are they in Southern California?

<comment><USER19> I have them and live in Los Angeles. Coverage is pretty fantastic, except for in brick buildings. On a good day I get 25mbps down on their HSDPA+ network.

</comment></comment><comment><USER20> I live in Los Angeles and I've just switched from T-Mobile to Verizon. An S2 to IPhone 5. My service has got so so so much better. The T-Mobile network is so bad that I never used up my 100MB/month allowance at 3G speeds in spite of the fact that I tried to use data on my phone all the time. Ridiculous in such a large metropolitan area. So don't all go rushing to T-Mobile!

<comment><USER21> Depending on where you live in LA you'll run into these problems with all carriers due to the topography.

I also found it quite annoying with AT&T even though there was a tower six blocks from my apartment.

</comment></comment><comment><USER22> Newsflash: many of your cars are governor limited to 120 or 130 miles per hour, even though the car could go faster. The vast conspiracy!

<comment><USER23> Indeed. And much like high-speed highway driving, if my iphone 4s were to use its full internet bandwidth, i would be a mortal danger to my fellow man. Oh wait.

<comment><USER22> No, but you might negatively impact the user experience of someone else in your cell sector. It's about system design. Your phone is just a way to access AT&T's wireless network. As the designer of that system, AT&T is entitled to control how your devices access it to optimize overall performance.

<comment><USER24> Then the designer did a shitty job. They should be throttling at the towers if and when doing so is necessary. They shouldn't have devices (which by definition they cannot trust to do the right thing) do the throttling for them -- especially when they don't even have all devices (e.g. Android) set up to do throttling.

</comment></comment></comment></comment><comment><USER25> Sophos blocks access to this website:

> Access has been blocked as the threat Mal/HTMLGen-A has been found on this > website.

Where the name links to: [http://www.sophos.com/en-us/threat-center/threat- analyses/vi...](http://www.sophos.com/en-us/threat-center/threat- analyses/viruses-and-spyware/Mal~HTMLGen-A.aspx)

Any mirrors or something?

<comment><USER26> [https://webcache.googleusercontent.com/search?q=cache:http%3...](https://webcache.googleusercontent.com/search?q=cache:http%3A%2F%2Fwww.itweakios.com%2Fapps%2Fblog%2Fentries%2Fshow%2F27518711-the- ugly-truth-your-iphone-and-ipad-are-limited-t-mobile-the-exception-)

<comment><USER25> Yeah I figured, but no css or images. Thanks anyway, saves me looking the cache up!

</comment></comment></comment><comment><USER27> This allegation has been debunked. Apple device are not being throttled. In fact, the original author has deleted his article.

[http://www.anandtech.com/show/7037/apple-not-throttling- ipho...](http://www.anandtech.com/show/7037/apple-not-throttling-iphones- ipads-cellular-throughput-via-carrier-bundles-)

</comment><comment><USER28> Nice article.

No transparency, as usual, from those carriers.

I wonder though if overall user performance would be worse if they didn't throttle - carriers may think (correctly or incorrectly) it is their best option for the capacity/throughput issues they have?

Can't wait to a future of non-monopoly/duopoly wireless last mile...

<comment><USER29> To be fair, the carriers aren't the only ones being misleading or opaque. Apple quite happily chips in (with a good second-long shot of their logo, no less) for the already blatantly false ads declaring "iPhone on the fastest network [AT&T]".

</comment></comment><comment><USER30> Can you override (with or without a jail break?)

<comment><USER31> T-Mobile includes the personal hotspot at no extra charge. I just switched from AT&T too and have been really happy so far. My phone only gets Edge speeds right now, only because they haven't "reframed" their cell towers yet. (not exactly sure what that entails, but I understood it to mean that after reframing my phone would be on 4G, have better reception, etc.)

<comment><USER32> This TmoNews post should give you a bit more information on what the "refarming" means: [http://www.tmonews.com/2013/05/why-now-is-a-great-time-to- be...](http://www.tmonews.com/2013/05/why-now-is-a-great-time-to-be-a-t- mobile-customer/)

Basically they currently have GSM on the 1900MHz band and HSPA+ on the AWS bands (1700/2100). They're in the process of reducing the capacity allocated to GSM, splitting HSPA+ onto all the frequency ranges, and adding limited LTE on the AWS bands. Later on they're going to reduce the GSM capacity a bit further while expanding the LTE capacity on the AWS bands. There's a nice little chart that shows this much better than I described it, while continuing to gloss over any technical details.

</comment></comment></comment><comment><USER33> Sprint iPhone user here (4S, Jailbroken)-- is there a way to _change_ the DATA_TRTL_ENABLED value and disable the throttle? I tried editing the carrier settings file with iFile, but now I am having issues getting data (it very well could be the building I'm in right now, though, so I'll have to test again when I leave).

EDIT:

Yeah, it's the building-- the connection is actually fine, so it's not like Sprint is blocking me after changing the setting. I'll have to test speeds with and without the toggle enabled to see if it works (after I get out of this dead zone of a building)

</comment><comment><USER34> I just added two iPhone 5s to my AT&T family plan, and I regret it. They use up their data allotment in about 4 days, even if they never leave the home wifi, so I insist that the cellular data is kept off and only enabled when needed. Meanwhile, the WP8 and Android devices on our plan use only a fraction of their data allotment each month. Is it possible that Apple is responsible for this problem, and should do something about their devices being such data hogs?

<comment><USER35> Having two AT&T iPhone 5's on our plan, I can in no way corroborate your experience. Looking at the history for one of these phones, it has entire plan months that remain below the lowest data plan threshold. Seriously, there's a problem that needs resolving. Search the web, hit up AT&T support and/or an Apple store, etc.

</comment></comment><comment><USER36> I can say that this is not correct with my friend's AT&T iPhone 5. We are in Dallas (in McKinney, a suburb) and just last week we turned off his wifi, ran a speed test, and it reported 22mb d/l and 10mb u/l. There is nothing special about his phone - not unlocked, nor has he done anything to it to remove the limits. I was testing out the 4G LTE speed on his to see if it was worth it to upgrade from my iPhone 4S. My 4S' speed was only 5.5mb d/l and 1.5mb u/l.

</comment><comment><USER37> I just unlocked my phone and switched from AT&T to T-Mobile and couldn't be happier.

Decent service, and the $50/month prepaid plan including mobile hotspot is a great deal.

</comment><comment><USER38> In Singapore, using LTE (Singtel), I could get 30Mbps up/down, and around 30-40 ms latency on my iPhone 5.

Beat that, US!

<comment><USER39> In an Atlanta I get 15-25 Mbps regularly outdoors (very close to downtown). The speeds are higher where there isn't too much concrete and people. I have also seen 55Mbps in suburbs of Atlanta.

This is on At&t.

</comment></comment><comment><USER40> Am I the only one annoyed by the implication of "iPhones are very complex devices with a very complex OS."?

</comment><comment><USER41> Anyone notice that this now says "Page Not Found" and the site doesn't have the article up anymore?

</comment><comment><USER42> Correct me if I'm wrong, but their's a clear case for a class-action suit, isn't their?

</comment><comment><USER43> I dont get the connection. The iPhone and iPad is limited, yes. But how does that relate to T-mobile, a carrier? You buy your gadgets and cellular-services separately.

This headline makes about as much sense as saying China is communist. Cars are the exception.

</comment><comment><USER44> Website down. Anyone have a mirror/cache to share?

<comment><USER45> [https://webcache.googleusercontent.com/search?q=cache:http%3...](https://webcache.googleusercontent.com/search?q=cache:http%3A%2F%2Fwww.itweakios.com%2Fapps%2Fblog%2Fentries%2Fshow%2F27518711-the- ugly-truth-your-iphone-and-ipad-are-limited-t-mobile-the-exception-)

</comment></comment><comment><USER46> this site is blocked here, using Firefox 21. It detects Mal/HTMLGen-A.

Someone else having the same problem?

</comment><comment><USER47> Looks like the site is down?</comment>


Delayed gratification and gratitude - <AUTHOR> https://bastian.rieck.me/blog/posts/2020/delayed_gratification/ <comment><USER2> To the list of interjections you could add the Chinese "盡人事,聽天命" (do what's humanly possible and leave the rest to God's/heaven's will) or "順其自然" (let things go their natural way).

"Que sera, sera" or "what will be, will be" also works.

<comment><USER3> And the Gita's – "You have the right to work; not the fruits of your work."

<comment><AUTHOR> Thanks, this a great quote! I added it as well. Do you happen to have an original source for this? I would love to see how it looks in Sanskrit.

<comment><USER4> कर्मण्येवाधिकारस्ते मा फलेषु कदाचन

Transliteration:

karmaṇy-evādhikāras te mā phaleṣhu kadāchana

You can read more here: [https://www.holy-bhagavad- gita.org/chapter/2/verse/47](https://www.holy-bhagavad- gita.org/chapter/2/verse/47)

</comment></comment></comment></comment><comment><USER5> Gratitude is one of the (IMO) more missing traits these days. Great post and a good reminder to be grateful for the opportunities you have.</comment>


A C++ Challenge - The Conclusion - <AUTHOR> http://chargen.matasano.com/chargen/2009/10/15/a-c-challenge-the-conclusion.html

<comment><USER2> The first link mentioned in the article was a very interesting read.

[http://timetobleed.com/defeating-the-matasano-c-challenge- wi...](http://timetobleed.com/defeating-the-matasano-c-challenge-with-aslr- enabled/)

It's a fairly clear explanation. Before the language warriors come out in force, I'll mention that it appears that all of the problems turn out to be issues with 1) calling new and 2) C-style casts.

Exploiting the issue requires someone with a detailed knowledge of C++ inner workings. It would have taken me a long time to figure it all out.

Avoiding the issue? Well, most modern C++ doesn't look very much like the problem code for very good reasons.

<comment><USER3> Joe Damato's post on this was really excellent, and I highly recommend people read it first.</comment></comment>