Electro-Migration in a Xerox Alto - <AUTHOR> https://engblg.livingcomputers.org/index.php/2019/01/21/xerox-alto-interesting-issue/ <comment><USER2> Electromigration is a major cause for failures of silicon components.

Over many years, metal in the very tiny vias between metal layers in the chip fail.

<comment><USER3> Indeed, this is one the largest challenges in semiconductor fabrication today. The narrower our wires become, the more susceptible they are to tiny voids formed by electromigration.

<comment><USER4> The article seems to imply that the effect is highly dependent on the "amount" of electricity going through a connection. With that in mind, how much does this occur on the scale of a CPU where the connection is only a few tens of atoms across but the power is measured in only a couple volts?

<comment><USER5> In microelectronics the voltage is low but the current density can be quite high, and that makes electromigration a more severe problem than in higher voltage macroscopic devices like motors.

<comment><USER4> Are you familiar with the field or have links to resources I can read? Basically what I want to know is how long will a modern core-i5 last before some transistor bridges and it dies? 10 years? 50?

<comment><USER5> This "Fundamentals of Electromigration-Aware Integrated Circuit Design" appears to be a decent starting point:

[https://www.ifte.de/books/em/](https://www.ifte.de/books/em/)

[https://www.ifte.de/books/em/em_chap1_figs.pdf](https://www.ifte.de/books/em/em_chap1_figs.pdf)

[https://www.ifte.de/books/em/em_chap2.pdf](https://www.ifte.de/books/em/em_chap2.pdf)

It won't answer your question directly (especially if you just read the free material instead of obtaining the whole book) but it should orient you for further reading. Note that electromigration is sensitive to temperature. Running cooler can extend the lifetime non-linearly, whether achieved via lower duty cycles or more effective cooling methods. You need to know how many years at what temperature the processor will run, not just the dimensions of the conductors.

</comment></comment></comment></comment></comment></comment><comment> white-flame Tangential, but is the spelling "buss rail" used in any widespread sense? Buss is affection, bus is shared transport.</comment>


Modular CSS for Web Components ‒ the VCL Is Here - <AUTHOR> http://vcl.github.io/ <comment><USER2> VCL is my favorite. But this one: [http://docwiki.embarcadero.com/RADStudio/Seattle/en/VCL_Over...](http://docwiki.embarcadero.com/RADStudio/Seattle/en/VCL_Overview)

<comment><USER3> Yeah, the author should consider using a different name in order to avoid confusion (and possible trademark infringement).

<comment><USER4> yep, and there's also this: [https://www.varnish- cache.org/trac/wiki/VCL](https://www.varnish-cache.org/trac/wiki/VCL)

</comment></comment></comment><comment><USER5> I'm very confused about how this actually integrates with web components. I don't see any indications in the docs or source I've looked at so far.

<comment><AUTHOR> See here: [https://github.com/ember-vcl](https://github.com/ember-vcl) All these components make use of the VCL. The integration is bassically CSS class names. And more formally, you can add a dependncy to the required NPM packages. However, we did not do this yet in the Ember VCL.

</comment></comment><comment><USER6> Why isn't the checkbox in [http://vcl.github.io/#vcl- checkbox](http://vcl.github.io/#vcl-checkbox) clickable?

<comment><AUTHOR> Because the whole idea of the VCL is to be JS-less and thus logicless. We want to leave this to Ember, Angular, React etc. That's why we are framework agnostic.

<comment><USER6> But you don't need JS to make a checkbox clickable on the web. I've seen custom-styled CSS-only checkboxes plenty of times in the past.

</comment></comment></comment><comment><USER7> So the obvious question - why use this instead of Foundation or Bootstrap?

<comment><AUTHOR> Because they not neither modular and thus it's not possible to integrate them with sound package management systems like NPM, bower etc. You can only get the whole blob, with the VCL you can depend on a set of fine grained CSS modules.

</comment></comment><comment><USER8> This looks fine. I have a few observations:

\- Uses camelCase for classes; Foundation and Bootstrap are hyphen separated, as is FontAwesome. This leads to weird examples like the notification one [1] where you have mixed naming conventions.

\- All classes in the docs are prefixed with vcl. I guess this is some kind of namespacing, but again BS and Foundation don't have this, and you end up with slightly uglier and slightly more verbose class names.

It doesn't seem like the tabs or drawer examples work for me so it's not clear how it's handling those but it seems that it's not tied to jQuery, which I definitely do like.

[1] [http://vcl.github.io/#vcl-notification](http://vcl.github.io/#vcl- notification)

<comment><USER9> But with the namespace, you can avoid name collisions. As I see it, VCL components can be used standalone, even when you already use a different UI framework, so this makes sense for me.

<comment><USER8> I realise this. It doesn't stop it from being "slightly uglier and slightly more verbose" though :)

You can namespace Bootstrap though [1] so perhaps you can change this VCL convention somehow too.

[1] [http://stackoverflow.com/questions/13966259/how-to- namespace...](http://stackoverflow.com/questions/13966259/how-to-namespace- twitter-bootstrap-so-styles-dont-conflict)

</comment></comment></comment><comment><USER9> Cool, this looks like a great set of visual components to design SPAs with.... kinda bootstrap with many plugins but also lightweight.

One question: does it have an easy way to implement a responsive off-canvas menu or do I need to roll it by myself?

<comment><AUTHOR> Of course, the necessary components exist: The drawer component can contain the navigation, here you can even see it statically in all three states:

[http://vcl.github.io/#vcl-drawer](http://vcl.github.io/#vcl-drawer)

In the drawer content, I would use this:

[http://vcl.github.io/#vcl-navigation](http://vcl.github.io/#vcl-navigation)

Just add some JS to control the state and toggle the `vclOpen` class.

</comment></comment><comment><USER10> >No shadow DOM support detected.

>The documentation client needs shadow DOM to render the examples. Please use a browser that supports shadow DOM to view this.

On Firefox 45.0.1

There is an option to try a polyfil version, which seems to be working.

<comment><AUTHOR> FF will support Shadow DOM in the future. Also it's only used for the documentation.

</comment></comment><comment><USER11> You need a better name. VLC Player, or all other V C L char combinations are used and VCL is hard to find.

e.g. "vcl css" google suggests "vlc css"

bootstrap, foundation, polymer, pure css, that are names you can remember.

<comment><USER9> Naming things is hard, at least the current name is straightforward, sort of. googling "pure css [x]" isn't very good either IMO.

Shameless self-plug: [https://medium.com/@Hisako1337/very-fast-naming- process-417f...](https://medium.com/@Hisako1337/very-fast-naming- process-417f2144f54e)

<comment><USER11> Sure, naming is one of the hardest things, in particular for software development :)

</comment></comment></comment><comment><USER12> fyi, VCL = Visual Component Library

<comment><USER13> That doesn't have to be the name. It can be its description

<comment><USER14> I think they were pointing out that VCL (Visual Component Library) is already a name used by Borland / Embarcadero Delphi Pascal for their cross-platform UI toolkit.

</comment></comment></comment><comment><USER15> At first, I thought this was something similar to CSS Modules (which, btw solved mostly all my grievances with packaging CSS in a large application), but this is something much more akin to Bootstrap or Foundation.</comment>


Problems looking for solutions - <AUTHOR> http://webapps.stackexchange.com/unanswered

<comment><USER2> Some of these seem like genuine weekend problems: [http://webapps.stackexchange.com/questions/6841/is-there- a-w...](http://webapps.stackexchange.com/questions/6841/is-there-a-way-to-see- tweets-from-only-people-who-follow-on-twitter)

</comment><comment><USER3> This is actually a really neat find an an excellent source of inspiration.

</comment><comment><USER4> Although, the best problems to solve are you're own problems. Still interesting to see what people are looking to do.

</comment><comment><USER5> Perhaps event better: <http://webapps.stackexchange.com/?tab=featured></comment>


Possible Governmental Backdoor Found ("case R2D2") - <AUTHOR> http://www.f-secure.com/weblog/archives/00002249.html

<comment><USER2> Related thread: <http://news.ycombinator.com/item?id=3088687>

</comment><comment><USER3> That's really a big deal and just shows how governments treat their own laws and how important an open government is, in which such things can be verified and controlled!

<comment><USER4> > That's really a big deal and just shows how governments treat their own > laws...

Not really. My understanding is that German law permits trojans for surveillance.

<comment><USER3> <http://news.ycombinator.net/item?id=3090951>

</comment></comment></comment><comment><USER5> I'd be more worried if this was a backdoor in a popular program or operating system that was specified by the government and implemented by the original software author rather than more typical malware/trojan more akin to a wiretap. The former would be widespread and affect millions of users, while this appears to be a tool for use by law enforcement to carry out legitimate surveilance in criminal investigations. Presumably every modern government has such capabilities or they are really asleep at the switch.

<comment><USER6> I would challenge the concept of the government carrying out "legitimate surveilance" through this dubious means.

The person surveiled has not been has not convicted of a crime yet the state has taken onto itself to install software that would leave the person open to further hacking by random individuals.

This is akin to the police not simply breaking into the house of a man they suspected of a crime but also them leaving his door a-jar after they left. See the Sony Rootkit.

<comment><USER7> It's a little naive to believe governments _don't_ do this kind of thing (software surveillance), don't you think? Even if they "shouldn't".

<comment><USER6> What in my post lead you to believe I thought that governments don't engage in a variety of dubious surveillance (including surveillance which leaves open back doors to the victims machine)? They certainly do.

The thing is that exposing these acts and fighting all efforts to make such acts legal is still important for limiting how _much_ the state can do.

<comment><USER7> Nothing, sorry.

My point was, there's nothing to be done about it. They're going to do it, just as sure as gravity.

</comment></comment></comment></comment></comment><comment><USER3> Germans interested in similar news should check Felix von Leitners blog, who brings up interesting articles almost every day: <http://blog.fefe.de/>

<comment><USER8> And crazy conspiracy theories!

<comment><USER3> It's a personal blog and as such he adds his own notion to the text but it has always been worthwhile for me to check the source articles (which are almost always renowned news agencies). You should always read the sources and make up your own mind, but i found his blog to be very good at finding those sources.

<comment><USER9> The crazy conspiracy theories are an advertised feature of his blog and I love them.

</comment></comment></comment></comment><comment><USER10> POE = Purity of Essence?

<comment><USER11> _Poe was a protocol droid owned by Grand Duke Gror Pernon. He acted as the Rogue Squadrons diplomatic liaison to the people of Eiattu._ [1]

[1] <http://starwars.wikia.com/wiki/Poe>

</comment></comment><comment><USER12> Digging down to the source material, the Strong Towns group does address Government Transfer Payments, explaining that all suburbs are subsidized. But they avoid offending anyone by pointing out that the suburbs were financed by the urban areas.

In my experience, suburban dwellers don't like learning that they're parasites.

<comment><USER13> You're looking for the "A Complete Guide To The Ponzi Scheme That Is Suburban America" submission. <http://news.ycombinator.com/item?id=3090385>

<comment><USER12> Haha. Oops! How'd that happen...?</comment></comment></comment>


Watch Netflix in Ubuntu today - <AUTHOR> https://insights.ubuntu.com/2014/10/10/watch-netflix-in-ubuntu-today/ <comment><USER2> Why do these "Linux gets Netflix" stories not have the same bad attitude from folks as the "W3C caves to DRM" stories? They're the same topic, essentially.

<comment><USER3> I wasn't a vehement opponent of W3C implementing DRM, but I'll put my two cents in;

I don't mind if private companies implement DRM in their own products. I do mind DRM being standardized, meaning every vendor has to implement it in order to be complaint with the standard.

Ubuntu != linux, it is just a distro. Similarly Chrome is not the browser standard, it's only an implementation.

If this story was actually "Linux adds DRM to kernel for netflix and other media companies" I think you would see a huge reaction.

<comment><USER4> That sounds logical at first blush, but you're actually looking at the problem backwards.

Markets have power, standards organisations don't.

If the W3C had for some reason told browser vendors "now you have to ship DRM to comply with the standard", with no evidence that it was something that consumers wanted, they would have been told to go to hell. Exactly that happened with a whole bunch of other W3C "standards" that no one was actually interested in shipping; XHTML2, SMIL, XForms, etc.

In practice what happened with DRM is that consumers made it clear that they were very happy to run DRM systems in exchange for access to media. For example almost everyone is prepared to install Flash and Silverlight to get access to video services like NetFlix. Media companies also made it clear that they had no intention of giving up on using DRM on their products, especially whilst consumers were showing themselves to be so ready to embrace DRM-using services. So it's already been the case for some years — essentially for as long as bandwidth sufficient for streaming video has been commonplace — that, as a browser vendor, you have the choice between supporting content that uses DRM (e.g. through your plugin system) or losing so much marketshare you become irrelevant.

More recently browser vendors, including Microsoft, Apple, and Google, decided to cut out the plugin middleman and start shipping their own proprietary DRM systems baked directly into their browser. It was at this point the W3C got involved in standardizing the interface between the browser and the DRM system. But this was long after there was any hope of keeping DRM off the web; everything that's happening now is a retroactive damage limitation exercise.

<comment><USER5> There is a difference between a product with market power and a standard. A product's lifecycle is always limited and its market share after going up can only go down. Witness Flash, witness IExplorer and ActiveX, witness Symbian.

A standard on the other hand can potentially live forever. And all implementations must follow it. And for example, a browser with DRM in it can no longer be fully open-source, which should be reason enough for W3C to not standardize DRM. Plus let's be honest, DRM is fundamentally flawed, its main purpose for which it actually works being the lock-in of honest users, purpose that is incompatible with the concept of a browser. If Netflix wants to serve DRM-ed content, they apparently have no problem in implementing their own thing, so I fail to see what the W3C is trying to solve. And yes, next we'll talk about the Linux kernel, because DRM is only "secure" if the whole chain is "secure".

And also if users want Netflix, that's fine, I'm actually happy that it works on Linux now, but I don't want DRM and users may not want DRM forever, as could be seen with MP3s and pushing for standardization is shoving it on people's throats.

</comment></comment></comment></comment><comment><USER6> So _why_ does this work? Is Chrome 37 for Linux now being shipped with support for Encrypted Media Extensions, i.e., HTML's built-in DRM, with Netflix relying on EME? Or has something happened with Moonlight to support Netflix DRM? Or what?

<comment><USER7> Chrome 37+ already had the necessary DRM extentions, but it only worked with a recent version of the NSS library. It was possible to play HTML5 video on Netflix in Linux since then, but you needed to fake your user agent to say you were on Windows.

The reason it works now is that Ubuntu 14.04 (the latest LTS version) has updated to the necessary version of NSS, so Netflix will serve HTML5 video to the standard Chrome user agent on Ubuntu. Netflix just didn't allow it before because the LTS version didn't support it - you had to manually update the NSS library outside of the package manager to make it work. Netflix just didn't want to flip the switch to allow it until it would work on the standard packages on the LTS version.

Source from a Netflix post on the Ubuntu mailing list - [https://lists.ubuntu.com/archives/ubuntu-devel- discuss/2014-...](https://lists.ubuntu.com/archives/ubuntu-devel- discuss/2014-September/015048.html)

It seems to work on any Linux distro with the necessary Chrome and NSS versions now without any user agent altering - I'm able to watch Netflix on Arch Linux now with the standard user agent.

<comment><USER8> Where does the decryption actually happen? Is it in the CPU chip?

<comment><USER9> It's in software.

</comment></comment></comment></comment><comment><AUTHOR> I just tried it in Chrome 38.0.2125.101 (64-bit) and...

 _Unexpected error_

 _There was an unexpected error. Please reload the page and try again._

 _Error Code: M7063-1913_

So... yeah.

UPDATE: Looks like the problem was I had an old version of NSS installed (see [http://www.omgubuntu.co.uk/2014/09/ubuntu-rolls-updated- nss-...](http://www.omgubuntu.co.uk/2014/09/ubuntu-rolls-updated-nss-library- native-linux-netflix-support)). Upgraded that with

        sudo apt-get install --only-upgrade libnss3

...and now Netflix works fine in Chrome.

<comment><USER10> I get that error, but libnss3 was already up-to-date.

So I'm still out of luck.

Edit: D'oh! Chrome vs chromium. And different error code.

</comment></comment><comment><USER11> > _Thanks to recent efforts at Netflix and Canonical, Ubuntu now supports > watching Netflix with Chrome version 37._

Funnily, Chrome 38 is now out ([http://googlechromereleases.blogspot.com/2014/10/stable- chan...](http://googlechromereleases.blogspot.com/2014/10/stable-channel- update.html)) after an emergency release, which shows how long these press releases take to plan.

<comment><USER12> It makes it sound like Canonical made some sort of concerted effort, didn't they just package Chrome (or do the Chrome people do that)?

Packaging and uploading to the repos is work of course but I imagine most of that is automated, the feeling here is that Canonical strived in some way to get this result. I'd be interested to know what Canonical did out of the ordinary to get to this result?

<comment><USER13> They published updated versions of needed libraries for Ubuntu 14.04 (SRUs), which is not normally done outside of security issues.

<comment><USER12> Interesting. Is it just the NSS update. Presumably that was a case of packaging the latest version or is NSS a Canonical supported project?

 _[https://lists.ubuntu.com/archives/ubuntu-devel- discuss/2014-...](https://lists.ubuntu.com/archives/ubuntu-devel- discuss/2014-September/015054.html) seems to be a relevant source._

</comment></comment></comment></comment><comment><USER12> Has the DRM for Chrome been cracked yet? It seems that having the complete data flow from the server sent packets through to the displayed data would make it relatively easy to work back and crack it sufficiently to make saving drm-ed streams to a local compressed video format possible.

Obviously you could use a modified video driver or grab the data from the actual display - the problem with that would be speed and data size.

Presumably the data stream of the compressed video is in memory at some point in the process and could be sniffed?

IF it's been cracked doesn't it show the futility of applying DRM in the first place?

<comment><USER9> Nobody cares about cracking Widevine to extract 4 Mbps Netflix streams when Blu-ray rips are already available on the Pirate Bay. But if someone does crack it, Google will release a Chrome "security update" that makes it just different enough to make the crack not work, they'll tell Hollywood everything is fine, and the process will repeat until one side gets bored (see iTunes).

<comment><USER12> I thought Netflix was creating content now that isn't available through other streams; perhaps I'm mistaken I don't use it.

<comment><USER14> they are creating it, and it's being shared on torrent sites. DRM is effectively useless.

</comment></comment></comment></comment><comment><USER15> This is another great example of the difference between Chromium (free and open source browser) and Chrome (proprietary, branded fork of Chromium).

Amusingly, the previous workaround for running Netflix on Linux used Firefox (running under a patched version of Wine)[0], though it looks like Netflix is unlikely to come to Linux for Firefox in the near future[1]

[0] [http://www.compholio.com/netflix- desktop/](http://www.compholio.com/netflix-desktop/)

[1] At least until Netflix switches over to DRM-ed HTML5 video, and Firefox implements HTML5 DRM.

<comment><USER16> Chromium PPA builds are around 47 weeks old. (v. 31)

[https://launchpad.net/~chromium- daily/+archive/ubuntu/stable](https://launchpad.net/~chromium- daily/+archive/ubuntu/stable)

Chromium packages on Ubuntu have basically been abandoned.

<comment><USER17> It's being updated in the main distribution. Usually a week or so behind when a new version of chrome is released.

[https://lists.ubuntu.com/archives/trusty- changes/2014-Septem...](https://lists.ubuntu.com/archives/trusty- changes/2014-September/016780.html)

</comment></comment></comment><comment><USER18> Been doing this for about a year now through pipelight[0] and another more esoteric hack before then. I hope this fix is not so hard on the cpu although I'm guessing it is the same wine hack in a different form.

[0] [https://launchpad.net/pipelight](https://launchpad.net/pipelight)

<comment><USER19> It doesn't seem to be related to wine. I think it's more likely google ported the drm that got used on chromebooks for netflix to chrome for linux.

<comment><USER18> That is excellent, should use way less resources then... looking forward to trying this when I get home.

</comment></comment></comment><comment><USER20> It should be noted that it works on Fedora as well with Chrome 37 and 38.

On Chrome 37 you need a specific user-agent, at least that's how I got it working.

        Mozilla/5.0 (Windows NT 6.3, Win64, x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2114.2 Safari/537.36

</comment><comment><USER21> Does this work on Chromium (the FLOSS base for Chrome) or only the Google- branded Chrome browser?

<comment><USER22> It doesn't work on Chromium because of its lack of support for DRM.

<comment><USER21> Is it possible to install the proprietary DRM module on Chromium? Similar to how you can extract the Chrome flash player and use it with Chromium?[0]

[0][http://askubuntu.com/questions/158388/how-do-i-make- chromium...](http://askubuntu.com/questions/158388/how-do-i-make-chromium-use- flash-from-google-chrome)

<comment><USER22> I'm not certain but I don't think so since Chromium is supposed to be the fully open source version it doesn't support the codecs or Media Source Extensions[0] that make it possible to enable the DRM modules Netflix uses.

You can test for support on Youtube[1] as well (I don't have Chromium so I'm not sure what the results are.)

[0][https://dvcs.w3.org/hg/html-media/raw-file/tip/media- source/...](https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media- source.html) [1][https://www.youtube.com/html5](https://www.youtube.com/html5)

<comment><USER23> Running Chromium 37.0.2062.120 on Ubuntu 14.04, Youtube reports that I am compatible with all 6 formats, including Media Source Extensions.

</comment></comment></comment></comment></comment><comment><USER24> This is awesome, but I see a lot of complaints from people who can't get it to work. In the past, I've used netflix-desktop[0] to watch from my Ubuntu partition. I've found that it works exceptionally well.

[0] Google netflix-desktop, or here's a decent install guide I found on the fly: [http://askubuntu.com/questions/419255/just-installed- ubuntu-...](http://askubuntu.com/questions/419255/just-installed- ubuntu-13-10-cant-get-netflix-desktop-to-work)

</comment><comment><USER25> Firefox is the default browser for Ubuntu. A lot of users wouldn't probably be bothered to install Chrome earlier - now they will. This is bad news.

<comment> mh- why is this "bad news"?

<comment><USER26> Just a guess, but maybe because Chrome is not considered to be fully open, as opposed to Chromium.

</comment></comment></comment><comment><USER27> Works for me in Fedora 20! Chrome 37.0.2062.120 and NSS 3.17.0-1.fc20.

edit: Did try Firefox and it does not work due to required DRM extensions. This is a great step forward, hopefully more is to come.

</comment><comment><USER28> I'm willing to bet it will work in any Linux distro that has the newest Chrome installed, so Mint and Arch Linux will probably also work. Haven't confirmed yet though.

<comment><USER29> You also need NSS >= 3.16.2.

</comment></comment><comment><USER30> I'ts only me who keeps earing "Blob!" [0] in my mind?

..[0] [http://www.openbsd.org/lyrics.html#39](http://www.openbsd.org/lyrics.html#39)

</comment><comment><USER31> Doesn't appear to work in Ubuntu/Chromium v37.0.2062.120 (64 bit)

Error Code: M7357-1003

I guess that is because WidevineCDM is missing (proprietary "Content Decryption Module").

<comment><USER32> The EME (DRM) support is only in Chrome, not in the open source Chromium.

</comment></comment><comment><USER33> how does Netflix(or Chrome) knows that is running on Ubuntu, and not on other distro?

<comment><USER34> I assume it works on other distros also.

<comment><USER33> yes it does!!! Netflix removed the user-agent restriction on Chrome: [http://www.engadget.com/2014/09/19/netflix- linux/](http://www.engadget.com/2014/09/19/netflix-linux/)

</comment></comment></comment><comment><USER35> Finally. Working with Chrome 38.0.2125.101 (64-bit) on Linux Mint 17.

</comment><comment><USER36> my problem is that as soon i install chrome, ubuntu becomes unstable...not with chromium, if someone has any advice on how to fix it, i would appreciate it.

</comment><comment><USER37> Does it work in Ubuntu? Or only Ubuntu in the USA?

<comment><USER38> Worked for me in Canada.

</comment></comment><comment><USER39> Anybody tried this on a raspberry pi?

<comment><USER40> Wouldn't work. You need Chrome (not Chromium) to run it.

</comment></comment><comment><USER41> Thanks DRM are now working on Linux.

<comment><USER27> I share your distaste for DRM, but wanted to throw in a comment of support for Netflix. A couple of years ago I was quite disgusted by how a Netflix employee was heckled on stage at the Linux Collaboration Summit. It seems hypocritical of our community to tout user freedom and then fail to treat a public speaker with decency. The right to redistribute other people's stuff unconditionally is not such a basic human right that it justifies such poor social behaviour.

I don't like DRM, and the impression I get from most Netflix employees is that they don't like it either. They haven't chosen to take the approach of Stallman and avoid all-things-DRM entirely, but theirs is an understandable choice and one I respect, even if I do not agree with it. They have contributed some awesome stuff to the free software community and are making media available in more readily accessible ways, even if it's not as readily accessible as some of us may like. It's the people producing the media who insist on such controls being in place in order to license their content to Netlix.

So - thanks, Netflix engineers!

<comment><USER42> I think one could take a position in between between treating invited speakers disrespectfully and endorsing their work. (It seems like that's maybe actually the position you're taking.) It would be great to find a way to articulate and strengthen anti-DRM norms in more parts of the technical community, so that people don't keep thinking of DRM as natural or inevitable (and so other people can see that there's actually resistance to it in the tech world!).

<comment><USER27> >> It seems like that's maybe actually the position you're taking

That's definitely part of it. I'm all for free-as-in-libre software, but the fact is very few people are willing to bet their entire business on free-as- in-gratis software, and that's understandable. When we attack companies who contribute heavily to free software because they do not contribute exclusively to free software, we're harming the free software movement as much as they are.

As a side note, I agree we need to come up with better ways to stop consumers from thinking of DRM as inevitable. Like most people on HN, I'm sure, I'm often asked for help with technical things - I find it has a big impact on people (albeit one at a time) when I explain how the vendor of the product makes it difficult for me to help them or for them to help themselves, and how they should consider vendors who place freedom above profit.

</comment></comment></comment></comment><comment><USER43> When did Netflix not work under Ubuntu? I have never had an issue using Firefox.

<comment><USER44> Always. This is native Netflix without running any unofficial patches to WINE to get it working. Sadly only supports the closed Chrome since that's the only Linux browser that supports the neccesisary DRM. You've been able to get Netflix working by faking your user-agent to Windows with a new enpoug Chrome and NSS, but this is without the faking your user agent part.</comment></comment>


The Best Way to Not Get Tenure - <AUTHOR> https://blue.cse.buffalo.edu/posts/2016-10-22-the-best-way-to-not-get-tenure/ <comment><USER2> I work in industry, but the key to getting stuff done in a hierarchical organization is _tact_. I think he is a poor politician, and is clearly very unhappy about being denied tenure. I think putting out feelers and going about a new job more quietly would be more effective.

Hypothetically, let's say you (the person reading this comment) want to make a big change in your organization. You identified a problem, and honestly think the solution is a fundamental change in direction. The incorrect next step is to bring up your opinion in front of the decision makers! This causes strife, anger, embarrassment, negative attention, etc.

The correct plan is to quietly gauge support, get allies, make your case one- on-one, and get things going with multiple stakeholders on board. No one embarrassed, the majority in agreement. Rocking the boat publicly (as this post clearly shows he is OK with) is not the mark of good political skills.

<comment><USER3> I'd agree that the way to appeal to management is to build relationships & grassroots support in the organization. But the way to appeal to the market (which seems to be his current situation now, since he seems to be looking for a new job) is to make a big splash, take credit for all the things you've done, define yourself in terms of what you'd most like to do, and then wait for the calls to come in.

The difference is on whether the set of people you work with is mutable or immutable. If it's immutable, you _better_ preserve relationships, because you'll be working with them in the future, regardless of what happens, and you need them to implement your plans. But if it's mutable, then when people dislike you, just find new people. Stake out a territory in idea-space, and then just adjust the set of folks you hang out with until everyone agrees with you.

Voice or exit. If you want voice, you've got to speak to what the people around you will hear. If you're willing to exit (or going to anyway), you can say what you want and swap the people out until you find the set who hears you.

Interestingly, the current U.S. presidential race is a perfect example of this. Trump is following the people-are-mutable, if-they-don't-like-you- fuck-'em strategy. He's burning bridges with everyone who criticizes him. And he's probably doing this because it has worked for him in business - when he stiffs a contractor, sexually harasses an employee, or loses an investor's money, there is always somebody else willing to get in line behind them. Clinton, however, is the consummate relationship builder. She's carefully worked across the aisle through decades of experience in Washington, such that she's got all the really important people supporting her. Trump's strategy works great at rallies, where he can speak only to the people who agree with him, but fails across the entire electorate, where he has to deal with a pre- existing composition that isn't going anywhere.

<comment><USER4> >take credit for all the things you've done

Might sound corny but -there is no I in team -. Great leaders bring change by assembling great teams where everyone gets their time to shine and don't take the credit for it. Everyone wins.

<comment><USER5> _Great leaders bring change by assembling great teams where everyone gets their time to shine and don 't take the credit for it._

Yes and no. Let's say your team has pulled off a major coup. As a (good) manager you very publicly say that all the credit belongs to the team. The team are happy and they love you. But the power players understand your real message.

<comment><USER6> This suggests that management is a duplicitous role. It shouldn't be. You publicly praise those who deserve it. You privately (i.e. in interviews) explain your personal involvement.

</comment></comment></comment></comment></comment><comment><USER7> I read the whole article and it's very hard to judge the correctness of most of the article's claims. Most importantly, it's hard to judge the most important thing: the author's own research.

However, I can say that there are different ways to interpret things. The author sees tenure as a way to establish obedience to the unwritten rules of the department. Based on my knowledge of academia, including friends who were granted tenure, the process is mostly fair, but of course most people are going to want to do everything they can to maximize their chances. What the author interprets as proving obedience, I interpret as not wasting time on things the committee can't measure objectively, or doing things that might piss off people on the committee.

As someone in industry, I see academia as somewhere where people can make immense contributions to human knowledge, that cannot be done elsewhere, but they have to jump through certain hoops to do so. Outside of academia there is very little opportunity to do research. Industry is conservative, and prefers to implement and refine known techniques.

<comment><USER8> I agree with this. But research isn't everything. And there are at least some hints and signs that this person doesn't know how to get along with colleagues.

> I worked really hard to bring an exciting and rigorous operating systems > class to UB.

Why did this effort require working "really hard"? Was it because of obstructionist, jealous, or stupid colleagues? Or people who wanted a boring and unrigourous course instead? Or were there perhaps legitimate reasons why others didn't want to change the existing course?

> I led a complete overhaul of our department's undergraduate computer science > curriculum. It includes two new exciting introductory programming courses > that I spent a great deal of time designing.

Let me guess: the existing curriculum was terrible, boring, not at all rigorous, and there was no reason to keep any of it, and the author made sure everyone knew it. And why did the author have to spend a great deal of time? Because no one else in the department was capable of doing as good a job? Because nobody else could comprehend this grand vision?

Everything listed under "speaking out" gives me the same vibe. It doesn't seem to have crossed this person's mind that there are reasons why other people have different approaches to teaching, research, administration, hiring, etc., beyond others being obstructionist, brainwashed, or just stupid. I'm reminded of the parable reminding us [1] to not take down a fence until we have truly understood why the fence was erected in the first place.

And really... bringing a dog to work in violation of a clearly stated campus policy, repeatedly, even after having been warned, then encouraging a student petition and getting your name in a local paper about the incident? That's just asking for trouble.

(Full disclosure: I'm coming up for tenure myself, and one lesson it has taken me 5 years to understand is that people who disagree with me on campus aren't doing so out of spite, stupidity, or carelessness, they often just have different priorities than I do. Just because our department absolutely needs more resources to do a good job handling our rapidly growing student population, doesn't mean the college should make this a priority over other things.)

[1] [http://www.chesterton.org/taking-a-fence- down/](http://www.chesterton.org/taking-a-fence-down/)

<comment><USER9> > Full disclosure: I'm coming up for tenure myself, and one lesson it has > taken me 5 years to understand is that people who disagree with me on campus > aren't doing so out of spite, stupidity, or carelessness, they often just > have different priorities than I do

In my experience, one problem is that the priorities are frequently rooted in the self-interest of powerful PIs or staff and are to the detriment of the department / university as a whole. As a staff scientist working on many different types of projects, I frequently bump up against stupid problems which should be fixed at a university level. At one point, I tried spear heading a number of these projects (creation of a central index of core facilities and support services for our university so people can actually find resources efficiently, centralized billing and training services for shared facilities across departments, secure storage and an EMR for investigators working with patient information).

All of these projects failed to launch for selfish reasons:

central index: powerful PIs feared discovery of their private core labs which they were abusing; core labs feared institute-level data would lead to institute wide optimization and loss of local control.

centralized billing: financial admins feared loss of control and had job security issues

centralized training: core labs feared loss of control

secure storage and EMR: PIs thought this was too inconvenient, preferred leaving shit on external hard drives with no access control. Feared if this were created they would be forced to use it.

I don't ever try to fix anything now beyond the lab level, and even that is frequently challenging.

I've also seen two talented investigators passed by for tenure in our department because my PI is powerful and other PIs fear that having another person from our lab in the department will further consolidate power in my PI's hands. Our department recently spent an enormous amount of money renovating a single floor in our aging building. That floor had the departmental chair's lab on it. In my experience, academia is full of people who for the most part are in it for themselves and have no interest in improving the situation of the group / lab / department / university as a whole.

<comment><USER10> I'm sorry but I suspect your deeply, deeply wrong and your work will damage your university. Everything you talk about is about centralising knowledge and control.

In practice, this never helps in the business of getting experiments done. Students and postdocs just pend some time doing pointless training courses, overheads increase, lead-times for ordering equiment increase. And to what purpose?

<comment><USER9> > Everything you talk about is about centralising knowledge and control. In > practice, this never helps in the business of getting experiments done

We have researchers that literally cannot get work done efficiently because they don't know that core labs exist on campus to serve them, and labs that spend tens of thousands to buy instruments that they seldom use for the same reasons. At a department level (let alone an institute level), we have no idea what instruments or services people need, and no usage statistics for instruments that we already have. This means that it is likely that shared facilities are sub-optimally serving the community as a whole, and labs are buying multiple copies of the same pieces of equipment when one unit could do if it were shared. The lack of central indexing also means that most labs have no idea what other labs are working on, which hinders collaboration.

For training, right now EACH core lab forces researchers to do similar training courses for the same instruments; there is no way to prove you know how to use an instrument without taking each course. Similarly, every core lab employs different billing software which financial admins / lab admins have to sign up for and deal with.

How is this at all productive or efficient for anyone? If you were to suggest a similar setup for interacting business units, you would literally be laughed out of the room at a company.

The reason people like this current system is precisely because it's inefficient and confusing. This makes it difficult to regulate at a high level and makes it ripe for abuse by powerful people.

</comment></comment></comment></comment></comment><comment><USER11> I don't know and can't speak to the merits of this guy's research, but it distresses me to see so many people here taking him to task merely for daring to publicly voice criticisms of his employer. Not just advising him "This may be tactically suboptimal...", but apparently actually mad at him for saying such things!

Are we not to be allowed, as human beings, to speak for ourselves? Are we to always be in our employee role, subservient to the boss, saying outside of hushed whispers only ever what most pleases the boss? Always in costume, any extra personality immoral to wear outside…

<comment><USER12> Since hardly anyone has firsthand knowledge of what happened, everyone is extrapolating (it's all anyone can do really). You are extrapolating that this is a case where individuality is getting crushed by The System and this guy's only crime was speaking the truth and not conforming to this or that soul crushing norm of professional life.

For the most part the less sympathetic comments I've seen are extrapolating that there may have been issues with maturity, professionalism, self- awareness, "reading the room", etc. Of course those comments also come from people extrapolating about what really happened based on the account of one person.

The truth is unknowable to almost everyone here, so all people can do is compare what was written to their own experiences. I don't think you're any more right or wrong than anyone else here, but I think your interpretation is based on a different reading of the situation altogether, rather than everyone reading it the same way but having different notions of what was just or unjust about what happened.

<comment><USER11> I'm not saying he was crushed for his individuality and truth-speaking then. As I said, I have no idea what he was like in the past, or the merits of his tenure case. I'm saying people, in this thread, are taking him to task for criticizing his (soon to be ex-)employer publicly now. That "Don't criticize your employer!" norm, to me, is a bizarre one for strangers to get upset over deviations from.

<comment><USER13> Vocal criticisms for a former employer will do nothing but come back to bite you. It looks pretty bad to future employers and burns bridges unnecessarily with the former employer, who you generally have to rely on for recommendations. In this case the public criticism being in general a bad idea just highlighted the lack of political acumen that this guy had already shown.

<comment><USER11> This becomes the chilling effect that one must never criticize their former employers, regardless of what happened or how one feels; they are to be treated as above reproach. Which is exactly the worry.

<comment><USER13> An analogy for it might be someone complaining about their ex on Facebook. You can still complain in private and voice your opinions when it's relevant but doing it in a public forum without prompting just screams immaturity. I mean it does have a chilling effect but I don't think that's always a bad thing (people's reaction to this post being a prime example as to why)

</comment></comment></comment></comment></comment></comment><comment><USER14> Kind of hilarious how many comments in this thread already echo the mentality he's opposing. Get in line. Don't rock the boat. Don't complain about your lot. And you probably deserve what you got, because it's what you got. (Aka Just World Fallacy.)

<comment><USER8> I think it's mostly just me. It's not so much "get in line", but "before you complain about getting in line, maybe consider why there is a line in the first place".

Getting burned by pissing off one or two people in your department is unfortunate. Pissing of more than half the people in your department? Plus lots of people in other departments? And the administration too? And even the local newspaper?

Either he is the only good guy in a sea of jerks, or maybe he's not quite the good guy he thinks he is. I don't know the which it is, and the article doesn't tell us either.

I'm not sure why this story upset me so much. I think it is because when I started in my department, I saw things I thought were terrible -- courses that hadn't been revised in years, the wrong languages being taught, outdated exercises, poorly-written web pages, cumbersome processes, etc. And I said so, frequently. Thankfully, I had some great mentors to help teach me to slow down and listen to others, and work with others. We've now made lots of changes, updated the curriculum, and done it all together. And some things I thought were terrible I know realize are actually elegant solutions to problems outside of our control (e.g. finite money and time and expertise, and a college administration that needs to think about public perception, alumni, gifting, athletics, other departments, and lots of other things besides "what will make the CS department awesome").

<comment><USER15> Often feeling that any criticism of your work is unfair can blind you to what the real criticism is.

Yeah, there's probably a few folks who you can't win over no matter what. But, there are also valid and real takeaways that colleagues are offering, and holding your hands over your ears saying the system is rigged isn't going to help one to continue to grow.

</comment></comment></comment><comment><USER16> This article has a powerful and important point to make. But much of the strength of an argument rests on the author's evaluation of his own contributions which is almost unfailingly positive.

The article would be even more effective if accompanied by statement from one or more of the eight department members who voted against granting tenure.

<comment><USER17> He obviously pissed off his department, and so they voted with an aim to punishing him. He's a fool not to appeal it, though. If he appeals then the decision will be made by people outside of his department who won't have the same emotional stakes in the decision. Rage quit after you win your appeal, if you must!

$3,000,000 in funding, most of it still active is astonishing ([https://blue.cse.buffalo.edu/proposals/](https://blue.cse.buffalo.edu/proposals/)), and his DBLP ([http://dblp.uni- trier.de/pers/hd/c/Challen:Geoffrey](http://dblp.uni- trier.de/pers/hd/c/Challen:Geoffrey)) is pretty awesome (note: he's in DBLP as Geoffrey Challen, Geoffrey Werner Challen, and Geoffrey Werner-Allen).

But he _DID_ keep his dog in his lab, against university policy: [https://web.archive.org/web/20151002100639/http://www.buffal...](https://web.archive.org/web/20151002100639/http://www.buffalonews.com/20130308/Off_Main_Street_The_offbeat_side_of_the_news.html)

I hope he changes his mind about not appealing. The grass ain't greener anywhere else. All university departments are filled with miserable gossips.

<comment><USER18> It looks like he also flipped classrooms and was active within the department service-wise. That's a pretty crazy decision not to tenure him from the outside.

<comment><USER19> It was really crazy in the department too, at least among undergraduate students. His lab is very well known as a great place to learn about the development of mobile devices, which is basically not offered in any courses and difficult to be formally educated in otherwise.

</comment></comment></comment></comment><comment><USER20> Working in a large organization straight out of college, I've learned the meaning of the phrase 'pay your dues.' When you get hired at a large organization, you're expected to fall in line for a while before you get entrusted with political clout. Many people chafe at this: why is someone of my caliber wasting his time doing low-level work in an obviously broken system when I could be making real change happen?

The naive and/or cynical answer is because the organization demands conformity: wouldn't want to hire a fresh thinker to derail our institutional gravy train! Let's burn them out by making them jump through an arbitrary and tedious series of hoops so they come out the other end too limp and tired to overthrow us! This interpretation is nonsense.

The informed answer is that this stage is an additional filtering process. Being a leader in a large organization requires politicking: coalition building, patience, tact, etc. Not every junior hire will develop these skills. Organizations that endow too much power in someone lacking such skills will inevitably suffer from unnecessary conflicts and (often) fruitless instability.

This post seems like the author is listing his accomplishments while stunned that they alone don't qualify him for tenure. However, I would wager anything that his potential to accomplish these sorts of things was obvious to the department from day one. If so, it likely influenced their decision to hire him in the first place. His achievement of this potential yielded little new information. Meanwhile, his ostentatious conflicts and overly vocal style likely did.

My personal assessment is he's clearly a brilliant and hard-working faculty member, but the rock-the-boat actions he boasts and the very fact that he wrote this post suggests that he lacks the soft touch of a leader. Tenure doesn't just mean being un-fireable, it means helping shape your institution, and a brilliant leader without a steady hand is more trouble than he's worth.

</comment><comment><USER21> I am surprised by the sentiment of many of the comments here. Perhaps it is from spending so many years in the academic world, but I have repeatedly witnessed how "conforming" or "following protocol" with hopes of tenure has fostered teaching and research deficits within academic communities.

I don't know the author of this article or his research, but his story is entirely plausible. Tenured faculty can be brutal to those bidding to join the club, often perceiving the most well-intended actions to be threatening. In the end the consequences most strongly harm the advancement of the field and the education of students.

</comment><comment><USER15> I know this is a rough situation, but perhaps there are real merits to the decision that I wish we could've seen discussed in the post. For example, I went ahead and watched a few of the videos from his internet course and very quickly grokked what kind of professor he might be.

On an industry level, yeah he's right. These things are happening throughout academia in departments everywhere. Tenure is a poorly designed system. Most likely, UBuffalo is missing out on a great teacher. On a personal level, it'd be a shame to walk away from an experience like this as being cynical and defensive.

<comment><USER22> What kind of professor is he?

</comment></comment><comment><USER23> This article is somewhat resonating with me, and where I am in my life right now. After a few years of postdoc, I'm at a crossroads of where I want to go. In some sense, I'm a lot like the author, and I'm not really doing enough of what "they" want. I love research and tackling tough problems. But becoming a full professor just isn't about that.

I'd much rather stay in my office and work out a problem than go to a conference and "network". Or waste time writing a paper about my incremental progress (I could just wait and write about the whole thing!) That makes me a terrible "scientist", I guess.

<comment><USER24> As my gran used to say - "we don't bake 'rather' cookies here". I mean, I'd 'rather' lay in my hammock sipping pina coladas, but here I am on a Sunday afternoon waiting for my project to compile. Every job has aspects to it that aren't much fun, that's why it's a job.

</comment></comment><comment><USER25> Academics realize that when they grant tenure to someone, that person is likely to be their coworker for the next several decades.

This guy may very well be brilliant in his field, but he is clearly not a good fit for the department he was in. Quite frankly, he seems to be abrasive and a bit of a dick. He also seems inexcusably naive about how academia works, considering how long he has been an academic. Why would any rational person in his department guarantee him the job security to stick around for the rest of his career?

Why would anyone want to hire him after the unprofessional and petulant display he just posted on the web?

<comment><USER26> Assuming he is indeed "brilliant in his field" and simply not very good at politics, there are _tons_ of places who will happily hire that combination.

</comment></comment><comment><USER27> Here's a (albeit small) sample of his students' opinion of Geoffery.

[http://www.ratemyprofessors.com/ShowRatings.jsp?tid=1626392](http://www.ratemyprofessors.com/ShowRatings.jsp?tid=1626392)

A common criticism seems to be that he has a huge ego.

<comment><USER28> I've seen so many professors I loved, especially the tougher ones, given crappy ratings by stupid idiots who choose to use that site.

</comment></comment><comment><USER29> Most people, when passed over for promotion, don't write about it publicly. One has to wonder what sort of spirit possessed this author.

<comment><USER30> That's not how tenure works. Up or out -- you get tenure or you hit the road. So this is actually fairly common in academia. Sort of a parting shot, if you will.

<comment><USER31> Yes, but he's now trying to take his show on the road and get a job at another university. The reason this "parting shot" is risky is that it may get him pre-emptively ruled out by a lot of other hiring committees.

<comment><USER32> But speaking out here about the reasons he was denied tenure may be the only chance he gets to present that to some schools that might otherwise say "Buffalo knew this guy and tossed him, they must know something."

It may also prompt potential employers to look at the makeup of the department that rejected him - is it full of people who got their initial degrees when 32-bit architectures were theoretical novelties?

<comment><USER31> Good point. In this case I think he's confident that he'll get a job _somewhere_ , and therefore he's willing to do this as a way of eliminating potential employers from contention based on whether they do or don't value the kinds of contributions he's making. It's a good strategy _unless he 's wrong_ about how desirable he is.

</comment></comment></comment></comment></comment><comment><USER33> it's such a letdown when one realizes that universities are not this ideal utopia where everyone's a straight talker, where there is zero politics, where the people care about research and not the money it brings etc.

Must have been depressing for this guy to realize that universities nowadays are just massive hedge funds that sponsor football programs that are bigger than computer science departments.

<comment> hash-set Couldn't have said it better! They want to place stupid games? Then watch their relevance dissipate into nothingness. Science doesn't need the current research system in order to survive and thrive.

</comment></comment><comment><USER34> Well, that's his side of the story. Burning bridges publicly while signalling that you are difficult to work with is a twofer. Classy. Subtle. There are 8 people who have any second thoughts answered, and likely two others who might not abstain if given a second chance.

Life goes on. Pick up your pieces and build a new dream. Don't stand on the bridge you are burning.

</comment><comment><USER35> If the author was really "point[ing] out problems with resource allocation, poor distribution of teaching load, lack of diversity among both our faculty and students, terrible graduate admissions systems, looking the other way regrading student plagiarism, and our neglect of our undergraduate programs" from the start, then I'm not surprised at the outcome. While I'm sure most or all of what the author complained about were true problems, the fact is that your colleagues (1) already know; (2) know a lot more than you do about _why_ things are broken (or the reasoning behind what only _appears_ to be broken); (3) might already be working to fix it; (4) might be _responsible_ for what you're ranting about, which may well be a huge improvement over previous iterations of the policy/system; and (5) don't appreciate being lectured about how broken everything is by someone that doesn't realize #1-4.

Tenure is a big commitment by the department and the university to your career. No matter how successful you are on the objective criteria behind the selection, you also need to be someone the faculty can envision being glad to work with for the next few decades, and who they think can be effective in improving the department in the future. If we believe the author's own evidence, then I would have been inclined to vote nay as well.

<comment><USER36> If any of those items were true (and I highly doubt that), his colleagues should have simply mentioned it rather than stay quiet, passive aggressive, and butthurt.

<comment><USER35> I'm guessing they _were_ trying to mention it and he interpreted it as "don't make waves till you get tenure". And sure, some people explicitly say that, but the fact is, new people in an old organization do not understand the complexities, and telling everyone they're wrong is not going to win friends or influence people.

</comment></comment></comment><comment><USER37> Here's a similar blog post from 3 years ago, with similar HN comments...

[https://blogs.scientificamerican.com/guest-blog/the- awesomes...](https://blogs.scientificamerican.com/guest-blog/the- awesomest-7-year-postdoc-or-how-i-learned-to-stop-worrying-and-love-the- tenure-track-faculty-life/)

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

</comment><comment><USER38> Couldn't scroll on the site on my iPhone. I don't think I've seen that before.

<comment><USER39> I've had it happen before, what's likely happening is that you're scrolling an element behind the article due to a bug in safari with z indexes.

</comment></comment><comment><USER40> How come the three papers that the author cites as examples of groundbreaking work have 2 citations between them? Is this the norm in computer systems?

<comment><USER41> They were published this year. They'll be cited next year if they are useful. There's a 6-9 month delay between paper submission and publication.

<comment><USER24> So how does he know they're so great then? In academic career progress contexts, citations are what matters. If your 'great' papers have 2 citations, they're objectively not great - in fact, they're pretty shit even. They might become 'great' next year, time will tell - but making a case of how great a researcher you are with a paper selection like that is, well, not very smart.

<comment><USER41> If they are new, they are neither proven great or shit. Like a new novel or work of art, or any IP.

The author is proposing that people read those papers becaus he is proud of them. Nothing wrong with that.

<comment><USER24> No, not true. He's arguing he's an asset to the university, and one of his arguments is his publishing track record. In that context, there are two way papers are 'good': they are published in Nature or The Lancet, or they have high citation counts. Whether a paper _has the potential_ to get lots of citations doesn't count for anything. Likewise, if the content is super out of this world great, but nobody has cited it - _the paper is shit_.

In all sorts of other contexts, obviously there are many ways in which something can be good. In the specific way he used it, there is a very well- defined and objective standard, and he fails it.

<comment><USER42> Why do you hate this guy? In most areas of computer science, certain value of publications is attributed to the venue where they are published, which isn't necessarily science or lancet. His RV work got the best paper award, which is a good indicator of quality and potential. The other two papers are in reasonably good venues.

I think that his publications record isn't great, and that and his personality are perhaps what lead to his tenure's outcomes, but that's not a point you are making.

</comment></comment></comment></comment></comment></comment><comment><USER43> From this other page [https://blue.cse.buffalo.edu/](https://blue.cse.buffalo.edu/) , it looks like he can take his grants, research, Phd students and courses with him to a new job! I'm totally amazed at that. Don't they belong to his old university? Is that how it usually works in universities?

<comment><USER15> Most times, grants stay with the department and they have the discretion to use the remainder however they want.

<comment><USER44> Not quite; there's a mechanism for this, though the details vary by department/funding source/phase of the moon. Typically one can take at least part of earned grants elsewhere, though sometimes the originating school can still take overhead before transferring the rest (leading to double-overhead, when the new school takes a percentage of the remainder).

(The funding system doesn't always make sense, but it REALLY wouldn't make sense to give a grant, especially something like a CAREER, which is given to a single PI based on the work that PI proposes to do, to a department where the PI who proposed to do the work no longer actually works...)

</comment></comment></comment><comment><USER45> Why is Tenure still a thing? It's basically a lifetime employment contract.

It seems the only argument for tenure is academic freedom.. a tenured professor can pursue an avenue of research without fear of reprisal for it being controversial or not yielding results (though really, even experiments that 'fail' actually serve to prove that it's not the way to go).

It seems to be me like this is a problem that can be solved in many better ways. For example, employees in most (every?) jurisdiction are protected by laws that mean they can't be fired without just cause. Even if the employer tries to find ways around this (making up reasons), the fired employee can generally lodge a complaint/lawsuit to prove otherwise. Can some type of protection of this sort not be written into academic contracts as well?

<comment><USER46> > employees in most (every?) jurisdiction are protected by laws that mean they > can't be fired without just cause.

The United States is not one of those jurisdictions. Employees can be fired for any reason other than certain protected reasons (race, etc.) One can literally be fired for supporting the wrong political candidate, for example.

<comment><USER47> I understand the spirit of your comment, and it's probably a fair summary for anyone unfamiliar with at-will employment, but

(a) a lot of this is state-specific, not US wide as you indicate

(b) many states have laws specifically to protect employees from being fired for their political affiliations and activities.

(c) some states have even broader protection

But, to your point, you can always fire someone for their political view and say it was for one of a billion other non-protected reason.

<comment><USER46> The specifics vary by state, of course, but actually very _few_ states protect political activity, either inside or outside the workplace. In fact, only 3 states specifically protect political activity, and two others protect "lawful conduct outside work."[0]

But, yes, you can always fire your employees for being too attractive[1], if firing them for their political beliefs is too risky or distasteful.

Broadly speaking, unless the employee has contractual protection; or the reason is discriminatory against members of a protected class, is in retaliation for exercising other workplace rights, or is contrary to public policy; it's legally acceptable to fire anyone for any reason.

[0]: [http://www.workplacefairness.org/retaliation-political- activ...](http://www.workplacefairness.org/retaliation-political-activity#1)

[1]: [http://www.nytimes.com/2013/12/01/fashion/Some-women-are- fir...](http://www.nytimes.com/2013/12/01/fashion/Some-women-are-fired-for- being-too-attractive.html)

</comment></comment></comment></comment><comment><USER48> Look at his video on the flipped classroom format. He really draws out the explanation. Very verbose. I'm not impressed. It could have been explained in one sentence.

And he loves to say "you know." Way too much.

And when he writes names of people on the whiteboard (later in a video on packets) he scribbles them. If it's worth writing down, it's worth writing clearly, especially for something like a person's name where it's not a dictionary word with a known spelling. This is a quality of instruction issue. To be a great teacher, you have to notice these things, care about them, and fix them.

</comment><comment><USER49> I know number of citations is far from perfect, but from a rough look at google scholar his papers (since he started as assistant professor) have been cited <100 times... I am not too familiar with his field but in most CS fields I would assume that hardly counts as groundbreaking research.

I am sure there is some kernel of truth in his claim of unfairness, and he seems like a genuinely great teacher, but denial of tenure seems more like a case of promising faculty (his publication record prior to his start at UB seems stellar) not living up to expectations?

</comment><comment><USER50> I don't know why he has significant supporters here, saying things like "stay true to principles".

Principles don't require a person to project bitterness and cynicism. He's indulging his frustrations which may feel satisfying, but does not strengthen his argument.

Many organizations would pass him over based on this post alone because they would worry he may be difficult to manage or not a team player.

It's true many people don't have political skills but there are workarounds. For example, always get a second opinion before posting something like this.

</comment><comment><USER51> Those who noted his discussion about teaching might want to consult youtube for some examples of how he does that.

</comment><comment><USER52> As the Japanese say, the nail that's standing up gets pulled out.

</comment><comment><USER53> This resembles the late stages of stack ranking, where in the "endgame", the remaining high ranking contributors try to preserve their ranking by avoiding working with potentially stronger contributors.

Stack ranking is a downward spiral.

</comment><comment><USER54> _my department voted against my tenure case earlier this week_

Since this was posted 2016-10-22, I'm gonna assume the department did this smack in the middle of the semester.

<comment><USER31> Academic job markets get started around this time of year, depending on the discipline and affected by the dates of their big conferences, for jobs to begin in fall of the following year. So by giving him the decision now, he has enough advance notice to prepare his CV and apply for jobs.

<comment><USER54> I guess you're right. I took a class once where the prof was denied tenure about half way through. He was completely deflated and it affected his teaching considerably. He'd expected he'd get tenure.

</comment></comment></comment><comment> hash-set As a former academic, my advice is that this may hurt in the short term, but staying true to your principles is important in a world where situational ethics rule. I am a lifelong libertarian and made no attempt to hide it. Leftist academics are not interested in diversity of thought, they are not interested in debate. They merely want to rule and have an echo chamber. I found that most of them weren't even very intelligent people--just kind of mediocre, and that most were intimidated by anyone with real gumption, diverse skills, and the bravery to speak against the party line.

The world needs you. No matter what your politics are, if you truly are advancing science and doing all the things you wrote about, you will be fine. You just need to take this lesson to heart and understand that the machine is like Skynet in that it protects itself.

I further recommend you leave NY State, especially upstate. It's had it. Barring some massive turnaround, there is no future for anyone in Upstate NY.

</comment><comment><USER55> Somehow, everyone thought that putting people in a straight-jacket for 30-35 years is a great way for obtaining "creative individuals".

</comment><comment><USER56> Well, I guess I am generally one of the worst performing employees. But why would you post such a statement in public? Maybe he is right in everything but in making this public I would never hire this guy. Probably would like to hang out for a beer with him. But hire?

</comment><comment><USER57> Well, everything is negotiable. If he's bringing in money, negotiate with the university about a good salary.

It's no more job security than in corporate america.

</comment><comment><USER58> I both admire and feel sorry for the author. To pour your heart and soul for so long and not achieve your outcomes can be very hurtful and devastating.

The language in this document is telling in a few ways. There is not much about collaboration with peers or superiors other than conflict. The article left me with an impression of conflict and someone who wasn't a team player. I am guessing that cultural compatibility was an issue. It may be possible that the outcome may be for the best because it may help the author grow (although, public accusations will not be seen well by future employees as it's airing many people's dirty laundry).

I'm also note that the author raises some issues that I as a boss take exception to. For example, more diversity. I am aware that in today's climate, diversity is a highly charged, politically correct topic. The author talks about diversity by hiring by gender. What diversity is the author seeking? That of genitals? Is there some magic empathy or creativity that females supposedly have? I've always built teams based on needs of skills, personality, cultural fit. As an example, I knocked back a highly qualified, well presented male candidate because he was too ambitious for a maintenance role. This was not because of his gender, but, because he was unlikely to provide a long term ROI and would expect promotion that couldn't be delivered and cause unrest by venting disappointment as a lack of growth. I would most probably be seen by the author as being sexist for not hiring by gender to fill a quota and I would view the author as sexist for hiring by gender and being unable to see that diversity is not a gender, but skills and personality.

I would encourage the author to ask themself if they are a team player. I would encourage the author to understand themselves and the sort of culture they want to work in. Maybe, it is a culture of creativity rather than talent that the author craves (as an example). Seeking feedback from peers outside of work may be very helpful and revealing too.

I can be confrontational (too many fights over too many years), but I know who I am and I know what I want. I support my organisation above myself (during working hours) and I support and respect juniors, peers and more senior staff. I negotiate my views. I listen carefully. I seek feedback from my peers. I align my views with my peers where it doesn't compromise my principals. As an example, I would never work for a company that hires (or excludes) by gender or race because I want freedom to hire the right staff, not some boxes ticked. I know myself and my employee. I turn down jobs where I don't believe in the company for my own sake and the company's.

I wish the author the best of luck and hope they have the courage to ask the tough questions. I think they need to ask some tough questions.</comment>


Jihadist US teen faces prison for blog, tweets about encryption and Bitcoin - <AUTHOR> http://arstechnica.com/tech-policy/2015/06/jihadist-us-teen-faces-prison-for-blog-tweets-about-encryption-and-bitcoin/

<comment><USER2> I don't quite understand how this is anything other than prosecuting someone for speech. Blogging and tweeting are "material support" for terrorism? That sounds a lot like artificially designating "Quakers" as "Official Boogeymen of the Century" and then prosecuting people for tweeting or blogging about oatmeal or something.

What a farce. Are the US Federal Courts so empty that they can waste time on crapola like this?</comment>


How long will it take for Google to index this? - <AUTHOR> http://www.google.com/search?q=%22How+long+will+it+take+for+Google+to+index+this%3F%22&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a

<comment><USER3> I couldn't resist checking: [http://search.yahoo.com/search?p=%22How+long+will+it+take+fo...](http://search.yahoo.com/search?p=%22How+long+will+it+take+for+Google+to+index+this%3F%22&fr=yfp-t-501&toggle=1&cop=mss&ei=UTF-8)

[http://search.live.com/results.aspx?q=%22How+long+will+it+ta...](http://search.live.com/results.aspx?q=%22How+long+will+it+take+for+Google+to+index+this%3F%22&go=&form=QBHP)

[http://www.alexa.com/search?q=%22How%20long%20will%20it%20ta...](http://www.alexa.com/search?q=%22How%20long%20will%20it%20take%20for%20Google%20to%20index%20this?%22)

All duds for now.

<comment><USER4> PG talked about blocking all non-Google crawlers in an attempt to cut down on traffic ... not sure if he ever did or not

<comment><USER5> There doesn't seem to be anything about it in HN's robot.txt.

Of course, it may have been implemented in other ways.

<comment><USER6> What are those "x" URLs blocked in the robots.txt for HN?

</comment></comment></comment></comment><comment><USER7> 20 minutes ish. Very good. Keep in mind that as they update the 21 "minutes ago" will get farther, so it may have been even sooner.

</comment><comment><USER8> Historically the indexing factor is tied to the amount and authority of a domains inbound links. Not all sites will get the results yielded on this domain.

</comment><comment><USER9> I've seen some blog posts indexed within 2 minutes. A lot of people have reported sub-5-minute indexing. 20-40min is good and the most common time frame in my experience and from what I understand from other people.

Ultra-fast indexing depends on posting just before the crawler hits the index page. A lot of luck is involved to catch the crawler like that.

<comment><USER10> If someone uses Google Reader to subscribe to your RSS feed, then your new blog posts are likely to get indexed as soon as Google Reader sees your new post show up in RSS.

</comment></comment><comment><USER11> In the spirit of Douglas Hofstadter... nice recursion.

<comment><USER12> If I imbeded the search result in a third webpage and then googled that page...woo, makes my head hurt.

<comment><USER13> This isn't even that odd. That's just plain recursion.

Each notice of indexing should alter the query text based upon the comments at the time.

</comment></comment></comment><comment><AUTHOR> Indexed. 25 minutes?

In their excerpt, they note that it was posted 21 minutes ago. So that seems to be their score.

</comment><comment><USER14> 5 weeks ago, I had a question regarding aws and created a topic in the amazon forum. Afterwards I searched google again, with different keywords and I found my own topic. That was scary. Only a few minutes passed (at most 5)

</comment><comment><USER12> Google is impressive, that's for sure.

</comment><comment><USER15> I posted "Quisquis custodiet ipsos custodes" on reddit, then immediately decided I wanted to check my spelling--I was already the top result in Google.

<comment><USER15> ...and now this one's on top, with the former post in second place. My mind boggles at the possibilities for recursion.

</comment></comment><comment><USER16> for those of us who have never run high authority websites -- if google indexes you that frequently, how much bandwidth do they use up?

</comment><comment><AUTHOR> Google has gotten much faster at finding new pages lately. It would be interesting to know how much faster.

</comment><comment><USER17> No offence Tarquin, but what's the purpose of this test? It cannot possibly tell us anything about our own sites, or the sites we work on.

Like many of us, I've already tracked the time it takes for Google to index the changes to my own sites - about 14 hours. I work on sites that the Google robots hit only once every 2 weeks - less content, and fewer updates, though some of them earn 10 times what my more 'frequent' sites earn.

Good O, Hacker News! Which means sweet _F_ all to me, all of my customers, and pretty much everybody else on the planet.

By the way, how long IS a piece off string?

<comment><AUTHOR> Tarquin?

The purpose was to measure a phenomenon I'd previously observed -- that it's getting harder to find answers on Google, because people post their questions on well-trafficked sites, and within a few minutes, those sites rocket to the top for a well-crafted search query trying to answer the question.

"By the way, how long IS a piece off string?"

I don't know, but strlen(piece) probably does.

</comment></comment><comment><USER18> Thats pretty impressive. I have noticed my small blog posts get indexed quickly on google.

</comment><comment><USER19> 30 to 90 minutes for this site

</comment><comment><USER20> I recently thought about this: what if the whole internet worked more like Twitter? People are laughing about Twitter and think it is an easy problem, but not even Google manages instant updates! The equivalent to Twitter for Google would be to index all news on the internet immediately.

In that sense, I think we can cut Twitter some slack...

<comment><USER21> Except that you're off by (at least) several dozen orders of magnitude. Twitter, in fact, is several thousand times smaller than even GMail, which has ~100,000,000 registered users to Twitter's ~1,000,000 ([http://twitterfacts.blogspot.com/2007/10/twitter-number- of-u...](http://twitterfacts.blogspot.com/2007/10/twitter-number-of- users.html) \- and that's assuming twitter's user base has over doubled in the last six months while GMails has remained stagnant for the last year or so).

Google manages to route large messages between GMail users instantly, without breaking a sweat, and with 100% uptime (so does Microsoft, Yahoo, and every other major email provider). They have no trouble dealing with users who send or receive thousands of emails a day, while twitter claims this is some sort of pathological, borderline-impossible case to deal with.

And GMail is relatively trivial compared to actually indexing the internet. The last decent estimate I saw (2005 - <http://www.cs.uiowa.edu/~asignori/web- size/>) suggested the indexable WWW is ~ 12 Billion pages - and god knows how much that has increased in the last four years.

Seriously, make sure you're in the right ballpark - hell, in the right galaxy - before talking out off your ass. Twitter's problem should be easy today - <USER2> was solved decades ago. The fact that Twitter can't scale is nothing more than a testament to their incompetence.

<comment><USER20> Well I was really thinking about twitter replacements, as I said - what if the whole net would work like twitter? I update my blog and I want it to be known instantly. Google does not provide it yet.

But I have also thought about mail, perhaps it would be easiest to replace Twitter with "micromailing", and use existing software solutions. Difference is of course the "only receive messages from people I subscribe to" thing, but that should only make it easier.

Edit: also, google mail doesn't do polling, so maybe it is very different after all. It's a completely different architecture. Maybe Twitter would work better with an inbox-per-user model, but I wouldn't bet on it.

Another difference: most emails don't go to dozens of recipients at the same time. Tweets often have several hundred recipients.

<comment><USER21> For starters, I don't buy your premise that most mail doesn't go to dozens of recipients - I don't have data to back this up but I'd bet that between mailing lists, spam, etc., the vast majority of email (by volume) is sent to multiple recipient.

And yes, it is true that SMTP doesn't use polling. But that is _because_ polling for messages doesn't scale very well - a smart 15 year old could tell you that. I don't how twitter's architecture works, but if it polls all a user's subscriptions each time that user logs in then I say that was a bad architecture decision.

It would be pretty straightforward to emulate subscriptions with a 'mailing list' type solution. The simple fact of the matter is that Twitter chose a poor architecture. If they simply used an inbox/mailing list type solution all their problems would be non-existent and twitter would scale, near linearly, as you increased the number of servers.

Yes, it would be grossly inefficient HD space wise - but who cares? Normalization (seems to be) what got them in this mess. And disk space is cheap enough that it doesn't really matter.

Assume Twitter had a million active users (they don't), and that they each sent 5 Tweets/day on average (users don't), and that each user was subscribed by 5 Users on average (they aren't). That means about 5GB of Tweets are made a day. Using an inbox type scheme (with absolutely no normalization - which is unlikely) that would only require about 25GB of storage a day. Given reasonable cluster costs (and assuming data is 4x redundantly stored on the cluster), that would require well under a $100K/year in storage expansion (to store all tweets forever). Using semi-intelligent caching and partial normalization I think it would be pretty easy to cut those storage requirements in half w/o breaking a sweat.

I say again Twitter's problems are trivial - they just seem to have (initially) made a lot of poor design choices, and are now living with the consequences.

<comment><USER20> I can't really defend Twitter's architecture, I am simply interested in the best way to implement something like that as well - but not as a centralized service.

Just a note: email does polling, too. Most email clients poll the server on a regular basis. But that is usually every 5 minutes or less? Twitter has just limited polling to 30 times per minute for external clients, if I remember correctly.

I haven't thought too deeply about it, but I wonder if a mixture between polling and pushing could work. Either it could be decided on the nature of the client if it should push or poll (ie how many subscribers does it have, how active is it), or clients could connect and say "please push for the next 20 minutes" or just send keep-alives. If client alive, push, otherwise let him poll? I doubt that polling could be eliminated completely. If an email server is offline for an extended period of time, the message never arrives. Mabye that is acceptable, though.</comment></comment></comment></comment></comment>


Paid/for-credit UC online courses fail to lure outsiders - <AUTHOR> http://www.sfgate.com/education/article/UC-online-courses-fail-to-lure-outsiders-4173639.php

<comment><USER2> "UC's in this gray area of offering neither free courses nor conventionally high-priced (undergraduate) degree programs online."

That's their problem. Their competition isn't so much Coursera and Udacity as it is University Of Phoenix. It's going to be hard to get people to sign up for random classes at $1400 each, but put it in a whole online degree program and sure UC can beat the for-profits. If they can't, then some people need to be fired.</comment>


It's OK Not to Write Unit Tests - <AUTHOR> http://blogs.msdn.com/b/cashto/archive/2009/03/31/it-s-ok-not-to-write-unit-tests.aspx <comment><USER3> Favourite paragraph:

"If you're a Java programmer and want to have a rude awakening, go download Jester. Jester is an automated mutation testing tool - it goes in and replaces "<=" with "<", "&&" with "||", "!" with whitespace. And then it re-runs the tests. And then you get to watch in horror as your tests still all pass, regardless of what the product code actually does."

<comment><USER4> I don't understand at all. Why would the tests still pass?

<comment><USER5> Because the author wrote poor tests and thinks that you did too.

<comment><USER6> Indeed. The whole essay boils down to "bad unit tests are useless, therefore unit testing isn't worth bothering with".

<comment><USER7> More like "bad unit tests are useless, good and useful unit tests are hard and take a significant chunk of time, therefore weigh the costs vs the benefits before deciding whether to bother or not"

<comment><USER5> Hm. Before deciding that good and useful unit tests are too expensive, spend a week or three doing live support of poorly reported and hard to reproduce issues where the numbers were slightly out or the result came back ten seconds later than it should, one time. that will change your perspective on what's hard and what's not. And possibly damage your will to live.

<comment><USER6> Indeed. If you think good unit tests are time-consuming, try debugging code with lots of subtle bugs in it.

<comment><USER7> If the bugs are that subtle what makes you think you're unit tests are comprehensive enough to catch them? The hardest bugs to debug are the types that show only on high latency networks and only when dealing with files bigger than 2GB and only after the app has been running for at least 50 hours. Those are also the type of bugs which are almost impossible to write unit tests for.

I'm not arguing against unit tests, they definitely have a time and a place. I'm just not convinced that they are an easy and instant cure for all your hardest bugs.

<comment><USER5> Unit tests may leave you with remaining subtle bugs. This is better than having both subtle and obvious bugs. Obvious under test, e.g. "the class returns null when it should return object y", which can have subtle and easy- to-miss symptoms in a production system

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER8> I don't see why a fanatical anti-rant is any better than a fanatical rant.

 _There's this theory out there that Agile projects can refactor fearlessly because there's this immaculate suite of tests that can sound the alarm the second the smallest regression gets introduced. But anyone who's actually tried it knows that it's mostly just a fantasy._

Poppycock. My project has an extensive test suite that we rely on to make major design changes with alacrity, just exactly the way that unit-test advocates advocate. We couldn't dream of doing what we're doing without it.

It's true that not every module of every system responds equally well to this style of testing. It's true that putzing around revising test infrastructure for the nth time really sucks. But these are points that belong in a _serious_ discussion, the kind that recognizes tradeoffs.

<comment><USER9> cashto's post was a "serious" effort to disperse the cloud of dogma surrounding unit testing and TDD. I hardly think that lashing back with "poppycock" is driving the conversation in the direction of "serious discussion".

cashto emphasized that unit testing is useful for teams with non-expert programmers (viz. his comment about the Dreyfus model of skill acquisition). Many of us are non-experts who benefit from working with the TDD training wheels on; it's O.K. to be less a Jedi All-Star hacker. But the phenomenal programmers, the men and women who were 10 times better than me, could not be bothered with TDD, even through the endorsed it for mere mortals.

To paraphrase the TDD credo of "no test is worse than having no tests", we can assert that blind faith is not better than no faith at all.

<comment><USER10> this is one of his worst arguments. I find it almost exactly the opposite. I've been programming for almost 20 years and I am considering myself an expert. and many people around seem to agree ;). most of the beginning was spent w/o any kind of unit testing. But I find it that I do more and more testing with time, and I'm sure as hell I'm not becoming a weaker programmer that suddenly needs the training wheels ;)

<comment><USER6> I've been programming for nearly 30 years, and started doing unit testing about 8 years ago. I've found it helps me a lot.

</comment></comment></comment></comment><comment><USER11> Ah, when I first began to read this, I expected one of those rants against unit tests which don't leave any kinda good thing about tests and I mentally got ready to comment about that.

However, I am quire pleased that this is a very sensible and mature position about unit testing (I think a short version would be: well, testing can help, it won't carry you and you have to stand on your own feet, but it can help), which is pretty close to my own position. Good Article.

</comment><comment><USER12> Aside on testing: I was surprised in re-reading Fred Brooks how cloose he sounds to unit-testing, in _Mythical Man Month_ , 2ed, pp.147-148. He suggests testing components separately, before integrating, even though this requires lots of "scaffolding".

Scaffolding includes _dummy components_ , _miniature file_ (minimal eg of a file format), "generators of test data, special analysis printouts, cross- reference table analyzers" (jigs and fixtures).

 _"It is not unreasonable for there to be half as much code in scaffolding as there is in product"_. I end up writing a lot of the above kind of code - <USER2> as automated unit tests, but just as a way to make sure my code is doing what I think it's doing - just plain ol' testing. It can feel wasteful, so it was reassuring to hear Fred's take.

</comment><comment><USER13> As with all things, truth is somewhere in the middle. I've found that unit tests do help me write better code and find corner cases which I would otherwise miss. But I don't treat them as a religion, and I don't write them for every function.

Just don't overdo either way and you'll be fine.

<comment><USER14> But people really don't want that kind of sensible mature argument and would rather have set of "best practices" that they can blindly follow.

<comment><USER15> Yes, but only if one got zero or not much experience in the field. So actually you are saying something that is true for everything.

<comment><USER14> You'd be amazed at the number of experienced developers who tell me "it is best practice to do XYZ" who when challenged as to what is the underlying justification for this recommendation can't actually provide a sensible answer.

</comment></comment></comment></comment><comment><USER16> Original discussion: <http://news.ycombinator.com/item?id=922715>

</comment><comment><USER17> With my students and used the analogy of unit tests (or asserts) with a fisher net to catch bugs. As a fisher net, it is made of a mesh that won't be able to catch small fishes. It may also have big holes in it here and there. So there is always a limit to its efficiency.

It requires a significant effort to make unit tests more efficient. This effort must then be balanced with the potential costs of the bugs and across the application, because some part of the program are more critical than others.

A good programmer should thus balance his effort in unit tests writing.

I also suggest to write unit tests as needed to be more efficient. If the software is a data processing pipeline kind, simply write a very tight data validity checks at the end of the processing pipe and inject test data (including bogus one). If no problem ever show up with the test data, there is no point in writing unit tests for all intermediate steps of the data processing pipeline. If a problem is later discovered, then write the test, but only at the middle of the processing pipeline. You'll know if the problem is before or after. Then continue as needed. With this approach, you'll write unit tests only where it is needed and won't waste you time.

Suggesting as the author that we don't need to write unit tests is like saying we don't need to put the car safety belt because people still die in car accident with it, and most of the time we don't have any accident even if we don't wear it. Is this a smart advise ? I don't think so.

BTW, I use asserts wherever I can by reflex in my code because it saved me valuable time on many occasions.

</comment><comment><USER18> How about "buckshot testing"? I wrote a file system test that made every single API call with null arguments, good arguments, illegal arguments and then logged the error code. We ran this against every release of the OS and simply dif'd the result against the previous release run. It not only aided in bugfinding, it identified necessary release notes about API differences. The bigger point is, you have a computer at your disposal. It can make LOTS of calls in a short time. Try calling that function with every conceivable argument. Once you have a baseline, a diff tool can reveal everything.

</comment><comment><USER19> "Many of them will not even survive the process at all."

 _That's the point,_ and I think everything else in this article stems from it. _Unit_ tests are supposed to be transient; you're supposed to be able to just ditch them and replace them when you ditch and replace the code they're testing.

 _Functional_ tests, on the other hand, should be longer-lived.

</comment><comment><USER20> Personally, if anyone asks me if they should unit test, I'll play the fanatic and take a hard line. Mostly because the way to learn the usefulness of unit tests is to write them. You quickly learn what they're good at and what they are bad at.

Once you've written enough of them, you kind of seem to develop an instinct as to what unit tests are useful for.

</comment><comment><USER21> This whole article could be boiled down to: "bad tests are useless".

</comment><comment><USER22> I'm not sure how valuable these articles - or threads - really are for anyone. Don't we have to balance cost vs. value for _anything_ we do? Find and replace "unit testing" with "documentation" in this article and we could be having the same conversation.

</comment><comment><USER23> SQLite would like to disagree with this rant, I think.

<comment><USER24> The article doesn't seem to be claiming that unit testing is bad, rather that religious promotion of it is bad, and the benefits and drawbacks should be weighted up like any other decision.

Obviously SQLite has got a tremendous amount of value out of unit testing. But SQLite is quite abnormal in many respects. It's used in aviation, so the standards of testing are ridiculously high. It's also a library, and libraries tend to be very easy to test. It's also a long-term project with no deadline to speak of.

<comment><USER25> The way I read the article it sounded like he was downplaying the usefulness of even healthy amount of testing i.e. writing tests along with the code your writing.

Certainly, all his arguments downplay TDD in general

</comment></comment></comment><comment><USER25> I wrote a response to this on my blog

<http://www.scottschulthess.com/coding/?p=143>

Basically, there are other benefits to TDD than just preventing regression.

Documentation and ease of debugging while your writing code being the biggest ones.

In a non-compiled language it can serve to verify that your at least runs without gross failure a little like the compiler does.</comment>