Oracle vs. PostgreSQL: First Glance - <AUTHOR> https://rolkotech.blogspot.com/2020/05/oracle-vs-postgresql.html <comment><USER3> I've been on a project where we were forced to migrate the opposite direction: From PostgreSQL to Oracle, because the client was already paying for Oracle licenses and really, _really_ , wanted us to use Oracle to justify the expense.

It was actually a pretty big setback. We were using PostGIS to support spatial queries (a key requirement), and Oracle Spatial was just not at the same level (both in performance and features). The development experience with Oracle was also awful. The licensing for Oracle was highly granular, down to the feature level. More than once I'd identify a feature that provided a solution to an issue through online research only to be prevented from using it due to the customer not having the requisite license for it.

And the support was useless. Oracle was so complex (by design) we resorted to contacting support a couple of times - they would send out an "engineer" who could turn any technical troubleshooting session into a sales presentation for some Oracle product or feature that would "solve" whatever the issue was.

I will never work on a project involving Oracle again (barring obscene amounts of money to assuage my frustration, of course).

<comment><USER4> I really don't like Oracle from a DBA perspective but it's still often far ahead of PostgreSQL when it comes to query performance. In Postgres, the query structure can make huge differences in terms of performance and it can take a lot of tuning to find the right query to optimize performance (especially when subqueries are involved). Oracle (and SQLServer) are usually pretty good at optimizing the query exactly the right way, reducing development time by quite a bit.

<comment><USER5> PG community has put a lot effort into performance the last few years, including JIT compilation in PG12. Is that criticism still true today?

<comment><USER6> It's very true today. The problem discussed here is performance on complex queries (e.g. subqueries), and the query planner plays a huge role in that. The Postgres query planner has various issues. Here are two recent posts talking about planner issues:

[https://medium.com/@rbranson/10-things-i-hate-about- postgres...](https://medium.com/@rbranson/10-things-i-hate-about- postgresql-20dbab8c2791)

[https://www.cybertec-postgresql.com/en/things-could-be- impro...](https://www.cybertec-postgresql.com/en/things-could-be-improved- postgresql/)

Also JIT compilation, while very nice and a step in the right direction, is very barebones at the moment, hardly achieving its potential. Here's a long todo list of what and how to make efficient use of JIT in postgres, by the main author of the feature. [https://twitter.com/AndresFreundTec/status/10025899696161996...](https://twitter.com/AndresFreundTec/status/1002589969616199680) Postgres release 12 did not add any JIT related improvements, and as far as I know no work has been done on it on 13 either.

<comment><USER7> For someone not following closely, What are the reasons behind the lack of work on JIT since then?

<comment><USER8> The traditional view that the bottleneck for query performance is overwhelmingly disk throughput, which has become slightly less true with the advent of SSDs.

</comment></comment></comment></comment></comment></comment><comment><USER9> Oracle used to be by far and away the best database out there. Now I wouldn't use it even if you paid me. It's shocking how little Oracle invested in developing their products and services over the years. They are a distant second, if not merely an "also ran", for everything that they do. The company largely exists as an experiment in just how far you can go with a vendor lock- in strategy. Sadly that experiment is proving to be a remarkably successful one

<comment><USER10> They're a victim of their own success. They became a monopoly and the quality of their product stopped mattering. They're an example of Steve Job's comments on Xerox's failure[0]. It happened at Oracle, IBM, Cisco, and Microsoft. It's happening now at Apple, Intel and Google.

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

<comment><USER11> I agree on the overall theory (dominance in a sector tends to shift internal incentives in such a way that the result is an ossified development structure), but I think Jobs' terminology is imprecise. Larry Ellison is not really a product guy first and foremost, he's the definition of a tough salesman. The "bad guys" are a more generic variety of "corporate type" who can materialize in any department, really. Typically they power themselves up the ladder with "cost efficiencies". The most recent Oracle CEOs (Hurd and Catz) fit that profile to a T.

En passant: another big name that suffered from this phenomenon was Nokia.

</comment></comment></comment><comment><USER12> The article seems to misunderstand what table inheritance is in PostgreSQL.

CREATE TABLE new_table AS TABLE existing_table;

Doesn't create any PostgreSQL inheritance relationship between the parent and child tables. It merely makes a new non-inherited table with a copy of the data whereas with true table inheritance you're working with the same data (there's some visibility rules to consider between parent and child, but that's different than a copy).

I'm also uncomfortable with too simply stating that you should think of this like OOP inheritance; while I agree that in some respects there's passing similarity, it is its own beast and needs to be understood outside of the OOP paradigm to be useful. Many of the Object Relational aspects of PostgreSQL are very powerful, but can not be understood in OOP terms.

For inheritance, it's better to read about this from the documentation: [https://www.postgresql.org/docs/12/tutorial- inheritance.html](https://www.postgresql.org/docs/12/tutorial- inheritance.html)

Also, another part of the article talks about the ramifications of not having Oracle "packages". So while it's not completely the same concept and there are different sets of trade-offs, one option includes using PostgreSQL schema for this sort of logical namespace organization. Both Oracle and PostgreSQL have the concept of different schemas, but Oracle has a much more rigid idea about schema usage (related to database users) and PostgreSQL has a much more fluid idea about usage. As a former Oracle guy, I can see how that organizational tool might not be front of mind when coming to PostgreSQL, but I've used PostgreSQL schema for this sort of organizational purpose with good success.

<comment><AUTHOR> Thanks, I will check out your input on table inheritance and update it.

</comment></comment><comment><USER13> I'm a happy Postgres user and recently did some work with a government agency using Oracle - the thing that shocked me most about Oracle was the lack of transactional DDL operations which was something I'd just taken for granted in the Postgres world.

<comment> munk-a Coming from MySQL to Postgres a few years back the transactional DDL statements were a joy to work with - I've had to claw a legacy into the modern era and utilizing them has allowed me to execute live migrations from legacy into shims and then from shims into modern.

I also really appreciate the transactional TRUNCATE - I pretty much never use it but at least in Postgres I never have to worry about someone else trying to run one and wiping state unexpectedly.

<comment><USER14> > I also really appreciate the transactional TRUNCATE - I pretty much never > use it but at least in Postgres I never have to worry about someone else > trying to run one and wiping state unexpectedly.

as long as auto commit is not enabled.

These goodies are possible, because of PostgreSQL's MVCC which requires running vacuum. Nothing is for free unfortunately.

<comment><USER15> Interestingly even though MSSQL server uses an extremely different implementation of MVCC, it internally has a vacuum equivalent. (Which is required even when all MVCC support is disabled! It is used to enable efficient implementation of deletes, without having to use absurdly coarse locks).

MSSQL just handles doing that cleanup silently in the background while exposing basically no no configuration except a trace flag that can turn it off.

</comment></comment></comment></comment><comment><USER16> Why anyone would use Oracle for anything other than supporting legacy systems is beyond me.

<comment><USER17> I have not been an Oracle fan in the past, especially because of their complicated (and expensive) licensing, but late last year we moved to their hosted autonomous database. The on demand pricing model makes it quite economical, and the performance is amazing.

However, the killer feature for me is that it has application Express (or APEX) included, which is a complete web application development framework, as well as Oracle restful data services (ORDS). With built-in application development and deployment, it is the only complete, full-stack data management platform I am aware of (enterprise level).

YRMV, but it has been incredible for us, both to support our data science initiatives, and for rapidly deploying applications. I couldn't imagine going back to anything else.

<comment><USER18> PostgreSQL + PostgREST == blinding light.

You get a RESTful interface to PG. All you need to add is a static page w/ some JS, for which you can use react-admin or similar.

Presto: web apps written in PG.

<comment><USER19> Can you point me to a good resource on this? I work 100% in the data layer right now, but the idea of being able to create an easy frontend (assuming I learn react) would be wonderful.

<comment><USER18> PostgREST: [https://github.com/PostgREST/postgrest](https://github.com/PostgREST/postgrest) and [http://postgrest.org/en/v6.0/](http://postgrest.org/en/v6.0/)

Sample PostgREST apps: [http://postgrest.org/en/v6.0/ecosystem.html](http://postgrest.org/en/v6.0/ecosystem.html)

React-admin: [https://marmelab.com/react-admin/](https://marmelab.com/react- admin/) and [https://github.com/marmelab/react- admin](https://github.com/marmelab/react-admin)

React.js: [https://reactjs.org/](https://reactjs.org/)

Combinations:

\- [https://github.com/tsingson/ra-postgrest- client](https://github.com/tsingson/ra-postgrest-client) \- [https://github.com/raphiniert-com/ra-data- postgrest](https://github.com/raphiniert-com/ra-data-postgrest) \- [https://reactjsexample.com/a-react-web-application-to- query-...](https://reactjsexample.com/a-react-web-application-to-query-and- share-any-postgresql-database/) \- [https://github.com/tomberek/aor-postgrest- client](https://github.com/tomberek/aor-postgrest-client) \- [https://github.com/priyank-purohit/PostGUI](https://github.com/priyank- purohit/PostGUI) \- [https://awesomeopensource.com/project/priyank- purohit/PostGU...](https://awesomeopensource.com/project/priyank- purohit/PostGUI?categoryPage=9) \- [https://www.reddit.com/r/learnpython/comments/bzrr1c/how_to_...](https://www.reddit.com/r/learnpython/comments/bzrr1c/how_to_create_dynamic_dashboard_on_top_of/)

More links:

\- [https://github.com/topics/postgrest](https://github.com/topics/postgrest) \- [https://duckduckgo.com/?q=%22postgrest%22+%22react%22&t=ffab...](https://duckduckgo.com/?q=%22postgrest%22+%22react%22&t=ffab&ia=software) \- [https://duckduckgo.com/?q=%22postgrest%22+%22react- admin%22&...](https://duckduckgo.com/?q=%22postgrest%22+%22react- admin%22&t=ffab&ia=software) \- [https://react- admin.com/docs/en/ecosystem.html](https://react- admin.com/docs/en/ecosystem.html)

I'm sure you can find more!

Yeah, there's not _one_ solution. There are _many_. Many are open source. PostgREST is amazing. The rest is up to you, but there's tons of tools out there.

</comment></comment></comment></comment></comment><comment><USER4> > \-- By EXCLUDED.email we could refer to the "old" email value that we are > updating.

Small nitpick: The excluded table contains the values proposed for insertion, not the values already present in the table (as described in [1]).

[1] [https://www.postgresql.org/docs/current/sql- insert.html](https://www.postgresql.org/docs/current/sql-insert.html)

<comment><AUTHOR> You are right, I already corrected this. Thanks.

</comment></comment><comment><USER20> > IF EXISTS for DDL operations

It's a super convenient operation but it has one big drawback which might be unexpected: `if exists` first acquires the relevant lock then checks.

This means a "ALTER TABLE table_name DROP COLUMN IF EXISTS column_name" will first acquire an ACCESS EXCLUSIVE lock, then check if the column exist.

Since DDL is transactional the lock will not be released until the transaction is committed or rollbacked, therefore even if the column doesn't exist it will prevent all concurrent operations on the table.

</comment><comment><USER21> I don't have a lot of experience with Oracle but I can tell you that Postgres optimizer is shit compared to Db2 zOS or Db2 LUW.

When I worked in a large bank we tried to migrate core system from Db2 zOS to Postgres and it went nowhere. I was a in-house developer working with Postgres consultants and they were amazed by db2 performance in OLTP scenarios.

So if your organization is already spending cash on Oracle, Db2 or MSSQL, use them for superior performance. Migration off them is costly and risky process.

If your working at a startup there is absolutely no reason to choose anything but Postgres if you need relational.

<comment><AUTHOR> In fact, my company wants to spare the expenses on Oracle. This is the main reason for migrating. We'll see how it works out. You are not the first one to point out postgre's optimizer. Is it really that bad?

<comment><USER22> YMMV. That depends on your workload, how your data is structured and a million other things. I know a few shops with heavy usage that couldn't be happier.

It may require handholding if you are not happy with the plans it is generating. Also the quality of the query planner results will depend a lot on how up to date the statistics are.

<comment><AUTHOR> I see, thanks!

</comment></comment></comment></comment><comment><USER23> Some good points in article. There are some things that may need more attention. 1) Update from another table is not safe as it should be (in case of multiple values, final value will be sort of random) 2) Schemas as namespace separators (grouping tables inside database) 3) Extern join syntax in Oracle is actually more vulnerable (in case of error in multicolumn syntax it fallbacks to normal join). So, it's not better or easier - it is just created before standard JOIN existed. 4) Crucial difference how buffer-vs- filesystem cache works 5) Miss of plan stability - no solution out of the box in standard installation 6) Batch operation (in)efficiency 7) Pros/cons in undo/rollback handling [likely some more that can't think of right now]

</comment><comment><USER24> > I am confident that anyone who works with Oracle often uses the (+) inside a > query to simply force an outer join.

For the love of all you hold sacred, please don't do this.

<comment><USER25> For some reason I find a query that uses (+) way easier to read than verbose outer joins. Probably because it's near the field and you see immediately "hey, this can be null".

Yes, it makes the query harder to migrate to other DMBS and to collaborate with non-Oracle persons.

<comment><USER26> To make it terser, omit `outer` because it is redundant. Now it's up to whatever you find easier to type. Definitely `left` or `right` for me. (+) is a really awkward sequence on QWERTY, at least.

</comment></comment></comment><comment><USER27> I haven't touched Oracle in like 12 years so I can't comment on that. But some of the examples are a bit strange or atleast lacking for PostgreSQL.

For example, in the partitioning, he states:

> SELECT * FROM sales_p_america;

But doesn't mention that if you select based on a region, it will use only the partition table.

> SELECT * FROM sales WHERE sales_region IN ('USA','CANADA');

While I believe if you do the equiv in Oracle it wont use the partition table?

\---

The section on table inheritance isn't right either.

[https://www.postgresql.org/docs/12/tutorial- inheritance.html](https://www.postgresql.org/docs/12/tutorial- inheritance.html)

What he demonstrated was just a way of making additional tables based on existing ones. While inheritance works sort of like partitioning except the child tables can contain additional data. Selecting from the parent will display all data from the child.

<comment><USER25> Oracle will also use partitioning optimizations in that case. See partition pruning[1].

[1] [https://docs.oracle.com/en/database/oracle/oracle- database/1...](https://docs.oracle.com/en/database/oracle/oracle- database/12.2/vldbg/partition-pruning.html)

<comment><USER27> Awesome. Thanks for the info. I wasn't sure if it was supported or not.

</comment></comment></comment><comment><USER28> Biggest difference for me is DDLs are transactional in Postgres, but not on Oracle.

That means migration scripts for software on Postgress can just have all DDLs (alter, create, drop, grant etc.) and DMLs (inserty, update, etc.) mixed in whatever order they need to be, and if any particular line of the migration script fails - the whole thing is rolled back as if nothing happened. And then you fix the problem and run migration again. Easy.

In comparison writing migration scripts on Oracle is a nightmare - DDLs aren't transactional (THEY COMMIT ON EACH LINE...), so you have to separate them from DMLs and ensure that only the scripts that haven't passed yet are re-run later. I've worked in 3 different companies that used oracle, and there were 3 different approaches to that problem, and all 3 of them sucked :)

In one company we had several big customers each with 1 production db, and software was written on separate branches for each customer, and helpdesk staff was dealing with migrations - programmers just asked helpdesk to add a column and worked on the test db for that customer. It was a lot of unnecessary work to port changes and bugfixes between branches, but at least we knew exactly what is on each db and could fix problems by ourselves. There was no migration to speak of, just manual changes on dbs and documenting them in svn (it was before git was popular).

In another company there was one development branch and several customers, and there were migration scripts written by all developers when they made changes, which were merged into development branch for db by 1 guy whose whole job was to merge these scripts and check if migration works. It slowed down development (because when you finished your task on local db you had to make a migration script(s) and send them to be verified. And even "that guy" sometimes made mistakes and then if you fetched db scripts in the morning you couldn't work until stuff was fixed (or you had to recreate oracle db from scratch which took several hours).

That was before docker BTW, now they probably use docker so that can be less of a problem.

In the third company we had one customer but with hundreds of installations, and we had one development branch with frequent releases. Developers maintained migration scripts between release, major and minor versions. There was no "that guy" \- we had smoke tests instead, and it sometimes took more time to write that migration script(s) than to change the code.

So you want to add 3 columns to 3 tables and fill them? And it has to be done in order because of dependencies? Write no less than 6 migration scripts (alter table 1, update table 1, alter table 2, ...). Add them with proper names and some boilerplate to the migration scripts for minor versions (3.4.5 -> 3.4.6). But that's not all! We also have migration scripts for major versions (3.4.0 -> 3.5.0), so you also need to add them there. You have to check the migration separately because these scripts often use shortcuts to run faster. So your scripts might break despite working for minor version migration.

Then there's the scripts for release version migration (3.0.0->4.0.0). Add your scripts there as well, and test once again.

Oh, and testing these scripts on test data doesn't mean they will work - <USER2> installation of db changes slightly over time - people add stuff from ui. There are rules what they can change and what they cannot, but if you don't think about it you might break something with your migration scripts on production despite it working on test data.

When that happens you have to write migration fixes which need to detect that problem and fix it on data you don't have direct access to :)

It was a nightmare.

Meanwhile Postgress is just doing the right thing, write 1 migration script with everything in it, if it works it works, if not - it rollbacks. Nobody thinks twice about it.

<comment><USER29> > Biggest difference for me is DDLs are transactional in Postgres, but not on > Oracle.

The answer I received more than once from Oracle evangelists regarding transactional DDL: it's useless and if you need it, you are not testing your scripts properly

<comment><USER28> > Oracle evangelists

There is such a thing?

> it's useless and if you need it, you are not testing your scripts properly

Is that also their response for static typing and constraints on database :) ?

<comment><USER30> >> Oracle evangelists

> There is such a thing?

Tech evangelist is a common job title.

<comment><USER28> I thought X evangelism is when you aren't paid, like with open source. If you are paid you're just a salesman.

<comment><USER31> I've seen 'Developer evangelist' as a job title.

</comment></comment></comment></comment></comment></comment><comment><USER32> Why are the table and field names in the examples between Oracle and PostgreSQL different? It makes it harder to compare the two.

<comment><USER33> IIRC, Oracle licensing forbids publishing direct comparisons with competing products. I guess they had to find a workaround.

<comment><USER34> This kind of model speaks to who actually buys it, I would never pay for a product with such limitations out of principle.

<comment><USER35> Microsoft SQL Server has the same clause in their license, unfortunately.

[https://www.brentozar.com/archive/2018/05/the-dewitt- clause-...](https://www.brentozar.com/archive/2018/05/the-dewitt-clause-why- you-rarely-see-database-benchmarks/)

So, you wouldn't be considering any commercial SQL offering, basically.

</comment></comment></comment></comment><comment><USER7> Whenever I see comment making comparison between Oracle and Postgre, I cant help bug wonder why isn't it compared to Enterprise DB, which is sort of like the unofficially official Postgre for Enterprise products.

<comment><USER36> Postgres! You're not saying Orac, aren't you? :)

</comment></comment><comment><USER37> Hmm, looks like EnterpriseDB is still a thing:

[https://www.enterprisedb.com/](https://www.enterprisedb.com/)

</comment><comment><USER38> I would bet the next "Oracle" (as in, large IT company) of the decade 2020-2030 will be based on PostgreSQL. Can't see an obvious candidate, yet. Perhaps someone has seen some interesting companies heading in this direction?

</comment><comment><USER39> I've been at 3 separate companies where each respective CIO had "get rid of Oracle" as a strategic initiative.

<comment><USER40> Amazon even made a promotional video when they shut down their last Oracle database [https://m.youtube.com/watch?v=9yBP5gnnZi4](https://m.youtube.com/watch?v=9yBP5gnnZi4)

Perhaps it was retaliation for Larry's comments about Amazon in this interview [https://m.youtube.com/watch?v=xrzMYL901AQ](https://m.youtube.com/watch?v=xrzMYL901AQ)

</comment></comment><comment><USER41> How come nobody has implemented an Oracle compatibility mode for PostgreSQL?

Or in general, why don't databases support each others SQL dialect? It can't be that much work, at least if one is content with only supporting the majority of applications, and seems pretty essential for popularizing a specific database.

Looking at the article, supporting Oracle syntax seems trivial in all cases except for adding full MERGE support.

<comment><USER12> You mean like...

[https://www.enterprisedb.com/enterprise-postgres/database- co...](https://www.enterprisedb.com/enterprise-postgres/database- compatibility-oracle)

It's been around for years. Earlier on PostgreSQL did make some efforts of being recognizable to Oracle users... look at Oracle PL/SQL and PostgreSQL PL/pgSQL... very similar and I recall that similarity being intentional.

Also, there is the SQL standard. Rather than supporting all vendors' syntax and features, which can change on the whim of some competitor that probably doesn't have your best interests at heart, it's better to adhere to the standard if you want the broadest applicability. PostgreSQL does exactly that with few deviations from the standard, relative to the industry as a whole. At the end of the day it's really about goals and not every RDBMS has the same goals; with PostgreSQL standards compliance is a goal.

</comment></comment><comment><USER42> As a dev you would use Oracle only if your execs have cut a sweet licensing deal with the Oracle.

<comment><AUTHOR> :)

</comment></comment><comment><USER43> Great article if I ever get back into DB-based development again...

</comment><comment><USER44> One RDBMS that I don't see mentioned much is Tibero [https://www.tmaxsoft.com/products/tibero/](https://www.tmaxsoft.com/products/tibero/)

It's a clone of Oracle & I'm surprised that Oracle legal have never tried to splat it!

Interesting blog post discussing it here: [https://www.tmaxsoft.com/products/tibero/](https://www.tmaxsoft.com/products/tibero/)

<comment><USER45> That's not a blog post, that's just marketing material.

<comment><USER44> Damn, posted the wrong link by accident. Wondered why I was getting downvoted. The link I meant to post was [https://blog.dbi- services.com/tibero-i/](https://blog.dbi-services.com/tibero-i/)</comment></comment></comment>


Decentralized Web Developer Report 2020 - <AUTHOR> https://medium.com/fluence-network/decentralized-web-developer-report-2020-5b41a8d86789 <comment><USER2> By surveying only developers in the ecosystem, did they miss the real barriers to adoption?

(general populace doesn't want the risk of crypto wallets and most developers outside of the ecosystem do not believe the technology is superior) (there are my top 2, add in the extreme ideological tendencies and you have 3 strikes)</comment>


Show HN: A trophy case for displaying your CryptoKitties on your site - <AUTHOR> https://github.com/clairestovall/CryptoKittyCase <comment><USER2> Awesome! I think the idea of showcasing these collectible tokens is great. Would love to see a React port of this, let me know if you're working/ need help on it!

<comment><AUTHOR> thanks! I'm working on it.

<comment><AUTHOR> Here you go: [https://www.npmjs.com/package/cryptocase](https://www.npmjs.com/package/cryptocase)</comment></comment></comment>


Global TFS Outage - <AUTHOR> http://blogs.msdn.com/b/vsoservice/archive/2014/11/24/slowness-in-vso-services.aspx

<comment><AUTHOR> Feeling the pain with this issue this morning!

<comment><AUTHOR> still down!</comment></comment>


MixPanel Offers Realtime iPhone Analytics That Probably Won't Piss Off Apple - <AUTHOR> http://techcrunch.com/2010/07/22/mixpanel-iphone/

<comment><USER2> Mixpanel is still doing the same thing Flurry is. Allowing developers to track almost every user interaction. There is no immunity from Apple's ire. That being said, we love Flurry. Being able to create parameterized custom events allows you to know exactly how users are using and not using your app. For example, a simple little web page link we threw in got so much more usage than a feature we spent weeks on.

</comment><comment><USER3> It'll be interesting to see how they handle pricing on this - most apps could happily live within the free plan of 10k events/month.

<comment><USER4> I don't know about most apps. We have a free navigation app that's not even in the navigation top 100 right now, and it still gets 500 new user launches a day. Just recording that would put us over 10k events.

</comment></comment><comment><USER5> Hahaha, a sword wielding female? Are you sure these guys are programmers? :P

<comment><USER6> I see, because women can't be programmers, amirite?

Your misogyny is showing, and it's ugly. More to the point, this is sexist, offensive, and should have no place in technical circles.

<comment><USER5> I was being sarcastic. The cliché uber nerd is a guy who lives in his mothers' basement, drowns himself in mountain dew, and worships some kind of super hot girl with an axe or sword.

You've misunderstood me. I wasn't implying that woman could not be programmers, I was joking that clearly the guys who made this demo ARE programmers because they're fitting that stereotype.</comment></comment></comment>


How not to attract women to coding: Make tech pink - <AUTHOR> http://www.sfgate.com/news/article/How-not-to-attract-women-to-coding-Make-tech-pink-5602104.php <comment><USER2> I like "don't make it pink" as a slogan to combat tech gender backlash nonsense. Love of math, beauty, and raw power are all universal, let's work on that angle. But at the same time, let's make sure we allow gender-specific themes from both sides to be involved, so we don't quash freedom of expression while at the same time not excluding...

Never mind, it's probably going to take two generations to fix, regardless of what anyone says today. Society will figure all this out when a generation grows up in a time where this is all painfully obvious and not before.

</comment><comment><USER3> I don't know. NFL went pink and it attracted loads of female customers/fans.

At any rate, pink isn't _worse_ than black and red and shiny metal spinning razor blades and ninjas. It's another niche.

</comment><comment><USER4> There's a difference between female people and femininity. Not all women are into femininity to significant degrees or to any degree, and some see it as a questionable social construction [1]. The women in the article are simply proposing that using extreme degrees of femininity to appeal to potential female programmers is not a sustainable campaign, given that that's not what the actual programming world is like. Role models do a lot more for children [2]

[1] [http://feministcurrent.com/8789/femininity-is-no-joke- nomake...](http://feministcurrent.com/8789/femininity-is-no-joke- nomakeupselfie-and-manupandmakeup%E2%80%AC/) [2] [http://reelgirl.com/2013/11/im-not-a-pilot-im-a-pilots- wife-...](http://reelgirl.com/2013/11/im-not-a-pilot-im-a-pilots-wife- says-3-yr-old-girl/)

</comment><comment><USER5> _Excerpt:

To start, there were the pitches from college engineering programs in curly purple typeface accented by flowery images. She started to notice that many websites for budding female engineers are pink. Then there was the flyer for an after-school program hanging in a hallway of her high school. Printed on purple polka-dot paper, it read, "Are you a tech girl? Are you a web diva?"_

They aren't seriously doing this, are they? This is so gag-worthy. I am female and I like fashion and all that and I don't like polka dots. Nor am I big on wearing pink. I don't have an aversion to it but I certainly don't love it or something. I like "classic" fashion design.

I thin if you have a STEM brain, you probably kind of have an engineer's sensibilities. Why would that be particularly different because of what is between your legs?

geez.

</comment><comment><USER6> I find this quote interesting, "I'm very girly. My room is purple. I have floral bedding. I think I'll probably be a very feminine engineer. I just don't like the idea of being pigeonholed."

I don't necessarily like it when I'm incredibly pigeonholed, either. However, I'm genuinely at a loss as to the complaint of the title. If not pink, then what color? Would neon green suffice? What about puke? The article complained even about purple.

Now, mayhap I'm wrong and there really isn't some effort at market testing different designs. But, if there are, and it is showing that pink is working... should they stop? A few data points showing that "girly" color selection is bad does not indicate that it fails at large.

I say this as a man that likes the color pink. Used to have a few pink shirts that I wore so much they literally fell apart. Looking to get new ones. Do I wish more men were comfortable with pink? You bet. I genuinely cringe when I hear fellow parents bemoan their child's color choice. No matter what color it is. (Ok... I'll admit I would slightly regret puke green as a favorite color...)

For my hypothesis, if you want to get more women in technology, you should work on making men and women more comfortable working together. This is especially tough on the stereotypical "geek" male. Heck, we have a hard time working together period. Add a woman to the mix and most of us lose it big time. Is it any wonder more of them don't wish to join us?

</comment><comment><USER7> That other article in the front page: "Clicking Their Way to Outrage", this is exactly what it is talking about.

<comment><USER8> Shhh. The only reason I'm reading the comments on this is for the drama.

</comment></comment><comment><USER9> I don't get one thing. If only 18% of the tech graduates are women, why do people (see wsj articles and random blogs) complain about companies "gender imbalance"[1] (not hiring 50% women and 50% men)? Wouldn't that be positive discrimination? As this article states, 18.2% of the graduates are women, but only 15% of the employees share the same gender, so the gap is 3.2%. Personally, I don't consider that 3.2% as being hugely discriminatory, but rather expected, see below.

The problem starts even before formal education. In the country I was raised in, young women get an education which can be summarized by "get a husband to take care of you, cook and have his children". As long as parents have this mentality, their girls get no incentive to continue with college or anything technical, because this path is unknowingly inhibited since childhood. Most developed countries rely heavily on imported workforce, so a lot of Yahoo's and Google's employees come from countries where the percentage of women graduating in tech is far less than the 18.2% of women graduating in the US.

<comment><USER10> Not necessarily. I'm not presenting this as fact, but merely as a a possible situation and counterexample to what you describe:

Your reasoning would hold if you could assume identical skill distributions between men and women graduates. However, it seems somewhere between possible and likely that women graduates are of higher average skill than the men graduating. With so many barriers and cultural impedances for a woman pursuing tech, it takes at least the same skill (to pass the classes) as their male classmates, plus enough extra competency to ward off the detractors and skeptics that men don't have to deal with.

Again, I'm not saying this is reality, I certainly don't have the statistics to back it up. But it fits my experiences pretty well, and I think your analysis probably is too simplistic to be useful.

And, in regards to your second point, about starting much earlier: I absolutely agree. The more the culture changes, the less this will be an issue.

<comment><USER11> As a possible countereffect -- not one I necessarily believe to be stronger, but one to consider -- is that women might be weaker due to the culture they're coming from. Plenty of males have been encouraged to play with computers from the age of 8 or 10, and so will have large amounts of [at least some kind of] experience coming in to the workforce. Women are far less likely to have had this experience. Additionally, males (who will have more male friends) will quite possibly have plenty of coder friends whom they have learned from. Females statistically will have less, and have less exposure this way.

i.e. the culture not only makes it harder for women to get through learning compsci, but they'll also have less exposure to it in the process. This could potentially make them weaker candidates.

I don't know to what degree that actually happens.

</comment></comment></comment><comment><USER12> From the article: "It seems so degrading," Wheat said. "If you're a girl interested in building websites, you're a 'web diva.' If you're a boy, you're a web developer."

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

I have seen many a job posting looking for web ninjas, rockstars, and the like.

Our industry has a history of being rather informal, and often catering to the narcissistic side of developers. Sometimes this is for the better, sometimes not (e.g. the "bro-grammer" bullshit recently). I personally have no interest in loosing our informal culture to the PC police.

<comment><USER4> You are missing their point. "Ninjas" and "rockstars" aren't particularly gendered (they actually are and we both know it but who would be honest enough to admit such a thing?) but "diva" certainly is. The writer's problem is not the lack of formality -- is that really what you took away?

<comment><USER12> You just made my counter argument for me. Ninjas are definitely gendered.

Yes, the argument is about formality. The claim is that "diva" is degrading because it is unprofessional and narcissistic, where "web developer" is gender neutral and professional. My point is, there are many many examples of non- gender neutral and unprofessional references in our industry. Diva is not degrading, it is targeting a specific audience, as is Ninja.

We definitely have a gender imbalance in the industry. Should we be attacking those trying to rectifying the situation because they do not match your opinion on the extent that society should remain gender neutral?

<comment><USER4> How is that not taking liberties with interpretation? It's also possible that the writer simply feels that the industry (who said anything about "society"?) should strive to be gender neutral. More than one woman is referenced in the OP article and they have opinions that differ by nuanced degrees.

</comment></comment></comment></comment><comment><USER13> I have this exact same problem.

I see merchandise and slogans and whatnot targeting the "geek culture". I hate that stuff, the "witty" and "nerdy" T-shirts with stupid inner jokes about programming, I hate the "developer-targeted" ads with stereotypical geek talk I'm bombarded with, I hate all that, and would never want to be a part of it. I feel it's the same that these women get because tech is getting pink.

But I respond to this by ignoring what annoys me. I don't feel offended when I, as someone who likes to program, is looked at through the eyes of these "geek" stereotypes. Why are these women so offended because someone is catering to some stereotypes that apply to women? I don't feel degraded when companies try to get me to purchase their VPS hosting by targeting me with ads that cater to stereotypes that apply to developers.

This kind of stuff will always happen to almost all demographics. Quite honestly, from my position, I think this is overreacting.

Of course I would love to see more women in tech, and I would do all I can to help that happen. But I think this is fighting a wrong fight. There ought to be some work on helping teenage girls overcome the stereotypes about tech they acquire in high school. But this just seems getting offended because of something that happens to everyone who is part of a certain demographic.

I see that this kind of comment is strongly frowned upon, so if you downvote, please be so kind as to also reply to me and explain your viewpoint on this.

<comment><USER14> Because stereotypes that apply to women are usually about us being stupid, unable to manage finances, being weak, caring only about things like jewelry, not understanding politics, philosophy or anything that requires brain. If you see something pinkified or "for women", you can safely assume it is also dumbed down. It is not always so, but it happens to be true often enough.

And mostly, while many people believe stereotypes about women and tend to judge individual women through them, I found that people are less prone to do the same with geek related stereotypes. If they know you are programmer, you get the benefit of the doubt and people are willing to accept you are not borderline autistic.

On the other hand, convincing them you know your stuff is harder if you are women.

Probably related, negative stereotypes about geeks are equally irritating if I hear them too much, but they are much easier to avoid. You just do not hear nor read them as often as some stupid jokes about women. There are also many positive stereotypes about geeks (geeks being geniuses), positive stereotypes about women ends up pretty much with us being "nurturing".

<comment><USER4> Indeed, OP's claim that he has "the exact same problem" is a lie. There is danger in obfuscating the realities of being part of a social class.

<comment><USER13> Please elaborate.

<comment><USER4> I refuse to try to say something better than what has already been said if I feel I couldn't do a better job [1]

[1] [http://web.calstatela.edu/faculty/tbettch/Frye,%20Oppression...](http://web.calstatela.edu/faculty/tbettch/Frye,%20Oppression.pdf)

</comment></comment></comment></comment></comment><comment><USER15> > Last month, Google announced its plan to spend $50 million over the next > three years encouraging young women to give coding a try. The website for > the project features articles about inspiring women, like Erica Kochi, who > leads UNICEF's Innovation Unit. The first item on a page of coding projects > for girls to try is a 3-D-printed bracelet.

> "It's insulting, not only because it's highly gendered, but also because it > perpetuates this idea of women as consumeristic and narcissistic," said > Losh. "It's kind of like a trifecta of badness."

Professor Losh needs to do some field research. A few hours hanging out in a mall or other place popular with young people will show that a large fraction of young women do in fact do seem to have quite an interest in jewelry.

Including a 3D bracelet project sends the message to young women who have not considered coding that it can be a part of their current world. It's something they can apply to their lives, not something they have to change their lives in order to use.

What's insulting is Losh's implicit assumption that women who wear bracelets must be doing it because they are narcissistic and consumeristic. Why can't they wear them for aesthetic reasons? Or sentimental reasons?

<comment><USER4> Where do you think female interest in jewelry comes from? Are you implying that interest in jewelry is inborn in women? You are begging the question.

The professor is concerned with general culture's image of women, which is perpetuated when female programmers are shown to be printing pink jewelry and perpetually enraptured by childish flowery borders. The existence of individual women who enjoy jewelry for the aesthetics are of no consequence to what the professor is concerned with. You are responding to an assumption that isn't there, but rather one you've imagined as a substitute for an understanding of the her social analysis.

>"It says that the only way you can be interested in technology is if it is girly," said Wheat. "I'm very girly. My room is purple. I have floral bedding. I think I'll probably be a very feminine engineer. I just don't like the idea of being pigeonholed."

<comment> guard-of-terra "Are you implying that interest in jewelry is inborn in women?"

This is an extremelly important question with regards to history of our species, so if you by some chance have an answer be sure to share it with us along with rationale.

<comment><USER4> It's not. Such a thing would be impossible. Look up "gender socialization" and read about girlhood:

[http://www.metafilter.com/121190/teenage-girls-they- havent-b...](http://www.metafilter.com/121190/teenage-girls-they-havent-been- living-theyve-been-performing)

[http://www.theguardian.com/lifeandstyle/womens- blog/2014/jan...](http://www.theguardian.com/lifeandstyle/womens- blog/2014/jan/10/little-girls-deserve-better-toys-sexism)

[http://sodisarmingdarling.tumblr.com/post/34106027759/what-i...](http://sodisarmingdarling.tumblr.com/post/34106027759/what- its-like-being-a-teen-girl)

[http://rebeccahains.wordpress.com/2014/01/20/is-my-son- smart...](http://rebeccahains.wordpress.com/2014/01/20/is-my-son-smart-is-my- daughter-skinny/)

<comment> guard-of-terra The articles you quote, while flamebait, don't try to answer the forementioned question. As for "impossible" \- why?

<comment><USER4> That women talking about being girls is "flamebait" says more about you than the articles.</comment></comment></comment></comment></comment></comment>


How to Print Floating-Point Numbers Accurately (1990) [pdf] - <AUTHOR> https://lists.nongnu.org/archive/html/gcl-devel/2012-10/pdfkieTlklRzN.pdf <comment><USER2> Back in 2007-ish I spent a bunch of time trying to figure out how to print floating point numbers losslessly. Annoyingly, there's no printf() format string that says "print exactly as many digits as needed so that it parses back to the same value". You can specify a number of digits to use, but to avoid printing unnecessary digits in all cases (e.g. "0.20000000000000001" for 0.2) you must ask for a maximum of 15 digits, but in some cases you will lose data if you ask for fewer than 17 digits.

After asking around, I came across the Steele & White paper, and the implementation known as `dtoa()` written by David M. Gay. At the time, this seemed to be understood to be the "correct" answer.

But then I looked at the code: [http://www.netlib.org/fp/dtoa.c](http://www.netlib.org/fp/dtoa.c)

Uh.

There's a lot to dislike about that code, but arguably the worst thing is that it isn't thread-agnostic. It mutates global variables and protects them with a global mutex. A global mutex lock, just to print a number! Whyyyyyyyy?

So then I tried something different: I wrote some code that would do sprintf() with 15 digits precision first, then parse it with strtod() to see if it came back exact. If not... then I did sprintf() with 17 digits precision... and called it a day.

In benchmarks, this turned out to be just as fast as calling dtoa().

And so that's how the Protocol Buffers library deals with numbers when writing TextFormat:

[https://github.com/google/protobuf/blob/ed4321d1cb3319998411...](https://github.com/google/protobuf/blob/ed4321d1cb33199984118d801956822842771e7e/src/google/protobuf/stubs/strutil.cc#L1174-L1213)

But the bigger lesson for me was: Transmitting floating-point numbers in text is _awful_. People have no idea how ridiculously complex this is, because it seems like it ought to be simple. When you send JSON with numbers in it, you are probably invoking code that looks something like dtoa(), over and over and over again. And that's just to write them out; I have no idea how complex the parsing side is.

Please, folks, think of the CPU cycles. When sending numeric data, use a binary format.

<comment><USER3> > When sending numeric data, use a binary format.

Binary representations of floating point number are a bit of a nest of vipers too, though. You can _probably_ just pipe IEEE floats across the network as bytes, in practice, but it's risky.

It's probably safer in many cases to just transmit things in fixed point.

<comment><USER4> I can think of a few possible problems with IEEE754-across-the-wire, such as:

\- not all hardware supports them

\- subnormal numbers are annoying

\- NaNs can be tricky to handle, such as signalling and (if payloads are used) security risks through NaN payloads.

Which are you thinking of? Or something else?

<comment><USER5> > I can think of a few possible problems with IEEE754-across-the-wire, such > as:

> \- not all hardware supports them

let's be reasonable : how many people who run architectures which don't have any float would actually send floats to them over the network ?

<comment><USER6> The parent didn't say "don't have any float". I have had to translate between little endian IEEE754 and big endian IBM format, roughly copying what HDF did. Protein crystallographers invented their own binary file format rather than just using HDF, and didn't define the binary floating point format, so that the files weren't portable initially.

</comment></comment></comment></comment></comment><comment><USER7> Have you seen this POPL'16 paper? [https://popl16.sigplan.org/event/popl-2016-papers- printing-f...](https://popl16.sigplan.org/event/popl-2016-papers-printing- floating-point-numbers-a-faster-always-correct-method)

<comment><USER8> Note that the claims in that abstract were retracted because the authors messed up when benchmarking. Note the changed title and abstract here: [https://cseweb.ucsd.edu/~lerner/papers/fp-printing- popl16.pd...](https://cseweb.ucsd.edu/~lerner/papers/fp-printing-popl16.pdf)

<comment><USER9> It is really annoying that CS conference proceedings don't have a mechanism for retraction or post-publication errata.

<comment><USER10> We were able to update the paper on the ACM website: [https://dl.acm.org/citation.cfm?id=2837654](https://dl.acm.org/citation.cfm?id=2837654), although looking at it now, they did not update the title. I'll see if they can fix that.

There is very exciting news coming up with printing floating point. Ulf Adams from Google will be presenting a new algorithm called Ryu that appears to be super fast, simple, and perfectly accurate. Assuming the claims are correct, Ryu ought displace all of the current algorithms.

<comment><USER9> Thanks! My comment was not meant as a criticism of your work (I still like the paper, and do appreciate that you went to the effort of putting the amended results online), but more of the CS conference publishing model.

I look forward to reading the Ryu paper.

</comment></comment></comment></comment></comment><comment><USER11> Presumably this article from 1990 does not mention C99's hexadecimal floating- point literals, for example:

printf("%a\n", 0x1p-10);

It's a shame that JSON doesn't accept them.

</comment><comment><USER12> I've been using Milo Yip's implementation of Grisu2, which references another paper: [https://github.com/miloyip/dtoa- benchmark](https://github.com/miloyip/dtoa-benchmark)

</comment><comment><USER13> For anyone looking at a practical implementation, Swift recently migrated to a Grisu2-based algorithm: [https://github.com/apple/swift/commit/97a934c412a26f0222f57d...](https://github.com/apple/swift/commit/97a934c412a26f0222f57d5e4cd7467a516eb6af)

<comment><USER14> For reference and discussion, skimming the docs, the algorithm is described here [0] and contains some improvements suggested by the "Errol paper"[1]

[0]: [http://www.cs.tufts.edu/comp/150FP/archive/florian- loitsch/p...](http://www.cs.tufts.edu/comp/150FP/archive/florian- loitsch/printf.pdf)

[1]: [https://news.ycombinator.com/item?id=10915182](https://news.ycombinator.com/item?id=10915182)

</comment></comment><comment><USER15> See also:

William D. Clinger, "How to Read Floating Point Numbers Accurately," Proc. ACM SIGPLAN '90, pp. 92-101.

pdf: [http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.45....](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.45.4152&rep=rep1&type=pdf)

And David Gay's implementation: [http://www.netlib.org/fp/](http://www.netlib.org/fp/)

</comment><comment><USER16> I've been looking at key-value stores recently, and I wonder what people think about collating numbers of heterogeneous types.

FoundationDB tuples have type codes that segregate values of different types, so that the strings "1" and "2" sort before the integers 1 and 2, which sort before the single-precision floats 1.0f and 2.0f, which sort before the double-precision floats 1.0 and 2.0.

The database that I test supports double-precision IEEE floats, and a proprietary decimal float with a signed 64-bit significand and signed 8-bit exponent. When converted to string for use as keys, these collate as expected. The price of this is that you don't get shortest representations of the sort sought by this paper and others. Otherwise, a binary and decimal float that compare unequal could convert to the same string.

I guess it's kind of unusual to use floats as keys, and more unusual still to use both binary and decimal floats, but I wonder if there is another strategy for collating them.

</comment><comment><USER17> That's the paper referenced in this one, which more people may have seen, also about correctly converting floats to strings and vice-versa: [https://www.ampl.com/REFS/rounding.pdf](https://www.ampl.com/REFS/rounding.pdf)

</comment><comment><USER18> A useful website for understanding float issues [http://floating-point- gui.de](http://floating-point-gui.de)</comment>


When Shoes Were Fit with X-Rays - <AUTHOR> https://daily.jstor.org/when-shoes-were-fit-with-x-rays/ <comment><USER2> The Chinese would check for 'illegal' pregnancies during the days of the one- child policy. They would use a solid state x-ray emitter as a source of radiation and a passive fluorescent screen, both probably because there was no reliable electrical power available and this is a very cheap to manufacture setup. The dose emitted would be quite high due to the insensitivity of the screen, the degradation over time of the source (requiring a higher than necessary quantity of radioactive material at the start to get a long useful operating life) and the duration, on the order of seconds.

I've tried to find a video of this but alas, no luck. The one I remember seeing was extremely primitive, safety was basically non-existent, both for the woman being screened (and her unborn child, quite possibly to be aborted anyway if detected) and the operator of the device.

</comment><comment><USER3> Boy, people were _careless and stupid_ back then.

I wonder how many things we do today will be seen in a similar way 50 years from now. If you believe everything you read somewhere online, then pretty much anything today is poisonous and will kill us, but just statistically some of these have to be right.

<comment><USER4> I'm betting for our carelessness towards endocrine disruptors. The toxic plastics in baby bottles and the non stick frying pans for example

<comment><USER5> The synthetic hormones in The Pill don't break down either, they are steadily accumulating in the drinking water supply.

</comment></comment></comment><comment><USER6> _They were designed to look like furniture, not medical objects. One on view at Chicago's International Museum of Surgical Science has floral cut-outs in its wooden cabinet, giving it the look of an heirloom chest._

A lot of late 19/early 20th century equipment is like that. Wood was a common material and ornate design was simply a way to show off craftsmanship.

</comment><comment><USER7> Could we actually do this in a safe way? Having ill fitting shoes can cause a lot of long term damage. There could be a case that it's worth the X-ray risk...

<comment><USER8> You only need to map the surface. Just use milimeter wave scanners (the kind used by the TSA).

<comment><USER9> Or basic 3D stereographic techniques or LIDAR. Visible light suffices here; just rotate the camera/laser around the feet and build up the 3D model.

This may be mostly irrelevant though because unless you have problems with your feet you can tell if shoes fit simply by the feel.

<comment><USER10> It's still very relevant for a couple of reasons.

Perhaps most obviously, you just can't try a shoe on if you buy online. You can if you buy five pairs and return four, as some do, but it's a lot of hassle and a waste of resources for all the shipping back and forth.

Secondly, a significant portion of the population (tens of precent) have "problems" enough that most shoes in a store don't fit, meaning you have to try on a lot before you find one that does. And even if you don't have such issues, sizing between brands (and even styles) is so inconsistent that you usually have to try multiple different sizes to decide which one fits you. Having a 3D model paired with an AI system that tells you which shoes fit and what sizes to pick saves a lot of time for a lot of people, both shoppers and staff.

Finally, if you ever want to order custom made footwear, there is really no way around measuring your feet. And arguably the only reliably well-defined and repeatable way of doing that is to do a 3D scan to capture the shape.

<comment><USER11> My aunt would knit socks for me as a kid. I'd stand on a sheet of paper and my mom would draw the outline of my foot, and mail her the sheet. Worked great!

<comment><USER10> That method is actually used by many shoemakers when you order a pair of bespoke shoes (in combination with a series of tape measurements). It's not accurate enough to produce a fitting shoe in a single attempt, however, so what usually happens is they make a "test shoe" based the measurements and drawing, then modify the last after having you try that on. This procedure can be repeated more than once if needed.

Knitted socks are quite a lot more forgiving than leather shoes, fortunately, since the material accommodates by stretching when you put it on. I'm not surprised it worked well for you and your aunt!

<comment><USER12> Thanks this is interesting. Is part of the problem that people's feet change size with weight?

I have the impression that this is half the battle with finding shoes myself. Probably the bones are the same size left and right, but I think they deform differently as I stand (or walk) in a way that depends on the contours of the shoe... and that sounds like a problem that would be hard to model with laser scanning or whatever.

<comment><USER10> You're right that the feet deform significantly when you stand on them. For that reason you usually measure them load-bearing (i.e. you stand up with even weight distribution on your feet).

I think it's more likely that it's the deformation of the shoe that is uneven than that the shoe affects the deformation of the foot much. An exception would be if it has a built-up sole with support for the arches, preventing the arches from collapsing.

Either way, it's a complex process that is hard to model, just like you say. The way we're getting around it is by collecting various data on what people end up liking and then infer the properties of the shoe, rather than trying to explicitly model it. So the solution is a combination of 3D scanning and machine learning.

Also worth mentioning, by the way: most people actually have slightly different size and shape on their left vs. right foot. For about 50% of the population the length differs by more than half a US size. Being perfectly symmetrical is the rare case.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER13> I have problems ordering shoes online and getting the fit right. Depending on brand and type of shoe, I can be anywhere between 44 and 46. And then the US and EU size and cm don't match up, my Onitsuka are 11-45-28.5 and fit exactly the same as Chucks, which are 11-44.5-29. But cycling shoes are the worst, and I have to buy those online, because local bike shops don't offer a huge choice. Had to return a pair of Giro two times, first size 45, then 45.5 and 46 was the one that fit. We need more standardized sizing, but how to get all manufacturers on board? And how about a 3D foot scanner and online filters which pick the correct size based on your 3d foot model?

<comment><USER14> Phones with depth sensors could be helpful here. It's actually possible to do photogrammetry with just the camera, but the depth sensors make it easier and more reliable.

What I'd really like though is a machine that can construct a good shoe specifically for your foot in a reasonable amount of time. Even if it took a week, I might be willing to wait for that for custom fit shoes (as I do for new glasses for example).

Generally I could build this machine and would really like to, but I haven't found a good idea on materials. If you could make them from recycled bottles and natural fibers it would be interesting too. Or maybe a totally woven shoe? Does anyone have any YouTube links or similar on unique ways to make shoes that could be done in a machine of some limited cost and complexity?

<comment><USER10> Technologies for mass scale customisation is being developed by several big players in the market. However, also consider that there are already hundreds of thousands of different shoe styles in the market, so finding a pair of perfectly fitting shoes can to a large degree be considered a search problem rather than a customisation problem. With appropriate 3D scanning technology, this can be done today.

Disclosure: I work for a technology provider in this field.

<comment><USER14> Lately I've been thinking about the connection between markets and "othering". I'm wondering if distributed manufacturing can help, and interested in DIY "micro factories" that can be made in a small shop using 3D printers and basic hand tools.

So it's a different approach. Basically I'm starting to make better and better robots with my 3D printers and I want to make open source factories with the tech. :)

</comment></comment></comment></comment><comment><USER8> Is there no service that uses automation to make custom-fitted shoes yet? This seemed like such an obvious thing to me several years ago when 3d printing and the like started becoming a fad, and I figured there would be a startup that did it (or one of the big companies would work on it). But if anyone is doing it, I as a consumer haven't noticed yet. What gives?

I can't see cost being an issue - when you look at how shoe construction works, it should be straightforward to tweak the shoe shape for each shoe without significant increase in manufacturing cost.

<comment><USER10> Several well-known brands are working on this in various ways. Adidas has a cooperation with Carbon 3D to produce individualised soles for shoes you order, as one example[1]. Robotic knitting is another area I know some players are working on, for making custom uppers. You'll likely see offerings for customised footwear based on these technologies appear on the market in the next couple of years.

I'd expect it to take a number of years before the manufacturing processes have matured and evolved enough to get the price points down to the level that most people would consider an option when buying footwear, though.

[1] [https://www.carbon3d.com/stories/adidas/](https://www.carbon3d.com/stories/adidas/)

</comment></comment><comment><USER15> Was in my local shoeshop in the sixties. Have used. Was removed pretty soon after I used it.

</comment><comment><USER16> A name like "Pedoscope Company" would certainly raise a few eyebrows today!</comment>


How to build a simple neural network in 9 lines of Python code - <AUTHOR> https://medium.com/technology-invention-and-more/how-to-build-a-simple-neural-network-in-9-lines-of-python-code-cc8f23647ca1 <comment><USER2> How to draw an owl in two lines of code;

        import owl
        owl.draw()

<comment><USER3> I chuckled, but I don't think the criticism is fair. The imports are for generic math tools that aren't specific to neural networks, the most complex one being a dot product, so I'd say there's no trickery here.

</comment></comment><comment><USER4> >The human brain consists of 100 billion cells called neurons, connected together by synapses. If sufficient synaptic inputs to a neuron fire, that neuron will also fire. We call this process "thinking".

86 billion neurons, with many thousands of synapses between each.

If enough action potentials from presynaptic neurons arrive within a little enough amount of time, the postsynaptic neuron will _probably_ also fire.

We do not call this process "thinking".

</comment><comment><USER5> Yeah in general I find that cleaning the data, doing exploratory analysis, doing sensible feature engineering, etc. are much more involved tasks than running ML algorithm XYZ.

</comment><comment><USER6> I've often seen many fixed-input posts like this. I've been looking for something that will allow me to train a model that will take a varying number of inputs and produce a single output.

So for instances:

          [list of 10 items] -> Some Number
          [list of 500 items] -> Some Number

These items are not reducible to a single scalar value. They have too many widely varying meanings.

Can anyone point me in the right direction?

<comment><USER7> I am not an expert, but maybe look into recurrent neural networks [0]? These things can turn a sequence of inputs of possibly arbitrary length into a fixed size internal representation, and can output a single value derived from this representation.

[0] [https://en.wikipedia.org/wiki/Recurrent_neural_network](https://en.wikipedia.org/wiki/Recurrent_neural_network)

<comment><USER8> most implementations are not arbitrary length, but instead rely on padding to make it a fix length sequence.

</comment></comment></comment><comment><USER9> I've been meaning to do a similar exercise, and this one is very helpful. Thanks.

</comment><comment><USER10> What he calls back propagation is actually gradient descent.

<comment><USER11> Backpropagation (as in, the training method for NNs) is an instance of gradient descent. There are many other instances (e.g. any EM algorithm does gradient descent, as does minimum search on a simple real function), so using the more specific term is appropriate.

</comment></comment><comment><USER12> for the 400th time.</comment>


How the Hidden Track Faded from Recorded Music - <AUTHOR> http://www.atlasobscura.com/articles/how-the-hidden-track-faded-from-recorded-music <comment><USER2> Some discussion from three days ago:

[https://news.ycombinator.com/item?id=10650780](https://news.ycombinator.com/item?id=10650780)</comment>


Steve Jobs and the Xerox Star demo - <AUTHOR> http://webpages.charter.net/allanms/2004/06/notes-towards-memoirs-of-bit-player.html

<comment><USER2> Why would Steve Jobs be freaking in 1981 when he already saw it back in 1979?

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

Also Folklore.Org says the same thing: [http://folklore.org/StoryView.py?project=Macintosh&story...](http://folklore.org/StoryView.py?project=Macintosh&story=Busy_Being_Born.txt)

 _"This is obviously the biggest single jump in the entire set of photographs, and the place where I most wish that Bill had dated them. It's tempting to say that the change was caused by the famous Xerox PARC visit, which took place in mid-December 1979, but Bill thinks that the windows predated that, although he can't say for sure."_

<comment><USER3> Maybe because he knew how far away his Mac launch was and it made him nervous to have the Star out there already.

<comment><USER2> With that price tag?

 _"Although a single unit sold for $16,000, a typical office would have to purchase at least 2 or 3 machines along with a file server and a print server. Dropping $50,000 to $100,000 for a complete installation was not an easy sell."_</comment></comment></comment>


Virtual Courses in Computational Linguistics - <AUTHOR> http://arbuckle.sfs.uni-tuebingen.de/en_virtual_courses.shtml

<comment><USER2> The Stanford sponsored <http://www.nlp-class.org> starts on January 23rd, in just a week. Jurafsky and Manning are the profs.

You should really consider taking it if you want a CL course. The previous installments of Stanford's new initiative have been awesome good.

</comment><comment><USER3> Is it just me or do none of the links work?

<comment><USER4> 1st 2 dead, Grammatikformalismen und Parsing has the material (can you read German at that level?) try these,

[http://search.mit.edu/search?site=ocw&client=mit&get...](http://search.mit.edu/search?site=ocw&client=mit&getfields=*&output=xml_no_dtd&proxystylesheet=http%3A%2F%2Focw.mit.edu%2Fsearch%2Fgoogle- ocw.xsl&proxyreload=1&as_dt=i&oe=utf-8&departmentName=web&courseName=&q=computational+linguistics&btnG.x=0&btnG.y=0)

(same courses) [http://www.ocwconsortium.org/index.php?option=com_coursefind...](http://www.ocwconsortium.org/index.php?option=com_coursefinder&view=search&uss=1&Itemid=9&q=computational+linguistics&l=&b.x=0&b.y=0)

(nothing CL yet) <http://openclassroom.stanford.edu/MainFolder/HomePage.php></comment></comment>


The Turley Effect: can a rogue designer make MTV cool again? - <AUTHOR> http://www.hopesandfears.com/hopes/now/media/216993-the-richard-turley-effect-bloomberg-mtv? <comment><USER2> Just checking but is "deliberately bad photo face" now a thing?</comment>


I Was a Hacker for the MPAA - <AUTHOR> http://www.wired.com/politics/onlinerights/news/2007/10/p2p_hacker

<comment><USER2> The stakes are so high for piracy now for anyone who has anything to loose to setup and run there own servers. It is a lot different now then when I was in high school and ran a 3 line "warez" bbs system. Back then it was mostly teenagers wanting to get software they couldn't afford so they could learn how to use it and games. Now it is music and movies both of which are super cheap so there is no logic to it other then getting it free.

</comment><comment> daniel-cussen Whoa.</comment>