Pony ORM - Use Pure Python to Speak to Your Data - <AUTHOR> http://ponyorm.com/ <comment><USER2> Hi, I'm Alexander Kozlovsky, one of Pony ORM authors. I'll try to answer some questions

> why such an obsession with "pure" Python?

With this statement we are trying to say Pony is not just to offer some syntax sugar. The end goal of Pony ORM is to understand the semantic of each Python generator which can be translated to database query and then do translation accordingly.

The direct benefit of this is that generator query are more high-level then resulted SQL, and can be much easier to understand and refactor. The simplest example is an automatic converting of attribute path traversing such as grade.student.group.department.name to a minimal set of SQL joins. Pony also can use attribute path in reverse direction, from "one" to "many", such as department.groups.students.gpa, which in this case resulted in a multiset of all 'gpa' values for this department. Also you can see examples of query optimization in the documentation, for example when the subquery is converted to LEFT JOIN with GROUP BY, where it can give performance benefit.

There are more distant benefits of the semantic translation. In future, we plan to add support of denormalized database schemas. Such denormalization will take place on a physical level (i.e. in the database) while on the logical level (in Python) all queries and logic will remain the same. But first of all we are going to add the migration support.

Another future plan is to add support of MongoDB. This is a distant plan, but I think Pony architecture will allow this. After that, migration of PonyORM- based project from relational databases to noSQL and vice versa will be possible.

> An ORM like Django's offers a higher level of abstraction

I disagree with this. I think, any Django query can be written in PonyORM much more concisely, and there are easy-to-understand PonyORM queries which cannot be expressed in Django easily.

Also, Pony ORM completely eliminates N+1 select problem.

</comment><comment><USER3> This has a split licensing model. <http://ponyorm.com/license-and- pricing.html>

<comment><USER4> >Free for non-commercial usage: Creative Commons Attribution-NonCommercial 3.0 License

