Introducing Slide-to-Select - <AUTHOR> https://medium.com/@kampopat/click-click-click-drag-tap-tap-tap-slide-75fc1ad370fd

<comment><USER2> This has been around for a while. An app called Loom had this like a year ago. You can look at it here: [https://www.youtube.com/watch?v=3B8KTDqCKx8](https://www.youtube.com/watch?v=3B8KTDqCKx8)

App is not available anymore, because it got acquired by Dropbox.

<comment><USER3> I'm pretty sure that they would have patented it too. Guess we'll find out if this gets pulled.

<comment><USER4> But nobody shows how to scroll in select mode.

Edit:

>Tested it out. Using spreadsheet terms, it seems that when you want to select A1 to A2 it will scroll unless you have already started a horizontal select. The whole workflow is actually really nice and smooth. I personally like it. I would recommend others to try it out.

</comment></comment></comment><comment><USER5> Looks great for a static screen. How does it handle scrolling?

<comment><USER6> Tested it out. Using spreadsheet terms, it seems that when you want to select A1 to A2 it will scroll unless you have already started a horizontal select. The whole workflow is actually really nice and smooth. I personally like it. I would recommend others to try it out.

<comment><USER7> Cool! That's actually a great solution.

As with all of these things it's not obviously discoverable but once you know how the interaction works it's really useful. Seems like one of these features that you'll forever find yourself wishing for in every other app where you had to select a load of things.

<comment><AUTHOR> We're going to introduce a short tutorial that makes users aware of the interaction when they first open the camera so that should make it more discoverable. Another thing that isn't obvious yet is you can deselect all the images by shaking the device! We'll make that obvious in the tutorial too.

<comment><USER6> It might be good to have a deselect all button. Without knowing that I could shake, I deselected around 25 photos manually.

</comment></comment></comment></comment></comment><comment><USER8> EDIT 2: Author removed the image.

I clicked on the link. It shows me a full-screen image with some text telling me to click and drag and tap and slide. So I clicked on the text and dragged and ... it's text.

I pressed space (probably subconsciously) and found out that it scrolls and it's an article about user interaction. But the only thing I saw at first is a picture and a title. It seems like they went out of their way to destroy usability so it looks nice. Especially ironic in an article about user interfaces.

I don't think it would really hurt to put "scroll down to read some text" on there, so you know you can scroll.

EDIT: this is what I see: [http://i.imgur.com/euC9MeN.jpg](http://i.imgur.com/euC9MeN.jpg)

<comment><USER9> _" scroll down to read some text" on there, so you know you can scroll._

I saw the picture and text at first, but also the scrollbar that indicated there was more content, so I knew I should scroll down.

<comment><USER8> The problem is, Mac OS (I don't know about others) don't have a static scrollbar anymore. There's no way of knowing. The people that make medium.com surely must know that in Mac OS there will be no indication that there's any content to read, and that if they fill the screen with a large image without showing any content, they should at least say "there's some content below".

(Granted you can enable it in the System Preferences, but that's not standard)

</comment></comment></comment><comment><USER10> Windows Vista did something similar to support both panning and selecting with touch screens.*

A vertical drag would pan the content, and a horizontal drag would act like a mouse: select or drag-drop the content. [http://youtu.be/roP3YtLvblE?t=2m22s](http://youtu.be/roP3YtLvblE?t=2m22s)

I thought it worked well, even though it made horizontal scrolling harder (had to use 2 fingers).

Windows 8 uses tap-drag for selection instead. [http://www.microsoft.com/surface/en-us/support/touch- mouse-a...](http://www.microsoft.com/surface/en-us/support/touch-mouse-and- search/using-touch-gestures-tap-swipe-and-beyond)

(* I worked on this feature at MS back in the day)

</comment><comment><USER9> This sounds like it would have to be a separate mode, since otherwise it would be very easily confused with scrolling which the slide gesture is already used for - and this could make selections more difficult if they're not contiguous and located far apart; compare

1\. Scroll to the first item; tap to select it; scroll to the second item; tap to select it; perform the desired action with the selection.

2\. Scroll to the first item; enter selection mode; tap to select it; exit selection mode (and hopefully it still keeps the selection!); scroll to the second item; enter selection mode; tap to select it; perform the desired action with the selection.

<comment><AUTHOR> OP here. It's actually a single mode. Since the view doesn't have a horizontal scroll, the selection is activated as soon as you slide your finger horizontally and will continue (horizontal or vertical) until you lift your finger. Of course this means that only the visible cells on screen can be selected in one go before you'd have to release (it will keep the selection) and then scroll down before selecting another group. Hope that clears it up!

</comment></comment><comment><USER11> This interaction looks like it could be confusing as everywhere else people are used to the drag-and-drop interaction (or, in mobile, tap-and-drag).

</comment><comment><USER12> This is a really cool implementation.. Definitely a time-saver.. Like another user mentioned here, i am curious to understand how you handle vertical scrolling..

<comment><AUTHOR> Vertical scrolling isn't affected. A horizontal slide of your finger will activate it and then you can slide over any photo you want to select (horizontal, diagonal and vertical). Once you lift your finger you can scroll down as you normally would. We take into account the angle at which you're scrolling so it is possible to select say 3 photos in the same column by sliding your finger over the top one at an angle and then sliding down. Try it out if you have an iOS device.

</comment></comment><comment><USER13> every interaction should have a logical purpose behind it. clicking is a natural form of selection, swiping is more geared towards movement.

</comment><comment><USER14> Tidy (an iOS app for organising your photos) has this as well. Dont know how they do it, buts its really neat.

</comment><comment><USER15> I can already perform a slide to select on my old iPad 1. Did this disappear in recent versions of iOS?

</comment><comment><USER16> Wish Apple sees this.</comment>


Confessions of a Drug Dealer's Delivery Service Guy - <AUTHOR> http://www.vice.com/read/confessions-of-a-drug-dealers-delivery-service-guy <comment><USER2> >Like most addicts in denial, potheads live under the bogus assumption that every bong hit will be their last.

Uh, what? While there may be some people that have hit problems and want to change because their life is being negatively impacted, most "addicts" are quite fine where they are. I personally don't like pot, but I've never known any pothead to keep saying "this will be my last hit" \- quite the opposite. Like Snoop says "Smoke weed everyday".

Edit: Also, he disses his pill clients ("depravity"), while simultaneously noting that they're the wealthier ones, pouring him "expensive scotch".

Seems like he had some odd delusions of being cool, and wanted to show how hard being a delivery boy is ("read three books a week"), while also showing his superiority to "addicts".

<comment><USER3> I laughed out loud when I read that idiotic part about "this will be my last hit" too.

I do like John McAfee's take on chronic weed use though: "Marijuana is the drug of illusion. It creates the the illusion that you're thinking great thoughts and doing great things while you're sitting on the sofa and growing a beard."

Anyways, if this guy was delivering Oxy he's lucky he is still alive. Oxy drivers are almost always jacked where I live. All the major crew members here are addicted to it because it calms them from being paranoid since they are all marked for death by each other and constantly looking over their shoulder. Gangster anxiety is best explained in the classic song My Mind Playing Tricks On Me by the Geto Boys.

Kind of strange this guy didn't mention any anxiety of being busted or having a gun shoved in his face. He just slammed all his customers leading me to believe he didn't actually deliver drugs. If you don't wake up in the middle of the night panicking after dreaming of your door getting kicked in or don't think that everybody on the street is following you then you aren't in the game.

<comment><USER4> I wouldn't think think low level delivery guys in Manhattan have that much to worry about. The types of customers he presumably was delivering to aren't the types to go buy an illegal handgun somewhere and then mug a delivery guy for $1K in drugs given they obviously make several times that in their job.

As far as being busted goes, if he's taking cabs/walking everywhere and its in say Midtown Manhattan and he's dressed like any other 20 something with a laptop bag, its unlikely he'll be randomly stopped and frisked.

<comment><USER3> True, but other crews pay for intel on competitor delivery driver operations because that's their ATM machine: robbing and taxing weak criminals. Especially the pill customers, it's likely they have other delivery drivers since they are addicts and wouldn't think twice about dropping a dime on this guy for some free Oxy. The other crew then sticks a gun in his face, and demands to know where the boss keeps the safe house and it's all downhill from there. I guess his 'boss' paid taxes to avoid this.

I learned all this from an unfortunate but informative stint in jail for a minor computer tresspassing charge. Guy's in there close to release form new crews and when they get out the first thing they do is rob a delivery driver to start their new business. They approach existing org crime outfits and receive loans, guns and vehicles to go conquer and tax new territory.

Here's a timely article about exactly what we are talking about: [http://blogs.vancouversun.com/2013/10/04/corey-lal-took- over...](http://blogs.vancouversun.com/2013/10/04/corey-lal-took-over-drug- line-day-before-surrey-six-murders-witness/)

</comment></comment></comment></comment><comment><USER5> > _At times, I was tempted to hand them back their measly $60 and snatch the > pipe from their hands and say, "You don 't have to live this way."_

That's a lot of condescension coming from the guy who thought he would look like a "suave gangster" while performing door to door pot deliveries.

<comment><USER6> Not to mention he mocks them for not making huge live changing moves during the small time frame that he actually knew them, and that he actually thinks these clients weren't just casually lying to some kid who brings them their weed.

<comment><USER7> Not to mention he himself took the job out of desperation. He admits he couldn't make a better life choice for himself but acts like he's superior to the people conducting business with him.

He also suggests they were spending $60/day on weed.. wouldn't that be at least $1200/month? He had few enough clients that he never saw the same first name twice, so his clients were probably earning more than he did.

As easy as it is for him to judge the pill clients, he could have made an effort to think of reasons why his _wealthy_ clients were hooked. People get addicted to opiates all the time, and its not always drug dealer delivery guys who introduce them to narcotics.. sometimes its a doctor.

<comment><USER8> I think you mathed wrong. 60*30=$1800. More than rent for a 2Br in lots of Brooklyn!

</comment></comment></comment></comment><comment><USER9> The sales incentives make no sense. He made 1/3rd commission on the smallest bags, 1/5th on the medium and 1/6 on the largest bags. It is better for him to sell lots of small bags than 1 big one. In addition, assuming most customers buy the small bag, then upselling to a medium bag would bring no extra financial reward. Putting aside the idea that buying the biggest bag might lead to faster consumption, and assuming that the customers were tied in to the supplier, he would have been better off downselling as the customers would still buy the same amount, just in more transactions, leading to higher returns for him (especially as his transport costs were paid).

<comment><USER10> It makes sense to me. Each sale of a bag takes time. It's no good getting a higher percentage of a small bag if he has to run around for an hour to sell 1 small bag and could've sold 1 large bag in that hour instead.

<comment><USER9> If the majority of users take the small bag, which seems logical, then I can't imagine you would be able to upsell them easily to a product that was 5x the price (indeed the author acknowledges that), the upsell opportunity there would be to a medium bag, but as there is no difference to him financially in the sale of a small or medium bag, what is his incentive?

<comment><USER10> ...If there is no difference to him between a small and medium, doesn't that instantly explain why he's trying to upsell them to a big bag even though it's so difficult?

</comment></comment></comment></comment><comment><USER11> I can't help but feel that what the author calls a 'drug dealer's delivery guy' is what I would just call a 'drug dealer'.

<comment><USER12> The differentiation here would be that this guy doesn't have inventory risk (or benefit, for that matter). This guy doesn't own the customer relationship, or the supplier relationship.

It's the difference between owning a pizza restaurant and being the pizza delivery person.

</comment></comment><comment><USER13> This piece is laughable if you've ever used drugs, sold drugs, or know your way around anywhere. Oh man the article writers delusion.

<comment><USER14> Looks to me more like someone sold a few bags of weed to friends and got lost in his delusions of being a runner, and made the rest up to try impress people.

</comment></comment><comment><USER15> LOL this guy is the biggest tool of all time

<comment><USER16> He probably aspires to date the equivalent of Hannah from Girls.</comment></comment>


Simple Sabotage Field Manual (1944) [pdf] - <AUTHOR> https://www.cia.gov/news-information/featured-story-archive/2012-featured-story-archive/CleanedUOSSSimpleSabotage_sm.pdf <comment><USER2> There's another great manual they dropped over Nicaragua to instruct people on how to take down the state. Comes with helpful illustrations and everything!

[http://www.picassodreams.com/picasso_dreams/2006/06/cia_sabo...](http://www.picassodreams.com/picasso_dreams/2006/06/cia_sabotage_ma.html)

<comment><USER3> This is hilarious. I like how they slowly go from 'be lazy' to 'outright violence.' Why don't we make these for our modern conflicts? North Korea, the sprawling Middle East stuff, those crazy Russians around Georgia/Ukraine...

"Call in sick and throw tools in the sewers. Threaten your boss by telephone and cut up the upholstery of vehicles. Put nails in battery cells. Paint seditious slogans. Burn down a warehouse."

</comment></comment><comment><USER4> Sounds like standard .gov operating procedure:

«When possible, refer all matters to committees, for "further study and consideration." Attempt to make the committee as large as possible — never less than five.»

<comment><USER5> Or standard office procedures:

> Hold conferences when there is more critical work to be done.

> To lower morale and with it, production, be pleasant to inefficient workers; > give them undeserved promotions.

And there is also the standard "I want to keep my job move":

> Never pass on your skill and experience to a new or less skillful worker.

</comment></comment><comment><USER6> I just realized that I've worked with quite a few CIA plants, especially in the insurance industry.

</comment><comment><USER7> So the Anarchist Cookbook is terrorist literature [1], but this guide is fine?

> To create a briefer but even hotter flame, put celluloid such as you might > find in an old comb, into a nest of plain or saturated paper which is to be > fired by a candle.

[1] [http://news.bbc.co.uk/1/hi/uk/7030096.stm](http://news.bbc.co.uk/1/hi/uk/7030096.stm)

<comment><USER8> >So the Anarchist Cookbook is terrorist literature [1], but this guide is fine?

If you are just now discovering that the state holds itself to a different standard than its citizens, you must have been living under a rock.

<comment><USER9> The whole idea with the (modern, democratic) state is that certain task are delegated and exclusive to the state.

Revenge and killing people is for instance delegated to the judicial system, the police, and the military. Without it we would be back to tribal wars.

</comment></comment></comment><comment><USER10> * Invent social media

* Every Friday is mariachi band day

* Cater lunch, spike the food with laxatives

</comment><comment><USER11> Should have included open space offices.

<comment><USER12> "Contrive as many interruptions to your work as you can."

Should cover open offices

</comment></comment><comment><USER13> This is also the manual for running a regular Dilbert type corporation :)

</comment><comment><USER14> As clear evidence as I've ever seen that the modern corporate state is truly a plot. :D

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

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

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

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

^ previous discussions

<comment><USER16> Click the "past" link above yields many more and saves you the trouble of searching and C&Ping these links. You're welcome.

<comment><USER15> Woah ... How could I have missed that?! Thanks

</comment></comment></comment><comment><USER17> Looks like Putin's winning strategy was an American export. How ironic indeed.

</comment><comment><USER18> Why publish this at all? It adds no value to society.

<comment><USER19> In a democracy, it is important for normal people to understand what our governments have done in the past, in order to know what they may be doing today.

Today, Venezuela is on fire. The opposition claim this is due to government ineptitude, and the government, at times, claims it is due to foreign interference.

If this sort of thing were going on, even if we agreed with it, our governments could not tell us that they were doing these things, or they would be less effective. So we must study history to understand what may be contributing to events around the world.

It might help us decide how to vote.

Though as demonstrated in the most recent US election, nothing really changes, just the wall paper.

<comment><USER18> I agree its important to know what the government has done in the past. What I disagree with is making all of that available to anyone with access to the internet. I just imagine 11 year old boys trying this stuff out on the school.

That is what you learned from the last election? What I learned is that people can be fooled very easily. And that they can not differentiate between a qualified candidate and a pompous narcissist. But that is just my opinion.</comment></comment></comment>


Unit testing, Lean Startup, and everything in-between - <AUTHOR> https://codewithoutrules.com/2017/03/12/software-testing-big-picture/ <comment><USER2> I can't believe that in 2017 we still need to discuss if the benefits of tests outweigh their costs.

Anyway, the article seems like a brain-storming session from the author, so I am not sure that I need to answer all the points. Those that stick out

1)As other people said already you always write a unit test against a spec. If you have no spec, then unit tests are not really helpful. When you prototype something you don't need unit tests. Most startups also would not need a vast test suite in their early stages

2) The company that had only UI tests forgot to make them resistant against ui changes. I don't know the tool they were using but most GUI tools support the Object/pages pattern. If the UI was changing so much that even that was not enough, then they did not have spec (see point 1)

3) A/B testing is not unit testing because by definition you don't have a spec (if you are still trying to find if A or B are ok)

4) Code review is not unit testing because you will catch only obvious stuff. Code review is more about the structure of the code than its correctness. It far easier to judge correctness by automation than by visual inspection.

Basically I would suggest you to remove the word "unit" from your blog post title.

Unit testing has a very clear definition and you are confusing it with code reviews, A/B tests and other unrelated stuff

google also "the testing pyramid" for a sound model of unit testing. The tax preparation company would do fine to follow this.

<comment><USER3> So you've got a working prototype, which is 80% of the way towards your spec (which changes by the day, mind you) where and when do the tests then get written? Do you start from scratch when you go from prototype to product? Is that feasible in a tiny lean startup with few developers and real hard fast deadlines?

<comment><AUTHOR> Going from prototype to tested code is possible.

Here's how I'm doing it, for command line tool that provides local development environment for remote Kubernetes cluster ([https://datawire.github.io/telepresence/](https://datawire.github.io/telepresence/)):

1\. Build prototype, test manually.

2\. Have coworkers try it out.

3\. Fix UX based on feedback, test manually.

4\. Once initial UX was nailed down, write end-to-end tests.

Beyond adding features, next I will rewrite the core using test-driven development (TDD), so that the internals are maintainable. and the end-to-end tests will ensure the basic functionality continues to work.

The UI is fairly simple, and at this point I have confidence that it won't change multiple times in a day, so it's worth the effort to stop relying solely on manual testing and write some automated UI tests.

</comment></comment></comment><comment><USER4> Unit tests are not really meant to test whether the code does what it's supposed to do initially, but more about making sure that it _keeps_ working when you're changing a bunch of stuff. For a pre-traction startup/MVP, the latter doesn't really matter. It will be the first version of the product, so there won't be a lot of changes. If the first version of the product gets traction, then it becomes interesting to write more tests.

<comment><AUTHOR> Exactly: unit tests provides Stable Functionality... and if you're rewriting everything once a week that's not useful.

If you have library code that won't get rewritten it should have unit tests, of course, since you want that to be stable.

</comment></comment><comment><USER5> As right as it may sound. This makes unbacked statements.

Waste of time? I'd argue that right amount of unit and other automated tests actually decreases time to market as it allows make changes to the software much quicker and push it to production with more confidence. Yes, at early stages, when it is not clear whether anyone needs the software.

Sure a badly written test suite only slows down development. Tests should be written so they would indicate breakage early and address unstable, complex, but highly used parts of program.

<comment><AUTHOR> Some automated test suites are inherently badly written: automated UI tests, for example, when the UI is rapidly changing. "Tests should be written so they would indicate breakage early and address unstable, complex, but highly used parts of program." Yes: if your UI is changing every two days your automated UI tests break every two days, with no knowledge gained!

For library code I'd use TDD, though.

UIs are more suited to human testing (though cost pushes towards automated testing once the UI is stable enough), APIs are more suited to automated testing. And if you're doing prototyping or usability testing you might not need either (you might not even need to write code, sometimes).

<comment><USER2> Effective UI tests use the page pattern and should be resilient against minor UI changes.

[https://martinfowler.com/bliki/PageObject.html](https://martinfowler.com/bliki/PageObject.html)

There are several testing tools that support this pattern.

<comment><AUTHOR> In initial stages of product development the UI can change much more drastically than just minor tweaks.

<comment><USER2> So the tax preparation company was still in the initial stages?

It isn't clear in your article.

<comment><AUTHOR> I'll clarify in future revisions, yes.

</comment></comment></comment></comment></comment></comment><comment><USER6> Tests don't always add time/overhead and I find quite the reverse true in practice, that by using a simplified version of TDD I write code faster than I used to. Writing new features/functionality in isolation while writing tests along side it to run it. Experience is probably also at play here as I've learned this habit after 20 years of programming, but when forced to write code in other ways (eg. working on legacy spaghetti code that resists this method) I find it takes significantly longer.

<comment><AUTHOR> For library code, yeah, I just TDD by default and I doubt it slows me down. Might speed things up. End-to-end tests... those are expensive, slow and brittle. Often necessary, though.

</comment></comment><comment><USER7> > The web-based user interface The UI was changing constantly, which suggests > Stable Functionality wasn't a goal. Correct Functionality was still a goal, > so the UI should have been tested manually by humans (e.g. the programmers > as they wrote the code.)

This sounds plausible right up until you realize that 1 out of every 3 production deploys breaks _some_ corner of your web UI, and you're always needing to scramble to fix the deductions table every time you change your basic popup widget. Or until you realize that you need a full week of time from two very skilled testers to make sure your UI actually works.

JavaScript UIs bitrot at incredible speed. Sure, if you're using TypeScript and Angular, you can maybe get away with a bit less testing. But in most cases it's a terrible tradeoff.

There's a huge comfort in knowing that _every single time you deploy your application_ , your basic signup flow and core features still work. You can accomplish this with very high-level tools like Cucumber in most cases. "Stable Functionality" is always desirable, and it allows you to develop _faster_ because you don't have to spend all your time terrified of breaking things and endlessly retesting them by hand.

Or you can keep breaking weird corners of production and getting upset because somebody made a mistake and annoyed an important customer again.

<comment><AUTHOR> If your UI is relatively stable, yeah. If you're redoing the UX every two weeks this isn't feasible.

There is no single right answer: it's all about tradeoffs. And in order to make those tradeoffs you need to understand strengths and weaknesses of each form of testing.

</comment></comment><comment><USER8> I have seen this opinion many times, in real life and online. I would say that if you have no users then yes, tests are optional. _However_ , once you have users that have certain expectations about how the system behaves, then you need automated tests to at least do your regression tests for you.

In terms of unit tests, the audience stops being the users, and starts being other developers. Good unit tests should do more than just check that a function/method works as expected, but provide a list of examples of how to use a method as well as noting the return types/exceptions/etc for other developers.

Using the author's example that even after writing Selenium tests the application is still buggy. There are several issues in just this one example:

1\. The application may be buggy, but did the business know about the bugs?

2\. If the business knew about the bugs, did users work around the problems or did they avoid certain features altogether?

3\. When the UI changes, yes, your Selenium tests may be expected to break. If a user expects to click "Next" and you changed that label to be ">", the test breaking is a sign you need to communicate something to the user either through change-logs or training.

At the end of the day, tests exercise and lock down behaviour of code. Whether behaviour and functionality is desirable, correct, or worth locking down is not a technical problem. Furthermore, your tests themselves are code, therefore some care must be taken to ensure your tests are valid too.

<comment><AUTHOR> You say "At the end of the day, tests exercise and lock down behaviour of code." That's exactly why tests can be expensive! If your UI is changing rapidly the tests try to lock things down when they shouldn't be locked down.

Sometimes you want stability. Testing for stability is worth doing then. Sometimes you _can 't_ have stability, and automated tests are just an expense.

It all depends on situation and goals.

</comment></comment><comment><USER9> This post makes an excellent point. I've been bitten both by not enough automated testing when a product has traction, and by spending too much time writing automated tests for a product without sufficient traction. Carefully treading this line is the essence of building a successful technology startup.

An interesting addendum might be: How to manage expectations when transitioning from the pre-traction to traction stages? How do you decide between adding new features vs. adding new automated tests to a system when things seem to be going well? "Technical debt management" might be another way of phrasing this conundrum.

<comment><USER10> Treading that line is the art of the science, to be sure, and I've found that the right amount of testing is the amount that will allow you to continue moving fast, even after hitting traction. Technical debt will slow you down, and just because you've hit traction doesn't mean you no longer have to stick and move to keep traction and be successful.

What's worse, failing fast in spite of your tests, or squandering your traction because your technical debt slowed you down?

</comment></comment><comment><USER11> This is progress from more dogmatic ways of thinking about testing.

One thing that would be interesting to explore is how things can change over time. Something that you thought would be stable may end up not being as stable as you thought. I feel this should factor in somehow.

Quality is a multi-pronged effort. It starts with the architecture, design, coding. As this says, the connection between testing and quality is vague. Testing can give you more confidence the quality is there or it can show you the system under test is of poor quality but it won't change one into the other. If you have something of poor quality, you do a lot of testing, you file a lot of bugs and fix them most likely it's still of poor quality. Testing definitely has a role in building high quality systems but on its own is insufficient.

This discussion reminds me a little of efficient frontier in portfolio management. There is some optimal mix of all your development activities just like there is a mix of different assets in your portfolio. The assets you pick and their mixture affect the probability distribution of the outcomes. Just like in portfolio management part of the problem is that the historic performance of these assets doesn't necessarily indicate future performance.

</comment><comment><USER12> Unit test in cases when it's the fastest way to test your code.

I find manual point and click testing is often cumbersome and slower particularly if you need to go through a few screens to test your feature/bugfix.

And always unit test at least your core functionality.

</comment><comment><USER13> Excellent article. A pragmatic approach to testing is usually needed to get a good cost/benefit ratio imo. This may include testing different parts of the system in different ways and also test differently over time. For example, it can be worth skipping automated tests altogether from start and then revisit a month later to add tests to parts that have now "proven" themselves to be useful and central.

</comment><comment><AUTHOR> BTW, I appreciate all the feedback, even people who disagreed with what I wrote: this will make my talk better. Thank you!

</comment><comment><USER14> I found the concept of unit testing useful _even when you don 't actually write test code_. Just thinking of making your code testable will already make it better, because you start caring about the clarification of specs and separation of logic, and so on.

</comment><comment><USER15> I thought that perhaps this article would get to the inspection of automated test suites.

</comment><comment><USER16> Excellent</comment>


Do we live in a computer simulation? UW researchers say idea can be tested - <AUTHOR> http://www.washington.edu/news/2012/12/10/do-we-live-in-a-computer-simulation-uw-researchers-say-idea-can-be-tested/ <comment><USER2> The scientific paper deals with "the hypothesis that the observed universe is a numerical simulation performed on a cubic space-time lattice or grid".

Just because the universe may operate with computer-like regularity and grid- like data structures does not mean "the universe is a computer simulation." At best it means the fundamental laws of physics are "computer-like".

Whether "resembles a computer simulation" equals "is a computer simulation" is a metaphysical/philosophical question.

Finding uncanny resemblance between our own reasoning concepts and the universe is not new - and this uncanny mirroring between abstract mathematical concepts and the laws of physics has been known for quite some time. It's a mystery, not an answer. See: "The Unreasonable Effectiveness of Mathematics in the Natural Sciences" by Eugene Wigner:

<http://www.dartmouth.edu/~matc/MathDrama/reading/Wigner.html>

<comment><USER3> Also.. if we _are_ a simulation, wouldn't those running the simulation see what we're doing and supply us with the correct results that we would expect?

They could just hardcode it..

<comment><USER4> Maybe they're not so bright or careful? Or maybe it's all happening too fast for them?

<http://lesswrong.com/lw/qk/that_alien_message/>

<comment><USER5> That was the most fascinating thing I barely understood a word of that I read in a long time. Thanks!

</comment></comment></comment></comment><comment><USER6> ArXiv paper: <http://arxiv.org/abs/1210.1847>

This work attempts to draw out the presence of a simulation by looking for tiny violations of known/expected symmetries, which is always worth doing. We should note, however, that an excellent simulation could exactly cover its tracks, lest the underlying architecture cause unintended artifacts.

From a CS perspective, the simulation's developer might create unit tests that guarantee the preservation of symmetries.

A theorist who develops an experimental test that could prove we do _not_ live in a simulation should be lauded. There are experimentalists (like me) just waiting for such guidance. John Bell's theorem [1] was/is a shining guidestar for physics.

[1] <http://en.wikipedia.org/wiki/Bells_theorem>

<comment><USER7> > A theorist who develops an experimental test that could prove we do not live > in a simulation should be lauded.

That sounds like they would be proving a negative, which is impossible to do.

<comment><USER8> That's a pretty silly statement. Surely you can prove that 1+1!=3, which is the negative of 1+1=3. You can also prove that pi is not a rational number, 1/2 is not an integer, etc. There's a post on the front page about attempting to prove P!=NP.

<comment><USER9> The typical formulations of all of those proofs are by contradiction, though—so it may be worth distinguishing "prove" from "demonstrate by proof".

<comment><USER8> Is there a distinction between proving and demonstrating by proof? I did a quick search (I'm hardly a mathematician), to quote Wikipedia:

> a proof must demonstrate that a statement is always true

It would seem that, if you can demonstrate a statement is true for a given logic, that is proof. Contradiction and exhaustion (which is a bit more controversial, I think), while less tidy than one might expect, are valid techniques for showing that a statement is always true, and therefore are valid ways to construct a proof.

Note: I encourage any and all maths professors to come and tell me off if I'm way off base.

</comment></comment></comment></comment></comment><comment><USER10> This strikes me as equivalent to researchers hundreds of years ago saying "well if our universe is a clockwork simulation then we should be able to detect the gears turning by this method".

Certainly interesting ... I'm not sure that we could currently understand a single principle of a system capable of simulating our universe.

<comment><USER11> Well yes, it is equivalent. And they looked more and more carefully, and never found tiny clockwork gears, so that was not supported by the evidence.

What they did find were abstract, mechanical laws of physics.

<comment><USER10> A more apt analogy would have been testing for a specific number of gears with a specific number of teeth in a specific configuration. Choosing very specific hypotheses purely based on your ability to falsify it and no other supporting theory or evidence seems like a low reward strategy.

I'm certainly not trying to argue against pure research in any way.

</comment></comment></comment><comment><USER12> No it can't. The simulation hypothesis will never be testable. All our assumptions about the hypothetical computers our universe runs on are based on things as they are in this universe. We have _no basis at all_ for applying these assumptions to the host universe. We don't know if the simulation runs on a discrete computer, a finite computer, or whether it resembles a Turing machine in any way. We don't know what kind of physical limits there are on computation, or to what extent those are even recognizable concepts, and that's just a few highlights. We have _no idea_ what it might be like up there, or what can be done.

And don't tell me about "likely", you have no data worth mentioning, in particular about "likely" physics or "likely" motivations of simulators.

</comment><comment><USER13> This idea is way older. Various mystics already envisioned the metaphysical structure of the world in such way (i.e. creation of reality through symbolic transformation - computational idea similar to Markov's algorithms).

See for example Taam Eytzo by R. Pinchas Eliyahu Horowitz of Vilna (18th century philosopher and mystic): <http://www.hebrewbooks.org/21931>

There are a few papers published on this subject:

[http://www.tandfonline.com/doi/abs/10.1080/01445340.2010.506...](http://www.tandfonline.com/doi/abs/10.1080/01445340.2010.506106)

[http://aleph.nli.org.il/F?func=find-b&request=000509568&...](http://aleph.nli.org.il/F?func=find-b&request=000509568&find_code=SYS&local_base=RMB01)

</comment><comment><USER14> If the universe is a simulation, what's to stop the simulation from recognizing that it's being tested and dedicating more resources to making the test result indicate that there is no simulation going on.

<comment><USER15> Isaac Asimov's 'The Last Question' answers that.

<comment><USER16> The Last Question is one of my most favorite short stories, and unless I'm completely missing something, has nothing to do with simulation.

<comment><USER13> Stanislaw Lem actually has a story precisely on this subject.

</comment></comment></comment></comment><comment><USER17> The assumptions in this paper are quite weak. It's like testing whether or not your code is running in a virtual machine. It can be done, but only if the virtual machine authors have made some glaring mistake.

Yes, computation is finite, but that doesn't mean that the authors of the simulation can't use more resources than usual simulating your test of the simulation. Not all parts of the simulation need to run at the same level of detail.

</comment><comment><USER18> Imagine, in the far future, you were able to to create a simulation that was so advanced that it could accurately recreate everything that has happened in the universe so far, so that it was an exact replica of history. Also, that there is a way which you can determine whether you are in a simulation or not. Assuming you are in the real universe, if you make this measurement, it will show false, however when your simulation reaches that point in history, the result would show up true, and reality and simulation would diverge. The only way to stop this would be to make a more advanced simulation that could not be detected with any method, or to have some part of your simulation check for when this test is made, and spoof the result...

</comment><comment><USER19> This assumes that reality is simulated using a grid, and particles are either in that cube or that one.

But that's not the only way to run a simulation - you can make the fundamental particles the building pieces and simulate them - they can move anywhere they want, in any direction, they don't live in a grid.

The only thing that matters is their relationship to the particles near them.

Which follows very nicely from relativity which shows that there is no absolute coordinate system, or absolute energy, only relative distances and relative energy differences.

i.e. like the difference between polar coordinates and rectilinear ones.

<comment><USER20> Also the simulation doesn't really even have to involve particles. Stephen Wolfram did some interesting writing on concept of our reality / laws of physics emerging from simple computational systems like cellular automaton [0]. Also Eliezer had some interesting points about how a continous interpretation of causal networks gives rise to some concepts we recognize from physics, like space, time and the speed of light binding them together [1].

[0] - <http://www.wolframscience.com/nksonline/toc.html>

[1] - <http://lesswrong.com/lw/fok/causal_universes/>

</comment></comment><comment><USER21> food for though (mostly offtopic): what if most simulations are actually _nurseries_ , run by our descendants as an alternative to mostly random procreation?

...I imagine that in a very distant and complex hypothetical future, the only way that super-intelligent beings could reproduce in a way that the offspring would truly be similar enough to their parents, so that they could feel empathy one towards another would be either by: (1) clone and mutate an existing individual (think mind-cloning, like software copying) and mutate, and (2) _create "children from scratch" and raise them, for at least a few "eons" in successive simulations of their parents or ancestors pasts_ (any other alternative, I'd imagine, in a post-singularity world evolving incredibly fast, would result in offspring so different from their parents that it would make empathy and the existence of a shared culture with shared artistic and aesthetic values impossible...)

...maybe we're just "babies" in the first level of a simulated nursery, waiting to complete the stages to "adulthood" in world of unbound, "software like", intelligent beings :)

EDIT+: ...just realized that this could be made up into pseudo-scientific pseudo-theory of reincarnation (which I don't believe in, but I find it interesting) ...if any buddhist or hinduist mystic reads this and takes my idea and does something intersting with it, please give me credit as original author :)

</comment><comment><USER16> Does it matter? Think about a simulation in a game on your PC. Nothing in that game actually exists outside the simulation. i.e. as far as anyone/anything in the simulation is concerned, the simulation is real. You cannot leave the simulation. You cannot end the simulation. There's nothing _unreal_ about the simulation for anyone in it.

<comment><USER20> It does. If the simulation is buggy, we could hack it and "get out of the box" :). See also: <http://lesswrong.com/lw/qk/that_alien_message/>

<comment><USER22> this happens when you die, universe segfaults, or it continues running in hell, limbus or heaven. depends on where it lands. hell has 9 rings. goal is to end up in ring 0 . heaven

</comment></comment></comment><comment><USER23> Has any smart 13-year-old not come up with the notion that the world might be a computer simulation?

</comment><comment><USER24> Me layman's hunch is that we would only be able to test this if either (a) the simulation is flawed, or (b) the simulation designer chooses to give us hints (perhaps more subtle than 'miracles' or revelatory visions).

</comment><comment><USER25> The mystery between DMT and brain chemistry is also a valid area to understand such an idea. DMT is a naturally occurring substance that's in the human body, animals and various plants. The mystery is that it is almost identical to serotonin and tryptophan.

But it is not like any other drug. It's almost unfair to call it a drug. Under its effects, reality looks radically different. You can see the math and inherent aspects within physical reality. With your eyes closed, the experience is even more profound.

Of course, it's likely just an artificial experience, a chemical delusion. But it an amazingly mystical experience, that can be duplicated over and over. It's unlike any other psychedelic and is the only scientific way I'm aware of that induces a "real" mystical/spiritual experience.

<comment><USER10> You listen to too much Joe Rogan.

</comment></comment><comment><USER26> I thought the more plausible theory is we are a projection of another dimension.

But pain and suffering seems far too real and horrible for any of this to be fake.

<comment><USER27> How is "fake" pain different from real pain? From my understanding, our neural correlate of consciousness is in fact a transparent self model simulation our brain is running, so in that sense all conscious pain experience is "fake". Or do you mean something else?

</comment></comment><comment><USER28> Why do smart people love to debate the most implausible nonsense? Time travel through singularities anyone?

<comment><USER29> While I don't know if it's actually deserving of the title "implausible nonsense", I think its important to remember that stupid is as stupid does, and same goes for smart. Someone isn't smart because they have the trappings of intelligence, its because they did something smart.

<comment><USER28> "its because they did something smart" So intelligence == 'achievement'? That makes no sense.

As for nonsense, ok I'll retract that, it is an interesting but highly implausible topic that gets a large amount of discussion relative to it's likelihood. It's actually just another way of phrasing "Does God exist?" If there was a computer (God) simulating this universe and controlling it, then it'd require a host universe for itself to exist, and it's complexity has to be greater than what it is simulating. Therefore it is less likely, and not by an insignificant amount.

<comment><USER29> I guess its true that you can't just equate intelligence with achievement. In my own life, I think I've increasingly used achievement where I used to use intelligence to gauge how 'smart' someone is. That comment was also trying to get at the annoyingly pervasive belief people seem to have that you must be smart because you are a mathematician, say. As an example, novices might think someone is good at basketball based on how they look on the court- but you wouldn't say someone is good unless they actually had a big positive effect on how often their team won. In general, I guess when I say smart, I mean "good" in some abstract sense.

</comment></comment></comment></comment><comment><USER30> Quantum Bogosort

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

</comment><comment><USER31> What would be the purpose of a simulation with so much pain and suffering. Where children get raped, flayed, abused, etc... And don't give me any of that matrix crap, that was only to make a flawed concept make just enough sense that you didn't fully think it through until the next bullet time scene. I'm certainly not on the outside paying for this. I have a degenerative bone disease that's caused me to have 6 major surgeries in 6 years. If this is a simulation, when I get out, I'm going to kill the son of a bitch that put me in here.

<comment><USER32> Very interesting that you can replace 'simulation' with 'God' and your statements are a perfect recitation of 'The Problem of Evil'.

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

<comment><USER33> The problem with applying that (very reasonable, in my opinion) argument to this discussion is that it invokes assumptions of benevolence, or even planning and/or intent.

Those things are largely irrelevant to the question of simulation. There should be no implicit assumption that a simulation must have any sort of "deity" behind it. Nothing with intent, purpose, planning, ethics, etc. It seems much more reasonable to me that such a simulation, if it is in fact the case, 1) arose "naturally", whatever that may mean, and 2) does not care about us. This universe, simulated or otherwise, does not care about humans. Why should we assume the proposed simulation does?

<comment><USER34> Well, the idea that the simulators care is the basis for the standard argument that we're probably in a simulation. After all, it's supposed to be posthumans running simulations of their evolutionary ancestors. I don't know why they would do that, but given that premise, why run simulations of your ancestors if you don't care about your ancestors?

Of course, that provides another answer to the problem of pain- that this is how it was the first time 'round, and they want the simulation to be _accurate_.

<comment><USER33> Is the simulation just of us though? Or is the simulation of a much larger portion of the observable universe? We naturally want to be important, but I don't see any particularly compelling reason to think that we are. I don't see any reason at all to assume that if we are in a simulation, it is being run by anything remotely resembling us (or used to resemble us), or indeed by anything at all.

Is that such a strange concept? The prevailing school of thought, if the universe is not a simulation, is that there is no mastermind behind it. Seems natural to me that we would assume the same about any universe simulator.

<comment><USER34> It seems to me that's kind of the defining feature of a simulation. If there's no one behind it, if it just _exists_ entirely on its own, then it is the natural universe, not a simulation. Even if it looks computationally-based, that's just The Unreasonable Effectiveness of Mathematics at work.

A simulation _means_ "someone made it". They may not be masterminding details of our lives, or our civilization, or even our solar system if they only happen to care about something completely different from that and incomprehensible to us, but nevertheless calling it a simulation implies that a creator at least exists.

<comment><USER33> You are just pulling that concept from the traditional definition of "simulation", but there is no particular justification for doing so.

If we detect evidence of what the author of the paper is calling a "simulation" (that is, our universe is being simulated in a 'meta-universe'), then we know only one thing about the meta-universe: It can simulate ours. We don't know that it supports some sort of "life" of it's own, contains anything with "intent", or contains anything like that at all. We do not know that there are meta-men in the meta-universe.

Perhaps there better terminology for such implications than saying a 'meta universe is _simulating_ our universe', but the fact that we are using that terminology in the meantime does not mean it is reasonable to make the assumptions about it that you are making. Just because we call our universe a "simulation" does not mean that there must therefore be meta-men.

(Also I do not understand the point you are trying to make about it being the "natural universe". If some sort of meta-man made a simulation that we live in, instead of the simulation arising through non-deliberate means in the meta-universe, is his meta-universe any less "natural"? Either way the meta- universe is "natural"; whether meta-men exist or not)

In a nutshell what I am saying is that we should not assume intent unless there is _evidence for intent_. Evidence for 'simulation' itself should not be misconstrued as evidence for intent; it would be evidence for nothing but 'simulation' itself.

</comment></comment></comment></comment></comment></comment></comment><comment><USER35> arxiv is not a peer reviewed journal</comment>


Labcss.net - An HTML/CSS snippet, allows direct visual manipulation of CSS - <AUTHOR> http://labcss.net

<comment><USER2> Seems similar to <http://webputty.net> , though WebPutty has CSS hosting, better integration with existing sites, and compatibility with SCSS.

That aside, what problem do you see this as solving? As in, why would somebody learning CSS by "playing around" (as you say on your About page) want to use LabCSS instead of Firebug or the Chrome debugger?

<comment><AUTHOR> First of all, webputty will not always be free. Second thing is, webputty is a website for CSS manipulation, whereas labcss is a snippet website for creating styled HTML elemments. The process of building the website is the significat advantage of this website, and not only the CSS tweaking.

</comment></comment><comment><USER3> It supports javascript but the problem is the whole thing is refreshed for every character you type. Example, adding "alert('foo')" will give you an alert for every character you type in the edit box.

Am I doing it wrong or is this supposed to happen? It could probably do with a run button like JSFiddle.

<comment><USER4> I would go for a check box to turn the auto update on or off. I love this feature.

Along with the selectors on the left and all the nice sliders, you can try out a lot of stuff really quickly.

<comment><USER5> I think the checkbox approach would be good.

Nice tool though. Easy to try out quick changes fast.

</comment></comment></comment><comment><USER6> I thought this was just a JSFiddle/JSbin type site for CSS but then I clicked on the generated HTML and realized what it lets you do. This looks like a great tool for learning CSS but I can't imagine myself pasting in some HTML/CSS and tweaking one thing at a time by pointing and clicking.

I'd still recommend checking out <http://jsfiddle.net> which lets you keep JS, HTML and CSS separate and makes it easy to include specific versions of JS libraries (handy for testing/reporting bugs). There's also a nice embeddable (iframe) version and it lets you test ajax responses. There's also <http://jsbin.com> which has similar features.

</comment><comment><USER7> I think the idea is really well executed so forgive my question: why would I use this instead of the built-in functionalities of chrome/firebug?

<comment><AUTHOR> Because it allows you to feed back the changes to your snippets immediately to the stylesheet.

</comment></comment><comment><USER8> Pretty cool, although I still don't understand how margin-top: 50%; moves the thing so far down ;) Damn you CSS!

<comment><USER9> <http://www.w3.org/TR/CSS2/box.html#margin-properties>

When margin top or bottom is a percentage, it refers to the width, not height, of the containing block. If the parent is 100% width (say, the body), the element will move down 50% of your screen width.

Usually, you don't want this, but you can use it to do some cool tricks with keeping the aspect ratio of an element, like this: <http://jsfiddle.net/bgrins/999FP/>

</comment></comment><comment><USER10> I have been using the bookmarklets provided by squarefree.com (<https://www.squarefree.com/bookmarklets/webdevel.html>) for about 8 or 9 years now. Cross browser, works on the current page, dead easy.

</comment><comment><USER11> "This Google App Engine application is temporarily over its serving quota. Please try again later."

:(

<comment><AUTHOR> Yea, didn't see it coming. Fixed now.

</comment></comment><comment><USER12> I don't get it. What are the advantages of using this instead of WebKit's Developer Tools or FireBug?

<comment><AUTHOR> Because changes are fed back to the CSS stylesheet. And it's a snippet website, apart from a design tool.

<comment><USER12> Chrome v13 can save the modified CSS file, it even has revision history.

</comment></comment></comment><comment><USER13> Already broken ?

Uncaught SyntaxError: <unknown message reserved_word> in HTMLFiddle.js:87

</comment><comment><USER14> It'd be neat if it could grab an existing page. Give it a url and start messing around.

<comment><AUTHOR> Cool feature, I'll definitely consider it but it's a bit difficult to execute properly because of image paths and remote javascript/CSS files.

</comment></comment><comment><USER15> The transparent blue overlays you get on hover break scrolling.

</comment><comment><USER16> Great use of open source resources!

</comment><comment><USER17> very cool..i like that it updates in real-time unlike jsfiddle where you have to click save.</comment>


Going blind and learning to love audiobooks - <AUTHOR> https://www.audible.com/blog/the-listening-life/among-the-blessings-of-blindness-audiobooks/?ref_=pe_3461650_266127620 <comment><USER2> I've been using Audible during for years, and I love it. I don't have time to sit and read for long periods, so audiobooks have definitely helped optimize my time.

During monotonous tasks, such as cooking breakfast, vacuuming, or driving on a long highway (when I lived in the US) I could easily finish a book a month. And generally those were 20-40 hour historical or classic books, not the short novels.

</comment><comment><USER3> A shout out to my favourite audiobook website, [https://librivox.org](https://librivox.org) . All free and open.

<comment><USER4> LibriVox is nice for some things, but almost every book I've tried to listen to from there had untrained amateurish narrators and editors with poor recording quality. I find them pretty hard to listen to compared to professionally produced books. IMO, a much better alternative if you're looking for free audiobooks is your local lending library. In the US you can often access library audiobook collections on your phone or computer with OverDrive.

<comment><USER5> Hoopla is another good one for books, music... Kanopy has a broad selection of movies too. All paid for by your tax dollars (not free!) so be sure and take advantage.

<comment><USER6> Many digital library services are paid based on usage, so increased borrowing may actually increase library costs in turn.

Not saying people shouldn't use services — just saying it's not a sunk cost like it might seem.

</comment></comment></comment></comment><comment><USER7> I'm a big fan of the android tts. A bit robotic, with quite a few prosodic errors (which is simple to get used to), but so convenient. No need to hunt for audiobooks - actually in most languages the size of the audibook market is rather poor...

I can switch easily from audio to reading, e.g. listening while walking to the bus, and if I get a seat then switch to read, and then back to listening etc...

<comment><USER8> With the rate speech synthesis is developing, it's probably going to be hard to distinguish between human speakers and synthetic speakers in a few years from now.

<comment><USER9> See [https://google.github.io/tacotron/publications/tacotron2/ind...](https://google.github.io/tacotron/publications/tacotron2/index.html)

And the HN discussion: [https://news.ycombinator.com/item?id=15962543](https://news.ycombinator.com/item?id=15962543)

<comment><USER10> I'm really looking forward to those actually being available to use.

<comment><USER8> I've just started to use AWS Polly in some demos, but the speech synthesis quality feels 2-3 years old at least :/

</comment></comment></comment></comment></comment><comment><USER11> As someone who grew up on printed editions I have trouble adjusting to digital editions. Now I have 3-4 boxes full of books which is a pain while shifting houses.

I tried ebooks but retention is an issue. So, taking notes has become a big priority.

Recently started listening to audiobooks but a lot of times I find my mind starts drifting towards unrelated topics. Are there any tips which can help focus my mind?

<comment><USER4> You might try increasing the narration speed. Many (most?) audiobooks are recorded at WPM comfortable for a narrator reading aloud for long periods of time but far slower than natural speech. Maybe your mind is wandering because the gap between words is too long for you to process aurally. Audiobook apps (like the Audible app, for instance) allow you to speed up playback without changing the pitch.

<comment><USER12> Frustratingly (for me) Audible only supports faster reading speeds on its mobile app.

Its webapp doesn't, neither does its Alexa skill, nor does iTunes (which is what it recommends if you download, since it can negotiate the DRM). Anything else requires ripping the DRM.

<comment><USER4> Many years ago I used to play Audible files on a 2nd generation iPod nano, and it supported speed adjustment for books too. That's still a mobile device, of course. But maybe it's an alternative? The only scenario I can think of where playing them in a mobile app is a problem is if you don't have a smartphone.

<comment><USER12> > The only scenario I can think of where playing them in a mobile app is a > problem is if you don't have a smartphone.

What a thought!

But yes, and in the context of partial sight / blindness, smart phones are not great for accessibility.

</comment></comment></comment></comment></comment><comment><USER13> If you're blind you can also get free audio books from the library of congress[1]. The selection is more limited than audible and you need a special reader, but it is free. My father who's blind uses both services actively.

1: [https://loc.gov/programs/national-library-service-for-the- bl...](https://loc.gov/programs/national-library-service-for-the-blind-and- physically-handicapped/about-this-service)

</comment><comment><USER14> Audiobooks have been a real help for me, especially Audible which makes everything very easy. My problem is with some narrators of non fiction books. Is it me ? Or some narrators are so bad that actually makes you don't want to listen. While the majority of them are good or acceptable, some are really painful to listen. Is like if you have a science book, and the narrator doesn't find it interesting, he/she will let you know.

<comment><USER15> You're not alone, the narrator is a very critical experience of listening to audiobooks. If the narrator's voice, tone, or style aren't appealing, it'll ruin the entire experience. The problem is that this is largely subjective - there won't ever be a narrator that'll make everyone happy but like you said, most are good enough with the occasional bad apple.

</comment></comment><comment><USER16> Audiobooks are great. You can listen to them while doing chores, commuting or having a walk. It is a pity that they are so expensive. I bet Amazon's monopoly has something to do with it. Podcasts, on the other hand, are worth what you are giving back to the creators via means like Patreon.

<comment><USER17> > It is a pity that they are so expensive.

Some of these books are over 40hrs long I listen to. My current book, Oathbringer, is 55hrs. I find the length and professional voice acting to provide more than enough value for the $15/month audible charges (hope I don't sound like a shill).

Certainly better than 2 movies a month, imo :)

edit: I do wish you got a free kindle version with audible purchase...

</comment></comment><comment><USER18> On iOS, [http://voicedream.com](http://voicedream.com) will perform high- quality, rate-adjustable TTS for most (unlocked) text file formats, including PDF and epub. Provides paid, good quality voices for many languages.

</comment><comment><USER19> While we're talking about audible I wanted to bring 2 things up.

1\. You can cancel and restart your membership to get a new token for $15/month.

2\. They recently added different portals for different countries. If you've been using the American portal (.com) like me, you may not have noticed your own countries. You should check it out, it may be cheaper. For example, the Canadian portal (.ca) charges $15 CAD a month which is cheaper than $15 USD.</comment>


Ask HN: How did the pandemic/economy crash/lockdown affect you? - <AUTHOR> We are as a family holding up pretty well. Having a house with a yard dampened the effects of a lockdown. I enjoy spending more time with the family. Lost about 10% of net-worth due to economic circumstances. All in all things are not too bad.<p>I am wondering how are others/other families coping with this. What kind of impact did all this have on your life? <comment><USER2> I'm mostly locked in my room.

Things that seemed not important now get me quite upset (like my roommate leaving dirty dishes in the sink or over using common spaces).

I'm still working, from home, so I spend the most of my days between my bed and my desk.

I'm starting to feel pain in my lower back in the morning.

I'm swinging between the idea of buying a place just for myself and the idea of going living in the woods.

I wasted quite a bit of money on delivery food in the first period. Now I'm spending very little.

I've had a period where I drank at least a can of beer every day. Now I stopped because that was getting out of hand.

I have very little to do besides work and maybe reading yet I despise and loathe phone calls. My relatives keep me on the phone for like 45 minutes every time. 45 minutes of nothing (because there's no big news really).

FUCK PEOPLE ARE LOUD. THE NEIGHBORS ARE LOUD. WHY DON'T PEOPLE USE HEADPHONES? WHY DO PEOPLE SCREAM AT ALEXA?

Lockdown is officially lifted but things aren't well enough yet. But I see people walking around with incorrectly worn masks and I have to try very hard not to lose my temper at such people.

When I go to the grocery store I often see old people (at higher risk) that could have asked for free delivery buying like 2-3 things. I get some unpleasant thoughts that I won't write here.

What impact has this had on my life? Probably makinflg me realize that space is super important. I don't want to share my spaces anymore. I want my own spaces. Fuck sharing a flat.

I'm generally carrying on, because I know that after all I haven't been infected (don't know really, I haven't been tested) and I got to keep my job (and salary). But I'm having an harder and harder time at keeping calm.

</comment><comment><USER3> Marriage put on hold. Honeymoon put on hold. First house put on hold. Yeah it sucks.</comment>


Show HN: Litenin – A light and fast feed reader - <AUTHOR> http://liten.in/ <comment><USER2> Are you up for some constructive criticism?

Something I noticed right off the bat: managing your rss feeds doesn't show you the whole URL you subscribed to. This is a problem for anyone who subscribes both to the posts and comments sections of blogspot blogs. After it makes contact with the site and pulls down the site name, you still have the same problem; both entries have the same name and you have no way of knowing which is which.

Maybe you should allow for somebody to click on the feed and be able to see and edit both the url and the site name?

Ok, it's fetched all my feeds now. All it shows is the title and the feed it's from. I love the simplicity of the list, but I need to be able to click on it and see the content inline. Maybe also have a "view all" button that expands everything for quick viewing?

<comment><AUTHOR> I agree, it is confusing not being able to differentiate between feeds with identical titles. I hadn't thought of this problem myself since I didn't encounter it.

With regards to the amount of information displayed, the initial idea was not to have any content/previews inside the reader, and just offer a list of titles that link to the actual content. Previews is a popular request, and I will definitely consider adding some text-only previews to start out with. I like the idea of the "view all" button.

Thanks for your feedback, much appreciated.

</comment></comment><comment><USER3> Really awesome.

No register, no account, no login? That is the best thing of the internet.

Here's a bug with the timestamp: [http://i.imgur.com/NiI6yF5.png](http://i.imgur.com/NiI6yF5.png)

<comment><AUTHOR> Thank you for the kind words and the bug report.

I tracked down the feed in the database, and it seems like Nimbus (the back- end for Litenin) read the published date correctly. The item was published ahead of time (it's 21:29 UTC time right now): [http://feed.dilbert.com/dilbert/daily_strip](http://feed.dilbert.com/dilbert/daily_strip)

Any suggestions on how to handle this in a more graceful way?

<comment><USER3> What if, for every date in the future, you showed a message saying "published in the future" instead of the date?

<comment><AUTHOR> Thanks for the suggestion. I have added it to the issue on Github: [https://github.com/bearfrieze/litenin/issues/10](https://github.com/bearfrieze/litenin/issues/10). Will look into it.

</comment></comment></comment></comment><comment><USER4> To be honest, it does not seem shockingly fast:

My browser console shows a last byte sent, first byte received delta of 18 to 48 ms. It's swift, certainly not shocking.

I don't want to sound cynical, it is a good work and works well all considered.

<comment><AUTHOR> First and foremost, "light" and "shocking" are references to the word which Litenin imitates: Lightning. I see a mysterious moderator has changed the title – I do not mind, but find it pretty curious.

When I started building Litenin I often found myself waiting several seconds for Feedly to load. My colleagues at work had desktop readers that were equally sluggish. In that perspective it seems rather fast.

I find that Feedly has improved significantly recently. I just loaded my feeds in ~1 second which isn't terrible considering it has a wealth of features that Litenin lacks.

</comment></comment><comment><USER5> I like it. Not perfect but minimalist as hell and indeed, very fast. Nice one.

</comment><comment><USER6> I really like the black and white design, is there a CSS framework or template for this?

</comment><comment><USER7> Not knowing which feed each heading is from is painful.

<comment><AUTHOR> That sounds very painful indeed. This is unintended – the title of the feed should be displayed to the left of the items title like this: [http://i.imgur.com/iqD1f0J.png](http://i.imgur.com/iqD1f0J.png). Would it be possible for you to attach a screenshot and/or a link to the relevant feed(s)?

</comment></comment><comment><USER8> Good but I want to "see more" button :)</comment>


Ask HN: Advice for those getting started in the Web Industry? - <AUTHOR>

If you were starting out in the web industry again, what advice would you give yourself?<p>Or if you're just getting started, what would you like to know? <comment><AUTHOR> I'd have given myself three tips:

      * Learn constantly. Read books, blog, tweets, attend events and network.
      * Build things. Apply what you've learnt and constantly build things. Either at work or as personal projects. Don't worry if the things you built are crap or pointless or un-monetizable.
      * Share. Constantly share what you've learnt and built. Help others. Join the community and participate. You could be the best developer ever but it won't matter if nobody knows about you and your work.

</comment><comment><USER2> Stop being a perfectionist, build something and get it out there as soon as possible. Don't waste time making sure everything is perfect. Better to lose a few people who get annoyed, than lose the 2-3 months w/o any users

</comment><comment><USER3> Although the first rule of a startup is build something people want (after PG) more and more that something should solve some "serious" problem (after O'Reilly).

Please - no more social networks!

Cheers

</comment><comment><USER4>
      * learn while/from doing
      * continuously learn
      * avoid planning paralysis
      * don't be afraid to scrap chunks of code or whole projects.

<comment><USER5> Agreed. Keep learning new things. Don't ever stop, but don't feel rushed if you feel you're behind. Someone out there is always going to be better and smarter then you at what you are doing

Engage people that are smarter then you (It's why I read Hacker News)

</comment></comment><comment><USER6> Do -> Read -> Repeat

</comment><comment><USER7> keep abreast of emerging tech and trends. stuff moves fast and it's very easy to fall behind.</comment>


Python Kafka Client Benchmarking - <AUTHOR> http://activisiongamescience.github.io/2016/06/15/Kafka-Client-Benchmarking/ <comment><USER2> kafka-python maintainer here. Our library is designed to be correct first, easy to use second, and fast third. It should not be surprising to anyone that using C extensions improves python performance. I have avoided requiring C compilation in kafka-python primarily because I've found that very few python users care about processing >10K messages per second per core (remember in python w/o C extensions you are generally bound to a single CPU, so spinning up multiple processes usually improves performance. see multiprocessing). I've also found the python infrastructure for distributing C extensions to be not easy (see goal #2 above). But that is changing! I would definitely consider leveraging C extensions for wire protocol decoding given the recent improvements to wheel distribution on linux. I'm not sure whether I would go so far as to delegate the entire client to a C extension. Part of the fun of python is that you can play with all of the guts at runtime. I've found users are very willing to hack up kafka-python internals to help debug issues. I dont think I could expect the same community involvement if it was all distributed as a complied C extension. But I could be wrong.

Anyways, always fun to read benchmarks. I hope kafka-python makes someone out there smile. That's the best benchmark in my book.

<comment><USER3> Distributing Python +C extensions are easy with Conda.

[https://conda-forge.github.io/](https://conda-forge.github.io/)

</comment></comment><comment><USER4> My team at Parse.ly also did a benchmark comparing pykafka (pure Python) to pykafka with the librdkafka C extension enabled. That C module is clearly a huge win for Kafka consumer/producer performance on Python and other dynamic languages.

[http://blog.parsely.com/post/3886/pykafka- now/](http://blog.parsely.com/post/3886/pykafka-now/)

Unfortunately, as the OP illustrates, there are now 2 widely-used Python + Kafka drivers (pykafka and kafka-python), and as of recently, a third, confluent-kafka-python, which is a thin wrapper over librdkafka.

The reason there's all this fragmentation is because Kafka was quite the moving target for non-JVM languages for the past three years. We have used it in production since Kafka 0.7, so we've had to live through it all blow-by- blow. I'm hoping that with Kafka 0.10 recently released, we can finally unify the community around a single driver (somehow).

<comment><USER4> @dkfp Apologies for that, I did not mean to mis-characterize. PyKafka also goes from 0.8 => 0.10. I had assumed kafka-python recently switched to be 0.9-only due to all the changes related to consumer groups.

<comment><USER2> No apology required. Though note that pykafka requires >=0.8.2 , and is only forwards compatible w/ newer brokers. This means that pykafka implements the 0.8.2 feature set. Newer brokers support that feature set, but you are not taking advantage of 0.9 or 0.10 features if you connect to them. kafka-python, on the other hand is both forwards _and_ backwards compatible. It supports all feature sets: from no offsets in 0.8, to zk offests in 0.8.1, to kafka offsets in 0.8.2, to group management in 0.9, to message timestamps and relative- offset compressed messages in 0.10. The feature set to use is chosen based on the broker version we're connected to. As far as I know, no other client supports this approach -- not python, not java, etc. [Though KIP-35 should open this up to other clients for backwards compatibility starting at 0.10]

<comment><USER5> Pykafka does currently have support for 0.9 group management, and we intend to add support for message timestamps and the other new 0.10 features. We're not, however, detecting the broker version and turning on features on that basis. Instead we prefer to let the user explicitly enable the features they're interested in using.

</comment></comment></comment></comment><comment><USER6> I ran a couple of Kafka client benchmarks using Python, Jython and Java and got pretty interesting results. Check them here: [http://mrafayaleem.com/2016/03/31/apache-kafka-producer- benc...](http://mrafayaleem.com/2016/03/31/apache-kafka-producer-benchmarks/)

<comment><USER7> Would have been interesting to add the c-wrappers in there, but still cool. Thanks

</comment></comment><comment><USER8> Ah this reminds me of one of the very most tricky bugs I ever tracked down: [https://github.com/dsully/pykafka/pull/15](https://github.com/dsully/pykafka/pull/15)

<comment><USER9> You have my condolences.

</comment></comment><comment><USER10> After a quick glance, first thing that strikes me is using docker for measuring network bound application performance. Across different versions docker handles networking differently and by default it may have quite significant impact on your results, good example comes from percona guys [https://www.percona.com/blog/2016/02/05/measuring-docker- cpu...](https://www.percona.com/blog/2016/02/05/measuring-docker-cpu-network- overhead/) I wonder what would results be without using docker, or using docker with --net=host

<comment><USER11> I guess some performance testers just don't know what they are measuring, in this case: the overhead of docker of the performance of the Python code. To be fair it is hard to understand a whole system performance. I would love to see a test without Docker though.

<comment><USER12> Original author here. The docker network point is a good one, I'll give it a try with host network.

There is still value with comparing different clients with the same network constraints. Yeah it is a contrived setup(noted in the post), but at least is the same contrived setup for each test.

</comment></comment></comment><comment><USER13> Has anyone tried much with the aiokafka library for asyncio ([https://github.com/aio-libs/aiokafka](https://github.com/aio- libs/aiokafka))?

</comment><comment><USER14> >I ran these tests within Vagrant hosted on a MacBook Pro 2.2Ghz i7.

Good ole laptop benchmarks</comment>