Workers at Amazon's main Italian hub, German warehouses strike on Black Friday - <AUTHOR> https://www.reuters.com/article/us-amazon-italy-strike/workers-at-amazons-main-italian-site-to-hold-first-strike-on-black-friday-idUSKBN1DN1DS <comment><USER3> > The company said salaries paid to its workers were among the highest in the > logistic sector and that it also provided some benefits such as private > medical insurance or money to pay for training programs.

Not a criticism of either Amazon or the unions but I would really appreciate it if news sources would verify these claims one way or another. Obviously as a wire service, that may not be Reuters' job but whether Amazon's claim here is true or not makes a massive difference to what I glean from the article.

<comment><USER4> I talk to workers here in Canada the starting salaries and benefits are about average, definitely not 'highest in the sector' or any such nonsense though maybe in Europe they are in order to attract employees. Here they are expected to do 10-12hr overtime shifts every day, and work as hard as possible without breaks to make bonuses which are inconsistent, and because there's no union representation harassment galore goes on with managers phoning you at home all hours to answer non-critical questions that could have waited until your next shift.

This old Gawker article accurately describes the warehouse conditions [http://gawker.com/inside-an-amazon-warehouse-the- relentless-...](http://gawker.com/inside-an-amazon-warehouse-the-relentless- need-to-mak-1780800336)

<comment><USER5> "Wire service"?

<comment><USER6> [https://en.wikipedia.org/wiki/News_agency](https://en.wikipedia.org/wiki/News_agency)

</comment></comment></comment></comment><comment><USER7> Happy to hear workers are standing up for themselves. The anti-union FUD campaign in the US has contributed significantly to the erosion of middle class wages over the past 50 years (check out Thomas Piketty's work if you're curious about this).

<comment><USER8> > The anti-union FUD campaign in the US has contributed significantly to the > erosion of middle class wages

It's way more complicated than that, and it can't simply be dismissed as a "FUD campaign". Union members are actually disproportionately likely to _support_ things like right-to-work laws, which unions dislike because it (more or less) means workers aren't obligated to be members if they choose not to.

Similarly, union membership rates have dropped even in states that have very union-friendly laws (like New York and Massachusetts), and unions are having less and less success at the polls, meaning non-unionized workers are rejecting the proposals to unionize their workforces (UAW elections in particular - AFL-CIO elections to a lesser extent).

This pattern isn't as simple to dismiss as "anti-union FUD", especially since it's seen among people who are _already_ union members in closed shops.

The reasons for this have to do with the history of unionization of closed shops, and the regional economic pressures it creates.

<comment><USER9> > Union members are actually disproportionately likely to support things like > right-to-work laws, which unions dislike because it (more or less) means > workers aren't obligated to be members if they choose not to.

Right-to-work laws are like prop 13 in California: sounds good on the surface, but hidden terrible impact.

On the surface, "I should be able to choose whether or not I join a union" makes sense, Americans love freedom and choice. But of course, in practice people who choose not to join a union get to freeload: they get most of the benefit of the union in how it informs a company's general policies and culture about workers, but don't have to pay any fees. And like most instances of the freeloader problem, the result is the responsible entity getting starved, as everyone wants the others to be the ones paying for the benefits.

<comment><USER10> I absolutely agree free riders are a problem with unions.

But that doesn't mean right to work laws shouldn't exist. Maybe it just means unions shouldn't exist.

I mean, if your entire business model is flawed, should the world change around your business model?

This is more of a devil's advocate position, as I'm not particularly anti- union, but I personally have zero desire to work in a union or be forced to be in one.

I refuse to say that unions have no place in the world, or have no place in certain industries, or didn't have a place in the past. I'm rather neutral on a lot of it, but the fact is the problem is inherent in the union itself.

<comment><USER11> "[..] if your entire business model is flawed [..]"

Unions go a little deep than the concept of "business model"

"[..] I personally have zero desire to work in a union or be forced to be in one."

I'm going to speculate that's only because you have good working conditions.

"unions [..] have a place in the past"

That's a common opinion. What have changed from the past?

Because the laws of capitalism tell us that if any profit or benefit goes to the worker is because there is no way around it. Sometimes is a good idea look back to history. For instance the eight hour working day:

" In 1919 in Barcelona, Catalonia, after a 44-day general strike with over 100,000 participants had effectively crippled the Catalan economy, the Government settled the strike by granting all the striking workers demands that included an eight-hour day, union recognition, and the rehiring of fired workers."

([https://en.wikipedia.org/wiki/Eight- hour_day](https://en.wikipedia.org/wiki/Eight-hour_day))

Sometimes I think that we are all "free riders" on the fights of the past.

<comment><USER12> ""[..] I personally have zero desire to work in a union or be forced to be in one."

I'm going to speculate that's only because you have good working conditions."

I have noticed (personal anecdote here so yeah not great) that a large majority of people that I know against unions have never worked in dangerous fields, office workers are ridiculously ignorant as to the workplace dangers of many unionised industries.

</comment></comment></comment></comment></comment></comment><comment><USER13> Now that's something I haven't heard about in the US for a few decades: strikes.

I'm partly kidding, but have there been any major strikes in the US lately?

<comment><USER14> Strikers in US media are often belittled. Think back to the Occupy Movement.

The banks were bailed out, none of those people who caused so much misery were ever put in jail, and the media belittled Occupy as being directionless and pointless. The protest was huge, stretching across cities and countries, but there was never any accountability for the banksters. It shows again as the Equifax execs were cleared of insider trading, when they were obviously insider trading.

When I was in London a few years ago, there was a massive tube strike. The train drivers were belittled in the media with reports claiming they made over 55k GBP a year, more than many nurses. They neglected to mention the new night train program would have meant long 7 to 14 week night shifts for every tube driver. The city was voted in on night trains, but had no money to fund them. So the blame gets passed all the way down to the tube drivers.

<comment><USER15> That's not entirely true. The strike was over the fact that if not enough drivers _volunteered_ to do the night shifts, TFL could assign non volunteers. They would still be compensated for the work hours being particularly antisocial.

It is also true that Tube drivers are well paid and yes that does impact the levels of sympathy available to them. The change was absolutely funded - <USER2> not as well as the union would like.

In essence, however, tube drivers having veto rights over being scheduled to work nights presents an opportunity to cause shortages and disruption without any ramifications or declaration of strike etc. It was a giant liability for TFL to accept.

<comment><USER16> > Tube drivers are well paid and yes that does impact the levels of sympathy > available to them.

£55k isn't _that_ well paid for people who have to live in or near London. Not if you consider it the kind of job where you should be able to afford luxuries like a family, a car, a mortgage, saving for retirement etc. It probably does sound like a lot to people who live outside London and / or aren't considering those things.

<comment><USER8> > £55k isn't that well paid for people who have to live in or near London

It's more than the typical software engineer can expect to make in London.

Source: Glassdoor, Indeed, talking to colleagues who live in London, and my own memories from my last job search.

<comment><USER16> Personally I would say a tube driver is just as entitled to a decent life as an average software developer but I realize this may be the wrong audience for that argument.

<comment><USER17> Depends on what you mean by 'entitled'?

In an ideal world we'd all have ponies, but in reality there's still scarcity so we have to ration resources one way or another. (And then whatever rationing system we use interacts with human incentives and lots of other systems.)

<comment><USER16> > Depends on what you mean by 'entitled'?

I'm not sure it does. I can't think of a reasonable definition whereby I consider an average software developer to be more entitled to a decent life than a tube driver.

<comment><USER17> The definition that has one 'entitled' to whatever one can get in a voluntary exchange of goods and services?

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER18> Good luck to them, may they obtain whatever they ask.

It's also nice to see people doing a serious strike in Italy for once, unions have done a shitty job there in recent years, but it's important to have workers protest, to guarantee a balance of power.

</comment><comment><USER19> Same happened in Germany at 6 Amazon logistic sites at Oct 31, one of the biggest german holidays. [https://www.heise.de/newsticker/meldung/Verdi-ruft- an-drei-d...](https://www.heise.de/newsticker/meldung/Verdi-ruft-an-drei- deutschen-Amazon-Standorten-zum-Streik-auf-3875870.html)

They even have their own website: [https://www.amazon- verdi.de/](https://www.amazon-verdi.de/)

<comment><USER20> What effort people take to work at an obviously toxic company... the job market must be really bad.

<comment><USER21> it is pretty bad. People have to take those jobs or be unemployed and get so called sanctions (=less money) by the unemployment office.

There is no general labour shortage in germany right now. 2 million foreigners are getting unemployment payments right now, which is ~1.000 Euros per month (housing included). In addition, 7 million german people are out of work.

All in all i guess we have ~10 million people waiting in lines for more work or work at all.

</comment></comment></comment><comment><USER22> Great way to make sure in the near future Amazon will send packages to Italy from France, Austria, Slovenia or Switzerland - the countries sharing a border with them.

(Same happened - and is happening - in Germany. Staff at logistics centers started to strike (in small numbers). Totally unrelated Amazon started shipping from Poland and Czech Republic)

<comment><USER23> And so will either increase prices or slow down delivery. Also, I don't know wether Italy has sane strike laws or not, but in Germany amazon would not be allowed to just fire the strikers, and there is and was non-negligible PR fallout from the strikes.

Just to present the full picture. In the end, either there will be a price found. But I'd say good for Italian workers for making the labour market more of a market

<comment><USER24> Wait, what? You can't fire people who refuse to work? That sounds absolutely crazy.

<comment><USER25> It's not crazy in a civilized country. They're not slaves, you know..?

<comment><USER26> But the people paying them are slaves, and can be forced to continue paying them for nothing?

<comment><USER27> They aren't usually paid during the strike.

</comment></comment></comment></comment></comment></comment><comment><USER28> How do unions work in the US? From what I hear it sounds like members are "employed" by the union and the company is forced to hire workers from the union? Have I misunderstood?

In Europe workers are hired by the company and are free to enter whichever union he or she wants or not to join a union. Usually all workers at a workplace join the same union and form a local branch/club at the workplace. Unions are national and usually there's several different unions organised under one union organiser. The biggest union organiser in Norway have almost a million members (that's one fifth of the population!) across almost 30 different unions. So when push comes to shove they are able to call a general strike and basically shut down the country. That almost never happens though.

<comment><USER29> >How do unions work in the US? From what I hear it sounds like members are "employed" by the union and the company is forced to hire workers from the union? Have I misunderstood?

This is the case in the EU as well. If your company is of a certain size, you are required to pay a person that works for the union rather than for the company.

<comment><USER30> Citation needed. At least in Austria, a country with a 90%+ unionization, that is absolutely not the case.

</comment></comment></comment><comment><USER31> > The company said salaries paid to its workers were among the highest in the > logistic sector and that it also provided some benefits such as private > medical insurance or money to pay for training programs.

I don't understand how you can strike if this is true.

<comment><USER32> I don't either understand why they strike, but that's because they released their statement as a scanned pdf without ocr and I can't read italian: [http://www.cgilpiacenza.it/imgportfolio/14/img_6/img_767969....](http://www.cgilpiacenza.it/imgportfolio/14/img_6/img_767969.pdf)

<comment><USER33> I will try a summary translation for you (I can't claim to be perfect, it is more union-speak than Italian :-) ):

The issues that the unions are complaining about are:

* Need for increased wages: the current wages follow the minimum required by the CCNL (national collective contract)[ _], but working condition are worse than usual: pauseless working shifts, higher productivity required, night shifts spread all year long with 6 days working week in during high peak perios (e.g. Christmas)._ No productivity bonuses for event such as Christmas or Black Friday. * No ability to balance work life and personal life.

The unions say that they are going on strike since for more that one years they have tried to address those issues with Amazon but the latter always delayed any kind of action.

[*] CCNL is a contract that is agreed between unions and employers at the national level to guarantee a baseline for all employees in a given sector.

<comment><USER34> So basically, they're saying Amazon is straight up lying about their wages being the highest in the sector.

<comment><USER33> According to a link that someone else posted [1] (Sorry but it's in Italian), they get about 1200 EUR/month (this is net income after taxes, compulsory health insurance and retirement fees). I guess that Amazon is applying the national contract for the commerce sector [2] (PDF, this too in Italian) and the amount is supposed to be about 1250 EUR (you should consider the lower amount, which is what probably applies to a regular warehouse worker with little experience and no management responsability).

So from what I understand, the union is right in stating that Amazon's pay is not above the national contract.

Keep in mind that there are a number of tricks that can be used in order not the pay the official amount. For example, if you are hired as an apprentice the pay is lower. You can not be apprentice for more than 3 years, but the system can be abused, especially if the turnover is quite high. So in a way Amazon also is right when it says that it pays above average.

But in my opinion the salary is not the main issue, if what is said about the working conditions is true (not only in Italy, but also Germany and the US), those should be fixed because I think they are not healthy.

[1] [http://www.lastampa.it/2017/03/14/edizioni/vercelli/qui- ad-a...](http://www.lastampa.it/2017/03/14/edizioni/vercelli/qui-ad-amazon- tre-turni-e-uno-stipendio-da-euro-SRZaDy0KStuNc7C9LEnlbI/pagina.html) [2] [https://www.cifaitalia.it/index.php?option=com_attachments&t...](https://www.cifaitalia.it/index.php?option=com_attachments&task=download&id=4)

<comment><USER31> Why do they measure it by net income? Is everyone paying the same taxes in Italy? In my country you measure everything by gross income.

</comment></comment></comment></comment></comment></comment><comment><USER35> Black friday is a thing in Italy??

<comment><USER36> This year it's a thing in France too apparently, or at least some vendors are pushing it. See for instance amazon.fr's frontpage or even the local fnac.com. When I saw "black friday" on their landing page I thought I had gone on the american version by accident. It's odd because Thanksgiving is only something you see in American sitcoms over here.

American cultural imperialism is really impressive. I can understand why Halloween gets more and more popular over here since it's a fun holiday for kids but I can't figure out how black friday makes any sense when you don't celebrate Thanksgiving. I also don't understand why they hope to make "black friday" a positive brand when the only thing I associate it with is videos of Americans trampling each other to get cheap appliances.

<comment><USER37> Amazon is indeed actively pushing "Black Friday", and Fnac is playing catchup. But I don't know if anyone in France is aware that "Black Friday" means "discount"...?

Also, discount days are regulated in France (called "les soldes"); normally you can't have a discount day any time you want, you have to apply for authorization.

I sell on Amazon in Europe for the first time this year (started in January); I don't do discounts but am anxious to see if sales will rise this week-end.

<comment><USER38> > Also, discount days are regulated in France (called "les soldes"); normally > you can't have a discount day any time you want, you have to apply for > authorization.

What is the rationale for that?

<comment><USER39> Portugal has the same rule (and before you couldn't have them at all except in two periods in the year defined by law). The reasoning is to protect small shops from large retailers, by preventing them from forcing unplanned price wars.

Similarly, for many years the very large retailers couldn't open on Sunday afternoons, although that restriction mostly benefited the large chains of medium-sized shops, since it was based on the size of the shop rather than the company.

</comment></comment></comment></comment></comment><comment><USER40> Italy is also pushing forward with a 6% revenue tax on Amazon and similar.

</comment><comment><USER41> if you want to be profitable in binary options – do some research, watch how others trade and don't invest more than 15% of your monthly income, otherwise it can end bad? i also remember when i started binary trading, it did more harm to me than good. I lost some good amount of cash. I lost faith in the system until a friend introduced me to Ferrell, initially I had doubt entrusting him with my funds but thank goodness I did.he helped me in trading and managing of my account,with his amazing indicators and best of his best strategy i invested $350 and made $4500 in my first week .. i had my LOGIN ACCESS and i was always able to check my balance and trade records daily ..He really turned THE table around, I didn't just get back all I lost in binary but also in my life. feel free to contact Wilfred via firstname.lastname@example.com Direct phone number +1 323 701 7733 Whatsapp::::+1 323 701 7733

</comment><comment><USER32> The joint declaration from the unions (scanned, italian, pdf): [http://www.cgilpiacenza.it/imgportfolio/14/img_6/img_767969....](http://www.cgilpiacenza.it/imgportfolio/14/img_6/img_767969.pdf)

<comment><USER42> They are basically saying that they talked with Amazon management and they were open to listen but not to act in order to raise their salaries and add bonuses. The reasons why they are asked it's because they have to work nights, Sundays and have forced overtime.

The economy in Italy is really bad, most of my friends don't have jobs and those who do usually have ones who are just average pay (18k euros/year). From what I read here (an Italian newspaper: [http://www.lastampa.it/2017/03/14/edizioni/vercelli/qui- ad-a...](http://www.lastampa.it/2017/03/14/edizioni/vercelli/qui-ad-amazon- tre-turni-e-uno-stipendio-da-euro-SRZaDy0KStuNc7C9LEnlbI/pagina.html)) salaries are 1100-1200/month AFTER taxes. My dad delivers fresh fish to restaurants, he starts working at 4am every day until 1pm the next day. He works Monday through Saturday. His pay is slightly higher than that simply because he's been there for 20+ years and is now responsible for a few other things.

At least once a month there would be a strike while I was in high school, whether that was the professors, the bus drivers, the school janitors, the delivery people, etc. I don't think this is gonna be any more useful than those strikes; the difference is that Amazon can fire them, while those other strikes were "safe" because they are all state jobs which you can not be removed from. Curious to see how this plays out.

<comment><USER43> He works 37 hours at a stretch 6 days a week?

<comment><USER42> Not sure what math you are doing, but 4am - 1pm is 9 hours of work, over 6 days that's 54 hours.

<comment><USER43> "4am every day until 1pm the next day" is 37 hours if you take it literally. Mathematically this obviously can't be true. Your interpretation of "4am until 1pm the same day" is only one of many possible ways we could "fix" the sentence to mean something sensible.

</comment></comment></comment></comment></comment><comment><USER44> Is there a Black Friday in Italy? I thought this would be a purely American thing.

<comment><USER45> A bunch of companies are desperately trying to make it a thing here in Denmark, as well. By the looks of it, they jack up their prices slightly about a month in advance, and then offer crappy 20-30% "rebates" on Black Friday.

It is simply not worth it.

<comment><USER46> Fight it. There's all kinds of collateral damage.

[https://www.strongtowns.org/blackfridayparking/](https://www.strongtowns.org/blackfridayparking/)

<comment><USER45> Luckily, that isn't an issue here in Denmark. Not yet, at least.

This year, I am looking to see if a very specific configuration of laptop goes on sale on a local refurb dealer, and if it's not exactly what I want at a good (ie. heavily reduced) price, it's #buynothingday for me again this year.

</comment></comment></comment></comment><comment><USER21> I dont blame them. Wages in Germany are far to low.

</comment><comment><USER47> Woody Guthrie knew [https://youtu.be/10A0HQPLTJk](https://youtu.be/10A0HQPLTJk)

</comment><comment><USER48> Stories like this will, in the near future, be part of the story about why Brexit was NBD.

<comment><USER49> Could you elaborate?

<comment><USER50> Presumably no-one will want to strike after Brexit, due to all the Red, White and Blueness.

I dunno, maybe they think May will declare herself dictator for life and ban organised labour or something?

<comment><USER12> The majority of countries are already enacting laws/frameworks/technology that would help eventually outlaw this sort of behaviour, perhaps not explicitly, but many times implicitly. For example in Australia the govt is looking to push facial recognition cameras into public places and "only use them for serious crimes where the sentence is 3 years or more". What they fail to tell you is that in Aus, public disturbance carries something like 5 years, so now there's the very legitimate worry that facial recognition could be used on people fighting for their rights and showing support. Used the Aus example because the two countries are fairly similar law wise, and with their surveillance stances.

</comment></comment></comment></comment><comment><USER51> It's not 'black Friday' in Europe.

</comment><comment><USER52> But exactly after 5pm, they'll go home from their strike. Not a minute longer

</comment><comment><USER53> > Unions said in a statement more than 500 Amazon workers at the Piacenza site > in northern Italy had agreed to strike following a failure to negotiate > bonuses with the company.

They could not get bonuses, so they go on strike? Jeez, Amazon really needs to work on automating its warehouses ASAP, for it seems to me workers greed is becoming a problem.

</comment><comment><USER54> I know this doesn't really apply to Amazon, however I think it's irresponsible striking on the companies busiest days.

If you want to keep your job, your company needs money. If you want better wages/conditions, your company needs more money.

With that said, I do wish the strikers luck.

<comment><USER55> At some point when the company is making tons of money but is screwing its employees, the only recourse the employees have is to do damage to the company to be heard.

Amazon is already drowning in money, Bezos is the richest man on earth, even more money is not going to convince them to treat their employees better. A bit less money is not going to sink Amazon.

<comment><USER54> I know. It doesn't apply to Amazon - I wish the workers all the luck.</comment></comment></comment>


How We Estimated Our AWS Costs Before Shipping Any Code - <AUTHOR> http://blog.heapanalytics.com/how-we-estimated-our-aws-costs-before-shipping-any-code-2/

<comment><USER2> Re: Using the Last Month of Data

I hope that you are using Postgres partitions for this. Depending on your data size, you could ease sorting by date for the 'last month' by day, week or month. This will have an added benefit of requiring less ram for most of your selects and otherwise increasing the speed of your queries.

</comment><comment><USER3> What about i/o costs of traffic (outgress).

What other costs do we need to factor in on aws?

<comment><AUTHOR> For us, I/O isn't as big a cost factor, since our data processing mostly resides in ephemeral storage where I/O charges don't apply. (Our permanent data backups live in S3.)

I/O pricing _does_ apply when using EBS.

</comment></comment><comment><USER4> Neat, it's like an updated version of Tandems 5-minute rule for the cloud era.

</comment><comment><USER5> How come you haven't predicted the cost of Data Redundancy at first? This seems like something pretty basic to me.

<comment><AUTHOR> Very true. This is basic stuff, and we simply overlooked it. In the future, we might even need to add increased redundancy to our data, which we need to be aware of.</comment></comment>


These People Almost Became Famous. Until They Didn't - <AUTHOR> https://www.nytimes.com/interactive/2019/12/23/opinion/almostfamous.html <comment><USER2> Still doesn't scroll under Safari Mobile on iOS 13.1.3 on an iPhone 11 Pro.

</comment><comment><USER2> Doesn't scroll under Safari.

<comment><AUTHOR> It scrolls on Safari mobile.

<comment><USER3> It also scrolls on the Brave browser.</comment></comment></comment>


Why Nobody Should Learn to Code Alone - <AUTHOR> http://jeffmatthewsmith.tumblr.com/

<comment><USER2> OP's link goes to the homepage, full post:

[http://jeffmatthewsmith.tumblr.com/post/34995742398/why- nobo...](http://jeffmatthewsmith.tumblr.com/post/34995742398/why-nobody- should-learn-to-code-alone)</comment>


How Amazon Triggered a Robot Arms Race - <AUTHOR> http://www.bloomberg.com/news/articles/2016-06-29/how-amazon-triggered-a-robot-arms-race <comment><USER2> Komplett.no, which aims to become the Amazon of Norway (the real Amazon doesn't care about Norway), has a really cool automated warehouse (AutoStore) which seems even more advanced than Amazons:

[http://autostoresystem.com/](http://autostoresystem.com/)

[https://www.youtube.com/watch?v=_O0UKARdLDc](https://www.youtube.com/watch?v=_O0UKARdLDc) (360° video)

[http://www.tu.no/artikler/unik-video-bli-med-inn-i- kompletts...](http://www.tu.no/artikler/unik-video-bli-med-inn-i-kompletts- splitter-nye-robotlager/223905)

The packages still need to be packaged by hand though, but it seems like it would be easier to automate that for the AutoStore system since each product has its own box as opposed to Amazons Kiva system where multiple products are placed on the same shelf.

<comment><USER3> I find autostore to be a much cleaner solution than the adhoc system amazon uses. With the amazon system you need a lot more space and staff to fill those shelves. In addition you have to be careful not to load them top heavy.

<comment><USER4> The only downside I see with Autstore is building maintenance.

What about maintenance on a column? You have to stop the whole system, unload & disassemble part of the grid just to run a new cable or check for humidity or whatever on your structural columns.

That's the only downside I see. It's a very simple concept solving a very real issue and their motto "stop airhousing start warehousing" real hits home!

<comment><USER5> looking at autostore I was curious how many skus can be done efficiently and how deep you can go relative to the number of fast moving lines? With a million SKUs it might be fun to see what initial mapping can be done. Also, how can hazardous stacks be integrated to they can deliver to the same work station as regular items?

as for maintenance I would think a few strategic extra rows could serve that purpose without losing too much efficiency.

most the picking I am used to has both voice and light based picking with high velocity parts duplicated to the front.

<comment><USER6> It will depend on the size of the grid, number of positions on one level and number of robots. For fast movers, autostore can prepare those products and bring them to a few of the top levels when users are not actively picking or doing putaway. When the picking starts, those robots can get accessed to fast movers more quickly.

For maintenance, there is an extra area outside the grid where you can move the robot out of the grid to do some maintenance work on it without affecting the rest of the system.

</comment></comment></comment></comment></comment><comment><USER7> I'd wondered how Kiva's old customers were doing. Now we know. There really isn't a direct replacement for Kiva robots from another vendor.

The great thing about Kiva robots is that they're quite simple and robust mechanically. They're a battery, motors, wheels, and a lift mechanism. They're completely interchangeable, and having one fail isn't a big deal. Maintenance is replacing batteries, motors, wheels, and maybe the electronics module as necessary. The infrastructure they require is modest. The competing systems all seem to require more elaborate robots, special totes, and special shelf construction.

Amazon says that Kiva robots cut their order picking time from 90 minutes to 15. Other retailers, seeing that number, must be terrified. It's a technological improvement like that which makes same-day delivery from a large inventory possible.

<comment><USER8> And this is horrible for the market.

A company gaining a huge advantage by getting a total monopoly over another market, which they can enforce due to having patents.

That's not what patents were supposed to create, and what Antitrust regulations were supposed to prevent.

If this is the future, it's quite a dystopia: Monopolies everywhere.

Sure, I get that the Silicon Valley business model is to destroy regulation, get a monopoly (ideally in a new market niche, but destroying existing competition with illegal predatory pricing is also common), and then to abuse the monopoly, but is no one thinking that for the average consumer a free, competitive market might be better?

<comment><USER9> A monopoly is a specific thing, not just an insult to a company you don't like.

Most monopolies can only be sustained through state intervention, which is why large government is more of a problem than large companies like Amazon.

This situation is fantastic for the consumer - companies competing to lower prices and increase service.

As the story says the market has responded quickly and the industry is growing, precisely how things are supposed to work.

<comment><USER10> Monopoly is the natural end state of capitalism. Once a company is big enough it's easy to destroy or buy out all competition. It's only regulation that prevents all industries becoming monopolies over time.

You're confusing monopolies coopting government to maintain control with large government causing and maintaining monopolies.

<comment><USER9> Sorry, but no. Creative destruction is the end state of capitalism as has been proven time and time again. There are no examples of monopolies lasting more than a few years unless they have overt support from the state.

Large governments cause monopolies to happen. You said the same thing. Business co-opting a government to creat a monopoly is only possible when the large government exists. You could argue that water and dirt don't cause trees to grow, but without either there is no tree. The language definition is immaterial.

Increases in government size can only occur by taking over parts of the economy into state monopolies. The ultimate large government is a totalitarian communist government, which has a monopoly on everything.

The ultimate cure for monopoly behaviour is a smaller government and more competition by avoiding regulations that favour larger operations over smaller ones.

<comment><USER11> Standard oil? Microsoft? At a high level government and big business are very similar in scope. It's not a matter of one or the other - your analysis is too simple. Government created the baby bells, not creative destruction. Government circumscribed ms.

<comment><USER12> Standard Oil was never a monopoly, and even its 90% market share had already dropped to 70% two years later when the government even filed charged, and even more when the case was decided.

Microsoft's market position is inseparable from its support by government in the form of software patents. When their rent on Android phones is larger than their income from their own phones, and that rent is purely based on having a patent on an obsolete filesystem which is only useful because it was previously "the standard" (ie., imposed by them), the government is directly helping Microsoft take advantage from their dominant market position in other markets - exactly what they purpose to ban.

<comment><USER13> Microsoft was monopolistic in the 1990's, where they exploited their Windows monopoly to the expense of Netscape. That wasn't patents, it was market dominance.

(Not a fan of patents, but that wasn't the problem back then).

<comment><USER12> The claim I was supporting was "there are no examples of monopolies _lasting more than a few years_ unless they have overt support from the state", not that no company ever gains an overwhelming market share. Yes, IE was once at the very top. And a few years later, it wasn't, thanks to competition.

Meanwhile, the government lawsuit not only did nothing to curb their position (IE kept rising at the same rate), as it gave Microsoft "a special antitrust immunity to license Windows and other 'platform software' under contractual terms that destroy freedom of competition."[1]

[1] [http://www.unclaw.com/chin/scholarship/nando.pdf](http://www.unclaw.com/chin/scholarship/nando.pdf)

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER14> This article really overhypes the Kiva robots. I work in the warehouse automation industry for a fortune-500 retailer with several large e-commerce brands. Robotic goods-to-person is only one of many applications of robotics and automation in warehouses. It is also really only useful for certain types of long-tail operations - many SKUs, low volume per SKU. It also still very labor intensive because someone still has to pack all of those orders.

I think the Kiva robots are an important part of Amazon's fulfillment efficiency but I don't see a huge market for that technology across the warehousing industry because there are a lot of other problems that it doesn't solve at all or doesn't handle very well.

From my point of view the automated storage and retrieval and shuttle systems are much more interesting and more widely applicable. They are also a much more efficient use of vertical space.

<comment><USER15> One of the nice things about the Kiva robots is that they will actually organize the warehouse based on popularity of the SKUs automagically. Things that are low volume get placed farther away from the pickers, and things that are high volume are never far away from the pickers.

<comment><USER14> I agree that is an advantage of the goods-to-person robots but shuttle systems do the same thing and are a better use of vertical space.

<comment><USER15> What's an example of them? I'm interested to learn.

<comment><USER14> There are 5 or 6 vendors that have offerings in that space. Some of them are: Opex Perfect Pick, Dematic Mulishuttle 2, Intelligrated OLS Shuttle, Witron's OFS, SSI Schafer's Navette. These solutions are definitely more capital intensive than Kiva robots but they are faster and have a much smaller footprint.

If you have a Kiva-type goods to person robot system and your order profile changes like more lines per order or more order lines of a particular SKU, the system can run into scaling issues. There are only so many robots and so much floor space to navigate in. Shuttles to some extent have the same problem but because of their smaller footprint you run out of horizontal space slower than you do with Kiva robots.

<comment><USER16> Isn't the issue that a Kiva system is more scalable since it allows for rapid handling of far more SKUs? A key part of Amazon's retail strategy is that it's the first place you go to look for something because you know they have seemingly product on earth...they're the default e-commerce site for many. My understanding was that these shuttle-type systems simply don't allow for that. Maybe I'm wrong...if so what are the other trade-offs? Thanks

<comment><USER14> With either system you can scale in the following ways: -Add more shelving units to store more SKUs or to store more of faster moving SKUs. -Add more robots to process more order lines simultaneously. -Add more pack stations/labor

Adding more shelving units is limited by floor space. The equivalent scaling for shuttles is adding more aisles. Adding more aisles scales farther than adding more shelving units because it uses the entire vertical height of the building. Even taking mezzanines into account aisles are going to scale farther.

Adding more robots or shuttles will scale until the travel paths are congested. Whichever technology moves faster is going to scale better here. I don't know enough about the speed of the Kiva robots vs shuttles to say who is better here but I suspect shuttles can move faster.

Adding more pack stations is something either type of system can do and I can't see any advantage either system has over the other there. Kiva is probably more flexible here because you don't need expensive conveyor reconfiguration/addition if you want to add more pack stations. Shuttles, with the proper supporting conveyor can probably get higher throughput.

I think where Kiva really shines is in its flexibility. It can store a lot of different types of items and it is flexible in its ability to move stuff around. It is definitely not the most labor efficient goods-to-person automation technology and it is also not a great use of space. It runs into problems if you need to scale up in SKUs per order or overall order lines per day because you don't have enough travel space available to get all that stuff to the pack stations. Based on my ordering habits and what I have seen of friends Amazon is dealing with a very low number of SKUs per order so it works for them.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> I was reminded of how Dell originally pioneered extreme operational efficiency as the tool which made them hard to beat. I also particularly like the warehouse robotics application, it is a good mix of being able to make some adaptations in the environment to mitigate some of the more serious robotics challenges and yet able to effectively evaluate the net value to the business with and without.

Just wish I'd started a warehouse robot company 4 years ago :-)

<comment><USER18> Not too late to join one! We (Fetch Robotics) are hiring for many roles!

<comment><USER19> FYI the link on your profile, [http://fetchrobotics.com/?page_id=30](http://fetchrobotics.com/?page_id=30), is bouncing to an outdated page: [http://fetchrobotics.com/careers- old](http://fetchrobotics.com/careers-old).

<comment><USER18> Fixed. Thanks!

</comment></comment></comment></comment><comment><USER20> Amazon's acquisition of Kiva is one of the best examples of vertical integration in the e-commerce industry.

The article reminded me of acquisitions in the Gilded Age. Perhaps one could compare Bezos to Rockefeller, presuming Bezos was the one who pushed for such purchases.

<comment><USER21> For anyone yet to read the article who is initially confused (as I was), besides the Kiva you might know from microlending, there's also a Kiva who make industrial robots for warehouses. As per the article, Amazon bought the latter Kiva and forced competitors to turn to alternatives that were yet to be developed.

<comment><USER22> Thanks for that, I was initially "lost in the sauce" as it were.

</comment></comment></comment><comment><USER23> Personally, I think it's a net benefit that the picking jobs are on their way out. I don't believe most people do it for fun!

On the other hand, there's going to be short term turmoil as people scramble to find new jobs in an increasingly automated world.

<comment><USER20> I'd imagine that people who need such picking jobs would rather have them around than not.

<comment><USER24> Isn't that the point of UBI? Getting us past the local maxima of "this job is soul-crushing and a waste of a person's intelligence, but economics make it cheaper to use a body than a robot"?

<comment> tuna-piano I know many college graduates in their mid/late twenties doing various "knowledge" jobs. Many of them consider their jobs soul crushing.

Most people don't like their work. Most people don't like waking up on someone else's schedule and do work that their told to do. That's why businesses pay them, after all.

<comment><USER25> And I always thought businesses pay you because you do something which they value, and that this is sometimes soul crushing is just a coincidence.

<comment><USER26> The more a person wants to do a job, the less compensation they will demand because the emotional satisfaction they get substitutes for a part (or sometimes all) of the compensation. When there are a lot of people who have a strong preference for doing a job in a particular industry, they collectively drive down the price of their own labor into the ground.

Companies will only pay what they have to.

Some examples of industries where tons of people work for shit money (less than a person of their abilities could earn in other industries) or even sometimes for free because of an emotional attachment to that industry are showbusiness, art and academia.

Then you have the opposite examples, like working on an oil platform - most of those people would earn less money if they had picked a different industry, because they have to be paid more to agree to live on an oil platform and do a shitty and dangerous job.

</comment></comment></comment></comment></comment></comment><comment><USER27> I thought Amazon was pulling back on Kiva.

I thought I read somewhere that new warehouses were not using the Kiva systems.

<comment><USER28> They can't be used for large item warehouses and are probably not worth it for smaller warehouses. Also existing warehouses that are multilevel with plywood flooring probably can't be retrofitted easily. Since their focus seems to be on same day, one hour delivery from small urban warehouses, the majority of their new warehouses are probably not going to use kiva.

<comment><USER29> Why are they not worht for smaller warehouses ? The cost of kiva robots for amazone are per unit. Thus proportional to the size of the warehouse.

<comment><USER28> Cost of installing the system, cost of maintenance for a smaller number of bots, less dense shelving, more specialized training, lower picking costs because of smaller area. Prime now also delivers refrigerated food which probably Kiva can't do.

Probably smaller warehouses are not purpose built for Kiva so maybe they don't have power, floor space, or layout to make kiva work well. This one in Manhattan is only 40k feet and has low ceilings: [http://time.com/4159144/amazon-prime-warehouse-new-york- city...](http://time.com/4159144/amazon-prime-warehouse-new-york-city- deliveries-christmas/)

</comment></comment></comment></comment><comment><USER30> Super exciting, because of the efficiencies, but I hear echoes of manna: [http://marshallbrain.com/manna1.htm](http://marshallbrain.com/manna1.htm)

</comment><comment><USER31> Interesting. I wonder if this system and that "Hover" technology would be a good fit? A warehouse seems like one of the good places to line the floor with metal and clear the people out.

<comment><USER32> You mean the electromagnetic 'hoverboard' thing? This is probably the best bet for that tech to become relevant, but it's hard to see how it'd be more efficient than just using air cushions, which are an established way of moving heavy things around on smooth floors (let alone wheels).

<comment><USER31> That's what I was thinking of, and to be honest, don't know much about it. Maybe there's a potential maintenance advantage, given fewer moving parts?

</comment></comment></comment><comment><USER29> The innovation is great. But it is scary that amazon may start buying all these robot startups just to keep the patents and their products out of the hand of other e-commerce companies.

</comment><comment><USER33> GreyOrange ([http://www.greyorange.com](http://www.greyorange.com)) is a well funded startup solving the exact problem.

</comment><comment><USER34> Trump is right to go after Amazon on monopoly and antitrust.</comment>


Redis re-implemented in Rust - <AUTHOR> https://github.com/seppo0010/rsedis <comment><USER2> For me, Redis was the first software written in C which I could easily customize with additional features (as I have low C knowledge). It was written beautifully. I've been learning Rust, I certainly find learning Rust easier than C and I like the fact that I can dive into software written in Rust without worrying about GC. You've done the best of both worlds for me by writing Redis in Rust. With that said, I'm still having an easier time reading Redis in C over your code as you are lacking comments and well named function/variable names. I admire your work nonetheless.

<comment><USER3> That's a fair criticism, and well taken, but keep in mind I'm learning the language as I go, and most of the commits are just rewriting things because they were suboptimal, not idiomatic, or hard to read. At this stage, I would consider adding comments wasteful.

I also have no intention of making this project live as long or have as many users as Redis does.

<comment><USER4> Learning to write readable code is a good thing I think worth the effort.

Can rust be readable?

<comment><USER3> If you want good examples of Rust code, you should probably look into other repositories. Today I was checking out how Rust's HashMap works and I found it quite readable:

[https://github.com/rust- lang/rust/blob/master/src/libstd/col...](https://github.com/rust- lang/rust/blob/master/src/libstd/collections/hash/map.rs#L1115)

You can also look at `mio`, the asynchronous IO library that's popular in Rust:

[https://github.com/carllerche/mio/blob/master/src/notify.rs#...](https://github.com/carllerche/mio/blob/master/src/notify.rs#L148)

<comment><USER5> I would hardly say this is readable:

        fn search_entry_hashed<'a, K: Eq, V>(table: &'a mut RawTable<K,V>, hash: SafeHash, k: K)
            -> Entry<'a, K, V>

<comment><USER6> I don't know Rust, and the only thing opaque to me in that line is the `'a` syntax. I suppose it is related to memory safety.

In plain English:

`search_entry_hashed` is a parametric function. It works in a type safe way on any kind of K and V. It takes as arguments a reference to a mutable hash table, a hash function and a key, and returns an `Entry` object whose precise type depends on the type of the parameters.

You could hardly express that more succinctly. You can't understand it by skimming it, but it is a complex definition.

<comment> Tuna-Fish Your guess about 'a is correct. 'a is here used to signify that the return value can only be safely used while the value table exists and is not being concurrently modified. This implies that the value is not copied on return, but only a reference into the table is returned.

<comment><USER6> I'm surprised that RawTable isn't parametrized on the type of hash function. Something like this (possibly wrong way to express it, but you get the idea)

        fn search_entry_hashed<'a, K: Eq, V, H: SafeHash>(table: &'a mut RawTable<K,V,H>, hash: H, k: K)
            -> Entry<'a, K, V>

<comment><USER7> RawTable doesn't have to be because the hash function has already been computed at that point. The actual hash table is.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> Before anyone starts using this as a Redis replacement on Windows as the readme suggests, take a look at the TODO file. Notable missing features include:

\- maxmemory key eviction

\- hash values

\- ~2/3 of the set operators

\- multi/exec

\- lua scripting

This is an interesting and potentially useful effort, but a replacement for Redis it is not.

<comment><USER9> By the way, if you are looking for a production-quality Windows port of Redis, there is a fork available at [https://github.com/MSOpenTech/redis](https://github.com/MSOpenTech/redis). We (Microsoft) provide it in production as Azure's cache service today, and are committed to continuing to work on it.

<comment><USER10> Are you part of the Azure cache service? I was an intern the the Edge Caching and Storage team and joining back fulltime next month. If things are the same way they were it would be worth it exploring using Redis for our cache and I'd like to talk details.

<comment><USER9> I am not, but I work with them closely. If you'd like to talk to the team involved, send me (shankun_at_microsoft_com) your email and I'll connect you up!

</comment></comment></comment></comment><comment><USER11> Since this seems to be just a learning project, note as well that there exist Rust bindings to Redis itself, from Armin Ronacher (though I'm not sure if they've yet been updated to work on 1.0): [https://github.com/mitsuhiko/redis- rs](https://github.com/mitsuhiko/redis-rs)

<comment><USER12> Yep, works with 1.0.

</comment></comment><comment><USER13> The readme says its a learning project.

Its a very interesting piece of work though.

I'll be interested to see Antirez's view on the trade-offs between C and Rust for this.

<comment><USER3> He is at least curious. [https://twitter.com/antirez/status/611189939519229952](https://twitter.com/antirez/status/611189939519229952)

</comment></comment><comment><USER14> Could somebody give me a tl;dr on Redis? I keep hearing about it but from the summary I can't tell what kind of applications it is being used for.

<comment><USER15> From their official github page, Redis is an in-memory database that persists on disk. The data model is key-value, but many different kind of values are supported: Strings, Lists, Sets, Sorted Sets, Hashes, HyperLogLogs, Bitmaps.

It simply means that the key-value store is directly loaded into the memory (RAM) and is available for fast access, but the data is retained (persistent) even after the application is closed.

It is usually used as cache store, queuing messages to communicate with different processes locally or distributed.

<comment><USER16> To add to that, Redis is a TCP server so you can speak to it from multiple processes on multiple machines (and Redis will easily support huge loads)

Its data structure cover a good part of what you'd need with generic data structures, which makes Redis an easy way to do the logic of, say, List intersection of friends common between multiple people, sorted set of goods ranked by their amount, all of this shared with other processes.

Redis also offers pubsub capabilities in two forms:

\- A standard PUB/SUB couple which does what you think it does

\- Blocking pop on a list for a client, and a push for another client, which will "wake up" the first one with the value.

It's a very versatile swiss knife.

</comment></comment></comment><comment><USER17> I was just thinking, that Rust is a great candidate for big data processing tools. So much more than Java (which is annoyingly used a lot there). Something like Spark and HDFS should be implemented in Rust.

<comment><USER18> The more cores you have and the more RAM, the bigger advantage GC has. The thing with having lots of RAM is that it's very hard to take advantage of it with on-stack data (which can, at most, use about 1-2% of the total RAM available -- do the math) and thread-local heaps. Once you use thread-local heaps/arenas, you need to shard your data. Any cross-shard access would mean locking, which doesn't scale very well. That's exactly where GCs shine: they let you have scalable, concurrent access to data with arbitrary lifespan. That's why Java is used for those kind of applications -- it performs and scales much better than Rust can hope to do on large machines.

You are right, though, that if the processing is extremely "batchy" and all data dies at the same time, then it doesn't make a difference.

<comment><USER17> _> That's why Java is used for those kind of applications_

I'm not convinced that's the reason why Java is used for it. There are native alternatives like HPCC which claim to perform better.

As was noted, concurrent access to shared data is not something very common in such distributed computation scenario. Well designed processing will avoid it, and thus will avoid need for locking as well.

<comment><USER18> > There are native alternatives like HPCC which claim to perform better.

The goal with performance is almost never to get the maximum possible performance but the best peformance/effort ratio for your needs. This is true even for performance-critical applications. As there are diminishing returns, every increase in performance costs more than the previous. Very, very few applications are willing to invest an extra 30-50% effort to go from 98% (of maximum performance) to 100%.

As to concurrent access -- see my other comment (depends on use-case).

</comment></comment></comment></comment><comment><USER19> Impressive!

Could someone (or OP) elaborate on the value that re-implementing a whole software to a new language provide comparatively to just building an interface "bridging" both worlds?

To clarify, my metric for "value" is usefulness to other people. That is, without considering the (interesting) learning opportunity that it represent for the author.

For example, someone developed a Python interface to the Stanford Core-NLP library (written in Java). Would re-writing the Core NLP library to Python be useful to the community? How to figure what are people needs?

I am asking because while I think it would be ton of fun and allow me to learn a lot, I also value building useful software and re-writing a whole system sounds like an overkill except for a few very niche cases..

And if I am not mistaken you would need a team at least as large as the parent project to implement new features, fix bugs and keep pace with it. Looking forward to hear what HNers think!

edit: clarified ambiguities

<comment><USER20> The README answers this:

      To learn Rust.

Edit: It also mentions not being tied to UNIX and appears to claim it will run on Windows. That's certainly something.

<comment><USER19> Sorry if I wasn't clear, but I am looking for a more general answer! I would like to know in which case it is useful (to other people) and discuss it's value comparatively to writing interfaces to other languages.

<comment><USER3> I had no intention of making the end result useful, but I run into interesting problems.

First, I wanted to make it as pure Rust as possible. I tried to avoid UNIX specific code, and since there is no library with Windows support for asynchronous IO in Rust, I was pushed into spawning thread and blocking waiting for client data. I quickly noticed that the benchmark was way below Redis (around 60% of ops/sec with 50 clients). But then someone point out to me[1] that I was running tests in a machine with two cores, and this actually may be better for machines with multiple cores[2]. I have yet to try it out and benchmark the results.

So far Rust API was disappointing for network operations. For example, `TcpStream.read()`[3] and `TcpListener.incoming()`[4] do not have a timeout. Maybe because its development is driven for Servo and not for servers.

I have thought about doubling down on multithreading and instead of a global database lock as rsedis is using now, having one per key (or some other arbitrary partition), and having concurrent operations, which is hard to do safely in C. But I have not gotten there yet.

[1] [https://github.com/jonhoo/rucache/issues/2](https://github.com/jonhoo/rucache/issues/2)

[2] [https://github.com/jonhoo/volley/](https://github.com/jonhoo/volley/)

[3] [http://doc.rust- lang.org/1.0.0-beta/std/net/struct.TcpStream...](http://doc.rust- lang.org/1.0.0-beta/std/net/struct.TcpStream.html)

[4] [http://doc.rust- lang.org/1.0.0-beta/std/net/struct.TcpListen...](http://doc.rust- lang.org/1.0.0-beta/std/net/struct.TcpListener.html)

<comment><USER21>
        > Maybe because its development is driven for Servo
        > and not for servers.

This is not true at all. If Rust's development were determined by Servo, we would have kept green threads and implemented struct inheritance by now.

The reason timeouts were dropped is in the IO/OS reform RFC: [https://github.com/rust- lang/rfcs/blob/8fa971a670f9b9bc30f31...](https://github.com/rust- lang/rfcs/blob/8fa971a670f9b9bc30f31bed30b9c3b679ea1ad3/text/0517-io-os- reform.md#tcp)

        >  set_timeout has been removed for now (as well as other
        > timeout-related functions). It is likely that this may
        >  come back soon as a binding to setsockopt to the
        > SO_RCVTIMEO and SO_SNDTIMEO options. This RFC does not
        >  currently proposed adding them just yet, however.

And on UDP:

        > All timeout support is removed. This may come back in
        > the form of setsockopt (as with TCP streams) or with
        > a more general implementation of select.

I'm on shaky wifi and my phone, so I can't find a citation for this, but I also believe it was removed due to 1) Rust not having any stable representation of time and 2) needing to shim certain behaviors on some platforms, which we decided wouldn't happen in the first round of stable interfaces.

That said, the lack here certainly hurts, and we did manage to stabilize Duration, paving the way for timeouts to return.

EDIT: Oh! I forgot that [https://github.com/rust- lang/rfcs/pull/1047](https://github.com/rust-lang/rfcs/pull/1047) got merged recently. [https://github.com/rust- lang/rust/issues/25818](https://github.com/rust-lang/rust/issues/25818) implemented it. [http://doc.rust- lang.org/nightly/std/net/struct.TcpStream.ht...](http://doc.rust- lang.org/nightly/std/net/struct.TcpStream.html#method.read_timeout) shows it implemented on nightly, so you can actually even do timeouts today, just not on the stable channel.

<comment><USER3> Thanks for the clarification. I wanted to subscribe to rust's internals debates and proposals, but I was not sure how to find them. Should I be looking at [https://github.com/rust-lang/rfcs](https://github.com/rust- lang/rfcs) or is there anywhere else?

<comment><USER21> There's a few stages:

1\. We keep open issues on that repo to track ideas.

2\. At some point, someone may decide to formally propose an idea. They may or may not post a "pre-RFC" to internals.rust-lang.org to get early feedback.

3\. An actual RFC will get filed at that repo as a PR.

4\. The relevant sub team will check it out and comment, and at some point, consensus will be reached either way.

5\. The RFC will go to 'last call' for a week, making sure all voices have been heard.

6\. Assuming nothing in last call blocks moving forward, the RFC will be accepted.

7\. The RFC will be implemented.

So, in short, yes, subscribing to that repo will notify you of the relevant discussions.

</comment></comment></comment></comment></comment></comment></comment><comment><USER22> I like this kind of project. But the use case of redis it's a little bit exstream, I mean that the main feature of redis is the speed and the way how the memory consuption is handled. If this requirements are not satisfied, it is only a very good way to learn Rust( as the author goal) and the redis internal.

</comment><comment><USER23> So how do you re-implement something like Redis in another language? Is it more of a translation job or do you start with splitting the concepts and try to implement it. Or take the idea and go your own way with implementing it?

</comment><comment><USER24> I'm try the same thing for similar reasons in Go, but I'm wondering if at some point a Go version would perform better than C. On a machine with a large number of cores, perhaps?

GitHub.com/sudhirj/restis

Also wondering if some rethinking is possible - would a HTTP interface a la DynamoDB be more useful? Can complexity and performance be increased by using a purely memory backend with no disk persistence? If there were pluggable back ends would a Postgres or DynamoDB back end be more useful for terabytes / petabytes of data? Is the beauty of Redis the API or the implementation?

<comment><USER25> > but I'm wondering if at some point a Go version would perform better than C.

The answer is "no" with a certain amount of probability. Redis isn't single threaded by lack of capability, but by design. Concurrency for multiple CPUs will actually _slow down_ a lot of the stuff you see, as you will need to introduce locking mechanisms.

Also, garbage collection is highly tuned and customized in Redis to the use case of an in-memory-DB (in stark contrast to usual allocation patterns of an application), up to the point where it's almost impossible to replicate the performance in a garbage collected language.

I love Go and we're a 100% Go (and Angular) shop, but for an in-memory DB it wouldn't be a sane choice.

</comment></comment><comment><USER26> Spectacular! Could you add synchronous replication though? And coalescing queries (so that entire system processes queries in batches, say 300 times per second)?

</comment><comment><USER27> Why would someone do that? To what end? Why isn't anyone re-writing Redis in assembler to have it kick ass like pros? Can you write Windows in rust?

<comment><USER28> What I'm personally really surprised about is that nobody's rewriting Redis as a unikernel to clear away all the OS context-switching/networking overhead from its basic operations.

<comment><USER7> Redis is already leaving plenty of performance on the table, e.g. by not having any concurrent shared memory data structures (the fastest concurrent hash tables achieve better throughput even on inserts than the fastest single- threaded ones). It does this in the name of implementation simplicity. People focused on implementation simplicity don't generally abandon the operating system.

<comment><USER28> People run Redis mostly in Linux-in-a-VM (with Redis being the only "user- serving" process) already, though, no? I would think Redis-as-the-entire-VM would be less to think about, operation-wise, at least if your cloud or data- center templates its VMs with something like EC2 AMIs. You would just launch a "Redis appliance" AMI and move on.

It's a feeling less of maintaining boxes, and more equivalent to paying a Redis-as-a-Service provider.

</comment></comment></comment></comment><comment><USER29> Man you should have named it Rudis

</comment><comment><USER30> Is it compatible with the .rdb redis dumps?

</comment><comment><USER31> Care to post details about this? Is this actually fast? Does it implement all features and guarantees of redis? Should anybody actually use this in production (maybe because it works on Windows)? Is it well tested?

Looks like a really cool effort but authors of open source projects often think people would read the code and figure out all, the truth is people usually look at what's in the readme and that's all the attention span most people are going to have. My 2c: improve your README.md.

<comment><USER32> He links a list of missing stuff in the readme.

And if you read "Why? To learn rust" and ask "should I use this in production"...</comment></comment>


A Simple Scheme Compiler (1997) - <AUTHOR> https://www.cs.utexas.edu/ftp/garbage/cs345/schintro-v14/schintro_142.html#SEC271 <comment><USER2> Ghuloum's scheme compiler tutorial essentially follows a useful process: [http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf](http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf). It starts with emitting x86 machine code for constants, then unary and binary primitives, local variables, conditionals, heap allocation, procedure calls, and finally closures. It helps that Scheme has little to no parser to speak of, but it is straightforward to extend the technique to a language that does.

</comment><comment><USER3> The book this is from (follow the contents link) is dated 1997, which I find very disappointing. I think it is part of Paul Wilson's garbage collection archive. It was apparently intended to go from an introduction to Scheme all the way to implementation details. Unfortunately, it was never finished.

<comment><USER4> You might like "Lisp In Small Pieces", which starts from a simple Lisp-1 interpreter to a Lisp-2 to C transport.

<comment><USER5> With a bytecode compiler, multiple implementation approaches, and a couple of macrosystems dissected along the line. Though, LiSP is geared a bit more towards Scheme semantics rather than pragmatics. _There are_ some details like closures, and dynamic binding, and call/cc, but you won't find truly gnarly details on garbage collection, value representation, threads, etc. Nevertheless, it's still an amazing book which I would recommend reading!

<comment><USER6> Fair enough. I heard that John Anatomy of Lisp might have more details. Do you know books talking about the topics you mentionned ?

<comment><USER7> I would like to know as well. I would also be interested in opinions about "Lisp system implementation by Nils M Holm". I tried to read "Lisp in small pieces" at least 3 times but never managed to go further than the 1st chapter. I find the prose pedantic and often it doesn't go straight to the point that is the objective of the chapter. Maybe this is an issue due to the translation from French. In any case I find it a very heavy read. I have the feeling that the contents of the book could be easily condensed in half the pages.

<comment><USER8> I've also attempted it several times. If I were not so burnt out on programming at the moment (WFH is not a vacation, and I desperately need one) I'd probably have made it through this last time. Maybe, like all those SICP study groups, someone should make a LiSP study group to help keep people engaged and moving.

<comment><USER6> what part are you stuck on ?

<comment><USER8> Actually, I was making good headway with this last attempt. I just burned out on programming (generally), not specific to the text. And since I don't want to program right now, there's no point in trying to progress through the book. An earlier attempt failed entirely because of that ( _reading_ and not _doing_ ), other times I stalled out because I just didn't understand it.

Generally I've found more advanced material requires a lot of "steeping" in my mind before it clicks. I was literally in my 4th year of college before Calculus finally actually clicked in my brain, this book seems to have the same issue. My first couple times I just didn't understand what I was reading, and I put it down (for many years actually, time flies). When I picked it up this time I honestly don't know what my issue was with comprehending it before. In the intervening years I did a much deeper dive into using Common Lisp as my hobby language, and I think that's helped a lot. What I'm reading connects better with the practice I've had in using a Lisp. Similar to calculus, I had spent a couple years applying it (not just studying it) and when I went back and reexamined some basic materials everything just fell into place in my mind.

<comment><USER6> Same here. Time did half the work. Revisiting the book every year or so made me click.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Why Experts Reject Creativity - <AUTHOR> http://www.theatlantic.com/business/archive/2014/10/why-new-ideas-fail/381275/

<comment><USER2> I don't know what this article's chances are of making the front page of HN -- late Friday evening is not a great time -- but it should. It bears on everything from how to pitch investore, to Peter Thiel's observation that there seem to be fewer big scientific breakthroughs in recent years.</comment>


Evergreen, highly scalable library software with GPL - <AUTHOR> https://evergreen-ils.org/about-us/ <comment><USER2> My library uses this. They have a 3pm batch job that grinds the system to a halt for 2 hours.

I remind myself of that whenever I am going to build a new system...no matter how many nice features that has, if you don't have it take care of itself in off people will hate it because they will be staring at the same UI elements barely changing for 2 hours.

So use sensible scheduled batch job timings!

<comment><USER3> > My library uses this. They have a 3pm batch job that grinds the system to a > halt for 2 hours.

What did they say when you told them this?

</comment></comment><comment><USER4> My library uses this and it works well enough, but the library is not that large yet the performance is often laggy. Odd to see them touting its scalability.

</comment><comment><USER5> I wish they'd picked an original name. So confusing: [https://github.com/search?q=evergreen](https://github.com/search?q=evergreen)

<comment><USER6> It's been around for almost 15 years.

</comment></comment><comment><USER7> Can't be worse than Primo.</comment>


Memory growth is being removed from asm.js - <AUTHOR> https://groups.google.com/forum/m/#!topic/emscripten-discuss/09E_WEk193E <comment><USER2> It's weird to me to see this upvoted on HN.

1\. I doubt most people here are using (or have used) asm.js, let alone memory growth.

2\. Maybe people think some major feature is being removed from asm.js (not really, will expand below).

3\. Maybe people are confusing asm.js with WebAssembly?

4\. This will be in Web Assembly, see post's point #2.

Emscripten-emitted-code has a fixed size memory space (static memory, stack, heap). Heap size can grow, via sbrk, but if you moved the program break past the end of the Typed Array the code used as memory space, Emscripten could create a new Typed Array, copy over all data from the old to the new, free the old, and continue executing with data in the new. That process was memory growth, and was very slow. In practice, you never really needed it, since you could run your program a few times, see what the high water mark of your heap was, then set the precise size at compile time.

Memory growth was helpful if you wanted to start up faster, but could potentially have non-deterministic memory growth (though you'd still be limited to 32b address space).

<comment><USER3> > In practice, you never really needed it, since you could run your program a > few times, see what the high water mark of your heap was, then set the > precise size at compile time.

How would this work with anything that has unknown runtime memory cost? Say an editor of any kind? Like an image editor with undo buffers.

<comment><USER4> Exactly. For my uses (AI systems), variable memory was the thing which moved asm.js from a cute toy to a system I can genuinely use.

</comment></comment></comment><comment><USER5> Aside from a few game demos, is anyone using asm.js in production systems?

<comment><USER6> The 3D features on [https://secure.imvu.com/next/](https://secure.imvu.com/next/) do. (You must be logged in to see them.)</comment></comment>


General Motors Developed a Competing Standard to Ethernet That Almost Won - <AUTHOR> https://en.wikipedia.org/wiki/Manufacturing_Automation_Protocol <comment><USER2> I worked with token ring, but not token bus. Back in the day you had to sit exams to show an understanding of the electrical characteristics of networking. I remember the realisation that packets are not really send down a wire, instead the wire segment basically pulses the binary.

</comment><comment><USER3> And FIP bus lost out to ProfiBus, despite arguably being better. And Profinet supposedly led to OPC and so on.

Due to FIP bus having time stamping capabilities it was used at Cern and so eventually Cern ended up buying the rights to it and the FIP chip etc, but almost no one uses it today. Occasionally you come across a legacy industrial FIP network.

Betamax's are everywhere...</comment>


Ask HN: Startup School Europe: were invitations sent? - <AUTHOR>

Invitations were supposed to be sent on July 1st.<p>I didn't get one so far, have others received them? <comment><USER2> They're going out this morning, PT. Thanks for your patience.

<comment><USER3> Still no emails, and no information on [https://news.ycombinator.com/susrsvp](https://news.ycombinator.com/susrsvp)

</comment></comment><comment><USER4> The delay was my bad. Sorry!

Everyone with a valid email address should have received some kind of response. Unfortunately we don't have room to accommodate everyone :(

People who applied with bogus emails - Why did you bother?

<comment><USER5> Just got an invite, thank you!

</comment></comment><comment><USER6> Nothing so far in my email and also no happy tweets, probably not.

</comment><comment><USER7> Does anyone have a link to the application for Startup School? What's the criteria for being selected to go?

</comment><comment><USER5> I applied, but nothing yet.

</comment><comment><USER8> Received my invitation about ten minutes ago. So excited!

</comment><comment><USER9> I applied, but I've not been sent an invite yet.

<comment><USER9> Now my invitation has arrived, I've very excited.

</comment></comment><comment><USER10> Neither do I. Still no invitation yet.

</comment><comment><USER11> Just received my invitation as well!

</comment><comment><USER12> None yet!

</comment><comment><USER13> Nothing here either.

</comment><comment><USER14> about how many invitations are sent?

</comment><comment><USER15> Nope.

</comment><comment><USER16> Nope

</comment><comment><USER17> Received.

</comment><comment><USER18> Not yet.</comment>


How do you organize The Library of Babel? - <AUTHOR>

Suppose you come across a digital copy of The Library of Babel, as described by Jorge Luis Borges. Your computer can instantly sort the vast data.
Q: How do you optimize a process to find truth-containing volumes? If you find the Authentic Volume, how do you organize the information it contains?
Though the majority of the books in this universe are pure gibberish, the library also must contain, somewhere, every coherent book ever written, or that might ever be written, and every possible permutation or slightly erroneous version of every one of those books. The narrator notes that the library must contain all useful information, including predictions of the future, biographies of any person, and translations of every book in all languages.
https://en.wikipedia.org/wiki/The_Library_of_Babel <comment><USER2> I would argue that the library contains no information at all based on the fact that its entire inventory could be generated by a very short program. It couldn't have much of a card catalog either because the index number for each book would have to be as long as the whole book (on average, within a constant factor), so it would be impossible for a user of the library to make an information profit. I remember reading something along these lines decades ago when I used to be interested in philosophy but I can't remember the reference. It may have been something by Dennett but would predate the reference given in the article.

</comment><comment><USER3> Not sure, but it would probably involve a request for donations from Jimmy Wales.

</comment><comment><USER4> If I recall, truth was indistinguishable from gibberish (a matter of interpretation), therefore; it's all gibberish and organizing gibberish is a fruitless endeavor</comment>


Side-by-side comparison of AWS, Google Compute Engine and Rackspace - <AUTHOR> http://www.stackdriver.com/cassandra-aws-gce-rackspace/

<comment><USER2> I wish things like this had been around when Localytics was making its technology decisions. It would have saved us doing a lot of this investigation ourselves.

<comment><USER3> It's a pity the article didn't get more attention.</comment></comment>


Tools don't matter - <AUTHOR> http://www.indiangeek.net/2009/11/16/tools-dont-matter/

<comment><USER2> I don't think you can make a decision like the author has unless and until you compare yourself to a good programmer who's using the possibly better tool. And by compare I mean watch him at work and how he does things, a bit in the direction of pair programming.</comment>


IBM Completes 1 Century - <AUTHOR> http://www.youtube.com/watch?feature=player_embedded&v=39jtNUGgmd4

<comment><USER2> June 2011 will be the actual century mark. They have quite a few things to be proud about.</comment>


Obama campaign sells email list to pay off campaign debt - <AUTHOR> http://www.politico.com/story/2015/09/obama-campaign-debt-2012-dnc-214026 <comment><USER2> What happens if the campaign goes bankrupt?</comment>


Never Seen Before Photos of Steve Jobs (1985-2000) - <AUTHOR> http://techcrunch.com/gallery/never-before-seen-photos-of-steve-jobs-from-1985-2000/

<comment><USER2> These were on display at the Computer History Museum in Mountain View in August. They're interesting close-up, because of all the little details in the background.</comment>


Saving Detroit: It's the Cars, Stupid - <AUTHOR> http://www.pbs.org/cringely/pulpit/2008/pulpit_20081126_005507.html

<comment><USER2> Put yourself in my position: in England, which has very few totally local car manufacturers.

I'd buy a German car if I got rich (VW, BMW, Audi, Mercedes), a Japanese car (Toyota, Honda), even a French car (Peugeot or Citroen) if I don't. If I won the lottery I'd think of an Italian sportscar.

But an American car, what possible use would I have for one of those?

Change that.

</comment><comment><USER3> its not the cars, its the legacy.

Domestic cars are pretty much associated with crap by default. Detroit can come out with a car thats faster, better looking, more fuel efficient, more luxurious, more reliable and cheaper than a honda civic. And most people would still buy a civic over it.

Why? Because they either owned or know someone who owned a domestic product in the past that turned out to be crap.

<comment><USER4> _Why? Because they either owned or know someone who owned a domestic product in the past_

Or rented. Seems like almost every car I rent is a GM, and I always notice something flaky or broken about it (which is sad considering they rarely have more than 20,000 miles or so).

I own a Toyota, but ended up driving someone else's Chevy for a while this weekend. I couldn't believe how cheap all of the components felt, not to mention how much my body ached after driving it for 2.5 hours.

<comment><USER5> That's always been GM's problem. They have perfectly fine designs, but have always been built shoddy. They build a reliable car, and then sabotage it by stuffing it full of ill-fitting plastic interior parts.

Every GM car I've been in recently has felt cheap. You know, interior materials don't cost that much - however much they are saving on this construction is nothing compared to how bad it makes them look.

I know many people who work in the automotives field, and the general consensus is that GM uses the worst production methodology out of them all. Parts have high tolerances (i.e. shaky, loose, poor fitting) and that leads to shoddy assembly, which weakens reliability of an otherwise sound design, and generally just feels like junk.

If GM tightened their manufacturing tolerances they would do wonders for themselves.

<comment><USER6> I agree with your summary - but why have they even survived this long with such shoddy workmanship?

GM's have been poorly built for at least 10 years. Same with Ford.

My father owned an auto repair shop, and there seemed to be a big gap in quality between the old vehicles and the new starting in the early 80s. The old cars were tanks - built simply and reliably. The new cars much cheaper and poorly constructed, focusing on form over function.

Back then Toyotas and Hondas seemed to be in their own class. The same old reliability, but built cheaper. They were ugly and didn't have many bells and whistles, but they ran forever. Since then the quality gap has remained, but Toyota/Honda have also overtaken the rest in style too.

</comment></comment></comment></comment><comment><USER7> Cringely actually tried to design his own plane in 30 days in an interesting PBS documentary:

<http://www.amazon.com/Plane-Crazy-3pc-Gift-Set/dp/B00003A9RW>

 _Join Robert X. Cringely, computer industry gossip columnist and high-tech gadfly as he sets out to design, build and fly an airplane in 30 days_

</comment><comment><USER8> _The new design would have to carry two people and luggage, have an empty weight of no more than 625 lbs. and use an 85-horsepower engine._

The biggest differentiator between cars and planes (as far as construction goes) is crashes. That changes both weight and price in a non-trivial way.</comment>