I'm not feeling the async pressure - <AUTHOR> https://lucumr.pocoo.org/2020/1/1/async-pressure/ <comment><USER2> I wish he would have commented on .NET's async implementation. Microsoft really got it right here and it's arguably the best implementation I've seen.

All .NET async APIs take an optional cancellation token parameter which solves his flow-control problem by allowing the async request to be canceled at any time. If the token is canceled, the async task will (or should) throw an OperationCanceledException which can then be cleanly handled in a standard try/catch block up the stack.

The best part about this is that it pervades the entire .NET runtime, the APIs, code examples, and has excellent documentation on correct usage patterns. Sure, a 3rd party library could choose not to support cancellation tokens, but they would be going against the entire .NET ecosystem by doing so. Every other async implementation I've seen has really seemed like a haphazard bolt-on.

I honestly don't know how I would write robust async code without cancellation tokens, so I guess he has a point when it comes to javascript and python ecosystems.

<comment><USER3> Cancellation and backpressure are different things. Backpressure is about not accepting work when there is not capacity to handle it. It is incorrect to accept too much work, hit overload, and respond to the emergency by throwing away partially completed work. That makes the overload worse by wasting effort.

<comment><USER4> the default backpressure response in the BEAM is that when you make a call to another actor, and your call times out because the other actor is too busy, the network temporarily is too closed, etc, etc, YOU die, with no intervention from the service you've called.

</comment></comment></comment><comment><USER5> IMHO all the rage on async comes from an era when interpreted languages where the main trend as they demonstrably increased developer productivity --I'm looking at you, Rails, Django. Those platforms were not designed for runtime speed, so it made sense to push the bottleneck to the most inmediate backend system in the chain (i.e.: your trusty database, which is much faster than your agile framework of choice, remember the discussions of ORMs versus pure SQL?)

Then there came async frameworks a la Node, Twisted et al. and changed everything. Again in my opinion, async code is harder to reason about versus synchronous code.

Things to keep in mind:

\- Are you really working at scale? Does the arguably added complexity of async benefit your particular use case? Specially when SPA technologies allow to build simpler backend for frontend systems (pure API, no HTML rendering). And not only regarding pure operational performance, Rails is still impossibly hard to beat when it comes to productivity.

\- New players like Go, Rust have async capabilities but you dont necessarily need to use them to perform closer to native speed, hence becoming simpler solutions than Node, Ruby, or Python. Guess that also applies to old dogs with new tricks in the JVM (Micronaut, Quarkus...)

<comment><USER6> > Then there came async frameworks a la Node, Twisted et al. and changed > everything. Again in my opinion, async code is harder to reason about versus > synchronous code.

One change here which has also made this less important is the trend toward serverless/microservice architecture. In a world where you were running your MVP on a single VPS instance somewhere, and you were running a monolithic webserver which handled everything from request parsing to business logic, then moving from one-thread-per-request to a runloop implementation represented a potentially huge win in terms of performance.

But nowadays we largely work with more atomized bits of logic: business logic is implemented in terms of small, self-contained operations, and the problems of scale are delegated to some other system or orchestration framework. In that world it matters much less if your database access is blocking a thread or not, because throughput issues can be solved at a different level.

<comment><USER5> This is another plane that seems to make async less relevant, yes.

</comment></comment></comment><comment><USER7> I wonder if the advent of async/await in all the popular and upcoming programming languages will be seen, after some (buffering) interval, as a disaster of major proportions. And, I wonder how the programming world will respond to the disaster.

It seems advisable to begin that response now. The linked article might be the beginning of such a response, but it seems too tentative. We may need an Iron Law of Flow Control, visibly acknowledged and observed in each system that uses an async/await facility, at the point of use, or a note explaining where it is handled farther back up the chain.

TCP vs IP is an excellent example of such an alternative: IP does not bother with buffering, except as a completely local performance optimization, and happily drops packets at the first hint of trouble, assured that somebody closer to the source has buffered copies of whatever they actually care about.

<comment><USER8> > I wonder if the advent of async/await in all the popular and upcoming > programming languages will be seen, after some (buffering) interval, as a > disaster of major proportions. And, I wonder how the programming world will > respond to the disaster.

I think that there is value in async/await as a concept, but that some language's specific implementations will be eventually seen as a mistake. My primary experience is in .Net, and I've grown disenchanted with async/await in that realm. I feel like it makes the easy things easier and the hard things harder[1], which, IMO, is the wrong trade-off for a concurrency primitive[2]. By comparison, what I've read about async/await in Rust seems very promising.

