Sanders tweet causes drug company to lose $400M in a day - <AUTHOR> http://thehill.com/blogs/blog-briefing-room/news/301128-sanders-tweet-causes-drug-company-to-lose-400m-in-a-day <comment><USER2> The company didn't lose $400M; the aggregate market value of the stock fell by $400M (or more usefully, 15%) . . . and I am not even sure I understand why. The tweet, if accurate, should certainly make people mad at the company, but it doesn't necessarily have any effect on profitability. Selling the stock seems an odd way to punish the company.

<comment><USER3> The government has shown a tendency to selectively pursue pharmaceutical companies when there is public outrage, most recently with Shkreli and Mylan.

Selling the stock isn't done to punish the company, it's a reaction to the fear this will happen to Ariad as well.

<comment><USER2> The thought had occurred to me, and perhaps, you are right. However, 15% is a pretty large speculative jump based on one little tweet. I admit that I do tend to take a longer view of these things than the typical trader (and frankly, I would never have owned this stock in the first place).

</comment></comment></comment><comment><USER4> The valuation of the stock of the company declined by $400 million, which was 15%.

In business parlance, the company didn't lose any money.

This article does better with the jargon, names the drug, discusses the amount of the price increase and includes a chart of the stock for the day:

[http://www.businessinsider.com/ariad-pharmaceuticals- stock-d...](http://www.businessinsider.com/ariad-pharmaceuticals-stock- dropping-after-bernie-sanders-tweet-2016-10)

<comment><USER5> Right, which means savvy investors will buy at the dip and make 400 million over the next week.

You need laws to stop this stuff, not tweets that lower stock value for a week.

<comment><USER6> Uh, how come? This hardly qualifies as trading on insider information, after all.

<comment><USER4> I believe they mean that there is an opportunity to improve the regulatory system surrounding prescription drugs in the US, that a Senator tweeting doesn't represent much of anything compared to legislation.

<comment><USER5> Exactly. A tweet has no lasting impact on the stock price. The stock price will adjust to some multiple of yearly profit, adjusted for the overall climate, adjusted for the industry, adjusted for the growth rate.</comment></comment></comment></comment></comment>


APFS – A Backup Software Developer's Perspective - <AUTHOR> https://macdaddy.io/apfs-backup-software-developers-perspective/ <comment><USER2> If your backup tool uses rsync under the hood, which is just a normal user- space process that uses the standard filesystem APIs, why does it matter what the underlying storage is? Obviously filesystem bugs can cause issues with this assumption, but filesystem bugs can break a whole host of other things in your backup tool.

<comment><USER3> This was what I was left wondering as well. rsync for sure does not have any FS-specific code that I can find. If it uses the FS APIs provided by the OS, just like every other program that touches files, why would we expect anything other than boring old rsync doing it's thing?

<comment><USER4> rsync has a ton of HFS+ specific code. Making a faithful duplicate of a file (specifically its metadata) is a feat on its own: [http://blog.plasticsfuture.org/2006/03/05/the-state-of- backu...](http://blog.plasticsfuture.org/2006/03/05/the-state-of-backup-and- cloning-tools-under-mac-os-x/)

<comment><USER3> Upstream rsync does not seem to have any special-casing for mac/hfs. I'd wager Apple's extended-attribute handling is added in this patch[0] for the version distributed with macOS.

Even here, there isn't special casing for HFS. Instead, a special library function, copyfile()[1], is used to handle copying files and their associated metadata.

It seems this function was introduced in Mac OS X 10.5, which was after the article you linked. I'd wager copyfile() was introduced in response to the unwieldy file copy mechanics.

After discovering how copyfile() is used in rsync, I am fairly confident that rsync works so well on the new FS as a result of Apple implementing a fairly solid copyfile() for APFS.

[0] [https://opensource.apple.com/source/rsync/rsync-20/patches/E...](https://opensource.apple.com/source/rsync/rsync-20/patches/EA.diff.auto.html) [1] [http://www.manpagez.com/man/3/copyfile/](http://www.manpagez.com/man/3/copyfile/)

<comment><USER5> You're looking in the wrong place. Install the homebrew version, it has 3 patches for macOS that aren't in the upstream.

[https://github.com/Homebrew/homebrew- core/blob/master/Formul...](https://github.com/Homebrew/homebrew- core/blob/master/Formula/rsync.rb)

</comment></comment></comment></comment></comment><comment><USER6> And this is how you do SEO-oriented content marketing, kids.

Rather light on the substance, few select links (with at least one pointing out) and lots and lots of precisous keywords.

\--

Besides, the fact that a _file_ backup tool might need a near complete rewrite with a change of a file system should raise some eyebrows. It might be understandable for an imaging backup or if it was working directly with raw file system, but this one doesn't.

<comment><USER7> > And this is how you do SEO-oriented content marketing, kids.

And this in turn, kids, is how you assume bad faith without any reservation or doubt.

<comment><USER6> Who said anything about this being written in bad faith?

It's a really well executed example of content marketing. Whether it was intentional is a separate question, but the post is really quite shallow in technical terms and it exagerrates things here and there, so - yeah, it does look like something written primarily for promo reasons.

<comment><USER8> Sure. There's nothing wrong with promotional material, nor is there anything wrong with calling a spade a spade.

To be fair, though, your original comment did come across as negative — was it supposed to?

</comment></comment></comment></comment><comment><USER9> "So, before installing 10.13, I started off by googling for any problems experienced by people installing and upgrading filesystems during the process using the public betas. To my surprise there were none."

Well, my quick visit to developer discussions forum at Apple website related to macOs Beta quickly revealed a lot of people with the problems. It seems like the author didn't look too far:

[https://forums.developer.apple.com/community/beta/macos-1013...](https://forums.developer.apple.com/community/beta/macos-1013-beta)

<comment><USER10> That link shows discussions related to problems with the OS but it doesn't list any problems with the filesystem upgrade. If it does, they might have been bumped down by more recent posts but the only major issue (and the person posting it admits that they changed some permissions) is a read-only drive. That seems like pretty good odds.

<comment><USER9> If you go beyond the first page you will see more, including data loss after a few days of usage and during setup.

I'm not trying to be negative, I was just pointing out the results of my own research into this question when I was considering to try High Sierra beta. It's not "zero issues" as the original author wrote.

<comment><USER10> Mind linking to one? I can't find anything that has data loss in the subject and most of the other threads are not about APFS. The only one I can still see is regarding a kernel panic but it doesn't give any details, just an assumption that the issue is with APFS.

<comment><USER9> Sure.

"I converted my Macintosh HD to the APFS and it will not let me boot it up anymore." [https://forums.developer.apple.com/thread/80784?q=apfs](https://forums.developer.apple.com/thread/80784?q=apfs)

"1TB APFS Container Corrupt, Then Reinit to Single Volume" [https://forums.developer.apple.com/message/247781#247781](https://forums.developer.apple.com/message/247781#247781)

"APFS Brand new filesystem corruption" [https://forums.developer.apple.com/message/145039#145039](https://forums.developer.apple.com/message/145039#145039)

"Re: Corrupted APFS disk map error" [https://forums.developer.apple.com/message/254468#254468](https://forums.developer.apple.com/message/254468#254468)

"Device does not contain a valid APFS container" [https://forums.developer.apple.com/message/235888#235888](https://forums.developer.apple.com/message/235888#235888)

"Re: Files & file changes disappear on APFS volume" [https://forums.developer.apple.com/message/241082#241082](https://forums.developer.apple.com/message/241082#241082)

"Re: MacOs High Sierra Beta corrupted my disk" [https://forums.developer.apple.com/message/244120#244120](https://forums.developer.apple.com/message/244120#244120)

I'm not really interested in debating this further, so if you are not satisfied by these references let's agree to disagree :)

<comment><USER4> All of those, bar one, are from previous versions (not the latest GM) of High Sierra, and then it's not certain that that was what they were using. So granted, you have managed to find up to one case of what you were saying.

</comment></comment></comment></comment></comment></comment><comment><USER11> >Although too early to declare victory just yet, my anecdotal experiences combined with my research on the web does lead me to think that the mass transition from HFS+ to APFS is going to be another victory for Apple. This opinion differs from all others I have read from well informed people, many of who are predicting either catastrophe or at the very least some major stumbling blocks. In this case, time will tell, but I am bullish where most others are bearish. The only thing that bothers me is that I can't understand how they managed to pull it off.

Kudos to Apple!

</comment><comment><USER12> I was hoping to find atleast one technical detail of why this is an engineering challenge. But the author simply repeats the same thing over and again about how it's hard, how competitor says it's hard, how others think it's impossible. In the end it was flawless

</comment><comment><USER13> > uses Rsync under the hood

In that case, what difference does the underlying block storage format really matter? If rsync didn't work, general applications could easily be expected to have issues too.

<comment><USER4> It's the metadata that's really important. Just copying a file, while faithfully preserving metadata, is actually a feat on HFS+. That is why popular tools such as BackupBouncer (to test the integrity of backups) came to be.

<comment><USER13> I think you missed my point, everything rsync does is via the very same system calls any other app could use to originally get or set that metadata. As such, the kernel file system layer abstracts the block storage away from you. This is very different than say Shirt Pocket's approach (linked to in the article) where they are directly accessing/modifying/creating low level block devices. I'd expect what they are doing to be SIGNIFICANTLY harder. The reason why OP is generally positive is because essentially the only thing they had to do to support APFS is a bunch of testing, unless there's a part to this story they didn't tell.

<comment><USER4> I honestly have no idea what you are talking about. Shirt Pocket would not "access/modify/create low level block devices". They would also be working at the file layer. If you mean that you think that they are implementing their own way of reading the filesystem through the POSIX node, I really dont think that they are, and also it would be crazy to try to do that.

</comment></comment></comment></comment><comment><USER14> I'm really curious what is going wrong with Bear.app on APFS.

The theming engine breaks on APFS (all the themes look like one particular theme) - but it works fine if you copy the app to a disk image formatted with any other filesystem, including Case-sensitive APFS (so it only breaks on case-insensitive APFS).

Nothing stood out to me in the dtruss output.

<comment><USER15> > The theming engine breaks on APFS (all the themes look like one particular > theme)

I'm not sure if I'm running into the same problem as you, but I just opened up Bear on my Mac to check and applying the themes themselves works for me, however the preview of each theme is the same.

This is on macOS 10.13 Beta (17A306f) and Bear 1.0.4 (3733).

Does each theme look identical when applied for you?

[0]: [https://imgur.com/dBswvky](https://imgur.com/dBswvky) [1]: [https://imgur.com/jpHbS4i](https://imgur.com/jpHbS4i) [2]: [https://imgur.com/LxUWWS3](https://imgur.com/LxUWWS3)

<comment><USER14> Yeah, same issue. Pretty jarring for me, because I like the white theme.

Make an HFS dmg in disk utility and move the app over and it will work fine.

Surprisingly, it works fine on "APFS (Case Sensitive)" too (I had thought maybe it was a case-folding issue).

Edit: Oh, for me the theme works for the list of documents, just not the "edit" panel. The two halves are stored in separate files on disk for some reason. ([https://i.imgur.com/ZGS3Fp9.png](https://i.imgur.com/ZGS3Fp9.png))

</comment></comment></comment><comment><USER16> A few people here are disappointed that this post is about a tool that uses rsync. But the "competitor" link is more interesting - it points to the makers of SuperDuper!, a tool that makes bootable external backups. A couple of highlights:

 _"...it's important to note that Apple still hasn't released any documentation on the "proper" way to create a bootable APFS volume. An example of what they have in mind was released for the very first time when the High Sierra developer release came out a few months ago, but that's it. We basically have to make an educated guess about what they want."_

and

 _" In particular, Apple has further tightened its System Integrity Protection process, and is completely denying access to some files on the startup volume, even when copying to a non-startup volume.... But since APFS is, again, basically undocumented... what could that backup be missing?"_

[http://www.shirt- pocket.com/blog/index.php/comments/news_on_...](http://www.shirt- pocket.com/blog/index.php/comments/news_on_the_march)

</comment><comment><USER17> I haven't tried the GM seed yet, but I've reported a pretty annoying bug with inconsistent directory listings from host into guest with vagrant. A listing in the guest will be missing entries, but you can CD into the missing folders. This causes sites not to work as the application in the guest can't see files it requires. The only way to resolve it to date has been backup and reinstall with without apfs.

</comment><comment><USER18> Having written a backup app several years ago, I struggled to gain foothold in the market. I sold the app off. After a few years of wanting more from my backup, I started a new backup app. I utilize a number of commands under the hood but it is an ncurses interface only right now (supports drag and drop still into a terminal window).

I'd guess that if I wanted to put it out for sale I'd need to add a GUI on top that.

Can anyone shed some light on why backup apps are struggling with preserving metadata?

</comment><comment><USER19> Ah yeah okay tx.

I started to be disappointed as soon as i read that he is using rsync.

I was expecting someone who writes something like rsync and not a gui for rsync.

</comment><comment><USER20> thanks - this is a good heads up. I asked my team to back up anything not checked into our git repo to some disk not controlled by OSX, and btw don't rely on your time machine, who knows if some bug in the new FS might affect that also. Better safe than sorry. I finished my note with a suggestion to just wait a few months before upgrading to 10.13

<comment><USER21> You can also keep your Time Machine disk disconnected during the upgrade so it won't be touched by the installer. In my opinion not a bad idea anyway.</comment></comment>


So you want to start a web startup? - <AUTHOR> http://www.youtube.com/watch?v=u6gZ4vk_Tw4

<comment><USER2> thank you, I was just having a down moment (rough day in startup-ville) and this totally made me laugh.

<comment><USER3> Was the rough day related to <http://HangWith.me>?

<comment><USER2> heh, yeah it was :)

I REALLY need to find a partner who can program better than I can. My skills are wasted on hacking. Can get frustrating at times.

<comment><USER4> Have you tried raising a flag out there for anyone to help?

<comment><USER2> 'out there' is a big scary place :)

I have and I have a few people offering to help and a few more offering to help - for a fee. The frustration comes with the problem that the people who offer to help never do and the people who I hire to help often move much slower than my patience can allow for. This is mostly due to the fact that I am broke and can only afford people who do this on the side.

Don't get me wrong it's not that I cannot program, thus solving my own problem, it's that after years of trying, learning and effort I still suck at programming. What takes me hours to do takes [you] minutes. That's hours away from everything else. Hours of frustration and hours of face-bashing.

I am actively attending meet-ups, I am here and numerous other places and I am actively 'socializing'.

The great irony is that it is easier to find users than it is to find a partner.</comment></comment></comment></comment></comment>


Swirl: some sugar for Tornado Web Server - <AUTHOR> http://code.naeseth.com/swirl/ <comment><AUTHOR> I intended to write something like this myself, good thing I searched for it first.</comment>


Sisyphus on Fire: The Coming Agile Dystopia - <AUTHOR> http://blog.cognitect.com/blog/2015/12/2/sisyphus-on-fire <comment><USER2> I agree that the meaningless deadlines are evil, but this article falls into the false dichotomy of either Waterfall or Agile, and nothing else

</comment><comment><USER3> I support all efforts to promote agile hatred, so that part is great. Though, I also promote awareness that gray text on white background promotes illiteracy.</comment>


Elsevier's Digital Doc Prototype: Is This The Scientific Article of the Future? - <AUTHOR> http://www.readwriteweb.com/archives/elseviers_prototype_is_this_the_scientific_article.php <comment><USER2> Here is a FriendFeed discussion about it: [http://friendfeed.com/science- online/cbbe2531/news-releases-...](http://friendfeed.com/science- online/cbbe2531/news-releases-elsevier-announces-article-of), which boils down to the answer of 'no'.

This is typical of those with the power in science: they are too slow to embrace new technologies and to adapt to what researchers need. But, hey, why do they need to when they have researchers bent over a barrel whilst they rake in the money.

Scientific publishing is ripe for disruption, which includes getting rid of pdf.

</comment><comment><USER3> More like the scientific article as it should have been by the mid-90s. Still, it's good to see some experimentation.

</comment><comment><USER4> Elsevier's attempts are laudable to make Scientific papers a bit more readable on the web. Most people will just download a pdf and print to read and keep! However, I was surprised to find out that their use of Javascript can only be described as 'archaic'! (Just do a page view of the images tab)</comment>


The Freedom to Associate - <AUTHOR> http://www.filfre.net/2016/09/the-freedom-to-associate/ <comment><USER2> Alan Kay also adds some comments at the bottom of this interesting article.</comment>


PC LOAD LETTER - <AUTHOR> https://en.wikipedia.org/wiki/PC_LOAD_LETTER <comment><USER2> Why does it say paper jam when there is no paper jam?</comment>


Skype bug gives attackers root access to Mac OS X - <AUTHOR> http://www.theregister.co.uk/2011/05/06/skype_for_mac_critical_vulnerability/ <comment><USER2> No mention or actual "root" access, just "shell" access under the user's account. While that's still bad, obviously, on its own it's certainly not "wormable", as the article suggests.

More hysterical reporting from The Register.

<comment><USER3> I contacted the author asking him to verify the claim of "root" access, since it makes a difference to those of who know what that is. He replied with an apology and updated the headline.

<comment><USER4> Maybe someone should change the title here here, too, then.

</comment></comment></comment><comment><USER5> _"About a month ago I was chatting on skype to a colleague about a payload for one of our clients," he wrote. "Completely by accident, my payload executed in my colleagues skype client._

That means this thing is either BS or it is an egregious bug by the Skype team. Remote code execution doesn't happen by chance.

<comment><USER6> Not if skype renders javascript somehow. Amazon had a similar vulnerability in the "preview this book" feature a few months ago. If you used it to preview certain books that had example XSS payloads, you would get owned.

<comment><USER7> What does XSS have to do with remote code execution? I mean, it's possible for a Javascript parser to have vulnerabilities that can lead to arbitrary code execution, but the Amazon example seems in no way relevant here.

<comment><USER6> Well, it's a Register article. I left open the possibility that they called "remote script execution" remote code execution. They already said it gains root access, but then later said it gives shell access, which is not the same thing (since skype does not run as root).

I have no idea what the bug is, all I meant was that it wasn't completely out of the realm of possibility to have something render a payload.

<comment><USER7> Fair enough. The article does link to the actual blog post though ([http://www.purehacking.com/blogs/gordon- maddern/skype-0day-v...](http://www.purehacking.com/blogs/gordon- maddern/skype-0day-vulnerabilitiy-discovered-by-pure-hacking)).

</comment></comment></comment></comment></comment><comment><USER8> This is how you do a security alert. Notify the manufacturer of the software, notify the press so it is made public and thus people will install updates, and keep the details secret until it's fixed. Kudos to the discoverer.

<comment><USER9> You know, it's a bit of FUD since I have no workaround/prevention angle.

Great. I run skype on one of my machines (OSX) and it's now vulnerable...

<comment><USER10> Our solution is "Use Google Talk until it's resolved".

<comment><USER11> sadly no screen/desktop sharing

<comment><USER12> Check out showscreen.com - it's better than Skype I reckon

</comment></comment></comment></comment></comment><comment><USER13> Any word on whether this affects version 2 of Skype for Mac OS X (the old one), the current Skype 5.1, or both? Neither the article nor the linked blog post would say.

If the former, I don't imagine they'll update it, and this might finally force me to grab 5.1.

<comment><USER14> I'm been studiously avoiding the update since inadvertently installing it a while ago and backtracking furiously shortly afterwards. I hope we get some details on the versions affected and if the problem is present in v2 that we also get a patch for that. If Skype uses this as an excuse to force the v5 upgrade they will have a lot of very unhappy people on their hands.

</comment></comment><comment><USER15> So I have to upgrade to the shitty skype now? I've been actively avoiding v5...

<comment><USER16> From what I've read v5 is affected but not the older, good one. Needs confirmation though.

</comment></comment><comment><USER17> The headline says root access, but I didn't see any references to it in the article or its link. Does anyone know if it really is root access?

<comment><USER18> Frankly, getting a shell as my regular user on my machine can be just about as devastating as getting root. Everything that's important to me is owned by my user.

<comment><USER19> If it doesn't have root access you can run it in a dummy user account until it's patched.

Doesn't stop your machine from becoming a vector to attack other users on your contact list though.

</comment></comment></comment><comment><USER20> Why is this tabloid journalism featured in HN? Nowhere in the article is there any indication how root access could be obtained. There should be at least some description how privilege escalation could occur. I don't want arbitrary code executing but that is a long way from root access. Even for shell access the attacker needs the user's name and password. Does the target just offer them?

<comment><USER7> You don't need a username and password for shell access if the application has a vulnerability that allows for arbitrary code execution. Your code just executes as the same user as the application. To elevate your privileges, you would need to use a separate vulnerability once you have shell access.

</comment></comment><comment><USER3> Looks like it has been addressed:

[http://blogs.skype.com/security/2011/05/security_vulnerabili...](http://blogs.skype.com/security/2011/05/security_vulnerability_in_mac.html)

I submitted here as well:

<http://news.ycombinator.com/item?id=2522808>

<comment><USER21> I just ran "Check For Updates" and it told me I was up to date and I'm on 184.108.40.2064.

So something is not working there.

<comment><USER22> I get same.

Sometimes companies release minor updates that are reflected for fresh downloads but don't have the auto-update mechanisms in existing clients to download the update --- usually to save on bandwidth costs.

However, for a security patch that seems 'unfortunate'.

<comment><USER23> Skype's blog post specifically says you can update from the client.

</comment></comment></comment></comment><comment><USER24> Not that I'm a conspiracy theorist, but is it a coincidence that Skype's been in acquisition talks lately?

Also, can someone please create a viable Skype alternative that actually works?

<comment><USER25> Gmail in the browser is, in my experience, better than Skype. The voice and video chat worked flawlessly from San Francisco to the Philippines where under the exact same circumstances Skype stuttered and failed for video conferencing.

Also - Gmail in the browser is integrated with Google Voice and Google Chat, so you don't have to suffer through Skype's client just to chat. And in fact you can continue chatting over your phone through SMS (for free) because Google Voice is awesome.

<comment><USER26> Hunting down browser tabs or detached browser windows is not my idea of a good chat user interface.

<comment><USER25> Google chat uses Jabber, so any Jabber compatible client will work (ie all of them)

<comment><USER26> As much as I wanted to like jabber (I gave it a fair chance with openfire for almost a year), there are multiple problems, namely:

1\. Audio and Video calls do not work with "any compatible client". I have in fact never gotten them to work at all.

2\. Most jabber clients are awful and buggy.

3\. Jabber support in multi-protocol clients is even _more_ awful and buggy.

4\. Nobody uses it, at least over here in europe.

5\. Everybody over here uses Skype. If there was a _reliable_ way to bridge jabber<->skype then I would bite and switch again.

<comment><USER25> 1\. Yea, for Audio/Video you need to go to the browser (but the browser is IMHO better than Skype for A/V)

2 & 3\. ICQ, AIM (I think), iChat, Trillian... Etc. I like all of them.

4\. At least in the States everyone uses Gmail (most everyone in SV that is)

5\. Skype is prevalent in the work environment, I just don't know why. It sucks pretty hard and everyone hates it.

Just my opinion, I have had great success with Gmail/Google Voice and iChat (for chat with my Gmail Jabber account)

</comment></comment></comment></comment></comment></comment><comment><USER27> This is a conspiracy from Skype to make us upgrade to the latest version of the Mac client.

<comment><USER22> It may be that the exploit isn't previous version.

The current version appears to have been built by the most moronic team of developers ever who knows what crap made its way into the new client.

</comment></comment><comment><USER28> I hope while they're fixing this they can fix the terrible, terrible, UI bug introduced in Skype 5 for Mac.

</comment><comment><USER29> My guess is that this is related to the Webkit component Skype 5 on Mac is using for the IM window. So Skype 2/Mac should be safe, as are all other OSes.

Also, it's obviously not "root" unless there's a separate privilege escalation bug in OS X.

</comment><comment><USER30> I've been looking for a good reason to convince my team to switch from Skype...

</comment><comment><USER31> I wonder which versions of Skype are affected? This might cause those trying to hang on to the previous version with multiple windows to have to update.

</comment><comment><USER32> I wonder if you need to accept the attachment or if just sending it is good enough.

If you have to accept it, then who cares, don't accept attachments from strangers.

<comment><USER33> Given that there is a known issue with the current version of Skype (5.x) for Mac where if you have your language set to something odd, it'll render the Skype chat windows in raw HTML tags ... I'm thinking the exploit is unescaped HTML/Javascript, combined with the ability to launch local code.

If you read the original post from the hack team in question, they stated the ability to at least get a local shell running as a result, so either there's something resulting in launching local file content (like an interpreter, then passing commands to it) or something able to crash Skype in an interesting and controllable way.

Given that the original authors also stated that when he tested this on his GF, she was unable to use Skype for awhile - I have a feeling it's chat related, was stored in the client chat logs, and was re-launching / re- executing whenever Skype was being opened.</comment></comment>


Show HN: A side project in medical devices - <AUTHOR> https://chrisseaton.com/merseyburns/ <comment><USER2> Great write up !

I am working in medical devices but I am more familiar with the FDA regulations.

What I wonder regarding risk management is how you justify the safety of QT /iOS / Android. In its risk management, the FDA asks you to list of your SW dependencies you are using "off the shelf", and you have to analyze how any failure of any of your dependencies could lead to a failure of your device/application (which is good sense really).

So usually for a simple library it is easy to justify and identify the failure mode, but you look at the OS or big frameworks, it is always harder to find a clear mitigation. Especially at the OS level where potentially any part of memory could be corrupted, your thread not being scheduled, etc.

For example, in your case imagine you have a driver or QT rendering bug that makes the red overlay layer becoming transparent on some HW. That would lead to the user not identifying the correct area and in the end lead to a wrong computation. (I can see on some screenshots you have the percentage displayed so that could be a mitigation in itself)

I am working in the embedded space so generally we have less dependencies and a simpler code base, but we are always reluctant to use off the shelf SW because of the added risk management required. This is counter intuitive for safety but from a regulatory stand point it is sometimes easier to reimplement some features, than using a proven library, because this is less a hassle to justify or maintain.

So was it something raised by the regulator ? Can you give us some example of how you addressed it?

<comment><AUTHOR> I don't think you should think about the risk in isolation like that.

Yes, you can't reasonably control the risk of iOS not working as intended, and Apple will never guarantee it does work, and I'm not sure there is anything anyone can do about that on a consumer device. So there's a risk there.

But what's the risk of not having the app because you were afraid of the other risk? Doctors getting fluids wrong - and we found in practice they did get them wrong regularly and significantly.

Reduce one big practical risk, but yes introduce one smaller more theoretical risk. And mitigate where reasonably possible.

These aren't official statements on UK app regulation or the NHS's policy on Mersey Burns, though.

<comment><USER2> > I don't think you should think about the risk in isolation like that.

I don't disagree with the sentiment but FDA asks you precisely to do this analysis piecewise by what they call "SW units". And for each SW unit, you have to define a severity of hazard that can result from a malfunction of that SW unit. (from minor injury to death or irreparable damage)

Now you can always say you have a single "SW unit" to not have to check the boundaries or interactions, but then all the SW should have been developed with the same methodology/process, and this is not possible when you are using SW coming from an external source. (because you have no idea how it has been developed, and it was likely not targeting medical devices)

As as aside, the recommendation by the FDA is that, prior any mitigation, you have to assume that a SW bug as a 100% chance of happening. (That tells you how confident are the regulators..) But all SW bugs do not necessarily create an hazardous situation.

> But what's the risk of not having the app because you were afraid of the > other risk? Doctors getting fluids wrong - and we found in practice they did > get them wrong regularly and significantly.

You are allowed to use the benefits risk analysis by the FDA, but you have to demonstrate first there are no other mitigations possible, that you are ALARP (As low as reasonably possible) [0]. You need to explicitly write it in a risk management document to demonstrate you have analyzed that source of hazard.

To be fair, I am not anti regulation, but I think most of these standards are more applicable to SW written in the 80s or 90s when the SW stack where a bit smaller and simpler. And I have hard time to understand how they can be applied in practice in complex SW stacks like iOS. That's why I was interested by your experience, but it seems NHS did not challenge you on the finer implementation details. I understand this is complex because we are talking about 2 different regulation frameworks, so it is not necessarily transferable.

Thanks for chiming in, that is still great to know that is is possible to get something approved on a modern tech stack.

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

</comment></comment></comment><comment> nv-vn There is absolutely no way you'll remember this but years and years ago--when I was maybe 13--I found Katahdin somewhere online and was absolutely enamored by the idea (I can say with a lot of confidence that it's what sparked my interest in programming languages/compiler research). I think I contacted you for help installing and using the project. You were one of the nicest people I've ever met for having the patience to assist me with something you had probably put down for a couple of years at that point when I probably understood 0% of what you were saying. Anyways, I remember at the time you had just listed Mersey Burns on your website. It's super cool to see that it's still something that you're doing and that it's been a success. Just wanted to thank you again and congratulate you on this :)

<comment><AUTHOR> Thanks very much.

Katahdin sort of lives on in Truffle and TruffleRuby [https://chrisseaton.com/truffleruby/](https://chrisseaton.com/truffleruby/) \- Truffle is a framework for implementing languages that use partial evaluation of ASTs.

</comment></comment><comment><USER3> Also see lambdanative.org, which the authors created explicitly to build medical devices out of low-end mobile devices for third-world-countries. It is cross-platform.

They have several such apps on the website.

Warning: it uses the Scheme programming language.

</comment><comment><USER4> _We found that there were a lot of awards and prizes that we could enter._

I would love to see a list of these.

Edit: I guess this is a partial list within the article itself, UK based stuff, though I would be more interested in a US based list:

 _Winner, Excellence in Mobile Healthcare and overall winner, eHealth Insider Awards, 2013

Highly Commended, Improving Care with Technology, Health Service Journal Awards, 2013

Highly Commended, Innovative Mobile App of the Year, BCS UK IT Industry Awards, 2013

Highly Commended, Best Use of Mobile Technology in Healthcare, eHealth Insider Awards, 2012

Winner, Excellence in Innovation, NHS North West Health Innovation Awards, 2011_

</comment><comment><USER5> Really interesting read! Do you mind sharing the basics of the process you went through to get regulated by the NHS?

<comment><AUTHOR> It's really a form of self-regulation - you fill in a form - but you need to justify why you think the app will function as you have said it will, and why that's correct in the first place. We built a chain of documentation. Why do we think the hardware does what we coded? Why do we think what we coded was what we designed? Why do we think what we designed matches what we understand about the clinical policy? Why do we think we understand the clinical policy correctly? Why do we think the clinical policy is correct? For each of those questions we provided evidence and argument.

It looks like the process has been refined since we did it

[https://www.gov.uk/guidance/register-as-a-manufacturer-to- se...](https://www.gov.uk/guidance/register-as-a-manufacturer-to-sell-medical- devices)

I'm not a lawyer or expert on regulation so don't take my word for it.

<comment><USER6> I think what you did is a subset of what we do when we build medical software products, it's called computer system validation.

</comment></comment></comment><comment><USER7> I find this a really impressive project: 1. it actually helps society and 2. the author did it as a side project, not being a software developer, writing an iOS, Android and web app that's polished and being used. Wow! Great write up!

</comment><comment><USER8> Really cool stuff.

I have few friends who are pharmacists maybe I could develop something with them. :)

<comment> FLUX-YOU If they don't have a solution already, anything that schedules custom pharmacy mixes based on physician orders in a medical records system is worth millions. I wouldn't go so far as to connect it to an actual drug mixing system though -- let the pharmacists take care of that.

These are short-lived mixes that can't be stored for a long time, so must be prepared on-site.

Bonus if you can plug into an inventory system and get alerts for drug shortages. These can happen pretty regularly, on the order of six or seven times per year.

You'll write a lot of custom code to connect to that medical system API, and often there are surprise and sparsely documented features. That's mostly why you set a high price for it.

We did one of these and quickly saved the hospital millions because we had before and after photos of pharmacy waste generated. They weren't wasting drug mixes for cancelled orders any more when a doctor forgot to call/fax the pharmacy or the patient had been checked out/moved.

Before-hand, they were collecting this information manually with some cobbled together reports. It was nuts.

This isn't turnkey though. You will work for the money trying to sell to hospitals with bloated change management processes.

</comment></comment><comment><USER9> Any plans to get this through FDA approval in the US? I don't know which process you'd have to go through(510k, De Novo or PMA) but I'd imagine the NHS approval would help a lot.

<comment><AUTHOR> We tried it a couple of times, but it was always more serious than we were willing to invest into.

The great thing about our arrangement with the NHS was we gave them the IP, so they owned the app. They were also the only people using the app (the have an effective monopoly on emergency medicine in the UK), so if something went wrong it's the NHS using an NHS app and they could work it out themselves, and not companies suing companies.

I don't think that kind of simple arrangement would be possible in the US, but I don't know much about US healthcare apart from it isn't nationalised.

<comment><USER9> Yeah, it was difficult for me to see from the FDA's website how exactly you'd get approved. If you did have to go through De Novo or PMA then you're probably looking at years and years if you can even get the regulators to accept it. It's not like there's a predicate device for what you're doing so there's nothing you can point to. From what I understand, De Novo is where cool ideas go to die.

FDA protects people from a lot of bad devices, but it also makes it really difficult for people to innovate here. My last job was with a company doing a 510k and we were delayed 6 months while the branch of the FDA that handled ventilators tried to figure out how to work with the branch of the FDA that handled oxygen concentrators.

I don't blame you.

</comment></comment></comment><comment><USER10> This is really awesome. Can this be made available in India?

<comment><AUTHOR> Sorry, not without an understanding of how India manages medical device regulation.

</comment></comment><comment><USER11> Why it is not available in Turkey?

<comment><AUTHOR> The app constitutes a medical device - we'd have to get it regulated by the Turkish government, and I have no idea how we'd do that.

<comment><USER12> Could you make another one, where the patient looks like a clown and call it, "a game" ?

<comment><USER13> Sounds like a terrible idea if you ever plan to sell your product in another market. Regulators aren't typically big fans of trying to deliberately skirt their regulations.

(I work in the medical software industry.)

</comment></comment></comment></comment><comment><USER14> > My fiancée was working with a plastic surgeon, Rowan Pritchard Jones, who > had also been in the Royal Army Medical Corps, who was thinking about his > own medical equivalent of a side-project - writing a book with his > colleague, Paul McArthur. They decided to do some form of app instead to > make it different, and asked me if I was interested in working with them.

This shows once again that building successful software depends not just on coding skills or UX design skills, but more on the connections we have. I'm betting most senior developers on HN could have come up with this kind of solution (or perhaps even more advanced ones). Connections determine, through a seemingly random process, our ability to actually _find_ interesting stuff to work on. I just wish it was simpler to find interesting project ideas.

<comment> d-sc Yeah. To take it a step further - I would argue that for a lot of things, the coding isn't most difficult part of the innovation process.

<comment><USER15> > the coding isn't most difficult part of the innovation process.

This. Exactly my sentiments. I believe coding could also be one of these easiest things to do. Hardest are - requirements gathering and selling.

<comment><USER16> Funny how everyone thinks other stuff is hard. Me, I think gathering requirements and deciding what to build is the fun part. Following through with the plan, managing the project, coming up with a schedule, making sure everything gets done on time, that's what I consider the hard part.

<comment><USER17> Both you and the parent seem to assume that there is this clear boundary between gathering requirements, and implementing the solution.

The hard part is accepting that this is an ongoing cycle and that you need to find ways to build inertia and continually evolve the value proposition.

<comment><USER15> Sorry, I do not have this assumption. Prioritizing the requirements is another big challenge.</comment></comment></comment></comment></comment></comment>


Social Skydiving Day 21: Ignore the Clouds, It's Sunny - <AUTHOR> http://socialskydivingwithjustin.posterous.com/social-skydiving-day-21-ignore-the-clouds-its

<comment><USER2> [joke alert] _`Ignore the Clouds, It's Sunny'_ would be a great title for an article about Cloud Computing. Too bad this article deals with social life...</comment>


'I am Chelsea Manning,' says jailed soldier formerly known as Bradley - <AUTHOR> http://www.theguardian.com/world/2013/aug/22/bradley-manning-woman-chelsea-gender-reassignment

<comment><USER2> That's unfortunate. Access to hormones is generally considered a medical treatment to which prisoners in federal civilian prisons are entitled (it varies among the states), but the same rights do not necessarily apply to the military justice system.

She may be Chelsea on the inside, but she's probably going to remain Bradley on the outside for a very long time.

</comment><comment><USER3> Several of the reports of this story have been flagged off the home page, probably because of the horrible comments that appeared in the discussions. Trans-gender issues can be a complicated topic for people not familiar with them and I worry that all the hateful things being said today are going to take LGBT progress a few steps back.

I wish someone would fix commenting already. This is a problem that really deserves fixing. Comment sections are some of the worst places on the internet, even on sites that are otherwise usually OK. There is a need for a startup to encourage smart and empathetic comments, and discourage anonymous bile you can find pretty much everywhere, including places where real names are required.

<comment><USER4> > Several of the reports of this story have been flagged off the home page, > probably because of the horrible comments that appeared in the discussions.

I was wondering why I hadn't seen that flamewar here yet. Could you link me to some of these? As someone who occasionally reads YouTube comments for fun, I actually am interested in getting a more concrete sense of what such people are saying.

> There is a need for a startup to encourage smart and empathetic comments, > and discourage anonymous bile you can find pretty much everywhere, including > places where real names are required.

[http://engage.cs.washington.edu/considerit/](http://engage.cs.washington.edu/considerit/)

<comment><USER3> You read angry and hateful comments for fun or to make you feel good about yourself because at least you're not that bad?

<comment><USER4> Well, one: I am that bad. I just express it at different moments in different ways. Two: it's educational. This kind of attitude comes _out_ of something, and unless I intend to just kill everyone I don't like, I need to figure out how to engage, neutralize, and rehabilitate attitudes that go beyond disagreeable into being problematic.

And I don't intend to kill them all. So I'm just going to have to understand them.

</comment></comment></comment></comment><comment><USER5> Oh gosh. If her life wasn't hard enough already.

</comment><comment><USER6> I don't care.

And as a progressive liberal, I'm proud that I don't care. I don't think any of us should care. This should be roughly like announcing that you're no longer a Catholic but a Protestant. It should not be news, and no one should care.

That said, sure, yes, transgendered people still have a ton of problems in society. But anyone who thinks this A) helps them or B) hurts them... is probably wrong. I don't think this does anything for or against them.

Also, this is not news, to anyone who has paid any attention to Manning.

This is just circus, to everyone except those who personally know Manning. Or who might, maybe, possibly, see her actions and decide to come out of the closet with their own choices. So, for that, I guess, yay. But I really sincerely doubt it. I suspect as many would see this, and decide to NOT come out.

<comment><AUTHOR> I don't think/hope this helps/hurts them. But I hope Chelsea gets what she wants. And a PR stunt might not be the worst idea considering her position.

</comment></comment><comment><USER7> Maybe Brenda would be a better name.</comment>


How we allowed users to customize the look & feel of our app with only 4 options - <AUTHOR> http://evan.lc/post/36862727889/how-we-allowed-users-to-customize-the-look-feel-of

<comment><USER2> How's adoption of the customization looking? Curious to hear if this is resonating with people or if four options is not enough...or too many.

<comment><AUTHOR> Too many would be interesting, but we could definitely drop it down to 2 or 3. I had thought about putting every option into an advanced tab, but figured that would add to clutter. We'll likely revisit it if people start asking for it.

<comment><USER3> So... Sounds like an interesting way of doing things. Put in a small number of useful features, then build in what people actually want! Not a bad approach.

<comment><AUTHOR> ;)

</comment></comment></comment></comment><comment><USER4> I'm totally lost as to what this does from the page, and I'm not going to use a bookmarklet for something I don't understand.

<comment><AUTHOR> Sorry, I suppose I should have just linked to the landing page at the end of the article there (now amended).

Taurus allows users to create product tours using just a few lines of JS, the bookmarklet loads the tool onto the demo page.

</comment></comment><comment><USER5> Please please please do not make links with just the word "here" linked. That's usability and SEO horror.</comment>


Abstraction Creep - <AUTHOR> http://timelessrepo.com/abstraction-creep

<comment><USER2> I'm not 100% certain I agree with this. Clearly, you can go too far with abstractions. I mean, I'm really annoyed by Java's "Let's just fix this with another layer of abstraction" strategy. But at the same time, it's fairly frequent that you need a couple of levels of abstractions to do something complex.

<comment><AUTHOR> It's not abstractions per-se I'm arguing against. It's when you have a slightly flawed abstraction and instead of fixing the abstraction you introduce another abstraction to "hide" the flaws.

</comment></comment><comment><USER3> Or if your tests are slow from loading Rails each time you can use Spork:

<https://github.com/sporkrb/spork> <https://github.com/sporkrb/spork-rails>

<comment><USER4> Never could get it to work without making our tests flaky. Flaky tests are far, far worse than slow tests.

<comment><USER5> Spork+Guard does wonders. I've never had a problem when I've used them together.

</comment></comment></comment><comment><USER6> I think "web applications" are themselves an abstraction.

Why not just run the application from your own machine?

Same interface, same commands, superior performance and security.

How about letting users add abstraction if they want, but not forcing it on them?</comment>


Increase focus, decrease stress while you use your computer - <AUTHOR> https://lumiate.co <comment><AUTHOR> Compatible with all other apps, native or web.</comment>


Goplan launches project management and collaboration app - <AUTHOR> http://blog.webreakstuff.com/2007/03/goplan-launches <comment><USER2> Hrm... Yet Another Project Management thing...

I think this is part of the reason I smell 'bubble' (although not as big as the last one). Like Paul has written elsewhere, there is tons of space left for startups, but what is happening is that lots of them are piling into the same spaces - depth instead of width. And that virtually guarantees some kind of shake out, especially if the economy in general turns south.

<comment><AUTHOR> Another thing that happens too with this cramming of industries is that all of the legitimate good ideas are blended in with the others. It becomes harder for a business with a great idea to not be compared to every other obvious idea in their market.</comment></comment>


How to play fishboom game  like a boss , video - <AUTHOR> http://www.youtube.com/watch?v=tJOoIuOkERA

<comment><USER2> this game make me crazy</comment>


Ray Kurzweil: A university for the coming singularity - <AUTHOR> http://www.ted.com/talks/ray_kurzweil_announces_singularity_university.html

<comment><USER2> ok, wtf is all this circle jerk with singularity... can anybody explain me why is this important that we need a whole university dedicated to it?

It just feels way too cultish

<comment><USER3> It feels cultish, but it's not. It's the real deal. It's the real deal because there will come a time in the future when computers _are_ "smarter" than people. Computer analytical skills will progress faster than human analytical skills. Computers will be asking _humans_ questions.

It's not a cult at all. You don't have to believe it is coming. You don't have to associate with people who do believe it is coming.

It seems like a logical certainty to me. Unless there is some sort of a human intervention or tragedy that stops us from progressing and innovating and building more powerful computing systems, then what is the alternative? That humans continue to outpace computers forever?

If you look around at the world already, most people have no idea what is going on with the internet, cloud computing, artificial intelligence. Robots are sweeping our floors and mowing our lawns and killing our enemies.

What is the alternative? How might The Singularity _not_ occur?

<comment><USER4> What if it's impossible to develop an autonomous machine intelligence? I know that statement is equivalent to "what if it's impossible to develop heavier- than-air flight," and I think that we definitely _should_ pursue AI research, but it is by no means guaranteed that we will end up with anything that behaves like a self-directed mind.

I'm choosing my words here, because obviously a Singularity situation would not require a human-like intelligence. But as far as I know, neurologists and psychologists don't really know how human minds work, and computer scientists haven't built a computer mind that showed even a glimmer of "free will" or "self-awareness," if you'll pardon the terms. How can we take it for granted that we'll get there?

<comment><USER5> The Singularity doesn't require computer sentience. Researchers at the Singularity Institute* refer to their goal as a "powerful optimization process."* All that's required is that it's better at general-purpose goal- seeking than humans; that would logically include the ability to wipe out the human race and tile the solar system with little smiley faces if we set its goal incorrectly.

* <http://www.singinst.org/>

* <http://www.sl4.org/archive/0512/13006.html>

<comment><USER4> And that's roughly what I meant by "self-directed."

Imagine a concrete goal: efficient fusion power, for instance. It's easy to define, easy to establish success metrics, and it's even easy to propose methods -- but success has eluded us for decades. A mind that could solve a problem like that would have to have intuition, lateral and parallel thinking, and creativity (or their machine equivalents; I'm open to an AI which might think _utterly unlike_ a human).

My point is that we don't know where such traits come from in humans, and thus have no idea how to even begin to attempt to replicate them in computers except in the crudest and most rule-based ways.

Note: I would dearly like to be proven wrong, I'm just parroting things I've heard.

</comment></comment></comment></comment></comment><comment><USER6> What we mean by "intelligence," must also be considered. As they are, computers are most useful for solving problems where a solution is known, theoretically, to exist.

For example, you know there are articles on the internet concerning Javascript, and when you ask google to point you towards them, the relevance of the returned results is often viewed as a measure of the algorithm's "intelligence." But behind this intelligent response lies complex but defined probability calculations that are provably correct given a known algorithm. On the other hand, can you ever imagine asking the questions, "Computer, does this shirt look good on me?" or, "Computer, what is the most ethical course of action in this situation?" How a human responds to these questions helps indicate that human's level of intelligence. But different people could also disagree on the above questions and still be considered intelligent.

To me, it doesn't seem to make much sense to invest in computers that are modeled after humans, as there are certain types of situations where even the most intelligent of these machines could be wrong as a matter of opinion. Rather, the more powerful computers become, the more sense it makes to have them tackle finite problem spaces more efficiently. Because of this, I don't really see the case where human intelligence and computer intelligence would or should converge. Put simply, it would NEVER make sense to give Skynet control of our nukes.

</comment><comment><USER7> hmmm, I'm curious about why people are against dedicating time and energy to this. Technology is already growing at a faster rate than we can effectively regulate it.

There will definitely come a point when technology will be able to improve the ones improving technology, whether they're AI or cybernetically enhanced humans. That's going to profoundly affect everything related to technology (which is pretty much everything). Imagine if your neighbor can just think up the plans to make a nuclear bomb by getting a cognitive implant, how would that affect the world?

There is a lot of speculation, but kurzweil has been fairly accurate with his predictions so far, so I'm curious to why people don't buy it.

<comment><USER8> Well, one reason I don't buy it is that it all seems premised on the notion that the human body is nothing more than a vehicle for the human mind, and that ones thoughts are the essence of oneself. The problem is that all current biomedical and neurological research points to the exact opposite: a human mind without a human body is not human.

<comment><USER9> What makes you think an apparent body can't be simulated as easily as a mind?

<comment><USER10> Or even a simulated "super" body. Human bodies are quite limited in the amount of information it can take in at once. I think you could potentially simulate a "body" with a million times more senses than a human. It's all a matter of sensory input.

</comment></comment></comment></comment><comment><USER11> $25,000 is a lot of money to attend. But I think it might be a valuable educational experience.</comment>


JS.Class - A Ruby Inspired JS Framework - <AUTHOR> http://jsclass.jcoglan.com/

<comment><USER2> Looks nice, but I'm not sure why JavaScript needs to be like Ruby.

<comment><USER3> Lack of classes is one reason to prefer JavaScript to Ruby. People always feel the need to add complexity where it isn't needed.

<comment><USER4> Yes, the lack of the class abstraction does add complexity to your code. That's why frameworks like this exist.

<comment><USER3> I was making the opposite assertion. How are classes simpler than prototypes? If you want to add behavior to the proto and the clone, you just add a method to the proto. If you want to add behavior to a class and its instances, you have to do a fair bit more.

<comment><USER4> Prototypes offer no contract, so it's up to the consumer to ensure that the object received is acceptable. Classes offer a contract, so if an object is an instance, it's guaranteed to work (Liskov, etc.).

Basically, the idea of OOP is information hiding and polymorphism, and prototype-based objects throw both of these concepts away. The result is more complicated code in general.

<comment><USER3> Ruby Classes don't provide a contract either. You can add and remove methods to your heart's desire.

 _information hiding is the principle of segregation of design decisions in a computer program that are most likely to change, thus protecting other parts of the program from extensive modification if the design decision is changed_

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

How are prototypes inferior to classes with respect to information hiding? They provide the ability to easily change the implementation while maintaining the interface.

How do prototypes inhibit polymorphism? All of the prototype languages that I know of (Javascript, Io, Self, Lua ...) make it easy to take advantage of polymorphism.

</comment></comment></comment></comment></comment></comment><comment><USER5> I implemented something like this for my last project, but I think you can make JS class creation far more ruby-like (and flexible, for that matter), by not passing an explicit hash to your class creation function, but instead building the class in a callback:

      // code start
      var Event = Class.define(function()
      {
        this.speak = function()
        {
           console.log("HI");
        }

        // since you can just write code in here
        // metaprogramming is easy:
        ["attack", "defend"].each(function(name) {
        this[name] = function() {console.log(name);}
        }.bind(this));

        // or build reusable metaprogramming facilities
        // and use them here
        this.$setters(["x", "y", "z"]);
        this.$memoize("expensiveFunc", function() {
             // blah
        });
        this.$inherited = function(derivedClass) { ... }

});

Basically, the class define method would create a special 'class-creation' object, and would invoke the user provided function with the class creation object as the this pointer. After the callback finished, I would use the class-creation object to build the actual class.

Being actual able to write code inside your class definition is a much more flexible way to define your objects - and it's also how Ruby does it.

</comment><comment><USER6> Thanks, but no thanks. Prototypal inheritance is JavaScript's strength.

<comment><USER7> You can do prototype-style inheritance in ruby, but no one does it. In fact, most new languages that come out express no interest in this style. It makes me wonder why the Javascript people are so convinced that why they have is that good.

<comment><USER8> I don't know - I love PHP classes but I'd love to see PHP with prototype-style inheritance (if PHP had classes for strings, etc. in respect to basic variable types). I think the "everything is an object" route is great and coupling that with prototypes exemplifies that decision's greatness.

However, I really do think that JavaScript needs all of the great things ECMA 5 displays first and foremost (such as strict mode, getters/setters/enumerable/configurable/writable for property descriptors).

John Resig does an excellent job of summing up ECMA 5 pragmatically (it truly must be great to work on JavaScript stuff as a day job): <http://ejohn.org/blog/ecmascript-5-objects-and-properties/>

</comment></comment></comment><comment><USER9> _Just like in Ruby, classes and modules are open for modification at any time, so you can add and change methods in existing classes._

Brings to mind the expression "A bug-for-bug port of the existing system."

</comment><comment><USER4> I think Joose is a more featureful variant of this idea:

<http://code.google.com/p/joose-js/>

</comment><comment><USER10> Coffeescript

<comment><AUTHOR> Rocks. I love JS for what it is, even though I would equally love for CoffeeScript to be mainstream and natively supported across all browsers :)</comment></comment>


Magit 2.90 released - <AUTHOR> https://emacsair.me/2018/11/08/magit-2.90/ <comment><AUTHOR> Release notes are at [https://raw.githubusercontent.com/magit/magit/master/Documen...](https://raw.githubusercontent.com/magit/magit/master/Documentation/RelNotes/2.90.0.org)</comment>


After breach, users rarely change their passwords – when they do, often weaker - <AUTHOR> https://techxplore.com/news/2020-05-breach-users-rarely-passwords-theyre.html <comment><USER2> The paper shows that only 1/4rd of the passwords are weaker.

Figure 1 of [https://www.ieee- security.org/TC/SPW2020/ConPro/papers/bhaga...](https://www.ieee- security.org/TC/SPW2020/ConPro/papers/bhagavatula-conpro20.pdf) .

About 50% were of roughly equal strength.</comment>


Antimatter atoms produced and trapped at CERN - <AUTHOR> http://press.web.cern.ch/press/PressReleases/Releases2010/PR22.10E.html <comment><USER2> Next, suspend it in a mercury-like globule between two battery-powered magnetic plates, and place it beneath the Vatican...

<comment><USER3> Why?

<comment><USER4> Cheap literature says so ( <http://en.wikipedia.org/wiki/Angels_%26_Demons> )

<comment><USER3> I had hoped that less people on HN are familiar with Dan Brown's books.

<comment><USER5> Off topic but I had a very interesting experience reading Dan Brown. I read 'The da Vinci Code' without knowing anything about it or Brown, and I really enjoyed reading it. Then I saw the movie and I immediately recognized the massive holes in the plot, holes that I never saw while reading it. It surprised me.

<comment><USER6> I saw the holes in the plot (and characterization, and writing, etc.) while reading it and recognized the book as the worst sort of hollywood-esque masturbatory dreck. Nevertheless, despite all its defects the book was written well-enough to get me to keep reading it avidly, and for that I'll give Dan Brown a modicum of credit. Realistically, a lot of much more well thought of writers are no better than Brown.

<comment><USER3> It may be a guilty pleasure like junk food. McDonald's may not be worse for you than lots of other food, but it sure does feel bad.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> The article doesn't spell it out, and I know practically nothing about the subject, but... what happens at the end of the 0.2s? Do the antimatter atoms drift out of the magnetic fields used to contain them? Do matter atoms drift in? Or is it some property of the atoms or magnetic fields? Basically, what needs to change to increase the 0.2s?

<comment><USER8> They are neutral hydrogen atoms - why does a magnetic field affect them anyway?

<comment><USER7> The BBC article that's further down the front page at the moment brings it down closer to my level:

<http://www.bbc.co.uk/news/science-environment-11773791>

\----

"Atoms are neutral - they have no net charge - but they have a little magnetic character," explained Jeff Hangst of Aarhus University in Denmark, one of the collaborators on the Alpha antihydrogen trapping project.

"You can think of them as small compass needles, so they can be deflected using magnetic fields. We build a strong 'magnetic bottle' around where we produce the antihydrogen and, if they're not moving too quickly, they are trapped," he told BBC News.

Such sculpted magnetic fields that make up the magnetic bottle are not particularly strong, so the trick was to make antihydrogen atoms that didn't have much energy - that is, they were slow-moving.

\----

So, basically, magic. I'm just curious what the specific limitation is (but realize it may not be trivial to explain without understanding the entire containment process better).

<comment><USER9> Atomic clocks have the same problem. They use caesium atoms, which are hard to trap, and they want them moving very slowly so that thermal, doppler, and relativistic effects don't screw up the frequency signal you get from them. Hence caesium fountains, which fire the atoms upwards so that they come to the top of their gravitational parabola at about the time they drop a hyperfine energy level and emit the magic microwave photon.

</comment></comment></comment></comment><comment><USER10> "Geneva, 17 November 2011"

A message from the future...

<comment><USER11> In accordance with Feynman's idea that the positron is an electron moving backwards in time... (<http://en.wikipedia.org/wiki/Retrocausality#Antimatter>)

<comment><USER12> _Wheeler invoked this concept to explain the identical properties shared by all electrons, suggesting that "they are all the same electron" with a complex, self-intersecting worldline._

Quantum mechanics is so cool!

<comment><USER13> If I remember correctly, Feynman quickly suggested to Wheeler that this is probably wrong, as it would imply that there are as many positrons as electrons. At least in our little piece of the universe, this is definitely not the case.

<comment><USER12> Maybe we haven't seen the positrons yet because they're still traveling back in time from the future!

<comment><USER14> Showing that this makes no sense is left as an exercise to the reader.

</comment></comment></comment></comment></comment></comment><comment><USER15> So far they have 38 atoms. I wonder what the price per kilo or pound of antimatter is... :)

<comment><USER16> Yet another substance cheaper than printer ink, whatever its price.

<comment><USER17> I actually once bought a new printer (and ink for it) because the combo was _cheaper_ that replacement ink for the printer a family member had bought...

</comment></comment></comment><comment><USER18> I hope they will finally definitely answer if anti-matter also has anti- gravity.

Not a single scientist thinks it does, but it's one of those things you just want confirmed.

<comment><USER19> Antimatter has opposite charge, not opposite mass. It has the exact same magnitude and sign of gravitational interaction as normal matter. It's never been directly observed, but I'm not aware of any models that predict otherwise. [http://en.wikipedia.org/wiki/Gravitational_interaction_of_an...](http://en.wikipedia.org/wiki/Gravitational_interaction_of_antimatter#The_antimatter_gravity_debate)

Maybe you're thinking of exotic matter? <http://en.wikipedia.org/wiki/Exotic_matter>

<comment><USER20> Isn't that why we have experiments, to check the predictions of models?

</comment></comment></comment><comment><USER21> Gosh, it sure would be nice if the actual scientific results weren't locked behind a paywall...if I paid taxes in the EU I'd be pissed.

<comment><USER22> If you really want I can send you the pdf.

</comment></comment><comment><USER23> I think they got it backwards. Our world is made of antimatter, it's the matter that's disappeared

<comment><USER24> It doesn't matter anyways.

</comment></comment><comment><USER25> "The collaboration reports success in producing antihydrogen in a so-called Cusp trap, an essential precursor to making a beam."

The article doesn't really say, but why are beams needed? Is it because these (anti-)particles are always moving or have such a short lifespan, or is there some other reason beams are so important?

(The sci-fi nerd in me first thought of weaponizing it, but I hope that never happens)

<comment><USER26> It's probably so the beam can be fired at a beam of hydrogen, as in a particle accelerator.

</comment></comment><comment><USER27> Geneva, 17 November 2011 -- Seems like the date is wrong

<comment><USER28> It's right... they just didn't mention _that other experiment_ they did.

<comment><USER3> So Primer was a documentary?

<comment><USER29> Just _mentioning_ Primer is enough to send my brain into tilt.

I have to watch in again tonight.

</comment></comment></comment></comment><comment><USER30> Also at the same facility is the experiment to investigate using beams of antiprotons to treat cancer.

<http://public.web.cern.ch/public/en/Research/ACE-en.html>

</comment><comment><USER31> I, for one, am just glad that CERN didn't create a black hole or otherwise destroy spacetime before they managed to do the kind of thing we normally have to turn to science fiction to read about.

<comment><USER32> Yet...

Their developments are so fascinating to read about I can't wait to hear more.

<comment><USER33> For now, they seem happy enough to annihilate the world one atom at a time.

</comment></comment></comment><comment><USER34> "antimatter seems to have disappeared" This is not very mysterious. If there was lots of antimatter lying about nearby, we could not be alive to see it. So, any antimatter must be a long way away or otherwise separated from us.

<comment><USER35> The anthropic principle is not an explanation.</comment></comment>


The Hydrogen Hoax (2007) - <AUTHOR> https://www.thenewatlantis.com/publications/the-hydrogen-hoax <comment><USER2> Zubrin is not an honest interlocutor in this issue, though the basic message is probably sound. Examples of his dishonesty:

1) The price argument. Hydrogen will generally be more expensive than gasoline; his argument about current prices is like making an argument about gasoline before it was a widely used industrial product.

2) The delivery argument: this doesn't even begin to make sense. Straw man argument where he claims it couldn't be delivered efficiently in the domains he suggests. It _is_ harder to deliver hydrogen than hydrocarbons, but the numbers he quotes are just garbage.

3) Limiting the vehicle storage to compressed gas (muh hindenberg) and cryo. No serious people really talk about this to my knowledge. Metal hydrides ([https://en.wikipedia.org/wiki/Hydrogen_storage#Metal_hydride...](https://en.wikipedia.org/wiki/Hydrogen_storage#Metal_hydrides)) are the way hydrogen probably would be transported in a hydrogen economy. It's still less efficient volumetrically than hydrocarbons, but then _so is everything else._ The argument that it must be as dense as hydrocarbons is just goalposting. People like electric cars just fine, and the batteries they use are 100x less efficient in energy density. At least at one point, the envisioned hydrogen economy was you just retrofit hydride "gas tanks" to existing internal combustion machines. If you can make everything else work, that's a fairly reasonable thing to do. Which is probably why Zubrin never mentions it.

4) Fuel cells; yes, these are very hard to do for a consumer product. They are amazingly cool though, and they should still be invested in. I think this is Zubrin's biggest fear. His goalposting about fuel cell efficiency is silly: so what if they're not more efficient on some measurement than an ideal diesel motor? They don't smell as bad either.

Zubrin is a neocon type who works in the defense industry. For all we know this could have been commissioned by some oil company types, or maybe he's just being cussed. I don't disagree with the over all message though. You'd have to change a lot of major infrastructure to make hydrogen work for a portable energy source.

<comment><USER3> Do hydrides have any advantages at all over synthetic hydrocarbons or biofuels? It seems like an effort to shoehorn hydrogen in there _somewhere_ instead of just admitting that it has literally no place at all in the energy economy

<comment><USER4> Carbon-free. Synthetic hydrocarbons and biofuels still give off carbon dioxide. Hydrides are just a vector for hydrogen.

The advantage of hydrides over hydrogen is you don't release all the flammable gas at once, improving safety.

<comment><AUTHOR> Is that a problem, though? CO2 emissions aren't locally toxic. The main issue with it today is the fact that the carbon comes from the ground and doesn't get put back. Water vapor is a greenhouse gas too!

<comment><USER5> Water vapor is a greenhouse gas, but it is always kept in balance and the air cannot hold more than it is. All that will happen is that it rains. And no amount of water vapor from hydrogen cars compares to what all the oceans contribute to the water vapor. It will basically have no effect.

Source:[https://www.reddit.com/r/explainlikeimfive/comments/3qhj31/e...](https://www.reddit.com/r/explainlikeimfive/comments/3qhj31/eli5wont_hydrogen_cars_produce_a_lot_of_water/)

<comment><AUTHOR> Right, I wasn't actually suggesting that water vapor emissions from hydrogen vehicles would be a climate issue - on the contrary, I was drawing the comparison to illustrate that greenhouse gas emissions aren't necessarily a problem, if part of a closed loop (or other stabilizing influences like you point out).

</comment></comment></comment></comment></comment></comment><comment><USER6> I think the article's issues with hydrogen as a small-vehicle fuel have mostly been borne out -- one thing that seems to have happened since 2007 is that battery technology has gotten a lot better, and electric cars are proving to be a practical solution for a lot of use-cases.

But the article seem to condemn Hydrogen as any part of any zero-carbon economy because of this, as though any energy medium unsuitable for cars is automatically disqualified entirely from the green economy. I can imagine other use-cases where Hydrogen actually works well.

In large vehicles, for example, where a heavy reinforced tank isn't as much of a liability, like maybe a locomotive.

The use of hydrogen as an energy-storage medium for large stationary power plants also seems reasonable, maybe a solar power plant could split water when sunlight is abundant, and recombine it in the fuel-cell when energy-demand is high, using hydrogen storage to bridge the gap.

Or, similarly, a nuclear plant could split water at an efficient, steady "base-load" rate, and recombine it at different rates to match demand.

Viewed as an industrial-scale energy-storage medium, it makes more sense. It still has to compete with other industrial-scale energy storage media, but it's a very different landscape from vehicle fuels.

<comment><USER7> Hydrogen storage in underground caverns is not only feasible, it's actually practiced in several places around the world.

Hydrogen's place is for rare times when renewables or short term storage can't do it. This is the last 10-20% of the electrical power market, the part nuclear fans seem to harp on (even though nuclear would be terrible for filling it also.) For such rare uses fuel cells would be inappropriate; gas turbines would be better (even if the round trip efficiency were lousy.)

<comment><USER8> Hydrogen is only useful as 'short term storage' of energy.

So whether or not Hydrogen is useful really boils down to whether or not hydrogen is a superior source of energy storage versus Lithium batteries, compressed air, flywheels or whatever.

> This is the last 10-20% of the electrical power market

It's not the 'last 10-20% of the electrical power market'.

What renewables like solar and wind can't cover, without effective energy storage, is 100% of the power requirements 30-40% of the time.

Solar only works when the sun is shining. Wind mills only work when the wind is blowing at a appropriate speed. Unless you produce a massive excess of energy and then store it somewhere then neither of these two technologies can ever replace traditional power generation.

The best you can can achieve otherwise is to have solar power during the bright hours of the day and then massive number of natural gas turbines to pick up the slack the rest of the time.

Traditional power generation plants are a poor match with renewable because they can't vary their output quick enough to match the wildly variable capacity of solar and wind.

So the important part of the question is whether or not hydrogen is a useful mechanism to store the energy. And so far it has not been.

<comment><USER4> My take on energy storage is this: Ultimately, hydrogen is more scalable than almost any other energy storage method, save sodium/air batteries (if we can figure that out) and using electric vehicles as batteries (dependent on consumer behavior to scale).

\- lithium has scarcity issues which will only get worse with electric vehicles \- liquid batteries likewise require some more rarer elements, corrosive enough to require \- underground storage (of air pressure, CO2, etc) requires caverns/mines on site \- pumped hydro has even tighter site constraints \- biofuel/synfuel is decent for mid-to-long term storage, but slow to generate \- flywheel has energy density issues

Hydrogen, your main limits are basically steel for tanks, and some rare metals in catalytic amounts.

There hasn't been enough incentive in energy storage deployment to push the scaling up and costs down. But I think we are closest to an "embarrassingly parallel" deployment of hydrogen as energy storage.

<comment><USER7> Lithium comprises only a very small fraction of the mass of Li-ion batteries. The resource constraints are on other elements, like cobalt, used in the electrodes. Lithium could become much more expensive without greatly affecting the economics of Li-ion batteries.

</comment></comment></comment></comment></comment><comment><USER9> It's pretty clear that hydrogen-powered automobiles are not going to be a thing -- electric batteries work very well for that use case. There are some cases where I think hydrogen might still work better than the alternatives.

The most obvious one is aviation. There are a few battery-electric aircraft flying today but they have very short range. I don't think there's any conceivable battery chemistry that will allow anywhere near the range of hydrocarbon-powered aircraft.

However, liquid hydrogen has much greater energy density than hydrocarbon fuels. It's also quite difficult to work with. But when you're talking about a vehicle the size of a 737 (much less an A-380), the economics might ultimately be favorable.

It would probably require aircraft models specifically designed for liquid hydrogen -- the tanks are so large that the aircraft will have to be designed around them. That's probably a major impediment to adoption. It's possible that biofuels or synthetic fuels made from CO2 will instead replace fossil fuels in aviation, instead.

<comment><USER10> The additional costs related to cryonics, aerodynamic drag, safety issues, and material embrittlement mean that liquid hydrogen will never be a viable commercial aviation fuel. It seems attractive in theory but ends up being totally impractical when you get into real world details.

The way forward is absolutely going to be battery power for short flights and synthetic liquid hydrocarbons for longer distances.

<comment><USER4> Totally agree. Airliners have a fuel fraction (fuel wt / total wt at takeoff) around 50%. Half the gross weight of the entire system is fuel. And that's with liquid, room-temp, atmospheric pressure fuel that's easy to transfer and can fit into every liquid-tight nook and cranny. Furthermore, you can pump it around for weight trim.

I don't see hydrogen in any form, including hydrides, meeting these criteria. Not to mention, the entire distribution infrastructure is tooled out for liquid hydrocarbons.

Synfuel is expensive compared to fossil fuel, but not _dramatically_ so.

You're currently looking at ~$0.64/L for FF jet fuel, ~$0.95/L for biodiesels, and $1.15/L for fully synthetic fuels eg Fischer-Tropsch.

[https://s3.wp.wsu.edu/uploads/sites/192/2018/01/Bann- Seamus-...](https://s3.wp.wsu.edu/uploads/sites/192/2018/01/Bann-Seamus- Endres-2016-17.pdf)

<comment><USER9> > _Half the gross weight of the entire system is fuel._

That's true for jet propellant, but it's not true for hydrogen. A hydrogen powered airplane would have to have a much greater volume than an equivalent airplane fueled with regular jet fuel, but it would have substantially less weight. I'm not sure how this would work out for overall performance, though -- you'd have substantially more direct drag to overcome, but on the other hand you'd have a lot less lift-related drag simply because you'd need a lot less lift.

As a thought-experiment, you could imagine an aircraft roughly the size and shape of a 757 but with the weight and payload capacity of a 737. This might be an acceptable design for a cargo carrying aircraft, but realistically, a passenger-carrying aircraft would need large cylindrical tanks on the wings for safety reasons, but also with increased drag.

> _Not to mention, the entire distribution infrastructure is tooled out for > liquid hydrocarbons._

In the specific case of hydrogen-powered commercial aviation, this doesn't matter at all, because there would not be a distribution infrastructure, at least as we generally think of it. Instead, we'd need to distribute water and electricity to airports, and the hydrogen would be produced and stored on- site. The equipment to make and store liquid hydrogen wouldn't necessarily be cheap, but over any significant period of time it would likely be dominated by the cost of electricity necessary to produce the hydrogen through electrolysis.

The economics of synthetic fuels for aviation are probably still better, but I think that it might be a lot closer than people imagine. If you could cheaply retro-fit existing airframes for hydrogen they'd be a lot closer still, but I don't think that's likely. It's an interesting possibility to think about though.

<comment><USER4> > realistically, a passenger-carrying aircraft would need large cylindrical > tanks on the wings for safety reasons, but also with increased drag.

Precisely. Any weight savings of energy density per wt of hydrogen are offset by the poor energy/volume, plus the need for cylindrical tanks for stress reasons. Wing fuel tanks are roughly wing-shaped, meaning no increase to cross section. Hydrogen would require sets of cylinders, which add walls which add weight yet don't directly aid the engineering constraints, or exist outside the current flight envelope, adding drag.

Maybe some big advancement in construction methods could allow synergy of hydrogen tanks walls with aircraft structure, but you are still stuck with 1/3rd volumetric density of energy, meaning larger cross section, more drag, and more fuel usage.

[https://en.m.wikipedia.org/wiki/Energy_density#/media/File%3...](https://en.m.wikipedia.org/wiki/Energy_density#/media/File%3AEnergy_density.svg)

</comment></comment></comment></comment></comment><comment><USER11> Scroll to bottom to see it's a piece pushing for ethanol flex-fuel

<comment><USER12> Is that bad? Is there a similar article debunking/discussing (m)ethanol as an energy source?

<comment><USER13> You don't really need an article. Just have a critical mind. The net energy in exceeds energy out (for us based corn ethanol at least).

<comment><USER3> I don't think anyone's trying to run an aluminum smelter off ethanol, if it's a reasonable transport/peaking/storage fuel EROI is irrelevant.

</comment></comment></comment></comment><comment><USER14> Are we just going to ignore the fact that hydrogen cars exist now in California, they work, the fuel is affordable, and the efficiency is fine?

Hydrogen is useful as a solve for the energy storage problem in green energy. For example, excess solar energy can be stored as hydrogen fuel. Also this solves the "fuel quickly" problem for people who need to drive long distances.

<comment><USER10> Yes we should ignore those. They are compliance vehicles sold only to satisfy CARB rules and are not otherwise economically viable. Most of the hydrogen is created from natural gas, which means zero reduction in greenhouse gas emissions. Yes in theory hydrogen could be created by electrolysis with renewable energy, but the efficiency is so low as to make it pointless.

</comment></comment><comment><USER15> I miss this old "Desktop Friendly" website design

</comment><comment><USER16> 2007.

<comment><USER17> June 2019: [https://www.autoblog.com/2019/06/12/norway-hydrogen- station-...](https://www.autoblog.com/2019/06/12/norway-hydrogen-station- explodes-toyota-hyundai-halt-sales/)

We heard the explosion 7km away.

<comment> semi-extrinsic And yet nobody was hurt. What do you think the outcome had been if a petrol station went up like that?

<comment><USER18> Considering the number of such stations, explosions are rather rare, although one did recently explode in the USA. It turns out to be difficult to get a decent explosion out of bulk liquid petrol. Even setting it on fire is not as easy as some think. Try it with liquid diesel, practically inert. What you really need for a good time is empty petrol tanks.

</comment></comment></comment></comment><comment><USER19> I think using hydrogen as an energy store for excess solar and wind generated electricity may pencil put as these methods get more efficient.

</comment><comment><USER20> Too many people commenting who have absolutely no idea nor knowledge about how hydrogen works or anything related to it. Plus: the old "efficiency" argument should go out of the window altogether and be replaced by an "environmental impact" argument.</comment>


Sensei's Library - <AUTHOR> https://senseis.xmp.net/ <comment><USER2> Sensei's Library is older than Wikipedia.

It was a really vibrant place for a while, and is still the first place I go when I want to look something up that's Go-related, but it's pretty static at this point. I'm glad that it's still maintained; a lot of resources like that tend to wither and die once their usage starts to fade.

</comment><comment><USER3> Not sure why this is on the front page, but if anyone wants to learn how to play Go, this is the best interactive tutorial for complete beginners: [http://playgo.to/iwtg/en/](http://playgo.to/iwtg/en/)

<comment><USER4> And for the next step beyond that, there's no substitute for the four-volume _Graded Go Problems for Beginners_ series: [https://senseis.xmp.net/?GradedGoProblemsForBeginners](https://senseis.xmp.net/?GradedGoProblemsForBeginners)

<comment><USER5> Are the contents of the books available there? I'm having trouble navigating that page so I can't tell what I should be expecting. Looks like Amazon has the books too.

<comment><USER4> No. They are on Amazon and also I believe available direct from the publisher.

</comment></comment></comment></comment><comment><USER6> I got into Go a few years ago after alphago made headlines, played online and went to local meetups. Only made it to around 9k, but had some fun.

It was pretty addictive. I didn't have a natural ability for reading, but could make some progress by leaning joseki and reading books. The amount of practice required to progress further than this can become substantial, modulo natural talent.

It's funny how when playing someone who really knows how to read, they can break all the "established rules" and make you look silly by simply out fighting you, if you aren't as strong.

The only people who were supportive or seemed interested in my playing Go were already Go players. Players I met online and in real life were very friendly.

Friends and family in my social circle were not supportive of this choice, though. They seemed to think it odd and probably introverted, like someone loosing themselves in chess, so I stopped playing.

<comment><USER7> I've been playing Go since I was a young teenager (in the 80s). I don't play more than once or twice a year now. Just online "play one turn a day" go server games. I am telling you this because you can really enjoy Go like this (asynchronous play, long interval between plays) without needing to obsess over it or devote hours to play. I have way too much going on to get away with that so this is how I play now.

</comment></comment><comment><USER8> It's also very easy to start playing here: [https://online- go.com](https://online-go.com)

Sadly these days there are not so many players on western servers in the higher ranks. But I like the software the most. It's made by one of the github founders I believe.

<comment><USER9> I've always use [https://www.gokgs.com/](https://www.gokgs.com/) quite a lot of people at the time I was playing, with lots of different room (by country, interests, level, etc..) But I'll definitely give online-go a try ! (interested to see a well made software about go ! KGS one is quite old school..)

<comment><USER8> Yep, KGS was also where I learned to play. The other website is called OGS, probably in the same naming tradition.

</comment></comment></comment><comment><USER10> Nice!

I have one Go book of famous games played in Shoguns' palaces, way back when....

Go is a beautiful game that I have enjoyed since I was u years old.

</comment><comment><USER11> Meta question: Which wiki software is running Sensei's Library?

<comment><USER12> It's a custom solution based off of PHPWiki that they aptly call "GoWiki."

More info here: [https://senseis.xmp.net/?GoWiki](https://senseis.xmp.net/?GoWiki)

<comment><USER11> Oh, thanks!</comment></comment></comment>


Ask HN: Is it worth it to learn C in 2020? - <AUTHOR> <comment><USER2> I say yes because, as others have pointed out, C is at the base of nearly everything. If not C then you should learn _some_ systems level language, be it C, D, rust or whatever. If you want to know how modern computing actually works then that's the way to do it.

You'll learn lessons that will teach you how to avoid common pitfall mistakes in higher level languages. And you'll be able to interop with C/C++ libraries which can be quite useful. And your code will run faster than most other languages can achieve. There are lots of reasons to learn C even today.

</comment><comment><USER3> What type of projects are you trying to build? Are you working on embedded technology or are you building web apps? The type of environment you work in will help decide. C is still a relevant and powerful language, but there are more modern alternatives in the same space like Rust.

</comment><comment><USER4> If you want to work, for example, in embedded systems it's a must

</comment><comment><USER5> Yes. Many current hot languages are based on the C's structure plus there are millions of lines of C code that need maintenance. It's worth learning now and it will be worth learning 10 years from now.

</comment><comment><USER6> Only matters if you want to work in embedded devices/IoT, operating systems, any other type of systems development or high-performance development, and some segments of game development or games middleware.

</comment><comment><USER7> The GNU/Linux kernel, FreeBSD kernel, Windows kernel, MacOS kernel, Python, Ruby, Perl, PHP, NodeJS, and NumPy are all written in C. If you want to review and contribute code, you'd need to learn C.

There are a number of coding guidelines e.g. for safety-critical systems where bounded running time and resource consumption are essential. These coding guidelines and standards are basically only available for C, C++, and Ada. [https://github.com/stanislaw/awesome-safety- critical/blob/ma...](https://github.com/stanislaw/awesome-safety- critical/blob/master/README.md#coding-guidelines)

Even though modern languages have garbage-collection that runs whenever it feels like it, It's helpful to learn about memory management in C (or C++). You'll appreciate object destructor methods that free memory and sockets and file handles that much more. Reference cycles in object graphs are easier to handle with modern C++ than with C. Are there RAII (Resource Acquisition is Initialization) "smart pointers" that track reference counts in C?

Without OO namespacing, in C, function names are often prefixed with namespaces. How many ways could a struct be initialized? When can I free that memory?

When strace prints a syscall, what is that?

Is it _necessary_ to learn C? Somebody needs to maintain and improve the C-based foundation for most of our OSs and very many of our fancy scripting languages. C can be very unforgiving: it's really easy to do it wrong, and there's a lot to keep in mind at once: the cognitive burden is higher with C (and then still with ASM and WebASM) than with an interpreted (or compiled) duck-typed 3GL scripting language with first-class functions.

What's a good progression that includes syntax, finding and reading the libc docs, Make/CMake/Autotools, secure recommended compiler flags for GCC (CPPFLAGS, CFLAGS, LDFLAGS) and LLVM Clang?

C: [https://learnxinyminutes.com/docs/c/](https://learnxinyminutes.com/docs/c/)

C++: [https://learnxinyminutes.com/docs/c++/](https://learnxinyminutes.com/docs/c++/)

Links to the docs for Libc and other tools: [https://westurner.github.io/tools/#libc](https://westurner.github.io/tools/#libc)

xeus-cling is a Jupyter kernel for C++ (and most of C) that works with nbgrader. [https://github.com/QuantStack/xeus- cling](https://github.com/QuantStack/xeus-cling)

What's a better unit-testing library for C/C++ than gtest? [https://github.com/google/googletest/](https://github.com/google/googletest/)

<comment><AUTHOR> Amazing comment, thank you for your detailed input and the awesome resources. I want to get into C because I like network and system programming but lack the underlying knowledge and experience. These links will help me start on that new path. Very much appreciated sir :)

<comment><USER7> For network programming, you might consider asynchronous programming with coroutines. C++20 has them and they're already supported in LLVM. For C, there are a number of implementations of coroutines: [https://en.wikipedia.org/wiki/Coroutine#Implementations_for_...](https://en.wikipedia.org/wiki/Coroutine#Implementations_for_C)

> _Once a second call stack has been obtained with one of the methods listed > above, the setjmp and longjmp functions in the standard C library can then > be used to implement the switches between coroutines. These functions save > and restore, respectively, the stack pointer, program counter, callee-saved > registers, and any other internal state as required by the ABI, such that > returning to a coroutine after having yielded restores all the state that > would be restored upon returning from a function call. Minimalist > implementations, which do not piggyback off the setjmp and longjmp > functions, may achieve the same result via a small block of inline assembly > which swaps merely the stack pointer and program counter, and clobbers all > other registers. This can be significantly faster, as setjmp and longjmp > must conservatively store all registers which may be in use according to the > ABI, whereas the clobber method allows the compiler to store (by spilling to > the stack) only what it knows is actually in use._

CPython's asyncio implementation (originally codenamed 'tulip') is written in C and IMHO much easier to use than callbacks like Twisted and JS before Promises and the inclusion of tulip-like async/await keywords in ECMAscript. Uvloop - based on libuv, like Node - is apparently the fastest asyncio event loop. CPython Asyncio C module source: [https://github.com/python/cpython/blob/master/Modules/_async...](https://github.com/python/cpython/blob/master/Modules/_asynciomodule.c) Asyncio docs: [https://docs.python.org/3/library/asyncio.html](https://docs.python.org/3/library/asyncio.html)

(When things like file or network I/O are I/O bound, the program can yield to allow other asynchronous coroutines ('async') to run on that core. With network programming, we're typically waiting for things to send or reply.)

Return-oriented-programming > Return-into-library technique is an interesting read regarding system programming :) [https://en.wikipedia.org/wiki/Return- oriented_programming#Re...](https://en.wikipedia.org/wiki/Return- oriented_programming#Return-into-library_technique)

</comment></comment></comment><comment><USER8> Most certainly. I do suggest C++ over C though, for a higher paying job.

</comment><comment><USER9> imho: always

especially if you are in to hardware, embedded, hpc, ... usecases.

</comment><comment><USER10> Maybe if you want to write a kernel driver or a file system.

</comment><comment><USER11> You can't go wrong with it. But for what purpose?

</comment><comment><USER12> yes</comment>