Python 3.5 and Multitasking - <AUTHOR> http://brianschrader.com/archive/python-35-and-multitasking/ <comment><USER2> I've been using the new async/await syntax to write beautiful asynchronous websockets server and I fell in love with it. It handles hundreds of thousands of concurrent connections (on top of aiohttp) and the code is so much cleaner than it would be with i.e. NodeJS and Express and Promises. It reads like a serial code.

I think benchmarking asyncio with any type of CPU bound tasks misses the point. Previously we were relying on hacks like monkeypatching with gevent, but now we've been presented with clean, explicit and beautiful way to write massivly parralel servers in Python.

<comment><USER3> Anything you can share? Some good examples of networking code with async/await would be incredibly helpful. The documentation covers the primatives but I have a hard time putting it all together.

<comment><USER2> Unfortunately the code is not open source - I'll try to open parts of it in the future.

But please do check this simple gist I found some time ago that helped me understand how powerful asyncio is:

[https://gist.github.com/gdamjan/d7333a4d9069af96fa4d](https://gist.github.com/gdamjan/d7333a4d9069af96fa4d)

<comment><USER4> I'm actually tearing up here. That is... Beautiful.

</comment></comment></comment></comment><comment><USER5> >I did this for two reasons, the first being that I cannot, for the life of me, figure out how to use asyncio to do local file IO and not a network request, but maybe I'm just an idiot.

I don't think you are an idiot I just think you didn't search well enough. There is a reason there is no local file IO with asyncio.

Check these links for more info:

* [https://stackoverflow.com/questions/87892/what-is-the-status...](https://stackoverflow.com/questions/87892/what-is-the-status-of-posix-asynchronous-i-o-aio)

* [http://blog.libtorrent.org/2012/10/asynchronous-disk-io/](http://blog.libtorrent.org/2012/10/asynchronous-disk-io/)

From what I understand the way libuv (what node.js uses) gets around OS limits is with a thread pool.

Also, this documentation might be helpful:

* [https://docs.python.org/3.5/library/asyncio-dev.html#handle-...](https://docs.python.org/3.5/library/asyncio-dev.html#handle-blocking-functions-correctly)

My experiences don't seem to mirror your frustration. I found asyncio quite useful for tinkering with a simple web scraper that hit multiple sites at once (each with a different response time) and munged all the data together into one data set.

Thanks for the write-up!

<comment><USER6> have you used a database in a non-blocking way with asyncio ? I'm thinking of the way Psycogreen works or node-postgres works.

<comment><USER2> Please check aiopg [1]. There's also an interesting list of packages for asyncio [2].

[1] [https://aiopg.readthedocs.org/en/stable/](https://aiopg.readthedocs.org/en/stable/)

[2] [http://asyncio.org/](http://asyncio.org/)

</comment></comment></comment><comment><USER7> Maybe it's worth noting, maybe not, but this extremely trivial example (e.g. serial.py) gets executed 20x faster just by using pypy which speeds up serial execution. This is more than you would get by any sort of multiprocessing/threading shengenians __just __by using an optimizing VM (and granted, this example is very simple, but maybe addressing basic performance problems should come first)

<comment><USER6> pypy has not been updated in a while (it's compatibility is with Python 3.25).

what's even more worrying is that it had almost run out of funds in July. Currently, it has 5000$ in the fund earmarked for Py3 support ([http://pypy.org/py3donate.html](http://pypy.org/py3donate.html))

somehow I thought that Google was supporting Pypy.

<comment><USER7> PyPy is being update very regularly with 3 releases a year on average. Most of the work however focuses on things our users really want - stability, performance, C extension support, warmup speed, memory consumption - you know the mundane stuff. If someone is willing to put effort into supporting more python 3, that's great! we would welcome the contributions.

PS. We're closing onto 3.3 release soon

PPS. Google donated a bit of money to PyPy when Guido was there, definitely "google supporting pypy" is a bit of a stretch. It was years ago though

<comment><USER6> Google not supporting it in a big way is very strange. is there a political conflict between cpython and pypy ?

Because it seems to me that Pypy is the future of python. and it makes total sense for someone like Google or Dropbox to support it with a lot of money.

<comment><USER7> It makes sense != it makes money. Google does not support cpython either in any meaningful way (that is, someone hired full time to work on cpython for example).

<comment><USER6> huh ?

[https://www.python.org/~guido/](https://www.python.org/~guido/) _In January 2013 I joined Dropbox. I work on various Dropbox products and have 50% for my Python work, no strings attached._

[http://www.linuxjournal.com/magazine/interview-guido-van- ros...](http://www.linuxjournal.com/magazine/interview-guido-van-rossum)

 _I don 't have a 20% project per se, but I have Google's agreement that I can spend 50% of my time on Python, with no strings attached, so I call this my "50% project"._

<comment><USER8> Dropbox isn't Google.

I don't know if Google does or does not provide meaningful support to CPython development. Certainly it did, as you point out. But fijal's comment was about the present, not the past.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> concurrency in python is kind of a disaster, in my opionion. there are a lot of different options but they all seem to have significant drawbacks, and not just limited to ease of use. i know concurrency is a hard problem, but i wish there was one really good, straightforward solution instead of 3 or 4 different half-baked convoluted solutions (threading, multiprocessing, asyncio, subprocess in stdlib, plus twisted, gevent, pulsar etc as third- party).

<comment><USER2> We see people hyping all the time for NodeJS mainly because it can handle millions of concurrently open connections. Now we get a much cleaner (IMHO) way to achieve the same thing in python (of course python is slower) - i.e. see aiohttp as websockets server. I would not call it a disaster.

<comment><USER10> It's great that it works for you for this one particular type of application, but the whole world isn't io bound. Some of us just want regular, plain old, concurrency. As this shows, multiprocessing is still the only, unsane, solution right now. I just want to be able to make a thread, and do stuff in it in parallel to other threads, like I can with most other languages.

"Go write a C extension" you tell me, "use something besides cPython" he says, "just use multiprocessing" I hear. Sure...but ffs, we've had multicore processors for almost TWO DECADES now.

One of my biggest, and apparently unchanging, problems with Python is the desire to keep things simple in the interpreter, to the disadvantage of the _language_. Sure "implementation for interpreters may vary" blah blah, but you have to target the bottom end in performance, and most widely installed, which is _definitely_ cPython for both points.

<comment><USER11> I think these are two distinct use cases. NodeJS actually does not (AFAIK) handle one of them. Basically, you have IO bound tasks and CPU bound tasks (and a mix of both which is really nasty business). Python has had CPU-bound task concurrency via multiprocessing and it's been OK. My preference would be to get rid of GIL and improve how threading is actually done, but technically you can serve CPU-bound tasks today with Python 2 and 3. This is (AFAIK) not something that Node does out of the box.

The IO bound tasks in Python are a problem and I wish there was a clean solution. Python does not have a global event loop, so there is not an easy place to hook in coroutines, callbacks, etc. So for a while we were stuck with one of the following:

1\. Use threading or multiprocessing. This sucks for more than concurrency of like 2-8.

2\. Use eventlet, gevent, or another event loop. The problem here is that you have to buy into it whole hog. No component of yours can be blocking, and that's hard to tell.

3\. Write your own event loop. I've done this and find it to be the most understandable and easy to debug approach. This sucks because of the amount of effort it takes for something so fundamental (because networking is tricky).

Some people would be happy if Python got better at solving IO-only bound tasks. I guess that's where this feature comes in. I haven't played with 3.5 yet because I am mostly stuck on 2.7 for reasons. However, looking at it, I feel like there should have been more of a separation between blocking and non-blocking code here. Something alongs the lines of an async function not being able to call a blocking function.

Re: CPU and IO bound tasks: I know of no great framework for this besides threading (not the kind in Python + GIL, but real threading). I usually just side-step this problem by separating tasks that are both IO and CPU bound into smaller tasks that are only CPU or only IO bound. Thankfully, that's generally pretty easy to do.

<comment><USER12> asyncio provides an event loop in the standard lib now

</comment></comment></comment></comment></comment><comment><USER13> While I haven't had a chance to use 3.5's async/await syntax, I have used AsyncIO pretty heavily to deal with multiple sensor inputs/outputs on a Raspberry Pi.

The author is right. If you write a coroutine, __any code that uses it must also be a coroutine __. This is pretty annoying when you 're trying to test something manually. It bubbles up this way until you eventually hit the event loop.

If you're trying to debug a coroutine in the interactive shell you've got to do something like this:

      loop = asyncio.get_event_loop()
      # Blocking call which returns when the hello_world() coroutine is done
      loop.run_until_complete(hello_world())
      loop.close()

That's my main beef with it. Debugging can also be painful because when you hit an exception, your stack trace will also involve the asyncio library. Aside from those complaints, I'm a fan. It works fine and reads better than callback-style code.

<comment><USER14> You have a similar problem in nodejs - if the api you want to use is async it has to take callbacks, so if you have to do something with that result you have to nest in another callback etc... it gets ridiculous. But it's pretty much a fundamental issue with async code - to keep things async then you have to set up the whole interdependent network of functions to be able to work async, since you don't know when anything is going to return its value.

It takes some getting used to - I think Python people are likely to have more trouble with this precisely because Python is a very clear, explicit, and mostly imperative language -you can read Python code as a sequence of instructions and that will be pretty much the way it gets executed, which makes understanding programs very easy. Async is simply a less intuitive way to program, so to adopt it you have to be sure it's worth the hassle of giving up easily understood code.

</comment></comment><comment><USER15> This mirrors my experience precisely. I was very excited about async/await, hoping that this would integrate coroutines into regular Python scripts, without the need to manage some complex dispatch engine. I was equally disappointed to learn that it's business as usual, with painful and inadequate semantics out of the box.

At least we have pypy. The community should really be rallying behind that project.

<comment><USER16> > This mirrors my experience precisely. I was very excited about async/await, > hoping that this would integrate coroutines into regular Python scripts, > without the need to manage some complex dispatch engine. I was equally > disappointed to learn that it's business as usual, with painful and > inadequate semantics out of the box.

You're not supposed to use async/await without a framework like asyncio or tornado.

One way to provide a better UX is to merge asyncio into Python on a deeper level, but this is something that many people won't like.

</comment></comment><comment><USER16> First of all, see this pic: [https://pbs.twimg.com/media/COLLg0TUAAA4j79.jpg:large](https://pbs.twimg.com/media/COLLg0TUAAA4j79.jpg:large)

asyncio doesn't provide any nio abstractions for files because (a) it's not really needed, and (b) there is no easy way to implement it.

(a) basically you shouldn't expect your code to block on disk io. But even if it does block for a very short amount of time it's probably fine.

(b) one way to implement nio for files is to use a threadpool. Maybe we'll add this in later versions of asyncio, but it will require to write some pretty low level code in C (and reimplement big chunks of asyncio in C too). Another option is to use modern APIs like aio in Linux, but as far as I know almost nobody uses it for real.

Bottom line -- you don't need coroutines or asyncio to do file io. What you need asyncio (and frameworks like aiohttp) is to do network programming in Python efficiently.

<comment><USER17> > basically you shouldn't expect your code to block on disk io. But even if it > does block for a very short amount of time it's probably fine.

No, it's very often not fine. Magnetic disks, still the norm for many, and definitely with large storage, often go as low as 5KB/s for random access (or even sequential access to very fragmented files). Reading a 1MB file can easily take 5-10 seconds in some setups - which is not acceptable for any interactive service. It's not fine for a web server to not service any requests for 5 seconds.

> Another option is to use modern APIs like aio in Linux, but as far as I know > almost nobody uses it for real.

Anyone I know who tried came back screaming. There is no way to do an async file open, for example - which means that if you rely on aio, you can block for 10 minutes waiting for an NFS or SMB mounted file to open.

The only sane, portable thing to do for Unix/Posix is use a threadpool for async file io - or just use something like libuv which already abstracted async operations this way.

</comment></comment><comment><USER18> Tangentially related: of the people and projects that are using Python 3, why? I've found that aside from syntax and a few features here and there, Python 2 and 3 are more or less the same technology-wise, especially since 2.7 has a lot of features backported from 3. Thus to me it seems better to stick with 2 because there's so many existing libraries and CPython is the only implementation with complete Python 3 support.

If Python 3 had good concurrency and optimization (something neither version has right now), I'd consider using it, but is there an already existing reason that I'm just not seeing?

<comment><USER14> Simple answer - It's the current (and currently updated) version. Why would you not use it when starting a new project?

More fancy answer - There's plenty of nice improvements to the language (better handling of iterators, tidied up std lib, modern objects, etc), though it's probably worth it for unicode support alone - trying to convince python2 to properly handle international text is just a huge pain (also - no you can't just replace all accented characters with non accented ones if you want to preserve the correct meaning of text and not piss off all your customers by misspelling their names). Yes you can eventually solve all problems with python2. But why bother when you can just use the latest version, there's basically no cost for new projects.

<comment><USER19> There is a very clear cost for many new projects: infinite... for the simple reason that some key libraries _still_ do not do Python 3 at all. Let's be clear. Cassandra is the best large ingest nosql database out there. Python 2 only on CQLSH. Bloomberg. The default terminal used by the 300 000 most important financial people on earth. API Python 2 only. Theano. 3.x via 2to3 only. Anaconda, 2 still the default download with 3 an afterthought (in other words, even for new downloads, 2 still the majority!). This is more than about stuff not being ported yet. It's about people _preferring_ 2.x.

This idea that Python 3 is cost free needs to be expunged. For large classes of users, Python 3 is _not possible even if they want to_ (which they don't). Stop this erroneous propaganda. Unicode is nice if you're a web guy, and if you're a web guy, why are you using Python already? Unicode is completely irrelevant for everybody else and is most definitely not a core reason to move to Python 3. You're living in cloud cuckoo land on your 3.x magic mushroom trip.

Earth to web jockeys. Python's hardcore is numerical computing, and that hardcore is not on Python 3, and is not moving anytime soon, and certainly not for the dubious benefit of unicode. Moreover the web stack is much less important to Python than is numerical and scientific computing, for the simple reason that while the former has multiple better competitors in the form of golang, JS et al, the latter does not.

[sidebar: since when does ascii not cater for accents?? I am bilingual french / english and I have never had a problem typing french accents in ascii? You're creating misleading propaganda again. Once again, EatHeart, I quote you: "I suspect you don't really know what you are talking about...", or worse, you have an agenda to mislead.]

<comment><USER20> >Unicode is completely irrelevant for everybody else and is most definitely not a core reason to move to Python 3. You're living in cloud cuckoo land on your 3.x magic mushroom trip.

you're from the US, right? there's about 6 billion people for whom ascii isn't enough. some of them program in python.

</comment></comment></comment></comment><comment><USER21> I don't use python all that much, but out of curiosity, what's the problem with multiprocessing? In the languages I _do_ develop in, I find it much easier to reason about than multithreading.

<comment><USER22> Data exchanged between the processes is serialized with pickle. Pickling is slow, adds latency, and doesn't work on all objects.

[https://docs.python.org/2/library/multiprocessing.html#pipes...](https://docs.python.org/2/library/multiprocessing.html#pipes- and-queues)

<comment><USER21> That sucks; there's no shared-memory message-queue implementation?

<comment><USER17> any message queue implementation would require serializing (which the Python standard library provides with "pickling"). If there was a reasonable way to share live objects without the GIL, Python threads would use them.

</comment></comment></comment></comment><comment><USER23> When he brings up requests in comparison to urllib he seems to not know about aiohttp [https://github.com/KeepSafe/aiohttp](https://github.com/KeepSafe/aiohttp)

</comment><comment><USER24> Better multitasking and concurrency syntax, with task scheduling and out of core support here: [http://dask.pydata.org/](http://dask.pydata.org/)

</comment><comment><USER19> In other words, a lost opportunity. Asyncio and this new syntax is both hard for beginners and experienced python coders alike, _and still doesn 't do multicore!_. We're clocking up 3.x version numbers as if this will magically provide the illusion of progress, but the killer feature is still not there. Instead we get type annotations. In a dynamic language. Which doesn't compile and therefore doesn't need them. With no performance advantage. If I have to type declare everything, I want 10x performance. Okay?

If Python were a listed company, the CEO would have been replaced long ago. I'm tired of watching my favourite language flail around like this. Will Continuum Analytics or Enthought _please_ fork 2.7?

<comment><AUTHOR> I think the limitations of the GIL are not all in all a bad thing, but I do think that the Python community needs to seriously look at making Asynchronous execution a priority in future versions. Asyncio is really complicated and provides very little in terms of performance.

Multitasking is the most important issue that Python faces today (and maybe PyPy is the answer).

<comment><USER19> So we're in 3.5 already, and one of its central features, async, is flawed, you say. So not only do we not have a killer feature, but even one of the nice-to-haves is a dog. Timeout. This project needs new leadership. The competition (Golang) is walking all over Python on the async issue.

<comment><USER17> I read your comments on this thread, and I frankly wonder where you are coming from. It seems you care a lot about Python, but have a crisis because your pet peeve (threading) is not being addressed, and as a result expect the team who has been guiding Python to the success that it is over the last 25 years to step down. (And it has been a huge success - it has none of the big corporate money backing that Java, C# and Go have - but mindshare and notability on the same scale, dominates significant niches like non-HPC scientific computation, and has very significant presence in almost every field).

Could you tell me what (and how long) your experience is?

My answers about your complaints are basically:

1\. Solving threading is (relatively) easy, if you _just_ give up backwards compatibility; Not the 2.x -> 3.x compatibility which is comparatively trivial - but in a major way, breaking every single extension library, and the vast majority of Python code (or slowing it down unbearably). You might be happy, but the rest of the Python users (basically, the reason you actually use Python) won't.

2\. Assuming they agree with you about their failure (I dont, FWIW), someone has to step up and offer an alternative. Who is that, what are they doing these days, and why do you think they will succeed where Guido et al "failed"?

3\. Perl at 28 years is not much older than Python at 24 years (relatively speaking), but has been sliding into obscurity for a long time now, whereas Python is flourishing. The Python 3 transition is actually happening as planned (IIRC, there was an expected 5 year period just for feature and speed parity!). Perl 6 is esoteric, Perl 5 is aging and dying. I think that for a living, popular language, the Python team is doing a commendable job, even if they do not address a specific issue (that many people care about, but would actually not make that much of a difference in practice if we are to learn from other languages)

<comment><USER24> The GIL issue has been solved without breaking backwards compat: [http://pyparallel.org/](http://pyparallel.org/)

It just need further dev work and acceptance into py3

<comment><USER17> Did you actually look into it? The threads you run can't make any change to existing objects, and various other changes. It does break compatibility, and needs patched version of Numpy, ODBC (and I would guess, most other packages).

Definitely not "solved without breaking backwards compat".

</comment></comment></comment></comment></comment></comment><comment><USER25> so is it a little syntax sugar on top of the multiprocess module to please ios developers?

there's nothing new that i can see under the hood

<comment><AUTHOR> I mentioned iOS because Apple's Grand Central Dispatch API is something I wish Python had. Python's multitasking is so complicated while Apple's GCD is so elegant. It's sad really.

<comment><USER24> Your example is trivially parallelized with some decorators from the dask library.

Example here: [http://dask.pydata.org/en/latest/imperative.html](http://dask.pydata.org/en/latest/imperative.html)

<comment><AUTHOR> I hadn't seen Dask before this. Thanks!

<comment><USER24> Sure!

If you like it, can you please blog about it (and post on hn)? Needs exposure outside the python data community.</comment></comment></comment></comment></comment>


The Easiest Way to Change People's Behavior (2009) - <AUTHOR> http://blogs.hbr.org/bregman/2009/03/the-easiest-way-to.html

<comment><USER2> Summary: change the environment.

It also highlights why UX is so important (there's an example of a timesheet where removing a 10 second delay, they saw a huge improvement)</comment>


UNTETHER Asks: how pissed should we be with Path - <AUTHOR> http://untether.tv/2012/untether-asks-how-pissed-should-we-be-with-path// <comment><USER2> Let's be real, we all knew that Path was accessing our address books. That's the only way to do what they were doing. It's the same magic that happens when your phone magically knows that your friend has an iPhone with iMessage turned on(kinda). Yes they should have hashed them to keep us safe in case of a data breach, but I was never that worried. What are they going to find out, my mom's phone number and email address? Chances are they already have it.

Path's "private social network" was private because they didn't share your posts unless you mutually accepted someone. You can lock down posts so that you're the only one to see them as well. That's what Path means by private. It's a social network and you're uploading things to the internet. If you really had something you didn't want people to find, don't put it in your phone, don't upload it to a social network.</comment>


Ask HN: Tips for Speed Networking? - <AUTHOR>

I'm going to be attending my first "speed networking" event tomorrow. I've done some research on tips but most of it seems generic and not a lot of help. Does anyone who's attended this or any networking event in the past have tips on what specifically local business owners may want to hear about website creation? <comment><USER2> I would find some stats about how people now use Google opposed to the phone book, a little about SEO and bring some screen shots.

I assume they are at least open to the idea so it should not be a hard sell.</comment>


Why I will never again rate an Android app - <AUTHOR>

A few days ago a colleague came into my office with his brand new table and told my that he installed the same Android app as me. WUT? How does he know what app I installed on my personnal smartphone ?
He showed me that, in his tablet google play, my icon and name was displayed under the app description. When I clicked on my icon, I could see other apps that I installed. WTF?
He then explains me that he added me in one of his Google+ circles. I then checked all my confidentiality otions and my G+ account. Everything is set to undisclose any information. I created the G+ account to lock my nae as I did with other social service. I'm not into exhibitionism. I don't publish any information on these services. I don't have my colleague in my cirles. G+ allows to see who added me in his circles. I saw that my Boss added me in his G+ account. There is another colleague and a totally unknown woman in a city 800 km away !?
I recently installed Waze on my Android smartphone. Every time it started it would display a dialog inviting me to rate the app. To get rid of the dialog and because I find it a good app, I rated it five star.
Today, I checked again on my colleague's tablet if anything changed after I reviewed my confidentiality options. The Waze app was added to the list. So rating an app is enough for your G+ followers to see it.
On this day I decide to never rate an Android app anymore. I don't find it right that my colleague and my Boss are notified on my apps rating on my personnal phone. This is a tool for spying.
I'm sorry for Android app developpers and user who would find the feedbak usefull. But things are getting Orwellian at Google. This is the type of problems you get with a monopole. <comment><USER2> I'm gonna get crazy heat for this, but real talk: get an iPhone.

For now, Apple has not screwed their customers like Google/Android and has more granular privacy options.

<comment><USER3> Seriously. That is going to be my next phone. I'm very sick of all the privacy issues with Android, and for a phone, I want something that Just Works. iPhone seems to be the logical solution. I'm sure it doesn't have a prompt that isn't able to be disabled when you turn on the GPS.

</comment></comment><comment><USER4> I'm sorry this wasn't as you expected, but that is operating 'as advertised'.

There's some text when you rate that explains it will be shared.

<comment><AUTHOR> I just checked on my phone and there is exactly no information provided on the sharing. I naively assumed that my rating would only affect the rating average seen in the playstore, and that would be all. I never left a comment because I don't want my identity to be advertised.

There is also this hard to find check box where I explicitly request not to share my recommendations : [https://plus.google.com/settings/endorsements](https://plus.google.com/settings/endorsements). I unchecked it as soon a it was advertised some year ago. From my perspective, Google is not respecting its contract.

If there is some text explaining me that the info is shared, could you tel me where I can find it ? I would expect a link would be visible in the dialog where the rating is performed. There is none.

Can I opt out of that ? More precisely, can I opt out that people tracking me against my will and control on Google+ see what Android apps I rated on my personal phone ?

</comment></comment><comment><USER5> I never signed for google+ and facebook for precisely this reason. Its all messed up!

And yeah, google did mention explicity and there was media coverage about this.

I am considering moving to an iPhone. I am just sick about android. I own the android phone but i dont control what i see on the phone. Ads pop all over the apps! And Games are worse! Full screen ads!! so annoying!! Take the money and leave me alone!

</comment><comment><USER6> At your first attempt to rate an app on Google Play, you got a dialog warning you that this will be connected to and visible on your account.

I find this information extremely useful, because a +1 from someone i know is more interesting than 5 stars from some random user.

However, I should be able to hide this / opt out after the fact.

</comment><comment><AUTHOR> Sorry for the typos. I can only edit the title, not the text. I wrote this with my iPad 1.</comment>


Ask HN: A Mobile OCR App That Does Circuit Analysis & Solves Math Equations - <AUTHOR>

Good Morning & Happy Monday Everyone,<p>How do you feel about an idea like that? <comment><USER2> Did you mean this just as a discussion? I'm not seeing an article link...

<comment><AUTHOR> \- Oh sorry about that Matt. I meant it as a discussion.</comment></comment>


California bill links corporate tax rate to the company's pay inequality - <AUTHOR> http://www.bloomberg.com/news/2014-04-25/california-bill-boosts-corporate-taxes-for-high-paid-ceos.html

<comment><AUTHOR> More details can be found at [http://www.leginfo.ca.gov/pub/13-14/bill/sen/sb_1351-1400/sb...](http://www.leginfo.ca.gov/pub/13-14/bill/sen/sb_1351-1400/sb_1372_cfa_20140421_160414_sen_comm.html)

Extract below:

              Starting in the 2015 tax year, Senate Bill 1372 changes the
              corporation tax rate for publicly traded corporations,
              including wholly owned subsidiaries, according to a ratio
              between:

                   The greater of the chief operating officer or highest
                   paid employee's pay for the calendar year before the
                   current taxable year, over
                   The median compensation of all employees' employed by
                   the taxpayer in the United States.

               </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>
              |                              |                             |
              |If the compensation ratio is: |The applicable tax rate is:  |
              |</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment>-----|
              |                              |                             |
              |Over zero but not over 25     |7% upon the basis of net     |
              |                              |income                       |
              |</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment>-----|
              |                              |                             |
              |Over 25 but not over 50       |7.5% upon the basis of net   |
              |                              |income                       |
              |</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment>-----|
              |                              |                             |
              |Over 50 but not over 100      |8% upon the basis of net     |
              |                              |income                       |
              |</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment>-----|
              |                              |                             |
              |Over 100 but not over 150     |9% upon the basis of net     |
              |                              |income                       |
              |</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment>-----|
              |                              |                             |
              |Over 150 but not over 200     |9.5% upon the basis of net   |
              |                              |income                       |
              |</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment>-----|
              |                              |                             |
              |Over 200 but not over 250     |10% upon the basis of net    |
              |                              |income                       |
              |</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment>-----|
              |                              |                             |
              |Over 250 but not over 300     |11% upon the basis of net    |
              |                              |income                       |
              |</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment>-----|
              |                              |                             |
              |Over 300 but not over 400     |12% upon the basis of net    |
              |                              |income                       |
              |</comment><comment></comment><comment></comment><comment></comment><comment></comment><comment>+</comment><comment></comment><comment></comment><comment></comment><comment>-----|
              |                              |                             |
              |Over 400                      |13% upon the basis of net    |
              |                              |income                       |
               </comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment><comment></comment>


Siri Is Stuffed With Hilarious Easter Eggs - <AUTHOR> http://www.wired.com/gadgetlab/2011/10/siri-is-stuffed-with-hilarious-easter-eggs/ <comment><USER2> The original is here: [http://thisismynext.com/2011/10/12/siri-weird-things- iphone-...](http://thisismynext.com/2011/10/12/siri-weird-things-iphone-4s/)

I'm sure the joke responses are deliberate, just as Infocom text adventure games were programmed to be 'smart' enough to respond to predictable human input.

</comment><comment><USER3> I posted to Quora yesterday to find out who exactly (besides Wolfram Alpha) is behind Siri's impressive sense of humor.

<http://t.co/Z3aCe1sm>

</comment><comment><USER4> I can't help but think it's more likely that these images are faked than that Apple actually designed Siri to recommend escort services.

<comment><USER5> It's not like they had a bunch of people sitting around a conference table thinking up the phrases people might ask it. It's a natural language parsing engine; it understands "horny" as sex, and pulled up related Yelp listings.</comment></comment>


Ask HN: Is anybody using a standing desk with a treadmill? Does it work? - <AUTHOR> <comment><USER2> I know two people who have done so. It "works" in the sense that you can indeed walk at about 1.5 MPH (a slow walk) while working. However, that's only useful if you're trying to lose weight and can't do so another way.

Such slow movement has no cardiovascular benefit, so it's pointless if you're not trying to lose weight. Just use a sit/stand desk (and ideally, take breaks for exercise).

</comment><comment><USER3> I was concerned about work experience of my colleagues, because treadmill could be too loud, so instead of treadmill I'm using a standing board. It's not as good as treadmill, but it's much cheaper.

</comment><comment><USER4> I do. It's been enjoyable. It beats being completely sedentary if you don't have other activities or exercise as part of your routine.

I generally do 30-60 mins of active walking a day, usually in between active tasks.

</comment><comment><USER5> I recently looked into them and was put off by the price. So I bought a Cubii, which is an under desk elliptical. I'm only a few days in but so far it's been solid.

<comment><USER6> Funny enough, I've only ever seen these advertised at the gym I used to work out at (pre-Covid19), on the TVs people watch while riding the exercise bikes. They'd certainly be more effective than that spinny squirmy chair gizmo, although that one might be good for posture.

I still think these things should be rigged up to charge cell phones and whatnot. Lots of unharnessed energy released in exercise.

<comment><USER7> > Lots of unharnessed energy released in exercise.

Not as much as you might think. The human body is incredibly efficient.

eg [https://blog.directenergy.com/how-much-exercise-would-it- tak...](https://blog.directenergy.com/how-much-exercise-would-it-take-to- charge-your-phone/)

<comment><USER6> Ah, there are two ways to understand what I meant. I wasn't talking about human efficiency (which it does sound like I might have been), but about the unused mechanical energy.

In most exercise machinery, there is an energy output that isn't being harnessed as much as it could be. Some stationary bikes and rowing machines use the person's pedaling or rowing to power the controls, so there is an example of where it is being used. But the majority of other pieces of equipment are not harnessing the energy output.

For example, every one of the pulley machines could have a magnetic shield around a segment of the (metallic) cable, which would produce a current both on the pull and on the release from the person exercising, without adding any noticeable tension.

Another example of where potentially harvestable energy isn't being used: although the chain on the rowing machine is often used to power the screen, the seat could also be used to generate electricity as it glides back and forth, using the same magnet concept.

</comment></comment></comment></comment><comment><USER8> I felt it is difficult to concentrate. I use treadmill only while watching TV or some documentaries.</comment>


Show HN: TripBright – activities and tours for your Airbnb guests - <AUTHOR> http://www.tripbright.com

<comment><USER2> Hi HN, I built this app because my vacation rental guests always ask me what there is to do in the area! If a host's guests books a tour, the host will earn a commission. I'm really interested in working with vacation rental agencies, who I believe have lots of potential to up-sell their clients. Activities and tours are just the start - other vacation specific services will be available soon. Thanks for checking out TripBright!

<comment><USER3> Hi, I guess it could be useful. Although what I enjoy the most about Airbnb is interacting with the host in person. Would be interesting to know what the % split is between those like me and those that want to keep to themselves.

<comment><USER4> Consider me an anecdotal data point to the contrary - if I can pick up the keys from a box and put them back there when I leave, with no human interaction, I'm over the moon.

</comment></comment></comment><comment><USER5> You could market it as a concierge platform for AirBnB hosts. Expand beyond the basic tourist-y things to recommendations on all kinds of services. Hosts could build their own content or you could sell them city bundles. It could be a way for people that run AirBnBs without actually living at the residence to give guests the same knowledge that living with a host could.

<comment><USER6> Right. Consider partnering with rental car sites. If you can get a commission from several different ones, then let me add the closest one to my guide book, everybody wins.

</comment></comment><comment><USER7> Are you working directly with tour companies? Is this something that could have been an add-on feature for sites like Viator or Peek that already have those relationships in place?

<comment><USER2> We are currently using Viator's tours. And yes, we'll be adding more tours and services from other companies that offer these things. You can see in the example guide linked on the homepage that we're transparent about who you're ultimately buying the tour from, similar to Kayak.

</comment></comment><comment><USER8> From a guest's perspective, I'm not sure if I like this. If I ask for my host's recommendation about what to do or where to go, I want him to tell me what he actually think is the best idea. This product incentivizes him to instead recommend something that will make him money. But I guess if he recommends something bad, then he risks getting a negative review on AirBnB, so that helps a little bit.

<comment><USER2> In the future, hosts will be able to make their own "products" which will be free of charge - like a nearby hike or beach that they recommend. I think free activities mixed in with paid tours, combined with a host's custom recommendations per (paid) activity (which is currently implemented), should make an honest, wholesome and reliable guide.

Also keep in mind that it won't always be just touristy tours. Along the lines of crazypyro's comment, we'll be adding other services like transportation and restaurant reservations.

<comment><USER6> I think you need this feature quickly. Let me add restaurants and other places easily by finding them on yelp, and let me add generic boxes with a url, and let me add my own notes on them AND on the tours you provide. Until then, I can't use it, it would come off as crass.

<comment><USER2> Thanks for the feedback. We're working hard and will let hosts know as improvements are made.

</comment></comment></comment></comment><comment><USER9> I've known Drew for a couple of years now and he's been working with travelers since before we met. Glad to see this take flight!

</comment><comment><USER10> If sosh.com could expand to cities more quickly, they could easily take this market; however, I do think you have an edge in that the list is curated by the host. Either way, really cool product :)

</comment><comment><USER11> How can I invest in this?

<comment><USER2> Email me.

</comment></comment><comment><USER12> Great Idea... May be using a moving background as the banner image might add the necessary zing to the website.. Movement also kind of denotes activity.

</comment><comment><USER13> Awesome Drew!

</comment><comment><USER14> Great work and great idea!

</comment><comment><USER15> A signup page without enforced SSL :(

<comment><USER15> why downvote? encrypted passwords aren't important?</comment></comment>


How An Idea Is Presented Impacts Its Appeal - <AUTHOR> http://www.artefactgroup.com/blog/2008/12/how-an-idea-is-presented-impacts-its-appeal/

<comment><USER2> This is news?</comment>


AR Wear - A clothing line offering wearable protection for when things go wrong. - <AUTHOR> http://vimeo.com/74514464 <comment><USER2> What a concept. I think my mind just blew.

I have no insight into whether women want this, but if they're amenable to the idea, imagine what the marketing engine behind something like the Susan G Komen foundation mixed with the home security industry could do with this.

Already, home security advertisements imply that you should buy their product if you don't want your wife to be raped. What if that could be extended to people's feeling of compassion for women in general? Imagine how much would be donated to buy these for Indian women after a rape scandal.

I always assume a company out to make money will eventually blur the lines of morality like that, but the complication comes from this device's implication that women are responsible for not being raped. I think people will be seriously, seriously fucked up by the fact that this thing exists. If someone is raped, how will she handle the idea that if she spent the money she could have prevented it? How will parents feel if the worst happens and they didn't buy this for their daughter? How will they feel if they _did_ buy it but she wasn't wearing it? What about people who can't afford it? Think about what _that_ could do to your self image! Or even worse, this only looks like it'd work on a woman who has a narrower waist than hips.

I can also see legal trouble. What about the first lawsuit against a college/concert venue/etc for bringing people together without providing these? What about someone claiming indemnity _for_ providing them in an otherwise unsafe environment? And that's not even getting into the skydiving disclaimer the company selling 'em would have to use.

This has to be the craziest thing ever brought to market. I guess what I see happening is another pink ribbon, ostensibly nonprofit. I actually hope that happens, except this time the people behind it set an example of using 99% of funds to make the device cheap and widely distributed instead of 'losing' 80% of the money to 'administrative costs'.. though that still leaves the manufacturers and material suppliers in a morally complicated position wrt profits.

</comment><comment><USER3> They say it is easy for the wearer to remove, but hard for someone else to take them off. Still it seems to rely on a sort of low-grade combination lock which is going to take some amount of focus and manual dexterity. The first question that comes to mind is how hard is it to remove for someone who finds themselves doing the pee-pee dance?

</comment><comment><USER4> First thought that came to my mind is how a paramedic/ER team is going to have have to deal with this if they have a unconscious person and are trying to run a catheter to figure out which drugs the person might have consumed.

I guess it comes down to the odds of ending up being raped versus ending up in an ER ward after a night of partying (and the benefit/consequences to wearing "AR wear" in each of those scenarios)

<comment><USER5> [http://en.wikipedia.org/wiki/Trauma_shears](http://en.wikipedia.org/wiki/Trauma_shears)

</comment></comment><comment> X-Istence Here's a link to the IndieGoGo campaign: [http://www.indiegogo.com/projects/ar-wear-confidence- protect...](http://www.indiegogo.com/projects/ar-wear-confidence-protection- that-can-be-worn)

</comment><comment><USER6> This is some interesting out of the box thinking. It seems almost like a kevlar chastity belt. Which, if you want to insure you don't have relations, is a good thing. As a father of three daughters I am a bit bummed that it has come to this, one would hope that the world would become more civilized rather than less.

<comment><USER7> Chin up... this no more heralds the decivilization of the world than airbags herald a rise in car crashes. While it's a terrible fact that it remains an issue... it's heartening to see progress giving a better chance of walking away with fewer scars to those whom the unthinkable happens to. It's not enough, but it's a step forward, not back.

</comment></comment><comment><USER8> How significantly different is this from the bullet-proof whiteboards people tried to make a quick buck on? [http://www.nytimes.com/2013/11/03/education/edlife/bulletpro...](http://www.nytimes.com/2013/11/03/education/edlife/bulletproof- just-in-case.html?_r=0) Seems like both basically capitalize on fear.

<comment><USER9> A very legitimate fear of a very common horrible event.

</comment></comment><comment><USER10> Are those plastic scissors and knife?</comment>


US and Russia ally with Saudi Arabia to water down climate pledge - <AUTHOR> https://www.theguardian.com/environment/2018/dec/09/us-russia-ally-saudi-arabia-water-down-climate-pledges-un <comment><USER2> I'm neither surprised nor find this particularly unexpected any more. Climate, species, biodiversity, and human life are all just externalities. Resources to be exploited.

Nothing will change until the only people that matter (those with 99% of the small, green, pieces of paper) lose more by putting the telescope to their blind eye than by accepting. The part I still find difficult is none seem to realise that point is almost certainly far too late to fix things.

</comment><comment><USER3> This is shocking in so many ways. Sad !!!

Also, from the article, TIL a new word: Obdurate ...

</comment><comment><USER4> "Law of Thermodynamics"? Which law?

Maybe it is number 4: "The entropy of a system approaches a constant value as the temperature approaches absolute zero".

\-- I think we need more global warmings.</comment>


Dubious Minneapolis 'anti-fascist' Twitter account gets 6000 followers overnight - <AUTHOR> http://www.citypages.com/news/dubious-minneapolis-anti-fascist-twitter-account-gets-6000-followers-overnight/417962283 <comment><USER2> Seen something similar before, the account was set up, then made to say stupid things to make anti-fascists look bad.

<comment><USER3> To be fair, they don't really need too much help in that department.</comment></comment>


Ask HN: How do you prioritize things to read? - <AUTHOR> There are so many great articles posted in Hackernews every day that worth reading. Plus if you are a developer you have to read a lot of articles about new techs and frameworks every week. Also there are enormous books about technical and non-technical subjects that we should read to upgrade our minds.
I've been struggling prioritizing articles, news and books to read. there are so many folders left on my desktop with bunch of pdf files, named "To Read - X". Or for example so many tabs of blogs and posts that I wanted to read, left on my browser. Of course I did well in organizing them, so I used a tab manager to create folders of tabs containing tens of them.
So, how do you manage and prioritize your to-read things? Maybe my problem is that I should select less things to read and be more strict in selecting them. Or maybe I should limit the amount of things to read and do not add more things to get everything read. I don't know which one is the best solution. If you've had similar problem please let me know how did you get your solution for it. <comment><USER2> As a lazy person, I know that I never gonna read as much articles/books that some other folks read in their time. I also want to be among the best at my field. The only way around this situation, is to choose my reading list wisely. I have a limited time and there's unlimited options to read. I think this approach has been worked for me.

How I choose my books? I read extensively about their reviews. And I don't force myself to finish a bad book!

How do I choose my articles? I have a trello board for it! In my trello board I list every promising article I seen around the web. I list these articles based on their subjects. When I have time to read something I look at all the options I have in a certain category and I choose what seems to be the best and/or most relevant article among them.

</comment><comment><USER3> Don't worry too much about prioritization if your goal from reading is to learn. Set aside some time and then pick whatever article/book you most feel like reading and just get going. If it bores you, then stop and move on to the next one.

For interesting articles, take notes using a system that works for you. Progressive Summarization and Zettelkasten are good ideas.

Over time, you will realize that most articles and books are not worth the time investment to deeply read them and get quicker at skimming to get the gist.

Some useful links:

Better note-taking misses the point -[https://notes.andymatuschak.org/z7kEFe6NfUSgtaDuUjST1oczKKzQ...](https://notes.andymatuschak.org/z7kEFe6NfUSgtaDuUjST1oczKKzQQeQWk4Dbc)

Gutting books - [https://twitter.com/varsha_venkat_/status/110774091578163609...](https://twitter.com/varsha_venkat_/status/1107740915781636096)

</comment><comment><USER4> I would cut down on the number of stored articles. If you haven't read it in 1 year, is it really that useful?

I prioritize based on my needs and then on my wants. So I will read articles relating to work and stocks first. Then I will read articles or books related to my hobbies.

I let books sit on my shelf indefinitely, although I usually get to any I buy pretty quickly.

I try not to bookmark articles or blogs unless it has some specific/unique knowledge like a recipe that I know I will want to find later and won't be easy to google.

</comment><comment><USER5> I tend to narrow my focus. Current focus is PyQT, Five eyes intelligence community and social casino. I need to further reduce them to more actionable focuses.

</comment><comment><USER6> Night stand, and also peer comment about not prioritizing

</comment><comment><USER7> Zettelkasten / POIC.

A reading journalish thing.</comment>


Marc Andreessen explains self-driving cars could create a bunch of American jobs - <AUTHOR> https://www.recode.net/2017/5/30/15693382/marc-andreessen-automation-jobs-code-2017 <comment><USER2> This isn't a very convincing argument, being devoid of any data. To wit there are:

* 167,740 taxi drivers and chauffeurs

* 834,780 light or delivery service truck drivers

* 1,550,930 heaver and tractor trailer trucker drivers

* 606,990 automotive mechanics

That's 3.16 million people who would be affected. I couldn't even get a count of the number of auto dealerships, much less the number of auto sales people. My assumption is once self-driving cars come to pass a large number of people are going to stop owning cars and simply hail a self-driving car when needed. I'm also assuming self-driving cars are going to be all-electric cars and therefore have a 1,000,000 mile life expectancy with far fewer visits to the mechanic due to its simpler design and far fewer parts. Since I believe people will largely stop owning their own cars then cars will be purchased in fleets so there won't be as much need for auto dealerships. Finally, this isn't even taking into consideration that with less car ownership comes decreased demand for auto insurance and its agents. Not to mention claims adjustors, auto body workers, car washes, auto parts retailers, etc., etc., etc.

Mark Andreessen addresses none of this. Just a bunch of hot air and hand- waving.

Edit: data obtained from Wolfram Alpha</comment>


Show HN: VirtQueue – Making Physical Queueing Virtual - <AUTHOR> https://virtqueue.com/ <comment><AUTHOR> Hi Hacker News!

I'm super exicted to be showing this web app off. My local pharmacy struggled to cope with the amount of incoming requests for pick-ups so I developed an open source queue system that can help small businesses with the current climate. It's open sourced with the MIT licence.

I'm happy to take any questions you may have!

</comment><comment><USER2> Nice work, does this automatically trigger SMS or other push notifications from the server to the customer when the order is ready for collection? Who else is using it?</comment>


Mozilla Launches Preview Of Firefox For Windows 8 Tablets - <AUTHOR> http://techcrunch.com/2013/09/20/mozilla-launches-preview-of-firefox-for-windows-8-tablets/ <comment><USER2> I just tried this on my Surface Pro and although performance is really lacking and pinch to zoom does not work, I am excited about the possibility of using other browsers than IE11. Chrome for Windows 8 has been abandoned since release so I hope Firefox will continue to develop this UI.

</comment><comment><USER3> This looks like that Firefox Junior prototype that popped up a while ago. Nice to see thumb-centered controls spreading on tablets.

</comment><comment><USER4> I sure hope its less buggy than regular Firefox on Windows 8. I mean, my lord its bad most of the time! (depending on the update).

</comment><comment><USER5> I don't know if it's a good or bad thing that WP8 apps break all historical resemblance to other app UIs. Anyone with first-hand experience that can offer some feedback of how these apps hold up from a usability standpoint?

<comment><USER6> Varies a lot by form factor - my experience with Metro apps on touch devices has been amazing. On desktops, I rarely have a reason to use them - except for running a full-screen Kindle / Netflix app on an additional monitor.

FWIW, iOS7 and the latest Android UI actually borrow a lot from the Windows Phone flavor of metro pretty heavily. The context switching between apps on iOS7 is identical to what MSFT introduced in WP7.1 (Mango.)

<comment><USER7> I agree. On my (non-touch screen) laptop I hardly ever use the metro apps. I like win8 but I just go to the desktop practically every time. There just aren't any metro apps worth using right now (I basically only use this laptop when i'm in front of my netflix-capable tv)

<comment><USER6> Decent Metro Apps: I recommend ReddHub - it's a pretty slick Reddit client for the Windows Store. I use it on my Surface RT all the time.</comment></comment></comment></comment>


The network Uber drivers built - <AUTHOR> https://www.fastcompany.com/40501439/the-network-uber-drivers-built <comment><USER2> This is good. Say what you like about unions (and yeah, there are some problems), but generally employees need to be able to work together like this or they're at an even more massive disadvantage compared to employers. The gig economy is likely to be highly extractive from workers unless the workers wisen up like this.

<comment><USER3> >massive disadvantage compared to employers

In cases where labor is less like a commodity and/or when the employee, customer and employer lines are blurry (as is the case with city and town employees but less so with say, the IRS) there is less benefit to unionization.

I do think that unions would be a net positive for most gig-economy workers though.

</comment></comment><comment><USER4> > He's a forum administrator, one of many across the globe who put in > countless hours managing unofficial online communities where drivers who > work for Uber, Lyft, and other ride-hail services share advice and warnings, > answer questions, and provide a rare sense of camaraderie.

I remembering reading a foreword to Animal Farm, saying how Orwell was able to predict the dystopian aspects of technology, but wasn't able to see how technology could bring about social change for the good (like the shortwave being used to communicate across borders and into dictatorships).

I think this type of statement shows just how much we miss this currently when we bemoan every tech dark side.

The same decentralized tech aspect of Uber that helped change the ride service industry, can also help the drivers fight being exploited.

My theory, very weakly held, is that many in our industry are naturally pessimistic (I know I am) and it helps us see all of the ways that things can go wrong and help us prevent them. But I think we're also missing out on a lot of opportunities that would help use the same tech to counter the outcomes.

It's like fire. We can burn the world, hurt each other, and tear down society. But we can use it to warm the world, help each other and build society. Both are kind of inevitable.

</comment><comment><USER5> Was the video to the right unpausable for anyone else? Any time I scrolled it would start again - ended up removing the containing div but it's odd video control behavior

</comment><comment><USER6> What's to stop this network of drivers from building a new version of uber that they collectively own, along with engineers and other worker-owners that could manage the tech side? The point of ridesharing companies is to find drivers for people that want them. Now the drivers all know each other through this network and just need to figure out how to tell customers where they are. They could make a lot more for themselves if they didn't have to give a large chunk of the ride fares to highly paid management and investors.

<comment><USER7> Demand (ie. Customers) is easily one of the hardest parts of business. You're suggesting that supply is the cornerstone of a market, but thanks to the Internet, owning supply is nowhere near as important as owning the customers.

See: Facebook, Google, Amazon.</comment></comment>


Good OS Announces Cloud - Boots into Google Chrome within seconds - <AUTHOR> http://www.thinkgos.com/press-release20081201.php

<comment><AUTHOR> Engadget gives a better overview but editorializes:

[http://www.engadget.com/2008/12/01/gos-cloud-instant-on- os-c...](http://www.engadget.com/2008/12/01/gos-cloud-instant-on-os-comes-to- gigabyte-touchscreen-netbooks/)</comment>


Ask HN: Gaining traction when AdWords and viral won't work? - <AUTHOR>

Our startup makes a product that's ahead of its time.  It solves a customer problem, but we're having a hard time getting past our initial crop of customers.  AdWords campaigns are too expensive: we've just invented the Model-T but everyone is Googling for "faster horse."  We can't afford to buy "faster horse" clicks because the horse market is so much bigger than we are.  Our product is so new that expensive, "high touch" customer education is required to make a sale.  We're in the enterprisey software development space, not in the consumer space, so viral and word of mouth are too slow for our burn rate, and customers "really like it" but don't "love it to death."  The early-adopter market is small for now, but what little market there is we'd like to reach in the most effective way possible.  How can we capture attention when it is at such a premium? <comment><USER2> Another comment mentioned Steve Blank's _The Four Steps to the Epiphany_. I will elaborate a bit on why the ideas in this book may be relevant to your situation.

Steve Blank argues (and many more agree) that a startup is a temporary organization designed to accomplish a small set of goals:

      1) Learn and understand exactly who your customers are
      2) Learn and understand exactly what your customers will pay for
      3) Achieve product/market fit (though Blank does not use this term specifically)

Only after you've met this criteria to you begin marketing. What you have described is reminiscent of the "build it and they will come," where the focus was on building your product instead of understanding your customers. I may be mischaracterizing your situation, but history has taught this method to be fatal for a startup.

To better understand this, it's best to fall back onto Paul Buchheit's notion that a small base of customers who _love_ you is always better than a large base of customers who _like_ you. The reasoning behind this is thus: A small, passionate base of visionary customers can be exuberant about a Minimal Viable Product, whereas the mainstream market cannot. From those visionary customers willing to purchase an MVP as opposed to a whole product, you can learn _an incredible amount_.

Back to you: Currently, you have a small number of customers who _like_ you. If the base of visionary early customers you've attracted just like you, how can you expect the mainstream market (which you seem to be aiming for) to even like you that much? The important factor here is that the mainstream market has even _more_ needs than the customers you're currently serving.

You're worried about cash, and I'm afraid that marketing may be money down the drain. I recommend analyzing your spending and drastically lowering your burn rate. Turn away from the mainstream market and back to your visionary customers. Ask them questions. Find out how you can build a product that they _love_. Achieve product/market fit (for more information on that, I recommend searching out Sean Ellis' blog).

It seems that there is much to learn about your customers, and that the best course of action here may be moving backward instead of moving forward.

</comment><comment><USER3> Have you tried calling them on the phone? Google searches then phone calls can work wonders if you're in "enterprise" software. If your margins are too low to support that, you've found a flaw in your business model. You'll either need to adjust your channels for user acquisition, or charge more per customer.

Have you tried partnering with other people in your space? Does your product work well as a component in a stack? If so, partnering could be great for you.

If you're sure you have a good product/market fit (are you sure enough to bet your company? Because you will be...), then I'd look at some partnering options to drive growth.

</comment><comment><USER4> One thing that we have done with bandsonabudget.com is to get involved in our target community on both a local and national level.

Specifically, nationally, we trade/discount services in exchange for festival sponsorship (which usually comes with ad/print/website link). We also write useful blogs/articles/reviews/interview for bands, primarily to drive traffic and serve as link bait.

Locally, we book shows/art opening at our store/office space and cut deals with promoters, venue owners, and tastemakers to help build the brand.

While we might be different from a traditional SaaS service - we are a web based business with a brick and mortar storefront - it all boils down to engaging your target market/community, often times in a non-salesy/gimmicky way - building trust, respect, and brand awareness is the best way to build a loyal customer base.

</comment><comment><USER5> Pick up phone; call people. It sounds like you need to do more customer development and work out your sales processes, but in the mean time there is no reason why you aren't devoting serious time to calling people.

<comment><AUTHOR> We have no problem with calling people; the problem is finding people to call --that is, lead generation.

<comment><USER6> A friend's startup does precisely this (given a target vertical or, ideally, a list of target companies, comes back with a scrubbed target contact list.)

They generally work on referral, but I'd be happy to make an introduction if that's what you're looking for; my email address is in my profile.

<comment><USER7> > _given a target vertical or, ideally, a list of target companies_

Well, sure, "ideally" it's easy to find people to call, "given" a list of companies!

Much more interesting if someone produces the list from a vertical.

</comment></comment></comment></comment><comment><USER8> I just read 4 Step to Epiphany by Steve Blank and it seems that the book is geared towards situations exactly like yours. I'd highly recommend it.

</comment><comment><USER9> I hope that you are using the word customer in the old fashioned sense of "someone who pays you for your product or service." If so then ask your current customers:

       For referrals
       For testimonials
       What websites, tradeshows, websites, on-line forums they read.
          Take part in these as they are likely to be target rich environments

</comment><comment><USER10> Did you try advertising directly? You might try getting write-ups from relevant blogs. Sponsoring events might be another avenue.

Did you try cold calling? How about one of the founders taking a sales person role and start knocking doors?</comment>


Ask HN: What do you want to do but you can't? - <AUTHOR> Hey HN,
This is a question I ask myself pretty often. I also try to write down whenever I encounter wanting to do something but not being able to. I have kept a running list of answers to this question for a while and today I was thinking that it would be interesting to hear answers from other people as well.
I have used my list in the past as inspiration to build things. Maybe we can find some inspiration together? <comment><USER2> I'd like to have the "full internet" easily accessible through my tv. I think this is more than just a browser but sites have to develop responsive deaign with this in mind.

</comment><comment><AUTHOR> Here is one of mine:

I want to be able to remove myself from group SMS messages.</comment>


Are you an Introvert or an Extrovert? - <AUTHOR> IMO the majority of people who will read News.YC are a Introverts to their friends and family. But when we are here at News.YC, we  all become extroverts. I think we are the most bipolar people ever to live. We maitain two lives. One where people think we are reserved, not polite, not social, not interactive, arrongant, and another life here where we are open, we socialize with each otheer, heck some of us even created places online for extroverts to fully enjoy their nature. So who are we? <comment><USER3> I've become much more outgoing as I've aged, actually, and I like social occasions, as long as the people aren't boring or annoying.

<comment><AUTHOR> "as long as they are not...fun" Man you are the definition of introvert. Selective. Extrovert will kick it with anyone and make them "not boring'. I am not getting at you though. I am a introvert.

<comment><USER3> I can tolerate people who are boring or annoying, just don't enjoy it. I think even really extroverted people have people they don't care for. In any case, it's not like I'm one of those people who consider everyone beneath them - <USER2> "boring/annoying" people filter doesn't catch _that_ many people.

</comment></comment></comment><comment><USER4> I used to think introvert was a bad thing. But I think most people understand the word wrongly.

Introvert = you get your motivation and energy from your own creativity and thoughts.

Extrovert = you get your motivation and energy from the people around you.

They're both good things.

Introvert != Troll.

<comment><USER4> Introvert != Shy

</comment></comment><comment><USER5> I'm an introvert when I'm alone and an extrovert when I'm around other people. This post reads stupid, but it's true.

</comment><comment><USER6> We are all naturally introverts. The question isn't are you and introvert or extrovert, the question is do you have the balls to overcome your fear and get out there and make cold intros.

<comment><USER7> That's not true at all. Introverts are generally drained by social interaction and _need_ serious alone time to recharge. Extroverts are the opposite and need the social interaction to recharge, being alone tends to bother them.

</comment></comment><comment><USER8> Some of us are introverts both here and in "real life".

</comment><comment><USER9> I'm basically a loner who likes being in a crowd when I have to do it. I find that I'm at my most productive on narrowly focused technical projects when people leave me alone, but I'm happiest and the most balanced and effective on a broad spectrum of issues when I'm "plugged in" to a larger group. Having said that, I find the transition between the two to be tough.

</comment><comment><USER10> In real life and on a Myers-Brigg type test I usually fall dead center on the introvert/extrovert line, though usually one or two questions to the extrovert side. It's usually a willful distinction between whether I am behaving as an introvert or extrovert -- if an introvert, it's because I find that social interaction completely uninteresting.

<comment><USER11> Social interaction can be interesting if it's actually interaction with interesting people.

Unfortunately, what has come to be known as "social interaction" is the custom of getting a bunch of people in a room, stuffing them full of bad food and alcohol, and letting them talk about themselves for several hours.

On the other hand, if it really is completely uninteresting to you, just get drunk, and suddenly that worthless slob ranting about his new lawnmower will be divulging the secrets of the universe. I suspect this is the real reason why people drink... it takes actual effort to have fun if you are sober.

<comment><USER10> If I'm going to be doing chemically enhanced social interaction, my substance of choice is kratom. It's well suited to truly enhanced discussion, not just the louder discussion that alcohol helps with or the disjointed, randomly connected conversations you have on weed. Unfortunately, the only drugs I can buy in public places intended for shared social experiences are alcohol and caffeine. I'd love to start a legal drug cafe but that will have to wait.

Yes, I am shilling my own business, no that doesn't mean you need to mod me down (I seem to always get modded down when I talk about the benefits of kratom. But it is a medicinal herb with enormously untapped potential as a legal pharmaceutical. Another thing to work for, eventually.)

<comment><USER10> This has bounced between 0 and 1 points a couple times now... I realize this isn't about me promoting my own business, because that is something that definitely allowed and encouraged on this site. I would really like to engage in a discussion with whoever thinks that posts about drugs deserve to be modded down.

<comment><USER9> Why don't you do a "Ask YC" post. Ask folks if they think it's okay to have a startup business where you sell plants that have psychoactive agents yet are still legal.

I like to hear the discussion on that one! (Still thinking it through myself)

<comment><USER10> :) ok <http://news.ycombinator.com/item?id=71371>

My viewpoint is that all anti-kratom arguments boil down to pro-pharmaceutical company unlogic. In my opinion, to be against what I am doing without hypocrisy, you have to be against the drug-pushing of the US pharmaceutical industry as well.

</comment></comment></comment></comment></comment></comment><comment><USER12> INTJ/INTP

I help run summer conferences, where I lead small group discussions and moderate. People that I meet there often are surprised when I tell them afterwards that I'm an introvert.

A lot of being able to moderate discussion and engage people was learned, after some practice, rather than anything particularly innate. So things like selling your idea to people, making presentations, being charming, those are all things that a startup founder needs can be learned with a bit of practice.

</comment><comment><USER13> I'm pretty extroverted in real life, it helps if the people I'm with are interesting, but not a requirement. I'm probably more introverted online, oddly enough.

</comment><comment><USER14> Obviously an abundance of NTs here, but Myers-Briggs ENTP seems the archetypal entrepreneur.

<comment><USER10> Yeah... I'm an ENTP on the Myers-Briggs but just barely am an E/P whereas I am solidly an NT.

</comment></comment><comment><USER15> I'm extremely introverted and solidly INTP.

</comment><comment><USER16> I'm ambiversive.

</comment><comment><USER17> intro-extra vert. somewhere in the midle.</comment>


Show HN: Trust badges for your Let's Encrypt certificate - <AUTHOR> https://trustocity.com <comment><USER2> From your blog post[0]:

> In this[1] study, over 60 percent of respondents said they have "NOT > purchased something because trust logos were not present."

The study (which looks quite sketchy to me, but okay) also says that 75 % of people have "NOT purchased a product or completed an online purchase process because they did not recognize the trust logo".

So… why should stores choose Trustocity (or other new service) of all these ugly logos?

[0] [https://trustocity.com/blog/increase-your-sales-and- conversi...](https://trustocity.com/blog/increase-your-sales-and-conversions- by-adding-a-trust-seal-to-your-website)

[1] [http://www.actualinsights.com/2011/shopping-cart- abandonment...](http://www.actualinsights.com/2011/shopping-cart-abandonment- trust-logos/)

</comment><comment><USER3> For trust badges work, users need to know and trust the brand which is on the badge; coming into this field you really need to show the value to the user as well as to the administrator/designer.</comment>


Schopenhauer - On thinking for oneself - <AUTHOR> http://ebooks.adelaide.edu.au/s/schopenhauer/arthur/lit/chapter5.html <comment><USER2> This is a old argument for the modern practice of blogging. I've often been confused as to the relative merits of reading versus writing. In reading, you gain a lot of information quickly. In writing, you develop your own thinking. Schopenhauer makes it clear that not only is writing vastly superior, but that reading is potentially bad for you, because it encourages replacing active (strenuous) thought with lazy listening.

Paul Graham's advice to "run uphill" is a generalization of this: the better activities require more effort.

<comment><USER3> Most of the time, there's little thought involved in blogging. Writing does not guarantee the writer has something to say: for sure I'm not the only one to have read vacuous blogs the Internet would be better without (I'm thinking of most twitters).

</comment></comment><comment><USER4> He also wrote this essay:

On Reading and Books - [http://ebooks.adelaide.edu.au/s/schopenhauer/arthur/essays/c...](http://ebooks.adelaide.edu.au/s/schopenhauer/arthur/essays/chapter5.html)

in which he talks about "[those that] have read themselves stupid."

It's interesting that we can trace a parallel with technology: reading too much but building too little.

<comment><USER5> Bookmarked. Will read it later. I have already read too much for today.

</comment></comment><comment><USER6> Schopenhauer also wrote some cracking stuff on women: <http://www.heretical.com/miscella/onwomen.html>

<comment><USER7> I wonder how much of those ideas are merely a reflection of the society he lived in rather than his own thoughts?

<comment><USER8> That's an excuse I'd accept for someone's everyday views: "eh, they probably never thought about it and just went with society's default."

When a philosopher sits down and writes about their perspective on a topic, it's a safe assumption that they thought about their conclusions before publishing them.

<comment><USER7> I'm not sure that's a safe assumption. It seems to me that everyone has a weak spot even if they _think_ they're thinking about it thoroughly. We're only human after all.

</comment></comment></comment></comment><comment><USER9> What a load of very repetetive smug unjustified claims.

"""That is why all those who think for themselves come, at bottom, to much the same conclusion"""

!

(Edit: It does change after a while. Press on past the chain of: People who think are superior to people who read. People who think are superior to people who read. People who think (e.g. me) are superior to people who read. People who think (e.g. me) are superior to most people. I am superior to most people. I am superior to most people).

<comment><USER10> To be fair, this is (eventually) true of any factual claim: all rational Bayesians must agree given sufficient information, regardless of what their priors were.

But you are right, this fact is more often invoked to justify smug in-group monocultures.

<comment><USER9> I just popped back to delete my comment, but since it has a reply now I will leave it and ask another question I've been wondering about your Bayesian remark:

Does that mean all Bayesian's are trying to be the same as each other? That Bayesianism considers human individuality silly?

Because if all Bayesians must agree given sufficient information, then the only things left to disagree on (potentially) are ideas which have no fixed grounding in reality, such as whether Wilkie Wilkinson's writings show colonial alienation - and maybe they would eventually agree if given enough information on each other's mental states and histories.

So, is it pushing towards the idea that there is only one possible rational superintelligent view?

<comment><USER11> Given enough information, rational thinkers should come to the conclusions about matters of fact.

Bayes says nothing about goals, however. Rational Bayesians can have completely divergent goals, so becoming increasingly rational does not impinge on "human individuality."

<comment><USER9> If your goals are picked based on facts then you are subject to the idea that rational thinkers will come to the same conclusions about matters of fact and so when exposed to the same facts will come to the same goals.

If your goal was not picked rationally based on facts, you can't claim to be a completely rational thinker.

So the only room for human individuality is the knowledge gap between us and omniscient beings where we can pick goals arbitrarily, then pursue them as rationally as our limited mental abilities allow.

?

<comment><USER12> Fundamental goals are neither rational nor irrational. A rational thinker with no non-rational goals would have no reason to ever do anything--including think at all.

Two perfectly rational agents with the same fundamental goals would, of course, inevitably select the same sub-goals and actions to reach those goals.

But at some point if you keep asking a rational agent "but why do you want to do _that_?" the only answer will be "because it is my nature."

<comment><USER13> Does this mean some form of mystery about oneself must always remain? Assume complete self-referentiality of a being. Then the ultimate source of one's goals is no longer the black box called "my nature". What is it then? And would it be the same for two completely self-referential being?

(By self-referential I mean one who understands oneself absolutely; one who possess a perfectly accurate map of oneself. There probably is a better word.)

<comment><USER14> If the human brain functions more or less according to classical physics, with causality running forwards in time, then "one's nature" is just a very complicated function of the local state of the universe - the previous state of one's brain (including the encoding of the consciousness function itself) plus incoming sensory data.

More than once you've probably made a decision, at least in part, by psychoanalyzing yourself (and maybe psychoanalyzing the way that you're psychoanalyzing yourself) - so imagine being able to psychoanalyze yourself in real time, with (near-)perfect accuracy. (There might be information-theoretic problems with trying to simulate your whole brain inside of itself at speed.)

If one is the kind of person who has given serious thought to one's motivations in life (which must include coming to the realization that they are, in a certain fundamental sense, arbitrary) then I don't know that they would necessarily change all that much under these conditions.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER15> I JUST wrote a draft of an essay that says essentially what this says: Writing is necessary to thinking, and reading doesn't cut it.

<comment><USER16> So... you've never composed an essay in your head without writing it down?

Writing may help you organize your thoughts, but it's not necessary.

<comment><USER17> How many bugs do you find _before_ writing the code, compared to the number you find after?

<comment><USER16> Are you saying you don't learn anything from thinking through how to write a big piece of code before you write it?

The vast majority of bugs I find after writing the code are trivial. Certainly, I learn something from writing it, but I find that if I just start writing without thinking about it first, especially for larger projects, I don't end up where I want to and have to scrap large pieces of it.

Writing helps you get the details straight, but thinking is essential for designing the big picture.

</comment></comment></comment></comment><comment><USER18> If you enjoy this, Transcendent Speculation on the Apparent Deliberateness in the Fate of the Individual is another great essay by "the passionate and lucid Schopenhauer" : [http://books.google.com/books?id=aXFsb2UogOkC&pg=PA199&#...</a>

</comment><comment><USER19> I find that some good books take a very long time for me to read because I need to stop and mull over what I am reading. Case in point: I just finished a short Joseph Campbell book ("Pathways to Bliss"): I would literally stop every paragraph or two and reflect on how the material was relevant to my own life, about my own 'myth,' etc. It took me a month to work through this short book.

</comment><comment><USER20> I've never read a book that didn't make me think for myself.

</comment><comment><USER21> Transposed to programming I'll take this as saying "Don't use other people's libraries, write your own, because you will understand them properly and they will integrate better with your programs."

<comment><USER16> "And it will make you much less productive because you'll be spending all your time redoing something someone's already done, probably better than you ever could."

I mean, with that logic, you might as well write in assembly.

</comment></comment><comment><USER16> _Reading is nothing more than a substitute for thought of one's own. It means putting the mind into leading-strings._

Newton couldn't have invented classical mechanics without the ancient Greeks. In order to think, you need something to think about; you need input. Some of that input will be from watching apples fall off of trees. Some of it will be from information gathered from other people, presented in books.

What rubbish.

<comment><USER22> I think you missed this part:

"The really scientific thinker does the same thing as these illiterate persons, but on a larger scale. Although he has need of much knowledge, and so must read a great deal [...]"

</comment></comment><comment><USER23> A real kicker for getting my head out of Google Reader.</comment>


Court Says Facebook Has Been Wiretapping for Years - <AUTHOR> https://futurism.com/the-byte/court-facebook-wiretapping-years <comment><USER2> For SPAM wiretapping they open sourced their framework: [https://engineering.fb.com/security/fighting-spam-with- haske...](https://engineering.fb.com/security/fighting-spam-with-haskell/)</comment>


Ask HN: What is the difference between a closure and an object? - <AUTHOR> Reading PG's criticism about OOP, he mentions that if he ever really needed objects, he'd use an array of closures instead. When I read this I knew little about what closures were, so intrigued I read up I them.
Now I can't figure out how they're different, except how a language might implement them.
So what is the conceptual and practical difference between the two? <comment><USER2> An object has state, so imagine you have a skeleton and every time you change a property you are taking off an old bone and putting on a new bone. Eventually you might have 3 femurs, a couple of skulls, and five knees because of how objects are implemented (and how hard it is to keep straight).

A closure is like if you needed a forearm, you created one on-the-fly for the specific instance, and it exists as long as it's needed. You would never have the issue of having excess multiples of arms or legs because closures, although maintaining an internal state, only exist as long as they are invoked.

It's a simple example, but maybe that helps clear it up. Perhaps some people can help extend the metaphor if it proves useful.

</comment><comment><USER3> @irixusr I'd recommend this page from C2:

[http://c2.com/cgi/wiki?ClosuresAndObjectsAreEquivalent](http://c2.com/cgi/wiki?ClosuresAndObjectsAreEquivalent)

It may also help to contemplate the techniques used to get "private variables" in vanilla Javascript.

</comment><comment><USER4> In theory they are the same thing, in practice they are not.

If you treat closures like objects, they are tedious, and missing lots of nice conveniences that OO languages provide for their objects.

If you treat Objects like closures then they are heavy weight, have too much formality, and have annoying limitations to work around.

</comment><comment><USER5> The fundamental difference is this: a closure has a single operation; when you invoke it, it does that one thing. An object, in contrast, normally has many operations, so to invoke one of them, you have to supply its name.

That's not a big difference, but it is a difference.</comment>


iQiyi hits 100M users, grows faster than Netflix - <AUTHOR> https://news.alphastreet.com/iqiyi-hits-100-million-users-grows-faster-than-netflix/ <comment><USER2> 27 million new users in the last one year. Interesting!</comment>


Show HN: Data Generation for Chatbots and Voice Assistants - <AUTHOR> https://medium.com/snips-ai/how-we-are-solving-the-biggest-issue-of-conversational-assistants-data-f34600048e80 <comment><AUTHOR> I'm a cofounder of Snips [https://snips.ai](https://snips.ai) and we are launching a platform for data generation to improve the performance of your chatbot or your voice assistant

Snips is a platform to build 100% on-device voice assistants that we want to open-source over time

<comment><USER2> Hi oulipo. I just came across the snips data generation video/concept [1]. Searched HN for what I hoped to be a looong discussion about the pros and cons, what it does exactly, how it works, how it fails, etc but... I see there is no discussion. Color me impressed (by the idea) and surprised (by the lack of discussion).

[1] [https://youtu.be/vL5Ba4MTios](https://youtu.be/vL5Ba4MTios)</comment></comment>


Gixo Launched - <AUTHOR> http://gixo.com/ <comment><USER2> \+ What's special about it?

\+ What hurdles did you take in the development process?

\+ What's your opinion on user data?

\+ Many other topics that might be interesting.</comment>


One weird trick that will change the way you code forever: JavaScript TDD - <AUTHOR> http://jrsinclair.com/articles/2016/one-weird-trick-that-will-change-the-way-you-code-forever-javascript-tdd/ <comment><USER2> Yeah, so, i just learned TDD. And i've been trying to get my head around tutorials, youtube videos, all too messy to understand the idea behind.

More than just DO, i learned WHAT is it. Thanks

<comment><AUTHOR> Thanks so much for taking the trouble to comment. Glad to hear it was helpful.</comment></comment>