[1] Specifically, I think that the Task API is warty and over-complicated, with abominations such as .ConfigureAwait (I know that there are situations where it can be useful, but those don't make the method any less terrible). While await doesn't strictly depend on Task[1a], in practice you're going to be using Task.

[1a] [http://blog.i3arnon.com/2018/01/02/task-enumerable- awaiter/](http://blog.i3arnon.com/2018/01/02/task-enumerable-awaiter/)

[2] Before anyone chimes in with "async/await has nothing to do with concurrency/threads---it's just state machines": yes, that is technically true in the narrow sense of how the compiler desugars the async/await keywords. However, as soon as you start talking about actually scheduling and executing your tasks, concurrency/threads become very important.

<comment><USER9> Threads _are_ state machines. Packaging up task state as a closure and packaging up task state as a stack do roughly the same thing. In Go, the two are closer together than in other languages where async was a retrofit.

<comment><USER8> Sure, but if you're going to go that route, why not just say "the entire computing system at a whole is just a state machine, so what's the difference"?

Threads provide a very privileged form of state machine that are tightly coupled with the underlying platform. This means you have to be thinking about things like cache coherency and context switches. Without careful use of other synchronization primitives (or stronger language guarantees[1]) it's easy to find yourself writing incorrect or less-than-performant[2] code.

[1] Like in Rust

[2] e.g. creating bottlenecks by blocking on access to a shared resource (Edit: perhaps a better way to word that would be "accidentally reintroducing blocking behavior by using synchronization primitives to access a resource")

</comment></comment></comment></comment><comment><USER10> > _In most async systems … you end up in a world where you chain a bunch of > async functions together with no regard of back pressure._

yup. Back pressure doesn't compose in the world of callbacks / async. It does compose if designed well in coroutine world (see: erlang).

> _async /await is great but it encourages writing stuff that will behave > catastrophically when overloaded._

yup. It's very hard, in larger systems impossible, to do back pressure right with callbacks / async programming model.

This is how I assess software projects I look at. How fast is database is one thing. What does it do when I send it 2GiB of requests not reading responses? What happens when I open a bazillion connections to it? Will a previously established connections have priority over handling new connections?

</comment><comment><USER11> I really wish we had more control over the scheduling of async tasks.

For a javascript example I ran into recently, say I am firing off a fetch for each image that comes into view in a large gallery. If I suddenly scroll down to the 1000th image, a naive implementation might fire off 1000 fetches for all the images we scrolled past. Then you'll be waiting a long time before the images in your current viewport is loaded.

Backpressure can save you a little bit here. Say you do the semaphore trick mentioned in the article and only allow a max of say 10 fetches in flight at once. Then if you quickly scroll through, all the subsequent fetches after the initial should fail, including the ones at the viewport you stop at. But since the queue is short, when the images in your current viewport retries it should now succeed.

This works but it isn't ideal. Ideally I would be able to just reprioritize the newer fetches to be LIFO instead of FIFO. Or maybe inspect what's currently queued up (and how big the queue is) so I can cancel everything that I don't need.

The backpressure solutions might just be a symptom of async tasks not being controllable in any way once started which is why you're forced to commit to it or not from the start even if that might not be the best point in time to make that decision.

<comment><USER12> Just load all images. No JavaScript! Let the browser handle it. I hate when web sites only display 1-3 pages worth of content and unload/load more when I scroll. The JS code for that uses more resources then pulling everything would. It's a user nightmare, where I cannot use "find" and I can't zoom out, or scroll fast. The browser can easily handle 10,000 DOM elements. There is already optimizations in place in browsers which solve render issues. Beating the browser at it's own job will require a tremendously amount of work. These problem was already solved when computers only had 256MB of memory. And your web site would be blazingly fast today if you did not complicate things.

<comment><USER11> Native lazy loading is an extremely recent feature! [https://web.dev/native- lazy-loading/](https://web.dev/native-lazy-loading/) [https://caniuse.com/#feat=loading-lazy- attr](https://caniuse.com/#feat=loading-lazy-attr)

So no, browsers don't have these problems solved out of the box. And it seems like what they are implementing will suffer from the exact problem I described here too.

I think you might also be thinking of bad implementations of infinite scroll which isn't what I am talking about. Have you never use something like photos.google.com? Scrubbing/scrolling to an arbitrary point in time is honestly a great user experience. Would you rather wait hours/days for a webpage to load all the past photos images you've ever taken? Or have to deal with pagination and click through hundreds of pages to find what you want?

</comment></comment></comment><comment><USER13> As mentioned in the article, Python's Trio solves all of these issues much better than asyncio does.

[https://trio.readthedocs.io](https://trio.readthedocs.io)

<comment><USER14> Do you happen to know how it compares to curio?

<comment><USER13> Curio is more like an experimental sandbox for its author. Trio was created as a production-oriented application of similar ideas. There are some places where Trio diverges from Curio, and I think Trio's choices are improvements there. For example, the handling of schedule points and cancel points ([https://trio.readthedocs.io/en/stable/design.html#cancel- poi...](https://trio.readthedocs.io/en/stable/design.html#cancel-points-and- schedule-points)).

</comment></comment></comment><comment><USER15> > So why is write not doing an implicit drain? Well it's a massive API > oversight and I'm not exactly sure how it happened.

Separating these two operations allows code to use multiple write() calls to build up a single record atomically before yielding control to the system, where some other task might also write to the same stream. This reasoning is only valid if the program is running on a single thread, but that's a reasonable architecture decision for many programs.

<comment><USER16> Not a super great argument. It would be easy to just build up the data to be written then write it in 1 call, while at the same time preventing people from being able to use it incorrectly at all.

</comment></comment><comment><USER17> Why is Go mentioned here? AFAIK, Go's goroutine makes async not async like in NodeJS async sense, but just lightweight user space threading, so just blocking like regular threading.

</comment><comment><USER18> Ideally async and backpressure will advance to make better use of scheduling, prioritizing, quality of service shaping, termination conditioning, and the like.

As an example, there's a big difference between the async needs of one paying customer who's loading one medical chart web page vs. some free third-party web crawler trying a daily full text scan of an entire site.

Async with cost functions feels like a promising area for real-world use cases.

</comment><comment><USER19> It seems to me that all that this boils down to is the fact that await/async makes back pressure something you need to deal with explicitly. Having the default be buffering isn't ideal but since each application will have their own idea of what to do with backpressure it'd be hard to figure out a different default that works better.

In any case all this can be solved without major rewrites by making sure every awaitable is awaited _at some point in the future_. Instead of doing this:

        while connection.accept():
            handle_connection()

you might do something like this:

        connection_pool = []
        while connection.accept():
            connection_pool.append(handle_connection())
            if len(connection_pool)>=MAX_CONNECTIONS:
                await wait_any(connection_pool)

And there you go. Anytime there's more than MAX_CONNECTIONS the program stops accepting new connections, providing back pressure. It's more code but it's also defining exactly HOW to provide back pressure. Your specific use case might warrant providing back pressure not based on connection count but cpu usage or average response times. You might want to have a single global maximum connection count instead of one per thread. All of these aren't much more complex than what I've shown above as long as you keep the cardinal rule in mind: any awaitable MUST be awaited.

And in fact in python -- and other programming languages too I bet -- you get a warning on exit if there are any awaitables that never got awaited. In my opinion that should be an error. I can't think of a single scenario where it'd be proper form to never await an awaitable. You might await immediately, sometime in the future, or at the end of the program. But you never don't await at all.

Threading isn't any easer, or harder. If you spawn a thread for each connection you run into the same issue as await unless you do something about it. If you use a pool of threads you get backpressure for free, but the same goes for a pool of awaitables!

tl;dr: async/await has the exact same problems as threads, the tooling around async/await is just less mature. Rewriting async code to provide back pressure is near trivial.

</comment><comment><USER20> Backpressure is the big thing that Reactive Streams adds to Rx/ReactiveX.

[https://www.reactive-streams.org/](https://www.reactive-streams.org/)

</comment><comment><USER21> My main problem with async is that it's much harder to build a mental model of what exactly is going on. Admittedly, I only had to deal with existing code so far doing only minor work in it so you can definitely say it's due to lack of experience. However it seems that while problems like concurrent access to shared memory known from traditional threaded code don't exist, having to think about what can block etc. is of equal burden.

</comment><comment><USER22> How do actor model languages (like ponylang) handle this? It seems like not having back-pressure support would be a fundamental issue with the language.

<comment><USER23> There's a detailed article on the topic at: [https://ferd.ca/handling- overload.html](https://ferd.ca/handling-overload.html)

<comment><USER22> It seems like the gist is that the responsibility is on the application to be architect-ed (perhaps using one of the various libraries/strategies) to handle flow-control/back-pressure. The language itself doesn't directly help.

</comment></comment></comment><comment><USER24> FWIW, having climbed Twisted's learning curve long ago the current async-all- the-things fad looks so childish to me. I remember when Tornado came out and I was like, why would you use a go-kart when there's a free _Maserati_ right there?

[https://twistedmatrix.com/trac/](https://twistedmatrix.com/trac/)

</comment><comment><USER25> Doesn't solve the issue with calling an api that doesn't return a promise, but the tslint rule "no-floating-promises" flags missing awaits which is quite useful. Also useful is flagging awaits that don't return a promise, which can be done with the tslint rule "await-promise".

</comment><comment><USER26> In nodejs you can use streams or rxjs. Both handle backpressure quite nicely. They work on bytes and on objects as well.

</comment><comment><USER27> The thing I like about async Python is being able to run subprocesses and capture and processes their stdout/stderr

<comment><USER28> You can do that without async in python. What did you find specific to it?

<comment><USER29> I imagine he means without having to understand/use the platform or framework equivalent of select/poll or start dedicated threads or write a threadpool to handle reading from streams simultaneously without blocking. Now he has someone else wrote that code for him ;)</comment></comment></comment>


Solid gold ipad, for those who have it all - <AUTHOR> http://www.criticalcold.com/?p=103

<comment><USER2> Nice! Make something that will be useful for a year out of gold.

</comment><comment><USER3> Tacky.

<comment><USER4> At $191,000, it's only a few cents cheaper than the normal iPad!</comment></comment>


How Apple became the world's most valuable company, explained - <AUTHOR> http://www.vox.com/2015/10/28/9626810/apple-iphone-profits-explained <comment><USER2> Despite its amazing rate of growth, it seems to me that Apple is no longer just an "aggressive growth" company. As Apple returns more profits to investors in the form of dividends, their transition to "growth and income" status will make their stock even more attractive to older investors.</comment>


Ignore your users' needs. Call them stupid instead. - <AUTHOR> http://glyphobet.net/blog/essay/587

<comment><USER2> This is an ass-backwards blog post. Web standards aren't simply a "product" used by web developers. Every feature added to a popular standard is a tax on every compliant implementation. It is absolutely a valid engineering question to consider whether something is best accomplished in the standard, or in application layers built over the standard.

Indeed, instead of Bos ignoring this guy's argument, it seems to me it's the other way around. The standards body's response to "add variables to CSS" is "why? that's an application-layer concern, easily handled by any web development framework, which has nothing to do how browsers actually process style information". The onus _is_ in fact on the advocates of extending CSS to explain why this feature is so important browsers should be required to implement it.

It's also just bad engineering to add features at lower layers that are just as effectively handled at higher layers. The end to end argument in systems design doesn't just apply to network protocols.

<comment><USER3> If their response is 'why', then the blogger is completely right and the standards body has no clue how the technology that the standard prescribes is used. The 'why' is simple, even if we only look at colors: every stylesheet contains the same colorcode over and over again, because good design requires coherent use of colors. Now you could make a style class called 'green', but I don't think I should have to go into the reasons why you just do not _ever_ bloody want that. A proper stylesheet is bound to repeat a colorcode. A second solution is generating your CSS, but then you need a new standard defining a proper way to tell your CSS generator which elements should have the same color, which pretty much ends up being CSS _with variables_.

If they, and Bos, have any clue about what they are doing, they should tell us how to solve this problem, instead if asking the inane question you put in their mouths. What Bos comes up with in his essay is basically 'search-and- replace' and other 'tooling'. Well, why don't we just drop variables in our programming languages as well? We can just 'search-and-replace', can't we?

<comment><USER2> Because your programming language is a programming language, and CSS isn't? There's no part of this feature that couldn't be accomplished using a CSS templating system. You might as well ask why HTML5 doesn't include all the features of Cheetah or Erb.

<comment><USER3> A CSS templating system, that is just CSS extended with the possibility of symbolic constants, adding an extra step to the build process. One implementation I've seen used is using ant to replace the constants by their values. It's not hard, but that's exactly the point: it's also simple for Microsoft, the Mozilla Foundation, the KDE project, Apple, etc. to implement. I agree you shouldn't start adding real variables whose value can change halfway the CSS, variable scoping or, god forbid, if-then constructs. That doesn't mean simple constants should also be ruled out. I think that's throwing out the baby with the bathwater.

<comment><USER2> I'm not sure I see why:

 _"adding another step to the build process"_

is worse than

 _"permanently standardizing one group's notion of what variables should look like when less than 1% of all web applications use any form of CSS templates"_

I don't have to agree with Bos that high-level stylesheets are a bad idea (I don't; I think they're a great idea) to agree with him that we shouldn't be inflicting them on everything that renders or interprets styled HTML.

And hey --- for what it's worth --- I can see how Bos didn't do his argument a big favor by writing an essay-length rant about why variables are a bad idea. I think he raises some good points. For instance, have these proposals really thought scoping through, and have we really thought about how this will impact authorship tools? But these aren't the reasons we shouldn't be in the business of standardizing the idea.

On the other hand, Matt's argument is just as wrongheaded. It is absolutely _not_ the case that standards groups should be rushing to alleviate web developer pain. Like I said, if they took that approach, we'd be stuck with QuickSilver templates, baked permanently into the HTML standard.

</comment></comment></comment></comment></comment><comment><USER4> > Difficulty of implementation should never be a deciding factor in whether or > not to address the needs of the users.

Really?

 _Never_ ?

I've got to disagree with this.

All possible changes that one might make to a codebase should be evaluated in terms or ROI (return on investment).

If a 1 day project creates X value, and a 3 day project creates 5 X value, then the latter project delivers more bang for the buck, and that's where resources should be allocated.

To ignore the amount of work that a task takes is to blind oneself and discard rationality.

<comment><USER5> Sure, the generalized statement is a bit iffy, but in this case, the number of users, ease of implementation, and utility of the feature make the lack of constants inexcusable. Bon's argument sounds pretty silly.

<comment><USER2> Explain to me why we should be stuck with one standards group's idea of how to organize style information, when an app-layer implementation of the same idea imposes no cost to end users, adds flexibility, and doesn't force the whole web to rush to standardize an idea that sees less than 1% adoption among all web apps today?

</comment></comment></comment><comment><USER6> Variable/constant names aren't just used to keep DRY, and to encapsulate functionality. They're also used to express __intent __. To me, this is one of the most important reasons for using variables, instead of "magic numbers".

<comment><USER2> Stylesheet variables are a very good idea, but just as a reminder, the validity of the idea isn't _really_ the question here, even if Bos makes some good points (particularly regarding the fact that the extension will break a whole constellation of authorship tools).

The question isn't whether to implement higher-level stylesheets. It's _where_ to implement them.

</comment></comment><comment><USER7> The author's postscript was the most interesting part of the article for me. If there were some extra kind of document (defined in JSON, perhaps) that could be attached to an HTML document to supply definitions that would be entered into the DOM, it could be accessed natively from Javascript, and also inserted into the HTML and CSS standards with much less tweaking than a whole separate variable standard just for CSS. For example, it would be possible to simply extend the concept of HTML entities into "DOM entities", which could then be copied wholesale by CSS for a nice symmetry: you'd be able to use &(document.variables.foo); in both mark-up languages and have be replaced with the value of the DOM node document.variables.foo. (Actually, you could extend this even further, and just allow arbitrary inline JS in these DOM entities, which gets parsed as the value after their evaluation: &(document.variables.foo + 1). You could also avoid document.variables altogether, if you wish, and just set use &(1 + 1); or &(document.body.style.background-color); or anything else you like. Let's, therefore, call them _JS Entities_.)

The only big design decision would be whether to allow writing to document.variables from JS (or, to rephrase, whether to parse the JS entities permanently upon recognition into their textual values before parsing can continue, or to have them continue to exist as a special kind of DOM node—though rendered as their current textual equivalent—that will reflow the document if their dependent values are altered.)

If JS entities aren't parsed away, it would change the way we interact with the DOM entirely—we probably wouldn't bother defining any constants in CSS itself any more; we'd just inject them. It would reverse the data-flow between Javascript and mark-up, even beyond how much AJAX already has: we wouldn't need to set specific things in the DOM, but instead just have those DOM nodes be an observer of our actual, working value. For example, "document.body.styles.background-color = document.createVariableElement(spinner.color);" as a line of Javascript would make the background-color of the page "watch" the current value of the spinner. In fact, if this method were used, you technically wouldn't _need_ a separate variables.json document, because you could just dynamically create all the JS entities _in_ JS (which is probably how it should be.) However, you could create one on top of JS entities, if you wished, using a library.</comment>


All languages are not created equal - <AUTHOR> http://en.wikipedia.org/wiki/Kolmogorov_complexity

<comment><AUTHOR> What's the connection between the link and the url, you may ask?

Well, have you heard, or perhaps made, the insightful claim that all languages are essentially the same since they all boil down to machine code?

In one sense this is correct, but in the same sense that everything in the world is the same because there are really only colliding atoms (quanta changing energy levels, or what have you). Yet, we still think there is such a thing as a "thing."

Why is this? To cut a long story short, I submit the above linked Kolmogorov complexity is mathematical proof of the existence of "things." To bring this back into the CS realm, pg has said the only way to get the power of lisp in another language is to essentially recreate lisp in said language. So, if it is coherent to equate a language to a set of specific algorithms or programs, then it is a short hop to say certain programs are irreducible (i.e. Kolmogorov complex) and are therefore not _just_ machine code.

No matter the method or number of numbers a computer cranks through, it cannot recognize these special programs without beginning with them (yes, very similar to Godel's undecidable sentences). And thus, one distinct k-complex computer language cannot eclipse another without already containing the k-programs of, and therefore being, the other.

What say you?</comment>


Weekend Project: Crowdsource idea feedback - <AUTHOR> http://www.wouldyouusethis.org

<comment><USER2> I liked the concept or quickly getting feedback about your idea. How are you planning on getting enough users to provide the Yes or No votes?

<comment><USER3> Good question. I was hoping some of the MVP movement would spawn interest and create a community around idea feedback. Although, to start, I've considered possibly crowdsourcing from MT or other service to get more eyes on a idea. Any ideas?

<comment><USER2> I like the idea of getting crowdsourcing from MT but there will be out-of- pocket cost for you. Are you planning on charging your users to make up for the cost? Anyways, good luck.

<comment><USER3> Agreed. I thought it could be an option for those that want to gather feedback quickly. So something like $10 for 100 responses or something simple and to the point. If they don't want to pay, they can can spread the link and gather feedback from their network. Who knows...</comment></comment></comment></comment>


Microsoft Seeding Windows Phone 7 On Nokia With A Billion Dollars Up Front - <AUTHOR> http://techcrunch.com/2011/03/07/microsoft-seeding-windows-phone-7-on-nokia-with-a-billion-dollars-up-front/ <comment><USER2> Translation because Nokia has to use part of that Billion dollars in Mobile Operator device subsidies that the Symbian Biz was only worth about $650 million..somewhat lower than Nokia's market cap right now..Nokia sold out for far low-ball price indeed..</comment>


Airbnb Raises Cash to Expand Budget-Travel Service - <AUTHOR> http://bits.blogs.nytimes.com/2010/11/10/airbnb-books-more-cash-to-connect-travelers-with-cheap-digs/ <comment><USER2> I'm having a really hard time reconciling the headline with the picture of the $2600/night Frank Sinatra Twin Palms Estate.</comment>


Show HN: My side project just reached #6 on App Store music charts - <AUTHOR> https://itunes.apple.com/us/app/noon-pacific/id803563983?mt=8

<comment><USER2> Congratulations! What did you do to market the app? Just stick it in the store? Or did you get blogs to do write-ups?

It seems like discovery has always been a huge problem for app developers.

<comment><AUTHOR> I've built up a list of 14,000 subscribers to the free web app over the past year and also had a journalist at LifeHacker who wrote about the project before. I offered the journalist an exclusive write up and then sent an email blast to the 14,000 subscribers all within an hour (starting today at Noon) and the app shot up the app store within a couple hours.

Still don't know launch day numbers since app store reports don't update until later tonight.

For further coverage, I'm reaching out to app review sites and any journalists who have covered similar apps in the past.

<comment><USER2> Great stuff, thanks for the info.

This is not the first time I've heard of this strategy, and it seems to be quite profitable: "hook" a large number of users with a no-strings-attached free app or web app and get their contact info. Then create an app in the same niche, but charge for it, and email blast them all on launch day.

The last time I heard of someone doing this, they did it with a game. They released an ad-free, excellent game for free and popped up a dialog after a few starts saying "Enter your email here if you want to be notified when I release <App Name> 2!". After a year or so, he had tens of thousands of email addresses. Then he released a $2 sequel and did an "email blast" on launch day. Similarly, he shot up the charts very quickly.

<comment><AUTHOR> That's a great story about the game. I'm interested to see the actual download numbers tomorrow to see what Apple factors into the rankings.

</comment></comment></comment></comment><comment><USER3> Good job! It's on the App Store, so treat yourself to a full version number ;)

(I wonder if people would be less likely to buy it having "0.0.2", thinking it may not yet be worth buying. In any case, why not just call it 1.0.2, etc?)

<comment><AUTHOR> It was my first ever app, so I admittedly wasn't 100% sure what I was doing in xcode. I agree with you though, it would have looked better to have a full release number. I'll bump it up next version.

Thanks for the feedback.

<comment><USER4> Remember, bumping your version number pushes all your current ratings and reviews below the fold.

<comment><USER5> That's a good tip!

</comment></comment></comment></comment><comment><USER6> There's a web version too. Handy for checking out the type of music: [http://noonpacific.com/](http://noonpacific.com/)

edit: First song convinced me already.

<comment><AUTHOR> Sweet thanks for checking it out. Working on a redesign for the web version too, not quite as slick as I'd like.

</comment></comment><comment><USER7> Did you get 8tracks API permission for use in a commercial app?

[http://8tracks.com/developers/terms](http://8tracks.com/developers/terms): For commercial use of the API (including ad revenue) you must receive permission. Please contact firstname.lastname@example.com.

<comment><AUTHOR> Yes, 8tracks approved my API use and even promoted the app on their twitter: [https://twitter.com/8tracks/status/435873866548662272](https://twitter.com/8tracks/status/435873866548662272)

</comment></comment><comment><USER8> Loved the first song I heard on web version, +1 for Android.

Good example of non-technical value creation - can't fake good curation. That your project has done so well tells me that the streaming music players have not cracked the code yet.

<comment><AUTHOR> Appreciate it. People seem to love the simplicity of having the music delivered to them instead of trying to search/browse through tons of artists. Huge fan of Spotify, 8tracks, etc. but I think you're right that the music discovery aspect is still lacking.

<comment><USER9> Pandora does me well with discovery, though I do appreciate some hand curated lists from time to time.

</comment></comment></comment><comment><USER10> How are you handling issues related to copyright? I don't have an iOS device so I can't tell if the app simply streams the music from sources that have legal access or if its locally caching the music.

<comment><AUTHOR> I don't make the songs available to download so it is only streaming the songs via 8tracks API. All songs are legally acquired through various blogs and sites like Soundcloud.

<comment><USER10> I figured as much based on the web player, but wanted to double check anyways. Thanks for answering my question.

I'd love to see an Android version of this. I'm an Android dev, so if you're looking to port this over at any time in the future please feel free to hit me up with any questions you have.

<comment><AUTHOR> I have a friend helping me out already, but appreciate the offer and will definitely keep you in mind. Thanks again.

</comment></comment></comment></comment><comment><USER11> The concept and screenshots look great! Do you have last.fm support? Because (for me): If it doesn't scrobble it's not a music player :-)

Edit: Just downloaded the app. It doesn't scrobble but otherwise the app works as advertised. Thanks for posting here on HN! Not only music discovery but also app discovery is hard sometimes.

<comment><AUTHOR> We don't currently have last.fm support, but the app uses the 8tracks API, so it might indirectly scrobble via that. I'll look into it, good feedback.

<comment><USER12> +1 for last.fm support - a lack of support this in Rdio sent me back to Spotify.

<comment><USER13> FYI, Rdio has Last.fm support: [http://help.rdio.com/customer/portal/articles/58992-external...](http://help.rdio.com/customer/portal/articles/58992-external- settings)

<comment><USER12> Yeah, I did that on the web version but the iOS app doesn't have that setting.

<comment><USER13> Connecting on the website should cause mobile apps to scrobble as well: [http://help.rdio.com/customer/portal/questions/952119-scrobb...](http://help.rdio.com/customer/portal/questions/952119-scrobble- from-ios-app?b_id=681)

I don't use iOS, but this worked for me on Android.

</comment></comment></comment></comment></comment></comment><comment><USER14> Congratulations! Just trying this out now and I love the mix I've had so far.

It's so easy to make music these days that it can be difficult to find the gems in all the noise. For me, having places you can trust to do some curation/filtering for you is really important.

<comment><AUTHOR> Thanks, that's exactly what I built it for.

</comment></comment><comment><USER15> The quality of the screenshots on App Store is pretty poor. You should save them as PNG files instead.

<comment><AUTHOR> Thanks for the tip

</comment></comment><comment><USER16> This is an awesome app! Really nice unknown (at least for me) music!

If I can give you some feedback, the UI need some tweaks. the whole screen bounces when you touch it. Would be nice to have more details about the songs. A progress bar would be nice.

Really nice app!

<comment><AUTHOR> Thank you for the feedback!

</comment></comment><comment> dorian-graph Bought! To show support and so far the mixtapes are totally up my alley.

How long did it take till you felt comfortable with development on the app, as far as quality, amount of bugs, etc., to release it on the app store?

<comment><AUTHOR> Thank you! It took about a week of QA to feel comfortable with it going live. It's a pretty simple app, but wanted to make sure everything would work great, especially since it was not a free app.

</comment></comment><comment><USER17> I liked the first song I heard on your website and signed up. Very nicely done!

<comment><AUTHOR> Just saw your subscription, thanks!

</comment></comment><comment><USER18> So basically hype machine in an app?

<comment><AUTHOR> I'm actually a big fan of Hype Machine (and love their app), but I'm attempting to do something different with Noon Pacific. It's considered more of a music newsletter with hand curated tunes and hopefully more of a personal touch.

</comment></comment><comment><AUTHOR> Thanks for the support so far! Appreciate all the feedback.

</comment><comment><USER19> Nice work, now please can we have it on Android!

<comment><AUTHOR> Thanks! and yes we will have one out for Android in the next month.

<comment><USER20> Great App. Thanks!

</comment></comment></comment><comment><USER21> You just got a new fan! thanks for this.

</comment><comment><USER22> nice work! Check out hoot.ch. A similarly minimalist music discovery web-app.

<comment><AUTHOR> I'll check it out, thanks for the suggestion.

</comment></comment><comment><USER23> As fake as king.com's future valuation.

<comment><USER23> Yeah, 15 reviews for a Top 10 App Store app...

Use your fucking brain man...

</comment></comment><comment><USER24> Thanks, l really want use it.

</comment><comment><USER25> Congratulations! I invite you to give a demo of your app @ [http://demosquared.com](http://demosquared.com)</comment>


Ask HN: How do you deal with after work fatigue? - <AUTHOR> I started working in programming 3 years ago. Ever since I got into 8h/days programming, I feel really tired after I come home.
I'm not able to do the meaningless task, and sometimes I just get into bed at 7 and sleep.
I suppose that the nature of our jobs depletes our will and maybe that's why I'm like this. I tried doing some push-ups, going by bike to work, quitting smoking, but didn't solve much.
So if anyone was in the same position and found a way to get by, I would really appreciate some advices. I feel I live only during the week-ends. <comment><USER2> I'm surprised nobody has brought this up yet:

Do you actually enjoy your current job?

I find that if you don't really enjoy what you're doing, you end up living in this perpetual state of stress. And while that stress might be small at any one given time (minor annoyances here and there), because you're working for 8+ hours/day, it really adds up. Bodies aren't meant to be chronically subjected to cortisol (stress hormone).

I hate my current job, and I completely 100% empathize with the way you feel. I shifted my sleeping schedule so I could get 2-3 hours of work in before leaving for the day, but I just feel so beat down that I can't motivate myself to do anything.

I'm getting ready to leave so I decided to take the rest of my vacation time to prep for interviews. The difference is night and day - I've been studying 10+ hours/day without slowing down and I finally feel like I'm full of energy and hope again.

Maybe you just need a change of scenery.

<comment><USER3> This. Cortisol is the enemy, so anything you can do to bring down the cortisol will help decrease that tired feeling after 8 hours of work. That means doing three things programmers aren't well known for: eating well ("close to the farm" as my grandfather put it), exercising and sleeping at night. Vitamin C and Omega-3 are supplements that supposedly help with reducing cortisol in the short term.

</comment></comment><comment><USER4> This is kind of a long story, but bear with me, it's relevant.

I went to a book signing by Brandon Sanderson. Not a huge fan of him as a person, but he's a fantastic writer and an incredibly smart man. He started off the signing with a little story about creativity. When Brandon was in college, he worked 3rd shift at a hotel. He'd go to school in the mornings, sleep in the afternoons, and work all night. He tried to roll his own degree, but they made him stick to the Creative Writing plan. Instead, he decided to mix up his electives -- take as many subjects as he possibly could. A writer needs to know about history, science, philosophy, technology, and so on. You can't just spend all day in English classes and expect to be a well-rounded writer!

So he took as many classes as he could. He'd go to class in the morning, sleep in the afternoon, and then get to work around midnight. In between checking in guests at the hotel, he'd work on his homework, and once his homework was done, he'd write for hours. He wrote his first six or seven novels while working at the hotel (the last one was actually picked up by a publisher or publication).

He said that he had no problem with this schedule... except for his programming class. He was taking a class that used Pascal, and he'd get to work, do his Pascal homework, and then be completely unable to write. He took dozens of classes at university, but the only one that left him completely creatively drained was programming.

In other words, programming took just as much energy out of him as writing did -- it exercises the same brain muscles, so to speak.

I don't really have much of a point to this, other than to say that a rather well-known fantasy author commiserates. Programming is hard. It's draining. It's being non-stop creative in solving problems.

My personal philosophy is this: everything can wait until tomorrow. When the clock hits 5 o'clock, start wrapping up. Find a stopping place, and pick it up tomorrow. Barring servers crashing, the work will still be there tomorrow. I don't check my email, I don't open my laptop, I don't do anything work-related once I get home. Home is _me_ time. Nine-to-five is company time.

I guess there are two things here: programming is hard work, and draw a line between your personal and work life.

<comment><USER5> I have a different theory: programming shuts down half your brain, giving all the juice to the other half.

When I stop for lunch, the world is in 2D for a while. Then after a few minutes it springs into 3D. I have to guess, that half my brain has been looking through its one eye mostly, coding with all its might. The other half is idling away, not even processing much visually.

I know, the right-brain left-brain thing is not universal. But for me, that's how it works.

</comment></comment><comment><USER6> There are some things you might want to investigate with a doctor.

1) get your thyroid levels checked.

2) sleep apnea.

3) possibly anemia

4) stress

5) etc

After that advice is around sleep hygiene, then food and exercise, and stress resiliance

<comment><USER7> Good list. For me it was at least in part apnea ... still working on number 4. I'm <160 lbs, 6 feet even, and diagnosed @ 29. It's not just for the 50+ community.

</comment></comment><comment><USER8> Exercise, diet (avoid excess oils/fats, sugars, processed foods), loose leaf teas (+honey) instead of coffee, side projects that motivate you. Following through with improving these habits for at least 3 months.

Standing desks help some people as well but not nearly as much as the former combined.

<comment><USER9> Exercise + side projects is apparently not enough, I've tried for about 4 months already. I have one VERY motivating side project, but somehow can't find the energy to do it. Maybe it's coffee+sugars that's keeping me down.

</comment></comment><comment><USER10> Friends. If I break the week to see people I like to hang out with in the evening, things go better. My headaches, my mood and my overall tiredness drops. I think that's because those moments allow me to focus on something other than work. Doing the same tasks over and over is a good receipt for feeling like crap at the end of the day. Plus, it is incredibly demotivating entering this loop of house/bus/work-work/bus/house.

</comment><comment><USER11> 8h/day programming is exhausting. I have one hour lunch and spend two hours doing non-programming work (e.g. discussing code with colleagues over IM). If I program 8 hours straight I'd be sleeping at 7 too.

<comment><AUTHOR> Sorry I wasn't explicit enough. I also have 1 hour lunch, and some discussions with colleagues(although I don't think they cumulate to 2h).

</comment></comment><comment><USER12> I almost never program exclusively 8 hours in a day. When it does happen, it's either because I'm uniquely inspired -- some insight to a problem that I badly want to resolve -- or there is some crunch deadline approaching fast.

Typically I write code in chunks of time not exceeding two hours, after which I shift to other tasks: catching up on emails; writing specs or drawing diagrams; thinking about larger-picture issues; reading work-related documents or instructional material; talking or IMing with coworkers.

Also, I take walks, go swimming, go for a run, go to the gym, do some pushups, get a coffee, read a book, play a musical instrument in between programming sessions.

Those context shifts make each programming block more meaningful and concentrated for me.

My most productive days usually leave me energized, not exhausted.

</comment><comment><USER13> Are you sure the fatigue is related to work? Have you seen a doctor?

<comment><USER14> I agree with romanlevin, perhaps this isn't fatigue. Are you certain that you don't have depression? All of the symptoms you are describing can certainly point to it.

<comment><USER15> Also, look into sleep apnea and breathing disorders while sleeping, if you don't sleep correctly, you will be tired all the time. I personally have this myself and am waiting for treatment.

</comment></comment></comment><comment><USER16> This recent article in the NewYorker was interesting: [http://www.newyorker.com/culture/cultural-comment/a-new- theo...](http://www.newyorker.com/culture/cultural-comment/a-new-theory-of- distraction)

I think most people are not equipped to deal with monotony/drudgery. I find that it really helps to have hobbies that will recharge you mentally. Double plus if that hobby happens to involve physical exercise. Eg: I'm trying to develop swimming and squash as hobbies. There will be days when I'll be be listless and frustrated, but a couple of hours of these mentally relaxes me enormously. Also, I often prefer more active to passive forms of relaxation, like playing pool/carrom by myself. HTH; Good luck!

\----

Other responses on this thread have good suggestions (friends, etc. Spending time with your partner, or dating might also help). Loneliness is often a trigger for listlessness. Needless to say, get your health checked and ensure you're having a healthy diet.

</comment><comment><USER17> Hi Zuzu

This sounds like the work you do in those 8 hours is either:

1\. Not challenging enough or

2\. Too much for one guy (you) to handle.

You're zoned out. Figure out which one it is. There are meditation techniques to give your mind the space and time to think about this. A simple break (a week or more) away from the work is often good enough for me while my mind subconsciously processes things. (Don't do any work during this break!)

If you find that the work is not challenging enough, change your environment, move slowly into more and more challenging work where you feel the feedback of accomplishment re-energises you. If this move is based on a request to a boss, client etc and it falls on deaf ears, start looking for another job/client.

If the work is too challenging, ask for sensible deadlines (fuk I hate deadlines!), scope reductions and a kinder work environment. If this request of yours falls on deaf ears, start making plans to quit for an alternative that is better.

The fact that you picked this up is already a good sign.

Good luck!

</comment><comment><USER18> Try introducing short breaks every hour or so. 5 minutes, perhaps 10 every other time.

When doing so, walk around a bit. It is important to physically separate yourself from the work area. I recommend going outside and taking your mind off of whatever task(s) you are immersed in solving. Doing so with a coworker you get along with often adds to the benefit.

HTH

</comment><comment><USER19> It seems odd that nobody has mentioned this.. but take a nap.

I set a phone timer for 18 minutes, lay down in the dark, and nap for a bit. 18 minutes is completely arbitrary, but my body has adjusted to that time specifically, for me.

</comment><comment><USER20> I had issues similar to this twice. The first time when i was in college, i consulted a doctor. He diagonised vitamin deficiency due to poor food at hostel. The vitamin supplements helped a lot. It felt like a switch was flipped on. Another time was quite recently. I had healthy diet and exercise almost everyday. Yet i often felt drained. Adding a yoga session in the morning made a huge difference. Around that time, i also stopping sitting for long periods and moved a lot more. I am trying a make shift standing desk. Maybe that helped too.

</comment><comment><USER21> I find that taking short breaks for intense things like studying and coding helps. I shoot for 50 Min on 10 off. Time off will be something undemanding like slashdot or hacker news. Tweak the times to find what works.

Also if you go wide open for any long period with no down time you are going to burn out and start thrashing. 2 weeks is my limit.

Intention is important. If I start the day with the intent of having something left over for myself at the end it really helps.

</comment><comment><USER22> 1) exercise before work (this should help, but it sounds like you've already tried it)

2) eat breakfast before work

3) get out of the office for lunch, maybe even have a beer with friends, once in a while

4) stand up for yourself while at work -- challenge silly tasks and try to delegate 'crap' work

5) get a medical checkup

</comment><comment><USER23> 4-5 years ago I had the same problem, I even fell asleep in front of the computer at work! My solution is really simple: huge dose of vitamin. I use "Scitec Multi Pro Plus" as my daily vitamin since then, and it works like a charm.

</comment><comment><USER24> Try learning a form of relaxing moving meditation : tai-chi, or qi-gong.

It helps you to relearn to relax your parasympathetic nervous system, which might get 'jammed' in the day being stuck at a desk for 6+ hours.

</comment><comment><USER25> my fatigue improved greatly once I improved my diet. Eat less sugar, get some fresh fruit and veg, take a probiotic of some kind. Nothing too drastic, but it makes a big difference

</comment><comment><USER26> What has helped me was working on side projects during my commute.

</comment><comment><USER27> a) think about changing your job or even career. b) If you dont think the fatigue is work related, you need to find a hobby and or a relationships that help you feel energized. c)For many people work is not calling , but a means to a good life, and that is OK. d)And regardless of what fatigues you ,take frequent breaks. Make it a point to go on vacations. Sometimes, being away from things helps to see them clearer.

