Announcing Azure Command-Line Interface 2.0 Preview - <AUTHOR> https://azure.microsoft.com/en-us/blog/announcing-azure-cli-2-preview/ <comment><USER2> This reminds me of companies rewriting applications from VB to c++/c#.

Half the people complained about VB being good enough and more popular.

But the overall feeling was that once the rapid application dev version is out the door and ok then it's a good time to redo it with something more engineering-y, for long term support before the first version gets too ossified.

(i'm sure i'm going to burn karma for comparing node with vb but...)

<comment><USER3> > i'm sure i'm going to burn karma for comparing node with vb but...

I'll take the hit for you and flat-out say that node.js is the new VB.

In fact, for those of you that have been around a while, I think we can all agree that node.js is the new PHP was the new Visual Basic, etc.

Not in the sense that they do the same things, but that they were purposely built for non-programmers (baby-devs) to be able to program (which is good!) but by the same token, invited entire (and continuing) mountains of half- assed, unsupported(unsupportable) code that just begets generations of garbage.

If you are a consultant, fixing this garbage can be a whole career.

<comment><USER4> Seems like javascript is picked up by giants (microsoft build its IDE) facebook (React?) Google (angular) so I guess you cant compare it with VB unlesss I missed something in the 90s

<comment><USER3> Oh boy did you miss something in the 90s! It was call active pages (or some bullshit, I have tried to block it from my memory) and it made Internet Explorer the king of browsers and still locks in a lot of government agencies and business from upgrading their infrastructure, because they don't want to lose or have to pay to redevelop "critical" applications to their daily work.

<comment><USER5> ActiveX?

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