Beware! CC licenses are _not_ for software, and it actually makes it incompatible with GPL. Alexander and Alexey, please see [http://wiki.creativecommons.org/Frequently_Asked_Questions#C...](http://wiki.creativecommons.org/Frequently_Asked_Questions#Can_I_apply_a_Creative_Commons_license_to_software.3F)

<comment><USER5> The NonCommercial part makes it _not_ open source, and _not_ libre software. Both the OSI and the FSF clearly state that FLOSS software has to allow commercial use for it to qualify.

</comment></comment></comment><comment><USER6> I'm not very familiar with the culture of the Python community so this might come across as offending, but why such an obsession with "pure" Python?

On one extreme, of course, there are spaghetti apps that mix PHP, HTML, CSS, JS, shell, and SQL in the same file. We all know and hate those apps. But is there any reason to jump to the other extreme and turn as much as possible into "pure" $LANGUAGE ?

As soon as your query gets moderately complicated, you're still littering Python with SQL keywords like order_by(), desc(), select(), and commit(). The GROUP BY section of the documentation just reads like a rough translation of SQL into Python, the only difference being the syntax. It's like watching a first-week ESL student try to construct sentences in English.

The documentation advertises that "Pony allows any programmer to write complex and effective queries against a database, even without being an expert in SQL." I don't think this is true for any ORM I've seen so far, whether in Python or in any other popular language. Beyond a certain level of complexity, you need to know SQL in order to write complex queries. But if you already know SQL, why translate long GROUP BY ... HAVING queries into Python only to have the ORM translate it back into SQL? Why are we trying so hard to avoid writing SQL? What are we going to do next? Write a library that translates pure Python into Lua scripts for your Redis server?

I like ORMs because they simplify frequent tasks, like grabbing a dozen items from the database and filtering them by a couple of columns. I also like them because they often come with caching and effective protections against SQL injection attacks. But I also think that purity is overrated. Both web apps and native apps are already a mixture of several different languages, both on the frontend and on the backend. Don't be afraid to add SQL to your belt, it's just another language.

(By the way, why is there an order_by() method and a separate orderby() method?)

<comment><USER7> > I'm not very familiar with the culture of the Python community so this might > come across as offending, but why such an obsession with "pure" Python?

I think it refers to the implementation, meaning the library has no C modules and is written 100% in Python.

This means it should be able to run on all Python implementations, including Jython, IronPython, PyPy, Google App Engine...

<comment><USER8> I'm Alexey Malashkevich, one of the Pony ORM authors. For now Pony ORM runs on CPython only because there is no access to frames in other implementations. "Pure Python" means that you can write queries in term of objects using Python generators.

<comment><USER7> OK, thanks. But isn't it the point of all ORMs? Why the emphasis on pure?

<comment><USER8> Pure in this case means that you can use Python syntax in order to query a database. This way a database query looks identical to an iteration over a list of Python objects.

</comment></comment></comment></comment></comment><comment><USER9> I really like the style of this. I remember seeing LINQ years ago and wondering if something like it was possible in Python. I was disappointed when it looked like it couldn't be done, but generating an AST then translating to SQL is smart.

It seems from this thread not many people appreciate the parity of:

        list(o for o in Item if o.price>3)

when Item is a normal in-memory Python iterable, and:

        select(o for o in Item if o.price>3)

when Item is a row in a database.

After just helping someone get started that was new to Python and Django, it was weird helping them learn list comprehensions and generators and then having to teach such a divergent form of syntax to work with the Django ORM even though the a lot of the concepts should be similar.

<comment><USER10> you might mean "when Item is a table in a database" instead of "a row in a database". `o` would be the row.

</comment></comment><comment><USER11> It will be very interesting to see, if this can be a commercial success, and a good example to learn from.

In competition with Django ORM and Sqlalchemy, both of which are open source and battle tested, they will have to do some cutting edge marketing to justify the cost "per process".

The idea is great. We might see something like this pop up in Sqlalchemy or Django real soon...

<comment><USER12> SQLAlchemy comes with SQLSoup: not as 'pure' but the abstraction overhead is low and the interface is very similar

</comment></comment><comment><USER13> How does it translate generator expressions? Some kind of byte-code magic?

<comment><USER14> It appears to build an AST from the code object on the generator, and then translate to SQL.

[https://github.com/ponyorm/pony/blob/orm/pony/orm/decompilin...](https://github.com/ponyorm/pony/blob/orm/pony/orm/decompiling.py)

[https://github.com/ponyorm/pony/blob/orm/pony/orm/asttransla...](https://github.com/ponyorm/pony/blob/orm/pony/orm/asttranslation.py)

</comment></comment><comment><USER15> This definitely reminds me of LINQ (never having used it).

As much as I dislike things like this that translate a language into another, but not quite _right_ , as you have one syntax trying to mimic a completely different one, you _do_ (or could) get the benefit of the possibility of autocompletion, syntax highlighting and lint checks.

I know that adding something like LINQ in Python is completely out of the question, as you'd have a special syntax case, and I agree with that.

For some time I've wondered how hard would it be to reverse traverse the Python AST to find literal strings that are being passed to a dbapi2 interface, and syntax highlight/lint/autocomplete the SQL on those strings. This gets there by bypassing the "Language is in a string" issue.

<comment><USER16> I've used LINQ very often and I can say it's been superb. I can't compare it to sql because I don't really know sql though.

<comment><USER17> You're pretty lucky that you haven't had to know SQL to have good luck.

Having used Linq2SQL for a few years, I don't like this style of coding. Often, to optimize a query, we've had to look at the generated SQL and then reverse engineer it back to Linq to get the SQL that we wanted. While certain queries were really easy in Linq2SQL, the more complex ones were extremely difficult. I had to still understand and write the underlying SQL, then I had to figure out how to "translate" that into the Linq2SQL. In the long run, all time savings were nullified. I see the same with a DSL-type of wrapper like this.

Additionally, almost all good backend devs speak SQL, I can take a Java-person and without the Linq2SQL stuff, he could understand our backend, work on queries, etc. The Linq just added another layer of complexity for someone to think about.

(Granted, there's a database layer that we could truly put a lot of that stuff in, if our queries got really complex)

<comment><USER16> I haven't used linq2SQL or anything, just LINQ on collections in .NET.

A team I'm a part of (language is C#) had to get rid of a library that handled SQL and do the SQL manually because the library was making a lot of inefficient calls. Sounds like a similar problem.

</comment></comment></comment></comment><comment> mh- unfortunately the confusing licensing circumstances will probably hamper some of the interest in this.

i'm not opposed to commercial licensing, it's just that the existing combination of options doesn't offer clear legal guarantees.

if you go to the website, the split-licensing is apparent - yet has issues with, what seems like, improper use of Creative Commons licensing.

if you go to the github repo, the only license presented is AGPLv3.

are people who find the repo on github directly at risk of violating the license?

<comment><USER8> Thanks for pointing this out, we are working on the licensing part now. We are not going to put anyone at risk of the licence misuse. Eventually we are going to have a multiple licensing model allow using Pony ORM for free for non- commercial and open source projects, but in the same provide a commercial license as well.

> are people who find the repo on github directly at risk of violating the > license?

Nope, why? Using it under AGPL is a valid option.

</comment></comment><comment><USER18> .NET has had this since 2006. LINQ to SQL and Entity Framework both support LINQ expressions. The problem is that more and more .NET devs are shunning it when working their relational database. There is an adage that if you're working with SQL then you should just be writing directly in SQL. Everything else is second rate.

<comment><USER19> As long as an ORM allows you to break out and right custom optimised SQL when needed, then I see no reason to write _all_ your SQL by hand. ORMs are great for covering basic, repetitive queries, but there are times where it's not producing what you need. Of course you then loose the portability feature of ORMs, but I think this is acceptable. The biggest advantage for me isn't generation of SQL, it's mapping data back into your domain model/DTOs.

</comment></comment><comment><USER20> From the sample on the front page

      SELECT "c"."id"
      FROM "Customer" "c"
        LEFT JOIN "Order" "order-1"
          ON "c"."id" = "order-1"."customer"
      GROUP BY "c"."id"
      HAVING coalesce(SUM("order-1"."total_price"), 0) > 1000

is translated into

      select(c for c in Customer
               if sum(c.orders.price) > 1000)

How does the python version handle nulls? They are explicitly coalesced into 0s in SQL. In python sum([1,numpy.NaN]) evaluates to nan. I think this code will do something wrong.

I am not sure what flavor of SQL is beind used, but why are the table names and the field names surrounded by double quotes? They make the query look unnecesierily hairy.

Good job otherwise. Always glad to see people contributing to the community.

<comment><USER2> No, it is the other way, Python is translated to SQL, not vice versa ;)

According to SQL standard, aggregate functions must skip NULL values. The problem is with queries which return no rows. In this case, intuitive expected result of SUM aggregate function is zero, but, because of some quirk in SQL standard, SUM must return NULL if no rows were found.

Without coalesce function, result of SUM will be returned as None if no rows were found. Coalesce replaces this surprising None with zero.

<comment><USER20> Duh, of course. This is what happens when I don't read the explanation and just grab on to the first pieces of code I see.

Thanks.

</comment></comment></comment><comment><USER21> I've enjoyed using Peewee[1] as a lightweight ORM for Python - mainly for scripting data manipulation on legacy databases but it does the job nicely. How does Pony ORM compare?

[1] <https://github.com/coleifer/peewee>

<comment><USER2> I have not used Peewee, but at first sight the most visible difference is the query syntax - Peewee uses method chaining, whereas Pony ORM decompiles Python AST. I think that many queries can look simpler in Pony than in Pewee.

For example, if I want to retrieve all pairs of different users with the same name, in Pony this query would look as follow:

        select((u1, u2) for u1 in User for u2 in User if u1.name == u2.name and u1 != u2)

In Peewee, this query probably would look something like this (didn't test it):

        User2 = User.alias()
        User.select(User, User2).join(User2).where((User.name == User2.name) & (User.id != User2.id))

It's probable the matter of taste, but I like Pony syntax better. Another example is taken from the Peewee doc:

        staff_users = User.select().where(is_staff=True)
        Tweet.select().where(~(Tweet.user << staff_users))

In Pony, this query would look as follow:

        select(t for t in Tweet if t.user not in (u for u in User if u.is_staff))

Also, this simple version is possible, don't know why it is not as simple in Peewee

        select(t for t in tweet if not t.user.is_staff)

Also, I don't know if Peewee supports IdentityMap and optimistics transactions.

On there other side, it seems Peewee already has migration support, whereas in Pony migrations are not implemented yet, this is the next task.

</comment></comment><comment><USER22> Its so much easier to do this in something like Python, Scala, Ruby... or just about any language other than Java. I built my own ORM (but uses Immutable objects) in Java that uses a fluent DSL. Is it good... no it sucks compared to what Scala and even .NET offer.

But then I thought screw that... SQL is a pretty good language so why not just make writing real SQL easier: [https://github.com/agentgt/jirm/tree/master/jirm-core#sql- pl...](https://github.com/agentgt/jirm/tree/master/jirm-core#sql-placeholder- parser)

</comment><comment><USER23> I have solved a similar problem in a similar way (<https://github.com/cjauvin/little_pger>) by creating a very thin wrapper just above psycopg2, allowing to assemble SQL queries with kwargs and plain data structures.

</comment><comment><USER24> A little off topic, but the visual editor reminded me of <http://dbpatterns.com/> <https://github.com/fatiherikli/dbpatterns> Maybe you could join forces.

<comment><USER8> Thank you, will check this out.

</comment></comment><comment><USER25> It looks very cool, and as others said, it immediately reminded me of LINQ. But I wonder if there is too much magic going on for Pony to ever become widely adopted by the Python community. Regardless, nice work!

</comment><comment><USER26> What is the purpose of this?

If you set up the an SQL Alchemy properly you can achieve the same thing.

If you wish complain about django then yes this sort of fixes it but it may break more than it fixes.

SQL Alchemy is free and better.

<comment><USER2> SQL Alchemy is fundamentally based on a relational model and translates queries to SQL. Pony ORM is based on an entity-relationship model, which is logically independent from SQL. Currently Pony translates queries to SQL only, but in the future noSQL support is also planned.

</comment></comment><comment><USER27> This looks really nice. Korma serves as an interesting halfway point for those that use Clojure.

<http://sqlkorma.com/>

</comment><comment><USER28> What intrigues me is the Diagram Editor. Why else would someone use this over SQLAlchmey, Storm or even Django's ORM?

</comment><comment><USER29> Ok, you use this and now you can't even use solutions from Bill Karwin book...

</comment><comment><USER30> This seems very close to what PHP does. The difference is that PHP doesn't have so many ways to express itself so it's all done with method-chaining.

In my opinion, this is the way to write the core of an ORM and it should allow to use this abstraction layer too! It's somewhat between SQL queries as strings and ORM-level, I think.

<comment><USER6> PHP doesn't have a built-in ORM. Which framework/library are you talking about?

<comment><USER30> Not anything super specific. Kohana, for example, has ORM that uses that-alike way to built queries. And, as far as I know, it's ORM is built on top of that. I think that ORMs should have something like that in them instead of SQL queries as strings.

<comment><USER31> I think the selling point of Pony ORM is that you can write variable and literals instead of string.

Django:

        Item.objects.filter(price__gt=3)

Pony ORM:

        select(o for o in Item if o.price>3)

Peewee:

        Item.select().where(Item.price>3)

Kohana:

        $Item->where('price', '>', 3)->find();

You see, the __gt or '>' here is kind of stupid.</comment></comment></comment></comment>


Tor: The second generation onion router – annotated version - <AUTHOR> http://fermatslibrary.com/s/tor-the-second-generation-onion-router <comment><USER2> I am looking forward to Hornet[0]. The authors haven't put a PoC out yet. It is described decently in a recent mailing list post[1] (and impl[2]) on a BitCoin decentralizing project. A quality project might take the speed of the Hornet protocol, the tor hidden services approach, remove the exit node concept, make everyone a relay, and incentivize bandwidth sharing.

0 - [http://arxiv.org/pdf/1507.05724v1.pdf](http://arxiv.org/pdf/1507.05724v1.pdf) 1 - [http://lists.linuxfoundation.org/pipermail/lightning- dev/201...](http://lists.linuxfoundation.org/pipermail/lightning- dev/2015-December/000384.html) 2 - [https://github.com/LightningNetwork/lightning- onion](https://github.com/LightningNetwork/lightning-onion)

<comment><USER3> Sadly, I don't think we will witness a working implementation of Hornet anytime soon. Hornet was designed to be implemented at the core Internet infrastructure in order to operate at the network level. It is practically -impossible- to achieve this level of migration (remember IPv6). Moreover, it requires the deployment of a PKI on an unprecedented scale, which may or may not be secure. However, it's true that some ideas might be extracted and used in other future projects.

</comment></comment><comment><USER4> Messed up text formatting on Chrome for Android (CyanogenMod 13).

[http://i.imgur.com/2Mcv5a5.png](http://i.imgur.com/2Mcv5a5.png)

<comment><USER5> Same on FF44.

Nice intended but in the end very annoying reader.

</comment></comment><comment><USER6> PDF link: [https://svn.torproject.org/svn/projects/design-paper/tor- des...](https://svn.torproject.org/svn/projects/design-paper/tor-design.pdf)

</comment><comment><USER7> The Onion routing protocol is not as anonymous as you think it is. Whoever controls the exit nodes is the one who controls the traffic.

<comment><USER8> Wrong. The exit-node might control the traffic but that does not know where you came from. You need to watch the connection into the torrnetwork as well.

When you connect to https its pretty hard and risky for the exit node. If the user uses https with pinning its even harder and more risky.

The Tor Network is not perfect, nothing is in this space. So you need to make a more detailed analysis then yours to evaluate it.</comment></comment>


Show HN: Nova helps salespeople write personalized emails at scale - <AUTHOR> http://www.nova.ai <comment><AUTHOR> Hey all, Will here, co-creator of Nova. We're just opening up Nova for sign- ups and we wanted to get the HN community's feedback.

The idea is that our product helps salespeople write fewer, more empathetic/higher quality emails and get better results than by just sending templates to thousands of people (which is what most companies these days actually do).

I saw the benefit of personalizing emails at CloudFlare, but it took way too much time and didn't scale. Nonetheless, personalization drove significant improvements in engagement and general positivity. We created Nova to solve the problem.

Love to get any feedback on the tech, the idea, etc. Open to any and all suggestions. Thanks!</comment>


Show HN: An elegant Ruby on Rails solution for development progress.  - <AUTHOR> http://www.railstracker.com

<comment><AUTHOR> The engine is designed for your end users in mind and for them to track a particular Github issue. A kanban style wouldn't really be beneficial since end users are just tracking items(not as a developer working on them).

</comment><comment><USER2> Cool idea, it might benefit from a Kanban style for the UI</comment>


Jay O'Callahan: The Power of Storytelling - <AUTHOR> http://the99percent.com/videos/6857/Jay-OCallahan-The-Power-of-Storytelling

<comment><AUTHOR> NASA hires a story teller to tell their 50 year story.

His story about Armstrong's moon landing was compelling, but I connected more with the one about Casals and the young cellist. Casals asks the cellist to play this and that, the cellist is mortified at his mistakes, and mentions the evening to Casals years later.

Casals tells the now more experienced cellist that he wasn't noticing the mistakes, he was noticing the things he did right and the things he did remarkably. Only idiots point out nothing but mistakes, it's up to us to notice and celebrate the beauty.

This has been a lesson for me that I've been learning for years, slowly, that when I see a story or some other creation, appreciate it first for the intent and sincerity. If the context requires it, then certainly provide constructive criticism, but don't let the criticism hide the essence.</comment>


Ask HN: Best free tier PaaS? - <AUTHOR>

For the longest time I would point to heroku, but now that they're obviously pinching pennies I've decided to take a second look at the landscape.
I'm having a hard time finding a good offering anywhere else. My main criteria is to be able to simultaneously host many small projects, and easily scale if/when one succeeds.
AppFog was the closest one I've found that makes sense, but their model of having all your apps share resources makes pricing confusing.
EngineYard looks OK as well, but their pricing is also a bit weird and also seems too complex.
I like process based pricing, because its easy for me to see how much something is going to cost me. <comment><USER2> Hi, why does it have to be for free? hosting resources cost money.

find some more alternatives here: [http://blog.fortrabbit.com/comparing-cloud- hosting-platforms...](http://blog.fortrabbit.com/comparing-cloud-hosting- platforms/)

plug: i am co-founder of fortrabbit (PaaS).</comment>


I measured hundreds of Levi's jeans and compared how every pair fits - <AUTHOR> https://www.tryfitfirst.com/home/every-levis-fit-number-compared <comment><USER2> Interesting article and a large amount of research into something that is often way more opaque than it should be.

However I'd also like to point out that with large companies like Levi's there are often fit discrepancies as large as an inch between 'identical' items of the same style, size, color, etc. This is why I would advise most people to buy clothes in a retail shop if at all possible.

This comes down to two things.

1\. Making clothes at such large scale and at a low cost means there are many corners cut in terms of precision, in both cutting and sewing. See this short video [1] to get an idea of how this process works.

2\. Levi's and other large companies don't own their production. Instead they contract (and then subcontract) to large numbers of both 'conventional' factories and piece-work workshops often as small as just some machines in someone's living room. These companies make such large orders that no single factory could ever cover them, so batches of 'identical' products are sourced from a large number of producers, even multiple countries at times. Of course there are SLAs about the spec that must be met for each garment but the reality is that it diverges enormously.

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

<comment><AUTHOR> Thanks for checking out the article and writing a thoughtful follow-up comment. I knew Levi's didn't own their own production, but I wasn't aware that they outsourced to tiny manufacturing operations (ie piece-work workshops) as well as conventional factories.

On the subject of manufacturing/fit discrepancies, it might be interesting for me to write a follow-up piece on my measuring process and what I learned about garment manufacturing from measuring. Here's a little preview of my process and of what I learned about Levi's specifically.

The measurements that I used to write the article are my best estimate for the intended jean specs, rather than an average across measurements taken from multiple jeans in the same size or from a sample of one jean per line. What I did was measure jeans in multiple sizes and colorways from each line. The goal was to get an idea for what Levi's grading rules are (how each pant measurement, like the thighs, changed from size-to-size), as well as how often there were deviations from the grading rules (due to manufacturing tolerance) and if there are any noticeable variations in measurements by colorway or manufacturing location.

Compared to most other brands, Levi's rarely had egregious manufacturing problems. That is, every measurement I took was within a 1" margin of error from the measurement specs I tried to reverse engineer. Moreover, out of the eight measurements I took per pant, I found that on average only one of those measurements was off-spec and even then on average it was never off by more than 1". On the other hand, brands like Goodfellow & Co from Target were way worse (I basically had to give up on some of the pant lines).

The most surprising thing I found is that Levi's does not seem to intentionally change their measurements color-by-color (so dark blue jeans have the same intended measurements as light ones). This might be an even bigger issue for perceived garment fit than having a 1" manufacturing tolerance. Dyes affect how people perceive fit because the dying process affects the feel of the garment, so on average darker clothes feel lighter than lighter clothes made from the same materials with the same measurements.

After doing all this measuring, my big takeaway about the challenges with clothing fit is that it's fundamentally a communication problem, not precision problem. Take manufacturing tolerance, for example. An inch off in some places can be a real problem, like for the waistband of jeans, but for the most part it's not too much of an issue. For example, the difference between every measurement on the leg of the Levi's Skinny and Slim jeans is 1.75". An inch difference in one part of the leg won't completely transform the fit. The real problem with how apparel is sold is that all these details, like manufacturing tolerance, are opaque and swept under the rug. If consumers better information about things like fit, they could at least more confidently make a purchase (or choose not to make one).

Anyway, that's my rant! I'll probably write a follow-up that more coherently pieces some of those points together :-)

<comment><USER3> Wow, I'm impressed at the work you put into this!

I wonder if you'd be willing to open source your measurements. As a stats nerd I'd love to build some models with that data, just for fun.

</comment></comment></comment><comment><USER4> I wish I could try some of these but as far as I can tell Levis only makes 501s in my size (32x36). Tall and lanky problems.

<comment><AUTHOR> Just a heads up: I'll be adding the 501's to the post soon.

I didn't even think about adding something on available sizes (which fit numbers come in short/long lengths or smaller/bigger waists). I should add that!

In the meantime, I checked to see which Levi's I've measured do come in length 36 for a size 32, and there are a handful of them: * Levi's 505 Regular Fit * Levi's 514 Straight Fit * Levi's 527 Boot Cut Fit * Levi's 541 Athletic Fit Unfortunately there isn't too much variety, given that the 501's are also a regular seat/straight leg, but the 505/514's should fit a bit different and come in 32x36, so they might be worth a try!

<comment><USER4> Wow, thanks man. Really appreciate that.</comment></comment></comment>


New EU regulation strengthens hand of developers in dealings with storefronts - <AUTHOR> https://www.mcvuk.com/business-news/new-eu-regulation-strengthens-hand-of-developers-and-publishers-in-dealings-with-storefronts/ <comment><USER2> EDIT: I was concerned this might prevent malware from getting weeded out, but there are rational carve-outs if you dig a little deeper in:

> The various exceptions to the 30-day notice period can in particular arise > in connection with illicit or inappropriate content, the safety of a good or > service, counterfeiting, fraud, malware, spam, data breaches, other > cybersecurity risks or suitability of the good or service to minors.

Original Post

\</comment><comment></comment><comment>-

I'm a bit concerned that "Article 4" will protect malware and fraudulent software from being removed:

> Platforms will have to provide 30 days notice to publishers before removing > content from stores, allowing them time to appeal or make changes to their > software. So no immediate and opaque bans (article 4).

Minimizing malware is one of the selling points of App Stores, and this seems to kneecap that to some extent.

<comment><USER3> I don't really like the: "inappropriate content" that's the kind of language which allows American companies to apply an American sense of moral onto countries with completely different ideas of what is inappropriate.

<comment><USER4> That is something fundamental essentially for better or worse - it is their right. Even if their objections are stupid or morally wrong they have real impacts they have to be conscious of.

Not having it would effectively render markets mutually exclusive as the terms are "do something which would cause a shitstorm here" like saying they can't take down a Zwarte Pete face swap app. The law prohibiting it would turn it into an international incident as a "EU demands a right to profit from blackface" scandal and nobody wins.

<comment><USER5> The people who want to use apps that violate American morals win, that's enough. Sure, there may be a shitstorm or two, but that will pass once people get used to the law.

<comment><USER6> Do you live in the States? ... That is NOT how that would go down.

<comment><USER5> Seriously? Would there be a shitstorm for years?

<comment><USER7> I think that would depend on who was offended and to what degree. Consider that Christianity is still quite a thing here, and while there aren't many killings for criticism of Jesus, people will boycott.

<comment><USER5> Maybe they will. But ultimately, the opinions of Americans shouldn't determine European policies.

<comment><USER6> I think you forget how serious Americans are about free speech. Trying to force an American company to allow Lolli or cub content(just an example) on their platform won't end well. " the opinions of Americans shouldn't determine European policies." The issue here is that's not how international politics works. Unless you don't see an issue with forcing someone of another culture to do something they find to be morally evil.

<comment><USER5> They aren't forced to allow anything on their platforms unless they want to provide it in Europe. And what their platforms look like in other countries is those countries' business of course.

> I think you forget how serious Americans are about free speech.

I'm also serious about free speech which is why I don't want unelected capitalists to restrict it.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> This is good news. App stores are more like an employer these days. Sure, "Don't depend on an App Store alone", but if you apply the same logic to worker rules, you have hire and fire.

The app stores are maturing and so comes regulation into play.

<comment><USER9> This should be broader though, and apply to any kind of platform, from food delivery to ride sharing.

<comment><USER10> Afaict, this _does_ apply to all online platforms.

From the definitions:

(2) 'online intermediation services' means services which meet all of the following requirements:

(a) they constitute information society services within the meaning of point (b) of Article 1(1) of Directive (EU) 2015/1535 of the European Parliament and of the Council (12);

(b) they allow business users to offer goods or services to consumers, with a view to facilitating the initiating of direct transactions between those business users and consumers, irrespective of where those transactions are ultimately concluded;

(c) they are provided to business users on the basis of contractual relationships between the provider of those services and business users which offer goods or services to consumers;

IANAL, of course.

</comment></comment></comment><comment><USER11> "Platforms will have to provide 30 days notice to publishers before removing content from stores"

This happend to me a few times with one particular app on Google Play Store and a company I worked for.

In all cases the app was removed from the store without any prior notice and very limited information on why it was removed in the first place. To make it worse, it took days to get a reply back which felt to be build out of predefined text blocks and did not address the questions nor solution.

Apple on the other hand always provided great feedback and offered solutions and never simply took an app from the store.

Hence I welcome this change greatly. Also noteworthy, the apps in question were absolutely clean and were to please the users. No spam, spy, advertisements boosters.

Lets just hope this 30 day rule does not apply to the numerous bad apps, those should be removed more quickly and in fact not even approved in the first place.

</comment><comment><USER12> I wonder if this will apply simply to Apple Developer accounts? Currently if a developer wishes to ship products outside the App Store they are still stuck with the hard requirement to have an active developer account in order to notarise their software. If for whatever reason Apple decides to shutter a developer account (something I've witnessed recently [1]) then they are SOOL if they want to release for recent macOS versions.

[1] [https://forum.juce.com/t/apple-developer-support-is- unreacha...](https://forum.juce.com/t/apple-developer-support-is- unreachable/40611)

</comment><comment><USER13> Just a thought, but why doesn't the EU (and only the EU has the will for this) have a government funded storefront for all apps. Then make Google and Apple add this storefront as an app on par with Play Store and App Store on all their devices. Sounds much more efficient than creating regulation after regulation

<comment><USER14> In my oppinion EU governments already have their thumbs in more pies than they should.

I think a more interesting point is how EU companies can hope to compete with the likes of Google if non-EU companies can effectively subsidise their EU operations by using revenue from more profitable markets. The EU is most certainly profitable to operate in, it is the wealthiest block on earth. It's just that margins are slimmer and cost of business is higher.

Heavy regulation of local comanies forces either heavy subsidies (basically all r&d in Europe is 50%+ subsidised) or a Chinese style blanket ban on competition.

<comment><USER15> We actually get fairly good value for our tax dollar, as EU citizens.

I am both American and an EU citizen. While I love the United States dearly, I have a safer, more stable life working in the EU.

<comment><USER14> I've also lived in the US and now Europe. Don't get me wrong, each had it's pros and cons; as an individual both my purchasing power and quality of life was better in the US.

Outside of universal education and healthcare, my conclusion is that the value of the European tax dollar is unfairly distributed. At the local level, European grants and subsidies create jobs for educated people who chose the right course of study. At the Eurozone level, you have the northern "export based" economies essentially using a devalued currency to outcompete the southern countries. Relatively that means more tax dollars for the northern countries, when ideally those would be spread somewhat evenly across Europe.

I think Europe needs a technocratic tool that makes the economic performance of all countries everyone's problem. Denmark has an unemployment and retraining scheme called a-kasse that is reasonably well implemented. I could see a centrally funded, Europe wide implementation could be a solution.

<comment><USER15> Thank you for this comment. I really do believe this is spot on.

</comment></comment></comment></comment></comment><comment><USER16> > Unfair B2B market practices can be tackled, but only if game developers and > publishers talk about them. EGDF calls all game developers and publishers to > report any unfair treatment they receive

Report then where?

<comment><USER17> To the EGDF for starters...

And if this law passes, to EU authorities...

</comment></comment><comment><USER18> If developers didn't use them in the first place, this problem could have been non-existent. I am glad that desktop has fended off tries to establish software stores, although I don't think we have seen the last of it.

Still, I think this is good regulation. We have seen random bans from apps that didn't hit the correct taste and a mechanism to appeal is surely needed.

I get that mobile developers don't have much choice if the want to monetize their software, but at least we should keep these ecosystems to unproductive devices.

<comment><USER19> I wastly prefer App Store on desktop too. Most of my software is in the same place. I can see which apps I have installed on a particular machine and which I do not. I can install it on multiple machines. It is updated automatically.

</comment></comment><comment><USER20> After loosely reading over the regulation, I can't see anything limiting it to games in particular. I realize that the GI.biz article would focus on the impact that it would have on games developers & publishers, but as a mobile application developer my self I am more interested in the impact this will have on the EU ecosystem overall on both stores.

</comment><comment><USER21> It'll be interesting to see how long it will be until the policies are made available as per these regulations. These companies are not going to do this without a fight, so someone will have to take them to court first.

Sadly, I think we're several years away from actually getting this information.

</comment><comment><USER22> "Member states are not obligated to provide for ex officio enforcement or to impose fines"

Move along, nothing to see here...

<comment><USER23> It still allows the developers to sue, as well trade associations etc.

<comment><USER24> Sue to whom? There is no EU court you could directly sue to.

<comment><USER25> Literally from europa.eu:

> Regulations are legal acts that apply automatically and uniformly to all EU > countries as soon as they enter into force, without needing to be transposed > into national law. They are binding in their entirety on all EU countries.

And:

> Public authorities in EU Member States have the main responsibility for the > application of EU law.

<comment><USER24> I knew the citation, but thank you anyways. When you actually try with the local court you'll find out it's not as clear cut as it is on the EU website and the local court will adhere only to local codified law. My country's government is in opposition to some of regulations and the courts can't do anything about it.

<comment> T-A [https://europa.eu/european-union/about-eu/institutions- bodie...](https://europa.eu/european-union/about-eu/institutions-bodies/court- justice_en)

<comment><USER24> Yeah, there is some procedure with this court and the government going on regarding a single issue, other issues are waiting in queue. It has been 5 years and still nothing. Note that a person/corporation can't sue to this court.

<comment> T-A From the linked page:

"any person or company who has had their interests harmed as a result of the action or inaction of the EU or its staff can take action against them through the Court"

<comment><USER24> Interesting, I missed that. I will look into it more closely, thanks.</comment></comment></comment></comment></comment></comment></comment></comment></comment>


Manage processes programmatically with PM2 - <AUTHOR> http://getkeymetrics.com/2014/07/02/manage-processes-programmatically-with-pm2/

<comment><USER2> Great work. This is exactly what I had been idly wondering about yesterday as I was setting up a new project that uses PM2. Does this obviate the need for pm2-interface, or will that project still be developed with a focus on the RPC angle?</comment>


Slider.js: Slideshows with jQuery, CSS Transitions and Canvas - <AUTHOR> http://greweb.fr/slider/

<comment><USER2> His flexible-nav jquery library he is using on the demo page looks actually more interesting than the slider.js itself - <http://demo.greweb.fr/flexible- nav/>

<comment><USER3> Reminded me of the navigation on a javascript documentation website posted a little while ago : <http://bonsaiden.github.com/JavaScript-Garden/>

I am seeing more and more of these all over the place and I think they are great for long pages! Would love to see more of them instead of table of contents on documentation websites (for example, using something similar on a site like the HTML5 spec : <http://www.w3.org/TR/html5/> would make the navigation a lot more efficient)

</comment></comment><comment><USER4> Very nice! There are a lot of rotator plugins out there, but yours seems very complete and robust. I will definitely be using this in future projects since our clients always want more fancy sliders. Thanks again!

<comment><USER5> What business are your clients in? I tend to think of slideshow transitions as something users find enjoyable only for a very short time. (I run a photosharing site -- <http://ourdoings.com/> \-- where I recently redid the slideshow to use photoswipe, which works well on touch devices but does not do fancy transitions.)

<comment><USER4> Our clients are typically churches and small business who like to have banners on their home pages. There's always something "featured" that they want to show off.

<comment><USER5> That use case makes sense to me -- a quick attention-getter.

</comment></comment></comment></comment><comment><USER6> Bummer, the images display not at all with JavaScript turned off and there's no way to link to a specific image. Degrade gracefully y'all.

<comment><USER7> Are you really demanding that the author of an open source javascript project to supply non-javascript code to make your website backwards compatible? You've gotta be kidding me.

That's not his responsibilty at all. Try contributing to an open source project instead of complaining.

<comment><USER6> Yep, I absolutely expect that. Especially on the example page.

<comment><AUTHOR> Problem solved:

It's very easy to handle a Javascript fallback for Slider.js: Instead of having an empty container in which your slider will be templated, put the content for the non-javascript into it.

That's it ;) Just because the Slider Javascript will empty the content of it ;)

(Side thought: maybe I'm wrong, but in 2011, are we still need a JS backwards?)

</comment></comment></comment></comment><comment><USER8> As a ux / design type person, I'm turned off by the design of the prev, next and slide selectors.

I know that's not the main purpose of the JS library, however, I'd spend a little time making it look pretty:

Here are some ideas: <http://dribbble.com/search?q=slideshow>

Great work though so far!

<comment><AUTHOR> Thanks for your ideas! The slider engine is here, you are free to style it :)

</comment></comment><comment><USER9> This is just great, huge potential, looking forward to giving it a try. Congrats to author!</comment>


Satellite IR data may have predicted Japan earthquake - <AUTHOR> http://www.technologyreview.com/blog/arxiv/26773/?p1=blogs

<comment><USER2> I certainly hope they can continue to collect the data. This article doesn't seem to mention it, but I wonder what kinds of false-positives come out of this method, or if otherwise the noise can be factored out, and if the whole thing can be measured. Pretty compelling that in my lifetime I've seen both better tsunami and tornado warnings... maybe not the best, but way better than being in the complete dark even just 20 years ago.

<comment><USER3> Earthquakes are really hard (if not possible) to predict. At least so it was until now. I would never have thought that we will be able to predict earthquakes once, even if only a few hours before the hazardous event.

Unfortunately, I don't think this data is cheap enough to produce for most countries. It is expensive and as you said, it may produce some false alerts. However I would love to see in the coming months and years that this data is made publicly available in real time. I am pretty sure that making it available to the public would also permit more discoveries and correlations to be made.

</comment></comment><comment><USER4> Isn't a much larger data set needed to rule out coincidence?</comment>


Bug Labs - Open Source Hardware: A very awesome moddable handheld - <AUTHOR> http://www.techcrunch.com/2007/11/01/first-pics-of-bug-labs-open-source-hardware/

<comment><USER2> I like the idea but it's hard to make something that is generic enough to be useful, easy to use and not too expensive: you can't both provide a complete framework and promote quick prototyping of innovative devices (by definition, a framework is constraining).

At the moment, it looks like a few expensive blocks that, once assembled, don't do more than some high-end phones.

Microcontroller programming is not necessarily complicated; there are easy to use tools that let you focus on the application (Arduino boards and IDEs, MikroElektronika boards and IDEs, PICbasic/Propeller modules, PSoC Express, etc.)

</comment><comment><USER3> For some reason I imagined these things would be way bigger! It's even cooler than I thought.</comment>


FIFA 2014 World Cup live stream architecture - <AUTHOR> http://leandromoreira.com.br/2015/04/26/fifa-2014-world-cup-live-stream-architecture/

<comment><USER2> Interesting post! The author mentions that the first step was to "receive this input and to generate HLS output to a known folder". I have a couple questions about this step:

1: Did they re-encode the input? Or just repackage it?

2: I'm unfamiliar with EvoStream, but if it is ingesting RTMP and outputting HLS, why did Globo need to bother generating an HLS manifest? Couldn't they just use the one EvoStream created?

<comment><USER3> I am glad you liked. I am not the author of the blog post, but I was a member of the team.

1: We just repackage it. 2: The problem is that EvoStream stores the manifests and chunks locally and we needed high availability. That's why we use an external data storage. We have had up to 30 simultaneous streams, with 7 bitrates each and 2 hours of DVR.

<comment><USER4> Just adding one extra information, building the playlist on our side enabled us to define the DVR window (how many time one can seek back on the video). Since we built both the server and client side, it was also possible to add tags to the stream and we did it. tl;dr; It was possible to control the adaptive streaming on the server side.

When our CDN was very crowded, one tag on the HLS playlist was able to direct users to a lower quality, preventing all the users to fight for the same bandwidth and avoiding rebuffering events.

</comment></comment></comment><comment><USER5> Honestly - one of the most informative, well written, extremely well referenced articles I've read literally in years. This article will teach me more than I've learned in a long time. Thank you very much for your contributions..

</comment><comment><USER6> Just like everyone else, I really liked the article. And of course I have some questions.

What is the benefit of EvoStream over nginx-rtmp? I use nginx-rtmp as well and it creates HLS files just fine.

Also, how did you handle the network load? How many edge servers were actually delivering the content to users?

Did you use 10G ethernets, link bonding, or did you use cloud services (eg cloudfront) to deliver the content?

Thanks a lot.

<comment><AUTHOR> * We initially picked EMS because of its API, but we're moving to nginx-rtmp.

* We used 20G ethernet, we could get 19G from each machine.

* All the content is hosted by us.

<comment><USER6> Thank you for your answer. Appreciate it and best wishes.

</comment></comment></comment><comment><USER7> My favorite type of article, thanks! Even better when the stuff they're using is open source so I can check it out for myself.

</comment><comment><USER8> It is rewarding working at globo.com with such skilled engineers and great solutions, in almost every area. Congrats to Leandro, Juarez, and everybody involved.

</comment><comment><USER9> Thanks for sharing this! How long was your team given to complete this project?

      Cassandra response time was increasing with load to a certain point where clients started to timeout and the video playback completely stopped.

and

      After these changes, we were able to achieve a latency in the order of 10ms for our 99% percentile.

How did you test this? Are there any benchmarking/load testing tools for cases such as streaming?

<comment><AUTHOR> If I'm not wrong, we start to access that around 1y but I think we really spent 7-10m on it.

You can send metrics from Cassandra to graphite [http://www.datastax.com/dev/blog/pluggable-metrics- reporting...](http://www.datastax.com/dev/blog/pluggable-metrics-reporting-in- cassandra-2-0-2)

Since the streaming is similar to HTTP page flow, it's not that hard.

Ex: [http://blazemeter.com/blog/how-load-test-http-live-media- str...](http://blazemeter.com/blog/how-load-test-http-live-media-streaming- hls-jmeter)

</comment></comment><comment><USER10> It feels like they reinvented the wheel on a lot of things (especially on the monitoring side). I also wish there was some more detail about the caching/endpoint side of things. We rely heavily on Akamai's services for their edge servers, caching, and site acceleration. I don't see anything like that here, but maybe they're just not mentioning it?

<comment><AUTHOR> We only implemented the dashboard (getting data from all kinds of source) on monitoring side, we relied on: logtash, graphite, elasticsearch...

The architecture up from what was described is almost purely to provide caching capabilities, aka bunch of edge servers caching content to final users.

</comment></comment><comment><USER11> Seems like quite a complex solution for 500,000 concurrent users.

Why not just use Akamai for RTMP ingest and delivery? From my experience they can do all that was described and at scale.

<comment><AUTHOR> Please keep in mind that FIFA14 was one event, we still broadcast many other events and channels simultaneously ( private and public).

About why chose HLS over RTMP, in our experiments HLS showed to be easier to scale than RTMP (maybe because the latter is stateful + the current players don't have an optimized adaptive bitrate algorithm + it's easier to scale http over rtmp)

<comment><USER11> Yes agree, but Akamai can also transcode and repackage to HLS. We've used this at SportsLabs[1] to stream tens of thousands of sports events.

[1] [http://sportslabs.com/](http://sportslabs.com/)

</comment></comment></comment><comment><USER12> Working in the TV industry myself, the uninevitable question on DRM springs to mind. Was these streams encrypted as well somewhere along the described process?

</comment><comment><USER13> A great example of use the powerful and free tools. Congratulations, great article.

</comment><comment><USER14> Great experience, thanks for sharing.

</comment><comment><USER15> Wonderful job, guys. Will you broadcast Olympics? What will change for this one?

<comment><AUTHOR> Yes, for sure. :) Probably, there will be some changes but we're going to discovery some of them ongoing.

</comment></comment><comment><USER4> beautiful! congratulations for sharing this to the community.

</comment><comment><USER16> Really well written article! Learned a lot, also happy that it came from Brazil :)

</comment><comment><USER17> Here's all you need to know about this company (Globo): [https://www.youtube.com/watch?v=77TKLQ1op34](https://www.youtube.com/watch?v=77TKLQ1op34)

This documentary is still banned in Brazil and can't be broadcast offline anywhere.

<comment><USER18> This documentary is very old and pre-dates the internet.

There's no denying the extent of Globo's influence. But, compared to the 80's, it's merely a shadow of it's former self. Probably because of the internet. Also, there are other communication vehicles fighting for eyeballs now.

Politics aside, its IT arm 'globo.com' is pretty modern and open.

<comment><USER19> > There's no denying the extent of Globo's influence. But, compared to the > 80's, it's merely a shadow of it's former self.

The ire lingers, though. Sometimes Globo shows up to report on something and they essentially get kicked out of the area (by the people near the event). This may be a combination of how it tends to report on certain subjects and leftover distrust from the past decades.</comment></comment></comment>


Show HN: CampusHero.com - our relaunch - <AUTHOR> http://www.campushero.com

<comment><AUTHOR> I launched this app as a side project with a friend in 2008. Didn't touch it for 5 years - but it continued to generate enough revenue to keep itself online. Decided it was time to give it a little more serious effort, focusing on the things that had the most success with the initial site.

Here is v1: [http://ejnash.com/campushero/](http://ejnash.com/campushero/)</comment>


Google Donates Two Eclipse Projects Worth $5 Million - <AUTHOR> http://adtmag.com/articles/2010/12/15/google-donates-eclipse-projects.aspx

<comment><USER2> I suppose if you subscribe to the labor theory of value this figure could be accurate - but what a mean and pessimistic way to think about it! If the tools are actually useful to Java/Eclipse developers, they could be worth far more.

(and if not, they could be worth far less)</comment>


Relax for the Same Result (2015) - <AUTHOR> https://sivers.org/relax <comment><USER2> For many physical efforts, overpacing and poor form can both rob you of results. In particular, exceeding your aerobic threshold for any period of time will require recovery time --- you can pull this off at the end of a ride or in a critical effort (breakaway, hill ascent) where you'll get a chance to recover afterwards, but full on and you're simply sabotaging yourself. _Perceived_ effort is a very poor guide. In some activities there's a very real risk of acute or chronic-overuse injury as well.

John Cleese talks of a similar concept in creative activity, learned from a screenwriter who'd worked with Alfred Hitchcock:

 _When we came up against a block and our discussions became very heated and intense, Hitchcock would suddenly stop and tell a story that had nothing to do with the work at hand._

 _At first, I was almost outraged, and then I discovered that he did this intentionally. He mistrusted working under pressure. He would say, "We 're pressing, we're pressing, we're working too hard. Relax, it will come." And, says the writer, of course it finally always did._

[https://www.conversationagent.com/2012/04/lesson-in- creativi...](https://www.conversationagent.com/2012/04/lesson-in-creativity- from-hitchcock.html)

[https://youtube.com/watch?v=bC- gBeQYHls&t=3m25s](https://youtube.com/watch?v=bC-gBeQYHls&t=3m25s)

<comment><USER3> Interesting that Steve Jobs had pretty much the opposite approach to group collaboration and pressure, yet got good results from them as well. At the expense of an often very miserable working environment.

<comment><USER4> I'm not sure what that Jobs style was the opposite. He was the industries leading example of taking your time to get it right. Like when he canceled the iPad just prior to the launch decision, and told the team to take a few years to try to make it into a phone instead.

<comment><USER3> The extraordinary pressure he put people under on a daily basis, especially as deadlines approached, his biographies are full of reports of working long weekends, sleeping in the office, having him push push push push to the breaking point.

</comment></comment></comment></comment><comment><USER5> I think there's a similar effect in school - I realized in college that in many of my classes, it was not hard to get a B, but significantly more work to get an A. So lowering my effort level and aiming directly for a B in a class or two significantly decreased my stress levels over the semester, freed up time for extracurriculars, etc.

</comment><comment><USER6> This is very similar to the Pareto principle : 80% of the highest result is obtained through 20% of the highest effort. To get to 100% of the highest result you will have to deliver four times more effort.

Most of the time, 80% is good enough. Save your resources for other endeavors.

<comment><USER7> I'm sure you mean well but you've liberally modified paretos principle. In general it is a macro indicator of outcome not effort! Something like 80% sales come from 20% of customers.

<comment><USER8> The Pareto principle is just a contextualized way of describing the dynamics of a system with diminishing returns. If you could say anything has "low hanging fruit" then it has diminishing returns.

</comment></comment></comment><comment><USER9> Totally analogous to every single self-styled agile software development environment I've ever worked in.

People pushing themselves to the breaking point when they could get better results by just stopping whatever they're doing and take the week off.

<comment><USER10> Last 10% of bug fixed, 90% of total effort. I'm with you. This COVID-19 thing has changed my perspective on work, (although I'm not so sure about my employer's.) We're split into A/B team, one week in, one week out. I really happy, probably the first time in my working life I've achieved the nominal "work/life balance". The office feels more productive, I'm more productive, fewer people making ad-hoc demands on my time. The project is more focused if you make allowance for some handoff gaps. I'm not completely destroyed on Friday evenings, and if I am, I have a week to recover. I look forward to my ON week Mondays, I have had a week to think about what I could/should do. Really, if this continues with some adjustment, I think it would be the perfect cadence.

<comment><USER9> It's more than the 80/20 rule, it has to do with how people perceive the notion of work. It used to be we would let the computer do the work for us and we'd kick back and read mad magazine. Now it's the other way around and the tools are driving us instead.

And it's because in our rush to not get corporate like those people we despise, we've become even worse than them and our desire to fit in and gain acceptance and recognition have caused us to go all out like the fellow on the bike and we're just causing pile ups which would be better off if we cleared the road.

Everyone has several people on their team who would do well to just stay home and let the others do their thing.

</comment></comment></comment><comment><USER11> Riding a bike works like that. 2-3 minutes is a huge difference in terms of power output required. Headwinds can sap your power. Going slightly above your average feels like a headwind. A coach potato like me can output about a hundred watts on a good day so if you have money to spare and want to go faster, buy upgrades. 3 watts here, 2 watts there and you are at +10% ;)

<comment><USER12> Wait, so you're telling me "don't buy upgrades, ride up grades" is a lie?

I am joking, of course, but I think you're completely right in that for beginners, a small investment in upgrades (or even just a good solid bike) pays for itself in huge boosts of performance.

Of course, after that, then buying more and better things is just bad for your wallet ;)

<comment><USER13> I took up biking as an adult again by biking with rental bikes in Mexico City (government owned) and they are built like tanks for durability, not for riding pleasure.

When I finally got on a "real" bike, I flew. I was much faster and agile than my bike-riding friends. Because I couldn't upgrade the bike, I had to upgrade myself, and these investments are compatible with any kind of bike (or sport, actually).

<comment><USER14> It reminds me of one video (unfortunately I can't find it at the moment) where journalist vs pro rider were racing each other with different bikes - road, city bike, old lady's bike.

What was surprising that pro on lady's bike couldn't match layman journalist on proper road bike. Basically all the energy spent on women's bike goes to flexing (heating) the frame. City bike built like tank was better as at least it was sturdy.

However it also shows that good bike is so much more important as you would think pro would match you riding anything with two wheels.

<comment><USER15> I'm really interested in that video. I assume that the women's bike was a steel model, since steel is supposed to be the most flexible common frame material.

Also curious about all the people who say "no surprise considering the bike".

</comment></comment></comment></comment></comment><comment><USER16> Reminds me of slow running: [https://www.youtube.com/watch?v=9L2b2khySLE](https://www.youtube.com/watch?v=9L2b2khySLE)

</comment><comment><USER17> For engine powered stuff when you relax you get better results.

Every time I try to push for lap times on the track I end up exhausted after 20 minutes with worse times, inconsistent laps, plenty of oh shit close moments and most importantly I don't enjoy myself. Instead when I relax, focus on riding with good technique I end up with faster times.

But of course the temptation to push is huge, especially if you can't get any faster for longer periods.

Also interesting: I've broken my records multiple times right out of winter after 3 months of not riding. Can't explain that.

<comment><USER18> Same with downhill mountain biking. If you are relaxed, you are loose, and you flow smoothly which is fast. If you push too hard, you get caught out by dozens of little things you weren't expecting because you are in new territory and that slows you down.

There is a time to push though, in order to move your abilities further and get familiar with the aforementioned edges of your abilities. But race day is not the right time.

On your last paragraph, that happens to me all the time. A week of practice practice and can't do it, put the bike away for a week and then I can do it first try. I think of it as a limitation on how quickly we can change and update our muscle memory, reflexes and intuition.

<comment><USER19> Watch for the literal perfect example of this: [https://www.youtube.com/watch?v=y8ryQOiX05k](https://www.youtube.com/watch?v=y8ryQOiX05k)

Aaron Gwin wins this World Cup Downhill race after breaking his chain in the first 50 yards. No pedaling after that and yet he's so smooth and fast.

</comment></comment></comment><comment><USER20> This only worked because his relaxed pace/speed was fast and built up by MONTHS of intense training _first_.

He would not have had that time if he had gone at the relaxing pace the entire time he spent training.

Relaxation is good, no doubt. But there is a time and place for, as they say, "going hard in the paint". Building muscle and associated stamina is one of those times.

This is a perfect example of why experiments require a control group to mean anything at all. I am surprised that the intelligent Mr. Sivers would fall into this rookie trap.

<comment><USER21> I'm not disputing your comment, but still I agree with the gist of the article. My four year old son recently learned to ride a bike (in The Netherlands) so naturally he now wants to cycle everywhere himself.

So instead of putting him in his seat and cycling to the store myself (20 km/h) we now cycle side by side (10 km/h) to the store. It takes exactly 5 minutes longer single trip, and it doesn't matter a bit.

If you really depend on achieving 100% vs. 90%, and it takes a ton of stress to get to 100%, it might be time to change habits/goals/employer.

<comment><USER20> I'm not disputing your comment either, but in startupland the difference between 90% and 100% is often the difference between dead and alive.

</comment></comment></comment><comment><USER22> Article gist: achieve a flow state / allow yourself to engage the default mode network to reduce exertion, perceived or real, on a physical task with low cognitive overhead (non-competitive cycling).

</comment><comment><USER23> > _A few years ago, I lived in Santa Monica, California, right on the beach. > There's a great bike path that goes along the ocean for seven and a half > miles. So, fifteen miles round trip. On weekday afternoons, it's almost > empty. It's perfect for going full speed._

For anyone familiar with the area, it's clear that this article plays fast and loose with reality. The path is narrow, and nowhere near "almost empty" except in the middle of the night. Further, it's so twisty that you'll only reach "full speed" on short sections. Your time will be dominated by cornering technique, not power output.

<comment> Mary-Jane Ha! I wonder if the seagull incident was a subtle way of giving away the author is full of crap ( ͡° ͜ʖ ͡°)

</comment></comment><comment><USER24> In some of the companies I've worked for in the past, there's this weird misconception that if you don't look stressed, then you're not taking things seriously. "I don't think you are treating this issue with the sense of urgency it requires." I never understood this.

</comment><comment><USER25> I get the sense of "relax", but I'm trying to get the essence of it. Is it to be more mindful, stop obsessing/stressing about the thing that you are doing while still putting action in? I still struggle sometime because the only way I think I can do something is to focus fully on it, I'm in my head tracking all of the different perspectives, and tasks that can offshoot from the current thing I am doing. Also another thing, is if you primarily "think" for a living (any knowledge work) won't you get into a habit of overanalyzing/overthinking? I've found exercise and doing something physical as the best way to get out of your head.

<comment><USER26> The takeaway I have is basically what you said - stressing about something may make you feel like you're working harder, but really just burns up your emotional energy. From the end of the article: "When I notice that I'm all stressed out about something or driving myself to exhaustion, I . . . try dialing back my effort by 50 percent. . . . [H]alf of my effort wasn't effort at all, but just unnecessary stress that made me _feel_ like I was doing my best."

Stress and anxiety can be a signal that you need to take something seriously, but if you're already taking it seriously, it's not helpful. If you can drop it while still responding to the situation appropriately, you'll be better off. Focus, don't obsess; progress, don't stress.

This is something I also learned in my time working technical product support - at first, when emergencies happened with the product, I would panic and scramble. But I eventually realized that didn't actually help and just made things less pleasant for me and anyone interacting with me. Everything went better if I took the emergency seriously but calmly, and just handled it without reacting emotionally.

</comment></comment><comment><USER27> So, did he or did he not stop or slow down to wash his face and mouth from pelican's excrement?

</comment><comment><USER28> I saw the mountain bike he was (presumably) using and figured the takeaway was "if you want to ride fast, get a road bike"

Put another way: investment in the right tools for the job will get the results faster than killing yourself.

<comment><USER29> The photo is credited to someone else - I imagine it was chosen for beauty rather than truth. Earlier in the article there's a link to an actual bike, and it is a road bike: [https://surlybikes.com/bikes/legacy/pacer](https://surlybikes.com/bikes/legacy/pacer)

<comment><USER30> Yeah, I read the article long ago and the picture was different. I believe it was a seagull shadow on the beach or something like that.

</comment></comment></comment><comment><USER31> So much of work life is _looking_ busy.

</comment><comment><USER32> Another interpretation: if you push yourself and keep your mouth closed, birds can't poop into it.

<comment><USER33> "Don't let a Pelican shit in your mouth" was definitely my takeaway from this story too</comment></comment>


Fastly has a new CEO, Joshua Bixby - <AUTHOR> https://www.fastly.com/blog/fastlys-new-ceo <comment><USER2> Back in ~2014 Fastly was somewhat more visible in tech space - they gave nice conference talks, published deep technical blog posts and overall were a breath of fresh air in CDN world.

Since then it fell of my personal radar, sadly.</comment>


Ask HN: Where can I find a database of companies' email templates? - <AUTHOR> I want to create an email automation tool and to do that I would need to get updated email templates that companies use (marketing, outreach, reminders etc..). is there any open-source database that contains email templates by a company? <comment><USER2> Lol. Phishing automation tool?

</comment><comment><USER3> Seems highly unlikely.</comment>


Texas High School Makes Students Sign 'Work for Hire' Contracts to Use Cameras - <AUTHOR> http://petapixel.com/2015/09/29/after-controversy-high-school-now-makes-students-sign-work-for-hire-contracts/ <comment><USER2> How can a "work for hire" contract be valid if there's no consideration[1] (value in return for the copyright rights being signed away) given to the creator of the photograph? It would be interesting to see this challenged in court.

[1] [https://en.wikipedia.org/wiki/Consideration](https://en.wikipedia.org/wiki/Consideration)</comment>


Y'know that ridiculously expensive Oculus Rift? Yeah, it just got worse - <AUTHOR> http://www.theregister.co.uk/2016/10/06/you_know_that_ridiculously_expensive_oculus_rift_yeah_it_just_got_worse/ <comment><USER2> Even as someone who prefers the Vive in terms of overall experience, I think this article glosses over quite a few points and misrepresents the facts to the point where it shouldn't even be on HN for discussion. There are far less biased articles surfacing in the wake of Oculus Connect that don't for example, highlight Luckey's political leanings in the subtitle.

For one, the crux of the article is that the Rift is expensive. And sure, for some people, it definitely is. However, it's unfair to say that Oculus is a "$1,500 to $2,500 gaming platform" and shortly compare it to the $800 price point of the Vive which does not include the also required "$500 and $1,500" computer. Similarly, it seems wrong to compare either the Rift or the Vive to Google's Pixel because well, they're targeting different segments of the market with vastly different experiences. In addition, the article neglects to mention that a big announcement today was Oculus lowering the minimum specs of a VR headset with their new software that (from what I understand) interpolates frames. In fact, Oculus will be selling $500 dollar prebuilt systems which brings the minimum buy-in to experience VR on the Oculus considerably lower.

The rest of the article proceeds in a similar fashion; Oculus has quite a few interesting titles announced not even including the free title by Epic Games (makers of Unreal and the Unreal engine and definitely a well known studio) given out with the Touch. In particular, I'm excited about Luna because it was made by quite a few people from thatgamecompany (Journey). Similarly, having non-game media by OK Go (known for their virally popular experimental music videos) and Disney (no other introduction necessary) is huge for both the platform and VR in general. Yes, it's lacking a few big players like Bethesda, but I think the future lineup is far from as barren as the article so blindly suggests.

</comment><comment><USER3> This is a political article disguising as a technological one. It quickly fulfills Godwin's law and keeps a double standard in Internet campaigning, something both parties are doing (see: Correct The Record).

I don't think this is worthy of HN.

<comment><USER4> Luckey's political controversy makes a single appearance, amongst the higher- than-expected price, the platform lock-in, and the custom connectors, all of which are tied to the slow defection of developers from the platform, which has in turn resulted in a paucity of apps for the system at launch. No offense, but -- this being the hottest phase of an overheated election season -- I think your antennnae are a bit overly sensitive here.

<comment><USER3> The technical issues were discussed months ago when they surfaced, they're not something that happened last week or even last month. I'm 100% certain that the trigger for this article's publication is political disagreement.

</comment></comment></comment><comment><USER5> Wow, a proprietary audio connector? Rift can go f itself forever.</comment>


Anonymous, disposable telephone numbers that give you control over who can reach you and when. - <AUTHOR> http://www.tossabledigits.com/index.php

<comment><USER2> @seren6ipity: Yes, you can now have a phone number that protects your privacy.

@soundsop: Yes, it is a subscription, but you can cancel anytime, and it's still pretty cheap. One phone number + 200 minutes a month for $8. And when you are done with it, you can cancel the subscription, no commitment.

@inovica: We do have a pool of numbers, but it is large. And to prevent reuse of a number that gets a lot of unwanted calls, we disconnect numbers for up to 25 days to cause traffic to subside, and if it doesn't, we don't reuse it.

</comment><comment><USER3> I presume they just have a pool of numbers, so in theory you could end up with a number that's been used by 10 people who have posted it to a load of sites and then you'd receive those calls/messages. Unless I'm missing something (which is entirely possible!!)

</comment><comment><USER4> I've long wondered why GrandCentral doesn't offer this feature; it sounds like a good fit.

As for TossableDigits, it looks like a feature masquerading as a company.

</comment><comment><USER5> A beacon of privacy!

</comment><comment><USER6> There doesn't seem to be one-shot pricing. Only a monthly subscription.</comment>


Ask HN: What do you do on long-haul flights? - <AUTHOR> I'm at a layover with a 14 hour flight ahead. What do you do on your long haul flights? Do you prepare anything before hand?<p>In the past I've pre-downloaded and read PDF's of topics that interest me, watched films, done programming challenges, connected to the super-slow in flight wifi and tried to work. What do you do? <comment><USER3> I watch all the bad action movies I'd otherwise never take the time to watch, and thoroughly enjoy the relaxation that comes from having 10+ hours to myself in which no other person can have a reasonable expectation that I'm available to interact or respond reliably.

It is truly one of my most enjoyable guilty pleasures.

<comment><USER4> I hate watching movies on the plane. They are edited to remove all violence and nudity. The Shape of Water was missing huge chunks when I peered at my wife's scree.

I prefer to watch Netflix offline. Although Altered Carbon had me cradling my iPad mini so my fellow passenger couldn't see all of the erotic scenes.

I'm wondering what the legality of the situation above is.

</comment></comment><comment><USER5> Heavy flier here (100K Kms in 2017 for example). In addition to the suggestions below, I would like to add:

1\. On 8-12hour flights there is a zone of about 2 hours, where the mind is clutter free. I usually use this time (use paints a intent, but usually this auto-flow) to contemplate about things that need sorting in life, and write it down. On re-read it has a texture that is different than how I think when I am on ground.

2\. Since I do not have time to recuperate from jet lag (I work on both ends of the flight), one recent habit that has helped me is starvation in-flight (I drink lots of water). Some of my flights are 15-hours non-stop. Same rule. I find this to have helped my jet lag the most. There is some evidence this works for others too (1). Since my company flies me business, it is tempting to say know when the cheese and dessert cart rolls in, but I would rather skip it than suffer a few days of being a zombie :)

(1) [https://www.reuters.com/article/us-brain-clock/skip-the- pret...](https://www.reuters.com/article/us-brain-clock/skip-the-pretzels- starving-may-fend-off-jet-lag-idUSN2252042720080522?rpc=64)

</comment><comment><USER6> Switch to your destination's clock when you board the plane. Then sleep or wake according to your destination - this supposedly helps prevent jet lag (another one is apparently fasting - don't eat on the plane - but I haven't personally tried it)

I usually find anything that involves too much thinking pretty hard on a plane; instead, watch movies, read, or listen to some music - really listen to it - undistracted by the other things that often relegate it to background noise (hopefully you have some good noise cancelling/isolating headphones)

<comment><USER7> I find the best way when going to reversed time zones;

1) Fly in a couple days early where possible. Sightsee or work remotely before you hit the meetings etc you're over for.

2) If you have to hit the ground running, sleeping tablets. I use short action ones so it gives 4hrs sleep (and usually more naturally once you are asleep) which is a game changer for my brain function getting a >3hr which can happen without. Obviously speak with your Dr etc. And probably not best if your a frequent traveler.

</comment></comment><comment><USER8> I'll do about 3 hours of coding. Completely offline. I don't bother connecting to wifi at all.

Other than that, Sleep or Read. I've a ton of books on my Kindle to read.

And when not sleeping, I try and get up and walk around. It's quite nice to hang around either at the bar, or at the back of the plane if in economy.

My trick for sleeping though, is to plug in and listen to Orbital on my shuffle. Works really well.

</comment><comment><USER9> It's not possible to bring enough of anything to keep me entertained for that long, so I basically just fidget, fuss, watch bad TV, flip around to watch some other bit of bad TV, pretend I'm going to try to sleep but never actually sleep because I'm too tall to fit the seats comfortably, read every word of the airline magazine, read every word of the book I brought for the flight, read every word of the other book I brought for the flight home, read the magazine I impulsively bought in the airport, then watch some more bad TV and keep fidgeting, until the ordeal ends.

<comment><USER7> I also rarely sleep on flights but find the best chance is putting on a movie I wont like (and even better if I've already seen it) and attempting to watch it.

</comment></comment><comment><USER10> Watch everything on the entertainment system, especially foreign films that you might not watch otherwise. I look forward to my trans pacific flights to catch up on my Japanese art house films, but I avoid the Korean ones as too melodramatic.

If you score business class, then it's easier to just sleep and even get some work done.

<comment><USER11> Agreed, always go for the foreign films. They can subvert your expectations in a way Western films won't.

</comment></comment><comment><USER12> Deploy to production the minute before you take off. If it breaks things, you'll have entertainment for the rest of the flight trying to get it fixed with the crappy WiFi.

</comment><comment><USER13> As someone who does quite a lot of long haul flying (maybe 24 trips in the last 3 years that are usually 20-30 hours each) -- I generally try to sleep as much as possible because it passes the time and gives me a good chance to be setup for avoiding jetlag.

The ideal situation for these long hauls for me is to leave the evening local time - sleep a fair bit of the flights (maybe half at least) but then you still arrive tired enough in the afternoon-evening of the destination time that you can sleep most of the night. That seems to work the best for timezone reset for me.

If you arrive at your destination in the morning to early afternoon - <USER2> the hotel and walk around preferably outdoors in the Sun as much as possible until at least about 5PM preferably 7PM. If you didn't sleep much (or even if you did) and you have a bed nearby there's a good chance you'll end up sleeping until about midnight and then you're double jetlagged :)

<comment><USER14> This worked really well for me recently, though that first day on almost no sleep was a form of low grade torture.

Got in around dawn; walked around until about 4pm; fast asleep by 6; woke naturally around 8am. Slept 10 hours again the second night, but was comfortably on local time for the rest of the trip.

</comment></comment><comment><USER15> Sleep. If not sleep, some combination of podcasts, downloaded entertainment and more recently Switch games. I'll also download a few things to read for study, but I generally find that it's a poor quality environment for that.

</comment><comment><USER16> One time I learned a fair bit of Android programming while in-flight. Of course that does require beforehand preparation -- you gotta snarf down documentation, etc. before you get on the plane because the in-flight wifi doesn't cut it. It's a great time to pull out the laptop and just mess around with coding stuff -- not necessarily work related. Try learning a new language or framework and see how far you get.

I also like to watch movies or TV on the little entertainment center (which, 90% of the time, is running some version of Linux -- I know this because of all the crashes I see) or play video or cellphone games.

</comment><comment><USER17> Most of my long-haul flights in life were in college, so my answer is 'get over hangovers', and I cannot strongly enough discourage this irresponsibility. It's preparation in reverse.

</comment><comment><USER18> If it is a nighttime flight: If you like to drink, you can bring a bunch of the small 1.5 OZ liquor bottles in your liquid baggy (which you can buy at liquor stores and bring thru security and are much cheaper than buying drinks at the airport/on the plane). I then watch in-flight entertainment on the plane while drinking which makes time fly pretty fast and I usually end up sleeping half the time.

Also, I recently learned about and used melatonin for sleep aid and found it very effective at getting me to sleep when I am not tired. I plan on bringing some for some flights in the near future to help me sleep through them.

If it is a daytime flight: I just watch movies, read books, and play games. Make sure to plan out battery requirements for your devices.

Note, the few work related flights I have done I was not expected to program or anything during that time I was commuting so I just tried to make it as painless as possible using the processes previously mentioned which I do for all personal flights.

<comment><USER6> Wow; I forgot that no longer to you get free booze on all long haul flights. Hopefully you still do on the 'flagship' carriers?

<comment><USER18> You do in first class. Otherwise, it's 7/8$ a drink which honestly not that bad considering its about the price at a ballgame or bar.

</comment></comment></comment><comment><USER19> I try to get a window seat and look out the window.

The opportunity for this perspective is worth more to me than anything else I might do.

It helps to have had some earth science and geology and to have some sense of geography -- to think about what I'm seeing.

Then, there is the magical feeling of soaring and that perspective -- also on the nature of modern flight.

</comment><comment><USER20> I'm bad at sleeping on planes. For years, I would play the original Legend of Zelda. I'd play half on the trip out, usually thru level 5, and finish it on the trip back. It provided a nice break from email, was a bit of fun, and helped me rest.

</comment><comment><USER21> Dowoad & watch an entire season of some show.

</comment><comment><USER22> If you use your laptop on the flight, get an app like redshift, f.lux or similar and force-enable it. I find it much more comfortable in the dim lit cabin.

Also I found podcasts / audiobooks better than reading on long flights.

</comment><comment><USER23> walk around a lot - get your blood moving - do some exercise and move while you can - get well-hydrated too

<comment><USER24> Hydration is key. Staying hydrated has the side benefit of forcing you to get up to use the facilities, and in turn force you to move. During layovers I try to walk as much as possible.

I like to try and sleep as much as possible.

One thing I've learned recently is the business class lounges are really nice for long layovers. Consider paying for a lounge pass even if you are not flying business class is you have a long layover.

</comment></comment><comment><USER25> Make sure to keep moving. DVT is a common thing on long haul flights

<comment><USER26> Good point. I try to get up and stretch pretty aggressively every 3 or so hours.

</comment></comment><comment><USER26> Watch cheesy movies, hoping the people next to me won't judge. Followed by a couple hours trying to code while the kid behind me kicks my chair. :)

</comment><comment><USER27> For me it's some combination of reading books or playing Dungeons & Dragons with myself on the iPad, playing on the Nintendo Switch, watching foreign movies (discovered some good Japanese movies this way), sleeping or when at a window seat, contemplating about the cosmos above and the world below.

Trying to be productive and do work on a plane doesn't work for me.

</comment><comment><USER28> Feel guilty about my carbon footprint. And also watch 5 in-flight movies back to back.

<comment><USER29> By using the entertainment system, you're consuming additional electricity, which requires burning more fuel, thereby making your 'carbon footprint' even larger. :)

</comment></comment><comment><USER30> I use to code, but probably a combination of me getting bigger and seats getting smaller, it's really uncomfortable. So what I do 3 possible things.

1) Tackle a difficult problem in my mind or on paper. 2) Sleep 3) Read a book.

</comment><comment><USER31> Bring earplugs and sleep/meditate as much as I can.

Get a window seat and listen to beautiful music while looking at the clouds from above.

Sometimes listen to audiobooks or lectures through sound isolating earbuds.

But mostly, try to rest.

</comment><comment><USER32> Dungeon Crawl: Stone Soup

</comment><comment><USER33> I put on my eye-mask, earplugs, hoodie, take a double dose of sleeping medication (usually temazepam) and attempt to remain unconscious for as much of the flight as possible.

</comment><comment><USER34> Download and watch movies and shows on a VR headset, have your own personal cinema theater and forget you're on a plane.

</comment><comment><USER35> If you take Air NZ, they are generous with the wine. I get amongst that while watching bad action movies.

</comment><comment><USER24> Ear plugs make a big difference for me. The engine noise stresses me unconsciously.

</comment><comment><USER36> Think, write about life, read flight magazine, see a movie, sleep

</comment><comment><USER37> Sleep. Read.

</comment><comment><USER38> sleep

</comment><comment><USER39> Podcasts, books, games, movies, repeat.</comment>


Variational Lossy Autoencoder - <AUTHOR> https://arxiv.org/abs/1611.02731 <comment><USER2> I'd expect Open AI (7/8 authors affiliated) to have open-source code associated with their publications, but this paper doesn't seem to have any link to code and their github page doesn't seem to have a repo associated with the project.

I thought the point of Open AI was that they be open (from their front page: "we seek to broadcast our work to the world") so it would be good if they could release code associated with their experiments.</comment>


How to Score 0.8134 in Titanic Kaggle Challenge - <AUTHOR> http://ahmedbesbes.com/how-to-score-08134-in-titanic-kaggle-challenge.html#.WRSPhDQgLa0.hackernews <comment><USER2> I've been trying this intro competition a while ago now, but I seem to remember that it was relatively easy to obtain a score of ~0.78 or ~0.79 with about 5 lines of Python or R (using your favorite lib/algo of course). That said, am I the only one thinking that the pursuit of a few extra % points over what seems like a "natural baseline" (which admittedly might translate into a few dozens of correctly classified people in this particular case) is a somewhat strange use of one's time and skills (if we don't take into account the data processing and programming skills one can gain in the process, I'll admit though). My point is that there seems to be nothing remotely "scientific" (or even insightful) to be gathered from such an exhaustive search process (which characterizes a lot of those data science competitions IMO), when you have squeezed to death all the possible ways in which you can transform a given dataset, in order to maximize a very precise metric. This to me appears like a degenerate form of statistical science, which doesn't have much to do with reality anymore.

<comment><USER3> Disagreed. Because it's such a well-known benchmark, it's a great sandbox for testing new techniques, trying new software, and self-study.

</comment></comment><comment><USER4> Having "PassengerId" as the most important feature seems like a bad sign. Is this historical data, like an id assigned at boarding, or is it a synthetic id assigned to records potentially in some non-random order?

</comment><comment><USER5> why do people do this:

        def compute_score(clf, X, y,scoring='accuracy'):

            xval = cross_val_score(clf, X, y, cv = 5,scoring=scoring)

            return np.mean(xval)

when they could have done:

        np.mean(cross_val_score(clf, X, y, cv = 5,scoring='accuracy'))

<comment><USER6> A) they find it more readable to have less stuff on each line

B) they think they might want to look at the intermediate results, or compute additional statistics

</comment></comment><comment><USER7> But... grid search for number of trees in random forest? More is always better, just slower (and at some point there is no difference).

Correct me if am a wrong, but this particular optimization looks as waste of (CPU) time.

<comment><USER5> You could easily overfit with a bunch of trees.

<comment><USER7> Boosted tree models - surely! But random forest?

Vide [https://www.quora.com/Do-random-forests-tend-to-overfit- as-m...](https://www.quora.com/Do-random-forests-tend-to-overfit-as-more- trees-are-added)

</comment></comment></comment><comment><USER8> Is setting unknown ages to the median really the right way to go about this? Feels strange to me.

<comment><USER3> If it works, it works.

</comment></comment><comment><USER9> OLD but... sort of... GOLD</comment>


Netflix cuts sockets by a factor of two with AMD Epyc - <AUTHOR> https://www.tomshardware.com/news/netflix-amd-epyc-vs-intel-xeon-servers <comment><USER2> These new Epyc processors have tons of memory bandwidth (16 channels) and on- die cache (128MB). They are roughly 1/4 the cost of the Intel competitor product. For certain applications, this iteration of AMD server processor is a game-changer in performance.

<comment><USER3> What applications do they not excel at?

<comment><USER2> Intel Xeon currently gets higher single core clock speeds using turbo. If you have time-sensitive workloads that are blocked by a single thread of execution, then it may be worth paying for the Xeon instead.</comment></comment></comment>


Real-Time Chat Solutions vs. Chat Platforms - <AUTHOR> https://habr.com/ru/post/441138/ <comment><USER2> The seduction of platforms to consume the apps that ride on them leads to a quick local maximum.

We need federated/ shared small payload low latency pub sub with storage.

<comment><USER3> Isn't this what xmpp promises?

<comment><USER2> This is protocol portion, but we also need shared infrastructure.

</comment></comment></comment><comment><USER4> Has anyone done anything significant with Twilio Chat? My company is looking to move over to them in the next year maybe...

</comment><comment><USER5> I expected this to be more along the lines of Pusher vs Intercom.</comment>


Ask HN: Sci-Fi Books for Hackers? - <AUTHOR> Hiho, I just finished "Learn You a Haskell for Great Good!" now i need another good book to read. I'm in the mood for some Sci-Fi - but, not the kind that is about politics, light-saber wars, worm-drugs, a fascist regime masquerading as humanitarians, ... - it should be more like "The Robot and the Baby" (by J. McCarthy) but longer, with even more mind bending pseudo code.<p>Long question short: Are there Good Sci-Fi Books for Developers? <comment><USER2> No code in these two, but lots of problem solving:

<https://en.wikipedia.org/wiki/Rule_34_%28novel%29>

I recently read Rule 34 by HNer Charles Stross. I liked it a lot.

Thanks Charles.

If you want to go old school, Rendezvous With Rama is great.

<https://en.wikipedia.org/wiki/Rendezvous_with_Rama>

</comment><comment><USER3> [http://textiplication.com/2009/07/13/hackers-and-hacking- in-...](http://textiplication.com/2009/07/13/hackers-and-hacking-in-science- fiction/)

has many of the recommendations I'd make. I especially recommend Cryptonomicon if you want some pseudocode. I'll add a few newer books:

<http://en.wikipedia.org/wiki/Ready_Player_One> <http://en.wikipedia.org/wiki/Daemon_(technothriller_series)>

However, have you considered some free nonfiction? <http://www.mit.edu/hacker/hacker.html> The Hacker Crackdown <http://hermetic.com/bey/taz3.html#labelTAZ> Temporary Autonomous Zones

You might also like scifi short stories: <http://www.flurb.net/>

</comment><comment><USER4> A Fire Upon the Deep, by Vernor Vinge. It's all about the nature of computation vs thought, usenet, and truly evocative aliens. Not much actual code though.

</comment><comment><USER5> I'm surprised _Snow Crash_ (or other Neal Stephenson stuff) hasn't come up yet. It's a bit dated, as it envisions what teh internets will be like from a 1992 perspective, but still a very enjoyable/amusing read.

<http://en.wikipedia.org/wiki/Snow_Crash>

</comment><comment><USER6> Non-developer specific good sci-fi books:

-Dune

-Hyperion + The Fall of Hyperion

-The Book Of The New Sun

-Ilium + Olympos

-Takeshi Kovacs trilogy

-The Culture Series (meh..)

-The Demolished Man

More dev-oriented:

-Reamde (which I hated, but I seem to be in a minority)

-Neuromancer

I'll always have a special place in my heart for Calculating God (not science fiction), because its the book that got me into reading seriously.

</comment><comment><USER7> Adding "for developers" to the end of a question doesn't automatically make it fitting for hackernews.

I think reddit is a better place for these questions.

<comment><AUTHOR> i don't do reddit - and it's a question to the HN community (not a question to anyone else) - because i value HNers opinion - they might answer, they might not.

</comment></comment><comment><USER8> Ted Chiang - except this is short stories. Very good though.

Greg Egan - hard science, mind bending.

</comment><comment><USER9> One that has a lot of programming and hackerish humor is the Wizard's Bane series by Rick cook. Fantasy realm mixing programming and magic quite well.

</comment><comment><USER10> Space Operas: \- The Reality Dysfunction (Peter Hamilton) \- Gridlinked (Neal Asher) \- Hidden Empire (Kevin J Anderson)</comment>


Show HN: Interactive paper time tracker - <AUTHOR> http://basil-salad.com/wp/labs/time-tracker-to-improve-your-personal-productivity/

<comment><USER2> You submitted this four weeks ago ...

<http://news.ycombinator.com/item?id=2549609></comment>


You can now pay Climeworks to turn your carbon emissions to stone - <AUTHOR> https://qz.com/1683044/you-can-now-pay-climeworks-to-turn-your-carbon-emissions-to-stone/ <comment><AUTHOR> I have signed up; Eli Dourado says that Project Vesta is a better deal: [https://elidourado.com/blog/dawn-of- geoengineering/](https://elidourado.com/blog/dawn-of-geoengineering/), but I'm not sure what Vesta is doing or how pragmatic it is to put olivine on enough beaches to matter.</comment>