</comment><comment><USER28> You may not be getting enough sunlight (Vitamin D). It is very common in such professions.

</comment><comment><USER29> walking home if possible. Some time ago I figured that I need around 45 minutes to completely disconnect and refresh from an intense day of work.</comment>


Ask HN: How do you handle comments on your blog? - <AUTHOR> <comment><USER2> Got rid of them years ago. Never looked back.

Comments require moderating. If you're not prepared to do that, outsource it to somewhere like reddit or HN where others can do it for you, and do it better.

But mostly I got rid of it because my blog is about _opinions_. I have an opinion. And the only thing you'll get by allowing comments, is someone underneath your delightful article telling you your opinion is wrong.

<comment><USER3> What is your blog about, if I may ask?

Since it's about opinions, I'm guessing it's maybe about music and movies, where there is no "true" answer about if the music/movie/etc is "good"?

Would you expect _blog comments_ for a blog post X of yours, to be more about opinions, than _comments at a social news aggr site_ , about the same blog post X?

<comment><USER2> [http://www.codersnotes.com](http://www.codersnotes.com), if you really want to go see it. Coding and tech stuff.

I've generally found that there's definitely a difference in tone between blog comments and comments on HN/Reddit. People tend to be more direct (in a bad way) on a blog.

<comment><USER3> Thanks for the link. I read "In Search Of The Lost Program", interesting analogies you found, I think. Ok then I better understand how it can be both softw dev & opinions at the same time :- )

