Google Chrome OS will have no native apps, data will be stored in the cloud. - <AUTHOR> http://www.techcrunch.com/2009/11/19/chrome-os-event/

<comment><USER2> Chrome OS will presumably include Google Native Client support so that native code can run (with some limitations) (long but good video on Google Native Client: <http://www.youtube.com/watch?v=zgng4C18nNk>).

I'd much rather have an OS with the capabilities to sandbox applications, but that can still run an arbitrary binary. For example, I cannot imagine hardware device manufacturers writing drivers that are "cloud apps".

<comment><USER3> Chrome OS doesn't support native _apps_ but the drivers are regular Linux drivers. Of course, you probably can't _install_ drivers, so whatever drivers come with the computer are what you get. I don't see this as a problem since netbooks don't have slots and most USB devices use class drivers.

</comment></comment><comment><USER4> If you can't run Skype and other instant messangers, interenet experience is going to be incomplete. I wonder of they are going to do something about it.

<comment><USER5> Where do you draw the line? I'd love text editors and RescueTime as well. My hope is that Google will succeed in driving innovation on the Web and these types of apps will become first-class citizens.

<comment><USER4> Right now all netbooks sold out there have a camera and it is mostly used for video calls with Skype. I don't think netbook manufacturers would give such a major feature up.

I see Google has videochat in GMail with a browser add-on, perhaps it will come pre-installed with Chrome OS but it would still have little installed base.

</comment></comment></comment><comment><USER6> [Google: We believe the web platform is a much simpler way, where the machines are essentially stateless, more cache-like, but can still be performant. And yet much easier and simpler for individuals to use.]

My experience is, that for certain tasks, native client application is still much more convenient. Evernote is a classic example - although online version of this note-taking software is available, I still enter a note quicker in native app, which then synchronize the data on the cloud.

It's the same with photo editor, word processor, etc. So, what is really needed are good native applications, which are able to synchronize their data with the cloud. But maybe Google will convince me that web-only platform is better, we will see...

</comment><comment><USER7> Why is its 'boot time' such a selling point? Does anyone turn off their machines anyway?

<comment><USER8> No, but the reason I don't turn off my machine is that it takes so long to boot.

<comment><USER9> I feel the same way; but I suspect people in different parts of the world might think differently.

E.g., in my experience, some people have been very vocally opposed to the idea of leaving computers on overnight owing to the energy wastage etc. They were all from Europe, and from precisely the same types of environments where we would usually leave our machines on permanently (eg postgrad university labs).

Not to generalize, but I wonder if (at least at that time) there was not more sensitivity to such environmental issues in Europe.

Unfortunately (at least on PCs) the suspend-resume functionality just has never seemed to work properly ...

<comment><USER10> Then on what type of computers does suspend-resume work properly?

</comment></comment></comment></comment><comment><USER11> They still said it will come with native client (chromium does) so it will be able to run native client apps at least.

<comment><USER12> Yes, but those native client apps run in a sandbox like every other web app, so they can't access the file system, etc.

</comment></comment><comment><USER13> Anyone know what the device access story is? I saw the stuff about accessing files on USB sticks, but what about Webcams and Microphones?

There is a W3C working group: <http://www.w3.org/2009/05/DeviceAPICharter>, but progress appears pretty slow.

Edit: Just saw the Gears Camera API: <http://code.google.com/p/gears/wiki/CameraAPI>

Edit 2: The Gears Camera API doesn't seem to actually have been implemented, so I don't know what the plan is.

</comment><comment><USER14> I don't agree with this at all,

even though Chrome OS is meant for Netbooks, the number of people that own netbooks and use them to communicate via Messenger, Skype etc is enormous. And people who do use Skype on netbooks will not opt for the Chrome OS because you cannot use Skype in an online application like MSN or Yahoo for example.

Personally I use skype a lot and was looking forward to Chrome OS as a substitute for Windows/Linux on my netbook, and was even considering buying a netbook for my girlfriend just for this purpose, however now I will not be doing that.

</comment><comment><USER15> I think those criticizing Chrome OS for missing obvious features are missing the point. Google is making a long term play here -- and not even that long term. In five years, the distinction between the web and desktop will have completely eroded for non-professional users.

Chrome OS supporting only web apps is not like the iPhone only supporting web apps; it's like how the Palm Pre only supports web apps.

</comment><comment><USER16> I found this OS by opensuse very similar (not sure what to call it, as it is mentioned that it is an OS around the chrome browser and not affliated to Google)

<http://www.getchrome.eu/>

They have a disclaimer in the download page: _Chrome OS is not related to Google. Service provided by SUSE Studio. See the license._

</comment><comment><USER17> There are some issues with the data portability IMHO. For example, if you edit doc in Office Live and then wanna send out with GMail, how would you do that? Or how will you check out the photos in the camera and see them instantly? The different security model for web app made those tasks harder.

<comment><USER18> Seems like you could have some type of remote directory that would allow normal file operations like uploads to work while still storing the data in the cloud. Something along the lines of a samba share.

</comment></comment><comment><USER19> Finally..! Anyone else hear the war drums? Microsoft should definitely be worried.. Very worried. In fact msft should have been on the ball with this years ago but they were too concerned about losing revenue from licensing fees and their dominance over the desktop. Just goes to show those afraid of change will be destroyed by it.

It's also interesting to note that this was the computing model used 'back in the day.' Everything was dumb terminals logging into a mainframe. Looks like we had it right the first time.

There's always been this kind of pull between putting more smarts at the end points vs having everyone login into one behemoth multivac (mainframe back then, the Internet now). It's obvious that Google is putting its stock in the latter approach. I would go out on a limb and say that computing has been heading in this direction for a long time and companies like msft have slowed it down as long as they can but the flood gates are about to burst open..

This should definitely raise some eyebrows over at W3C.. This is a huge development.

<comment><USER20> So a machine the size and cost of a laptop but more limited in functionality than a phone while still requiring an always on network connection?

Yep - there's an Apple + MS destroyer right there!

<comment><USER19> I think you're missing the bigger picture.

It's a tectonic shift in computing. We're going back to the dumb terminal/mainframe model. Apple will weather it just fine I'm sure b/c they control a shitload of devices. Microsoft will not. If they were dead before, they're worse than dead now.

Google will control the other half of devices but hopefully in a 'non-evil' way. I sincerely hope owning a device with Chrome OS doesn't force a user into using Google services although I'm sure there will be some tie-in.

It's about to get interesting..

<comment><USER20> It's more a threat to Apple.

What google are proposing is to sell a web browser only appliance - for a limited number of users who only use their windows laptop to run ie this is great, they no longer have to worry about viruses or steal ms-office to write a simple letter.

Google can have many more apps for this than apple, because every website is n 'app', developers can write apps simply using javascript/html - there is no need to buy a mac, learn objective C and join apples dev program and learn what secret signs you need to know to get your app approved.

Google don't need to approve the app in the same way that they don't need to approve your website.

To Microsoft, who make their money from business customers running SQLServer and Windows server licenses, this is about as relevent as Nokia shipping a new edition of symbian.

<comment><USER21> Problem with your argument is that everything that Chrome OS runs (web apps), also runs on Windows, Mac, Linux. The reverse is not true. Win32/64/PEF/Mach-O binaries do not execute on Chrome OS.

</comment></comment></comment></comment></comment><comment><USER22> This makes delivering rich application experiences with tools like cappuccino more interesting to me.

</comment><comment><USER23> The code signing is a bit worrisome, but I suppose this isn't really a hacker OS. And it along with the sandboxing is really the only "complete" solution to malware.

<comment><USER3> It has "hacker mode" to boot an unsigned OS. (Overall the security architecture looks quite similar to OLPC.)

</comment></comment><comment><USER24> Flash on linux is currently less than stellar, and I see that as something that would be used pretty commonly. Any ideas on how they plan to deal with that?

<comment><USER3> Why would we expect Google to fix Flash Player? Fundamentally it's Adobe's problem.

It should be easier for Adobe to make Flash work on Chrome OS than on Linux, though, because Chrome OS doesn't have the diversity of duplicate APIs in normal Linux.

<comment><USER20> If somebody isn't buying your product because it doesn't do X because of something company Y supplies

\- it's YOUR problem.

</comment></comment></comment><comment><USER25> This whole endeavor still doesn't make a whole lot of sense to me. If you want to make an idiot-proof OS for Grandma, fine, that's a great idea. But why shoehorn the whole cloud-computing philosophy into it? Most people that a very simple OS would appeal to are not going to know or care what cloud computing even is. And furthermore I don't really see much value-add in that anyway, seeing as how the device is MOBILE and you can already take your applications and information with you...

</comment><comment><USER26> I've heard that before (cough - iPhone - cough)

<comment><USER27> Did you believe it when you heard it back then? I didn't.

Apple offered "web apps" to placate would-be developers and buy time to refine the real SDK and work on the App Store model of delivery. (I know that jailbreakers love to give themselves credit for the SDK, but I think that fails the Principle of Parsimony in the case of Apple, who tends not to disclose things until they're ready, and who holds user experience - which web apps do not provide - above all else.) A lot of people didn't believe an SDK was coming until it was announced, but I don't think any of them really thought it through.

I do believe Google's plan is to make the browser the centerpiece, on the other hand. Their model is to ensure a good _web_ experience, to drive ad revenue, isn't it? Why would they add a native app API?

<comment><USER11> > Why would they add a native app API?

They already do, chromium comes with native client.

<comment><USER27> That's interesting! Even with restrictive sandboxing, that could allow some useful native apps within a browser tab.

</comment></comment></comment></comment><comment><USER28> Probably you can choose your own cloud, though - if the OS is open source, nothing is stopping that?

<comment><AUTHOR> Yep. BSD license. You could roll your own and do whatever you want.

<comment><USER29> The server is not.

</comment></comment></comment><comment><USER30> "All the data in the cloud" - I wonder how the Sidekick episode will color perceptions of this.

<comment> brown9-2 Probably not at all. The people who would be influenced by that were probably already paranoid about relying on "the cloud".

</comment></comment><comment><USER31> So you can't develop Chrome OS on Chrome OS ?

<comment><USER32> Making a development environment for ChromeOS that works on ChromeOS would be a first step towards answering PG's clarion call for a woman with a hammer, no?

</comment></comment><comment><USER33> Time for a world of warcraft web app.

</comment><comment><AUTHOR> When I submitted this, the story was half-told. Apparently, Gears will still be allowed to store some things locally. But all data will be synched to the cloud automatically at all times.

<comment><USER8> I think the local disk will probably just be used as a cache to support offline mode.

<comment><AUTHOR> As someone pointed out to me on Reddit, apparently HTML5 has offline storage provisions, so it'll be used for that too.

</comment></comment></comment><comment><USER34> Current operating systems already support multiple computing paradigms (including the ability to run apps and store data in the "cloud"). Forcing people into a specific paradigm has been historically proven to be disastrous (Network Computers, Javastation, etc).</comment>


Jordan Peele makes Obama call Trump a "complete dipshit" in PSA about AI video - <AUTHOR> https://news.avclub.com/jordan-peele-makes-obama-call-trump-a-complete-dipshit-1825333067 <comment><USER2> If you use a script blocker (like me) whitelisting to get the video is a pain. So here is the video embedded in the article [https://www.youtube.com/watch?v=cQ54GDm1eL0](https://www.youtube.com/watch?v=cQ54GDm1eL0) . If you're very strict on scripts and won't allow youtube to run theirs, there is always youtube-dl

</comment><comment><USER2> Unfortunately I just don't see this PSA as really having the wide reaching effect people want it to have. This is a classic case of a chilling effect. Unfortunately, most people are quite aware of what is possible, that when it becomes implemented, it is not newsworthy enough to grab their attention and spur action.

</comment><comment><USER3> Wow, scary times for sure. What can we trust?</comment>


Filing taxes: It shouldn't be so hard - <AUTHOR> http://www.economist.com/blogs/democracyinamerica/2013/04/filing-taxes?fsrc=scn/rd_ec/it_shouldnt_be_so_hard <comment><USER2> I love how many articles are taking the "it should be easier to file" side without considering that the complexity of filing is due to the complexity of the underlying system.

Personally, I _don't_ want filing to be simpler. Every time it gets simpler to file, it also becomes simpler to add more taxes and people don't notice the difference. It's only when people have to do their taxes that they realize how screwy our system is. The 1099 independent contractors understand this one.

When you have a buggy piece of software, it's considered foolish and short- sighted to just add patch after patch after patch without stopping to consider that the underlying system itself might be flawed. Then you either scrap the system or refactor the worst/most complex pieces into something simpler and more reliable.

The tax code is IE6 circa 2002. It's still "the standard" because we haven't stopped to consider what might be better.

<comment><USER3> Here's the basic problem with tax code simplification: the thing you're trying to compute (income = net change in wealth) is inherently complicated to compute. Sure, the special giveaways and whatnot don't help, but a lot of the special giveaways are also related to the theoretical understanding of what should be taxed.

Consider complications like calculating depreciation for capital equipment. All the schedules aren't there because of kicks--they're there because allowing an immediate deduction for an expense that creates a capital asset usable for years is just a mathematically incorrect way to measure "net change in wealth" when considering the time value of money. Other complexity comes from using discrete sampling periods (yearly tax returns) for what is a continuous phenomenon (changes in wealth). That's where things like net loss carry-forwards comes from. Other complexity comes from the intricacies of the "net" (versus gross) part of the equation. You can think of things like childcare deductions as a sop to the fact that childcare is something people buy so they can work, and thus not consumption.

The software analogy is really apropos. I'm pretty sure Windows is over 50 million lines of code at this point, and Linux is over 15 million. That's a million printed pages for Windows, and 300,000 printed pages for Linux. In comparison, the entire U.S. federal tax code is 73,000 pages: [http://3.bp.blogspot.com/-3zoNtmhcQmE/T41zkm0VE6I/AAAAAAAAFM...](http://3.bp.blogspot.com/-3zoNtmhcQmE/T41zkm0VE6I/AAAAAAAAFMA/9ZLZXlHcI8M/s1600/2012-tax- law-keeps-piling-up-cch.PNG).

Are Linux and Windows unnecessarily complex? Or is there just inherent complexity in creating an operating system that runs on everything from supercomputers to cell phones (Linux), or is bug-for-bug compatible back to the 80's (Windows)?

Don't get me wrong, the tax code should be simplified in every way possible. But when people say stuff like it only exists because "we haven't stopped to consider what might be better" that sounds a lot to me like the guy on every engineering team who wants to scrap the big, time-tested system and do a rewrite. Go to Microsoft, tell them that their system is just "patch after patch" and then volunteer to rewrite the whole thing. See what they say.

<comment><USER4> What do you think about setting the corporate tax to 0% and making up for it by taking capital gains and dividends like normal income?

We could get rid of most of the corporate tax code that way -- and corporate taxes, as you point out, are always gonna be complex.

<comment><USER3> I think it's theoretically inelegant but may be what is most practical, especially in a race to the bottom global economy. More than one company has reincorporated in high-tax countries like the UK and Switzerland, because of favorable corporate taxes. The executives pay more, but it gooses earnings which is what the analysts want to see. We don't get much revenue from them anyway and it'd be better to keep the companies and the capital here.

</comment></comment></comment></comment><comment><USER5> I wish we could apply a UNIX approach here. Everything in text format, simple scripts. 99% of the form-filling-out of taxes is copying and pasting or simple arithmetic.

Input: Personal information, deductions, W2s, 1099-Rs, and other relevant forms in standardized ASCII text format.

Script: A python version of form 1040 or whatever you are using.

Output: All relevant columns filled in (amount owed, refund size, etc.)

Time taken each year: < one hour.

<comment><USER6> Take a look at OpenTaxSolver:

<http://opentaxsolver.sourceforge.net/>

<comment><USER5> That looks awesome!

What I would really like (in my vision of a perfect world) is that companies would be required to issue W-2s and similar forms already in this text format. But anyway OpenTaxSolver looks really cool and thanks for the link!

</comment></comment></comment><comment><USER7> In Sweden the most basic variant of doing your taxes - i.e. you have no business, stocks, properties, etc - only requires that you send a SMS (SSN + auth code) verifying the pre-filled data that the tax authority has filled out for you.

<comment><USER8> It's even easier in Finland, you don't need to do anything, it's all automatic. If you want changes to be done to the prefilled form, you can do it online.

<comment><USER7> That actually makes more sense as a default.

</comment></comment></comment><comment><USER9> Here's how it should work: <http://en.wikipedia.org/wiki/Taxation_in_Estonia>

<comment><USER10> or like this <http://en.wikipedia.org/wiki/Salaries_tax>

</comment></comment><comment><USER11> To those who prefer manual filing, or think online filing is not practical, for at least second year California now promotes filing online. It's 2013 and only about 15 years late. Yes, they already have the information or will get it, so the privacy complaints are moot.

You log in to the website, and go through a 20 (or so) step wizard where you confirm or add a missing item, etc. Next, next, finish. Done, and entered into their system. No studying instructions, licking envelopes, buying stamps, or writing checks, waiting months for a refund, or any of that bs.

Meanwhile it's the Dark Ages over in IRS-land. Unless you want to type all your financial information into an unknown third-party site (I don't), you better get out your pencil and calculator, and/or enter it into a PDF for printing.

Not to mention wading thru 70 pages of useless instructions for the blind, disabled, parents, pensions, veterans, itemizing, AMT, self-employed, health savings accounts, paying alimony, etc, etc. You may be one of those, but likely not more than one or two. The rest are wasted time, energy, and cognitive load. Worksheets, schedules, forms++ that could be automated.

If it's not obvious I find the IRS process disgusting. To those that say it is the tax-code that is the problem, while partially true, doesn't take into account the wizard process. The wizard simply doesn't ask you for information that doesn't apply, e.g. if you have no kids it doesn't ask about child care credits. It makes the process _much_ easier.

</comment><comment><USER12> Perhaps we could just get rid of income taxes altogether? No forms, no fuss. Instead, just have a sales tax. Income credits could be used for any social welfare issues.

<comment><USER13> Fairtax.org

<comment><USER14> dramatically-reduce-taxes-on-the-wealthiest-while-raising-them-brutally-on- the-middle-class.org

<comment><USER15> Sounds pretty fair to me. I'm not using an order of magnitude more government services, so why should I pay an order of magnitude more taxes?

Yes, yes, I get that a graduated income tax might be necessary to pay for the things our society has decided to pay for, but calling the current situation fair is Orwellian.

</comment></comment></comment></comment><comment><USER16> Given the current tax code, I really don't want the IRS to have enough information to properly fill out my taxes for me.

Ideally, we get past the lobbyists and create a simple tax system. I do wonder what the revenue neutral standard deduction + flat tax rate would have to be.

<comment><USER17> I only skimmed over the article... but being from the UK, I've never understood the tax system in the US. In the UK I work for an employer, so I have a single source of income like the vast majority of people. The employer must pay their portion of the tax and at the same time they pay my portion of the tax. At the end of the year I get a P60 which states my income for the year, how much tax I have paid and under which tax code I paid. Assuming I only have the single job, there is nothing else for me to do.

If I have a secondary income (and I was inclined to declare it) then I would have to file a return with this info, I think it is all done online now.

I guess it just has always been the norm over here in the UK and so no one complains about it...

<comment><USER18> It's hell in the UK if your tax affairs are more than simple. I have three incomes, two with benefits and own a limited company. Tax return is hell as I'm on PAYE with two companies (yes this is legal). Usually end up owing HMRC a grand or two and have to spend 5 days a year working it all out (I won't hire an accountant as they're shysters and I've been screwed by two so far - bring on RDR).

<comment><USER17> I think it's hell everywhere, the UK is not alone in this... tax law is complex, hence the reason big corporations take advantage of it!

</comment></comment></comment></comment><comment><USER19> Simpletax.ca

I used it this year. Make an account and try it out, let's you dig into the original tax forms themselves too. Only in Canada though :)

</comment><comment><USER20> household income less than $100k/yr

I work, wife works, own a (very) small business, rent two houses = 40+ PAGE 1040

Tax code = INSANE</comment>


Boo or C#? - <AUTHOR>

I am starting to use Unity3D. The language choices are Javascript, C# and Boo. It seems that Boo is a programming language for .NET with a syntax similar to Python. Do you have any experience working with Boo? How does it compare to C# performance wise? I guess that the code is more readable and compact with Boo than with C#, so, if they have similar performance, Boo would be a better choice for Unity3D projects? <comment><USER2> C# is good for you resume. It is important nowadays, a lot.

<comment><AUTHOR> Well, I don't care for my resume, since I recently started a Startup with a friend. I have a lot of experience with Java, and I'm learning Scala as a server side technology for upcoming projects, and Groovy as a scripting language to use with Gradle. Just wondered which language would be a better choice to use with Unity3D in our 3D projects. I think C# is good, but as verbose as Java, that's the reason I had to think that Boo would be a better choice...</comment></comment>


Visual Studio Code on Linux Subsystem for Windows - <AUTHOR> https://code.visualstudio.com/docs/remote/wsl <comment><AUTHOR> I feel like WSL and the fact that Microsoft tries to make Windows a decent development OS is really exciting. As I'm writing this, I'm setting up my gaming laptop (which wouldn't run Linux nicely, natively) to be a spare development machine. I'm hoping to pull in some productivity from this otherwise only-used-for-entertainment Laptop :)</comment>


How secure is flash? Here's what Adobe won't tell you - <AUTHOR> http://www.zdnet.com/blog/bott/how-secure-is-flash-heres-what-adobe-wont-tell-you/2152

<comment><USER2> For those who are interested in flash security, FX gave a nice talk about that on the last chaos communication congress: [http://media.ccc.de/browse/congress/2009/26c3-3494-de- defend...](http://media.ccc.de/browse/congress/2009/26c3-3494-de- defending_the_poor.html)</comment>


A coworker stole my spicy food, got sick, and is blaming me (2016) - <AUTHOR> http://www.askamanager.org/2016/07/a-coworker-stole-my-spicy-food-got-sick-and-is-blaming-me.html <comment><USER2> This feels like a made-up story designed to attract clicks. Even more with the happy ending update.

There are more unlikely stories on the same site, like this one: [http://www.askamanager.org/2017/05/im-in-a- dominantsubmissiv...](http://www.askamanager.org/2017/05/im-in-a- dominantsubmissive-relationship-can-i-wear-a-collar-to-work.html)

<comment><USER3> It's the equivalent of a Penthouse "you'll never believe what happened next" letter for office drones. I can't believe so many people are taking it at face value!

<comment><USER4> How do you know people are taking it at face value? I don't even see why it's relevant whether it's true or not.

<comment><USER3> _How do you know people are taking it at face value?_

...The dozens of comments taking it at face value?

 _I don 't even see why it's relevant whether it's true or not._

If it isn't true how is it relevant to anything?

<comment><USER4> _...The dozens of comments taking it at face value?_

Just because you're discussing it seriously doesn't mean you take it at face value. Just look at discussions about fictional works, particularly SF.

 _If it isn't true how is it relevant to anything?_

It's just food for thought and discussion. Is it relevant whether Schrödinger actually put a cat in a box?

<comment><USER5> This is the lamest argument I've seen in a while.

It's clearly being presented as a true story by the original source. If it's not true it's not food for any kind of thought it's just a really badly written and stupid short story. Stop trying to justify lying.

<comment><USER4> I sincerely don't get that position. We've been presented with a story; whether that story actually happened in unknowable. So how can it possibly affect the story's quality as food for thought?

I'm feeling like Brian: [https://youtu.be/9czBBKof7Yo?t=1m30s](https://youtu.be/9czBBKof7Yo?t=1m30s)

<comment><USER5> How can it possibly have any value whatsoever if it's not real?

If it's real you can wonder ok what motivated actual people to behave in this way, what actually happened?

If it is made up (which it almost certainly is because it's so far fetched and ridiculous) then it has zero value. There's nothing worth thinking about here or discussing if it didn't actually happen. Like I said it's just a really poorly written short story.

You don't discuss literature the same way you discuss journalism. I can't believe you don't already know that?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER6> There's an update to the original post. What a lovely ending to the story.

[http://www.askamanager.org/2016/10/update-a-coworker- stole-m...](http://www.askamanager.org/2016/10/update-a-coworker-stole-my- spicy-food-got-sick-and-is-blaming-me.html)

<comment><USER7> It is a lovely ending!

What I fear for is that the termination will be in his records and he will have to explain this extremely bizzare story to whoever asks or is interested. I'm glad it all worked out so well for him. Hopefully that silly detail will not affect his future.

<comment><USER8> What "records"? Unless he filed for unemployment, the only other people who would know would be his employers.

<comment><USER9> And employers rarely confirm anything other than hire and seperation dates during reference calls due to liability/litigation risks.

<comment><USER10> In fact, they are legally prevented from sharing such information, if it existed, in many states.

</comment></comment></comment></comment></comment><comment><USER11> Kind of orthogonal to the story, but anyone who steals lunch or food from a co-worker should be fired immediately. There's a 0% chance that someone who steals others' stuff is a good, honest person in other parts of their life.

<comment><USER12> Mistakes happen. There are all sorts of ways you could accidentally eat someone else's lunch, and having a 'zero tolerance' policy is a good way to end up firing an innocent person.

<comment><USER13> | There are all sorts of ways you could accidentally eat someone else's lunch

Want to give us some examples?

<comment><USER12> Sure! I have worked in a lot of offices over the years, and most of these have actually happened at least once:

\- Someone tells another coworker they can have their lunch, but they grab the wrong one (because the tag fell off or they didn't see the label)

\- Someone says there is leftover food available in the kitchen after some catered meal, and the person didn't realize that container wasn't part of it.

\- A new employee got confused about which refrigerator is the 'office stocked one' and which one is the 'personal items one'

\- It was fridge cleaning day, and the person thought the food was getting tossed out anyway, so they ate it. Turns out the person was going to eat it that day (this one is borderline, not only because it is kinda gross but also kinda not cool)

\- Two people had similar lunches and they just grabbed the wrong one without paying a ton of attention (much more common when a group of people go out to lunch together and come back with leftovers)

\- A loose, packaged food item got knocked over and fell into someone else's food container.

Some of these are probably pretty rare, but I have seen many of them happen.

</comment></comment></comment></comment><comment><USER14> One mystery that continues to fascinate me is when people at work say things to me that are obviously irrational -- are they sincere or is it some kind of manipulative power play?

I've had managers ask me things such as "When will the rebuild of the website be done" and I answer "In two months" and they say "You have two weeks" and I say "Maybe 6 weeks, but not 2" and then they repeat "You've got two weeks." I wonder if they realize they sound crazy? I can imagine a few possibilities:

1.) Possibly they feel that they won a concession by getting me to shift from "two months" to "maybe 6 weeks" and they think they will get more concessions from me if they just keep pretending that two weeks is the only allowed answered?

2.) Is it a threat? What are they are going to do when we miss the obviously impossible deadline?

3.) Are they pretending to be serious about two weeks, or do they really think it is possible? Perhaps they are paranoid and they think that every worker is lying to them all the time?

I run into deeply irrational behavior at work all the time. I find the amount of it to be surprising. I was thinking about this when I wrote "The accusation that you are irrational -- is it the truth, or a manipulative power play" but there I focused on personal situations, and I mostly leave is as an exercise to the reader to imagine how it extends to work situations.

[http://www.smashcompany.com/philosophy/the-accusation- that-y...](http://www.smashcompany.com/philosophy/the-accusation-that-youre- irrational-truth-or-manipulative-power-play)

<comment><USER4> By answering "Maybe 6 weeks", you just validated their belief that the full project deadline is negotiable, and so now they're just bargaining from a position of power.

<comment><USER15> This is the correct answer. When making a concession like this, always take something away. "We can do the website in 6 weeks, but we will have to remove the ability for users to upvote". If that doesn't sit well, send a list of the features, along with their timeframes and ask them to choose which features to cut.

You still get the irrational answers back though unfortunately, but it is a more balanced position.

</comment></comment></comment><comment><USER16> My only experience with 'stolen lunch' actually turned into a valuable cultural lesson for me.

It was decades ago, at the start of my IT career, and I was contracted to fly out to a remote Aboriginal community (I am in Australia) to do some IT work. It was a full day thing, as there was only one commuter flight out to the community in the early morning, and one return flight in the evening. So I packed a big lunch with snacks to see me through the day.

When I arrived at the community, I went to the main council office, found a fridge in the kitchen, put my lunch in it and went about my work.

At lunch time, I went back to fridge, starving, and opened it to find that all my lunch had gone. Every last speck and extra snack! I was fuming, and sought out the council manager to complain about this. He just gave me a strange look during my hypoglycaemic meltdown, which kind of stopped me in my tracks, then said "Look, this is an Aboriginal community, and all their cultural rules apply. Traditionally, the men would go hunting and bring the spoils of their hunt back to the community. Whatever was brought back belongs to all, as per tribal rules. Any food that is left in the shared fridge is traditionally there for everyone to share in".

That completely shook me to my core to look at the situation in a completely different light. And true to the spirit of their tribal culture, the manager offered me some of his lunch to keep me going that day.

</comment><comment><USER17> Who steals other people's food? This is completely bizarre to me. Do these people do it every day and just never bring their own lunch? Do they just see something that takes their fancy and decide to nick it?

The mind boggles.

<comment><USER18> I work in a shared working space, it's just me using my stuff yet the amount of milk, tea bags and sugar I get through and have to keep buying... Even tried labelling it yet people just to go to fridge or cupboard and help themselves... It's so annoying.

<comment><USER19> To be fair, if I saw milk in the fridge of a coworking space, I would guess it was communal.

</comment></comment></comment><comment><USER20> The update is far more delicious than the original: [http://www.askamanager.org/2016/07/a-coworker-stole-my- spicy...](http://www.askamanager.org/2016/07/a-coworker-stole-my-spicy-food- got-sick-and-is-blaming-me.html)

I'm not sure that the original advice given was ideal. I'd recommend consulting with a lawyer first before giving any information to HR given that OPs job was at risk. But I'm happy for OP that it all worked out in the end.

<comment><USER21> Very cool ending

I was just about to start typing about potential legal action -- the thief basically admitted the theft (despite HR stating" there's no evidence of theft"...)

Totally agree with the other poster that lunch theft should be a firing offense, as, if they're not honest about that, they're not honest.

</comment></comment><comment><USER22> Reddit's /r/legaladvice subreddit has had a lot of interesting corporate mismanagement stories lately (with the typical take-with-a-grain-of-salt caveat).

There was a recent "poisoning" case where instead the OP was the victim ([https://www.reddit.com/r/legaladvice/comments/89wgwm/tricked...](https://www.reddit.com/r/legaladvice/comments/89wgwm/tricked_into_eating_something_i_dont_eat_at_work/)), commenters found out the perpetrator _posted in the subreddit before_ ([https://www.reddit.com/r/legaladvice/comments/8825e8/threw_a...](https://www.reddit.com/r/legaladvice/comments/8825e8/threw_an_employee_a_baby_shower_now_being/)), and the outcome is just as satisfying ([https://www.reddit.com/r/legaladvice/comments/8d0z1u/tricked...](https://www.reddit.com/r/legaladvice/comments/8d0z1u/tricked_into_eating_something_at_work_update/)).

<comment><USER23> So the perpetrator's thread has a lot of deleted posts which are invisible now.

This link makes them show up again: [https://www.removeddit.com/r/legaladvice/comments/8825e8/thr...](https://www.removeddit.com/r/legaladvice/comments/8825e8/threw_an_employee_a_baby_shower_now_being/)

</comment></comment><comment><USER24> Both the original and the update read like somebody's college English class creative fiction writing assignment.

<comment><USER25> I'm fairly sure most of the stuff on ask a manager is complete fiction, or at least heavily, heavily rewritten. Pretty much everything has the same writing style.

</comment></comment><comment><USER26> My guess is this falls under the same purview as booby-trapping your house: Yeah, they're committing a felony by breaking into your house, but you're not allowed to setup a "Home Alone" defense system (if nothing else because first responders might need to get into your home).

It's dumb in this case because the "booby trap" likely isn't one at all, but at a very cursory glance I could buy that someone would make their lunch exceptionally spicy to thwart a would-be thief - in the same vein that people might suggest laxatives, etc.

Anyway, I'm surprised people don't just have locked lunchboxes or something like that.

<comment><USER27> Exactly how I read it.

Except it wasn't a booby trap. It's like a thief complaining because they crashed the car they stole from you.

<comment><USER26> > It's like a thief complaining because they crashed the car they stole from > you.

To take this further: It's a bit like they crashed the stolen car because you cut the brake lines in anticipation of someone stealing it (a bit extreme obviously, but just bear with me).

Which is interesting: I actually wonder whether you would be found at least civilly liable in that instance.

<comment><USER27> Not really. Spiciness isn't at all at the same level as cut brake lines, and it wasn't done in anticipation of anything

It's more like you have a manual transmission, and your thief crashed because they only know an automatic.

</comment></comment></comment></comment><comment><USER28> _Your company's HR is terrible._

One suspects this could be written on every occasion.

<comment><USER29> I think it bears repeating that HR exists to protect the _company_ , not the _employee_. Often, an interaction with HR will work out terribly for the employee when HR is acting in the company's best interests.

That's not the case here though. They're just terrible.

<comment><USER30> I've been berated by people (especially HR people) for giving this advice, but I couldn't agree with this more. HR _does not exist to help the employee, period._ Because they manage benefits, it's easy to get confused and think of them as your advocate, but they are not. If you have an issue in the workplace, you first must figure out what to do, and _then_ you talk to HR. It should be your last step.

</comment></comment></comment><comment><USER31> Be sure to read the update at the bottom of the article: [http://www.askamanager.org/2016/10/update-a-coworker- stole-m...](http://www.askamanager.org/2016/10/update-a-coworker-stole-my- spicy-food-got-sick-and-is-blaming-me.html)

Looks like the situation worked out fairly well in the end.

</comment><comment><USER32> This story is a sign of the times. I was in second grade and some kid was picking my lock and stealing my lunch every single day. My Mother made a lunch laced with laxatives. Truth be told she overdid it.

As a result I found out who was stealing my lunch. The kid spent the entire afternoon in the bathroom. We never exchanged words but he told his friends that I wasn't someone to be messed with at all.

Today his parents probably would have sued and tried to get me kicked out of school but this was a much more innocent time.

</comment><comment><USER33> I'm reaching the point where I don't think people should be allowed to interact with each other.

<comment><USER34> Yet here you are, using HN to interact with us...

<comment><USER35> Pretty sure you're all just markov chain bots.

<comment><USER36> No robot, no robot. You're the robot!

<comment><USER37> Tell me what you really feel.

</comment></comment></comment></comment></comment><comment><USER5> I don't believe this story, especially with the update. It makes it even less believable.

It seems a lot more likely this site made this insane story up to drive traffic.

And it's from 2016.

</comment><comment><USER38> Even considering how bizarre this is and how it was more to the story as jobowoo pointed out with the update, there is also a lesson here: If the situation warrants complaining to authorities, complain first or you'll be fighting an uphill battler even if you are in the right.

</comment><comment> a-dub heh. i recently left a pretty toxic environment. about six weeks after i left i got a text message receipt from the restaurant across the street from the old workplace.

apparently someone actually punched in my phone number and redeemed my loyalty points for a free meal.

</comment><comment><USER39> If you crowd rats together in a small cage (the modern open office) they will start irrationally attacking and abusing each other. 95% of office dysfunction can be explained by this.

<comment><USER40> John B Calhoun's "utopia" experiments.

[https://www.thefreelibrary.com/Escaping+the+Laboratory%3a+th...](https://www.thefreelibrary.com/Escaping+the+Laboratory%3a+the+rodent+experiments+of+John+B.+Calhoun+%26...-a0197666893)

[https://en.wikipedia.org/wiki/John_B._Calhoun](https://en.wikipedia.org/wiki/John_B._Calhoun)

[https://youtube.com/watch?v=0Z760XNy4VM](https://youtube.com/watch?v=0Z760XNy4VM)

[https://www.atlasobscura.com/articles/the-doomed-mouse- utopi...](https://www.atlasobscura.com/articles/the-doomed-mouse-utopia-that- inspired-the-rats-of-nimh)

</comment></comment><comment><USER41> A couple of jobs ago, I had just come back from some time off. I was sitting in my cube working when a co-worker I had never met came into my cube, reached past me, and grabbed a tissue from my tissue box without asking. If you think that's bad, it's nothing compared to what he said: "Thanks, I've been stealing these!"

I wish I were kidding.

I've had co-workers steal my and my desk-mates' gum before, too, at the same job.

<comment><USER42> Huh, it never would have occurred to me to see that as inappropriate. If my coworkers are sick, I want them using tissues rather than spreading their germs around.

Tissues cost what, $0.01 each anyway?

<comment><USER41> It's inappropriate because they are my personal property. The company did not provide tissues to employees. They were partially behind my monitor, so that person went out of their way to find them and use them. Combined with their arrogant taking of them with me present, yes, I'd say I had every right to be cross.

</comment></comment></comment><comment><USER43> > _Right now I'm working in the previous position with almost double my > paycheck, so it's a great turnaround._

I don't know if this was a good idea. You've signaled to your company that you're willing and able to take legal action against them. How long will your employment last when your neck is sticking out 2x farther than your coworkers and there's a layoff coming around?

<comment><USER44> If they really doubled the paycheck, then the writer can presumably pay off debt and begin saving up a rainy day fund so that any layoff will be taken in stride.

</comment></comment><comment><USER45> IANAL, but could the person file a police report for theft, then forward it to HR to ask for their assistance in a criminal case?

<comment><USER46> I don't think the police are there to intervene in petty squabbles like lunch theft, annoying as lunch theft may be. Getting the lunch owner fired, on the other hand, is a serious matter, and firing the thief and HR because of them doing this to the lunch owner is a proportionate response.

<comment><USER47> That's exactly why they're there. Would you say the same if the lunch was shoplifted from a business?

</comment></comment></comment><comment><USER48> The update to the post can be found here: [http://www.askamanager.org/2016/10/update-a-coworker- stole-m...](http://www.askamanager.org/2016/10/update-a-coworker-stole-my- spicy-food-got-sick-and-is-blaming-me.html)

TLDR: Guy gets his job back and a generous raise (almost double his paycheck) after getting fired and threatening legal action.

<comment><USER49> It's literally incredible that they fired someone for having their lunch stolen. It's great that sanity prevailed, but gods what a ridiculous situation. I hope whoever that HR person was is never employed in a position of authority again. The lunch thief is bad, but the HR person is much, much, worse. I'm still mad over here just thinking about it.

<comment><USER50> That's what at-will employment means. Really he was fired for crossing the power structure of the office, which is always a disaster even if it's a secret power structure.

</comment></comment></comment><comment><USER51> >You are not required to make sure that your own personal lunch doesn't contain anything that might offend a coworker's palate

If current trends hold, enjoy this while it lasts.

</comment><comment><USER52> Needs a [2016] flag.

</comment><comment><USER53> The story reminds me of burglar suing the house owner and win, because slipped on his way out ...

</comment><comment><USER54> Let's say you have a particular illness that required a particular supplement that could be added to food, if that food is stolen and causes discomfort, that case could be proven in court if you have a diagnosis telling you to add it to your food.

</comment><comment><USER55> Seems like a made up story to seed conversations.

</comment><comment><USER56> Well, to me it seems plausible that the writer is not telling the whole truth. They noticed food being stolen from the fridge and he purposely put extremely hot spice in the food to harm the perpetrator.

But how do you prove that. And even if you prove it, would it hold in court since the food was stolen?

<comment><USER11> > They noticed food being stolen from the fridge and he purposely put > extremely hot spice in the food for the purpose of getting back at the > perpetrator.

Even if that were the case (which I doubt), why is that wrong? On what planet is it OK to defend the actions of the thief?

<comment><USER56> Is it not always wrong to cause someone harm?

edit: If he would have poisoned the food and the thief died, would that be ok?

I guess the point I'm trying to make is that if he did purposely contaminate the food in order to get back at the thief, instead of just talking to him about it, the talk with HR seems justified.

<comment><USER57> Maybe it is "always wrong" given a particularly rigid and simplistic code of ethics, but in American society at least we are very comfortable with the notion of causing deserved harm (whether physical, financial, or merely emotional) to wrongdoers as a deterrent to others.

<comment><USER58> I hope you do not actaully think that is way things are or the law works because it does not.

In the US the law allows for you to make the case of self defense, it is a defense for violations of the law. I.E. it is always illegal to kill someone, but it is a defense if you kill someone who was trying to kill you..

Things like bobby traps, or poisoning your food against a thief would not be legal under American law. For example I can not setup a series of Automated Gun Turrents in my home to kill anyone that breaks in, but I could (in some states) shoot someone myself if they break in.

In a food theft case as an individual could in fact assault someone possibly even commit battery against someone in order to prevent the from stealing my lunch but I could not say put bobby trap that could cause physical harm to them on the lunch

<comment><USER57> I certainly understand that it's not legal to turn your house, nor your lunch, into a deathtrap. Nor at any point did I claim that any particular kind of action was legal. I said that Americans generally feel that we're collectively justified in harming certain kinds of people. That's not a claim about legality. That's a claim about how a subset of the population _feels_.

My use of "we" was merely meant to indicate that our society, through the apparatus of our legislators, has decided that our society is justified in doing harm to certain classes of people and has set up mechanisms for doing this. I was not using "we" in the "me and my immediate peers" sense.</comment></comment></comment></comment></comment></comment>


PRWeek interviews Crowdbooster (YC S10) CEO Ricky Yean - <AUTHOR> http://community.prweek.com/blogs/firehose/archive/2011/02/13/interview-crowdbooster-ceo-ricky-yean-introduces-this-week-s-quot-how-did-i-ever-live-without-this-thing-quot-tool.aspx

<comment><USER2> I've been using Crowdbooster for an event we're using, and its awesome to see how our social media marketing is working. Love it!

</comment><comment><USER3> Ricky is a great guy - good work Ricky!

</comment><comment><USER4> who doesn't love Crowdbooster and Ricky Yean?

</comment><comment><USER5> Going places :)</comment>


Null is your friend, not a mistake - <AUTHOR> https://medium.com/@elizarov/null-is-your-friend-not-a-mistake-b63ff1751dd5 <comment><USER2> Somebody finally gets it!

Null is a concept--there is no data here. We need the concept and code needs to be able to act on it. If you rewrite the code to avoid all possible nulls you have done nothing to ensure that everything is operating on sane data, you have simply removed the easy mechanism that flagged cases the developer failed to handle.

In most cases you're better off going boom than operating on wrong data and getting rid of nulls shifts the balance towards the latter.

</comment><comment><USER3> It seems like the author actually likes Java's Optional pattern but needs some syntactic sugar to make the medicine go down.

Because

        int id = args.getOptional().orElseThrow(() -> new Error("id expected"));

isn't _that_ different than the author's Kotlin example.

</comment><comment><USER4> I feel like that's just a weaker attempt at something like Maybe (Haskell) or Option (Rust).

<comment><USER5> It is not much weaker, but more pragmatic. A typical application has this need to represent a "missing" value quite often and adding a special `?`-based syntax for it totally pays of in practice.

However, it is important to not that `String?` in Kotlin is not a syntactic sugar for `Option<String>`, but a syntactic sugar for `String|null`. The difference between the two might seem minor, but is quite big pragmatically, especially when combined with flow-sensitive typing.</comment></comment>


Idiomatic Monads in Rust - <AUTHOR> https://varkor.github.io/blog/2019/03/28/idiomatic-monads-in-rust.html <comment><USER2> When this was released I posted this comment on the Haskell subreddit, thinking I was on the rust subreddit. It's got some musings about what the dangers of becoming like Haskell are:

I wonder, were the Rust community be given the same power as the Haskell community, would they use it to create a complex more advanced idiomatic Rust that you could only read and understand after months of training?

There is this weird phenomenon in Haskell, I attribute it to Haskell having a syntax that feels limiting, but a type system that seems almost limitless.

There are two branches of idiomatic Haskell. One is the style anyone would recognize as generic "functional programming" and would be able to work with and be productive after a week or two of practice.

The other is where a dozen language features are enabled, and the latest and greatest utility libraries are imported and Haskell shows itself to be as flexible and alienating as Lisp. An expert can wield extreme expression under purity and safety. A beginner stands no chance.

It would be interesting to see more expressive power come to Rust. But it would be a bad thing if it would come at the cost of being beginner friendly. Rust might be challenging to write as a beginner due to the borrow checker, but at least it's easy enough to read.

<comment><USER3> Um, yes. C++ went down that rathole, and it's not pretty.

The functional people have been able to hammer Rust into a functional language, sort of. Now they want a Haskell-like "do" construct so they can get imperative sequentiality back. Is that right?

I'm not a huge fan of extensible languages. I've had to debug LISP code written by others.

<comment><USER4> > The functional people have been able to hammer Rust into a functional > language, sort of. Now they want a Haskell-like "do" construct so they can > get imperative sequentiality back. Is that right?

Not really, in that even before the blog gets to do notation, it depends on features that don't exist yet: generic associated types, which are RFC- accepted but not yet implemented, and associated traits, which haven't even been proposed. For now the whole thing is just a sketch. However, since associated traits aren't critical to the design (and would be a good feature to add anyway), at least some version of it will presumably be implementable in the future.

Overall, Rust has always been inspired by functional languages to some extent, e.g. Rust traits are based on Haskell typeclasses, and Rust has pattern matching and full type inference. But I don't see `Monad` ever becoming idiomatic. I also don't see `do` notation being accepted, because its use cases largely overlap with other features, namely async/await and generators.

On the other hand, it would require only minor changes to generators to allow implementing `do` notation on top of them, something I'm highly interested in mainly just because I want to prove it's possible. ;p

</comment></comment></comment><comment><USER5> Please note that these are musings about possible language extensions that would let us express monads; this is not even at the stage of a proposal yet, and we haven't all agreed that enabling this kind of code is actually useful.

<comment><USER6> Where would you say that Rust core folks stand, regarding usage/overusage of such patterns? Sugar for common unwrappings?

Appreciate the pragmatism =)

<comment><USER5> The lang team would be in charge of these kinds of features, and I'm not on it, so I can't totally say. There are certainly members who do want this stuff. However, community sentiment is all over the map. [https://www.reddit.com/r/rust/comments/b6bu2c/idiomatic_mona...](https://www.reddit.com/r/rust/comments/b6bu2c/idiomatic_monads_in_rust_a_pragmatic_new_design/) is the reddit thread on this post, you can see a number of different opinions expressed there.

I personally want to see examples of real Rust code that has a problem that this solves. I get monads, I like monads in Haskell, but I'm unconvinced that the additional complexity is worth it in Rust.

<comment><USER7> Well, I hope they don't. Functional extremism killed Scala for the wider public (IMHO)

<comment><USER8> I'd say that _not enough_ functional extremism killed Scala. It tried to be all things for all purposes, compatible with every approach. So it grew into a incomprehensible monster of a language, full of subtle traps, like C++.

Making things compact and focused helps. Of mixed-approach languages, I see Kotlin's approach to integrating FP as more successful.

<comment><USER7> I'm sorry, I respectfully disagree on the "not enough" :-)

I think it is a matter of choice of audience. If you want pure functional languages, there are plenty that will rock your boat (Haskell, OCaml ...).

But, to my mind, I see Rust as a somewhat "modernised" C/C++ with, like Python, the most interesting _and_ accessible parts of FP backed in. It is a balance and it is fragile. So, as I said, I hope that Rust will keep that fine line.

All that said, it only is my opinion, I might be wrong and the wider audience might be ready for "harder" FP. But I doubt it.

<comment><USER8> Rust not only has some good parts from FP; they are added thoughtfully enough to keep them logically sound. So the fact that there are math-backed theories behind them still matters.

With C++, I can't say the same is true. Some libraries try to alleviate that, of course.

<comment><USER9> What math-backed theories? Why do they matter? Do you mean for the compiler team or for the users?

<comment><USER8> Hindley-Milner type inference and linear types (used indirectly for lifetimes) spring to mind.

<comment><USER9> Those are useful for compiler devs and language designers, not so much for the average user of the language.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> I'm not that familiar with Rust, but what is the rational against higher- kinded types? Is it a technical limitation that everyone agrees is a limitation, or is there some rationale why higher-kinded types in Rust are not useful?

This is probably not relevant, but as a professional Scala programmer, I find higher-kinded types absolutely indispensable. Without them, writing truly generic (and imo, beautiful) code is almost impossible. Programming with higher-kinded types does really feel like some "next level shit." higher- kinded types are to types as first-order functions are functions: the natural and logical extension that unlocks simplicity, genericity, and beauty.

<comment><USER5> > what is the rational against higher-kinded types?

There isn't so much a rationale against them, but rather, nobody has put forward a coherent proposal _for_ them. Changes only happen when proposals are made and accepted, and there's never really been one for HKT.

That said, there are arguments that apply fairly generally that would apply there too, namely "is the additional complexity worth it"?

</comment></comment><comment><USER11> If taking monads to Rust takes such convoluted code, my conclusion would be that it probably isn't a good fit. Compared to this, Haskell is a breeze.

<comment><USER12> Implementing monads will be convoluted, using them is relatively easy. It wouldn't change any of the existing code, but it would allow you to write a function like this:

fn double_inner<M: Monad<u64>>(m: M) -> M { m.bind(|x| M::unit(x * 2)) }

Which takes anything wrapping an integer and doubles it, whether it's an option or result or iterator.

<comment><USER13> not sure if this is the best example – `Functor` would be enough here

<comment><USER12> well, as neither exist currently it doesn't matter much does it?

</comment></comment></comment></comment><comment><USER14> Does any of this actually compile? Even with generalised_associated_types enabled I couldn't get the Functor definition to compile with a `trait MapFn...`

edit: If the main point of the article is to show that 'monads are feasible in rust' shouldn't you not be assuming a bunch of language features exist that don't?

<comment><USER15> >*edit: If the main point of the article is to show that 'monads are feasible in rust' shouldn't you not be assuming a bunch of language features exist that don't?8

Except if the main point is "monads are feasible in rust if we add these features".

<comment><USER16> Rust really needs to watch out to not further increase the complexity of the basic language.

</comment></comment></comment><comment><USER17> Call me closed-minded, but I seriously hope something like this never makes it into Rust. Not only is the complexity overbearing, but the motivation for this solution is rather thin.

</comment><comment><USER18> Rust should get Higher kinded types so these experiments can come up with something practical.

</comment><comment><USER19> I am not sure about whether the functor definition in article is correct or not.

Isn't it supposed to lift function as below:

class Functor f where map :: (a -> b) -> f a -> f b

instead of: class Functor f where map :: f a -> (a -> b) -> f b

<comment><USER20> The definitions are identical. You could define one in terms of the other by just reversing the arguments.

<comment><USER19> The first definition is says it takes a normal function and returns a function in category f. But second definition says it takes a value fa and a function and return fb. Does the order of defining arguments matters or its just a taste of matter? Thanks.

<comment><USER20> Don't make the mistake of thinking that translating a type signature into written English gives a canonical description of the function. The first definition says "(a -> b) -> f a -> f b" \- that is it.

You can translate one into the other easily

        map' :: (a -> b) -> f a -> f b
        map' i j = map'' j i

        map'' :: f a -> (a -> b) -> f b
        map'' m n = map' n m

<comment><USER21> Or, more succinctly,

      map' = flip map''
      map'' = flip map'

</comment></comment></comment></comment></comment><comment> ainar-g One question I almost never see addressed with monads is the question of the stack. The stack is not endless, and may actually be quite small on some devices. How is that fact reconciled with the fact that do-notation is essentially

      doStuff >>= (\a ->
        doMoreStuff >>= (\b ->
          doEvenMoreStuff >>= (\c ->
            -- Ad nauseam.
          )
        )
      )

Depending on the data being transferred, that looks like a lot of stack to me.

<comment><USER22> Couldn't you apply standard tail call optimization and turn it into a trampoline?

<comment> ainar-g That is assuming that your compiler knows about such optimisations and can apply them in non-recursive situations. As far as I know, Go doesn't apply tail-call optimisation. Haskell probably does. Not sure about Rust.

Either way, depending on the compiler making one particular optimisation just so that your code works seems rather fragile to me.

<comment><USER23> There are languages where TCO is defined as part of the language spec, specifically to give programmers permission to write this sort of code. Some Lisps (Scheme, I think) and Lua work this way. TCO is a relatively well- understood optimization that isn't prone to being brittle the way e.g. auto- parallelizers or auto-vectorizers can be. So it's less fragile than you'd think.

<comment><USER24> TCO is a lot easier to do in a garbage-collected language. In particular, with Rust, having any live stack value that conforms to Drop will break the ability to do tail-calls.

<comment><USER25> You could have a trait similar to Copy that forces Drop to be a no-op, and require live values that don't conform to it to be moved into any `become`.

<comment><USER24> Or just skip the trait and require there to be nothing live on the stack that conforms to Drop after a `become`.

In fact, the main reason to have a keyword like `become` is to signal to the compiler to do this kind of analysis, because it's so easy to accidentally break the ability to do TCO when you can't lean on a GC to clean things up later.

</comment></comment></comment></comment></comment></comment></comment><comment><USER26> This article might do better by actually explaining what a monad is in layman's terms, rather than deferring the reader to Wikipedia via a footnote. I read 1/3 of the article hoping to gain an understanding but gave up and didn't read further :(

<comment><USER20> That's because it's a technical article about monad implementation, building on previous technical discussion. The author could spend time explaining what monads are, but that's a notoriously tricky thing to teach, and if you don't understand them fully, the article as a whole won't be worth anything to you anyways.

<comment><USER26> Perhaps the author could have put such a disclaimer? "Note: it is beyond the scope of this blog post to explain what a monad is. Please refer to x,y,z for background material."

Anyway, I understand.

<comment><USER27> The article says in the introduction:

> I am going to be assuming some familiarity with monads (and to a certain > extent, do notation). There are enough introductions to monads out there as > it is.

</comment></comment></comment></comment><comment><USER28> What would performance be like compared to imperative style i/o ?

<comment><USER29> Monads are not about I/O.

<comment><USER28> Parent comment is not about answer.

</comment></comment></comment><comment><USER30> Wow. Does that monad abstraction also cost free ?

<comment><USER31> He only suggesting adding associated traits to trait definitions from what I can see.

So there shouldn't be any extra abstraction cost. And any actual cost shouldn't be any larger than it is for traits generally.

I believe most of the controversy in this space is about language complexity cost.

<comment><USER32> Compilation time is the other potential issue, although it's hard to predict it.

</comment></comment></comment><comment><USER33> Mods: Suspecting the fragment part of the URL wasn't meant to be submitted here? It jumps to some nonsensical part of the page...

<comment><USER34> Removed. Thanks!</comment></comment>


Don't Let Google Kill Your Startup: Avoid AdWords - <AUTHOR> http://pulsosocial.com/en/2013/08/31/dont-let-google-kill-your-startup-avoid-adwords/ <comment><USER2> Not necessarily. In developing countries like India, CPC is much much less and hence it is possible to create a profitable Adwords campaign.</comment>


Russian researcher found 0day vulnerability on Firefox 18 and Opera 12.12 - <AUTHOR> http://shanker-sec.blogspot.ru/2013/01/russian-researcher-found-0day.html

<comment><USER2> How do zero day vulnerabilities work in free software projects where the development is in the open? If there is a vulnerability in Firefox 18, I'd guess it was there in the beta, aurora, and nightly channels as well.

<comment><USER3> what do you mean work? which part? Do you mean the disclosure part? or the fix part? or something else?

<comment><USER2> Discovering a vulnerability</comment></comment></comment>


Why we're doing things that don't scale - <AUTHOR> https://37signals.com/svn/posts/3589-why-were-doing-things-that-dont-scale

<comment><USER2> Before everyone freaks out from the title, he's saying you should do THINGS that don't scale, not EVERYTHING.

I could see this as a good means to evaluate how you currently automate things in other products/services.</comment>


Ask HN: Cloud computing as a gift - <AUTHOR>

I'd like to buy some friends cloud computing power for the holidays. Something like $50-60 of credit to start a new idea. Are there companies like AWS and digital ocean that allow gifting of resources? <comment><USER2> I'm moderately certain you can pay for AWS with any standard Amazon gift card/certificate, including the e-certificates.

There also exist cards worth AWS-restricted Amazon credit, which their developer evangelists hand out occasionally, but I'm doubtful they're commercially available. When I get one I just put it in my wallet and give it to the next startup I talk to.

<comment><AUTHOR> That was the first thing I looked up and there was a quora post claiming you could not pay for AWS with an Amazon gift card.

[http://www.quora.com/Amazon/Can-I-use-Amazon-gift-cards- to-p...](http://www.quora.com/Amazon/Can-I-use-Amazon-gift-cards-to-pay-for- AWS)

</comment></comment><comment><USER3> You could open a DO account, pre-pay into it, and then hand over the credentials.</comment>


Ask HN: What is a typical server setup for a hight traffic website? - <AUTHOR>

I run my own MAMP server, and I assume my host runs a more advanced setup with the same ingredients: Apache, MySQL and PHP.
What kind of stuff do sites like twitter, Facebook and Google run?
I now and then encounter some projects on HN used by a big site to speed things up, but I'm curious to the bigger picture. <comment><USER2> It varies widely based on where the choke-points are in the architecture, but it is usually something like:

Interweb--> Load Balancer--> Web servers--->Database Servers

The "Load Balancer" part can be as simple as a machine (or two) running haproxy, to an F5 style device, to what is effectively load-balancing-as-a- service (Akamai, etc.).

The web servers could be multiple iterations of a single server, or a pseudo CDN setup where for a given set of machines that serve a page request, 1 machine handles serving images, 1 serves javascripts, css, and other static text, and another generates all the dynamic content.

The database layer can often have its own load-balancing within it, depending on the type and scale of activity. Much of this depends on how frequently the dynamic content changes and needs to be kept up to date (a system handling comments for a busy site needs to be more real-time than a system that just updates news stories over some period of time.

</comment><comment><USER3> If you want more information you might want to look at the High Scalability web site "<http://www.highscalability.com>. They discuss a lot of issues related to big, high-performance web sites, and how they scale. Some of the posts are also relevant to smaller sites that want to improve scalability, without investing in expensive hardware upgrades.

</comment><comment><USER4> Also, define high traffic.</comment>


ASK HN: Can we run a Mac OS as a VMware appliance ? - <AUTHOR>

I am trying to do an iPhone Apps development. I only have access to PC and Linux boxes. Is there a work around ? <comment><USER2> There is a "Hackintosh" VMware image, but you didn't hear that from me. Just buy a Mac mini.

(Mac zealots, cue complaints about "iPhone carpetbaggers".)

</comment><comment><USER3> a Mac Mini is probably cheaper than a VMWare + OS X license :-)

<comment><USER4> Especially if you consider the time it will cost you to setup a hackintosh. I believe VMWare now supports emulation of OS X on a macintosh so you should be able to use one mac mini and an external HD to test several different versions of OS X.

</comment></comment><comment><USER5> You have a device right?</comment>


New Magic Keyboard for iPad Pro now available, begins arriving next week - <AUTHOR> https://www.apple.com/newsroom/2020/04/new-magic-keyboard-for-ipad-pro-now-available-to-order-begins-arriving-next-week/ <comment><AUTHOR> This is unexpected since the ETA was May, and Apple rarely ships things ahead of schedule.</comment>


Congress asked to investigate Internet "supercookies"   - <AUTHOR> http://oregonbusinessreport.com/2011/10/congress-asked-to-investigate-internet-supercookies/

<comment><USER2> I just don't see any good that can come from legislators getting involved here. Also, if you want to do your own supercookies, check out: <http://samy.pl/evercookie/>

<comment><USER3> If you don't want legislators to get involved, then please stop promoting underhanded techniques which abuse browser features.

<comment><USER4> It doesn't need promoting. Anybody that wants to do it is already, or can figure it out themselves. In the meantime, it's nice to keep the general population informed.

</comment></comment></comment><comment><USER5> I investigated supercookies (evercookie? no mention of samy in the article?) the other day in all of 5 minutes.

Yes, they work on most modern browsers, and are very difficult to remove entirely.

No, they do not store anything on any modern browser surfing in "privacy" mode.

I was pretty disappointed to be honest. I was hoping to use them to track fraudulent free trial abusers.

<comment><USER6> Did you look into Etag tracking? <http://en.wikipedia.org/wiki/HTTP_ETag#Tracking_using_ETags>

This might work in "privacy" mode as far as I understand, unless you disabled the local cache? I have not tested this.

<comment><USER7> I don't know about other browsers, but Chrome's Incognito Mode has a separate cache completely, which is wiped on closing.

<comment> mike-cardwell Wiping the cache on browser close isn't a "good" solution. It doesn't prevent cross site tracking across a single session, which means your accounts can be linked together.

I completely disabled the cache in Firefox two months ago for this very reason. I haven't noticed any performance problems with this in my general day to day browsing, but I have a decent broadband connection, and good connectivity at work so YMMV. Here's how I did it: [https://grepular.com/Preventing_Web_Tracking_via_the_Browser...](https://grepular.com/Preventing_Web_Tracking_via_the_Browser_Cache)

</comment></comment></comment></comment><comment><USER8> Did you know that Java has its own version of Flash's Local Shared Objects? They are also known as "muffins" and have pretty much the same abilities (including resurrecting HTTP cookies.) So far they aren't used much, but any new regulations that apply to one are also likely to apply to the other.

<comment><USER5> Interesting. Even java would be blocked by browsers using "privacy mode" though would it not?

<comment><USER8> No. I Just tested in FireFox (7.0.1; Private Browsing) and Chrome (14.0.835.202 m; Incognito.) Both still run the applet without prompting and allow it to read & write the muffin store.

</comment></comment></comment><comment><USER9> This is not the answer. Why don't we invent technology that beats the "supercookie" instead of passing laws that restrict innovation and ideas?

<comment> mike-cardwell Easier said than done. You can create a "cookie" by simply sending a unique image to a users browser with a long cache time, and then reading that back with JavaScript on each page.

If you disable your browsers cache and/or JavaScript, I guess that would fix _this_ particular issue.

If you want to keep both the cache, and JavaScript, then you need to stop people from doing this sort of thing, with legislation.

<comment><USER9> So the solution for really hard technology problems is government laws? Ridiculous.

<comment> mike-cardwell Explain why what I said is ridiculous, or I'll discard your comment as nonsense.

If we don't have a technical solution for a problem (which we don't in this case), then regulation is appropriate. If and when we find a technical solution for this problem, then the legislation will be deprecated. Until that point, it is useful.

What _is_ "ridiculous", is assuming that all problems have technical solutions.

</comment></comment></comment></comment><comment><USER10> Congress only wants to investigate because they're hoping to get new sources of data to use against the people.

</comment><comment><USER11> Hey, what this .swf file? Oh, that's a "Small Web File". LOL!

Flash just needs to die. It adds nothing to my "user experience". Except stealth tracking of course.

<comment><USER12> This has nothing to do with Flash per se. There are many techniques for storing persistent data that survives a regular cookie cleanup, of which Flash cookies are just one.</comment></comment>


Orson Welles, one of history's great workaholics - <AUTHOR> http://www.vox.com/2015/5/6/8554571/orson-welles-work-ethic <comment><USER2> It may sound silly, but I was first introduced to Welles in the original Transformers animated movie where he provided the voice for Unicron, one of my all-time favorite villains, who spends most of the movie as a planetoid.

His voice _shook_ the theater and is unmistakable to me to this day.

One of the greatest voice casting decisions of all time and one of his last roles.

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

<comment><USER3> Was his last role, and he didn't seem to pleased about it.

' You know what I did this morning? I played the voice of a toy." He elaborated, "I play a planet. I menace somebody called Something-or-other. Then I'm destroyed. My plan to destroy Whoever-it-is is thwarted and I tear myself apart on the screen." '

</comment></comment><comment><USER4> It seems telling that this article leaves out the fact that he became morbidly obese, which seems like something that often accompanies workaholism.

<comment><USER5> I feel these types of articles glorify work-o-holics, as if to indicate if you're not working 24/7, 365 days a year, you're not trying hard enough.

On the flip side, it's an example of how far you can push yourself when you're truly passionate about something.

<comment><USER6> I like how Joss Whedon put it:

(Paraphrasing) "Lots of people talk about workaholics, but hardly anyone mentions workaholism".

Once you couch it in the latter term, it loses its patina of virtuousness.

<comment><USER7> If my personal experience is any judge, knowing (or dating) someone who works for Apple (and I'm sure several other high-drive companies) is half the journey to learning of the existence of "workaholism."

</comment></comment></comment></comment><comment><USER8> I'm a huge Welles fan, but I find it weird to talk about him as a "workaholic."

Not because he didn't spend a lot of time working (he did! Especially when he was young), but because so little of that time actually resulted in him _accomplishing_ anything. His life story is full of half-finished and only- pushed-out-the-door-because-someone-forced-him-to projects.

Some of these are notorious, like _Ambersons_ , but there are plenty of others. _It 's All True_ ([https://en.wikipedia.org/wiki/It%27s_All_True_%28film%29](https://en.wikipedia.org/wiki/It%27s_All_True_%28film%29)), for instance, a vaguely documentary-ish film he spent two years working on in Latin America during World War 2. He shot so much film for _It 's All True_ that the studio that eventually inherited it ended up dumping hundreds of thousands of feet of the damn stuff into the ocean just to get it off their books. But even with all that time and footage, he was never able to turn out a finished film.

Or his _Don Quixote_ ([https://en.wikipedia.org/wiki/Don_Quixote_%28unfinished_film...](https://en.wikipedia.org/wiki/Don_Quixote_%28unfinished_film%29)), which he started working on in 1955, spent more than a decade shooting, and which, unfinished and unreleased, he was still tinkering with when he died thirty years later.

Or _The Other Side of the Wind_ ([https://en.wikipedia.org/wiki/The_Other_Side_of_the_Wind](https://en.wikipedia.org/wiki/The_Other_Side_of_the_Wind)), also unfinished, which was how he spent the first half of the 1970s.

Or _The Big Brass Ring_ ([http://www.amazon.com/The-Big-Brass-Ring- Screenplay/dp/09482...](http://www.amazon.com/The-Big-Brass-Ring- Screenplay/dp/094823816X)), a massive, turgid lump of a screenplay that he spent years flacking around Hollywood near the end of his life. (Another director actually managed to film it in 1999. Don't worry about trying to track it down. It is terrible.)

The article doesn't mention any of these projects. In fact it really doesn't mention anything he did after _Ambersons_. But when he walked away from _Ambersons_ he was only 26 years old! He had more than 40 more productive years ahead of him. While he filled those years with work, though, he lacked focus, lacked _discipline_ , and that lack sabotaged him over and over and over again. He never learned the lesson that "great artists ship." And that's why the story of his life reads as much like a tragedy as it does a tale of genius.

<comment><USER9> I think he also may have gotten caught in the trap of early success.

If you view projects as something where you need to surpass your previous work, surpassing something like Citizen Kane, which consistently is named one of the best movies of all time, seems daunting. I can see why that could lead to the same sort of paralysis or the same problem of "only working on Big problems/projects" that Hamming mentions in the repeatedly linked here "You and your Research". ([http://www.cs.virginia.edu/~robins/YouAndYourResearch.html](http://www.cs.virginia.edu/~robins/YouAndYourResearch.html))

</comment></comment><comment><USER10> I'm a great fan of Welles and I think politics took one of the great creative geniuses from us. As for workaholism, if you love what you are doing, you wouldn't want to do anything else. It's a global minima as opposed to being a local manima and one needs effort to move from there.

</comment><comment><USER11> "He didn't sleep for two days, and he slept, ate, and directed from a couch in the center of the theater." Urgh, lazy wording.

</comment><comment><AUTHOR> @dang, out of curiosity, why the title change? The title as posted is that of the article.

<comment><USER12> We changed the title to another phrase from the article which advertises the content without the linkbait-y reference to "you".

</comment></comment><comment><USER13> General note: he made ONE great film (Kane), a few good ones (Ambersons, F For Fake, Chimes) and the rest were howlers or just dull. I can't watch Lady From Shanghai because of of his awful accent, plus it's s bit dull. Touch of Evil was almost good but 45 minutes too long. Genius? Nah.

<comment><USER10> I disagree. I believe his narration of "War of the worlds" was incredible and the opening sequence of "Touch of Evil" is one of the best ever.

He never got the same creative freedom as he got while creating Citizen Kane. Citizen Kane wasn't a blockbuster of it's time as many theaters refused to play when they came under pressure from Hearst. Following which he spent his time in England.

His battle with Hearst has been documented in quite a few places[0].

[0] [http://www.pbs.org/wgbh/amex/kane2/](http://www.pbs.org/wgbh/amex/kane2/)

<comment><USER14> It is true that the common wisdom says Hearst destroyed Welles' career as revenge for Citizen Kane, but I'm not sure it's that cut and dried. For example, Robert Wise (who worked with him in his early career and eventually went on to surpass him in terms of success and output) disagreed with the idea that Welles was held back:

"Not true there was a cabal preventing Orson from making more films. He simply never fulfilled himself after that magnificent start; his own fault - lack of self-discipline."[1]

See also this comment[2] right here in this HN story which goes into some more detail about Welles' chronic string of failed projects.

While Hearst may have done some damage, I think ultimately it was possible to Welles to recover, but he unfortunately spiraled down the drain instead.

      [1] http://imdb.com/name/nm0936404/bio
      [2] https://news.ycombinator.com/item?id=9503266

<comment><USER10> This is an interesting perspective, thanks for sharing. I'm not sure I would take Wise's word on it but anyways this gives me an intriguing angle to dig deeper.</comment></comment></comment></comment>


Cambridge Analytica files for bankruptcy - <AUTHOR> http://www.bbc.com/news/technology-44167000 <comment><USER2> What will their new name be?

<comment><USER3> Emerdata. [0]

To give full disclosure, the CA CEO claims it's "not a rebranding"[1] but given the board/C* composition, I'd respectfully call him "high as a kite" if he thinks I'm going to buy that. (Especially given my opinion on BI's reporting chops)

[0] [https://www.theregister.co.uk/2018/05/02/cambridge_analytica...](https://www.theregister.co.uk/2018/05/02/cambridge_analytica_shutdown/) [1] [http://www.businessinsider.com/cambridge-analytica- founder-s...](http://www.businessinsider.com/cambridge-analytica-founder-says- no-rebranding-new-name-2018-5)</comment></comment>


The New AWS Command-Line Interface - <AUTHOR> http://aws.typepad.com/aws/2013/09/new-aws-command-line-interface-cli.html <comment><USER2> FWIW, I've been using the aws command-line tool by Tim Kay for over 6 years. It's only Perl and cURL. A single self-contained script with no other dependencies. It's been rock solid in production that whole time:

[http://timkay.com/aws/](http://timkay.com/aws/)

The syntax looks quite the same, but Amazon's awscli Python installer has loads of dependencies. I'll have to see if it's worth switching.

Anyone already know if Amazon's new CLI thing has any big advantages over Tim Kay's Perl aws?

<comment><USER3> > The syntax looks quite the same, but Amazon's awscli Python installer has > loads of dependencies. I'll have to see if it's worth switching.

Why are the dependencies a problem? By combining a handful of smaller, focused modules that each do something well, you can end up with something better than if you were to re-invent the wheel for every need.

AWS and the Python dev team are doing a heck of a job on botocore, and have cranked up the pace of improvement in the last 6 months. This CLI reaching "official" status will guarantee (at least until further notice) that it will see updates and fixes. It's likely to see early or earlier support for new AWS services.

<comment><USER2> I just like knowing what's on my system.

`pip install awscli` just installed 26 other modules besides awscli. Now I feel a little obliged to go check out those 26, as well, to see what they are.

I agree about not re-inventing the wheel. But the amount of stuff installed is definitely a considering factor when choosing between two seemingly identical scripts.

<comment><USER4> > `pip install awscli` just installed 26 other modules besides awscli. Now I > feel a little obliged to go check out those 26, as well, to see what they > are.

So? Use a virtualenv and stop worrying. These 26 dependencies will be separately updated and maintained, who knows what warts are sitting in the monolithic perl scripts.

<comment><USER5> With boto, I battled for years trying to avoid any dependencies. But that has a lot of negative side effects, too. One of the great things about Python is the amazing variety and quality of libraries available. We decided to embrace that with AWS CLI. We have 10 direct dependencies. Four of those are our own packages that we decided to split to allow maximum reuse. Then there are fundamental things like requests, six, docutils. The rest are things that, we think, improve the experience. Virtualenv is an awesome way to manage this. I highly recommend it.

</comment></comment></comment></comment></comment><comment><USER6> This latest release marks a milestone in the transition from the old Java based tools, to the new Python ones.

Mitch Garnaat[1] who built and maintained boto over the years was picked up by Amazon last year and since has been building out botocore[2] - which the aws- cli[3] tools use under the hood.

[1] [https://github.com/garnaat](https://github.com/garnaat) [2] [https://github.com/boto/botocore](https://github.com/boto/botocore) [3] [https://github.com/aws/aws-cli](https://github.com/aws/aws-cli)

<comment><USER7> Thank you for this no-nonsense layout of the situation. =) Can you elaborate more on how this FOSS Github-er was picked up by Amazon? It sounds like a story that many here would like to replicate!

<comment><USER6> I'm afraid I don't actually know anything more than the intertubes can tell you :)

I noticed it had happened sometime last year, and thought I'd share what little I know.

</comment></comment></comment><comment><USER8> Whilst this is a much better solution that the existing slow tools Amazon provided, I don't understand why this is being reported as if command-line tools for AWS are a new thing.

Command-line tools used to be your only option for managing AWS and Amazon always create their API and shell tools before the Console.

<comment><USER9> Yea, not a new thing, even the command names are mostly the same.

$ ec2-describe-instances

$ aws ec2 describe-instances …

Pretty strange decision IMO.

<comment><USER10> It's unifying the commands. Just this morning I've been struggling with ascli (autoscaling cli), which has its own method for listing AWS keys that don't match the way other tools do it.

<comment><USER9> Meh, 90% of what I do is ec2 anyway.

I did have to break out: cli53 rrcreate.

</comment></comment></comment></comment><comment><USER10> Interesting - I must have had an older version and not played with it. The version I had did not have 's3 sync', and the help files were a long list of ec2 commands and some boilerplate headings.

Reinstalled and now they have shorter, saner commands and real help pages... and they also changed the pager from 'less' (my default pager) to the crappy 'more'... because (apparently) you never want to go back a page in a help file. More detailed content, but it's harder to review. Odd.

<comment><USER7> Amazon doesn't use $PAGER? [0]

[0]: [https://en.wikibooks.org/wiki/Guide_to_Unix/Environment_Vari...](https://en.wikibooks.org/wiki/Guide_to_Unix/Environment_Variables#PAGER)

<comment><USER11> Well, GP isn't just imagining things. The pager for this is at most the equivalent of crap-ass "more" right out of the box, on systems where all other cli executables have better pagers.

        $ PAGER=/usr/bin/less aws help

...does seem to do the right thing, but why does this program require it when no other program does?

</comment></comment></comment><comment><USER12> Just tried it out and it is excellent ! The integration of various aws services is really neat. The help and correction-suggestion are nice too.

Great to hear that this is built on the awesome boto library. Will serve as an useful reference for boto developers.

</comment><comment><USER13> I think the only thing "new" here is aws-cli hitting version 1.0.0. It's been the recommended aws command line tool for quite a while now. I've personally used it for the last 6 months.

</comment><comment><USER14> Long-time user of boto[1] here. It has been the go to library to hook your python code into AWS and has a fairly active following on github[2].

One API point that I've found lacking in boto is a "sync" command for S3. Take a source directory and a target bucket and push up the differences ala rsync, that's the dream. Boto gives you a the ability to push/get S3 resources, but I've had to write my own sync logic.

So, the first thing I went digging into is the S3 interface of the new CLI, and to my surprise, they've put a direct sync command on the interface[3], huzzah! Their implementation is a little wacky though. Instead of using some computed hashes, they are relying on a combination of file modtimes and filesize. Weird.

Anyways, glad to see AWS is investing in a consistent interface to make managing their services easier.

[1] [http://boto.readthedocs.org/en/latest/index.html](http://boto.readthedocs.org/en/latest/index.html)

[2] [https://github.com/boto/boto](https://github.com/boto/boto)

[3] [http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html...](http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html#examples)

<comment><USER15> That is good news. I too wrote a sync layer to sit above boto for a previous project. My use-case is a little different in that I sync from S3 to RackspaceCloud as a backup. I just use file name (object name) as the key because I know that files never change (though are added and removed). I create a complete object listing of S3 and a complete object listing of CF, diff and then sync.

One disappointing issue is that the listing process on CF is a magnitude faster than S3.

        CF: real	2m7.628s
        S3: real	14m15.680s

Keep in mind that this is all being run from an EC2 box, so really, S3 should win hands down.

</comment></comment><comment><USER16> Azure has had a node.js CLI for awhile and it's awesome. It's advertised for Mac/Linux, but I use it on Windows all the time.

[http://www.windowsazure.com/en-us/develop/nodejs/how-to- guid...](http://www.windowsazure.com/en-us/develop/nodejs/how-to- guides/command-line-tools/)

</comment><comment><USER17> Well, a rant:

* Why does each one of them use different parameters for the same stuff? WHATEVER_URL could be REGION (WHATEVER = EC2, ELB, ETC, ...). One uses a config file for ACCESS_KEY_ID, another one wants a environment variable. Plus they use different names for common stuff.

* Why do are the command line arguments named inconsistently across these tools? --whatever, --what-ever

* Why don't they fail on command error? Right now this only happens if there's a configuration problem - if you send a command and there's a problem (like S3 access denied), it still returns 0.

* Why don't they provide synchronous commands? Right now I have to do the polling myself. Super annoying.

Anyway, I've been using the ones included in Amazon Linux - I hope they were the latest version. If the new version fixes this problem, feel free to correct me :)

</comment><comment><USER18> About time.

More startups should realize that they could increase developer adoption of their products if also published shell script interfaces to their product. In fact, your startup should really start off as command line accessible and add the gui after.

<comment><AUTHOR> There have been CLI tools for some parts of AWS since the beginning. This release replaces a set of disparate tools (each with their own installation instructions and configuration issues) with a unified set.

> In fact, your startup should really start off as command line accessible...

I would argue that startups should always start at the API level and work upwards. At least that's what we did with AWS.

<comment><USER19> Starting off from the API seems like the only sensible way to approach things. It exposes core design issues early on, and if done right, eliminates a wide source of security issues that might be introduced by, say, the front-end developers.

</comment></comment></comment><comment><USER20> aws-cli/0.16.0 gripes:

• __slow __

• crap ton of dependencies, making it a pain to install on Arch[https://aur.archlinux.org/packages/aws- cli/](https://aur.archlinux.org/packages/aws-cli/) Hint: static build ffs

• broken help. `aws s3 help` instead of `aws help s3` which is more natural to git users

• no glacier support

• no s3 progress for downloads or uploads

• many jarring UX issues [https://github.com/aws/aws- cli/issues/305](https://github.com/aws/aws-cli/issues/305) [https://github.com/aws/aws-cli/issues/304](https://github.com/aws/aws- cli/issues/304)

<comment><USER21> > • no glacier support

I'm the author of glacier-cli (github.com/basak/glacier-cli). I'd be happy to see it move into aws-cli. If anyone wants to do this, please get in touch to coordinate.

</comment></comment><comment><USER22> As a semi-technical small business user of AWS I really wonder why so few resources seem to be put to the AWS GUI. For example, why is autoscaling not part of the GUI/AWS console? It's one of the most basic functions and it beggars belief that in this day and age it is done through the command line only. I'd rather not have to pay extra for Ylastic or some other hack when I'm sure Amazon can throw together even the most basic UI in a few weeks.

<comment><USER23> Use Asgard from NetflixOSS ([https://github.com/Netflix/asgard](https://github.com/Netflix/asgard)). Shameless project plug: for anyone using Hubot, easily get Asgard up and running, then interface with Asgard via Hubot ([https://github.com/imperialwicket/hubot- asgard](https://github.com/imperialwicket/hubot-asgard)).

* EDIT: that is, use Asgard because it does a great job of managing autoscaling groups.

</comment></comment><comment><USER24> The new CLI looks like a massive improvement over the old one, but ironically I will probably still prefer boto + ipython because of the very robust autocompletion.

<comment><USER25> I wonder if the fish shell could autocomplete the commands; it has a feature to generate autocompleation settings from man pages.

</comment></comment><comment><USER26> If anybody is after similar s3 functionality within python, I wrote a small python wrapper around boto a while back that does similar parallel/multipart upload to s3, and a bunch of other AWS stuff: [https://github.com/djrobstep/motorboto](https://github.com/djrobstep/motorboto)

</comment><comment><USER27> I've been using a combination of aws-cli and the Java-based tools (as some features are unsupported by aws-cli yet). I've been patiently waiting for CloudFront support - no luck yet! Also, I'm switching my new projects to use botocore, but it lacks any documentation and it's been really painful!

</comment><comment> js-py-pl Interesting, I've been using CloudSigma's built-in tool for quite some time. You just hit ' in their webapp :) See [https://autodetect.cloudsigma.com/ui/#/trynow](https://autodetect.cloudsigma.com/ui/#/trynow)

</comment><comment><USER28> I've been using s3cmd for a while now. Am I correctly seeing that the new CLI tools, or at least the s3 portion, are pretty much a replacement for that?

<comment><USER29> First-party parallel upload and splitting support immediately trumps s3cmd for me.

</comment></comment><comment><USER30> Okay.. glad to see the effort, but I've been using boto and euca2ools for years. This will have to be good for people to switch.

<comment><USER31> Same author. boto dude (garn something, he's posting here but I'm on my phone) wrote boto and wrote these.

<comment><USER30> Thanks!

</comment></comment></comment><comment><USER32> This makes a project I was almost done with much easier. Start over, or finish with the way I was previously doing it?

</comment><comment><USER33> Can I use this for Glacier parallel uploading?

</comment><comment><USER34> Well done!</comment>