Ask HN: What do you think about business cards? - <AUTHOR>

A few days ago I found myself sitting at a table with a school board superintendent. After overhearing her describe a project that she wanted to begin, I introduced myself and gave my best elevator pitch for a related product that my company has been working on.  I'm leaving out the details of the exchange because they're not pertinent to this question.
Either the pitch was good or she was just being polite but whatever the reason she immediately asked for my business card.
I live in a (very) remote community and have few face-to-face interactions with potential customers so business cards haven't been a priority for me. Although I ended up emailing her the next day, a card would have come in handy at that moment and I was left wondering if perhaps having a few cards at my disposal might be a good idea.
How do others feel about the use of business cards in the modern context?  I can see them as a very useful tool in certain markets but I'm wondering if other small companies or contractors continue to carry them for those 'just in case' circumstances. <comment><USER2> Yes, it's one aspect of your marketing ...

Look at the problem and solution. You meet with somebody. You both want to maintain contact. You need to exchange some information to realize that goal. You could get each others cell phone number, scribble a URL on a piece of paper, etc. Each one of those is awkward to some degree and scraps of paper do get lost quickly or become indistinguisable from all the other scraps of paper.

Enter the business card, you could make it like a mini-brochure - not only have your contact details on it, but also the key points of what you do, etc. Easy to hand over and should remain more distinctive than some scrap of paper or a hasty entry in the cell phones address book.

From experience I find that having a blank and uncoated rear allows me to scribble further pertinent information for the person I'm giving it to.

</comment><comment><USER3> Business cards are so cheap now. As someone else mentioned, Vistaprint and check the 'free' section (not free but cheap). I have many different versions of my business cards. One is a generic 'me' card with just my name, contact information and the URL to a generic landing page on one of my sites. Then I also have a card for each of my projects (about 2 right now).

Cards are like a resume... old tech. We in the high tech industry know they're dead and know there are tons of way better alternatives, but they're still a basic requirement for doing business.

Go get 250 cards from vistaprint, it'll cost you less than $30 probably. Generic cards with a blank back are always nice because you can write a URL on the back for someone.

</comment><comment><USER4> They are useful when you meet business people, developers just google you or ask for your twitter/github/linkedIn/whatever.

Based on my own experience, it's better to have a few high quality business cards than tons of low quality ones, especially if you only hand out 1-2 every week. I got mine dirt cheap but they looked awful and were embarrassing to hand out. Select quality paper and an elegant template design and you're set (resist the temptation of designing the business card by yourself at this stage, this process can literally take weeks/months with all the design options available).

<comment><AUTHOR> Ya, this is my thinking also (i.e., not designing it myself). I know a few very capable designers and will likely enlist the services of one of them.

I can tweak an existing design (barely) but my visual originality begins and ends with stick figures.

</comment></comment><comment><USER5> My co-founder and I ordered business cards just a few days ago from vista print. I think we paid about $50 for 250 cards. We opted to make our own card so that we could have our branding on the cards as well as our info. I think springing for cards makes sense if you're in the early stages and everyone you meet has the possibility of being useful to you in some way. If you're already established and doing well, you probably don't have to worry much about it.

</comment><comment><USER6> I had some made a few years ago. Got like 500 cards for $10 or thereabouts. I think I've handed out around three of them. But no matter, it's very conceivably a useful thing to have, and it costs so little that it's hard for me to justify not having cards.

</comment><comment><USER7> Depends on what you are doing. If you are doing sales with brick and mortar establishments then I believe the answer is "yes".

They are pretty cheap. Hell, you can even make your own..

</comment><comment><USER8> Look at that subtle off-white coloring. The tasteful thickness of it. Oh my God, it even has a watermark!

<comment><AUTHOR> Haha. Classic. Thanks for that flash back.</comment></comment>


Facial recognition is insecure, slow, and a wasted effort... for now - <AUTHOR> http://www.extremetech.com/extreme/108417-facial-recognition-is-insecure-slow-and-a-wasted-effort-for-now