</comment></comment></comment></comment><comment><USER4> I don't anymore. Low quality, racism, and spam essentially led to me removing commenting altogether. I have considered creating threads on HN or Reddit for commenting but that doesn't feel right.

<comment><USER3> What is your blog about, if I may ask? I'm curious since it sometimes attracts racist comments? Maybe the blog is about society and politics and people, I'm wondering?

What about a commenting system where comments won't appear until after approval, for new posters? And once someone has posted say 7 comments that were all okay and you approved, then that person's comments get approved automatically? (because then you a bit trust that person)

I think it's sometimes a bit sad when I cannot mention something interesting & related to the blog post, that could be meaningful for the author & other readers to know about. Or maybe ask something, or ...

Why does creating threads at say Reddit not feel right?

What benefits do you see with using Reddit instead of blog comments?

</comment></comment><comment><USER5> No comments.

They were cool back in early 2000s when Web 2.0 was hip and the internet was more friendly and innocent.

There was no Twitter and social networks were limited.

Having comments was viewed as giving others a voice who would otherwise be somewhat forced to just be readers.

Today there is no shortage of places for people to shout their thoughts.

</comment><comment><USER6> My blog is static, when comments are submitted they are POSTed to one dynamic end-point (i.e. a CGI-script) which writes them to "comments/$file".