<comment><USER6> No, this: [https://en.wikipedia.org/wiki/Active_Desktop](https://en.wikipedia.org/wiki/Active_Desktop)

Kind of related, it was a COM control you could stretch over your whole desktop, that received push notifications.

Also, I believe it was TOTALLY secure.

Edit: Dang it, I missed where they said "and it made ie the king of browsers." \-- Yes, ActiveX

<comment><USER5> I was 8 when Active Desktop came out -- I used it to put Neopets on the desktop of my computer.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> motivation:

 _\- Dependency management for Node.js adds maintenance costs for Linux distributions.

\- Cloud tooling vendors prefer Python to match AWS CLI and GCloud CLI.

\- Python offers a more mature platform for building CLIs Python is typically available on Linux distributions by default.

\- While none of these reasons precluded building the next CLI in Node.js, Python was the natural choice._

taken from here - [https://github.com/Azure/azure- cli/wiki/Motivation](https://github.com/Azure/azure-cli/wiki/Motivation)

<comment><USER8> I think Golang would have been a better choice. They already have a fairly mature Go SDK, and redistribution of Go binaries is so much easier.

</comment></comment><comment><USER9> I'm currently starting one project on Node.js and just this morning I thought to myself. This is too hard. I might as well rewrite it in Python.

The main issue for me is how Node.js is forcing you to have all I/O operations asynchronous. For what I'm doing, this is exactly what I don't need. It makes the code so much more complicated. It's callback into callback into callback and returning "promises" within "promises"... simple functions are turned into beasts. It works but it's obvious I'm not using the right tool for the job.

Don't get me wrong. I'm actually glad I dived into Node.js and learned a lot of new things. It's just that Node.js is very specialized framework which is amazing for certain use-cases and totally inappropriate for others.

On the other hand, Python is general-purpose. It's never the best tool for the job but it's almost always good enough. So once you know Python, you know you can use it in many diverse projects without giving up your sanity. Can't say the same about Node.js.

</comment><comment><USER10> Did they explain why they switched?

Not that I'm complaining. Love Python, dislike JS being everywhere.

<comment><USER11> There's a mention of it in the "Motivation" page on the GitHub wiki. Basically the big thing seems to be the feedback from Linux users that most distributions bundle Python but not Node. Also that AWS and Google CLI tools are still more Python than Node.

<comment><USER12> I am the author of the Motivation page; the choice of language was really focused on what's best for partners and customers; I believe either language could have "done the job".

</comment></comment></comment><comment><USER13> One advantage of using a dynamic language like Python is that you don't necessarily have to update the client code to be able to use new functions. You can just generate the necessary code during runtime after loading the specification from a web API. I believe this is what google does with their gcloud tools (and that's probably also the reason why it sometimes feels slow to react). Yes, you can probably do this using Node as well, but Python comes installed on a lot of Unix based systems nowadays, as far as I can tell Node does not.

<comment><USER14> Yeah, absolutely no reason you couldn't do this (quickly) with Node. The only reason I see to use Python over Node here is for a smaller dep tree (sane Node development still requires a lot of dependencies) and some more mature CLI libraries - _lots_ of CLI apps are written in Python.

<comment><USER15> "have also heard, especially from customers working with Linux, about our XPlat CLI and its poor integration with popular Linux command-line tools as well as difficulties with installing and maintaining the Node environment"

[https://azure.microsoft.com/en-us/blog/announcing-azure- cli-...](https://azure.microsoft.com/en-us/blog/announcing-azure- cli-2-preview/)

<comment><USER16> Yep. This. I know it's not cool to point this out and that front-end folks upgrade Node all the time, but installing Node on a "normal" machine inside your average IT environment is a complete pain, whereas you can do pip install azure-cli as a regular user without installing anything else on most Linux distros out of the box.

Also, I've had nothing but trouble with recent Node versions (and I'm a pyenv/rbenv/*env/etc. guy, have multiple runtimes of everything around, etc. - but most people would try once and never try again).

</comment></comment></comment></comment><comment><USER17> Python is the language that, once you know it, you'll never go back. It's gotten to the point where I use it to run an entire backend as well as simple terminal scripts. It's faster to write a Python script to "switch the first and third columns in a file", rather than Googling for an appropriate awk command (or spending the time to come up with one myself).

<comment><USER18> I know python fairly well, and had previously done most web development with flask or django. I had to learn JS so that I could do front end web dev, things like D3 and such for visualizations of data. I tried out a few of the frameworks that I came across for back-end web dev as well, things like Koa, knex, passport, etc - and I have to say that these days I start far more projects as JS/Node.JS projects than I do python.

I still love and use python quite often, but more in data analysis/manipulation projects with Jupyter - Node definitely doesn't have anything on python in that dept.

p.s., check out pandas if you're not already familiar with it.

<comment><USER19> _had to learn JS so that I could do front end web dev, things like D3 and such for visualizations of data_

If you need to visualize from Python without touching JS try [http://bokeh.pydata.org/en/latest/](http://bokeh.pydata.org/en/latest/)

</comment></comment></comment><comment><USER20> FYI, both AWS's CLI[1] and GCP's Cloud SDK(which includes CLIs like gcloud, gsutil, bq, etc.)[2] are also written in Python.

[1]: [https://github.com/aws/aws-cli](https://github.com/aws/aws-cli)

[2]: [https://cloud.google.com/sdk/](https://cloud.google.com/sdk/)

</comment><comment><USER21> I wish they had used GO. If you worry about distribution and dependencies, GO static binaries are clear winner. One issue with GO binaries is that they can become very big.

<comment><USER22> there is this project:

[https://github.com/Azure/azure-sdk-for-go](https://github.com/Azure/azure- sdk-for-go)

Azure is mostly a lot of REST apis.

</comment></comment><comment><USER23> If you're going to write any sort of cli in Python, you really should use click [http://click.pocoo.org/5/](http://click.pocoo.org/5/)

Why click? [http://click.pocoo.org/dev/why/](http://click.pocoo.org/dev/why/)

<comment><USER16> It's amazing. I built my own little PaaS on it:

[https://github.com/rcarmo/piku](https://github.com/rcarmo/piku)

</comment></comment><comment><USER24> Looking at the Dockerfile, it seems this works in Python 3.5, that was the first thing I wanted to check when I read this.

</comment><comment><USER25> On behalf of the Python team @ Microsoft:

[http://imgur.com/gallery/MWcxIMA](http://imgur.com/gallery/MWcxIMA)

Congrats!

Python built into Windows 10, Azure CLI in Python, Python Tools for Visual Studio, Azure Jupyter Notebooks, ... exciting times for Python devs on the msft stack!

<comment><AUTHOR> > Python built into Windows 10

I'm on 10 and I had to install it.. Am I missing something?

<comment><USER16> It's part of Bash for Windows, but you're right, it's not on the Windows side by default.

</comment></comment></comment><comment><USER26> One feature I'm loving in the new Azure CLI is a new command (`az ad sp create-for-rbac`) that will create a new Service Principal and grant it a RBAC Role assignment in a single shot. It should make the first step of setting up CI/CD scenarios a bit easier.

<comment><USER16> Wow. I've been using it for a few weeks and never spotted that (been focusing on infra). Thanks for the heads up.

</comment></comment><comment><USER27> This is really cool! Some rambly notes:

* I'm interested in seeing how they plan on handling keeping an 'evergreen' state on ubuntu repos that they don't control.

* jmespath! It's great to see it spread more! Such a useful spec.

* There's an awful lot of dependencies, 59 vs 10 in the aws cli.

* No windows installers?

* Does that server side completion cost money?

* With such a crazy file structure, it would be great to see a getting started guide for contributing.

* The readme should really list the supported python versions.

* It's hard to tell how much is code generated and how much is custom.

* Help text prints right to the shell without using a pager.

<comment><AUTHOR> no event a mention on how to setup on windows

</comment></comment><comment><USER28> I haven't used the new Azure cli, but a major issue with the node.js based cli was that it was heavily oriented towards interactive use and not well suited for use by scripts. Hard to parse output, prompt for parameters instead of accepting them on the command line, etc.

<comment><USER12> Improving the automation experience was a core goal of our new CLI effort.

If you (or anyone else) has any feedback on places we can improve, we are happy to hear it (azfeedback [at] microsoft.com]).

Jason - Microsoft Azure CLI

</comment></comment><comment><AUTHOR> Was the submission edited?? The point I wanted to make was about the choice of language, rather then the announcement of the new tools. It's kind of rude TBH...

</comment><comment><USER29> Personally I don't have any experience with working with neither of AWS,Azure,GCP,etc.

But I am so curious to know how people who have worked with them find them? Which one is better ? What is advantage of each one?

I couldn't find any useful information in web either.

Update: I am familiar with basic stuff. But I am so curious about heavy load, for example why Spotify chose gcp or etc. Was there technical reason or it was preference.

<comment><USER30> All of these platforms offer a free trial and a lot of products have free tiers. I'd check them out and decide for yourself.

(I work for Google Cloud and am happy to answer questions about GCP)

<comment><USER29> Thank you , but what I meant was in heavy work load. I know the basic ideas. But I am curious in heavy work load which one is preferred for what. AFAIK Spotify went with GCP, many big companies went with azure, most startups chose AWS.

What was the reason behind these, personal preference? Or technical superiority?

The reason for my curiosity is Microsoft and Oracle kind of sees Cloud Computing as life and death situation.

<comment><USER31> aws generally has the most features but clunky apis and high costs

gce has really nice apis but limited features and unless you do things like google you'll have to do a lot of your own integration work

i've never seriously used azure

<comment><USER32> I'm genuinely curious on what limitations you've seen with Google's Cloud.

Google Compute Engine alone has lots of nifty features that even AWS EC2 lacks, like custom VMs, generalized VM types (no need to go for specific instances to get fast networking, for example), preemptible VMs, live migration, disk hot-grow, and sustained use discounts, while generally being cheaper.

(work on GCP)

</comment></comment></comment></comment></comment><comment><USER33> The directory structure is beautiful.

<comment><USER34> Can't tell if you're kidding or not... I ended up at

azure-cli/src/azure-cli-core/azure/cli/core/

That's.... definitely not beautiful

<comment><USER35> the src directories, and command_modules directory inside of that all contain separate Python projects. This allows them for instance to make changes/updates to particular parts of the azure-cli but without releasing a new version for each small sub-part.

Instead they could have created 17+ github repo's and had each part have it's own repo... instead it's now all contained in a single place.

</comment></comment></comment><comment><USER36> Python is a good fit for CLI tools, but it doesnt differ that much from node when it comes to complex backends.

Type annotations in py3 might change that, but lets be honest - py3 is still far from broad adoption.

</comment><comment><USER37> Can someone please explain why the fact that it was in Node and is now in Python matters in the slightest, given that it's a command line utility that doesn't seem to, in any way, expose the language it is written in?

This could be in haskell or F# and it still wouldn't matter because it's the CLI itself that matters. (to which the question must be: is Azure popular? Is a new version of the CLI utility big news?)

</comment><comment><USER38> Official announcement in the Azure blog: [https://azure.microsoft.com/en- us/blog/announcing-azure-cli-...](https://azure.microsoft.com/en- us/blog/announcing-azure-cli-2-preview/)

<comment><USER39> Thanks, we updated the link from [https://github.com/Azure/azure- cli](https://github.com/Azure/azure-cli).

</comment></comment><comment><USER40> Surprised this is getting so much attention here. They re-wrote their CLI in another language. What's the big deal...

<comment><USER41> Are you not interested in why they rewrote it and what made them choose Python? Did they have a problem with it in JS that JS could not solve? Lots of interesting questions here.

<comment><USER42> Answers:

[https://github.com/Azure/azure- cli/wiki/Motivation](https://github.com/Azure/azure-cli/wiki/Motivation)

</comment></comment></comment><comment><USER43> Would have been better if they had rewritten in rust or go if they wanted to eliminate problems with distros...

<comment><USER44> Rust would actually be problematic with most distros.

<comment><USER45> Why? What would be the source of problems?

</comment></comment></comment><comment><USER46> Looks like the are going for both 2 and 3 support?

[https://github.com/Azure/azure- cli/blob/master/scripts/dev_s...](https://github.com/Azure/azure- cli/blob/master/scripts/dev_setup.py)

EDIT:

Nah, only 3. So much for Microsoft and it's legendary backwards compatibility.

[https://github.com/Azure/azure- cli/blob/master/scripts/gener...](https://github.com/Azure/azure- cli/blob/master/scripts/generate_command_inventory.py)

<comment><USER47> > Nah, only 3. So much for Microsoft and it's legendary backwards > compatibility.

Microsoft tends to build tools that are backward compatible with earlier versions of the same tools; it doesn't particularly tend to build tools that are compatible with outdated versions of the platforms they are implemented on top of, though.

<comment><USER46> I was joking, I think it wasn't included accidentally. Also, if you want PyPy you are using Python2.</comment></comment></comment>


France creates a special visa for entrepreneurs, engineers and investors - <AUTHOR> https://techcrunch.com/2017/01/17/france-creates-a-special-visa-for-entrepreneurs-engineers-and-investors/ <comment><USER2> Not from the same source, but this was discussed here: [https://news.ycombinator.com/item?id=13410510](https://news.ycombinator.com/item?id=13410510)

</comment><comment><USER3> This could be helpful for post-Brexit British devs ...</comment>


Indistractable - <AUTHOR> https://www.nirandfar.com/indistractable/ <comment><USER2> Considering this guy made a mint teaching companies how to make addictive products (he wrote Hooked [1]), it's ironic that he's now cashing in on the demand for addiction-defeating strategies.

I guess it's good for everyone that people like him can help us combat the addictive product features that he helped create/spread, but I'd rather give my money to a different author on principle.</comment>


Ask HN: Why are images used to indent comments? - <AUTHOR>

Why are images used to indent comments? Why not use lists to create the tree structure? Wouldn't lists make it easier, for those using screenreaders, to understand the conversation structure?
Pic: http://tinypic.com/r/6i9ml3/3 <comment><USER2> I'd guess it's simply that PG codes html the way he learned years ago.

Not snark – you have to justify throwing out your table + spacer.gif knowledge to learn how to do things with div + css. Maybe he doesn't see a huge benefit.

Also (<http://www.paulgraham.com/arc0.html>):

 _Arc embodies a similarly unPC attitude to HTML. The predefined libraries just do everything with tables. Why? Because Arc is tuned for exploratory programming, and the W3C-approved way of doing things represents the opposite spirit._

 _..._

 _Tables are the lists of html. The W3C doesn't like you to use tables to do more than display tabular data because then it's unclear what a table cell means. But this sort of ambiguity is not always an error. It might be an accurate reflection of the programmer's state of mind. In exploratory programming, the programmer is by definition unsure what the program represents._

<comment><USER3> If your exploratory programming involves JavaScript/Ajax, tables can be a pain in the butt to deal with. Semantic HTML makes manipulating the DOM much simpler -- no need to dodge around meaningless markup junk.

</comment></comment><comment><USER4> I guess if it ain't broken don't fix it.

All the threads live in nice tables and gifs are the appropriate technology to accompany them! Enough to give any CSS or SEO evangelist apoplyxia!

</comment><comment><USER5> I think one of the main reasons some web design techniques are "bad" are because they don't sufficiently separate layout and design from content. The problem is - on a site like HN, you're primarily catering to a crowd that just wants a really simple, straightforward design that's easy to use to fast. We get that with a 1-pixel image. Adding css could potentially throw more complexity into the mix.

<comment><USER6> Proper semantic with CSS styling is faster. You don't have to repeat  tags etc.

CSS is more "complex" only if you lack understanding how it works. Main reason that Ruby on Rails was (is?) such a success is that proper MVC (MTV) design pattern implementation made things simpler.

Yet, for average PHP programmer that'd be more "complex". Same with (X)HTML + CSS. It looks more complex only if you don't understand CSS or using WYSIWYG tools.

</comment></comment><comment><USER7> I've got to say, the markup for the comments page is pretty ugly. I'm not going to diss the one who designed it, but I think it could really do with an overhaul. It wouldn't be difficult at all - just cascading, nested divs with incrementally increasing left-padding.

Unless there is a reason for the tables, they're not semantic, it's ugly, and it doesn't make any sense! And it's slower to render.

</comment><comment><USER8> Because it works.

</comment><comment><USER9> I assume they are using single pixel gifs and playing with the width to indent. That is old school, the way it was done before css. Maybe they just never quit. I still prefer to use tables to structure some types of content, it won't win me any awards from the css crowd but it's just easier. Why make life difficult?

<comment><USER10> Because rendering a table is almost always slower. Granted, this is an old benchmark (don't have time to pull up any that are more recent), but: <http://www.howtocreate.co.uk/browserSpeed.html>

<comment><USER11> Sometimes a small rendering performance hit is worth avoiding the development headache of getting multi-column divs to display properly across browsers.

Tables can still be useful when holding short content that has lots of columns.

<comment><USER6> In the world without Internet Explorer all you need is CSS3 column-count: N; property.

Still, using tables for any kind of formatting looks just plain bad. If you're lazy there are CSS frameworks.

</comment></comment></comment></comment><comment><USER12> Because the code that generates HN pages was written in the laziest and least- accessible way possible.

</comment><comment><USER13> if i had to guess, i'd say that its just less resource intensive or easeier. much easier to just print it out with an indention instead of parsing results into a tree and then printing.

<comment><AUTHOR> It seems to calculate the image's width to construct indentation. I think it would be easier to just enclose the comments with

 and the child trees with

.

<comment><USER6> Why in the world would you use definition lists?

<comment><AUTHOR> Oops. Too late to edit it now.

</comment></comment></comment></comment><comment><USER14> Lack of CSS understanding. No excuse.

Once you know your tools you can do wonders you'll be amazed at how easy it was.

I bet a hundred CSS experts here can give you some interesting ways on redesigning comments.

Show us your best.

<comment><USER14> Here is what I'd do, start from here:

title

comment here

Then apply styles at will, increase padding per level and dimming per negative karma.

I bet code size decreases while readability increases.

<comment><USER15> No need to use class 'levels', as nested
's shows in regards to padding.</comment></comment></comment>


Ask HN: How many of you does really use PayPal? - <AUTHOR> <comment><USER2> I use it for Groupon, Netflix and odd online shopping. I used to use paypal for eBay but the ebay mobile app looks dated and I can't see any feedback for the product. I prefer Aliexpress.

</comment><comment><USER3> Very regular, i do all my internet payments with them.

</comment><comment><USER4> I use PayPal when buying from small unsophisticated-looking mom and pop ecommerce sites that I don't trust to have integrated credit card payments in a reasonably secure manner.

</comment><comment><USER5> I don't. Only ever used it once when my previous employer was using them and I had to have one so I could try out our product. Deleted the account as soon as that job ended.

</comment><comment><USER6> I don't buy things on Ebay as much as I used to, but I recently bought two things and used Paypal to pay.

</comment><comment><USER7> Yes, I have used Paypal since the first year it came out, and still do.

</comment><comment><AUTHOR> Thank you everybody. Your comments really helped me a lot.</comment>


Police investigating stolen laptops discover Bitcoin heist - <AUTHOR> http://www.philly.com/philly/news/crime/bitcoin-theft-theodore-price-montgomery-bucks-20170724.html <comment><USER2> They bust the guy for pawning a laptop he stole from his girlfriend's father for 150$. He claims to have $34.6 million in stolen BTC.

The article addresses this contradiction superficially-- the police say he couldn't access his BTC without being caught because the blockchain is public, and he didn't have time to "tumble" the coins.

But that doesn't really make a ton of sense. He didn't have the time or risk appetite to cash out any of his $34.6M but he had no problem breaking into his girlfriend's parent's house and pawning their laptop?

Oh also he was planning to fly out of town on a private jet with Jeremy Renner's passport?

I predict a retraction incoming.

<comment><USER3> Philly.com is garbage. It has no business being on HN.

Source: I live in Philly.

<comment><AUTHOR> Sorry, it had the most detailed write up I could find. Here's a few other links about the story:

[http://www.msn.com/en-us/money/markets/pennsylvania- police-h...](http://www.msn.com/en-us/money/markets/pennsylvania-police- hunting-for-stolen-laptops-say-they-stumbled-on-dollar40-million-bitcoin- scam/ar-AAoJifL?li=BBnbfcL)

[https://www.cryptocoinsnews.com/111212-2/](https://www.cryptocoinsnews.com/111212-2/)

[https://www.financemagnates.com/cryptocurrency/news/hacker-h...](https://www.financemagnates.com/cryptocurrency/news/hacker- heads-trial-claims-stealing-50-million-worth-bitcoin/)

</comment></comment></comment><comment><USER4> This seems like a person looking for fame and validation. Arrested for such a minor crime why admit to major crimes. The fact that the specific charge is withdrawn tells me the facts may not backup his claim.

<comment><AUTHOR> They may be using the local theft charges to hold him while they investigate it at the federal level. There's some other details I found on a msn.com article, not a good source I know, but it seems like he was trying to make the claim that he was working with or for someone else. Probably just a way to deflect attention but would also constitute a conspiracy charge if true and would have to be investigated:

"But within a few moments, Price switched his story, according to the affidavit. "Price stated that people hire him to do things for their companies," the document stated. "Price elaborated stating he would write Trojan software to penetrate network systems." He also told investigators "he had been hired by numerous foreign governments to develop penetration software."

[http://www.msn.com/en-us/money/markets/pennsylvania- police-h...](http://www.msn.com/en-us/money/markets/pennsylvania-police- hunting-for-stolen-laptops-say-they-stumbled-on-dollar40-million-bitcoin- scam/ar-AAoJifL?li=BBnbfcL)

</comment></comment><comment><USER5> Paraphrasing previous comment - I get the "see cryptos are too insecure / it's a pyramid / it's a bubble / ICOs are scams / etc" arguments.

But holy shit turning a world currency into the wild west - for better or worse - is going to be disruptive, period.

I can only imagine the debacles that we have to look forward to, and I say that in full support of and as a long term believer in both blockchain and cryptocurrencies.

<comment><USER6> There will emerge a "CryptoCurrency+ruleOfLaw" that will succeed in the evolutionary race.

<comment><USER7> All Ethereum contracts will incorporate the entirety of the relevant national, state, and local laws into their code.

<comment><USER8> I certainly don't look forward to auditing a Solidity contract with the complexity of the federal tax code.

</comment></comment></comment></comment><comment><USER9> Guy gets caught on a low grade theft charge and just blurts out that he committed a litany of far more serious federal crimes? Someone sitting on 40 million dollars of bitcoin is out stealing cheap laptops from people he has relationships with? Someone with this degree of technical competence doesn't know to encrypt their devices or move assets to somewhere where they don't live? I call bullshit.

</comment><comment><USER10> No they didn't discover a $40 million Bitcoin heist. It's all talk. Not a story.

</comment><comment><USER11> The possible "value density" I.e value/physical matter of cryptocurrencies is unprecedented.

<comment><USER12> The value of Bitcoin relies on the entire network, which includes thousands of machines.

If you take that into account, then the value/physical matter of some bank account credentials is just about the same.

<comment><USER11> It's not because the credentials themselves are worthless, they dont have an inherent value. It's like value semantics vs reference semantics. And you can use bitcoin irl too.

<comment><USER12> Bitcoin has no inherent value. A private key has no inherent value.

<comment><USER11> It does in contrast with account info.

<comment><USER12> Your bank account credentials and your Bitcoin private keys are exactly the same.

<comment><USER11> Not really no. The hash has value on it's own. If you lose the bitcoin, you are fucked. If you lose your credentials, they might be recovered. Therefore bitcoin does store the value.

</comment></comment></comment></comment></comment></comment></comment><comment><USER13> Legit explanation of bitcoin

 _Bitcoin is a digital currency, tied to no government, that can be exchanged for U.S. dollars and other national currency. It consists of a public ledger of all bitcoin in circulation and the transactions in which they are used. To own bitcoin, a user must possess two codes; a public key that identifies individual bitcoin, and a private key akin to the signature needed to write a check. To carry out transactions, those codes are passed between bitcoin wallets, where they are stored by users._

<comment><USER14> Let's have a look...

> and a private key akin to the signature

Nope, a private key is not akin to a signature. It's akin to a... key? Or perhaps a special pen / wax-seal that you use for signing? I don't think there is an exact analogy?

> To carry out transactions, those codes are passed between bitcoin wallets

Lol, nope. Private keys are not passed around. Neither the public keys (assuming they mean 'addresses' here), which are actually hashes of the public key.

<comment><USER13> Ordinary folk think it takes a signature for a check or credit card receipt to be valid. As far as they're concerned it's the same as a private key. It might sound ridiculous to you but it's closest from their perspective.

</comment></comment></comment><comment><USER15> The article mentions "bitcoin tumbling" \- is this actually effective? Does anyone know of any good resources to read up on the theory behind it?

It seems to me like it wouldn't work - you're basically just adding a single hop between the stolen coins and you...

<comment><USER16> No, cryptocurrency tumbling is usually not "a single hop".

Even if you consider the simplest case, address A (clean) and B (stolen) put their money into address C, and then split them into addresses X, Y, Z, you already can't tell where the stolen money went.

Now do that multiple times with randomly generated address, random amounts, it becomes indistinguishable from regular transactions. Everything blends together.

<comment><USER15> Cool. I guess what I'm missing is why is there a need for the Tumbler service?

If I understand correctly, you can spin up many bitcoin wallets.

Wouldn't it be possible to create a bunch of Bitcoin wallets that would trade money amongst themselves?

(Or did I just re-invent the tumbler?)

<comment><USER16> Because

1) You need "clean" money to mix with, as in different from stolen.

2) Tumbler service is more fee-efficient, because they do it on a large scale, and can do many transfers in one transaction.

</comment></comment></comment></comment><comment><USER17> This all seems really fishy. Sounds like "Jeremy Renner" is just delusional.

</comment><comment><USER18> What is the name of the wallet software he compromised?</comment>


W2018 what happened? - <AUTHOR> What happened in winter 2018? Why are there so few companies that went through Y? <comment><USER2> There's a list of 144 at [https://www.ycombinator.com/companies/?batch=w2018](https://www.ycombinator.com/companies/?batch=w2018).

That was a moderate increase from 120 in the previous batch.

(That's only including public launched startups).

<comment><AUTHOR> something was wrong with the website. When i looked first, there were only a dozen or so. thanks.</comment></comment>


The social network for sharing your moodswings - <AUTHOR> http://www.shoestring.com.au/2013/08/moodswing-the-social-network-for-sharing-your-emotions/

<comment><USER2> I'm not sure what the word is for the emotion I want to convey after reading this. The article makes a good point that at first it seems silly, but so was Twitter and perhaps Facebook.

How about instead of sharing our emotions with a cold plastic or metal device, we share them with warm-bodied friends who we can hear laugh with us or hug us if we need it.

I'm all for sharing and staying in communications with friends and family (especially since I'm at sea for months on end without seeing any of them), but if you live in the same city as your friends, or especially family, go see them and share your stories then. It's more fulfilling than taping a button on a screen.

</comment><comment><USER3> This concept seems to be catching on. Whisper is the app thats leading right now in a similar space.</comment>


Python-Daemon - Library to implement a well-behaved Unix daemon process. - <AUTHOR> http://pypi.python.org/pypi/python-daemon

<comment><USER2> I tend to think this is the wrong way to go about daemonizing a process; it does the relatively easy but fiddly stuff for you, leaving you still to manage process monitoring.

Better to have the process neither know not care about its daemonized status, which is not really core program logic, and have the process monitor manage daemonization, à la <http://cr.yp.to/daemontools.html>

</comment><comment><USER3> Twisted Python comes with its own "twistd" script to daemonize a Twisted application. Sure, not every Python daemon is written in Twisted, but most daemons talk to a TCP, UDP, or Unix socket for something, which means Twisted is a tool you're likely to be evaluating anyway.

</comment><comment><USER4> I haven't tried this, but it sure looks handy. Writing a daemon is a common task, but not so often (for me, anyway) that it feels like copy-and-pasting the same boilerplate every time. So, I ignore the old rule that says "if you're going to do it more than once, write a program to do it for you". I always end up writing a one-off prototype for my own personal use, and then upgrading it to be a daemon, and I make the same Google searches every time. I'll have to try this next time.

<comment><USER5> writing a daemon is not necessarily a repetitive process, all the stuff that you "have to do" are driven by engineering demands. You have to think of them consciously before you do each one and there is no particular number of them and no particular order, it's all dictated by your application: when to fork and let the parent die? when to give up terminal? change directory? reset/change umask? what file descriptors to close which ones to open and what to keep? logging? other IPC channels for client apps? etc.

this stuff is not cruft or boiler-plate is it? also, you shouldn't be writing daemons so often as to need a framework, and if you do, you better understand all that goes into it.

<comment><USER4> I agree that it's not boiler-plate, and I don't mean that I do it all that often, maybe every six months or so when I find something new I want my home server to do. (Like the last one, experimenting with port knocking) I am by no means a professional programmer, that's why I find myself making the same searches.

<comment><USER5> Cheers! didn't mean to come off so nanny-like ;-)

</comment></comment></comment></comment><comment><USER6> This one is the one I use for several applications [http://www.jejik.com/articles/2007/02/a_simple_unix_linux_da...](http://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/)

</comment><comment><USER7> if you're using ruby, check out daemons and especially daemon-kit which includes a nice rapleaf patch to daemons</comment>


Ex-Nokia exec: Nokia-Microsoft "a certain road to death" - <AUTHOR> http://www.itworld.com/mobile-wireless/260644/nokia-microsoft-certain-road-death

<comment><USER2> At least the author makes it clear that that Nokia was a turkey before and adding two turkeys doesn't make an eagle. What I think he misses though is the long game and how I think Elop is thinking about this business:

\- Windows 8 is adopting elements of Metro, the UI interface in Windows Phone. People will start being exposed to it and reports from Windows phone users suggest if people give it a try, they tend to rate it well so maybe people will be more open to Windows Phone in their consideration set.

\- Imagine Windows Phone integrations with the PC or laptop in a much more seamless fashion, maybe there's some synergies there.

\- How about the easiest way that MS knows to gain immediate market share in new territory: bundling. Package every Windows 8 upgrade with a certificate redeemable for a free Windows Phone. This market share boost will charge their app marketplace and they should further juice this with higher margins and lower commissions than Apple because right now, profitability can take a backseat to market share and growth.

</comment><comment><USER3> To this day n9 > lumia. Nokia really had something and the sales are there to prove it. The lack of apps is disappointing, but the solid basics make it a great phone to this day. It's too bad they couldn't get an android virtual machine working with the n9 to bring some of android's app collection over.</comment>


WTH is happening to Rails? I'll tell you. - <AUTHOR> http://metautonomo.us/2011/06/14/wth-is-happening-to-rails-ill-tell-you/

<comment><USER2> I don't think the author really gets why people have a problem with what's going on with Rails, and the article strikes me as a "I like this why don't you?!" type deal vs making a reasoned argument for why the constant change in the Rails way of doing things is necessary.

> If you're learning a new language, a strong community consensus about a > right and a wrong way to tackle problems aids learning

\</comment><comment></comment><comment>-----

Right, but the problem is that there doesn't seem to be a 'right' way, That's the problem.

We were all prototype a few years ago, now it jquery ... we (well I) hadn't heard of coffeescript till a few months ago and now its a default option in rails, The way we were constructing ActiveRecord finders had been set all through Rails 2, now we've changed it, the way we dealt with gems was set all through rails 2 now its changed completely in Rails 3.

I like change, I like staying on the cutting edge of web technologies, but I don't want to learn something, only to discard it and re-do it completely to bring it up to date with a new way of doing things all the time.

> If, as coders, we aren't constantly striving to improve the status quo, > what's the point?

\</comment><comment></comment><comment></comment><comment></comment><comment>---

The point is that you have to realize that Rails isn't just your personal plaything any more, people are invested in it just as much any one person or group of people.

I have 5 Rails 2 apps that I support at work and a couple more outside of that, they're all on rails 2 ... bringing them up to Rails 3 without disruption, isn't going to be trivial and I'd be nice if folks acted like they understood that and didn't dismiss similar concerns, or berate folks for having concerns.

To that end, my personal preference would be to see fewer but more substantial releases and a little bit more engagement with the community before making major decisions about the framework instead of the steady drumbeat of updates and (seemingly) unilateral decisions (that coffee script decision really irked me, can you tell?)

<comment><USER3> The Rails core team does seem to treat the project as if it's a personal playground. But the improvements they make do seem to (usually) be good ones. Since it's almost always the case that you can eschew their choices, the complaints I hear are not compelling.

<comment><USER4> I think you're missing the perspective of someone who has a major body of apps to maintain. I easily upgraded a trivial app. Now I'm slogging through a month long Rails upgrade process on a very large app. Unless you've been stuck with a large upgrade like this, it is probably hard to understand the upgrade pain.

That said, I love the changes in Rails 3. Considering strings unsafe and escaping them by default is great, bundler rocks, arel is very nice, and the mailer api is nice.

The rapid change and code purity ideals in the Rails world leads to benefits, so I tolerate it in Rails in spite of its costs.

This idealism has unfortunately infected projects in the Rails ecosystem that are really just infrastructure (where change should occur slowly). As examples, both Rspec and RubyGems are willing to break compatibility and code that I rely on for benefits that are neglible, aesthetic, or invisible to me. The difference is, when Rails breaks something, 90% of the time it buys me something.

</comment></comment></comment><comment><USER5> _The difference is that Steve Coast, the post's author, casts himself in the role of a crusader for the newbies._

I find this all a bit odd, since as a Rails newbie[1], I found Rails 3.0.x very easy to learn with a little help from Michael Hartl's tutorial and the Rails Guides. Perhaps this is an example of the "curse of knowledge?" In other words, that since Coast found Rails 2 easier, he assumed that newbies would as well?

[1] Front-end developer with little back-end experience.

<comment><USER2> Wait till you have to keep up with the changes when 3.1 then 3.2 come out six months within each other, and start to change and deprecate things that you learned in 3.0.x

<comment><USER6> You don't have to keep up if you don't want to. Your apps will not stop working if you choose not to upgrade. I have apps still running on Rails 1.x and 2.x. They don't get huge traffic and they are meeting the customer's needs. There would be no business advantage for these particular customers if I had to charge them to upgrade.

<comment><USER7> Will they keep doing security patches for those?

<comment><USER8> They have been pretty good about doing that. There was a security patch for Rails 2.3.x 6 days ago: [http://weblog.rubyonrails.org/2011/6/8/ann- rails-2-3-12-has-...](http://weblog.rubyonrails.org/2011/6/8/ann- rails-2-3-12-has-been-released)

<comment><USER9> It's not just security (and other) patches for Rails, it's maintenance for the assorted plugins one inevitably ends up using.

If you've a Rails 2.x app with plugin ActsLikeWhatever, and you run into some problem with that plugin, chances are the fix will only be in the newest, non- Rails2, release.

</comment></comment></comment></comment></comment></comment><comment><USER10> This is the typical "rails" response. Rails will make you a better programmer by teaching you the right design patterns, etc. Of course, it does indeed give you a proper structure to building a web service and can be quite educational. However, it can make life difficult once you start straying from "their way" even if you know exactly what you're doing for even simple things like mapping to a legacy DB with schema intact (not gonna happen). Conventions over configuration is nice but it requires some stability.

Part of the problem is the leadership. They take the stance, "you bastards are doing it wrong" if you want to do things a little different.

The community almost split when they managed to swallow Merb and keep Rails. It's toned down quite a bit but that negativity definitely carried over from the early days and infects the community (swearing in presentations and porn references, etc.).

But these thinking aids aren't exactly radical paradigm shifts that will expand your mind and make you a significantly better programmer for the rest of your days. Rails is one of the most influential frameworks and did a lot to advance the field but now there are other frameworks that are much easier to learn and get a functional web service started.

So saying dissenters are slow to learn, stubborn or haven't been writing tests really doesn't do anyone a service and doesn't make anything clearer, sorry.

<comment><USER11> >it can make life difficult once you start straying from "their way" even if you know exactly what you're doing for even simple things like mapping to a legacy DB with schema intact (not gonna happen)

Yikes, unfortunately this knocks rails off of my to-try list. I've got a non- web application with an unusual, but by no means bad, schema. I've found it makes a good measuring stick for frameworks/tools. I have nothing against doing things in the way of a particular framework, but I have existing code to bring to the party too, if something isn't going to play nice I ignore it. I can't live with building something that exists in isolation. Its either not going to work with what I have, or hold me back when I want to build on top of it with something else.

<comment><USER12> Give datamapper a try, might be better for your case.

</comment></comment></comment><comment><USER8> I think most of the arguments people have any time Rails does a major change can really be re-interpreted as:

"I have a moderately complex Rails app that I want to upgrade, but I don't have much confidence in my tests, I maybe don't have proper separation of concerns, and I just know that one hacky thing I did a while back is going to bite me in the ass."

It's just something that happens over time in any moderately complex app. I see Rails point release candidates as a good reminder to bust out rcov and spend a few days plugging up the gaps in test coverage before the stable release comes out.

If you've been procrastinating upgrading your Rails 2.3.x app to 3.0.x, you're really gonna have fun going straight from 2.3.x to 3.1. Sometimes you just gotta rip off the band-aid.

<comment><USER13> _"I have a moderately complex Rails app that I want to upgrade, but I don't have much confidence in my tests, I maybe don't have proper separation of concerns, and I just know that one hacky thing I did a while back is going to bite me in the ass."_

This says it all for me. Upgrading an app or parts of an app that have great test coverage is really pretty straightforward. It's only more difficult if you weren't following best practices all along.

<comment><USER14> > _Upgrading an app or parts of an app that have great test coverage is really > pretty straightforward. It's only more difficult if you weren't following > best practices all along._

Like people working with Rails in the the real world with real, less-than- perfect programmers.

Yes, if I'm an ideologically pure, saint-like programmer with 100% test coverage and purely idiomatic ruby, then upgrades should be a breeze.

Except the plugin ecosystem problems still arise-- even the 'perfect' programmer has to be perpetually upgrading to the latest-and-greatest plugins since the last authentication/taggable/whatever plugin has been abandoned in favor of the flavor-of-the-week.

</comment></comment></comment><comment><USER15> Hard to take too seriously any OO fundamentalism from someone who cites the Gang of Four patterns as if they were sacred scripture. Actually, they're techniques for working around the limitations of languages like C++, and when evoked explicitly in Ruby tend to be a "code smell".

This comment has been a service provided by the small bot running in my brain programmed to respond to mentions of the GoF book with a link to Norvig's presentation on them:

<http://norvig.com/design-patterns/>

</comment><comment><USER16> I maintain a couple of non-trivial Rails 2 apps, have just shipped a couple of Rails 3 apps and am preparing to write a Rails 3.1 app. I had always been using Sass and Haml for my views from the Rails 2 days. I moved over from shoulda to rspec 2 for Rails 3. All my solutions run partly on MRI/1.9.2 and have certain parts in JRuby (document parsing, search, etc). I had always been minifying and combining my Javascript. Sass with Compass/Blueprint took care of minifying and compressing my CSS. The only change that I am not comfortable with as yet is CoffeeScript. But after playing with it for a couple of hours I understand that this is an excellent choice. I have been a Python programmer before and significant whitespace in CoffeeScript or Sass does not bother me.

I am extremely thankful to the people in the community who are putting their time and effort to build such great software and essentially giving it away for free. I am personally both awed and humbled by the excellent work put in by all the individuals who directly or indirectly contributed to Ruby and Rails across all the versions. If not for them I would not have quit my day job. If not for Rails, I am pretty sure that I would not be enjoying my life, as much as I am enjoying it today.

The point is that Rails has grown up to the point where makes it simple to write complex applications. For small projects, these choices may seem to be an overkill. But trust me, when you put it into production and start getting traction you will thank Rails. I have built applications with Sinatra and Rack and assembled my own Rails environment using tons of middleware and a lot of glue. I know how hard it is to do it the right way and appreciate the fact that Rails makes it a cakewalk for us. I sure learnt a lot of Ruby but I would choose Rails any day as I know that there has been a lot of thought put in by the community to make it awesome.

</comment><comment><USER17> I've lost count of how many times I have tried to do something in Rails which was trivial in every other framework I have ever worked with; struggled; gone to #rubyonrails or a mailing list and asked for advice; and had people tell me that I was "fighting the framework". I understand the benefit of not having to make every single decision from the ground up when you're getting started on a project, but sometimes I worry that working with rails is actually warping my thought patterns to fit its myopic vision of how web apps "should" work.

To phrase it differently: I feel comfortable with a framework or community forcing me to change _how_ I achieve some higher-level goal. But when that convention prevents me from doing something, _period_ , I start to worry.

<comment><USER2> Thats how Rails is ... I fought it at first, but you either come around or you don't. There isn't much middle ground with rails, you have to accept that and plan accordingly.

<comment><USER18> Like everything Ruby, you have to drink the Kool-aid, or walk away completely.

</comment></comment></comment><comment><USER19> > In most cases — for mere humans, anyway — there really is a right way to do > things. Ruby is an Object Oriented programming language. There are literally > decades of prior research in the field of OO software design, and they've > resulted in a lot of really well-documented and well-tested design patterns > for building software.

... coming from the people who are known for relying heavily on monkey patching existing classes.

Or did that change recently?

<comment><USER20> Allegedly they have faced enough mutually-inflicted pain to realize that monkey-patching was a bad idea, and so it's no longer cool.

</comment></comment><comment><USER21> The rapid pace of Rails is a turn-off to me, and I do bounce between it and the more "sane" Django.

But I think that's more a reflection of myself (being an "old" guy who's "been there, done that" several times over and resistant to change and trends) and not the fault of Rails. So I try to keep up.

But Rails is good for the web. The web was pretty stagnant at one time, and it sucked, and didn't keep up with the needs of users and businesses.

And that's why I don't have a real problem with Rails' rapid pace. It keeps everyone on their toes, including their competitors.

</comment><comment><USER22> I agree with a lot of what the article says but I do think the newbie coming to rails at the moment has to do a hell of a lot more to start swimming compared to the "good old days" of Rails 2.

Ruby 1.8 or 1.9? Use RVM? How does this Bundler thing work? What the hell are all these deprecation warning? Rake's broken? etc. etc. 3.1 brings asset pipelines where it seems you need to install a Javascript runtime on the server to deploy?!?

Even when you get your app up and running the load times in 1.9.x at the minute mean you'll be hanging around waiting for rails to generate files and your going to have to get Spork running to make any kind of rapid TDD/BDD.

Rails used to be the easy way into all this modern development goodness, now that "blog in 20 minutes" simplicity has gone along with the famous screencast.

</comment><comment><USER23> It seems actually kind of obvious that "opinionated" software would have a higher rate of change than other kinds of software: opinions change faster than the other stuff.

<comment><USER24> I was thinking just the opposite. When it comes to frameworks, opinions are good things. But you kind of look like an undependable jackass if your opinion changes every 5 minutes.

</comment></comment><comment><USER25> All the frameworks "are growing up", this is nothing to be proud about. The real question is: is the framework becoming mature?

Because RoR has this tendency to reinvent itself every 18 months or so, the answer to the question is a resounding no. It's being used mostly to explore new ways to create web sites, but RoR is more and more becoming a framework you really want to avoid if you need to create a production site that you are planning to work on for years to come.

</comment><comment><USER26> When one person drives the platform strategy, and it is opinion-driven, then conflict like this is inevitable. You either agree or you don't, and if DHH changes his mind, you might changes yours, too.

I don't think it is a statement on the platform at all - just a repercussion of one of its tenets.

</comment><comment><USER27> At least you guys Rails have something new to look at, good or bad I don't judge. I've been using Zend framework for the last 3 years and it's latest version 1.10 has lived like "forever", until the day ZF 2.0 comes out, which has been "promised" a long time ago

<comment><USER2> In PHP's defense ... Development on CakePHP has been chugging along like a champ for a while now.

</comment></comment><comment><USER28> I don't think this is a good thing. I built a few rails apps and currently we are doing our startup in rails and java and depressingly enough Java is actually nicer for me. He's talking about well documented gems; which ones? I haven't seen much of those; it's usually 'go read the source code'. And all those 'great OO practices' where suddenly some class is behaving totally different because you installed a plugin is GREAT when it works. When it doesn't you are debugging yourself silly through all that meta programming crap. And having (as in, stuff stops working) to change your code through minor versions? That's not growing up, that's just crazy behavior.

</comment><comment><USER29> I remember a blog post from 2008:

Rails will be retrofitted to make it easy to start with a "core" version of Rails (like Merb's current core generator), that starts with all modules out, and makes it easy to select just the parts that are important for your app. Of course, Rails will still ship with the "stack" version as the default (just as Merb does since 1.0), but the goal is to make it easy to do with Rails what people do with Merb today.

<http://yehudakatz.com/2008/12/23/rails-and-merb-merge/>

<comment><USER30> And they have been moving in this direction.

Here's configuring the middleware: <http://guides.rubyonrails.org/rails_on_rack.html>

Here's a stackoverflow question on how to disable ActiveRecord: [http://stackoverflow.com/questions/2212709/remove- activereco...](http://stackoverflow.com/questions/2212709/remove-activerecord- in-rails-3-beta)

Have you seen ActiveModel? It gives a common interface for orms to interface with so swapping out ActiveRecord doesn't break half of the view helpers.

Rails 3 is far, far easier to extend and modify than 2.3 was.

</comment></comment><comment><USER31> "It's growing up" sounds like "it's turning into java"

Now I know it's not that bad but I can see a future where instead of just having the rails book, you have books for every new thing and option possible and the section looks like the Java section where Struts, Spring, and even Scala/Clojure all make the idea of switching to to rails seem far more daunting than it needs to be.

</comment><comment><USER32> What's with the PHP bashing? MVC and ActiveRecord were in PHP frameworks and code before rails was born.

<comment><USER33> It's easy to bash PHP.

</comment></comment><comment><USER34> Right or wrong, I'm looking forward to whatever fills the spot that Rails left behind. It was a pleasure to work with a few years back and I miss that.

If you've seen something that fits the bill, please pass it on.

<comment><USER31> Sinatra I guess. You can choose the orm and templating language you want- which sort of just turns it back into rails.

Still working in Sinatra does give you that fun feeling of old Rails.

<comment><USER34> I liked being able to think of an idea, sketch out a schema and have it up in (admittedly ugly) webpages in a matter of minutes...and on almost any machine in just the time it took to download the package (no crazy dependencies, etc.).

The fact that you could then evolve this into something production-ready (arguably), well that was just icing on the cake!

</comment></comment></comment><comment><USER11> Thank you for making "You just don't get it" point number 1. I like to know early on when I should bail out and stop reading something.

<comment><AUTHOR> Had you continued reading, you'd see that I backed the point up by explaining what I meant. :)

<comment><USER35> Bxr is suggesting that you either move that conclusion to the end or eliminate it completely and define your argument so that the reader can figure out whether or not "he gets it". If I had to guess I'd say he would prefer the latter.

<comment><USER36> i prefer the way he said it.. same as bxr, i'd like to know early on what i'm about to waste time on.. i finished reading the whole thing..

</comment></comment></comment></comment><comment><USER37> I dont think that rails should worry about complaints coming from php developer.....

<comment><USER38> <http://en.wikipedia.org/wiki/Ad_hominem>

<comment><USER37> <http://news.ycombinator.com/item?id=2688788>

this is what i was referring too much of these are in ruby on rails from the beging ...

<http://en.wikipedia.org/wiki/Change_management></comment></comment></comment>


Microsoft security chief: IE is not a browser, so stop using it as your default - <AUTHOR> https://www.zdnet.com/article/microsoft-security-chief-ie-is-not-a-browser-so-stop-using-it-as-your-default/ <comment><USER2> gee this sounds like those stupid users who use it as a browser really screwed the pooch on using IE, stupid bad users, truly the source of every bad thing in the world.

<comment><USER3> Well it is squarely aimed at enterprise rollouts where your user is a professional systems administrator.

<comment><USER2> I guess you're right. Maybe I have some sort of unaccountable feeling of bitterness towards IE and I acted out.</comment></comment></comment>


Amazon said to be Secret Bidder for Borders - <AUTHOR> http://www.benzinga.com/trading-ideas/long-ideas/11/05/1087643/rivals-to-allies-is-amazon-the-secret-bidder-for-borders-amzn

<comment><USER2> I asked about this on Quora a while back and the general consensus was that such an acquisition was a bad idea. (Though I think it could be a great opportunity for Amazon to expand into brick and mortar shops at a discounted price.)

[http://www.quora.com/Would-it-make-sense-for-Amazon-to- buy-B...](http://www.quora.com/Would-it-make-sense-for-Amazon-to-buy-Borders- Books)</comment>


Ask HN: What do you write with for papers etc? - <AUTHOR>

What do HN readers use for typesetting papers and the like?
I've been using LaTeX as of late as it provides means to forget about the exact form and formating (after all, its just text) and to produce nice pretty PDFs I can give to people.
AbiWord and OpenOffice have lost my chit for like for their disk space and usability -- I'm a very Vi kinda guy, so I like plain text.
So, what do HN readers use for typesetting on a regular basis? <comment><USER2> I use LaTeX with TeXShop on my Mac.

<http://pages.uoregon.edu/koch/texshop/>

It goes with the MacTeX distribution, which includes other Mac-friendly goodies.</comment>


Subtext programming language - demo screencast - <AUTHOR> http://subtextual.org/subtext2.html

<comment><USER2> Ah! I was hoping somebody had submitted something about subtext.

I just finished up my submission today and subtext is relevant to the idea.

I'm big on visual tools. From everything I've read and experienced I believe we should be expressing our instructions to computers in a more visual manner.

I can get non-programmers to "just get" the tree-view/node highlighting in firebug. Those same people see one hacking at html and wonder aloud how you can have any idea what it all means.

I can explain REST to my mother and it just makes sense, but her "programming" experience stops at a spreadsheet.

I make the point about the spreadsheet intentionally. A spreadsheet to manage what furniture goes on a shipping container, and in what order based on the distance to deliver is quite a complex set of requirements for an application.

But my mother, partner in a small furniture company, does just that sort of thing regularly. I do think there is something to be said for the amazing feats one can undertake when it is required. But I'd really like to make a point about the importance of spacial thinking.

When I program I only get one dimension for my instruction set. It goes from the start of the file to the end of the file. I may have some tricky control flow structures, but I still have to represent them in a wholly linear fashion.

Whereas my mother, with her spreadsheet gets two spatial dimensions to think in. She can even put multiple planes right next to each other.

Our minds are wired to interpret spatial(visual) information. Thats why my mother can easily solve complex, unique problems with a spreadsheet and wouldn't even want to read a "real" program. And yet, if we can allow oureselves some perspective, they are really the same thing. A human's instructions to get a machine to solve problems.

I would never expect my mother to create space-shuttle software or anything like that. But she, and I'm sure untold millions like her are better equipped than some programmer to understand the requirements of their business' problems.

The spreadsheet was great when computers were for crunching numbers. But in this wild world of the web, I think it's time my mother had a better tool.</comment>


First Wave at Omaha Beach - <AUTHOR> https://www.theatlantic.com/magazine/archive/1960/11/first-wave-at-omaha-beach/303365/ <comment><USER2> Spine-chilling - romanticising the great wars as we often do - its easy to forget what an absolute meat grinder those machines were.</comment>


Bird Counting 101 (2012) - <AUTHOR> https://ebird.org/news/counting-101/ <comment><USER2> You can also use software to count birds, [https://blog.simos.info/how-to- count-the-population-of-flock...](https://blog.simos.info/how-to-count-the- population-of-flocks-of-birds-using-software/)

(disclaimer: I wrote the tutorial from a post I found on the Internet. That source post is now gone)

<comment><USER3> Thanks. Will try.Previously I have used ImageJ for counting cells.

</comment></comment><comment><USER4> As one of the original eBird developers I am happy to see all the progress it has made over the years. The Ornithology Lab at Cornell is doing some great work helping folks understand the roll birds play in our ecosystem.</comment>


Screenr: Instant Screencasts for Twitter - <AUTHOR> http://www.screenr.com

<comment><USER2> What does this have to do with twitter? It's really annoying to see these types of services say now you can do this for twitter, just capitalizing on the twitter brand.

Really, you can do this with Jing, which is more feature rich and also easier to use. <http://www.jingproject.com>

<comment><USER3> While Jing is cool, it requires an install, while screenr doesn't. Does that matter for most folks? I dunno.

It's Java, so it might work on Linux, I dunno. I haven't tried. I don't have the Java plugin installed, and don't consider it worth bothering with at the moment. But, if it _did_ work on Linux, that'd be enough for me to use it occasionally. Big projects would still make me reboot into Windows to use Camtasia, but it would definitely take the place of Jing (since I wouldn't have to reboot).

</comment></comment><comment><USER4> I like the fact I don't have to download and install a software to capture screencasts. I don't care much about posting it to twitter, but it is definitely useful.

The finished video isn't very good at displaying text, so it is really hard to read.

</comment><comment><USER5> Would be nice if it had some advanced features like follow the mouse, zoom, etc.

</comment><comment><USER6> Good marketing idea from articulate - makes it seem like it's some startup but, in reality, it's just a way for articulate to get more people in their funnel. I like it.

</comment><comment><USER7> "Got a Mac or a PC? Cool. Use Linux? Go fuck yourself!"</comment>


Supercomputer analysis of Covid-19 leads to new theory - <AUTHOR> https://elemental.medium.com/a-supercomputer-analyzed-covid-19-and-an-interesting-new-theory-has-emerged-31cb8eba9d63 <comment><USER2> Seems like it should be really straightforward to determine if this hypothesis is right by measuring bradykinin levels in Covid patients versus non-Covid patients.

One thing that I think strongly suggests that this hypothesis is wrong is that there is no strong relation between ACE-inhibitors and Covid mortality. Indeed, most of the studies that I've seen suggest that ACE-inhibitors have a somewhat protective effect whereas ARBs actually seem to have a minor detrimental effect [1]. So for the article to claim that covid behaves pharmacologically like ACE-inhibitors seems wrong at face value.

[1] [https://www.nejm.org/doi/full/10.1056/NEJMoa2007621](https://www.nejm.org/doi/full/10.1056/NEJMoa2007621)

<comment><USER3> The cited article has been retracted.

(I know this because I have the PubPeer extension installed which puts a big red warning by it.)

<comment><USER4> It shows for me too and I don't have the PubPeer add on

<comment><USER5> The addon makes it show on the HN comments page

</comment></comment></comment></comment><comment><USER6> > Interestingly, Jacobson's team also suggests vitamin D as a potentially > useful Covid-19 drug. The vitamin is involved in the RAS system and could > prove helpful by reducing levels of another compound, known as REN. Again, > this could stop potentially deadly bradykinin storms from forming. The > researchers note that vitamin D has already been shown to help those with > Covid-19. The vitamin is readily available over the counter, and around 20% > of the population is deficient. If indeed the vitamin proves effective at > reducing the severity of bradykinin storms, it could be an easy, relatively > safe way to reduce the severity of the virus.

<comment><USER7> This Medium article was written on March 10 [1].

"Put simply, medics found that severely ill flu patients nursed outdoors recovered better than those treated indoors. A combination of fresh air and sunlight seems to have prevented deaths among patients; and infections among medical staff.[1] There is scientific support for this. Research shows that outdoor air is a natural disinfectant. Fresh air can kill the flu virus and other harmful germs. Equally, sunlight is germicidal and there is now evidence it can kill the flu virus."

[1]: [https://firstname.lastname@example.com/coronavirus-and-the-sun-a- less...](https://email@example.com/coronavirus-and-the-sun-a-lesson-from- the-1918-influenza-pandemic-509151dc8065)

<comment><USER8> That air is a natural disinfectant is super interesting.

I read that vitamin D and observed benefits for those who have vitamin D is a correlation. Meaning that taking vitamin D supplements might not be as helpful as getting sunlight (a natural way to get vitamin D)

<comment><USER9> I don't know about air, but ultraviolet light is a pretty good disinfectant.

<comment><USER10> ozone too. And it goes inside your nose, throat, lungs.

<comment><USER11> I'm still waiting for the results from that whole bleach in the lungs idea Trump had. Hoping that will be the cure for all of this.

</comment></comment></comment></comment></comment></comment><comment><USER12> They found out that some genes related to ACE in comparison to genes related to ACE2 are more 'expressed' in Covid patients than normally and they conclude that that must have resulted in too much bradykinine. Hmm - that strikes me as kind of roundabout - why they couldn't just measure bradykinine levels directly? Is that too hard?

"Here, we perform a new analysis on gene expression data from cells in bronchoalveolar lavage fluid (BALF) from COVID-19 patients that were used to sequence the virus. Comparison with BALF from controls identifies a critical imbalance in RAS represented by decreased expression of ACE in combination with increases in ACE2, renin, angiotensin, key RAS receptors, kinogen and many kallikrein enzymes that activate it, and both bradykinin receptors. This very atypical pattern of the RAS is predicted to elevate bradykinin levels in multiple tissues and systems that will likely cause increases in vascular dilation, vascular permeability and hypotension."

<comment> 08-15 > why they couldn't just measure bradykinine levels directly? Is that too > hard?

It is. To measure gene expression, you isolate total mRNA and sequence it. This tells you the expression of all genes simultaneously. The protocol is fairly standard, cheap, and quick. That doesn't tell you anything about bradykinine, though, because there is no mRNA that codes for it.

In contrast, no such protocol exists for proteins. Sequencing a single protein is comparatively difficult, and no high throughput device exists that sequences lots of proteins, let alone quantifies their abundance. The traditional lab methods like PAGE gels are slow and labor intensive.

<comment><USER13> This comment on quantitative protein assays is only partly correct. It is definitely harder than quantitative assays of messenger RNA (aka "gene expression" and not as comprehensive. But there are now hundreds of quantitative proteomic studies that survey 5000 or more proteins in single samples (and their peptide fragments). Search PubMed for the author "Aebersold R".

<comment><USER14> Thank you for a great comment!, the crisp context is a good gateway for further reading.

Could I ask you for any hints about where/how to learn more? And/or if there's a way to follow your work online?

</comment></comment></comment></comment><comment><USER15> it's annoying that this is not a 'new' article/theory. It is an article talking about some research and analysis from TWO MONTHS ago. Almost want to request a (July 2020) marking in the title as we do with old link posts

<comment><USER16> Actually the theory is even older, here's an article from the beginning of April: [https://www.radboudumc.nl/en/nieuws/2020/radboudumc- research...](https://www.radboudumc.nl/en/nieuws/2020/radboudumc-researchers- publish-new-insights-into-covid-19)

If this info has been out since 5 months I'd expect several trials already that target the bradykinin storm.

</comment></comment><comment><USER17> The study itself:

[https://elifesciences.org/articles/59177](https://elifesciences.org/articles/59177)

Excerpts from the abstract:

        Bradykinin is a potent part of the vasopressor system that induces
        hypotension and vasodilation and is degraded by ACE and enhanced by
        the angiotensin1-9 produced by ACE2.

...

        This very atypical pattern of the RAS is predicted to elevate
        bradykinin levels in multiple tissues and systems that will likely
        cause increases in vascular dilation, vascular permeability and
        hypotension.

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

</comment><comment><USER18> This is a really interesting theory, and explains to some degree why those with darker complexions (lower vitamin-D levels) and obesity (increased rates of hypertension) have higher mortality rates. Would it explain why younger people are much less effected though?

</comment><comment><USER19> Am I the only one bothered by the use of "theory" when this is a hypothesis and, in particular, the back and forth flipping between the two terms in the article?

<comment><USER20> Probably just you ;)

Lay people use the two interchangeably.

In at least two of the thesaurus I have at hand _hypothesis_ is synonymous is _theory_.

<comment><USER21> It seems to me like even scientists use the terms not quite interchangeably, but on a spectrum. String theory is still "theoretical physics", not "hypothetical physics", even though it will likely never be tested in our lifetime.

<comment><USER22> That's because the whole internet idea of "a theory is a well-tested hypothesis" is silly and wrong. A hypothesis is a specific supposition or question about the way things work which if true has some level of explanatory power in a field of study. It can be confirmed or unconfirmed. It's still a hypothesis. An answered question is still a question.

A theory is a explanatory framework for a body of knowledge. Unlike a hypothesis, it's not inherently a question or a guess. That doesn't mean it's "true." It also can be unconfirmed (as you say, string theory) or even demonstrably false (phlogiston theory, Ptolemaic theory) and still be a theory.

Obviously there's considerable overlap between the two concepts and as you say they are sometimes used almost interchangeably. Colloquially, "I'm testing my hypothesis that orally ingesting booze provides protection against infection, which if confirmed will be a key part of a theory of booze immunology" gets collapsed into "I'm testing my theory of booze immunology." Big deal. It really only matters because people let themselves get bent out of shape about the whole "evolution is just a theory" thing.

And since I'm ranting already, evolution isn't "just a theory" because evolution itself isn't a "theory," evolution is the natural phenomenon that is being theorized about.

<comment><USER21> Right. I'll only add that it's not really an "internet idea". It's a highly idealized, cartoon version of science that has been part of my education since long before I was on the internet.

</comment></comment></comment></comment></comment><comment><USER23> Is this a fake news?

I could find only the article below on IBM's news section (they created this super computer). Speaking about the results of the 2 day analysis, Jeremy Smith, Governor's Chair at the University of Tennessee, director of the UT/ORNL Center for Molecular Biophysics, and principal researcher in the study: "Our results don't mean that we have found a cure or treatment for COVID-19. We are very hopeful, though, that our computational findings will both inform future studies and provide a framework that experimentalists will use to further investigate these compounds. Only then will we know whether any of them exhibit the characteristics needed to mitigate this virus."

[https://newsroom.ibm.com/US-Dept-of-Energy-Brings-the- Worlds...](https://newsroom.ibm.com/US-Dept-of-Energy-Brings-the-Worlds-Most- Powerful-Supercomputer-the-IBM-POWER9-based-Summit-Into-the-Fight-Against- COVID-19)

</comment><comment><USER24> Vitamin D for the win!

<comment><USER25> We don't know the dosage or protocol for stopping the bradykinin storm, or even if this hypothesis is confirmed through more tests ... but it seems sensible to me to make sure one has a healthy level of Vitamin D, and that is actionable for a lot of people.

<comment><USER26> > that is actionable for a lot of people

Really hoping this is better by the next few months or my Seattle winter will be even more pill popping to maintain basic human functionality....

<comment><USER25> If you cook or grow your own food (microgreens, mushroom in a kitchen cabinet), there are alternatives.

For example: [https://www.milkwood.net/2014/03/31/want-extra-vitamin-d- pla...](https://www.milkwood.net/2014/03/31/want-extra-vitamin-d-place-your- shiitake-mushrooms-in-sunlight/)

This works for both shiitake and button (portobello) mushrooms.

This trick came from Paul Stamets, one of the world's foremost mycologist. He is based out in Casscadia. You may have to track down exactly what "2 days" means... I wouldn't be surprised if he went looking for a way to maintain his Vitamin D health.

You only need 10g of this four times a week, according to this article. While it is summer time in Seattle, you can prepare a bunch and then dry them, so they last until next spring.

<comment><USER24> This is a great insight, thank you.

</comment></comment></comment></comment></comment><comment><USER27> I can't really see why you would need a supercomputer to do the analysis they did (it shows SC centers are getting desperate for users; I wouldn't even have been allowed to run this code on a supercomputer when I was an academic, because it didn't need interconnect for strong scaling.

<comment><USER28> >I can't really see why you would need a supercomputer to do the analysis they did

The article is fluff.

98% of all bioinformatics is done on "supercomputers" or 'high performance computing environments" saying the researchers used supercomputers to analyze the expression data is like saying someone used a shovel to dig a hole.

<comment><USER29> The article doesn't simply say they used a supercomputer. It says they used Oak Ridge's Summit supercomputer, the second fastest in the world. Unless 98% of all bioinformatics done on a top 2 supercomputer, your point fails.

<comment><USER28> >It says they used Oak Ridge's Summit supercomputer, the second fastest in the world.

The shovel had racing stripes. Got it.

The job doesn't change based on what hardware it is run on.

</comment></comment></comment></comment><comment><USER30> The hard part is asking the question in a way a computer can provide a meaningful answer.

<comment><USER31> In spite of its title, the article gives us no clue how the investigators used the supercomputer.

<comment><USER32> The intro made it sound like they just ran an exhaustive search of all nCoV genes against a database of known genes and their effects.

</comment></comment></comment><comment><USER33> The journal provides a good summary of the paper:

[https://elifesciences.org/articles/59177](https://elifesciences.org/articles/59177)

</comment><comment><USER34> Does this support nicotine as a therapeutic for covid?

It supposedly acts on the RAS and down regulates ace2

<comment> augusto-moura Maybe, I found out a study[1] that suggest that nicotine helps in the vascular metabolism of bradykinin. I'm no researcher neither understand a lot o biology, but it could be a hint

[1]: [https://journals.physiology.org/doi/full/10.1152/ajpregu.000...](https://journals.physiology.org/doi/full/10.1152/ajpregu.00099.2018)

</comment></comment><comment><USER35> Whether or not this hypothesis is truly correct, it still seems valid and I would much rather take Vitamin D then Chloroquine...

<comment><USER36> Vitamin D is lipid-soluble - your body will not flush any excess, and build-up can have negative health consequences. Probably don't start taking vitamin D supplements without getting your current vitamin D levels tested first.

</comment></comment><comment><USER37> Interesting, it seems to explain most aspects of the virus infection, _except_ for the scenario where a carrier exhibits little or no symptoms

<comment><USER38> Could that be determined by something like the level of Vitamin D a person has?

</comment></comment><comment><USER39> The anthropomorphization of computers (especially powerful ones) is pretty annoying. A _person used a supercomputer_ to analyze Covid-19, and I'm guessing the theory didn't just 'emerge' from the computer.

<comment><USER40> I remember a professor of mine (I forgot in which class) saying that humans generally make up 3 kinds of explanations about a system's behavior:

1\. When a system is very simple, we explain its actions in terms of its properties and external forces acting on it.

2\. When it's a medium complexity system, we tend to explain its actions in terms of its design, putting ourselves in the designer's shoes.

3\. When it's a complex enough goal-seeking system, we begin to empathise with the system itself, thinking why "it chose" a course of action.

I remember how impressed I was with this classification and how much sense it made in terms of how we're able to understand the world and predict what will happen next.

From this angle, much of modern computer software is clearly in category 3, and it just makes things easier for us to think of it as having a mind of its own.

<comment><USER41> For category three I feel that goal-seeking (or the appearance of such) is sufficient for the anthropomorphism to kick in. The braitenberg vehicles thought experiment is a good example of this.

Quoting from wikipedia "For the simplest vehicles, the motion of the vehicle is directly controlled by some sensors (for example photo cells). Yet the resulting behaviour may appear complex or even intelligent."

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

<comment><USER42> I routinely anthropomorphize PID loops when tuning them.

One of the best nuclear astrophysicists I know thinks about stars as entities that want to stay alive -- "I'm running out of hydrogen, what can I burn next?" That approach yields the right phenomenology almost all the time.

<comment><USER43> That makes sense for really old things like stars, after all survivorship bias is a critical factor in most long lasting things we observe.

</comment></comment></comment></comment></comment><comment><USER44> "Jane Zu read something online and says it's interesting"

</comment><comment><USER45> Boy oh boy that computer sure is super! (har har!)</comment>


Ask HN: How to document your work? how much is too much - <AUTHOR> I've been working in a small office of mostly junior programmers. Until now we weren't keeping any documentation apart from word documents on shared drive...
I've decided to change that so I am slowly building a documentation system for every project I work on. When it gets big enough I'll let others use / edit it...
My question is how much is too much? Should I keep links to relevant info for each project (url to VMs, password etc...) or should I document every page that I create for a project.
For example: project A is a CRUD app, with 2 form fields, and 1 datatable. Should I document every SQL query done inside application, every REST endpoint, every frontend component?  Should I keep them together (so each page gets 1 frontend, 1backend, 1database doc) or should I split stuff between frontend / backend....<p>any good examples or design patterns that I could follow? <comment><USER2> Docs about code should go in code. That's what comments and docblocks are.

Function signatures should be self-documenting. IMO API documentation is self- defeating for a small team because of how quickly it falls out of date.

Docs about design should go into either READMEs or a documentation system. Important trivia like URLs should too. (But don't document every single URL any more than you document every function signature. Just make sure people know how to get to the staging system and the staff-only admin tools, etc.) Ditto for how-to docs.

Secrets should go into a password manager or something like AWS Secrets Manager.

</comment><comment><USER3> Step 1: who is this documentation for? Non-technical users? Your colleagues and yourself when you come back to update it?

Step 2: for technical docs, the closer the docs are to the code, the more /likely/ it is to stay uptodate. What do you mean by "building a documentation system"?

<comment><AUTHOR> I have a folder with markdown files where lots of stuff is documentated -> I call this documentation system. Stuff is accessed via search or menu (im using mkdocs) Documentation is for me and colleagues (looking up passwords, various links, urls, tutorials etc..)

</comment></comment><comment><USER4> For anything rest API, I highly recommend you include Swagger/OpenAPI docs within your endpoint code, and don't bother to duplicate any of that material externally.</comment>