<comment><USER2> Please be informed about the advances before believing in the shoot from the hip comments made in this post. The best and easiest way to do this (albeit a bit dated) is the NIST Face Recognition Grand Challenge results (<http://www.nist.gov/itl/iad/ig/frgc.cfm>). You'll see the _tremendous_ advances and increase in accuracy in FR achieved recently.</comment>


TIS-100 Tessellated Intelligence System - <AUTHOR> http://www.zachtronics.com/tis-100/

<comment><USER2> Zachtronics Industries makes incredible engineering games. I haven't tried this one (though plan to tonight), but if this looks interesting to you, definitely check out some of his older work.

Ruckingenur II in particular is interesting. It places you in the role of a hardware reverse engineer, tasked with tinkering with circuits for anything ranging from basic electronic locks, to the copy protection on the Gamecube, with the goal of bypassing different security mechanisms. It's a really novel game.

You can play it for free here: [http://www.zachtronics.com/ruckingenur- ii/](http://www.zachtronics.com/ruckingenur-ii/)

<comment><USER3> I also have to suggest another one of their early, free games, KOHCTPYKTOP, which focuses on building integrated circuits: [http://www.zachtronics.com/kohctpyktop-engineer-of-the- peopl...](http://www.zachtronics.com/kohctpyktop-engineer-of-the-people/)

<comment><USER4> Would that read as "constructor" in latin characters?

</comment></comment></comment><comment><USER3> Looks cool, and I've enjoyed Zachtronics games before. I wish the demo video was longer and gave a better idea of the gameplay, though. I might throw the $7 at it anyway to find out.

I've had a vague desire for a game like this lately. I wasn't really around for the early computing era (my first computer was a 486), but I've played with the old machines and learned a lot of the history. There's a special kind of fun to be hand with them, and a sort of peace in working with their simplicity. They offer an oasis from the ever increasing complexity around us. Like the peace one gets from working on a garden; it's still work, but the work is simple, rewarding, and just for your own benefit.

My desire went so far as to build and tinker with my own game. It was to be like Elite, but you pilot your spaceship using only a Commodore 64 esque computer. You had to program everything for it. There were no flight controls or anything, instead you wrote programs to control the thrusters how you wanted, control weapons, drive the radar and plot the detected objects on the screen, etc. If you wanted keyboard controls of the thrusters, you made a program for that. And I had plans to add inter-ship modems so you could build scout ships with automated scouting programs that send back their data.

It was HTML5+JS based, and I got it to the point of having a working asm.js 6502 simulator, various peripheral hardware, MS BASIC, thrusters, radar, and a solar system to explore. But I got busy and had to stop. One major roadblock was that BASIC was terrible at all the register banging required to write most of the needed programs. So to make it "fun" I would have had to bring up a respectable DOS-like OS, a C compiler, and a code editor.

I really loved the idea though. It had all the fun, cool, retro elements of working on a C64, combined with the fantasy-lore of space adventures. My head swam with neat ideas like adding radiation dangers which could begin flipping RAM bits; interacting with space stations using your on-board modem so that all the Elite-like markets were operated like old BBS software; wormholes that gave you access to alien systems with powerful but undocumented peripherals; etc.

<comment><USER5> > I wish the demo video was longer and gave a better idea of the gameplay, > though. I might throw the $7 at it anyway to find out.

Just spent about an hour and a half playing with it. What isn't obvious from the video is that the resources at each compute node are _very_ constrained. You only get one accumulator register, and one additional "backup" register that isn't directly addressable. Furthermore, the size of each node's program is limited to 15 instructions (and _comments count toward that limit_ , for extra evilness).

The result is that the learning curve is pretty steep. For the first few levels, the problems are simple enough that you have a lot of flexibility in how to implement a solution. But once the problems get more complicated, you have to start getting creative in how you split the work across processors. It's actually more comparable to designing a pipelined CPU than it is to assembly language, IMO.

I just spent over half an hour coming up with a solution for level 7. It's a pattern-matching problem that superficially looks very simple: on a real computer, you could easily solve it with a finite state machine. But here, that program is considerably too big to fit into a single node -- and state machines aren't known for being easy to parallelize. I finally solved it by (rot13'd for spoilers) znxvat guerr pbcvrf bs gur vachg fgernz, srrqvat rnpu pbcl gb n abqr gung frnepurq sbe bar bs gur guerr cnggrea punenpgref, gura pbzovavat gur erfhygf jvgu gjb vafgnaprf bs na "naq" tngr gung unf n qrynl ba bar bs vgf vachgf. I ended up needing 297 cycles, which is about in the middle of the histogram; clearly there are more efficient approaches, but I haven't figured them out yet.

<comment><USER3> > It's actually more comparable to designing a pipelined CPU than it is to > assembly language, IMO.

In a way, yeah. But the 6502 was also quite constrained, and early systems further constrained it (e.g. the Atari 2600 only have 128 bytes of RAM). I think this game does a good job of emulating the amount of creative thinking programmers had to have to deal with the limits of those early machines. And the game does so while keeping things simple so you aren't spending your evening glazing over a 300 page 6502 programmer's manual.

Regarding level 7, definitely a tough one! I ended up making what looks like the first solution with 4 nodes and 22 instructions. It's possible to cram the logic into one node, with some misc. decoding in a second and the other two as just transports.

Back to your point, this isn't exactly like working with older, consumer computers like the Apple II, mostly because of the parallelism. I think that's because of Zachtronics' other games which involve a lot of data-driven, parallel engineering. Still fun though; well worth the $7.

</comment></comment></comment><comment><USER6> I remember when I first installed Omega for the PC. [http://en.wikipedia.org/wiki/Omega_%28video_game%29](http://en.wikipedia.org/wiki/Omega_%28video_game%29) I thought it was the greatest game ever made at the time. However, it was too easy to optimize and win. If I ever decided to create a game, I was definitely going to do something along the lines of a programmable battle simulator. This is a long winded way to say that I'm VERY glad to see Zachtronics making games which assume there is a market for gamers who enjoy programming. I hope to see more like this in the future. Side note: Just purchased this on Steam. Looking forward to cracking it open.

<comment><USER7> Omega on the C128 was my first taste of programming after basic. Hacker/Hacker II were also some of the most fun I've had.

<comment><USER8> I tried the game but the game doesn't want to authorize my code even with the simplest example: _Turn Tank Left 3_. Do you have an example that works?

<comment><USER7> Its been over 20 years. You might need a start label before your commands. But I really don't remember that much about the language, at least not without setting up a copy.

</comment></comment></comment></comment><comment><USER7> I'm glad the time between Zachtronic games is shorter now.

</comment><comment><USER9> Wow, Steam really made this painful. I bought the game, only to find out it doesn't run on my platform. No refunds! Beware, I guess.

<comment><USER10> If you've not run it at all, contacting Steam support (yes, painful) has apparently got a fairly good chance of getting you refunded. (Also you only get one refund / one refund per $lengthy_period)

</comment></comment><comment><USER11> This sounds more like work than a game.

</comment><comment><USER12> Too bad it's Windoze only.

<comment><USER13> Run it in wine, thats what I'm doing till the official OSX release comes.

<comment><USER12> If you're saying it works with Wine (which OS X version?), I'll do that. Unfortunately, only a fraction of games work with the combination of [Wine, OS X version] that happens to be my current system. Games that work with Wine in 10.6 won't in 10.10.</comment></comment></comment>


Top reasons why Darth Vader was an amazing project manager - <AUTHOR> http://www.geekwire.com/2011/top-10-reasons-darth-vader-amazing-project-manager

<comment><USER2> Was he Six Sigma certified? A Black-Belt? These things are important you know!</comment>


DotLisp – A Lisp dialect for .Net - <AUTHOR> http://dotlisp.sourceforge.net/dotlisp.htm <comment><USER2> Few people know that Clojure was not the first lisp worked on by Rich Hickey (I think Clojure was the 5th?). This was the last one he wrote before he started work on Clojure.

<comment><USER3> What were the other 3?

<comment><USER2> You know, I forget now. It was a trivia question at Clojure/Conj 2012.

<comment><USER4> "Only" two others, AFAIK, Jfli and FOIL:

[http://jfli.sourceforge.net/](http://jfli.sourceforge.net/) [http://foil.sourceforge.net/](http://foil.sourceforge.net/)

Both were (are? I can imagine people are still using them, Jfli in particular) interop libraries, not languages. FOIL is basically an RPC mechanism between a Common Lisp process and a JVM or CLR "host". JFli makes it reasonably easy to embed a JVM within a Common Lisp process, and thereby create Java objects from CL, call methods, and provide callbacks to Java methods written in CL.

(That's all IIRC, it's been a long time.)

I remember using JFli briefly during my later CL experimentation. Its model is very similar to jpype, which provides similar functionality for python, which was at the time my first committed step away from Java as my primary (production) language.

The prize was a sweet nylon set-up-anywhere hammock, BTW. I think Stuart was mildly irked that mine was the only hand that was up, but I thought the hammock looked neat. :-)

</comment></comment></comment></comment><comment><USER5> > I'm not a Lisp expert. Helpful suggestions are always welcome.

> ©2003 Rich Hickey, All Rights Reserved

I was amused.

<comment><USER6> How things change.

Rich Hickey is a genius. A nice man. A practical man. A modest man. A role model for our industry.

<comment><USER7> Genius is a little strong in my opinion. Still an intelligent and talent man I'm sure.

In my opinion he has made some questionable decisions with Clojure.

\- Gratuitous use of [] in some forms; mainly defn and let. Why break the homonicity so often for no real benefit?

\- Comment strings appearing before argument lists in functions. I would like to see the entire protocol, name and args, before reading the docstring which may refer to the args.

\- List? predicate... (list? '(1)) => true (list? '(1 2)) => false ...

\- Multi arity functon, the main justification in the documentation is due to JVM limitations, JVM limitations like these can be hidden by the hidden by the guest language [http://clojure- doc.org/articles/language/functions.html#mult...](http://clojure- doc.org/articles/language/functions.html#multi-arity-functions)

These are just my superficial opinions of Clojure, I am still very much at the beginning of my journey in learning the language.

<comment><USER8> "\- Gratuitous use of [] in some forms; mainly defn and let. Why break the homonicity so often for no real benefit?"

[] is an array data type, () is a list. Code and data are still the same.

<comment><USER9> Clojure code is surprisingly hard to edit for a Lisp-like language. The gratuitous use of square brackets where a Lisp would just use parentheses is part of that.

Omitting the parentheses inside those square brackets, however, was an even worse decision wrt editability. When you can't edit a sequence of syntactically homogenous items by simple s-expression manipulations, your Lisp's design is defective.

</comment></comment></comment></comment></comment><comment><USER10> > It is substantially more sophisticated than DotLisp and I strongly recommend > it, unless you must target .Net.

> The idea behind DotLisp was to build a Lisp for .Net that yielded to the CLR > those things provided by the CLR that languages normally have to provide > themselves:

Is the author aware that Rich also implemented ClojureCLR? [http://clojure.org/clojureclr](http://clojure.org/clojureclr)

I'm curious how DotLisp improves on the situation provided by clojureclr, especially since "It is substantially more sophisticated than DotLisp".

It might be "sharing type system, GC and other runtime services etc., with transparent access to .Net w/o a FFI or wrappers", I am note sure if clojureclr requires wrappers whereas DotLisp doesn't, but I imagine it would be similar to how Clojure proper integrates with the JVM.

<comment><USER11> The author is Rich Hickey. This was a project of his before Clojure, and he just never updated the page after Clojure became available for the CLR.

<comment><USER12> I was really surprised to read that

> ClojureCLR development closely tracks progress in the ClojureJVM project. We > index many of our commits directly to commits in the Clojure repo, so it > should be easy to track our progress. We try to be within a week or so of > development milestones on the main Clojure project. > [https://github.com/clojure/clojure- > clr/wiki](https://github.com/clojure/clojure-clr/wiki)

I thought ClojureCLR had been abandoned after Rich Hickey started working on ClojureJVM.

Bug tracker: [http://dev.clojure.org/jira/browse/CLJCLR](http://dev.clojure.org/jira/browse/CLJCLR)

<comment><USER13> > I thought ClojureCLR had been abandoned after Rich Hickey started working on > ClojureJVM.

It actually was abandoned, and then someone else came along and picked it back up.

</comment></comment></comment></comment><comment><USER14> where you will find developers to support project written by DotLisp in real production, it's just for fun, not for anything else.

</comment><comment><USER15> What about F# and Nemerle? Why you need another lisp?

Oh this article dates 2003, that is why.

<comment><USER16> Nemerle and F# may be functional, but neither is a lisp. One big difference is that this is a dynamic language, whereas F# and Nemerle are static.</comment></comment>


Show HN: DIY Digital Room Correction - <AUTHOR> https://th0ma5w.github.io/DIY-Room-Correction/ <comment><AUTHOR> I made a comment in passing about doing this [https://news.ycombinator.com/item?id=22262965](https://news.ycombinator.com/item?id=22262965) and had the most upvotes I've had in a while (hah) so here's a write up about it. Let me know just how naïve I was being.</comment>


Ask HN: Question about salary expectations, raises, and bonuses - <AUTHOR> Howdy,
What can one expect as a raise/bonus if you are happy with your employer and prefer not to hop between companies?
I work for a largish (200+ programmers) Canadian company as a software developer and it's nearly that time of the year for performance review and the accompanying raises.
Where do you turn to for accurate salary information? The rumor mill says that in recent years we can expect a 0-5% raise in salary depending on job performance and how well the company did that year. Does being a new graduate with less than a year of experience change anything? I haven't been working here for very long (~10 months) but become significantly more productive/valuable each week. For tasks which do not require intimate knowledge of the legacy codebase I feel I am at least as productive as most of the more senior developers on the team but my salary is still below the industry average.
According to the 2009 Alberta Wage and Salary Survey, (best resource I've found but still fairly vague) Albertans in the Computer Programmers and Interactive Media Developers occupational group earned from $16.83 to $113.22 an hour. The average wage was $38.17 an hour. Say I start at ~$25/hour. How much experience will I need before I can start to expect making the 'average salary'? Perhaps it is more of a meritocracy where whoever is the most productive is rewarded?
Another question: Word on the web is that companies like Google and Apple don't compensate well, but all evidence I've seen says otherwise. How to explain this discrepancy? It was only last week that a very large number of people on Reddit and HN were discussing how challenging it is to break 6 figures as a developer. Based on what I've seen the tech giants (Google, Microsoft, Apple et al) actually seem to offer the highest compensation in the industry. A handful of companies like Netflix do pay better, but the work environment seems to be much less relaxed.
I have no plans to leave but more information is better than less. Thanks! <comment><USER2> Every employer look at performance differently. Beyond the ability to code as a software developer, what other personality and characteristics do you display that meet other requirements that make you invaluable beyond your ability to write code. Writing code is one thing. Writing great code is another. Then add onto that the ability to contribute beyond just writing code is something entirely different. When you add all those factors together, raises and how much they increase vary a LOT even with known ranges within a given company much less comparison within an entire industry in any given city.

<comment><AUTHOR> I think you are right. I've worked hard to keep a list of ways I've added value to the corporation. My most valuable contribution (from a dollars and cents perspective) has not been any bug fix or feature but rather stumbling across a program/organisation which subsidizes partnerships between academia and industry. We're hoping to hire 4 graduate students for a new team so if we offer a salary of $50k the company only shoulders half the amount. The potential savings of 100k is well over what the company is paying me....

</comment></comment><comment><USER3> In my experience: the only way to get significant salary increases (say, from 80 to 120, or from 120 to 150), is to change employers, or being promoted into a different role, with the very real possibility of you leaving (ie. being "re-hired").

It's almost impossible to get a significant raise while staying in the same position.

Salary is NOT based on merit.

In your case, your best chance is to get an actual job offer from another employer, be prepared to walk away from your current job, and then talk to your boss and tell him you have a much better offer and are leaving, unless he can promote you into a new position (you can just make that up), where you make much more.

</comment><comment><USER4> > _"How much experience will I need before I can start to expect making the > 'average salary'?"_

Assuming that "average" refers to median, half of all people earn less and therefore there is a significant chance that you may never earn it.

<comment><USER5> That's not necessarily true. If salary increases over time, you would expect him to hit median halfway through his/her career, on average (assuming rate of new programmers joining and old ones leaving is about the same). Of course, if more are joining and the population is increasing, s/he could hit it a lot sooner assuming s/he doesn't drop out.

<comment><USER4> I guess the truth value depends on what one considers "a significant chance."

</comment></comment></comment><comment><USER6> Significant bumps in salary (across most spectrum's, not just programming: BA's, PM's, etc.) typically occurs when leaving for another company, not staying with the firm for small percentage increases over 5-10 years. The programmers I found making the least amount who "seemed" to be as or more competent ($85k vs $110k as an example) normally were at large shops for 7-15 years.

However, a few years of experience at a large shop can facilitate that jump.

Related discussion on negotiation / salaries: <http://news.ycombinator.com/item?id=2201407>

</comment><comment><USER7> I can't speak to a lot of your direct questions. However, when researching salaries of your company and trying to determine if you are being paid market rate, I've always found Glass Door useful.

It's all user generated and breaks the pay down into salary, commission, bonuses, etc.

<http://www.glassdoor.com>

<comment><AUTHOR> Glassdoor is great but seems less useful when the city/company is small and lack data points. Large companies like Microsoft and Google are like a revolving door (in the sense that many people come and go) and many employees who are willing to share compensation information.

<comment><USER7> I worked for a company around the size of yours (~150) and they had enough data points to give me a ballpark figure about pay.

Though it's definitely not the same as the big guys, to your point.

Wish I had more constructive feedback! Sorry.</comment></comment></comment>


NVIDIA Marbles at Night real-time raytracing demo - <AUTHOR> https://youtu.be/NgcYLIvlp_k <comment><USER3> Very cool, but what I'd like to get a straight answer on is whether or not _all_ lights/materials in this scene are ray-traced. Some things like the marbles' reflections obviously are, but there are lots of tricks that could be played to minimize the amount of other raytracing in the scene. On the other hand, if a scene with this high of a poly-count is 100% raytraced, that sets a dramatically higher bar than what's come before (the best that I've seen previously was the Quake 2 demo).

Edit: To be clear on what I mean, for those who haven't been following this stuff, most "real-time raytracing" that's started to crop up in real games over the past couple years has been limited to only a subset of lights/materials. A particularly shiny shield, a campfire, etc. And then the rest of the scene is rendered the traditional way. Even with Nvidia's dedicated hardware we can't (yet) just slap raytracing on an entire game and call it a day. But this demo makes it look like we may be much closer to that goal than I'd thought.

<comment><USER4> It's all path traced (with denoising and DLSS upsampling I think).

The poly count is much less impressive than the number of different materials and number of light sources.

<comment><USER3> > The poly count is much less impressive than the number of different > materials and number of light sources.

Is it? The basic tracing algorithms I'm familiar with scale linearly with the number of polygons (minus whatever can be culled out), and don't really care about the number of materials (other than for memory usage I guess) or light sources (because the rays come from the camera). I do know that for edge cases like refraction some more advanced algorithms will do partial forward-tracing from the light sources, so maybe that's what you're referring to. Though I didn't notice any refraction in this demo (it wasn't a big focus, at least).

<comment><USER4> All raytracing algorithms are based on some spatial subdivision structure (usually BVH based) which gets you O(logN) instead of O(N). Increasing poly count only gets interesting when you figure out how to compress truly huge scenes into a limited memory footprint.

Lots of different materials are difficult for GPUs because of divergence - <USER2> every ray spawned from a surface scattering event hits a different material you've lost all parallelism.

Lots of lights: Evaluating them all for a given surface scattering event is obviously an O(N) problem (for 10 lights no big deal, but what about thousands?), so you want to choose some small subset of "important" lights to consider. Making that choice is a hard problem because the correct choice depends on the product of the incident radiance from the light, the BSDF at the surface as well as the visibility function. There's a lot of interesting research being done on this (Path guiding by learning the incident light field or its product with the bsdf, new sampling techniques, spatio-directional acceleration structures) at the moment.

<comment><USER3> Got it, that makes sense

</comment></comment></comment></comment></comment><comment><USER5> I get that this is really meant to be a technical demo, but in a way its more art than most modern art is art.

</comment><comment><USER6> This is a absolutely mind blowing. Imagine this connected to a VR headset.

<comment><USER7> At the seemingly low framerate already, rendering this 2x for VR could be nausea-inducing, though it appears that it's rendered at 4K so 2x 1080p should be more practical.

<comment><USER8> Might be possible with foveated rendering</comment></comment></comment>


How does it feel to get fired (lose your job) suddenly? - <AUTHOR> http://www.quora.com/Firing/How-does-it-feel-to-get-fired-lose-your-job-suddenly <comment><USER2> I hate Quora as it forces people to sign up just to even read the content. I could just remove the DOM element in the inspector but I shouldn't have to. So I shall post my reply here.

I once got fired from a job unexpectedly. and it was terrible, It not only meant I had no income to pay the rent etc. But all my direct debits bounced causing more debt and the benefits in the UK took about 4 weeks to kick in after I had to jump through hoops and hoops.

I found myself slightly depressed for about 2 weeks, not moving from my bed and sleeping most days. Luckily I run a blog that kept me active-ish and I slowly pulled out from my stupor.

<comment><AUTHOR> Wow, I didn't realise that Quora has its own register-wall. I will refrain from linking to it. This is a shame as it does some interesting bits of info.</comment></comment>


Inbox is the Trojan Horse for your personal AI - <AUTHOR> http://solveforinteresting.com/inbox-is-the-trojan-horse-for-your-personal-ai/ <comment><USER2> The problem is Google doesn't have access to the vast majority of corporate email out there. So while Inbox is enormoualy clever in my personal life, and when dealing with anything work related that I forward to it (like travel itineraries), its otherwise useless in a work setting where productivity matters most.

As an aside, if this kind of thing is all the author thinks admin assistants do, they clearly have never actually worked with one. And don't get me started on his claim about replacing middle managers...

<comment><USER3> My company and many others do use Google for Business. But Microsoft has the upper hand here.

</comment></comment><comment><USER4> I can't get into gmail anymore. Apparently, the correct login & password isn't enough. anyone else have this? So, i've abandoned it altogether.</comment>


Ask HN: What should you focus on in the first 2 weeks at a new company? - <AUTHOR> Hi,
I am starting my position as a software engineer at a big company next week and would like to know what to focus on for the first two weeks at a big company.
Previously, I worked at a small dev shop for 3 years and have never experienced working at a large corporation before.
What advice would you give for navigating bureaucracy, getting promoted, networking in company, etc. <comment><USER2> Listen carefully to what the people in the company are telling you: how things work, who are the people who can get things done, etc. (For some of the political stuff, you may have to read between the lines.) Don't try to stick your two cents in to impress them with how much you know - just listen to what they have to say.

Also, people like it when you actually listen to what they have to say, so you might end up making some friends this way.

To get promoted, you'll need to have a good relationship with your direct manager, since you're not likely to get promoted unless he or she says good things about you.

</comment><comment><USER3> Make sure your are friendly to your colleagues. They know how to navigate through the company. They are also the ones who will give your manager feedback about how you are doing, as it is not unreasonable your manager is not able to assess that by him/her self.

Ask someone higher up to be your mentor.</comment>


Show HN: Thinc, a new deep learning library by the makers of spaCy and FastAPI - <AUTHOR> https://thinc.ai/ <comment><USER2> I've been working on various versions of Thinc for a long time --- it's always been the name for the machine learning code powering spaCy. But previous versions really weren't worth using for other developers, and so I never wanted to advertise the library as something people should use.

The new version's been mostly rewritten, and this time, my feelings are different :). There's honestly a lot here that DL people should find interesting, even if you're not really looking for new tools atm (which is very understandable).

If you first learned deep learning by using PyTorch and TensorFlow, you might find Thinc to be an interestingly different perspective. The backpropagation mechanics are much more exposed, but functional programming means managing the gradients is little trouble.

It's also a great way to try out Python's new type annotation features. We designed the library to use type annotations, and have pretty detailed support for numpy semantics.

Other nice features include the config system and the wrappers system: you can use models from external libraries as part of a network, and wire different frameworks together. The idea behind Thinc is to work in conjunction with current DL tooling. We want to avoid providing our own optimised engine, making the library much more lightweight and compatible.

<comment><USER3> I'm going to try this simply because spaCy is so great. It's my goto for NLP in different languages (notably German) and a joy to work with.

</comment></comment><comment><USER4> Damn, SpaCy and FastAPI, not to mention Prodigy, make up a huge percentage of our teams development stack. It took us a while to even realize that tiangolo and syllogism work together, but there was definitely a moment of slack jawedness across the team when this became clear.

Having built SpaCy from source, Thinc was something I've dealt with in passing before. Needed to look over some of it's source for debugging briefly, but never paid a whole lot of attention to it. This is basically a complete overhaul and it's beautiful.

It blows my mind how productive this team is. ExplosionAI and the SpaCy compatible model implementations from HuggingFace are basically responsible for a _huge_ amount of practical progress in making modern NLP models quickly and easily accessible. Now a general development framework, that frankly makes TF Keras and PyTorch pale in comparison wrt simplicity, is absolutely astounding. Congrats everyone on the release!

Now I need to go back to packing up my apartment and ponder how I'll ever approach this velocity and quality.

<comment><USER5> I'm entering a phase where this stack may play a big part. Have you written up any of your experiences? (Or are you open to emailed questions?)

<comment><USER4> I actually have a draft write up of what I've tentatively termed a "default prototyping stack for data science" but that focuses less on SpaCy/NLP and ML frameworks in general and more on effective methods to produce simple applications that consume your model output, partially via FastAPI actually.

I'm happy to answer questions to the extent that I'm able to though. Feel free to contact me via any of the methods available in the link on my profile.

</comment></comment></comment><comment><AUTHOR> FastAPI creator here.

If you've used FastAPI you'll probably like Thinc.

It uses Python type hints extensively and even includes a Mypy plugin. So, you'll get nice and clear errors right in your editor for many operations that before were Numpy/Tensor "black magic". All before even running your code.

And you can wrap TensorFlow, PyTorch, and MXNet with it, mix them with Thinc layers, etc.

<comment><USER6> Just for clarification, is it like a Keras replacement?

<comment><USER7> But Keras does not support PyTorch or MXNet. I think the design of Model, Block, and Layer like this is very intuitive and shared among several frameworks. I wish it could have multi-GPU/multi-node training capability (i.e. support horovod or gloo).

</comment></comment></comment><comment><USER8> I must be missing something but this looks more complicated and confusing than plain PyTorch.

</comment><comment><USER9> Interesting project! How does the type system work with variadic types and arbitrary tensor manipulations? e.g. a function transforms tensor[A, B] -> tensor[A].

<comment><USER2> The best answer is, "with some difficulty". I've written a bit about the struggles here: [https://thinc.ai/docs/usage-type-checking#model- types](https://thinc.ai/docs/usage-type-checking#model-types)

There are basically two approaches, TypeVar and overload. You probably want TyepVar if you have exactly that sort of situations, but there's a lot about type vars I still don't understand, and the docs say almost nothing. The problem is the responsibility is kind of split in two places: the Python typing module doesn't really take any responsibility for usage, and mypy sees it as not mypy-specific, so neither describes it very well.

Our current solution is to avoid being fully variadic in the tensor type, and instead have a limited number of subclasses. This allows us to get by with overload, because we can enumerate out the set of argument-to-return mappings. This is especially important for the numpy API where you often have to overload on the types and values of other arguments, e.g. if you pass axis=(0, 1), you'll get a different rank of tensor back than if you had written axis=-1.

You can see the gory details of how I've done the numpy types here: [https://github.com/explosion/thinc/blob/master/thinc/types.p...](https://github.com/explosion/thinc/blob/master/thinc/types.py#L260)

<comment><USER9> Thanks for the detailed reply and the links!

</comment></comment></comment><comment><USER10> how does it compare to Tensorflow, Keras, PyTorch ?

<comment><USER11> ... and fast.ai?

</comment></comment><comment><USER12> So no custom CUDA kernels, just CuPy? Isn't that a performance issue? (Based on installation notes)

<comment><USER2> You can write custom CUDA kernels, and I've written a few to support operations over our ragged format. Actually Thinc makes it pretty easy to optimise a specific bit of code with a custom op...cupy's fused decorator can also work well in some situations.

What you don't get is the compile-time auto-optimisation. Like, there's no asynchronous dispatch like you would get from PyTorch.

If you write a chunk of operations as just cupy maths, and then write the same thing in PyTorch and use the PyTorch wrapper, you can expect the PyTorch one to perform better. You would also need to write the backprop callback for the cupy maths you did. Sometimes you might find optimisations PyTorch doesn't though, especially around speed vs memory trade-offs.

Part of the philosophy and difference between this and other frameworks is that we do not do any compilation or trickery of any sort: what you write is what gets executed. Obviously this is slower a lot of the time, but it means we can play well with others --- we're not wrestling for control of more of the graph so we can make more optimisations, and we're not limiting the hand optimisations you can do for custom situations.

Here's an example of how I've wrapped CUDA kernels, using Cupy's RawKernel feature. Most people do these as strings within Python source, but I find that super ugly. I like to keep the cuda source in .cu files, and then read in the file to compile it.

* The CUDA kernels: [https://github.com/explosion/thinc/blob/master/thinc/backend...](https://github.com/explosion/thinc/blob/master/thinc/backends/_custom_kernels.cu)

* The code that calls cupy.RawKernel and the wrapping functions: [https://github.com/explosion/thinc/blob/master/thinc/backend...](https://github.com/explosion/thinc/blob/master/thinc/backends/_custom_kernels.py)

* The wrappers are called by the CupyOps object: [https://github.com/explosion/thinc/blob/master/thinc/backend...](https://github.com/explosion/thinc/blob/master/thinc/backends/cupy_ops.py#L70) . This object has the same API across backends, with some functions redefined with backend-specific implementations. In the NumpyOps object, I instead call into custom Cython code.

My CUDA skills aren't great, so I'm sure there are improvements that could be made. I'd welcome suggestions if anyone has them.</comment></comment>


A Formally Verified Interpreter for a Shell-Like Programming Language - <AUTHOR> https://hal-univ-diderot.archives-ouvertes.fr/hal-01534747/document <comment><USER2> FWIW I posted just posted a comment on lobste.rs with a preliminary comparison to my project, [http://www.oilshell.org](http://www.oilshell.org) .

[https://lobste.rs/s/fi6lax/formally_verified_interpreter_for...](https://lobste.rs/s/fi6lax/formally_verified_interpreter_for_shell)

In short there are a bunch of similarities and similar engineering work as far as I can tell, but I'm not done reading the paper.

The paper is from this summer, but I didn't know about it until nickpsecurity posted it today! Hat tip to him.</comment>


List of programming languages that do not use semicolons - <AUTHOR> http://sigkill.dk/writings/semicolons.html <comment><USER2> Since I'm too lazy to write a mail: Scala has optional semicolons (they are infered).

<comment><AUTHOR> Thanks, I added Scala. It looks like it's common programming style to use semicolons in various places, though.

<comment><USER2> I don't use scala professionally, that said I have never seen semicolons actually being used. For examples apache/spark, lightbend/play-framework, typelevel/cats, the scala compiler itself etc.

But maybe there are edge cases where they are required. I don't know.

</comment></comment></comment><comment><USER3> What about Python?</comment>


Should the minimum wage be raised? The economic debate, explained - <AUTHOR> https://www.vox.com/future-perfect/2019/11/20/20952151/should-minimum-wage-be-raised <comment><USER2> Not surprisingly vox cites the most contested study ever on minimal wage by Krueger.

The law to rise minimum wage was scheduled to come into effect months ahead of actual law taking effect. Fast Food restaurants had time to lower employment before. Actual study wasnt taking that into effect</comment>


Ask HN: Unflagging? - <AUTHOR>

When reading HN on my phone, I occasionally tap on the flag link in a post when wanting to click on the link itself (sorry, thick fingers). Is there a way to cancel the flagging if done in error? <comment><USER2> ... just click on "unflag" that replaces the "flag"?

</comment><comment><USER3> After you click 'flag' it should return you to the same page, with 'flag' replaced with 'unflag'. Tap that and you're good.</comment>


Computational science: ...Error - <AUTHOR> http://www.nature.com/news/2010/101013/full/467775a.html?ref=nf <comment><USER2> Lots of good advice for scientists in there. The only new info for the typical CS grad is the utter lack of _any_ programming training in most scientific disciplines.

This is pretty classic:

> "To all scientists out there, ask yourselves what you would do if, tomorrow, > some Republican senator trains the spotlight on you and decides to turn you > into a political football. Could your code stand up to attack?"</comment>


Using fish to study depression - <AUTHOR> https://www.nytimes.com/2017/10/16/science/depressed-fish.html <comment><USER2> I inherited a betta fish from my friend who traveled too much. She kept him in a 1 gallon tank. He always "seemed" depressed, always staying inside his little house thing. So I made it my mission to try to make this fish as happy as I could.

It never felt quite right to keep him in such a small space, so I bought a 5 gallon tank, and put in a (fake) plant. After the initial shock of the new environment, he seemed to really like his plant and I'd sometimes find him hiding between the leaves. But still to this day he rarely swims around. He still spends most of his time inside his house, though I every so often find him playing up at the top. 95% of the time he's stationary inside his house.

Next I'm going to try introducing some vines that hang down from the top to see if that coaxes him up. But it all makes me wonder if fish can incur long- term trauma or depression. Who knows how long he sat on the shelf of the pet store in a tiny cup? Did it affect his mental health? Or is it simply his "personality" (fishonality?) to be a homebody. I sure am.

I don't know, but this article kind of vindicates my train of thought.

<comment><USER3> How warm is the tank?

If you don't have a heater with the tank temp at 78-80 they might just be cold.

Source: planning a 15G betta tank right now :)

<comment><USER2> I do have a heater though I haven't had to use it because the tank thermometer is always within 75-80. Our house is usually very warm!

The investigation continues.

<comment><USER4> You still need a heater to prevent temperature fluctuations, fishes hate it when the temperature jumps around. Also, here's a great source of information on how to care for them [https://www.fishlore.com/Profiles- Betta.htm](https://www.fishlore.com/Profiles-Betta.htm)

</comment></comment></comment></comment><comment><USER5> I would be depressed too if I lived in a fish tank/bowl...

<comment><USER6> Would you be? Depends on:

      1. Were you born in the fish bowl, or did someone place you in it after you grew up?

      2. If the former, were you ever given a chance to leave the fishbowl and experience different life?

My hypothesis is that living things can't be depressed about stuff they are unaware of, since depression is a relative state rather than an absolute state.

<comment><AUTHOR> And this is why we see happy PHP programmers--they've never seen anything else.</comment></comment></comment>


Mobile applications, RIP - <AUTHOR> http://mobileopportunity.blogspot.com/2008/02/mobile-applications-rip.html

<comment><USER2> As someone who develops mobile apps for a living targeted at industrial markets, I would amend that headline to read:

"Mobile Consumer Applications, RIP". I'm sure the authors comments are spot-on in the general consumer market (which seems to be his area of expertise), but the custom, industrial mobile app market is alive and well. Admittedly, most of the companies involved are large beasts and move slowly, so I'm still developing for Embedded DOS and older Windows CE versions, but the market is quite healthy.

</comment><comment><USER3> What the hell was the point of those charts? I couldn't make this up... he said, "Here's a chart to help explain the situation," then he showed two graphs with no figures on them whatsoever based on data that he pulled out of his ass. Then he spent two paragraphs talking about these charts. He could have just as easily related the same idea without showing pseudocharts.

That gripe aside, the article was quite solid, but it failed to mention the business implications. If a mobile provider was smart enough to open up its devices, create an API for developers, and allow that API to be used for free by any device manufacturer, that provider would see an influx of new devices, app developers, and customers. Other providers, wanting to enable these applications on their network (and maintain their customers) would be forced to open their devices as well, devices with the same API layer. Problem solved; mobile apps everywhere.

Instead, in the US at least, providers continue to try to lock every customer into a two-year contract to keep them from leaving, instead of relying on their quality of service.

</comment><comment><USER4> Hm. It seems like the mobile space is following the same path as the PC space. Phones (like PC's) are tending more towards thin client status. As soon as Android and Webkit are up to snuff with rich web apps, we will be seeing mobile phones in a whole new light.

</comment><comment><USER5> Yeah just develop mobile internet sites - forget the java apps for now

<comment><USER3> Forget the Java apps for now? I would forget them for longer than that. Java is not particularly optimized either for programming or for the OSes of mobile phones, and it's losing market share in the programming world to other language alternatives. If there is a "next mobile language", it will either be something akin to the C/Unix paradigm (where the interface between language and OS/hardware is a thin layer), or it will be high-level enough to be worth its runtime inefficiencies. The best case would be that it would be both, and someone would write a compiler which would convert the latter to the former.

<comment><USER6> Two words : google android.

At least emulator looks ok, we have yet to see actual devices.

</comment></comment></comment><comment><USER7> This is my biggest fear with Hecl. Hecl makes mobile apps easier, putting them within reach of people who aren't Java whizzes, but the web makes it easier still.

However... people are still worried about connection charges, and phones _are_ getting more capable, to the point where you can do some fairly interesting things on them, like with Android.

<comment><USER8> "people are still worried about connection charges"

Don't count on that for too long. Over here, the web didn't take off on a massive scale with broadband, but with the introduction of flat rate subscriptions. Mobile web flatrates are a reality already. Next, carriers might compete on price for their flat rates. At some point, connections charges might become a non-issue.

<comment><USER9> My wife's iPhone has free unlimited data, not-free text and mobile-to-land- phone minutes. Guess how she harasses me to pick up our daughter or buy specific groceries?

FWIW, I've rarely seen such a brilliantly executed electronic device in my life. I thought it was outrageously overpriced -- now I'm wondering if it isn't a halfway decent deal for the interface and capabilities of the thing.

I continue to carry the cheapest Motorola piece of shit that will accept my SIM card, but I'd be lying if I said I didn't envy the iPhone.

</comment></comment></comment><comment><USER10> The iphone might yet change this.

<comment><USER9> The iPhone is driving the change he writes about -- the mobile Web, instead of mobile-specific Java apps (for example).

It strikes me as a colossal ''duh''. Would any of us be here reading this site if Paul Graham hadn't had a similar insight with regards to selling shit (via the Web) in 1995-96?

<comment><USER10> I meant native apps on the iphone. A lot of people are looking forward to the SDK.

<comment><USER11> I'm not so sure it matters TBH.

What can you do in a native app that you can't do with some javascript and a pretty webapp these days :/

The days of native apps is ending. On the desktop, on mobile phones, everywhere.

<comment><USER12> Save energy? IMHO it matters a lot!

Javascript-based apps are bad enough on desktop, I don't want to have them in my mobile device.

<comment><USER11> I'd rather be able to use the same app on my phone as I do on my desktop, as I do in an internet cafe, as I do on my wii, etc etc.

Webapps are the true "Write once run anywhere".

</comment></comment></comment></comment></comment></comment><comment><USER13> Great post!</comment>


The Bitcoin Roundtable Consensus Proposal – Too Little, Too Late - <AUTHOR> https://medium.com/@barmstrong/the-bitcoin-roundtable-consensus-proposal-too-little-too-late-e694f13f40b <comment><USER2> Does anyone have a start-to-finish recap of this whole debate? It's difficult to understand for people without the adequate context.

<comment><USER3> This article is reasonable and discusses many of the issues at play:

[http://www.coindesk.com/making-sense-block-size-debate- bitco...](http://www.coindesk.com/making-sense-block-size-debate-bitcoin/)

Ultimately, you have to understand Bitcoin, and what it could be, to understand the debate, and I really don't think that's an exaggeration. This debate is so complicated and so vitriolic because it gets at the core of what the technology will become, and how that future will come about.

Some of the key issues at play:

* Is BTC more like digital gold, a settlement layer, a payment processor, or some combination of all of those things? For a given goal, what would an effective implementation look like?

* Small blocks allow for fewer transactions, but have very modest network and hardware requirements. Bigger blocks permit more transactions, but could encourage centralization as technical requirements increase by incentivizing co-localization of mining (e.g. behind Chinese firewall), discouraging node operation, etc. What is the right trade-off?

* Transactions aren't free. Limiting the network can create a fee market, but high throughput with low fees could also fund mining after block rewards.

* Who decides? Do we seek user consensus (miners? node operators? protocol devs?)? Is a competitive market for protocol implementations part of Satoshi's vision?

There's so much ideology tied up in Bitcoin that it becomes very difficult; different people want fundamentally different things. A conservative approach might be to leave Bitcoin much as it is, and tie in new protocols on top of it (sidechains, lightning network, etc.). Others feel that 'what they signed on for' is different, citing Satoshi's remarks about how the network would scale and how hard forks would create economic consensus.

What I find heartening is that even the threat of alternative implementations (XT, Classic, etc.) seem to be having an effect on the Core team. We're seeing a market for ideas, and the technical reality that a simple majority can take control, or else split the coin. Some people find this worrying (and certainly this is warranted), but I want to see it tested; dash it against the rocks and see how strong Bitcoin is.

At any rate, the transaction rate continues to increase, so the issue is approaching a resolution one way or another.

<comment><USER4> Excellent summary. Conflicting business interests are probably playing a non- trivial role in the acrimony as well, e.g. limiting the block size makes solutions from businesses like Blockstream a bit more compelling whereas businesses like Coinbase and Bitpay would probably like to see many many more cheap transactions on-chain sooner vs. later.

</comment></comment></comment><comment><USER5> > That solution was written and reviewed by two former core devs (including > the former lead of the project) so I believe it is a high quality option.

I assume this is a reference to Satoshi. If this is such a big deal, why not pony out Satoshi to share his opinion?

<comment><USER6> He's referring to Gavin.

<comment><USER5> I have no idea if he is or isn't, frankly. And, apparently, having an assumption on HN is now worthy of downvotes.

<goes off and randomly downvotes people for assumptions>

<comment><USER7> Satoshi hasn't been known to have uttered a single word since 2010 and thus it can't have referred to Satoshi. Further the idea that one can simply ask Satoshi for his opinion, when he's disappeared for more than half a decade is also quite silly, unless you're completely uninvolved in bitcoin any know next to nothing about it. I assume that's why you were downvoted, because your suggestion adds nothing meaningful to the discussion and shows you lack some basic topic-specific knowledge and so it makes sense for your post to be less visible.

At least that's my assumption, I didn't downvote.

<comment><USER5> Satoshi is believed to have said something in 2014 regarding Dorian [1]. It would be reasonable for someone in the community to reach out to him and ask what he thinks. While they are at it, they should ask him about hard fork avoidance too.

Back to the point at hand, I still have no idea who Brian is talking about in his post. And, if one were to think about that in an uninvolved and meaningless way, perhaps it might add to the discussion.

[1] [http://p2pfoundation.ning.com/forum/topics/bitcoin-open- sour...](http://p2pfoundation.ning.com/forum/topics/bitcoin-open- source?commentId=2003008%3AComment%3A52186&xg_source=activity)

<comment><USER7> Nobody really believes that was him, all it takes is a forged email to write that.

People reach out to him every day and he hasn't responded in half a decade.

And he's referring to Gavin (former lead) and Garzik. Look it up if you want.

</comment></comment></comment></comment></comment></comment><comment><USER8> You can almost hear the beeping noises as they back the truck up to block the exponential growth curve.

<comment><USER9> If only that were the biggest problem. A far bigger one is big blockers wanting to expose Bitcoin to increased risk of catastrophic ruin at the protocol level to service the more expedient commercial concerns of a few big businesses that have bet their future on no/low tx fees.

Bitcoin is not a payment network, it is digital gold, and any attempt to make it competitive with Visa, Paypal, or Western Union puts the whole project at greater risk of failure. A $10 or similarly large fee to move gold around the world instantaneously is miniscule for the value conferred, especially when that digital gold can reliably serve as an alternative global reserve currently roughly as viable as the USD but with no central issuing authority. That kind of value is not cheap, easy, or free, and cannot be achieved while also compromising its design parameters in favor of expedient commercial concerns.

<comment><USER4> Yeah, interesting attempt at revising history there but the title of the email which debuted Bitcoin to the world was titled: "Bitcoin P2P e-cash paper." It was _designed_ to eventually compete with Visa, Paypal, etc. See also: [http://satoshi.nakamotoinstitute.org/emails/cryptography/2/](http://satoshi.nakamotoinstitute.org/emails/cryptography/2/)

<comment><USER10> The bitcoin blockchain simply won't do that. Lightning network might. Satoshi was a brilliant guy, but got a number of things wrong as well. (Namecoin for example)

</comment></comment></comment></comment><comment><USER10> Brian is sounding so desperate lately. His opinion here just doesn't matter very much as the blocks belong to miners, not him. Frankly I'm encouraging everyone to pull their money out of coinbase right now, as the risk of a Brian -induced fork is non trivial, and his custody of your coins is probably not a risk you should bear

<comment><USER4> This is FUD. You contradict yourself with your own statement. If any fork happens it would require a super-majority of hash power to support it -- the fork would be considered canonical Bitcoin and there would be no problem and no loss of funds. It's even questionable calling it a "fork" as there really wouldn't be a material side-branch.

<comment><USER10> Seems like you agree that the miners are in charge here. You read the Bram Cohen criticisms of classic vs core coin?

<comment><AUTHOR> Post it.</comment></comment></comment></comment>


Ask HN: It's 2018, tabs or spaces? - <AUTHOR> <comment><USER2> Spaces. Tabs are invisible and mess stuff up if mixed with spaces.

</comment><comment><USER3> Well... [https://ukupat.github.io/tabs-or- spaces/](https://ukupat.github.io/tabs-or-spaces/)

<comment><USER4> I love how some people use 3 spaces.

</comment></comment><comment><USER5> Both. Tabs for indents. Spaces for alignments after the indent level is reached.

Everyone can view code with their preferred indent width. Perfect solution with no flaws or drawbacks. Maybe 1 drawback, it requires advanced tooling (emacs smart-tabs-mode) to automatically handle the indentation/alignment.

Indent width is a visual effect. Mandating an indent width with hard spaces is like mandating the color scheme.

</comment><comment><USER6> Let's not do this again.

</comment><comment><USER7> Spaces, now and forever.

</comment><comment><USER8> Both!

[https://www.emacswiki.org/emacs/TabsSpacesBoth](https://www.emacswiki.org/emacs/TabsSpacesBoth)

</comment><comment><USER9> tabs, so everyone can choose their own display width

</comment><comment><USER10> Whatever the rest of the team uses. For personal projects: whatever is idiomatic for that language.

</comment><comment><USER11> Spaces. Your editor should convert the tab key to spaces.

</comment><comment><USER12> Spaces</comment>


Continuous low-power music recognition - <AUTHOR> https://research.google.com/pubs/pub46522.html <comment><USER3> ...this doesn't seem like it is at all worth giving up 1% of battery life. I don't think it's even worth giving away 0.25% of battery life to detect whatever the 70k songs stored in the database is, nor is it worth the space the database is taking up on the device. The question of "what song is this" comes up maybe once a month at best, and apps like Shazam already exist and have much deeper databases to search through. In other words, it does a worse job than existing solutions and uses power constantly.

It feels more like yet another solution looking for a problem. Worse, it _screams_ like a foot in the door for telling users it's okay for microphones around you to always be listening, ala Amazon Echo. It also weakly smells like it'll immediately be used to send packets of what songs were listened to and similar frequency info off-device to be collected by the Google Big Data machine to be sold to RIAA members, as yet another way of extracting ad dollars from Android.

<comment><USER4> I would argue that it's not worth my 30 seconds to unlock my phone and open Shazam (which btw turns on the display and the radio, which then triggers other apps to poll for notifications, so there goes your 1%)

I would also bet the database is probably not much bigger then the shazam app itself.

I frankly just find it a well balanced solution both in terms of UX and in terms of engineering.

<comment><USER3> > it's not worth my 30 seconds to unlock my phone

It takes me ~4 "seconds" (saying "one-one thousand" aloud) to do it when typing in a password (sorry, don't have a stopwatch handy). Just did it 10 times just to test. It'd be even faster with pin/fingerprint/face unlocking, or with no locking at all.

I also used Shazam and Google's "what song is this" feature for somewhere less than 5 minutes on the initial few seconds of 10 songs and my battery indicator didn't move a single percentage during my testing. Shazam scored 10/10, Google missed one (a song from an esoteric Chicago band called Terminal Bliss - <USER2> of the songs I chose were intentionally fairly obtuse to try to find missing info in the databases).

But I can say with fair assurances Google's not shipping their entire database on phones, just whatever's most popular up to some (probably size driven) limit; any given CD releases with about ten songs, any given year sees tens of thousands of CD releases (about 75,000 albums in 2010 alone). Worse, the entire feature's use case is better suited towards _less popular music_ since you're less likely to know the song's name if it's new or esoteric - so you can almost immediately guess that those 70k songs in that database is just ~30 years of various genre chart topping hits.

All you've done is cement my convictions that this is absolutely a solution in search of a problem.

<comment><USER5> > It takes me ~4 "seconds" (saying "one-one thousand" aloud) to do it when > typing in a password (sorry, don't have a stopwatch handy). Just did it 10 > times just to test. It'd be even faster with pin/fingerprint/face unlocking, > or with no locking at all.

Ah, but did you test this in your quiet office or home, sitting at your desk with both hands free?

Let's try a real-world environment. Something like, say, driving in your car, in moderate traffic, with both hands on the wheel while listening to your radio. That ~4 seconds becomes a barrier-to-entry just large enough to abandon the idea of finding out what the name is to that song you are listening to.

Because, lets be honest, wondering what the song is isn't that important. But it is nice. Which is why this feature has some proponents.

</comment></comment></comment></comment><comment><USER6> > Now Playing, has a daily battery usage of less than 1% on average, respects > user privacy by running entirely on-device and can passively recognize a > wide range of music.

Maybe I am missing something, but this seems to be much less respectful of my privacy than an app that only listens to the ambient sound around me when I explicitly give my consent (by opening/activating the app).

<comment><USER7> What's your actual privacy concern?

If the whole process happens entirely on-device, then this reveals absolutely no information of any kind to anyone, correct?

<comment><USER8> > If the whole process happens entirely on-device

Sure, if. Which I can verify, but I don't want to have to. I don't want to have to verify that a corporation isn't fucking me at every turn.

And it's possible that vulnerability will be discovered that lets people stream the audio somewhere, or listen to key words and send just those portions. I don't know enough about Android to know whether it's more plausible for that to happen, or if that sort of vulnerability would likely grant an attacker access to my mic even without this feature.

I don't think it's unreasonable for me to expect my device to not always be listening to me.

<comment><USER7> > Sure, if. Which I can verify, but I don't want to have to.

Wouldn't that be a risk even if this feature didn't exist? How do you know your phone isn't currently listening for music/speech and sending that data to the cloud without your knowledge?

> And it's possible that vulnerability will be discovered

Again though, that's already true regardless of whether this feature exists or not. Is there any reason to believe this feature is more likely to have a vulnerability than any other feature on your device? Why would you trust this code less than, for example, the code for your WiFi driver?

</comment></comment></comment></comment><comment><USER9> Great work, but super scary for me. The "service" of music recognition will probably be extended very quickly to a constantly running "environment recognition", just fingerprinting the audio around you, places, speakers etc..

<comment><USER10> Yes, this has a "proof of concept" feel to it.

</comment></comment><comment><USER11> I have the Nexus 2 with this feature, and it works remarkably well. No noticeable power drain, and it identifies a lot of songs that I never would have thought to ask about, like TV show intros and such. It's handy that if I ever wonder what a song that's playing is, I can pull out my phone and it's usually already there instead of having to unlock it, ask it what's playing, and wait a bit, if the internet is even working there. Pretty cool that they can pull this off with no network communication.

</comment><comment><USER12> Seems to me that it's another part of a fingerprint for a user that can locate them, and possibly place you with others in the vicinity who have ID'd the same audio. Retail outlets have playlists that could be ID'd, possibly with enough granularity to indicate your path through a shopping mall or your dwell time in a particular department.

I know the recognition is done on-device for some percentage of tracks, but it's been unclear to me what happens to the running tally of times/locations/tracks identified afterward.

<comment><USER13> It's not sent anywhere or even stored locally on the device. Some people view that as a missing feature, actually, so there are apps that add this functionality[0], so you can review the songs you heard and find it later.

[0] [http://www.androidpolice.com/2017/10/26/add-track-id- history...](http://www.androidpolice.com/2017/10/26/add-track-id-history- pixel-2-now-playing-feature-app/)

</comment></comment><comment><USER14> > author = {Beat Gfeller and ...

A case of nominative determinism?

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

<comment><USER15> Beat is a _very_ common name in Switzerland. I know about 10, none of them work in music :)

<comment><USER16> Is it pronounced bay-at?

<comment><USER15> From [https://en.wikipedia.org/wiki/Beat_(name)](https://en.wikipedia.org/wiki/Beat_\(name\)):

> pronounced "BEH-awe-t"

</comment></comment></comment></comment><comment><USER17> I wonder how well this performs. I see I have roughly 2000 songs on mys sd card. I find it a little hard to believe that 40x that is enough to cover a big enough slice to be able to actually answer the question of "what's this" when it comes up?

[ed: i actually think I'd have plenty of room for 70k songs in high quality ogg vorbis vbr or equivalent - that'd frankly be more interesting... ]

</comment><comment><USER18> Only being able to compare to 70k songs isn't really going to be adequate the second you step off a mainstream playlist.

</comment><comment><USER19> Will they use this tech for non-music purposes? Such as for enhancing google ads or for sending keywords to the NSA?

<comment><USER20> Automatically identifying whether you're at an illegal public performance and sending lawyers your way to extract the songs from your ears.

<comment><USER6> Well change the words "music" to "conversation" and song to "person" (or phrase), and things start to get pretty scary.

</comment></comment></comment><comment><USER21> Using neural nets for this purpose makes it likely to be susceptible to adversarial examples. Fairly harmless in this use case, but if a similar system would be used for ContentID on YouTube, that could be exploited to subvert it (i.e. spam it with false positives and contest the verdicts en masse).

</comment><comment><USER22> Is this why Shazam sold? Its basic functionality was going to be built into Andriod/Google Assistant?

<comment><USER23> It already is available on both the iPhone and Android through Siri/Google Assistant. Just ask them "What song is this?" This just seems to be an extension of it so you don't need to ask, the phone can just display the album info passively when you pick up the phone. Of course Apple's integration is already using Shazam for the actual identification, but you don't need the app installed.

Hard to compete with that if you aren't integrated at an OS level.

</comment></comment><comment><USER24> Is this pixel 2 exclusive or can I install this on my xiaomi? I skimmed the paper but didn't find any name for that app.

</comment><comment><USER25> These are one kind of HN posts that drive me up the wall.

You say less power to get us to buy more?

How about saving all that energy and using it for real world building.

<comment><USER26> To be fair, they say:

> Since everything runs locally on the device without sending either audio or > fingerprints to a server, the privacy of the user is respected and the whole > system can run in airplane mode.

This is far more respectful of user privacy than we usually see from Google. I, for one, am impressed.

<comment> Harvey-Specter What does this have to do with the comment you replied to?

<comment><USER26> A complaint about marketing ("get us to buy more"), on an article about always-on audio processing in a phone, implies a concern about privacy- invading user tracking. I was pointing out that (on the face of it, at least) this doesn't seem to do that.</comment></comment></comment></comment>


Announcing Backbone.js LayoutManager - <AUTHOR> http://tbranyen.com/post/announcing-backbonejs-layoutmanager

<comment><USER2> Here's the "Organizing Your Backbone.js Application With Modules" article that was mentioned in the screencast: [http://weblog.bocoup.com/organizing-your- backbone-js-applica...](http://weblog.bocoup.com/organizing-your-backbone-js- application-with-modules)</comment>


How It Took Me 10 Minutes to Rank in Google Featured Snippets - <AUTHOR> https://medium.com/@checkli/how-it-took-me-10-minutes-to-rank-in-google-featured-snippets-42ec9fec377 <comment><USER2> Spam - this is just an advertisement for a silly checklist website.

<comment><AUTHOR> Thanks for the comment. Why do you consider it spam? Can you elaborate? I'm not selling anything. It's a case study with examples, and a step by step guide, on how to rank higher in Google in far less time, and for free, by doing doing a different method content marketing.</comment></comment>


Ask HN: What is the best resource to learn JAVA - <AUTHOR> Hi guys, I am already pretty familiar with Python, but would liek to learn Java - do you guys have any great resources you want to recommend?<p>Thanks in advance, <comment><USER2> After you get some Java under your belt try Effective Java and Java Concurrency in Practice. Also I read the Javadocs for all the built in libraries like java.util [1] and the Javadocs for the stream api [2]. After that I read the language spec, and the memory model spec.

1: [https://docs.oracle.com/javase/8/docs/api/java/util/package-...](https://docs.oracle.com/javase/8/docs/api/java/util/package- summary.html) 2: [https://docs.oracle.com/javase/8/docs/api/java/util/stream/p...](https://docs.oracle.com/javase/8/docs/api/java/util/stream/package- summary.html)

<comment><AUTHOR> Thanks! I am currently taking a course on edX and these resources are super helpful!

</comment></comment><comment><USER3> I personally quite liked Java: The Complete Reference by Herbert Schildt – as the name suggests, it covers most of the topics relevant to Java developers, including some outdated ones.

Head First Java by Kathy Sierra is also a decent introduction to the language, though much more limited and outdated.

Oracle also has on-line Java tutorial which I regularly visit during development. However the content is more scattered than in a book.

</comment><comment><USER4> Introduction to Java Programming: [http://www.ntu.edu.sg/home/ehchua/programming/java/J1a_Intro...](http://www.ntu.edu.sg/home/ehchua/programming/java/J1a_Introduction.html)

There are more materials.

<comment><USER5> I second this. It's good for beginner who wants to understand the concept.

</comment></comment><comment><USER6> I'm reading Think Java: [http://greenteapress.com/wp/think- java/](http://greenteapress.com/wp/think-java/)

so far so good, I like it for it's size. I wanted an introductory text that wasn't 1000 pages.

<comment><AUTHOR> Thanks! this looks great!

</comment></comment><comment><USER7> If you tell me why you would like to learn Java, then I could help you find the appropriate resources.

<comment><AUTHOR> Hi, I am trying to learn Java to build an application. Thanks for your help.</comment></comment>


Edward Snowden: the whistleblower behind the NSA surveillance revelations - <AUTHOR> http://m.guardiannews.com/world/2013/jun/09/edward-snowden-nsa-whistleblower-surveillance <comment><USER2> Already on front page with canonical link to article.

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


Ask HN: Confirmed developer running low, what's the quickest way to make money? - <AUTHOR> I'm a confirmed developper with strong skills in most mainstream languages and frameworks. I can do Ruby on Rails, NodeJS, React, Angular, Ember, CSS, HTML5, Python, Java, PHP...
I'm running low of cash for this end of month (august). What is the best way to make some quick money? I'm thinking of providing services like code mentoring or freelancing without having to create a company.
Note: I do already have a job. I'm thinking of trying to make money on my spare time. <comment><USER2> What luxuries can you do without? Cut them out for a while. Having a habit of eating out can be a huge spending source, for instance. Make coffee/tea at home.

Sell some stuff. Do you have any valuable items you don't especially have any attachment to? Maybe a second laptop or other expensive electronics? Furniture? Bonus: Having less stuff can be liberating.

Finally, if you haven't already, ask for a raise. If you're not full-time, ask for more hours.

This is easier said than done of course, but if you're worried about money and already have a job, your employer may not be compensating you appropriately.

<comment><USER3> This.

Worth budgeting to make sure you can build up a buffer. Then once this is done you could invest.

Open excel, list your expenses. See what the total is and compare to your income. Try to reduce every category. Some you can reduce by negotiation (a lot of the bills for example) or shopping around. Some you can reduce by changing where you shop (food, groceries etc.).

Some you can reduce by going for cheaper brands, cheaper products. Fruit is an area where I see a factor or 4 or 5 in the cost and I find apples and pears cheap and good enough, no need for the fancy fruits. Also stuff in season tends to be cheaper and taste better anyway.

Transport you might be able to reduce by cycling / walking / running some of the way.

Some stuff you can eliminate, like eating out, alcohol, take away coffee.

If renting move somewhere cheaper - smaller or worse location or sharing with more people. Or move in with parents could be another option.

Avoid loans for anything except assets that rise in value e.g. real estate. And even those loans try to pay off as quickly as possible unless you can put the money to better investment use. Pay credit card in full each month of course.

If you are a dev and are struggling to make ends meet you are either underpaid or overspending.

If underpaid then fix that by looking for a new job. If overspending then you need to budget.

Don't just do more hours on the side though this isn't the short or long term fix! If you have the luxury of free hours to work you'd want that to go into something that is an investment (financial or spiritual!) not just some spare cash to make ends meet.

</comment></comment><comment><USER4> Create a cryptocurrency and premine it significantly, then launch it?

</comment><comment><USER5> namuol has covered all the really good points. It's definitely easier to have money by "not spending money" than "making more money". But there are lots of side jobs you could do. Maybe you could mow lawns or fill out questionnaires online? You could go to car boot sales and sell good finds.

Usually devs get the best "pay rises" by finding a new job, though.</comment>


Ask HN:Opinions on Hashicorp Nomad vs. Kubernetes? - <AUTHOR> I love Hashicorp products/tools. They are simple and intuitive to use/configure and they do one thing very well. I love the fact that each product is usually a single binary that is the client/server and command line tool. What change are the parameters passed to the binary when executing it.
I have experience with Consul, Vault and Nomad.
Due to security and performance reasons, we need to have most of our services hosted on premises.
I've been using a on-premise Nomad deployment in a bunch of greenfield projects and so far I'm very satisfied on how well it integrates with Consul/Fabio/Vault and how simple is to operate the cluster.
We are not using any fancy feature and we are basically using Nomad to decouple the Software from the hardware where the Software runs. The deployment times are faster than using ansible and we can leave the scheduler to decide where the software should be deployed. Nomad also supports scheduling of raw commands.
Lastly, Nomad, when integrated with Consul/Fabio works in a multi-datacenter/multi-site topology out of box. This is specially important for us.
However due to the buzz around Kubernetes I'm afraid of making the wrong choice in the long term and invest time in something that will eventually die or become irrelevant. There is also much more information available about Kubernetes than Nomad.
On the other hand, I fell that Kubernetes is a bit more complex to operate/maintain than Nomad. I might be wrong.
My questions would be:
- If you have a on-premises Kubernetes deployment, is there a lot of overhead in operating it? Can you tell me a little bit about some specific situations where the cluster required manual intervention?
- Do you use Kubernetes in a multi-data center/multi-site configuration? Any thoughts on that?
- Do you use Nomad, used in the past? What works/worked and what doesn't/didn't? <comment><USER2> We run k8s on premises and it requires an ops team of ~8 people. Personally I would have gone with a hosted and managed solution but we have become pretty good at all the nuances of K8s and it gives us the flexibility to try new things.</comment>


EFF details post-Bilski confusion on what is too "abstract" to patent - <AUTHOR> https://www.eff.org/deeplinks/2011/09/trio-post-bilski-cases-fail-clearly-define

<comment><USER2> So it seems that the "abstract idea" under Bilski has turned into "does it look complicated enough."

In Research Techs. Corp. v. Microsoft Corp., from last year, the court said that a method of halftoning was not abstract, because it involved a process of comparing pixels. In CyberSource, the court explained that comparing pixels was not abstract because "the method could not, as a practical matter, be performed entirely in a human mind."

Similarly, in the Ultramercial case, the court says that the method is not abstract because "Many of these steps are likely to require intricate and complex computer programming," and "certain of these steps clearly require specific application to the Internet."

These words, "as a practical matter," "intricate and complex computer programming," and "specific application to the Internet," are what throw me for a loop. As a practical matter, I can compare four numbers on a piece of paper, but I can't download a million numbers off of the Internet and compare them. So comparing four numbers on a piece of paper is an abstract idea, but comparing a million numbers on the Internet is not?

</comment><comment><USER3> > On its face, this all sounds well and good, until one considers the patent's > own depiction of its allegedly not abstract invention:

What point are they making? Surely it can't be that the diagram is abstract... Diagrams are by nature abstract.

IIRC, the key to _CyberSource Corp. v. Retail Decisions, Inc._ (about credit card risk assessment over the internet) was in the precise wording of the claims - they didn't use the word "internet", even though that was how the invention was described. The thing is, the description in a patent is just "one embodiment" of the invention, and it is up to the claims to be clear about the actual scope of the invention. Claim too much and you're dead.

That's why most inventions have a series of dependent claims of decreasing scope - if the court finds one is too broad, the next one might be OK. A ridiculously broad first claim does no harm - provided you confine it later. From reading several patents, I've formed the impression that the first claim is often used as a sort of framework "here's the basic idea", and its wording is more to do with making it convenient to hang the other claims on than intrinsic merit.

<comment><USER2> > A ridiculously broad first claim does no harm

That might be true other than the fact that each claim gives rise to an individual legal right. A ridiculously broad first claim can be asserted as in a cease-and-desist, it can be the basis for a lawsuit, and it can cost those who are threatened thousands of dollars to invalidate, if it even is invalidated. So they actually do cause a lot of harm.

</comment></comment><comment><USER4> Sometimes I get the feeling that SCOTUS thinks they have said something meaningful when they haven't. It would be a decent study to see if judges are just re-applying their priors but, of necessity, using the language of Bilski.

That would be better than statements about conclusions, since it would help build a clear set of criteria the Court can apply to itself when they want their ruling to have a predictable effect.

</comment><comment><USER5> Despite the confusing parts of Bilski, is it at least now clear that In re. Alappat and State Street are no longer considered valid precedent?</comment>


Ask HN: What is the fastest distro to boot Raspberry Pi in full screen Chromium? - <AUTHOR> Hello all,
Can you please recommend a very fast Linux distro for Raspberry Pi that boots quickly in a full screen Chromium?
I need to boot a Raspberry Pi Zero in under 3 seconds.
Thanks! <comment><USER2> > _" I need to boot a Raspberry Pi Zero in under 3 seconds"_

Not sure that speed is possible, but maybe a faster SD card would help boot raspian quickly.

Then you can use this method to boot Chrome into "kiosk mode"

[https://www.google.com/amp/s/blockdev.io/raspberry- pi-2-and-...](https://www.google.com/amp/s/blockdev.io/raspberry- pi-2-and-3-chromium-in-kiosk-mode/amp/)

</comment><comment><USER3> Raspbian should work, just disable everything thats not needed

</comment><comment><USER4> FydeOS is the way to go. Arch is super fast, lightweight and works on Rasp</comment>


Show HN: Pascal to LLVM Compiler in Haskell - <AUTHOR> https://github.com/sam46/Paskell <comment><USER2> One of the things I love Haskell for, and there are many reasons, is that it's great at building compilers and interpreters. Monadic transformers for effects, pattern matching in functions, strong types, polymorphic typeclasses, the list goes on and on.

Finally, if anyone is interested in building something like this, there is a great tutorial that, which I believe the author used but am not sure: [http://www.stephendiehl.com/llvm/](http://www.stephendiehl.com/llvm/)

</comment><comment><USER3> This project may interest you: [https://github.com/int- index/kalium](https://github.com/int-index/kalium). It is a limited Pascal-to- idiomatic-Haskell compiler written in Haskell.

<comment><USER4> An LLVM-IR to idiomatic Haskell compiler in Pascal would complete the journey.

<comment><USER5> Most amazing "a compiler from Haskell to Pascal in idiomatic LLVM-IR" station is missing in that journey.</comment></comment></comment>


China's 'Laser AK-47' Can Set Fire to Targets a Kilometre Away - <AUTHOR> https://www.scmp.com/news/china/diplomacy-defence/article/2153310/china-brings-star-wars-life-laser-ak-47-could-set-fire <comment><USER2> So in ideal conditions you have a big, heavy gun that can sort of harm an immobile target that isn't using basic countermeasures. Meanwhile a BMG .50 rifle can put a hole in an engine block from twice the distance, is cheaper and more reliable, and never runs out of juice.

Way to put the "PR" in PRC.

<comment><USER3> You can track a bullet though, this seems to be completely invisible to naked eye so you could put a house on fire (since it seems to be pretty hot) and nobody would know.

<comment><USER4> Serious question: assuming the structure is burned beyond recognition, would arson specialists be able to tell if a house were put on fire in this manner?

<comment><USER5> No, though they might be able to tell you where the fire started.

</comment></comment></comment></comment><comment><USER6> YouTuber styropyro recorded a video[1] about this and wasn't at all convinced by the claims.

[1] [https://youtu.be/EdURyWZD9tk](https://youtu.be/EdURyWZD9tk)

<comment><USER7> The protocol on blinding laser weapons prohibits employing or distributing weapons designed to cause blindness. Is it possible that this weapon is actually intended to be used as a blinding weapon, and the claims about its incendiary capabilities are only to obscure the intended use?

</comment></comment><comment><USER4> > Because the laser has been tuned to an invisible frequency, and it produces > absolutely no sound, "nobody will know where the attack came from. It will > look like an accident," another researcher said. The scientists requested > not to be named due to the sensitivity of the project.

OK so there's no sound where it "hits" but they didn't answer the real question I have... What does it sound like where/when the trigger is pulled?

<comment><USER8> You want it to make pew! pew! noises don't you?

</comment></comment><comment><USER9> USA's 'Laser M16/M4', now almost 20 years old:

[http://www.defensereview.com/352003/TIS1.pdf](http://www.defensereview.com/352003/TIS1.pdf)

</comment><comment><USER10> One errant reflection and someone (maybe even the operator) goes blind. I hope they don't deploy these for riot control.

<comment><USER8> It's not that long since the Chinese government ran tanks over protesters, blinding people would likely be a feature.

</comment></comment><comment><USER11> meta: never heard of scmp.com, but I really liked their website and flow! felt very clean. just a tad to much scroll jacking tho</comment>


Non-invasive treatment produces 98 percent prostate cancer cure rate - <AUTHOR> http://www.gizmag.com/sbrt-prostate-cancer-98-percent-cure-rate/42894/ <comment><USER2> Sadly, you should be suspicious because this "article" is just a gloss of the university's press release (and university press releases are notoriously worthless).

The clue is phrases like "a cure rate of 98.6 percent". First of all in any therapy that's an extraordinary number. But in face what's a "cure"? Typically a study has specific endpoints; in oncology (not my specialty) they'll be things like 5 year survival, tumor size reduction etc.

SBRT appears to be effective for small, contained tumors apparently like prostate cancer, so that part is great.

<comment><USER3> It gets worse in oncology, you often see stuff like progression free survival. This means it is possible for a treatment to provide no actual extension of life, merely improve quality of that life and still be held up as great.

Quality of life _is_ great but sometimes what exactly a treatment is giving you gets lost in the PR wash

</comment></comment><comment><USER4> There's another new treatment for prostate cancer; Only 80%/2years remission rate, but has been approved (in Mexico so far) for use following Phase III clinical trials. [http://www.timesofisrael.com/weizmann-developed-drug- cures-p...](http://www.timesofisrael.com/weizmann-developed-drug-cures- prostate-cancer-in-90-minutes-studies-show/)

</comment><comment><USER5> I wish articles about this sort of thing would highlight the researchers more. If there is anyone deserving of public fame, it's the people who work to cure cancer!

</comment><comment><USER6> Feels like clickbait.</comment>


Mean People Earn More - <AUTHOR> http://online.wsj.com/article/SB10001424053111904823804576502763895892974.html

<comment><USER2> statistical nonsense I say</comment>