I moderate by moving to "comments/good/$file", or "comments/spam/$file" as appropriate. Then I pull them down to my desktop (via rsync) as part of my build-process to include all the comments beneath "comments/good".

In short my blog is static, comments get written to disc, and the next time I rebuild the blog I pick up new comments - unless they're spam. The CGI also sends me an email so I know to do the necessary every few hours/days.

Of course moderation, and spam-detection, is annoying. So I outsource that to [https://blogspam.net/](https://blogspam.net/) which is a service I created & maintain.

</comment><comment><USER7> I don't currently have comments on my Ghost blog, but I do watch Twitter and HN for discussions of the posts though.

I've been thinking of adding something like Disqus to have comments on the page.

<comment><USER3> How do you watch for Twitter and HN discussions about the posts? Do you use some automatic tool?

I'm creating embedded comments software, and I've been thinking about trying to make that software find and auto-link to [discussions about the blog post] at HN / Reddit / Twitter etc.

Maybe those discussions could be represented as a special type of blog comment — so other people could _upvote_ [the discussion that happens at HN about the blog post], and also so you could easily _delete_ the link to that discussion...

... Or you could add a followup comment, about that discussion, by replying to the auto-generated comment that links to HN, like: "Interesting discussion that talks about ...." — so you can type a quick summary of what people said at HN, for visitors at your blog, who are short of time.

<comment><USER7> HNWatcher emails me whenever my blog is mentioned on HN.

I also use Google Alerts.

I don't have any like this for Twitter, but it would be nice to have. Currently I just watch a search query for the article title or url in the days after publishing. Or I create a standing query in TweetDeck, but that only works on desktop.

Aggregating the discussions across channels sounds interesting. Embedding that on the post page would be sweet.

<comment><USER3> Thanks for the info. I looked into if those things can be done automatically, and ... I think so:

For HN, there's [https://news.ycombinator.com/newest](https://news.ycombinator.com/newest) which the software could monitor, and detect links to one's blog. And Reddit also has a latest-submissions feed. At both Reddit and Twitter, one can search for URLs.

Seems it's possible to auto link to submissions at HN, Reddit, and to Twitter tweets, then.

And Google Alerts can publish mentions of URLs to RSS feeds, so maybe can find & link to [other blog post that mention one's own blog post]. (There's webmentions .. not all blogs use that.) ... maybe Google Alerts has API restrictions & rate limits, so maybe won't work.

If each discussion that happens somewhere else, gets posted at one's blog, by the comments software, in the shape of [a comment with a link to the discussion] — then one would automatically get a notification about the remote discussion (since each comment generates a notification to the blog owner).

</comment></comment></comment></comment><comment><USER3> I built an open source alternative to Disqus. I have a list of 100? blog posts I'm planning to write ... and then I'll use it. I've added a few improvements over Disqus that makes the comments simpler to navigate (if they're really many) and also for finding the most recent comments (which otherwise isn't possible, since the commmets are threaded).

Here's the blog & comments: [https://www.kajmagnus.blog/new-embedded- comments/](https://www.kajmagnus.blog/new-embedded-comments/) (that's the only blog post thus far).

