Ask HN: What Python web programming frameworks and tools are you using? - <AUTHOR> I'm interested in hearing from the community about what tools you are using for building web applications in Python.
This was last asked about half a year ago (http://news.ycombinator.com/item?id=1357925) and
2 years before that (http://news.ycombinator.com/item?id=153487), but things are changing fast, especially with the recent popularity of NoSQL, so I think it's worth bringing up again.
So, what tools, databases, web servers and frameworks are you using for your latest Python web application projects?  Or, if you've abandoned Python, what language have you moved to, and why? <comment><USER3> framework: Flask

database: Postgresql

server: UWSGI + Cherokee

Flask is a very nice framework, and the documentation is awesome. I've tried a lot of Python frameworks out before deciding on Flask. It's a paralyzing decision - there is just so much out there. The process of choosing a web framework is filled with information overload - from reading about the framework, dabbling with the code, and finally learning the actual framework. For the reason, I recommend going with a microframework. You learn what you need as you go. So this lead me to Flask.

Two things set Flask apart (for me) - the documentation and the extensions. Just check out the site <http://flask.pocoo.org> for more information. You also want to be assured that development on the framework is not just going to be dropped some day. It really feels like this framework is going places. (My initial inclination was toward CherryPy, but the documentation is bad. After all these years.)

My dev work is mostly done on Windows, and for an IDE I've taken to using JetBrain's PyCharm. (I'm primarily a .NET developer, and I find it more convenient to use Windows to avoid context switching. The fact that I deal with the massive and all-encompassing .NET is also a major reason I went with a Python microframework). On Linux, I can get by with Emacs.

Using Ubuntu in production environment.

<comment><USER4> I've used Django for years, but Flask is the bomb.

</comment></comment><comment><USER5> Django, though I've realized that certain projects of ours could be implemented better with a more lightweight framework. Other than that, not much besides Komodo Editor and Kate and of course the rest of the usual LAMP stack.

I'm quite satisfied with Python. I can't see any reason to move to another language for general web development, but while Python is quite current and modern, it isn't esoteric, geeky or on the cutting edge. So, I'm dabbling with Clojure and Scala, specifically Scalatra and Compojure.

</comment><comment><USER6> First, a proviso: I'm learning. That being said, this is a commercial project, so it's got proper constraints on it.

I'm using web.py, testing with nose, doing database work with sqlalchemy to a postgres back-end. Looking at Paste and wondering if I should be using that as well, but currently a simple apache2 mod_wsgi container is doing ok.

I deploy to Debian stable but develop on Ubuntu Lucid, which means that in order to keep myself sane I've built Python 2.6 and virtualenv packages for debian, and install all the packages I need with pip. I'm still getting my head around this, because I've not used these tools at all before.

Deployment is done by pushing to a remote git master branch, where the remote live branch is what's checked out and running.

Styling is all blueprint.css, and I'm contemplating whether to use my usual Compass workflow or not. So far it's not been needed, but I haven't pushed things very far yet.

I'm not in the sort of space where NoSQL would be an advantage, so I can't comment on it.

</comment><comment><USER7> Framework: web2py With web2py the underlying tools don't matter much. For the sake of completion: MySql, Apache, Ubuntu, jQuery, ez-css.

But you can use whatever you want.

</comment><comment><USER8> framework: NONE, NONE, NONE web server: CherryPy database: SQLite for dev/test, PostgreSQL for prod, investigating NoSQL data access: SQLAlchemy database schema: SQLAlchemy-migrate OS: Ubuntu, but perhaps eventually NixOS DVCS: Mercurial via BitBucket dependency mgmt: APT, setuptools, perhaps Nix JavaScript: MooTools

I am a web application security engineer (among other things), so I screened and was forced to reject all frameworks because they don't adequately address security (not even webpy), and because they are too heavy.

Instead, I am building a very lightweight, simple, but integrated web content generation layer directly in Python using built-in string formatting. I construct a page using a trivial DOM-like object model that renders to a string web response (HTML, CSS, JS). I push Model data into the DOM-like View under the direction of a page Controller (MVC pattern). However, my View contains the logic to properly encode output contextually to avoid common security vulnerabilities in the web response. Likewise, I have exhaustive input validation to deal with the data in the web request.

</comment><comment><USER9> CherryPy, in combination with oursql (+DBUtils to make it multithread safe because libmysql.so isn't). Caching is done by memcached (plus, I must look into Varnish). Templating by HTMLTemplate. I made two small patches to CherryPy to make it more agreeable for a site which serves 900 domain names (using the VirtualHost dispatcher).

</comment><comment><USER10> Python: Django (+ various modules) & fabric

Web Stuff: jQuery, less.js

Database: PostgreSQL

Tools: Emacs

</comment><comment><USER11> \- TextMate

\- Google App Engine

\- <http://www.tipfy.org> (GAE specific framework)

<comment><USER12> I hate App Engine, but unfortunately I will probably be doing at least a few more projects on it, so thanks for the link to tipfy, maybe it'll help.

<comment><USER3> I have a site using Flask on GAE, and it works pretty well. Here's a reference to get started.

[http://www.franciscosouza.net/2010/08/flying-with-flask- in-g...](http://www.franciscosouza.net/2010/08/flying-with-flask-in-google- app-engine.html)

</comment></comment></comment><comment><USER13> Setup: * Pylons+SQLAlchemy+formencode+Mako+WSGI apps * PostrgeSQL * Nginx

Tools: * Virtualenv * Fabric

Best combination. Zope, Django, Web2py, web.py are just not that flexible & reliable for advanced web applications (IMHO).

<comment><USER14> and of course this is a completely neutral and unbiased suggestion. LOL

</comment></comment><comment><USER15> Django.

Disclaimer: We're about to launch Djangy.com, so my opinion is obviously biased.

<comment><USER16> I happen to have a djangy account and I tried some of it few days back. I made a simple hello world app and deployed it but it took longer time to go live than I had anticipated, esp. in comparison to Appengine.

Other than that I'd like if you could also give a sense of expenses that I might run into if I deploy my app on djangy. The details in terms of pricing are lacking there.

Just some feedback. I know it's in private beta. All the best.

<comment><USER15> Interesting. Thanks for your feedback.

Would you mind emailing me at firstname.lastname@example.com? I'd like to ask you some details about which app was yours, and what exactly your experience was. We're about to roll out a TON of new changes within the next few days, and we'll be inviting quite a few more users into the beta program. I want to make sure we're covering all the bases and keeping users happy.

Thanks :-)

</comment></comment></comment><comment><USER17> GAE confuses me. How does one create a dynamic user interface? Does Django cover that? I'm trying to build a simple program that's a sort of GUI/wizard for composing SQL queries. It would be dead easy in .NET but I don't know where to start with GAE/Python. Is the idea that you build the front end in Javascript/HTML and your Python code does the processing behind the scenes? This is probably a n00b question but I'm finding it hard to get answers.

<comment><USER12> You can compose queries like this:

query = myModel.all().filter("property_1 =", value)

query = query.filter("property_2 =", value)

Here's a gotcha... be sure to have a space between "property_1" and "=", "property_1=" won't work (but it won't raise an error either).

Be aware that the Datastore has very limited support for querying in general, and you will certainly not have anywhere near the kind of power you are used to when composing queries in .Net with something like LINQ.

GAE is a good start if you want to learn Python, but it is a terrible platform for web development. You will find yourself stymied and frustrated by its inflexibility, the need to give up your normalized data model from Day 1, lack of referential integrity, and the awful performance compared to a real SQL database.

Oh, and the constant outages, the scheduled maintenance that borks the whole system for a week, the backup tool that takes 4 hours to run and then crashes trying to restore the backups... I have a long list :)

<comment><USER17> Thanks for the advice. My program wont be doing any heavy lifting, it's just a simple tool to guide the SQL-writing process and save the user typing everything out down to the last semi-colon; a visual aid really. All I need is a tiny bit of graphical whizzbang, so it's not a totally static form - <USER2> labels/menus change somewhat, more fields/labels are added, according to the user input.

<comment><USER12> try to stop thinking in terms of SQL, if you can - although they call it GQL it's only superficially similar. One particularly big gotcha is that you can only return keys or whole objects in your queries, and if you return an object it has to deserialize all the data associated with that object, so think twice before storing binary data against a frequently queried object - look to the BlobStore (this is NOT the same as a BlobProperty) or a separate object to hold larger chunks of data.

This is something to consider at the get go, you'd be surprised how quickly performance degrades (ie a hundred or more items, not thousands)

</comment></comment></comment></comment><comment><USER18> I use Django and PostgreSQL. Currently I'm using Eclipse which is much slower than Vim, but leaves my Vim free to do more general text editing (like RST).

</comment><comment><USER19> CouchDB (with couchdb-python) and Jinja on top of bare WSGI (through mod_wsgi). Werkzeug is looking appealing, though. On the browser side, jQuery.

</comment><comment><USER20> For what I use python for on the web at this moment, I basically use Pylons and implement a RESTful API. I can then use jQuery on the front end.

</comment><comment><USER21> Pylons, Postgresql on Apache with mod_wsgi, I also have a few deployements with cherrypy behind mod_proxy and a few wsgi apps without framework.

</comment><comment><USER22> Bottle!

Deadly simple, but still everything you need :)

<http://bottle.paws.de/docs/dev/index.html>

</comment><comment><USER23> Webob + a few WSGI middleware libraries, Mako, MongoDB, mod_wsgi (Apache), Varnish

I'll probably try Flask for my next project.

</comment><comment><USER24> stand-alone Django, GAE (and its built-in Django fragments). Database: MySQL. IDE: Emacs and Eclipse (for GAE work) That said, I miss Plone and Zope. I really wish we could return our heavyweight Java-based CMS and get our money back...

</comment><comment><USER25> django with postgresql. The reason for Django was because of the admin screens that cut down the dev time for the custom cms that i built. if I take admin screens out of the scope, I most likely would have gone with Pylons ...

</comment><comment><USER26> Tornado, Postgres, sqlalchemy, nginx, fabric, PyDev(Eclipse)

<comment><USER27> how did you get that setup working?

</comment></comment><comment><USER28> framework: web2py Postgresql Blueprint CSS Linode JQuery

</comment><comment><USER29> Django on RHEL with nginx/apache, pip, virtualenv.

</comment><comment><USER30> Django OR cgi+flup+sqlalchemy

Idle and Visual Studio for editing

</comment><comment><USER31> \- Emacs

\- Flask

\- a lot more JavaScript than before

</comment><comment><USER32> framework: Tornado

database: MySQL with MySQLDB

web server: Tornado, fronted by Nginx

monitoring: supervisord and Monit

NoSQL: redis (for search index)

</comment><comment><USER33> \- Django

\- Vim

\- django-extensions

\- fabric

</comment><comment><USER34> Tornado MongoDB Vim Fabric

</comment><comment><USER35> PyTables, Django, Piston

</comment><comment><USER36> Tornado, nginx, MySQL.

</comment><comment><USER37> webpy, mako templates, sqlalchemy, nginx

</comment><comment><USER38> Django

PostgreSQL + Mongo + Memcache

Apache + wsgi

</comment><comment><USER39> Django (with Jinja2 instead of built-in templates) and django_extensions

Werkzeug

Jinja2

PostgreSQL

Redis

fabric

celery

vim

git</comment>


Facebook Connect and Open Graph to become the standard for new web startups? - <AUTHOR> http://www.gamechangeventures.com/news/2009/10/29/facebook-connect-and-open-graph-to-become-the-standard-for-n.html

<comment><USER2> I'm glad FB is opening up.. now we'll see some cool FB mashups :) I'd love to see 2D visualizations of the people in my networks.. like an FB-touchgraph [<http://touchgraph.com/navigator.html>]..</comment>


Ask HN: How to get unstuck with programming skills - throwaway-jr (Using a throwaway account to protect my current job)
Little bit of background: I've been programming as a hobby for nearly 20 years now, mostly full-stack web stuff (PHP, Java, Python, Ruby, Javascript), worked in Silicon Valley and an European startup, done some freelancing and now I'm working as a junior software consultant in Europe.
Even though I've been spending almost my entire life programming and learning programming, I still can't seem to grab enough skills to become a non-junior. I try to build hobby projects (can't share any to remain anonymous) but almost always struggle to build anything worthwhile.
I can write code but that's pretty much it. I can't seem to learn how to architecture software, how to build interactions between different parts of the app and can't make technological decisions about different technology choices.
As a junior, it's always someone else responsible for making bigger decisions or building important integrations so I will never get other experience than maybe reading through their code. But that stuff doesn't seem to stick with me.
At the same time I see people with zero experience take on three-month bootcamps, work as a junior for a year and then head on to building a career as a successful developer while I stay in the same spot never able to progress.
What can I do to escape the situation and learn how to build real-life stuff? <comment><AUTHOR> The only way is to have confidence in you. No one is perfect everyone learns by trial and errors. You become perfect via practice

<comment> throwaway-jr Sure but as I mentioned, I've been practicing for about 20 years. Somehow things are not sticking and I'm looking for more actionable advice.

<comment><USER2> You may just need a better feedback cycle. Find a position (junior or mid- level) that will allow you to make architecture decisions or proposals, and get feedback on how your proposal might be improved.

This process is called "design review".</comment></comment></comment>


A Brief History of Computer Music - <AUTHOR> https://www.youtube.com/watch?v=KVIsafhLm1Q <comment><AUTHOR> From the same presenter, Anders Norås (@anoras)

A Brief History of Computer Art

[https://vimeo.com/291392795](https://vimeo.com/291392795)

Some counter programming for your Super Bowl Sunday ;)</comment>


A free/open computer on a card that you swap in and out of a 3D printed laptop - <AUTHOR> http://boingboing.net/2016/08/04/a-freeopen-computer-on-a-card.html <comment><USER3> A step closer to the Sandbenders computer from William Gibson's "Idoru":

 _...he used to tear up her hardware, the designer 's, and put the real parts into cases he'd make in his shop. Say he'd make a solid bronze case for a minidisk unit, ebony inlays, carve the control surfaces out of fossil ivory, turquoise, rock crystal. It weighed more, sure, but it turned out a lot of people liked that, like they had their music or their memory, whatever, in something that felt like it was there... And people liked touching all that stuff: metal, a smooth stone... And once you had the case, when the manufacturer brought out a new model, well, if the electronics were any better, you just pulled the old ones out and put the new ones in your case. So you still had the same object, just with better functions._

<comment> josh-wrale This reminds of something...

As a kid, I played the game "Neuromancer" (1989, Interplay) which is based on the book of the same name by William Gibson. The images of "decks" (portable computers) always struck me as odd and quite visually disconnected from the combination appearance of my Amiga 500 and its Commodore monitor. And yet, looking at a MacBook Pro from the front or side, it looks a great deal like those renderings of decks in that game (minus some of the features that make the images in the game more than just rounded rectangles). I know laptops existed earlier than that time, but to think they got a futuristic drawing so right it astounds me (not that we're quite to "deck" level with tech just yet).

Screenshot from the game: [http://www.lemonamiga.com/games/popup_screen_index.php?id=77...](http://www.lemonamiga.com/games/popup_screen_index.php?id=778&screenname=neuromancer_16.png&kuk=16)

The front-closed profile of a MacBook Pro for comparison: [http://www.notebookcheck.net/fileadmin/_migrated/pics/shape-...](http://www.notebookcheck.net/fileadmin/_migrated/pics/shape- frontclosed20081014_02.jpg)

Edit: I guess it's not a big jump though, considering these were some contemporary laptops of 1989: [http://www.roughlydrafted.com/wp- content/uploads/2008/08/200...](http://www.roughlydrafted.com/wp- content/uploads/2008/08/200808292255.jpg)

</comment></comment><comment><USER4> I'd certainly like a 13 inch laptop housing that I could plug progressively newer raspberry pi's into. When all you do is ssh-ing and using atom or Jupyter notebooks on remote servers, that would be a very nice computer to have.

<comment><USER5> yeah exactly. now, here's the thing: if you want to plug in newer hypocritical-boards...

... i'm sorry, you may be confused by the use of that phrase - allow me to explain before completing the sentence. broadcom is a highly unethical company that was caught completely off-guard by the rbpi phenomenon. their MOQ for this processor is 5 million units. the only reason they allowed it is because it was for "education" and it was _one of their own employees_ working on it.

now, when you get one of these "education" boards, the first thing that happens is that a proprietary program is uploaded to the GPU, which then and only then turns on the CPU. this should be ringing massive alarm bells already for anybody who knows that respecting the privacy of children is fundamentally important.

but if that's not enough, if these children wish to watch films on these "educational" devices, they are forced to pay $2.50 to a cartel in order to obtain - not information but a PROPRIETARY library.

so here's the message that broadcom tells kids: "we want you to get educated! you're free to do so... except no further than _WE_ say you can. fuck off kids if you want to educate yourself about the way our cartelled business makes money".

total hypocrisy.

now, i'm keenly aware that they're under enormous pressure to release the GPU's inner details, but dumping the tools onto the software libre community and expecting them to pick up the pieces doesn't strike me as being particularly responsible _either_.

anyway so back to answering your comment... :)

so if you want to plug in 15mm high boards you need a housing that can cope with 15mm high boards. you want a pi-top in other words _not_ this one. if you've seen the pi-top, however, you'll notice that it's almost 1.25 in thick, possibly even more! there are other issues with it as well, such as: the team haven't fulfilled their promises to be open with the schematics or the 3D CAD files.

i've taken a heck of a lot of issues into consideration in the design of the 15.6in laptop housing, basically as a demonstration to the industry that there is another way.

<comment><USER6> The pi includes h264 and mpeg4 decoding support. You only have to pay to activate the VC-1 and mpeg2 codecs. But, I don't see why you are blaming broadcom and raspberry pi for this, the cost comes from the MPEG LA's license fee for using their patents related to the video codecs. I guess you are saying broadcom or raspberry pi or someone else should have paid the license fee for the users, instead of having the users pay the cost themselves? They did that for h264, which is probably the most needed codec.

<comment><USER5> enshrined in patent law is the right for anyone to implement a single instance of a patent, so that they may _improve_ on it.

source code that's downloaded and then compiled thus constitutes "a single instance".

if the fuckers at broadcom had stopped for one second and thought, "we really should release the full source and just let people get on with it, because after all this _is_ about education", then there wouldn't _BE_ any need for them to collect royalties.

instead they went "we make money from this, therefore we should continue to exploit school children".

broadcom _DOES NOT_ have to distribute binary versions of their CODECs. they COULD have chosen instead to release full source code under libre licenses. the fact that they _are_ distributing binaries tells you everything you need to know.

</comment></comment></comment></comment><comment><USER7> Impractical and gimmicky.

"You can literally plug in a new CPU -- or swap your CPU into a variety of devices. (Laptops, phones, tablets -- all powered by the same motherboard!)"

My phone's battery would last 2 seconds if it used the processor my laptop would use. And my laptop would be slow as shit if it used a processor compatible with a mobile phone.

"you simply PRINT OUT REPLACEMENT PARTS with a 3D printer"

3D printers have terrible quality. They are for prototyping. You'd be printing out replacement parts every month.

"you can connect the computer card to your TV set to continue working if your monitor fails"

I've never had a monitor fail on me, is this an actual problem?

Aside from hobbyists, I'm not sure anyone actually wants this product. Open to some feedback here!

<comment><USER8> I'm constantly frustrated when people make claims like that about 3D printers. You can absolutely make durable parts on a home 3D printer. I designed a whole remote control car to prove that [1], and even the gears are 3D printed. Despite the car having 1/4 horsepower and being able to flip itself backwards with all that torque, the gears never wear out. There is no such thing as "3D printers are for prototyping". They're a machine. They're for whatever you want them for. If you consider the parts okay for your non prototype use, then that's fine.

Also, this absolutely is for hobbyists. I'm not sure how that detracts from anything. Maybe the marketing is too suggestive that general consumers will want to build their own laptop, but that's fine. That's marketing. Personally I think the product is excellent as I've wanted an open laptop that runs all free software.

I've also had a laptop monitor fail on me, and had to connect it to an external monitor to recover the files.

[1] [http://makezine.com/projects/3d-print-badass-rc-race- car/](http://makezine.com/projects/3d-print-badass-rc-race-car/)

<comment><USER5> totally cool, alexander. btw look up "Flex3Drive" esp. my reports on it - <USER2> of both the direct and bowden worlds _and_ more. the guy behind it is a quiet genius who worked in the automotive industry.

regarding the laptop monitor failure: were there instructions online on how to repair the screen? because what i'm doing is about empowering people with not only the concept "right to repair" but one that seems to be quite novel these days called "right to own" \- anyone with an apple product knows exactly what i'm talking about - as well as "right to not be spied on" and "right to not be afraid of your computer any more".

frickin love the RC car :)

</comment></comment></comment><comment><USER9> I kind of wish that this was simply transferring the userland (maybe state) from one device to another instead of carrying as much computing power you can cram into a credit card sized device.

I want my laptop to last 10h while being very portable, so I will gladly sacrifice performance there whereas when I am at my desktop I do not have the same limitation.

If I could simply unplug this from my desktop and plug into my laptop to resume my work that would be interesting to me, or work to home etc., but as is it feels more like a gimmick.

<comment><USER5> > I kind of wish that this was simply transferring the > userland (maybe > state) from one device to another > instead of carrying as much computing > power you can > cram into a credit card sized device.

yehhh that's a software thing... look how that's worked out in a completely oversaturated market that's controlled by a few massive incumbents with profit-maximisation as their sole objective.

... not working out so well, is it?

> I want my laptop to last 10h

that's just about doable with this design, and you can always get one of those portable 10000mAh external battery packs - just make sure it can do 12V and has a 5.5mm DC pin positive jack.

> while being very portable,

... how does 1.1kg grab ya? :) or, how about 40 grams for the computer card?

> If I could simply unplug this from my desktop > and plug into my laptop to > resume my work > that would be interesting to me,

you _can_ simply unplug this from the desktop housing and plug it into the laptop housing - that was the whole idea man! :)

<comment><USER10> I think you missed the point of the comment you're replying to. If I understand correctly, the parent commenter doesn't want a low-power processor, the kind that's appropriate for a phone or tablet or laptop, in their non- battery-powered desktop.

That said, you're right that the likes of Microsoft, Apple, and Google haven't had any incentive to make it easy for someone to easily transfer their whole computing configuration from one machine to another.

<comment><USER5> allo mwcampbell, did i see you on reddit a few days ago? so much has happened so fast :)

i understood it differently, but there are definitely people who don't want _today 's_ low-power tablet-style processors in a desktop computer.

(aside: let's remember that tomorrow's desktop processors will be lower power and more powerful even than today's tablet-style processors!)

those people are the ones that i'm specifically not targetting, here. i'm targetting the "good enough" crowd. and the makers. and the libre people. and those who are fed up with being spied on through devices that _they paid for_. we don't _like_ paying to be snooped on, that's just f __ __*g cheek.

<comment><USER10> > allo mwcampbell, did i see you on reddit a few days ago? so much has > happened so fast :)

No, but I'm the one that pointed out this HN thread on the arm-netbook list.

Edit: Oh, and I talked to you a little on the #arm-netbook IRC channel a few weeks ago. I use the same nick on IRC as here.

</comment></comment></comment></comment></comment><comment><USER11> I like the concept, especially the compute module you can move around. But the this call to action for a crowd funded platform is based on "truly open" ? Given that I was a bit disappointed it was using an Allwinner A20 CPU, at this point shouldn't "truly" open source use a chip with a RISC-V core?

<comment><USER12> 1\. Is there any RISC-V silicon available?

2\. Is there even a complete spec for RISC-V?

3\. At that level of paranoia, you're always going to probe deeper... Suppose someone inserted backdoors into your RISC-V core. Suppose the fab house has backdoors in the layout tools. Suppose an oversight committee got paid off...

<comment><USER5> > 1\. Is there any RISC-V silicon available?

not anything useful

> 2\. Is there even a complete spec for RISC-V?

yes.

> 3\. At that level of paranoia, you're always going > to probe deeper... > Suppose someone inserted backdoors > into your RISC-V core. Suppose the fab > house has > backdoors in the layout tools. Suppose an oversight > committee > got paid off...

the damage that would be done to the reputation of any company stupid enough to allow backdoors to be slipped into their tools would be... they'd be finished. absolutely NOBODY would trust them EVER AGAIN - not their billion- dollar customers or the Military or the Intelligence Services that utilise their tools on a daily basis.

no - what you're suggesting is, far from being a plausible scenario, is in fact those companies WORST NIGHTMARE scenario because it's the day that they go out of business and probably have agents from all over the world _queueing up_ to murder them! i love that film with john travolta, "this is incredible. i never seen anything like this. ya actually gotta get in line to _whack_ this guy"....

</comment></comment></comment><comment><USER13> So...what exactly is in the little card?

> You can literally plug in a new CPU -- or swap your CPU into a variety of > devices.

Either they're using the term "CPU" in a colloquial sense to refer to the processor plus other things, or it's literally just the processor. If it's the latter, what's the point? The CPU is hardly the important thing when I'm switching between devices. If anything, I would want a set of devices that all boot from the same storage device.

<comment><USER5> where did you see that misquoted? there was an article on zdnet which was so badly written that i refused to put it on the campaign front page - the editor totally garbled pretty much everything about the project.

the CORRECT phrase to use is:

"You can literally plug in a new COMPUTER CARD -- or swap your COMPUTER CARD into a variety of devices".

does that start to make much more sense now?

</comment></comment><comment><USER14> I find the PCMCIA format a bit too restrictive.

I would prefer to have a larger card with female HDMI (or DP) and USB (female for power and eventual storage access by a beefier host and male to use the mouse and the trackpad and other USB ports on the laptop or dock.

<comment><USER15> Um, it has:

\- Micro-HDMI Interface (for 2nd monitor)

\- Micro-USB-OTG (bi-directional power)

USB-C would be great though

<comment><USER5> > USB-C would be great though

when the USB3 world stabilises - even intel can't get it right. also it'll be a while before GPL-compliant SoCs come out that have stable USB3 hardware. it's quite costly at the moment and the low-to-medium end tablet/smartphone fabless semi companies can't justify the cost.

</comment></comment></comment><comment><USER16> What we need/want is to use our phones.

There should be a dock that lets the phone use a faster processor and GPU etc. Data would be stored on the phone and accessible but for desktop performance and full os it would need to be docked.

<comment><USER14> It exists. It's called a computer and it can read the files you store on your phone while using a much more powerful processor and a more complete OS.

<comment><USER13> This. If the "dock" is using a better processor for computing then it's not just a dock, it's its own computer.

</comment></comment></comment><comment><USER17> While neat in theory, this have zero practical possibility.

It could be improved a bit if they used a smartphone instead of a card, but that still leaves the problem of there being no "base stations" around.

Perhaps a better idea would be something like an HDMI computer - a stick that carries everything and is pluggable into a regular TV, but that's invented already.

<comment><USER18> > Perhaps a better idea would be something like an HDMI computer - a stick > that carries everything and is pluggable into a regular TV, but that's > invented already.

Would it even be possible to make a free/libre machine which uses HDMI? One of the reasons I don't use HDMI/HD equipment is because of they use DRM (and, of course, because there's nothing wrong with my VGA equipment)

<comment><USER19> HDMI does not mandate HDCP. You can use it as just DVI with audio if you want. That's the default mode for all PCs and the Xbox consoles, which only switch to HDCP mode if you try to play DRM-protected content like Blurays.

PS3 is shitty and runs in HDCP mode all the time, but that's Sony for you.

As far as I'm aware even on HDCP-compliant hardware none of the Linux drivers can even use it if they wanted to.</comment></comment></comment>


PySolFC – A collection of Solitaire games for Python - jan-kleks https://github.com/shlomif/PySolFC <comment> jan-kleks PySolFC (previously known as PySol) is a multi-platform collection of over 1000 solitaire card (and not only) games with a rich feature set that can rival commercial solitaire packages.

Unfortunately, PySolFC is getting old. To bring it up to date and make PySolFC compatible with modern operating systems, it has to be ported to Python 3 first — so we desperately need Python programmers.

JOIN PORTING EFFORTS AT: [https://github.com/shlomif/PySolFC](https://github.com/shlomif/PySolFC)

You can also help by spreading the word. After we finish porting PySolFC to Python 3, new features will be added, we also aim to refresh the app's look.

<comment><AUTHOR> Sweet! I'd love to contribute. There doesn't seem to be a contribution guide or timeline in the repo. I'd suggest adding a list of modules which require refactoring.

<comment><USER2> +1 If there were a list of tasks that needed to be done, it would be much easier to pick up something in my spare time. The closest I can find to a task list is here: [https://github.com/shlomif/PySolFC/issues/11#issuecomment-28...](https://github.com/shlomif/PySolFC/issues/11#issuecomment-282500377)

</comment></comment></comment><comment><USER3> Are you actually planning to lose Python 2 compatibility is porting to 3? It might make more sense to keep both if you can, if only because if you give up Python 2, there'll be an intermediate period where the code won't run anywhere.

Python six is a library that might help with targeting both

<comment><USER4> Code that supports both py2 and py3 is often ugly and a pain to work with.

I think your advice might be well intended, but if followed will end up with an overloaded dev. and no new progress being made (and all that for the five guys who still don't have py3 installed)

Sorry to sound harsh, but I wish someone had told me that advice when I accepted to backport a py3 package to py2

<comment><USER5> Wow! The community has turned a corner! :-)

I don't believe 2-3 compatibility _must_ be ugly (though it certainly can be), but I'm glad you believe what you said. If that makes sense.

<comment><USER6> It's not only the compatibility that is ugly. It's also that python 2 code has a couple of ugly warts, such as the forced arguments for super(). The only way I'm supporting python 2 with my libraries is by running 3to2 and pasteurize (future package) over the python 3 source code.

I really don't want to actually have source code that works on both, it's a pain to maintain. Although the future library should make it a lot nicer, but you still need a lot of ugly from __future__ imports as well.

<comment><USER5> I've been using 3.6 for some personal work and man are f-strings and ordered dicts wonderful. I don't want to go back.

<comment><USER7> OrderedDict is just a stdlib import away in Py2.7.

<comment><USER5> Yeah, but... those are ugly. ``m = {}`` is beautiful.

<comment><USER8> dict == OrderedDict is a cpython implementation detail. Not doing the import is just leaving a footgun for yourself if you ever decide to try PyPy or VOC or similar.

<comment><USER9> I don't think it's much of a footgun, and I don't think it's limited to CPython.

In Python 3.6, kwargs are ordered. In all versions of Python, kwargs are a dict. Therefore, in any implementation of Python 3.6, dicts are ordered.

The dev team has stopped short of promising that dicts are ordered, but I can't see how one would realistically be harmed by assuming it to be true.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER10> Jan has been incredibly helpful, improving my open source Scala solitaire game ([https://solitaire.gg](https://solitaire.gg)) with Github bug reports and feedback, and even suggested using it as a new frontend for PySolFC (which I'd love to do).

</comment><comment> jan-kleks Important message from the project maintainer, shlomif:

"Hi all! To facilitate coordination about contributing to PySol, please join me for a real time Internet chat on ##pysol on Freenode (note the double octothorpe) . I am usually "rindolf" there with a fallback "shlomif" nickname. We may set up chat rooms on different services in the future."

</comment><comment><USER11> PySolFC! I haven't installed that in 8 years or so. My wife would be _so happy_ if we could get that ported to Android. I'll have to take a look at this.

</comment><comment><USER12> Why did you point us to _unofficial clone of the Subversion repository_?

<comment> jan-kleks Because there is really not much going on in the official repo? See for yourself: [https://sourceforge.net/p/pysolfc/code/commit_browser](https://sourceforge.net/p/pysolfc/code/commit_browser)

And due to the fact that shlomif is doing his best to improve PysolFC in that "unofficial clone of the Subversion repository".

<comment><USER13> Just to be clear, this is a fork (takeover?) of [http://pysolfc.sourceforge.net](http://pysolfc.sourceforge.net) , which is an approved fork of [http://www.pysol.org/](http://www.pysol.org/) .

<comment> jan-kleks I think you can call it a fork. There will probably even be a name change some time in the future.

There was not much activity regarding PySol and PySolFC in recent years. Shlomif is trying to change this.

</comment></comment></comment></comment><comment><USER14> The title seems to have been modified, probably by the mods? I think the old title was more appropriate because it is clearly posted for the purpose of recruiting help. I would suggest the old title, possibly prefixed with Show or Ask HN?

edit: Current title seems good.</comment>


Misleading Metrics and Covid-19 Data - <AUTHOR> https://ckmanalytix.com/misleading-metrics-and-covid-19-dataa-follow-up-to-data-isnt-just-data/ <comment><USER2> There is a lot of misleading analysis and reporting out there for sure. Sometimes it seems like people are more interesting in publishing findings than caring to understand what the data really says.

</comment><comment><USER3> The media really needs to get a better grip on the data, not turn it into a partisan issue.</comment>


Subway station toilets: a surprisingly accurate indicator of urban civilisation - <AUTHOR> http://www.theguardian.com/cities/2015/apr/10/subway-station-toilets-indicator-urban-civilisation <comment><USER2> Sad fact in San Francisco was that the public toilets in BART stations were noisome pits of filth that you would avoid going into unless you were truly desperate. After September 11 2001 the underground ones were closed for 'security reasons' \- presumably because a bomb would do much worse structural damage - and there's little pressure to re-open them.

I think part of the problem in the Bay Area is that BART runs across multiple counties and there's an awful lot of political buck-passing as a result. Although it has improved in recent years, I still hate riding it and I hate how crappy BART stations feel. In fairness they have tried to mitigate the restroom problem by setting up decent public toilets on the streets near the entrances, but those are still a bit sketchy.

By contrast, when I visit Los Angeles I _enjoy_ riding the subway. It's clean, the signage is excellent, they don't fill up the speakers with random unhelpful public service announcements every 30 seconds, and there's a general air of competence.

<comment><USER3> Now people just use the fucking bart elevators.

Seriously. Puddles of standing piss in the elevators at 24th st bart when I had to use them because I was on crutches.

Disgusting doesn't even begin to cover it.

<comment><USER4> The lifts are awful. The escalators are just as bad. Apparently the nastiness the escalator maintenance crew deals with is pretty fetid stuff [1]. Well that's what you get with people who find the bottom of an escalator the coziest place to sleep. It's a shame for both the homeless and the system. But yeah, dont touch any surface within the system unless you're prepared to wash thoroughly

[1][http://m.sfgate.com/bayarea/article/Human-waste-shuts- down-B...](http://m.sfgate.com/bayarea/article/Human-waste-shuts-down-BART- escalators-3735981.php)

</comment></comment></comment><comment><USER5> All _underground_ stations on the BART system don't have any bathrooms available to the general public.

I learned this (almost) the hard way when I needed to use the restroom and got off at Lake Merritt (or whichever underground station was in the East Bay) and asked the BART attendant where the restroom was. He told me unfortunately that they were not available to the public but then took pity on me by allowing me to use the employee restroom. I went in and saw what was probably the cleanest toilet I have seen in such a public place.

In regards to the article, I would say that Asian countries (sans China) are more free to allow public restrooms because culturally it is bad mannered to leave a toilet more dirty than you left it since they are more considerate of other's wellbeing (of not having to enter a dirty toilet). I would say it's impossible here in the States since most people won't give a second thought to peeing on the seat and leaving a turd smeared on the wall.

Finally, Airpnp is similar (if not the same to) Have2P, an app that YP/ATT made using it's business data back in ~2009. Not maintained anymore though.

Wow, I wrote a lot about peeing and toilets.

</comment><comment><USER6> The Singapore MRT and Bus System was one of the primary reasons inspiring me to relocate to Singapore. I used to live at Lake Merrit in Oakland on 17th, from 1996-1997, used the Bart almost every day - I don't recall ever using the public washrooms - don't recall how available they were.

I've used them several times in Singapore, and 90% of the time they've been excellent - the other 10% of the time they were just heavily trafficked, but not "Dirty" \- just puddles of water near the sinks, lots of paper towels in the garbage.

I do recall reading a _front page story_ in the Straits Times about how the MRT had been hiring _cleaning consultants_ to improve their already ridiculous (by my estimate) high levels of cleanliness.

I would love someone to do an analysis of all the horrible failures in San Francisco/Transit and compare them to Singapore, so we can understand why the heck one is doing so well, and the other one is so abysmal.

<comment><USER7> Singapore's public restrooms are clean because they can afford to hire armies of 60 year old cleaners with no minimum wage.

I'd argue they are actually TOO clean. Because half the time I want to use them, they are being cleaned! It's a bunch of busywork to employee the otherwise unemployable. They clean bathrooms and sweep up leaves over and over again.

<comment><USER8> I'm having a hard time understanding what's bad about this. If they are otherwise unemployable, then it's good that they are doing this isn't it?

<comment><USER9> If they're not doing anything actually productive, wouldn't it be better to pay them the money and let them spend the time on something they enjoy?

<comment><USER10> Cleaning toilets isn't productive labor?

<comment><USER9> Not if they're already cleaned plenty often enough and it's just busy-work, which was what I understood the parent comment to be claiming.

</comment></comment></comment></comment></comment></comment><comment><USER11> I was _not_ impressed by the toilets in the Tokyo city rail system. The one or two I tried to use were not very clean, though maybe not quite as gross as some toilets I've seen in the US.

The nicest public toilets I've been are the toilets in the Taipei airport, which are uniformly fairly clean and functional. Narita airport is also quite nice.

<comment><USER12> Which Taipei airport: Songshan or Taoyuan?

<comment><USER11> Taoyuan

</comment></comment></comment><comment><USER13> In case anybody's curious, this is the toilet in a North Korean subway station:

[http://i.imgur.com/GbtoUO3.jpg](http://i.imgur.com/GbtoUO3.jpg)

It's filthy, but I've seen worse (and is still better than nothing at all _cough_ London).

<comment><USER14> London Underground toilet map: [https://www.tfl.gov.uk/cdn/static/cms/documents/toilets- map....](https://www.tfl.gov.uk/cdn/static/cms/documents/toilets-map.pdf)

They are usually very clean, probably because people assume they don't exist.

<comment><USER9> Most of the central ones there are "cheating" by counting the toilets of the attached National Rail station. Aside from that there are hardly any in the middle. I must admit I was unaware of those at Piccadilly Circus and Green Park though - that will come in handy.

</comment></comment></comment><comment><USER15> The expression "this is why we can't have nice things" comes to mind when I think about public toilets in Chicago. There's always some idiot that wipes shit all over the stall or vomits on the floor or blows up the toilet with an M80.

<comment><USER16> Humans frequently have gastric distress. With large enough volume of people, it's not if, but when, someone is going to have an uncontained event.

I once thought about how the world would be different if we were like rodents and essentially lacked bladder and sphincter control, if we'd have to all wear diapers all the time (think of the landfill waste so probably we'd have figured out something else but what) and what ballgames would be like. Probably holes in the seats. Because how else could we have a functioning society? We'd actually probably be a lot better at sewage control because otherwise it'd always be everywhere.

<comment><USER17> There's still the matter of cleaning up after yourself. The toilet doesn't have to sparkle like an advert, it just needs to be usable by the next person. I have gastric distress as often as the next person, but I'm going to clean up a seat that I make filthy.

<comment><USER16> Yeah most people don't do that. They don't care that someone else has to clean up after them. Happens all the time in many other contexts of pure greed and self-interest and simply not getting caught and told off about how they're pissing in the pool.

Seriously, people need a lot more Pei Mei in their life.

</comment></comment></comment></comment><comment><USER18> In Hamburg, Germany, it's pretty popular to pee on walls. Since most people don't want to pay to use the restroom, they resort to peeing on walls outdoor. [1]

I wonder what the average maintenance cost is for a public bathroom. May be a good cost to make the city a bit more pleasant.

[1] [http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/12...](http://www.washingtonpost.com/blogs/worldviews/wp/2015/03/12/when- peeing-in-public-in-this-german-city-beware-walls-that-pee-back/)

<comment><USER16> Denver is discussing this now. The only thing on the table so far are the self-contained toilets. There's no discussion of having a sort of self cleaning wall. I mean why not, people do that already and in the wrong place and it's not self-cleaning? And by people, I mean men. Takes a desperate woman to take a leak in public, but the two I've seen do it? They had the bravery, courtesy, and drunkenness to do it in the street gutter. I have never seen a man do that.

And then what about the public urinals in Amsterdam? Not under discussion in Denver either. It is admittedly sexist, but it's also mainly a dude problem.

</comment></comment><comment><USER19> I recently went to Tokyo and to London. Tokyo is a really great example, there are nice, clean, free and tech toilets everywhere. While in London I couldn't find many station equipped with toilets.

</comment><comment><USER20> Here in Finland public toilets at stations and malls tend to cost 1 € (about $1.05 US).

I've always thought it's ridiculously expensive, but at least the toilets are clean.

</comment><comment><USER21> Caution, entering rant mode...

This is actually a giant pet-peeve of mine and that is how Americans in particular (and some other western countries) treat public or publicly accessible toilets (malls, stores, theaters, rest stops, gas stations).

Basically, at least in men's restrooms, they destroy them.

The #1 most common issue is aholes that pee standing up in the toilet. My fiction is they're embarrassed to show their junk so they use a stall. They don't lift the seat and they pee all over it. Once in a while I see someone use the stall when all the urinals are full but more often than not there are free urinals but the guy still wants to pee on the toilet. Giving him the benefit of the doubt he doesn't pick up the seat because he doesn't want to touch it. But that just seems symptomatic of the "me first" American culture. Screw everyone else.

The #2 most common issue is broken stalls. The stalls in the USA are almost universally poorly designed. They have an 8 inch gap at the bottom and often are hanging from the ceiling. They are exceedingly easy to break or bend and the locks for the stalls have at most 2mm of tolerance so any bending means they don't stay open. Worse (and it happens often) is when they barely stay closed so I get in, close, lock, pull down pants, sit on toilet in my most vulnerable moment and someone else closes a door in another stall and my door opens.

The #3 most common issue is stuffing / clogging the toilet. I can't tell if people do this by accident or on purpose. There are sometimes signs up that say "please don't put non TP in the toilet". Others that say if you have to use a lot of paper please flush the toilet often.

As far as I can tell American's take this stuff for granted. That's just how it is.

But it's not! In Scandinavia and areas near by I saw immaculate public restrooms. They might have cost $0.50 but they had full floor to ceiling doors with sturdy walls. Some even had their own private individual sink.

Japan public restrooms also almost always have doors that at least go all the way to the floor and usually aren't destroyed like USA ones. Subway restrooms in Japan in general are not the cleanest but they are usually functional which is not true, at least in my experience, of many USA public restrooms.

As for #1 I wish someone like Adam Sandberg would figure out a comic meme that made it un-macho for men to pee in stalls. I guess I assume if it was funny enough and popular enough then it would be more embarrassing to pee on a toilet than use the urinal and that would fix #1.

I have no idea how to fix #2 or #3 though.

</comment><comment><USER16> There are subway stations in NYC with toilette? Huh, lived in Manhattan 4 years and haven't seen one. I'm excluding Penn and Grand Central because they have piles of people waiting for trains, and they have restaurants, so they'd have to have toilets.

</comment><comment><USER22> There is an app for that. Paris is terrible for this, Vienna rocks (Y)

</comment><comment><USER23> Public toilets in BART stations, by contrast, are highly functional places to shoot up.

<comment><USER24> I ride BART when I visit San Francisco and would _NEVER_ think about entering the restrooms! There are enough "characters" hanging out at the Powell Street station that I tend to keep myself in public, populated areas. Are my impressions correct?

<comment><USER25> I didn't think BART had any restrooms, at least in SF. In the Market Subway, they send you to the Westfield Mall at Powell.

<comment><USER26> They have them in the underground stations, but my understanding is that they have all been closed since 9/11.

</comment></comment></comment></comment><comment><USER27> I'm sure it won't be popular to point out this unpleasant truth, but cruising gays are a huge factor on this front as far as urban centers in America are concerned. Remember Senator Larry Craig? Do you know why the police force felt it necessary to be running sting operations in airport bathrooms? The public restrooms by the beach in Santa Monica have huge signs on them warning about legal repercussions for sexual activity. That's where George Michael got arrested.

<comment><USER2> Unwelcome sexual propositions are a very distant fourth on my list of worries behind blood-covered syringes, blocked toilets, and misplaced human waste, all of which I've had the misfortune to encounter as both a consumer and as a cleaner when I worked in a cheap restaurant.

By contrast, telling the occasional gay dude that his advances were unwelcome has been a very minor annoyance. I can see how it would be more offensive/unnerving to other people, but it strikes me as much less of an immediate health hazard.</comment></comment>


Security Updates Available for Adobe Flash Player (APSB15-14) - <AUTHOR> https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2015-3113

<comment><AUTHOR> Also Relevant: [http://blogs.adobe.com/psirt/?p=1210](http://blogs.adobe.com/psirt/?p=1210)</comment>


Ask HN: Requesting suggestions for call masking APIs (India) - <AUTHOR> I am planning to make an app for call masking , users will generate a number and will use it to mask original number ( for online food / cab services etc  ) . Any recommendations ? <comment><USER2> I doubt if the telecom regulations in India allow for this. The phone numbers have to be mapped to a verified subscriber ID, and mobile telephone companies are very particular when it comes to KYC regs. There was also a recent report that all new and existing subscribers will have to (re) validate their identity using AADHAR within the next year or so.

You'll probably fall afoul of multiple laws. Strongly encourage you to check with a telecom LE before you commit to the tech stack.

In the US, burner apps are very easy to use. I remember using an Android application called burner to give a burner number to website sign ups. So someone has already solved this. Again, I don't think this service will be legal in India.

[http://www.dot.gov.in/access-services/subscriber- verificatio...](http://www.dot.gov.in/access-services/subscriber-verification)

<comment><AUTHOR> I was planning to use it only for incoming calls and not for outgoing.

Basically masking number of my customers from other services ( when they get a call from drivers / food joints etc ) .

Still will consult with some one once .</comment></comment>


Integrated Circuit design for the IoT - <AUTHOR> https://blog.synflow.com/integrated-circuit-design-for-the-internet-of-things-iot/

<comment><USER2> Why not design your own integrated circuit? Now you too can have the thrill of extra capital and technical risk in your project! It has the added benefits of setting your architecture in stone and preventing any kind of pivot while hindering future expansion.

Seriously, you need a good reason to believe you can do better than the chip companies before designing your own ASIC as a commercial project. Low power is not the right end to do this at. The interesting case is when you need moderate computing power for a special task at better compute/watt than general purpose hardware. That's what provoked the wave of bitcoin miner startups.

<comment><AUTHOR> You're right, you only consider designing an ASIC if it's guaranteed to be more interesting than other options. Note that the capital and risk are not so high if you use an older, proven technology (like 90nm) which should be more than enough for IoT-like devices.

Low power only may not be sufficient in itself to require an ASIC, but as you say it all depends on the computing power that is required. Which for a temperature sensor is close to nothing... I'll need a better example for the next article!

<comment><USER2> You're the original author? Sorry about the sarcasm :)

A couple of years ago I was involved with a project doing verification of a custom CPU design for IoT purposes based on the 6502. There were a lot of frustrated discussions in the breakroom as we couldn't really see the point of the customness of this technology. Should we tell the client? In the end we didn't and the client went bust before paying our invoice.

Yes, the thing about temperature sensors and the like is that they're just a wireless peripheral. Eventually one of the competing standards will win (6lowpan?) and they can be as commoditised as bluetooth headsets. The important thing about IoT is turning a demo gimmick into a value proposition with satisfactory UX. Home automation has been around as a concept for _years_ and remained a niche.

There might be a market in custom hardware for "security done right" for IoT. Never mind changing the batteries, I don't want to have to update the firmware in my lightbulbs (or doorlocks!) every few weeks due to exploits.

(I could write a whole other post agreeing with you about how HDLs are universally awful)

<comment><AUTHOR> Yes I'm the author, and no problem :-)

If you find HDLs awful, I'd be curious to know what you think of our language, Cx. Maybe we can continue this conversation somewhere else?

<comment><USER2> Running short on time. I have a laundry list of Verilog replacement suggestions on another machine somewhere. Brief observations on Cx:

Based on C. Two objections: (1) why not SystemC? (2) why C when the non-HDL world is trying to get as far from C as possible?

My personal prejudice would be for functional rather than imperative style. AFAIK nobody is seriously attempting this outside of academia: [http://essay.utwente.nl/59482/](http://essay.utwente.nl/59482/)

Saw an example with "new" and "import" which are kinda Java flavoured. "new" feels wrong for hardware: no allocation or gc!

Plus points for ngDesign. Another plus point for trying to get hardware designers to use git rather than clearcase or other abominations. Good that you're leaning on the verification angle.

I spent a decade in an EDA startup. It was a tough market but interesting work. Good luck!

<comment><AUTHOR> Thanks for your feedback and encouragement! I'll try to shine some light on Cx. This comment has become a bit of a rant as a consequence, I hope you'll forgive me :)

Cx is not so much C-based as C-like, and the difference is subtle but real. It's a dedicated language looking like C (and yes, a bit like Java) rather than something based on C, because bending an existing language backwards and using a small subset of it just doesn't feel right. Same reason why not SystemC: SystemC is your typical design-by-committee/the-enterprise horror, it's verbose, and it's just a tiny, weird subset of C++ with a lot of templates. How do you know what you're supposed to use to get something "synthesizable"? Another big problem with SystemC, just like any HDL, almost all of them are mainly _simulation languages_.

We created something C-like to have something that most people would find easy to start using; the C-like "curly" syntax is familiar to any developer (even JavaScript uses that). Same reason to go with imperative rather than functional: it's the paradigm that most people are comfortable using (not to mention that functional programming is not really a good metaphor for what happens in hardware - after all, a state machine is a sequence of things that modify state). The article you linked shows an interesting approach, but I believe it will remain a niche, kind of like functional programming in software (possibly even more so given the large difference in abstraction level).

Yes the "new" may seem surprising at first, yet it has the same meaning it has in other languages: it creates a new instance of an object, it's just that instances are created and connected at compile time rather than at runtime. We could have done without it, but I've found myself confused about what goes first in VHDL and Verilog enough times that I felt it was needed :-)

I think I will write a blog post on this, and link it on Hacker News one of these days! And if you want to have a chat, just send me an email or a PM on our forum.

</comment></comment></comment></comment></comment></comment><comment><USER3> Developing an ultra low power design is not a trivial task. It is here where you discover the manufacturer datasheet somehow achieves figures you just for the live of you cannot achieve, even with their reference designs and evaluation kits.

You can spend an entire month just adjusting the state of the various pins on your device to shave off uA's, and just when you have hit your power consumption target, you realise your product now doesn't always boot up or suffers from latch up in some circumstances / temperatures.

Also this article does not take into consideration that the little CR2032 has internal leakage, your circuit has leakage currents and when transmitting you are suddenly pulling a lot more current out of the battery, so it wouldn't deliver that full 230mAh (but he did say it is hypothetical). Getting even 2 years of operation out of any of the CR __ __range of batteries is already a feat.

-edit typo

<comment><USER4> The Jack Ganssle article linked in his post (see below) does an excellent job of covering the issues of CR2032 battery performance, parasitic power loss, and etc.

</comment></comment><comment><USER5> Author misinterpreted specs...

"Each packet has 20 bytes of useful payload and consumes 49 μA at 3 V"

That is a manufacture average for some profile, mostly sleeping 99% of the time.

The real consumption during broadcast is in the order of 15-20mA for most chip I have seen.

Here is a very informative article dealing with power demands of low power devices: www.ganssle.com/reports/ultra-low-power-design.html

<comment><USER6> Considering the 1 minute interval wouldn't it be better for the battery to use a clock implemented in hardware that boots the chip everytime it's needed?

<comment><AUTHOR> I'm not an expert on power optimization, and I don't know how this is done in micro-controllers. But I would think that the hardware clock would be implemented using integrated analog components (capacitor + resistor circuit) rather than digital logic, to avoid repeatedly switching on and off even just a few transistors.

<comment><USER7> The power needed to keep the analog comparator going will probably be higher than keeping the 32kHz clock running.

</comment></comment></comment></comment><comment><USER8> The impedance of free space is (unfortunately) a few hundred ohms. On top of this, the minimum signal voltage of analog integrated circuits is set by unsystematic (random) offsets, which get worse as transistor sizes shrink. It's possible to mitigate these offsets by circuit techniques, but they cannot be eliminated.

Near-field radio can break free of the impedance constraint (which applies only to far-field TEM waves), but antenna area sets signal level, as in flux=intensity*area. Why make a tiny chip when the antenna needs to be the size of a quarter?

It's not easy to design radio chips for either of these scenarios. Pushing the radio burden onto the DSP consumes power on the digital side, so no easy way out.

[Aside: Referring to a recent thread on measurement of the Planck constant, the ratio of the impedance of free space to the Hall resistance turns out to be the dimensionless fine structure constant, alpha. This alpha sets the coupling strength of an electron and photon in the quantum theory of electrodynamics, and the 'Taylor series' for the self-energy of an electron converges because alpha is much less than unity. Feynman diagrams are a way to keep track of terms in that Taylor series, to ensure that the Schrodinger equation is kept consistent with special relativity, etc.]

</comment><comment><USER9> Hm.. as hardware becomes a commodity, I don't think that custom designs can beat the commodity price point. What would be helpful, more web/interactive kind of tools to make hardware better accessible. For example, simple power calculators, that would compare the power consumption of an Arduino with special low-power devices. Or, how a 5V system compares to a 3V or 1.2V.

<comment><USER10> The economics all depends on volumes, of course.

<comment><USER9> but what would be really interesting would be to see open-source hardware development, similar to a Linux kernel

<comment><USER2> There are serious obstacles to this. The "freedom to redistribute copies" and "freedom to modify" aspects of Free software really don't translate well to hardware. There is unavoidable work and cost associated with copying a board, and much more associated with copying an ASIC (modified or otherwise). It's simply not going to be within the reach of the average user in the forseeable future.

What you _might_ get is crowdfunded hardware, but that requires reasonable demands from the target market.

See this discussion [http://electronics.stackexchange.com/questions/61873/why- is-...](http://electronics.stackexchange.com/questions/61873/why-is-open- hardware-so-rare/61875)

<comment><USER9> good points. maybe it is more about datasheets, examples, demo's, kits, ... that suits to open sharing. Not for nothing TI is becoming a major open-source contributor. Same for Atmel via Arduino.

</comment></comment></comment></comment></comment><comment><USER11> Quite right.

Maybe the best approach is to use a modern IoT board to prototype the design and then port it to a PIC microcontroler/ASIC for the production design.</comment>


PostgreSQL performance considerations - <AUTHOR> http://robots.thoughtbot.com/post/2638538135/postgresql-performance-considerations <comment><USER2> Here are a few extra tips:

\- "select relname, indexrelname, idx_scan from pg_stat_user_indexes" will show how many times an index is used, so you can remove unused indexes

\- you can create indexes without locking tables (ie, while your site is up) by using "create index concurrently"

\- you should use the autovaccuum daemon instead of manually running vacuum analyze in most cases

</comment><comment><USER3> This is particularly important if you are working on Heroku. I just made the switch from MySQL to Postgres and while they both run SQL, they have numerous syntactical and performance considerations that need to be addressed so you can transition into the Heroku cloud easier.

It's definitely worth considering for 9 and up, as at least when I was in grad school for databases (~2008), MySQL outperformed Postgres.

<comment><USER4> >MySQL outperformed Postgres.

For my part, I thought Postgres was slow until 5 months ago (when I came from a port from SQL Server).

Then I learned something! The default install of Postgres is slow (at least on Windows). And on benchmarks against the baseline SQL Server port I had, it was about 2x slower. BUT there were a number of things I could do to make it faster: a) Use the EnterpriseDB wizard for tuning Postgres --> resulted in a 2x to 3x performance improvement. b) Adjust the way I did updates (there is a way to get Postgres updates to be fast, it just takes some massaging) c) Get rid of views when possible -- I found that certain query compilation optimizations I had taken for granted on SQL Server weren't available.

Doing all this resulted in a system that performed faster and w/ less RAM than SQL Server(and I had spent a bunch of time tuning the SQL Server perf in the first place!)

<comment><USER5> I'm liking the new trend of making databases "fast" by default, with "safe" configurations. People who care about safety should take the time make it so; people who want it fast, well, give it to them faster! So maybe PostgreSQL should offer faster defaults?

<comment><USER6> Not sure what you mean by "safe" by default. Speed and performance have nothing to do with security, if that's what you mean.

The reason that the default Postgres configuration does not perform well is that Postgres runs on a number of operating systems, and it is not possible to make assumptions about the hardware and configuration of the host. For example, increasing configuration parameters like shared_buffers to any useful value will require you to tweak the OS'es kernel resources. The Postgres documentation does a great job at describing the process on a number of operating systems:

[http://www.postgresql.org/docs/current/interactive/kernel- re...](http://www.postgresql.org/docs/current/interactive/kernel- resources.html)

<comment><USER7> Plenty of software manages to share information between processes without using SysV shared memory, and therefore being subject to these kernel resource limits.

I'm not saying this should necessarily be fixed - I'm sure the Postgres team has better things to be working on.

But it's not a natural, unavoidable limitation, either.

</comment></comment></comment></comment></comment><comment><USER8> I can vouch for the inner joins blowing outer joins out of the water. Setting up your postgresql.conf appropriate to its environment is helpful as well, [http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Serve...](http://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server) has a good deal of explanation.

<comment><USER9> But they have quite different meaning, one can't just replace OUTER with INNER.

      Table A has m rows
      Table B has n rows

all rows return a match (aka: join on 1=1)

      OUTER JOIN will return m*n rows
      INNER JOIN will return m*n rows

none rows return a match (aka: join on 1=0)

      OUTER JOIN will return m+n rows
      INNER JOIN will return 0 zero rows

INNER join enforces that match has to exist.

OUTER join doesn't.

<comment><USER8> in my case its about the SQLAlchemy ORM which uses by default OUTER JOIN to load a set of parent objects and their related objects. If the foreign key on the parent is NOT NULL, you can replace the OUTER JOIN with INNER. So yes clearly OUTER and INNER are different but its sometimes the case that the use of OUTER is unnecessary, other times the case that a query can be restructured to not require OUTER (such as, using an EXISTS to check for "no parent rows found" instead of OUTER JOIN and a NULL check).

</comment></comment></comment><comment><USER10> Put your write ahead logs on a mirrored set of ssds as long as your write patterns can handle a build up of logs before archiving to slower storage. This gets the fsync out of the way so the application will block for a shorter amount of time.

Postures relies heavily on disk cache, so be sure to tune shared memory small enough to allow the kernel to cache commonly used disk pages. ZFS on FreeBSD and OpenSolaris has the ARC as a second level of caching between disk cache and slow disk IO. Te Adaptive Readahead Cache can take advantage of some ssds to up access for your hotspots.

<comment><USER10> Answering questions on the iPad before I go to sleep is a bad idea. My apologies on the misspellings.

</comment></comment><comment><USER11> A bunch of these performance tips are equally applicable to any SQL database. MySQL doesn't have partial indexes or GiST, for instance, and it uses ANALYZE TABLE instead of VACUUM ANALYZE, but the rest of the tips apply to it too.</comment>


Ask HN: What tech/programming podcasts are you listening to? - <AUTHOR> This question has been posted before but new podcasts appear every now and then. I recently discovered Indie Hackers and was wondering what other good podcasts are out there. <comment><USER2> Masters of Scale ([https://mastersofscale.com/](https://mastersofscale.com/)) by Reid Hoffman is a good podcast for tech entrepreneurs.

</comment><comment><USER3> The Kevin Rose Show ([https://www.kevinrose.com/](https://www.kevinrose.com/))

I've never subscribed, but I always find myself listening because there's always something interesting going on (which says a lot IMO).

From the site: Kevin interviews authors, technologists, scientists, meditators, self-experimenters, and productivity hackers to explore how to reach peak personal and professional performance while living a minimal and balanced life.

</comment><comment><USER4> Programming throwdown [http://www.programmingthrowdown.com](http://www.programmingthrowdown.com) It's a really enjoyable podcast by 2 software engineers on a wide variety of high level programming topics.

This week in machine learning: [https://twimlai.com](https://twimlai.com) Quality interviews with people using ML</comment>


What the Arab Spring Could Mean For Solar Power in Sahara - <AUTHOR> http://www.good.is/post/what-the-arab-spring-could-mean-for-solar-in-the-sahara/

<comment><USER2> The numbers to build a HVDC line across the desert are pretty good:

A HVDC line at 600 kV rated at 3GW (equivalent to supply 1.5 million households) can be built for $8.62 / MWh [1]

It is estimated that a solar tower in 2020 be built to produce energy at a cost of $54.7 / MWh [2]

The current base load energy contracts in Europe for 2013 are at around $50.3 / MWh [3]

If looked at in its entirety, the project cost is overwhelming, but what if a consortium bankrolled only the HVDC link and acted as a Market Network Service Provider. They would charge desert solar farms for network access and earn their return. The same thing is being trialled in Victoria, Australia where wind is plentiful. A single bulk sized line is built to the windy resource area and it become viable for smaller wind farm operators to connect at the end of that line.

[1] [http://www.ieee.org/portal/cms_docs_pes/pes/subpages/meeting...](http://www.ieee.org/portal/cms_docs_pes/pes/subpages/meetings- folder/PSCE/PSCE06/panel2/Panel-02-1_Overview_of_HVDC_Transmission.pdf)

[2] <http://en.wikipedia.org/wiki/Solar_power_tower>

[3] <http://www.eex.com/en/>

</comment><comment><USER3> Good link, thanks.</comment>


How the baby boomers destroyed everything - <AUTHOR> http://www.bostonglobe.com/ideas/2017/02/26/how-baby-boomers-destroyed-everything/lVB9eG5mATw3wxo6XmDZFL/story.html?p1=Article_Trending_Most_V <comment> charles-salvia I'm not a baby boomer, so I have no interest in defending them, but there's something inherently tautological about this whole line of reasoning. The argument is basically "everything sucks right now, so blame the largest voting bloc/age-group". I mean, yeah, that line of reasoning is more or less valid in any moderately-functioning democracy. But it doesn't really actually _explain_ anything useful. I mean, it's not like people born in the period after WW2 to the mid 60s are somehow genetically predisposed to be complete sociopaths.

I realize the article attempts to touch a bit on _why_ the baby boomers may have been psychologically predisposed to be so irresponsible (raised on TV or something), but that seems pretty hand-wavy. The reality is it's simply human nature to take the path of least resistance and put off solving hard problems in favor of easy short-term gains. And after WW2, America experienced unprecedented economic growth as a new emergent industrial superpower. But that kind of growth can't last forever. The baby-boomers were just around at the right time to benefit from it, and their natural human short-sightedness pretty much guaranteed they wouldn't prioritize making decisions that benefited future generations.</comment>


Change.org adds politicians to the mix: Is a change gonna come? - <AUTHOR> http://pandodaily.com/2013/10/23/change-org-adds-politicians-to-the-mix-is-a-change-gonna-come/

<comment><USER2> Has Change.org ever led to an actual change? I just don't see the utility of petitions. They never seem to work.

Consider the utter ineffectuality of the "We the People" petition site. Thousands of people signed petitions to abolish the TSA and (shockingly!) nothing happened.</comment>


Who Are the Shadow Brokers? - <AUTHOR> https://www.theatlantic.com/technology/archive/2017/05/shadow-brokers/527778/?single_page=true <comment><USER2> Why doesn't the nsa pay a few bitcoins and try to track them down?

<comment><USER3> They know who they are.</comment></comment>


Grubhub stock halted after report Uber is eyeing a takeover - <AUTHOR> https://www.cnbc.com/2020/05/12/grubhub-stock-halted-after-report-uber-is-eyeing-a-takeover.html <comment><USER2> If you live in NYC and care about local restaurants, there's a nonprofit that helps you to easily find restaurants still open for pickup / delivery and to order directly: [https://www.eatnyc.org/](https://www.eatnyc.org/). Restaurants keep 100% of what you pay, so it really helps our favorite restaurants stay alive.

They have solid coverage in NYC, especially Manhattan.

<comment><USER3> Is there an SF version?

<comment><USER4> Google maps has "takeout" as a search term, with filter by cuisine, open now, price range, distance. Plus you can usually see the menu and contact info and reviews not manipulated by Yelp sales people.

</comment></comment></comment><comment><USER5> I hope they keep GrubHub and Uber Eats separate, because UE has way stingier customers than GrubHub, in my experience. Something about the Uber brand seems to bring about all the no-tip Taco Bell orders from across town.

Uber is also more likely to play psychological game with its drivers. It's been a while since I drove for these services, but I remember GrubHub being pretty straight forward with how much you are getting paid. I think Uber hid the tip amount until you picked up the food. I imagine their driver support would be abysmal.

<comment><USER6> I'm stingier on Uber Eats because there are so many fees! But I haven't used Seamless since 2015 so I don't know if the same happens there nowadays.

All I know is that my $13 food choice costs me $22 when I go to check out, and I think twice about it, then check the promos, and then consider the price of just pickup, or order something else (lower price, or different restuarant with different delivery fees, or maybe add a $2 item to remove the $3 small order fee)

You price according to what the market can bear, as a participant of the market this has stretched the rationalization of what I am willing to bear, and if it isn't economically viable then maybe lay off 3,700 employees and buy the leaner competitor, crazy idea right

<comment><USER7> GrubHub tends to lean more on merchant costs (like commission) than consumer fees. This is why lately you may have seen (a) scary looking news articles about GrubHub taking half of a restaurants income, and (b) cities talking about emergency orders to limit commissions.

But either way, the economics are roughly the same: getting food made and delivered to your door is really really expensive. It just comes down to how that gets sliced between restaurant, consumer, and driver.

<comment><USER8> I'm in a suburban/semi-rural setting and have found Uber Eats to be more reliable than Grubhub in most cases. It seems like UE might open up GH to more of these markets where restaurants have been slower to warm up to working with a service like GH than restaurants in an urban center.

</comment></comment></comment></comment><comment><USER9> The pandemic finally broke my online food ordering habit, which was getting _ridiculously_ expensive over the past year. Along those lines, I refuse to support Uber in any way as I loathe Uber's company culture. So Seamless (GrubHub) will be an instant uninstall if they are unfortunately bought by Uber. Which will continue to help curb my bad habits.

So bad things can be good, I guess...

<comment><USER10> Seamless is just as bad:

[https://www.theverge.com/2020/1/29/21113876/grubhub- seamless...](https://www.theverge.com/2020/1/29/21113876/grubhub-seamless- fake-restaurant-listings-no-permission-postmates-doordash)

[https://www.theverge.com/2019/6/28/19154220/grubhub- seamless...](https://www.theverge.com/2019/6/28/19154220/grubhub-seamless- fake-restaurant-domain-names-commission-fees)

[https://www.eater.com/2020/3/31/21201207/restaurants-pay- gru...](https://www.eater.com/2020/3/31/21201207/restaurants-pay-grubhub- discount-support-for-supper)

[https://www.eater.com/2020/5/1/21243966/giuseppe- badalamenti...](https://www.eater.com/2020/5/1/21243966/giuseppe-badalamenti- chicago-pizza-boss-shares-grubhub-earning-statement-on-facebook)

<comment><USER11> _Nobody_ is as a bad as Uber.

<comment><USER12> Uber has been staunchly pro-consumer. Their antics and legal shenanigans were always going up against either the local government or their drivers.

As a customer I've never had a complaint about their service outside of the asinine decision to add tipping.

<comment><USER13> > Uber has been staunchly pro-consumer.

They don't let you use their app without adding a credit card, even if you have more than sufficient credit with Uber to pay for a ride.

<comment><USER14> That's a pretty minor thing to hold against. A rider can cause any number of issues in the car including a very common issue of throwing while returning from a drunken night. How do you charge that person then? Lot of companies also use credit cards to tie account to a person so they don't abuse the initial sign up bonuses.

<comment><USER13> Yes, that is a relatively minor thing, but it remains a way that despite being "staunchly pro-consumer", they're less pro-consumer than traditional taxis.

> How do you charge that person then?

They could require a credit with Uber sufficient to cover that charge if someone wants to take a nighttime Uber ride.

> Lot of companies also use credit cards to tie account to a person so they > don't abuse the initial sign up bonuses.

Yeah, but still, companies tracking purchases via credit cards is definitely not "pro-consumer".

<comment><USER14> If that's what we start calling pro-consumer companies then you will hardly find any pro-consumer companies. I can't even think of a company that is "perfect" if you are taking issues with such things.

<comment><USER13> I don't have any anti-consumer complaints to make about my local pizza joint.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER12> GrubHub would be wise to take the money and run. If it's cash bank it. If it's stock, buy some Uber puts.

The economics of last mile delivery can not justify these valuations so if Uber thinks they can make it happen with driver downtime then grab the cash while you can.

<comment><USER15> I'm pretty sure you can't take a short position against the interests of your own company. That's boilerplate language in the deals I've seen, for obvious reasons.

<comment><USER16> Carl Icahn _may_ have found a way around this kind of restriction after the Lyft IPO by selling in a private transaction to someone who hedged in advance of the sale, although it's not at all clear what really happened.

[https://www.bloomberg.com/opinion/articles/2019-05-07/lyft-s...](https://www.bloomberg.com/opinion/articles/2019-05-07/lyft- s-ipo-was-a-little-awkward)

</comment></comment></comment><comment><USER17> The short seller's biggest annoyance. Jim Chanos is probably pissed off right now that another good short will be bailed out with private capital.

Uber has $9B cash on books in their latest 10-Q. I wonder if they'll burn some of that or will they issue new securities to finance this. It feels a little reckless to abandon half of your savings, especially as your cost of capital was just marked up and uncertain times are ahead.

<comment><USER18> It's about establishing a monopsony for contract drivers. Uber and Lyft are duking it out for those monopoly dollars.

</comment></comment><comment><USER19> Does Grubhub have any special sauce, or would this just be a direct acquisition of market share?

<comment><USER20> Enormous marketshare on the East Coast of the US both on the restaurant and customer side, due to operating there for 20yrs. GH also has 10-20% share in most cities, so this acquisition would put Eats comfortably ahead of their main competitor DD.

<comment><USER19> Wow, I had no idea Grubhub has been around since 2004!

<comment><USER21> GrubHub is also public, and therefore has a harder time burning piles of cash compared to its competitors (looking at you, DoorDash).

</comment></comment></comment></comment><comment><USER22> Something is going to need to give in food delivery because nobody is making a profit on it.

Restaurant loses money on the percentage.

Driver loses money on the vehicle depreciation much of the time.

The delivery company loses money on the delivery.

I just don't think a burger can be profitably delivered 15 minutes away for 1.99.

<comment><USER23> What do the economics look like for the old Pizza or Chinese delivery places in a pre-app world?

<comment><USER24> Ancedotally (I don't have a ton of concrete details here):

1\. From what I understand restaurants doing delivery largely were breaking even on it considering the costs - there was no third party looking to take 20-30% of the gross.

2\. Again anecdotally, I suspect the old school pizza/chinese delivery places are more efficient in terms of deliveries per driver per hour. What I see with a lot of UberEats/Grubhub etc is drivers waiting a lot at restaurants, bouncing around a bunch to pick up one or 2 orders each. Vs the old-school pizza model of a driver being able to pick up a bunch of orders at once.

<comment><USER25> > the old school pizza/chinese delivery places are more efficient in terms of > deliveries per driver per hour

Precisely this! It's amazingly inefficient to dedicate an entire person (and their 1000kg car) for the delivery of a single 2kg takeaway meal.

Uber tries to "solve" the problem by giving drivers two orders at the same time, but their implementation is terrible:

1\. Sometimes the restaurant doesn't have both orders ready at the same time, so one of the orders is growing cold and soggy.

2\. Uber's dispatch system has such a strong preference for batching deliveries together that a driver will often get assigned two orders that are going in opposite directions from the restaurant!

3\. The high-volume restaurants (like McDonald's) have managed to exempt themselves from the double-delivery system [for the obvious reason that customers hate getting cold food!].

</comment></comment></comment></comment><comment><USER26> If you care about your local restaurants and have the means to do so, consider calling in your order and picking it up yourself, with mask and gloves. Services like GrubHub take a huge portion (like 30%) of the ticket price just for delivery.

<comment><USER27> What are the best apps or websites for eatery discovery that are employee owned, take very small cuts or no cut at all, or both?

<comment><USER2> [https://www.eatnyc.org/](https://www.eatnyc.org/)

If you live in NYC, this nonprofit helps you find restaurants still open and order directly. Restaurants keep 100% of commission. I use it to order food every weekend. Local restaurants seem to really appreciate it.

<comment><USER27> This is exactly what I was looking for as a template for other locales. Thank you.

<comment><USER2> You should reach out to them at firstname.lastname@example.com! They're super responsive. I emailed them to request filtering by cuisine and they pushed it live the same day.

</comment></comment></comment></comment></comment><comment><USER28> Markets are so wonked that both companies would shoot up on this. No way this creates that much value.

<comment><USER29> If food delivery and ride hailing continue to experience inverse demand relationships, there's a pretty big synergy here in being able to keep your drivers (oops, I mean the independent business owners you've contracted with) busy.

</comment></comment><comment><USER30> It's just a market share play. None of the unit economics on these businesses make sense yet.

<comment><USER31> I'm not sure how you can say that when Grubhub has been operating since 2004, public since 2014, and turned a solid profit up until 2019.

</comment></comment><comment><USER32> We changed the URL from [https://www.bloomberg.com/news/articles/2020-05-12/uber- appr...](https://www.bloomberg.com/news/articles/2020-05-12/uber-approaches- grubhub-with-takeover-offer) to one that has a bit more info.

</comment><comment><USER33> Not to sound like a party pooper but is it staring to seem like Ubers recent strategy is akin to chasing cars?

\- in 2019 Uber threw itself into bike share after cities had success with it.

\- Uber scooters followed immediately after Bird scooters

\- Uber self driving showed up almost instantly after Waymo.

\- Uber eats showed up almost immediately after GrubHub.

Is there anything meaningfully unique this company does anymore?? I mean the self driving truck company they bought basically imploded. its got 22 individual criticisms on Wikipedia everything from murder and sexual assault to tax dodging.

<comment><USER34> There is a lot of money to be made in making "your idea, but more polished and well integrated into an existing ecosystem". Just look at Apple as the prime example.

</comment></comment><comment><USER35> Does GrubHub have much of a presence outside of the US?

As someone from the UK I've never heard of them (Deliveroo is everywhere here along with Uber Eats).

<comment> kube-system Not sure, but here in the US, GrubHub has been popular for a long time. I remember ordering from their website before ride-sharing apps even existed. Back then, GrubHub was just an online ordering service, they didn't do the delivery.

</comment></comment><comment><USER36> Now you know the truth of why they fired a lot of people. Not because of the covid but to free cash for the acquisition!

<comment><USER37> Quite the opposite actually - layoffs are a very expensive one-time cost for a company.

</comment></comment><comment><USER38> Since Uber has publicly stated that they will lay off 20% of their employees rather soon, how does this new decision to acquire GrubHub square with that [0]?

[0] [https://news.ycombinator.com/item?id=23011146](https://news.ycombinator.com/item?id=23011146)

</comment><comment><USER39> Amazon adding a delivery service to their Amazon Fresh + Wholefoods would crush all of the food delivery apps. Not sure why they are still trying with random restaurants, which will never give you a stable profit line.

</comment><comment> tren-hard More surprised the headline is Uber and not Lyft. What is Lyft doing to make headspace into food delivery?

<comment><USER19> Lyft is probably too late to the game.

<comment> kube-system They can call their competing service: Lyftovers

</comment></comment></comment><comment><USER40> After laying off 14% of their workforce they're going with an acquisition? This makes zero sense.

Healthy companies do not have a large restructuring and then try to burn capital on an acquisition for revenue. Restructuring to _be_ acquired is a different story.

</comment><comment><USER41> Why spend $4.5 billion to buy a company instead of spending $4.5 billion on your own to be competitive?

The only answer is that Uber is attempting to monopolize the food delivery market.

<comment><USER42> Selling to restaurants to convince them to onboard to your platform is a slow, expensive process that's neither easy nor guaranteed. GrubHub has acquired many other companies (e.g. Eat24) in the past purely for the relationships/business.

<comment><USER43> This. While Uber might also want to be a monopoly in this space, growing market share is a lot harder than buying it.

</comment></comment></comment><comment><USER44> "More info available on the Bloomberg Terminal"

Did I get tricked into a Paywall Ad?

I have been debating for a long time of creating a Hacker News feed that filters out specific domains. Bloomberg is on that list without a doubt.

</comment><comment><USER45> Offering to buy a $4.5 _billion_ dollar company twelve hours after you've laid off thousands of people is kind of a dick move.

<comment><USER46> I hate this. The implication that companies should have _any_ moral behavior here just enables immoral behavior.

There is no dick move here. The only reason you call it that is because we have a society _(America)_ built to give almost no support system to workers if they lose their jobs. The company isn't in the wrong for failing to pay users. Our societal structure is. Our lack of social safety nets, and communally focused behavior is.

We set up a system prone to Americans getting screwed, and then are annoyed when companies screw them? This is our mess. We need to fix it, and not try to pretend companies should be moral. Doing so will only allow them to be immoral and hurt workers.

<comment><USER47> Large companies have outsized impact on influence public policy, using bribery aka lobbying. Collectively, billions are spent yearly to influence lawmakers.

The idea that large companies "just exist" in this system and abide by its rules strikes me as naive. In many cases, companies are making the policies themselves through lobbying efforts. They also influence governing agencies that are supposed to police them. It's called regulatory capture and it's a well established phenomenon.

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

So back to this:

> We set up a system prone to Americans getting screwed, and then are annoyed > when companies screw them

When the companies are the ones advocating for policies that screw workers and stop lawmakers from creating proper protections, yes, annoyance is a mild way of putting it.

<comment><USER46> I agree with you, but that's sort of a side topic to my main complaint. The objection I had was applying moral standards to a company.

> Large companies have outsized impact on influence public policy, using > bribery aka lobbying. Collectively, billions are spent yearly to influence > lawmakers.

Agreed entirely. But the objection wasn't about the root cause for the society system we have. My complaint was about using a moral argument as to why a company should spend their money to provide a social safety net for its workers.

Trusting companies to do the right thing is, at the root, why we are where we are. Companies lobbied for freedoms and the public agreed with it, in the sense that we largely ignored it. We can't be angry at companies for not acting moral. They're working within the freedoms that we allowed them.

But again, I'm not arguing the root cause or anything. Just merely saying that if our only tool in this "fight" is a moral finger wagging, oh boy oh boy will we be in for a quick loss.

<comment><USER47> > Companies lobbied for freedoms and the public agreed with it...They're > working within the freedoms that we allowed them.

This is the part of the argument I'm contesting. I'm not convinced that the public went along with it because companies put forth a well reasoned argument. It's not that we agreed to it, more so that they rigged the system in their favor, _despite_ the opinions of the people.

I think if you poll most Americans, they wouldn't agree that Wal Mart can pay minimum wage and also have employees on food stamps. Or that CEOs should get paid x50 the average worker salary. Or that Amazon should be able to fire employees for trying to unionize. Or that coal mines can dump toxic waste in rivers.

There's actually a huge list of things companies do that are against what many Americans believe, and yet they still get their way. That's my point. The power balance is truly in the favor of the corporate elite. I'm really not sure how much we're letting them do anything, and how much they're just rigging the system the way they want it.

<comment><USER46> > I think if you poll most Americans,

Well that's my contention, that the opinion of Americans only matters as far as they're willing to act.

Americans are pushovers, and if they're not willing to do anything other than share their opinions, what good are their opinions?

It would be like if a Union refused to strike, how much "power" would they actually have? The power of a Union is in the coordinated action of the people, not of the coordinated opinion. Likewise, if Americans refuse to act on this, why would they be listened to?

</comment></comment></comment></comment></comment></comment><comment><USER48> > "More information is available on the bloomberg terminal"

And I thought "Sign up for blah news Premium(tm) for 9.99/day or whatever to access the rest of this article" was bad. At least those subscriptions aren't 20k/person/year licenses for financial services/trading software ...

<comment><USER49> On the other hand everyone I know who has one (a bloomberg terminal) would readily pay more for it. Can't say that about most news subscriptions.

<comment><USER48> That's true. Bloomberg terminals are pretty awesome. The customer base for them are probably the customer base the most able to quantify how much value any software provides to their business, and could afford a far higher price as well. Though I imagine Thomson Reuters and other competitors might be getting in the way of bloomberg capturing more value than they already are.

<comment><USER49> I suspect the latter is true, in a way it wasn't years ago and they were just ridiculously ahead.

On the cost, one person I know who uses them commented that on any given year they wouldn't have much trouble picking one day where it paid for itself (i.e. that day made the whole year subscription worthwhile).

</comment></comment></comment></comment><comment><USER50> I thought that said github at first.

</comment><comment><USER51> Random acquisitions is a telltale sign of a company on its last legs.

<comment><USER52> How is this random? Uber has been making significant investments in the food delivery space via their Uber Eats offering. Consolidation makes sense given industry-wide razor thin margins and intense competition.</comment></comment>