If you want to read more: [https://www.talkyard.io/blog- comments](https://www.talkyard.io/blog-comments)</comment>


From Pocket Computers to Palmtops: An Early History of Mobile Telecomputing - <AUTHOR> https://paleotronic.com/2019/09/28/from-pocket-computers-to-palmtops-an-early-history-of-mobile-telecomputing/ <comment><USER2> No mention at all of Psion? Psion products predate winCE and their offerings were technically superior -- eventually forming the basis of Nokia's feature phones/early smartphones.</comment>


Shit for Making Websites - <AUTHOR> http://shitformakingwebsites.com/ <comment><USER2> There's a similar resource out there : [http://thetoolbox.cc/](http://thetoolbox.cc/) which is way better, I believe, and made by frequent hn contributor sgdesign.

<comment><USER3> Can't read it on the iPhone, content doesn't fit the screen width regardless of the orientation.

[http://s13.postimg.org/78ntat2fr/image.jpg](http://s13.postimg.org/78ntat2fr/image.jpg)

[http://s12.postimg.org/3k9u1a2l9/image.jpg](http://s12.postimg.org/3k9u1a2l9/image.jpg)

<comment><USER4> Yeah, some of the filters are cut off. The rest of the site works fine though.

<comment><USER3> Nope, not only filters, content.

Check the second screenshot: optimized typografy for…

</comment></comment></comment></comment><comment><USER5> Not sure than I can think of a worse way to organize such content than by reverse chronological posting date. Also not a big fan of profanity for this purpose (call me a prude).

<comment><USER6> And yet, despite the profanity, the post is #2 on the front page.

Welcome to the wild world of growth hacking!

<comment><USER7> HN is not the world but a tiny microcosm. I am also not sure the profanity in the URL is responsible for the position. The HN title would have been enough if it is indeed the deciding factor of popularity. By using profanity he has shut out every kid trying to learn at school or a person at a library or business sitting behind a filter in order to pander to the programming "elite".

<comment><USER8> So because people filter the internet... we should self filter to get around it.

That's an uncomfortable realisation for me. :-(

<comment><USER9> You are acting as if there is some positive value here.

There's isn't. It's a completely unnecessary word.

Argue about self filtering for things that are actually meaningful.

<comment><USER10> Language is a man-made construct; words only carry as much meaning/importance/value/derision as they are given by society. If we don't like a word, sure we can try (futilely) banning/censoring it, but it'll only add more credence to the very meaning the pro-censorship camp is trying to censor it for, resulting in a Streisand Effect scenario [0]. If you let a word you don't like continue to evolve organically on the other hand, chances are that society will get bored with it (or it's old meaning), and eventually move on from it. So why not just let language take its course?

The purpose of language is communication, and clearly the OP saw the word "shit" as a bit of a tongue-in-cheek synonym for "thing", so should we be annoyed at the concept of cheeky "things" as well? Here's a good rule to live by: _" Context is just as important as Connotation in Communication"_. Clearly the context trumps whatever other connotations this 'naughty' word might have, so treat it as such. Who are we to judge another person's vernacular?

It shouldn't be the case that we are held hostage by our own creations. So don't let language control you; use it in the best way you can so as to empower yourself instead. If you still have a problem with certain words, think of it like dealing with a bully: if you ignore him long enough, he will get bored and go away.

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

<comment><USER9> You got it right in the first paragraph! And then drew the wrong conclusion.

That is exactly why you should be for censorship - without it all those words will lose their meaning, and people will invent new ones.

I don't see any need to invent new swear words, and I am against casual use of those words, because doing so leaves them to exist for the situations that warrants them.

I don't want, nor need, to be "shocked" all the time. Not do I want to be so desensitized that it's impossible to shocked me. I like the happy middle.

<comment><USER10> > _without it all those words will lose their meaning, and people will invent > new ones._

I can see where you're coming from, and can respect that, but it still feels to me like this idea that we will just perpetually invent new words that serve the _same exact purpose_ to be a bit of an unconvincing assumption. I have no problem believing that racial slurs will go the way of the dodo eventually for example, so would there be a need to replace such words exactly? Maybe the words themselves will be adapted to fit a narrower/different definition, but the point is that it doesn't matter whether the words themselves stay static or not, because the zeitgeist that produced their meanings won't stay static anyway. So either we'll adapt the old ones to these new meanings, or we'll just resort to inventing new words for these _similar /derived concepts_ when the old words are 'unavailable'.

And even this is still assuming that it is somehow innate for us to 'swear', or that 'swearing' as a concept is even well defined enough to try and do anything with it (like try to avoid it). I mean, if I use the word "fudge" everywhere the classic "F-word" would otherwise be used, why is it then still not considered a swear word? Maybe you could argue that it is, and that's cool, but clearly it carries significantly less of a 'sting' to it. So does it still make sense to lump it in with the other swear words? It just feels too arbitrary and ill-defined of a concept.

I don't disagree that we should reserve some expressions for intense emotions (such as those originally attributed to swearing), but like I said, _Context_ is a key part of the language equation, which itself isn't even all that matters in communication (e.g. vocal intonation, and the whole array of non- verbal communications). Language really can't be considered in isolation, it very much still a product of verbal communication, so you have to take those factors into account too.

Besides, the whole debate about whether language limits thought or thought structures language is still up in the air, so to try and say anything conclusive about something that seems to be a purely linguistic artifact feels a bit premature.

<comment><USER9> > but it still feels to me like this idea that we will just perpetually invent > new words that serve the same exact purpose to be a bit of an unconvincing > assumption

We sure do. Check out some of the examples here: [http://en.wikipedia.org/wiki/Euphemism_treadmill](http://en.wikipedia.org/wiki/Euphemism_treadmill)

> .. the word "fudge" ... considered a swear word? .. carries significantly > less of a 'sting' to it ... feels too arbitrary

Yes, it's a swear word, and it has less of a string. It's exactly the way you write. It's good to have a variety of words to fit different situations. It's not anymore arbitrary than any other word.

> so to try and say anything conclusive about something that seems to be a > purely linguistic artifact feels a bit premature.

It's not an artifact. I think it's pretty universal to all cultures. Toddlers will find "swear" words and use them when mad (usually related to bathroom activities). Kids who don't know swear words immediately try to learn some as soon as they hear any. And as far as I know every single culture has taboo words.

Most of the time the swear words stay pretty static. But then you have people who want to "liberate" them (and enjoy shocking people), without realizing they are actually neutering them.

I've seen people say that modern society is more accepting of swears. That's not what's happening, what's happening is the swears are losing their power. And of course then people find, and use, new ones. (Like the kerfuffle about the swear word in the movie Kick-Ass. The regular swears were too mainstream so they went with the strongest one they knew just for the shock value.)

I don't approve of using a swear for the shock value - use it where warranted by the situation, not to try to impress your listener. I will continue to criticize shock usage, and people will continue to scream about censorship.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER11> By all appearances this is a trickle of links vaguely related to web development. Thanks for sharing?

edit: I'd be more interested in how you're using ifttt, pinboard, and wordpress to generate the site.

<comment><USER12> I'm curious about how the site is created as well. Is there an IFTTT recipe for posting to WordPress from Pinboard?

<comment><USER6> Pinboard is a (newly) supported Channel for IFTTT, so a recipe for Pinboard -> Wordpress is simple to create. [https://ifttt.com/pinboard](https://ifttt.com/pinboard)

You can do a _lot_ of hacky stuff with IFTTT if you play with RSS too. For reference, I made a Reddit image auto-downloader in IFTTT by using RSS and Yahoo Pipes awhile ago: [http://minimaxir.com/2013/01/if-cute-then- happiness/](http://minimaxir.com/2013/01/if-cute-then-happiness/)

<comment><USER13> Pretty awesome. Were you really looking for cute pictures or just proof of concept? :)

<comment><USER6> Just proof of concept. Honestly, if an automation service existed that had the simplicity of IFTTT (in terms of triggers) and the flexibility of running your own code to transform the inputs/outputs, that would be my dream startup.

<comment><USER14> Agreed, hoping Zapier implements something like this soon.

Basic transforms / Regex / Basic if statements applied to trigger inputs/outputs would be invaluable.

</comment></comment></comment></comment></comment></comment><comment><USER15> Collaborative screen sharing with two cursors? Engelbart would be happy.

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

</comment><comment><USER16> I tired of seeing people posting stuff without explaining what is it about. Please do it next time, because I'm not gonna search for it.

<comment><USER17> I'm pretty sure "shit for making websites" pretty much covers the topic here.

<comment><USER9> No it doesn't. I thought it meant that someone got reprimanded or criticized because he made a website. Or perhaps paid poorly.

The actual meaning used here never even occurred to me.

<comment><USER18> Wow. It amazes me how people interpret things differently. Not that there's anything wrong with what you thought, it's just interesting.

</comment></comment></comment></comment><comment><USER19> Oh wow, Duet (project management app, [http://duetapp.com](http://duetapp.com) ) is exactly what I've been looking for. This is going to make my life so much easier!

I'm buying it right now.

</comment><comment><USER20> Before I looked I thought it was going to be about tools that are rubbish for making websites.

Possibly the makers of the listed resources & tools will not want their product related to a word synonymous with crap.

</comment><comment><USER21> Thanks for sharing, some beautiful gems in it.. More specifically, didn't know about Duet. That's a beautifully designed website!

</comment><comment><USER22> I thought that this list was pretty great. I don't write much js, but [http://adamschwartz.co/log/](http://adamschwartz.co/log/) looks awesome.

</comment><comment><USER23> That live editing CSS thing looks awesome, but it's been a few months since the video was released. Is it still an active project?

<comment><USER24> Im fairly certain that if you are on a mac you can do this with codekit or livereload

<comment><USER23> I'm not :(

<comment><USER25> Theres Prepros thats supposed to be similar to Codekit for both OSX + Windows

[http://alphapixels.com/prepros/](http://alphapixels.com/prepros/)

<comment><USER23> I actually prefer a Sublime Text plugin just like in the video, but I'll check Prepros out. Thanks!

Edit: Prepros is not the program I'm looking for. Meh.

</comment></comment></comment></comment></comment><comment><USER26> Starts with a good set of things everybody might need, and then quickly trails off into an opinionated set of rather random things

</comment><comment><USER27> Read this as shirt for making websites. I was expecting some satire on the millions of websites for making shirts.

</comment><comment><USER28> thanks very much for posting this, I appreciate learning about useful resources.

</comment><comment><USER29> lol best name ever... thanks for sharing.

</comment><comment><USER30> this is great. haha. I needed that today.

</comment><comment><USER31> Saved!

</comment><comment><USER32> disregard the comments, this is a very useful website. thanks X4 :)

<comment><AUTHOR> Thank you @hydralist</comment></comment>


Straight Shooter for Upper Management - <AUTHOR> http://thedailywtf.com/articles/Straight_Shooter_for_Upper_Management <comment><USER2> I worked with a "manager" back in 1999 who didn't understand that Java and JavaScript were two completely different things. His suggestion for everything, literally, was "can't you just write a javascript to fix it?" Fun times.

</comment><comment><USER3> Well it seems like he correctly predicted JavaScript would take over the world.</comment>


Nokia needs plastic surgery not a brain transplant - <AUTHOR> http://www.betanews.com/joewilcox/article/Nokia-needs-plastic-surgery-not-a-brain-transplant/1297657921

<comment><USER2> Some interesting points raised..

1\. Nokia will give up it's (start to finish)monopoly on the phones they make. They were (effectively) the only company other than Apple doing that.

2\. Nokia is still amazingly popular in Europe and Asia.</comment>


Silk, iPad, Galaxy comparison - <AUTHOR> http://www.stevesouders.com/blog/2011/12/01/silk-ipad-galaxy-comparison/

<comment><AUTHOR> I really dislike the arbitrary title edits on HN.

There was nothing wrong with mine, it was a summary that was far more comprehensive than the 4 words that replaced it.

<comment><USER2> In the interest of community justice, what was your original title?

</comment></comment><comment><AUTHOR> Relevant chart here:

<http://loadtimer.org/results.php?data=all>

</comment><comment><USER3> I think it's odd that the author chooses to leave accleration on, despite having just proven that it's detrimental. That, and the fact that you're proxying all of your browsing traffic through a third party, seems like it's all cons and no pros. If I was him, I'd keep it off until there was more of a balance between pros and cons (though the potentially privacy issues alone would probably be nigh-impossible to overcome.)

<comment><USER4> Why is this confusing? I've seen numerous iPad vs. Android browser comparisons, but yet to see an in-depth Silk test (other than the many reviewers who said it was slower).

Silk (and whether it lives up to it's billing) is the most interesting part.

<comment><USER3> Did you read the article? In it he benchmarks Silk (accel) vs. Silk (no accel). He's proven to himself that the acceleration system doesn't work, using his own testing methodology, which, given that he produced the results, he should be biased into believing.

Nothing is keeping him from turning it on later in the future, when it's objectively proven to be faster. But he keeps it on now, basically because of his optimism in Amazon.

</comment></comment></comment><comment><USER5> Can anyone explain the "acceleration"? I don't understand why a browser would have this option... when would you choose to not use it? Why does amazon give users a choice, if it's supposed to be better (which apparently it's not)?

<comment><USER6> All traffic is proxied through Amazon's servers. This means that hypothetically they can read you unencrypted HTTP session. Hence the toggle.

</comment></comment><comment><USER7> >the browser cache was cleared between tests

How is that "real world"?* Not to mention, Silk was designed to speed up as you use it, learning your browsing habits and caching many assets. Using it directly from the box with caching turned off defeats the purpose.

* Ah, I see, the headline was edited before I clicked "submit" on my comment. Point still stands, nearly every one of these artificial benchmarks proves nothing of any real use.

<comment><AUTHOR> It's realworld in the sense he used some of the most popular sites, not some kind of laboratory test with local network.

Caching turned off is for cold-cache test. Storage is relatively small on tablets and it's very plausible to get a cold cache first pageload.

Steve is pretty good at these kinds of tests.

<comment><USER7> Problem is, Silk isn't marketed as just another browser. To see its effects, you have to use it like Amazon intended for it to be used. You don't disconnect the batteries from a Prius then say it's less efficient than a standard car just for the sake of being "fair".</comment></comment></comment>


Cox, like Comcast, also violating net neutrality by disrupting subscribers' file transfers - <AUTHOR> http://www.alleyinsider.com/2008/5/cox_like_comcast_choking_customers_file_sharing

<comment><USER2> i would appreciate it if someone would come up with a feature branding organization, like energy star, or consumer reports for INTERNET providers. in the end these large corporations are going to find a way to do what they want, unless actual everyday consumers stop buying the service because the know what it means in real terms like:

* att, comcast, and cox transfer files slower to your friends

* email is slower to upload

* new technology may not be available right away on these networks

* att, comcast, and cox want to treat the INTERNET like individually billed PHONE calls with different prices based on who you call (ie 1-800, 1-900, long distance and on network and off network pricing) the want to push us back to the days when you had to know which area codes were expensive and which were not

* etc...

lets give the consumer something real they can understand rather than net- neutrality which is an insiders term.</comment>


Flickr says all Creative Commons photos are exempt from picture limits - <AUTHOR> https://www.theverge.com/2019/3/8/18256478/flickr-creative-commons-photos-free-1000-picture-limit-exempt <comment><USER2> It would have been nice if the Flickr data dump kept correct timestamps on your photos. I've now got 5,000 all dated March 2019 :/

<comment><USER3> Not sure if it respects it, but maybe encode them in EXIF and update based on the EXIF data again after downloading?

</comment></comment><comment><USER4> FYI, to answer the question in the first paragraph of the article I just did a test upload and it worked on my free account, I have 40,000 photos on Flickr and chose not to continue my Pro account, but I think 99% of my photos had a Creative Commons license.

</comment><comment><USER5> Do people who care about not-having picture limits still use flickr?

<comment><USER6> Yes. They pay for "Pro" accounts.

</comment></comment><comment><USER6> It seems to me that the Creative Commons exemption that SmugMug put in place significantly blunted the criticism that they were removing a large quantity of photographs from the digital commons.

Personally, I might have preferred that they excluded non-commercial and non- modify variants but, as a practical matter, those probably needed to be included.

TBH, I'm not sure why most people who don't want to pay wouldn't just license their photos CC--what percentage of Flickr users are going to sell photos to any meaningful degree--but maybe increasing CC licensing is part of the intent.

<comment><USER7> As a hobbyist, I ended up deleting all my photos and closing my account. Had they made this announcement earlier, I would have been happy to put everything as CC.

From their cameras popularity graph ([https://www.flickr.com/cameras](https://www.flickr.com/cameras)), I think the popularity of Flickr has died off with Instagram and all the various social networks. The most popular camera phone on there is iPhone 6 (2014). For point and shoots, it's the first generation RX100 (2012).

<comment><USER8> > I think the popularity of Flickr has died off with Instagram

For me it was because uploading a photo to Instagram was a trivial process (launch app, pick photo, type words, done) in an app that felt nice - Flickr's iOS app was awful. That combined with Flickr's incessant need to dick around with the UI/UX and break things lost me pretty quickly. This year I won't be renewing my Pro.

</comment></comment></comment><comment><USER9> Great. Too bad Verizon pre-paid still caps my data plan.

Now, if all Flickr network traffic (ads, content, images, resources) were to be exempt from impacting Verizon pre-paid data plan bandwidth allowances, that might _almost_ be something.</comment>


So you think there's been progress in GUIs since 1981. - <AUTHOR> http://www.digibarn.com/collections/screenshots/xerox-star-8010/index.html

<comment><USER2> Actually, yes... As one example, Jef Raskin pointed out that Click-Drag was an innovation of the Macintosh group (compare to Click-Drag-Click as used by the Star). Also the single button mouse, which while it might have been too far in the one direction, was certainly easier to use for a novice (which everybody was at the time!) than the 3-button Parc brick.

There is more to a GUI than the screenshot, there's also the actions associated with executing operations in the GUI. Consider the PC-GEOS vs. Windows of the time (2.x or 3.x, I think). GEOS was lightning quick, and a good deal of thought had gone into the interfaces for the major tools. The same machine that would run GEOS so sprightly would crawl under the iron heel of Windows. The interfaces looked very similar, but the quality of your interaction with them was entirely different.

So yes, there's been progress -- unfortunately, a lot of it has been backwards!

</comment><comment><USER3> This in particular: [http://www.digibarn.com/collections/screenshots/xerox- star-8...](http://www.digibarn.com/collections/screenshots/xerox- star-8010/xerox-star-8010-15.jpg)

Love the attention to detail.

</comment><comment><USER4> mirror: <http://s3.amazonaws.com/01981/index.html>

</comment><comment><USER5> ...or in speech or gesture recognition. [http://www.media.mit.edu/speech/papers/1980/bolt_SIGGRAPH80_...](http://www.media.mit.edu/speech/papers/1980/bolt_SIGGRAPH80_put- that-there.pdf)

</comment><comment><USER6> It's not just GUIs. We're still typing (or cut&paste) into search boxes.</comment>


The Missing Borges - <AUTHOR> http://www.theparisreview.org/blog/2014/04/16/the-missing-borges/

<comment><USER2> This article contains so many elements of a Borges story that by the second paragraph I assumed I was reading a work of fiction. Upon further reflection, it seems plain that, while every word of it is without doubt true, the story is a hoax.

<comment><USER3> which would be very apt for a piece about Borges.</comment></comment>


Obama Administration Vetoes Apple Product Ban - <AUTHOR> http://allthingsd.com/20130803/obama-vetoes-apple-product-ban/ <comment><USER2> Apple threw the first punch in this patent war. I don't blame Samsung at all for fighting back. Now Apple has the nerve to make statements like this:

"We applaud the administration for standing up for innovation in this landmark case. Samsung was wrong to abuse the patent system in this way"

Talk about the pot calling the kettle black.

<comment><USER3> There is nothing hypocritical about what Apple said.

It is absolutely disgraceful for Samsung and Google (Motorola) to use FRAND patents as weapons. It undermines the entire standards process by encouraging companies not to put aside competitive agendas and work together for the benefit of all.

<comment><USER4> Except that the ITC ruled that Samsung in fact did NOT fail its FRAND obligations

<comment><USER5> From what I read they basically said that they didn't care about FRAND commitments.

</comment></comment></comment></comment><comment><USER6> How practical. Patents always seem to work one way. US companies first, everyone else will not be treated with the same rules.

<comment><USER7> This is larger than simply patents. The US despite its rhetoric about free trade, democracy, freedom, etc. will, and always has, ensured that its own interests (often in the form of corporations) is given an unfair advantage over other nations.

If you doubt this, here is a recent example in an accessible format about the US loosing a WTC dispute with Brazil, then proceeding to ignore the verdict and continue its unfair trade practices. NPR Planet Money Podcast is here [http://www.npr.org/blogs/money/2013/05/03/180912847/episode-...](http://www.npr.org/blogs/money/2013/05/03/180912847/episode-224-the- cotton-wars)

<comment><USER8> ALL countries do this to protect internal businesses. That's the nature of the game.

</comment></comment></comment><comment><USER9> It is the right call. Still, I have the nagging feeling that the reverse situation (import ban on old samsung phones) wouldn't have warranted a veto..

<comment><USER10> Yup. That's protectionism for you.

</comment></comment><comment><USER11> "We applaud the administration for standing up for innovation in this landmark case. Samsung was wrong to abuse the patent system in this way" - says Apple who made HTC one X banned from being imported in USA, because of patent infrigement.

</comment><comment><USER12> IIRC in the EU Samsung was warned that if they tried to push for an import ban (like this one) with a FRAND patent they would be severely punished. America was the only place that allowed it.

Of course patent law over an international level is tricky with many things to consider, but it was a horrible decision to make.

</comment><comment><USER13> [http://i2.cdn.turner.com/cnn/2011/TECH/innovation/02/18/stev...](http://i2.cdn.turner.com/cnn/2011/TECH/innovation/02/18/steve.jobs.obama/t1larg.steve.jobs.obama.jpg)

<comment><USER3> Eric Schmidt was also at that dinner and was in favour of Samsung's import ban.

<comment><USER14> But Schmidt isn't sitting next to the president.

<comment><USER15> And...

<comment><USER16> Denotes level of influence.

<comment><USER17> Maybe it just denotes that Jobs was a bigger celebrity.

Maybe it was a sign of respect given Jobs' failing health.

Are you seriously suggesting that the corpse of Steve Jobs has more influence than Eric Schmidt?

Or are you seriously suggesting that a company that imports a few electronic gizmos has more influence than a company that has the single greatest practical influence over the internet?

</comment></comment></comment></comment></comment></comment><comment><USER7> As startups we seek to find unfair competitive advantages to get, and stay, ahead of our competition. Apple is incredible at building competitive advantages (e.g. their mag power adapter, iTunes/App Stores, etc). But having the President of the US veto an independent court's ruling tops my list of possible unfair competitive advantages..

</comment><comment><USER18> I copy this comment from AllthingsD,

90% of these hated comments are by either Obama haters or Apple haters.

The patent is around basic CDMA functionality.

If the ruling was enforced, basically only Samsung could import CDMA phones.

This is fair. Just like it was fair when they overruled Apple' gesture patents (pinch and squeeze, etc.)

The whole thing isn't about protectionism or FRAND. It is the existence of these relatively stupid patents.

<comment><USER11> Not really. Other companies are importing CDMA phones and are not banned by Samsung, because they paid licence for using patent. Apple and Samsung did a short negotiation about fees. Samsung asked 2.5% of cost of phone, Apple came back with 1$ or less. For time after that Samsung tried to talk with Apple about a fair deal,but Apple would always go back to 1$ or less price tag.

<comment><USER7> You seem to have researched this, do you have a sense of what is the industry norm for licensing costs for these, or similar, CDMA patents?

<comment><USER19> I can only repeat what others has said here on HN. The industry norm is for bilateral patent agreements, which both parties share their FRAND patents and only pay the difference in licensing fees. Apple do not have FRAND patents to trade with, nor do they want to use substitute any other patents in a trade.

Thus in a rather exceptional case, Samsung/Google is asking the full price, and Apple is refusing it.

<comment><USER20> Hmmm, Apple may not have hard FRAND patents, but they _did_ have patents Samsung was interested in cross licensing in return for FRAND patent licenses. Seeing as how Apple is using various of those to club Samsung with (perhaps after Samsung first approached them), I can see why they didn't want to do such a deal, but....

I suppose we'll see how this all plays out in court, with this ITC fast track import ban nixed.

</comment></comment></comment></comment></comment><comment><USER21> Off topic, but this post (and discussion) illustrates very well why technology and politics can never be separated.

You would need a very strong and valid argument to separate these two topics.

<comment><USER20> In more honest times "economics" was more accurately called "political economy": [http://en.wikipedia.org/wiki/Political_economy](http://en.wikipedia.org/wiki/Political_economy)

<comment><USER16> I didn't know that, thanks.

</comment></comment></comment><comment><USER22> Patents are an obvious enabler of monopolies. Supported by the Obama administration.

This story is screwed up for the fact that a patent-backed ban was enforced AND for the fact the Obama administration stepped in to help Apple out. If it'd been Joe Bloggs, I doubt they'd have cared.

</comment><comment><USER17> Whether or not you own a Galaxy or an iPhone, this decision is the right one. The ITC failed to take into consideration Samsung's FRAND obligations that encumber the patents in question, which made their decision just plain wrong.

<comment><USER13> I own neither, ask yourself this: even given that, do you think that the intervention would have been the same had the situation been reversed?

<comment><USER3> I wouldn't see why not. There was widespread support from Intel, ATT, BSA, Oracle etc against import bans for FRAND patents. Had Obama not intervened it would have sent a devastating precedent that is in nobody's interest.

<comment><USER23> >it would have sent a devastating precedent that is in nobody's interest.

It would have made immediately obvious to everyone the need for patent system reform.

</comment></comment></comment></comment><comment><USER21> One reason to protect Apple may be the fact that the NSA has access to Apple and their users' data, which is certainly very valuable to them.

<comment><USER24> And you don't think they have access to Google and Microsoft, the two companies making software for Samsung phones?

<comment><USER21> We know that they do.

I'd add to that that control over hardware (such as chips, etc.) seems a tad more powerful.

And then, it could also be about _preventing_ Samsung from gaining market share in the "spying market".

</comment></comment></comment><comment><USER25> Definitely not a dictatorship. Definitely not.</comment>


Is Wilson vs. the Prime Minister the silver bullet that will kill Brexit? - <AUTHOR> http://www.brexitshambles.com/dr-robert-c-palmer-explains-the-significance-of-the-wilson-case-and-the-intriguing-law-behind-it/ <comment><USER2> Referendums are seldom used in the UK. This one was not legally binding.

Legally a referendum only has the effect that Parliament decided. In this case: none.

Parliament is sovereign and it voted to leave the EU. Its decision was informed by the referendum but it was not bound by it, nor did it have to take any action at all.

The decision was political because it was untenable politically for Parliament not to vote to leave the EU considering the referendum's result.

</comment><comment><USER3> There is little point in revisiting this mess outside history. The EU is not about to ignore the actions of the past 2 years because the UK finally figured out it is corrupt. The deal, for better or most likely worse, has been done. No taksybacksies says the EU.

</comment><comment><AUTHOR> TD-DR: The vote was proven to be blemished, the Prime Minister acted irrationally to use that as the basis of Brexit.</comment>