Bouncing DVD Logo - <AUTHOR> https://www.bouncingdvdlogo.com/ <comment><USER2> As a historical note, the bouncing logo wasn't just for fun, but was important to prevent screen burn-in on CRTs. If you had a static image on a CRT for a long time, it could damage the phosphor. Sometimes you could even see the image when the screen was off!

This was the original purpose of screensavers, which saved your screen from damage. Displaying a dynamic image prevented one part of the screen from being overused.

<comment><USER3> That you feel the need to inform us of this "historical fact" makes me feel especially old... having lived through the CRT -> LCD transition period when buying an LCD made going to LAN parties a lot easier

<comment><USER4> I finally threw out my $1500 Sony Trinitron 27" high resolution CRT this year.

It worked fine, felt like a huge waste of money. But it weighed over 100 pounds!

<comment><USER5> Too bad that you threw out. Those Trinitrons are still sort after for retro gaming. You could of sold it or given it away.

<comment><USER6> "Could of?"

<comment><USER7> You missed "sort after".

We're both just as bad as each other, the meaning is discernible.

</comment></comment></comment></comment></comment></comment><comment><USER8> A while ago I made a bouncing DVD logo that would actually hit the corner every few bounces with high probability:

[https://nikital.github.io/screensaver](https://nikital.github.io/screensaver)

(But then it would troll you just before hitting it)

<comment><USER9> Earlier I commented about turning it into a mac screensaver. Well, I went ahead and did it.

Used your code, but didnt have a license. Do I have your permission? Here is the link to the repo: [https://github.com/pabloriveracelerity/mac-dvd- screensaver](https://github.com/pabloriveracelerity/mac-dvd-screensaver)

Please let me know if you do not approve and I will take it down ASAP. No ill intentions. Just wanted to join the fun. :)

<comment><USER8> Sure, thanks for doing it! I added a license to the original code.

<comment><USER9> Thank you!

</comment></comment></comment></comment><comment><USER10> In 1999, my DVD player could do this smoothly without any hitches or glitches. In 2020, my Xeon can't render this fast enough to avoid stutters. Either code quality has gone way down or my DVD player had a faster CPU.

<comment><USER11> It's just a less-than-ideal implementation, your CPU is most definitely not suffering. Here is a completely smooth version:

[https://codesandbox.io/s/nostalgic-cherry- wwpzj?file=/src/in...](https://codesandbox.io/s/nostalgic-cherry- wwpzj?file=/src/index.js)

(I made the exact same thing last year as a joke for our team monitors)

<comment><USER12> This is definitely not smooth on iOS, on a brand new iPhone that's arguably way faster than whatever system played the original DVD screensaver.

On a technical note, not that there's much you can do about this, but because you're reading clientWidth and clientHeight each frame, you're forcing reflow. A performant implementation would probably require avoiding the DOM altogether within the draw loop, so that would mean using canvas/webgl.

<comment><USER11> There are no elements in the page for style to be recalculated, so I doubt the reflow is what's slowing it down. I'm curious on what could cause bad performance for you though. It runs smoothly at 60fps on an iPhone 11 and the iPad, using Safari. Did you open the standalone page at [https://wwpzj.csb.app/](https://wwpzj.csb.app/)? My only guess would be that the CodeSandbox UI is too heavy for mobile.

For science, I went ahead and converted the code to ES3 and ran on the 10-year old first generation iPad (with setInterval) and it's still pretty smooth.

<comment><USER13> Not smooth here either. Can tell it wants to but will hiccup every now and then.

</comment></comment></comment></comment></comment><comment><USER14> Even though it's gross, it's kind of cool that you can do this with nested marquees:

<marquee behavior="alternate" direction="up"><marquee behavior="alternate" direction="left">DVD</marquee></marquee>

<comment><USER15> WTF? Mind blown. And I've been hacking the web for nearly 20 years now.

<comment><USER16> It's amazing how well the effect works. Here's a demo:

[https://jsbin.com/kuzolurapi/1/edit?html,output](https://jsbin.com/kuzolurapi/1/edit?html,output)

<comment><USER17> In Chrome, the outer marquee needs (CSS to) be forced to full height. [https://jsbin.com/rasivitupi/edit?html,output](https://jsbin.com/rasivitupi/edit?html,output)

<comment><USER18> Same in Firefox.

</comment></comment></comment></comment></comment><comment><USER19> Makes me think of this

[https://www.youtube.com/watch?v=QOtuX0jL85Y](https://www.youtube.com/watch?v=QOtuX0jL85Y)

<comment><USER20> I always think of [https://www.youtube.com/watch?v=m8NAlDOCG6g](https://www.youtube.com/watch?v=m8NAlDOCG6g) when anything dvd-logo-related comes up

<comment><USER19> That's pretty funny, but I think it's also fake

<comment><USER21> It's a pretty common template ([https://www.youtube.com/watch?v=DuZP37qwzAE](https://www.youtube.com/watch?v=DuZP37qwzAE)) for inserting videos. You can see the original video on the corners of the black overlay.

</comment></comment></comment></comment><comment><USER22> My wife's version uses SVG for scaling and is also responsive on resize.

[https://github.com/boglarkasebestyen/dvdscreensaver](https://github.com/boglarkasebestyen/dvdscreensaver)

<comment><USER23> Nice, a bit too fast on my machine though. It should probably use a time-based interval, rather than updating every frame.

<comment><USER24> It actually uses a time-based interval and tries to move every 5ms. At this resolution, different browsers will handle it differently.

Most web displays run at 60 Hz (16.66ms), making it inefficient to update every 5ms. 144Hz displays do exist and are wonderful, but you should always use requestAnimationFrame anyway.

</comment></comment></comment><comment><USER25> I made [https://dvd.js.org/](https://dvd.js.org/) as a fun way to select standup order. If you add a ?names query, each time it hits a corner, a name is selected. Each time an edge is hit, the circularly linked list rotates individuals' names around the edges of the rectangle. Of course you don't want to wait ten days for all names to be selected, so the rectangle shrinks to expedite the process :). Example url: [https://dvd.js.org/?names=chaz,tina,stacy,tiffany,rider](https://dvd.js.org/?names=chaz,tina,stacy,tiffany,rider)

</comment><comment><AUTHOR> Ha! Posted this randomly 2 hrs ago, came back to see it #2 behind Apple iPhone SE announcement. We are all bored, aren't we? :)

<comment><USER26> because people are in quarantine :)

</comment></comment><comment><USER27> Gives rise to a quick brainteaser (perhaps depending on whether you've given number theory any thought before): under what conditions is it guaranteed to hit a corner (regardless of where it starts)? Also assume it's traveling with slope 1.

</comment><comment><USER28> Why do people bother minifying code this small? It's 168 bytes gzipped. The unminified source is probably under 1kb gzipped. Just no point to minifying.

<comment><USER21> Probably more work to rip it out of your build pipeline than just reusing the config you use for all your other projects.

<comment><USER29> People use a build pipeline for small JS projects? I just open an editor in a directory and start typing.

<comment><USER21> If you usually build production ready services you might reuse your setup even if you just do a small proof of concept or fun project like this one.

</comment></comment></comment></comment><comment><USER30> a long time ago I went into my living room and saw my parents very quiet sitting down looking at the dvd logo bounce. So I asked, what are you doing, and they said, oh we've been here waiting for the logo to hit the corner...:D

</comment><comment><USER31> I was wondering why the animation was so stuttery and then I saw they are using setInterval for the animation...

Jesus it's 2020 at least use requestAnimationFrame!

[https://flaviocopes.com/requestanimationframe/](https://flaviocopes.com/requestanimationframe/)

<comment><USER32> >I was wondering why the animation was so stuttery and then I saw they are using setInterval for the animation...

setInterval isn't the problem. He's animating the CSS position (top, left), which triggers a full reflow and causes the stuttering. Always animate with translate3d, which is GPU accelerated.

<comment><USER33> As someone who's new to front end and css is there a good resource on what properties are more costly, or which functions are newer and meant to be more performant like translate3d is mentioned as being gpu accelerated? I've seen mentions of reflow, repaint, and layout thrashing but not a comprehensive list of what functions are meant to replace what other ones, or relative cost of each function in common use cases. I've managed to grasp javascript fairly easily coming from python, but css seems like this obscure black box that I thought would be much easier to get a handle on.

<comment><USER34> I have no great answer to your question, and you might know this already, but while translate3d is indeed newer, it's not a "new more performant" replacement for positioning with top/left using the position property.

It's just another property which can sometimes be used to do what you could earlier only do with 'position:', but there are still many cases (the majority) you position things using the "old" position property.

They have different uses, and for that reason one also requires a reflow while the other does not.

</comment></comment></comment></comment><comment><USER35> Anyone know who the original creator of the bouncing DVD logo is?

<comment><USER36> I'd guess it was an embedded developer working on DVD player firmware.

</comment></comment><comment><USER37> My friend has implemented a bouncing DVD logo using only HTML. It uses two nested marquee elements — one of them moves to opposite direction.

Here's the link: [https://codepen.io/ademilter/pen/oJqvNR](https://codepen.io/ademilter/pen/oJqvNR)

</comment><comment><USER38> Make the browser window real small and things get crazy.

<comment><USER39> It reloads the page when you resize

<comment><USER40> For me it doesn't change the play area. If I reduce the window size then the logo just flies off screen.

</comment></comment></comment><comment><USER41> What I want to know is, who implemented the original animation (on silicon, I presume?), and did they foresee that it would have such a cult following today?

<comment><USER42> > on silicon, I presume?

I'm pretty sure the screensaver was done in software. All DVD players have some sort of an embedded computer inside (even the earliest ones had to handle things like on-disc menus). It wouldn't make much sense to implement all that non-time-sensitive logic in an ASIC.

</comment></comment><comment><USER43> Any Office fans here, waiting for it to hit the corner?.

<comment><USER44> Pam claims that she saw it one day when she was alone in the conference room.

[https://www.youtube.com/watch?v=QOtuX0jL85Y](https://www.youtube.com/watch?v=QOtuX0jL85Y)

</comment></comment><comment><USER45> Here's my Android live wallpaper implementation: [https://play.google.com/store/apps/details?id=com.stephanwoz...](https://play.google.com/store/apps/details?id=com.stephanwozniak.dvdwallpaper)

</comment><comment><USER46> Put this into a video file and you've got yourself a fabulous background for Zoom meetings.

<comment><USER47> Apparently, you can only use images for zoom backgrounds :(

</comment></comment><comment><USER48> Just watched the episode of The Office where they watched the DVD Logo hoping it would Exactly hit the corner.

[https://m.youtube.com/watch?v=QOtuX0jL85Y](https://m.youtube.com/watch?v=QOtuX0jL85Y)

</comment><comment><USER49> Is there a screensaver version of this? Or a way to turn this into a screensaver?

<comment><USER50> Oh my, what is wrong with people?? Or maybe it's just me. I have a PTSD like reaction instead. I was a DVD programmer for 10 years, and every where I looked would be a screen with a DVD player connected doing this. I'm so glad to not be in the shiny round disc business any more.

<comment><USER51> What was the role of 'DVD programmer' like? Could you tell us more?

<comment><USER50> Depends on what year you started really. The original DVD burner cost $15k and the blank discs were $50 each but only held 3.95GB of data. The 2nd gen burner dropped to $5k and <$10 discs. The 3rd gen burners came out with the General media. These burners were less than $200 and blank media holding the full 4.95GB of data dropped to less than <$1. General media came with the +R/-R battles, and neither of these formats were compatible with a large portion of existing DVD players.

The first software was painful running under NT 4.0. With specialty discs with a large number of individual assets, it was easy to create so many files in a single folder that the system would slow to a crawl, and eventually crash during the muxing stage. You'd start it up again and watch it fly by the files it had already muxed, and then slow down when it got to the new files. It was a glorious day when Win2k comes out, and the same type of project no longer crashes like it did under NT. WinXP was like a gift from heaven. Then, you'd get some challenging programming requests like make a randomized game attempting to not repeat an item until all items have been displayed once. You get it programmed and begin testing in the plethora of consumer DVD players on the market. You then discover that some of the lower cost players don't acutally have the ability to select a random number. Instead, they have a preset list of random numbers starts over every time the player is restarted making it impossible to play the game as requested. You think browser compatibility is a pain, the DVD player/media combinations were insane.

Then there was MPEG-2 encoding. Early days required specialty hardware boards in your computer to do real-time encoding. These were in the $20k-$50k systems. High end encoders would allow for 2-pass encoding, but that meant playing the VTR for the first pass, rewinding the tape, and then doing the second pass in real-time. A 2 hour movie would take over 4 hours to encode. Then, if there was a problem with the encode (bitrate/buffer spikes/underflows), you'd have to figure out how to solve it and do the encode a second time. If you had the fancy encoder, you could do segment based encodes so you didn't need the full 4 hours. Mid-2000s, software encoding became viable. Now, you could run 2-pass encodes faster than real-time.

Then there were the oddities to deal with like timing was based on a 27MHz clock, so when the software told you there was a problem at time 59265000000, it actually meant 6mins 35secs.

No, I'm not scarred by the experience ;-)

Edit: I didn't actually answer the question. The role was to take the video/stills/subtitle assets and link them together. Every button on a menu screen had to be programmed to go to a specific spot on the disc. The video/audio/subtitles had to be combined to play together, then when finished told where to go, or stop, or loop, etc. Menu elements had to be placed in the correct section of the disc to that the menu/title buttons on the remote behaved correctly. DVDs had a very defined structure. VTS_01.vob VTS_02.vob makes me shudder when I seem them now.

</comment></comment></comment></comment><comment><USER52> Sorry It does not touch the borders. I can't enjoy this :)

</comment><comment><USER53> Funny, just saw that same animation 10 minutes ago on my CRT.

</comment><comment><USER54> Making this and not having a counter of corner bounces should be inconstitutional! </humor>

</comment><comment><USER55> Out of curiosity, what's the physics of the bounce?

Is it always angle of incidence = angle of reflection?

<comment><USER56> On actual DVDs it was flipping the velocity sign when hitting the corresponding border. Much like Pong.

</comment></comment><comment><USER57> I'm more irritated by the huge margins than by the not-hitting-corner thing.

</comment><comment><USER58> Damnit, now I have tayebbayri.com burned into my monitor... ;-)

</comment><comment><USER59> It feels very laggy? Definitely not running in 60fps.

<comment><USER60> It's laggy in large part because it should be using [https://developer.mozilla.org/en- US/docs/Web/API/window/requ...](https://developer.mozilla.org/en- US/docs/Web/API/window/requestAnimationFrame) instead of setInterval

</comment></comment><comment><USER61> add (2012) to title

</comment><comment><USER62> Thank you for this

</comment><comment><USER63> I wonder how many children have been conceived to this logo.</comment>


Students fighting World Hunger with the 10 Million Dollar Wall. - <AUTHOR> http://www.thegreatwallofwebsites.com/Home.aspx

<comment><AUTHOR> What are your thoughts on social entrepreneurship?</comment>


What I've learnt from giving and receiving product feedback - <AUTHOR> http://giniji.com/hrishi/product_feedback.html

<comment><AUTHOR> This is the first blog post I've submitted to HN. I've learnt a lot here and am trying to give something back by sharing what I've learnt. Any comments appreciated!</comment>


Ask HN: NFAs and DFAs - <AUTHOR>

Can anyone recommend resources for learning how to implement nondeterministic / deterministic finite automatons in lisp? I'm new to the subject and could use some clear, simple examples to wrap my head around. <comment><USER2> <http://swtch.com/~rsc/regexp/regexp1.html> is a must read.

Then you should probably listen to [http://www.cs.brown.edu/~sk/Publications/Talks/SwineBeforePe...](http://www.cs.brown.edu/~sk/Publications/Talks/SwineBeforePerl/) by Shriram Krishnamurthi (I've met him - He is a really cool guy). At that point you have the ammunition and the gun loaded. You just have to fire it.</comment>


Testable Code vs. Clean Code - <AUTHOR> http://thewindev.net/testable-code-vs-clean-code/

<comment><USER2> Based on your HN account name and the linked-to domain, I believe one person is behind both, and I will use "you" to refer to that person.

"I was really happy to see that my code coverage was over 95%"

If you look at some of the TDD literature you'll find that some of its advocates believe (or at least believed) that it would naturally lead to 100% code coverage. For a semi-arbitrarily selected quote, from [http://accu.org/index.php/journals/1325](http://accu.org/index.php/journals/1325) :

> In theory, when using TDD we will always get 100 percent coverage (remember, > we're only supposed to write code as an automated test fails).

and in my notes I have that Kent Beck wrote "TDD followed religiously should result in 100% statement coverage."

I think your own experience shows that this statement isn't true. My observation is that the refactor step implicitly allows new untested code paths.

"But testable code will make your product more reliable, so you shouldn't chose between these two, but find a balance between them"

When I read your essay I wondered why you were focused on unit tests. Integration tests can also be used to check that low-level accessors work. While they don't pin down the error to the precise unit, this is also the sort of error which is easy to track down once you know that an error exists, so there isn't a strong need for a unit test over an integration test.

You might be interested in James Coplien's "Why Most Unit Testing is Waste" at [http://www.rbcs-us.com/documents/Why-Most-Unit-Testing-is- Wa...](http://www.rbcs-us.com/documents/Why-Most-Unit-Testing-is-Waste.pdf) , and its followup at [http://www.rbcs- us.com/documents/Segue.pdf](http://www.rbcs-us.com/documents/Segue.pdf) , as well as plenty of discussion about it here on HN and elsewhere.</comment>


Monument Valley in Numbers - <AUTHOR> http://blog.monumentvalleygame.com/blog/2015/1/15/monument-valley-in-numbers

<comment><USER2> I love MV and I'm glad they made ~4x their costs, but geez, if you have to be a pantheon-level game to make a few million dollars, it's a bad sign for normal paid games. Mobile games are either freemium farming games or have an absurdly high bar to be financially successful.

<comment><USER3> Pretty much. A 4x return is great and all, but MV was likely the best reviewed and most Apple-hyped paid iOS game of the year. To only make 4x return off of it is pretty unfortunate for the platform.

<comment><USER4> They also managed to piss off many of their original customers by charging them for the Forgotten Shores levels. When the original was released, the main menu indicated that there were going to be more levels added in the future. Many people were under the assumption that the $4-5 they'd already spent on the original ten levels would've included the the cost of the additional levels that was advertised in the main menu. It didn't and then ustwogames got upset when they started getting one star reviews for their bait and switch.

<comment><USER5> In terms of revenue, they would still be making much less if they didn't charge for the expansion. You can see most of the revenue came from the initial release of the original and expansion. If the expansion were given for free it may be more like a 3x gain on their investment. If they added IAP for the new levels, they would probably still get the 1 star reviews.

</comment></comment></comment></comment><comment><USER6> Anyone know how they achieved such huge sales the first day/week they released? From other app/game stories I've heard it often takes a while for people to notice new apps and gain traction.

<comment><USER3> It was Apple's Editor's Choice in the app store (across all apps, not just in games) in its release week plus a fair amount of pre-release hype. Though mostly it's about being Editor's Choice.

</comment></comment><comment><USER7> People don't pay up front for games anymore. They need to make a MV 2 that is free with a few levels + IAP to unlock the rest. That way more people can get hooked to the game mechanic and decide to upgrade.

Also, it still looks like android users expect free-ish games.

<comment><USER8> There is a group of people who want to pay up-front for games. It's a question of whether you can make this a viable business model.

I was chatting with the CEO of a company that makes kids' games, and he mentioned some interesting feedback from parents: The price of a $1 game isn't really $1, because they had to buy a bunch before finding one their kid liked. So, they would happily pay more than $1 for a trusted brand that's likely to satisfy their kids.

<comment><USER7> But why wouldn't that same parent prefer a game that was free to try and then have a single IAP to unlock the full version? I'm a parent and I'd love to not have to purchase lots of $1 apps. I'd rather try them for free first.

</comment></comment></comment><comment><USER9> Wait, you can drown the totem?

<comment><USER10> I was wondering about that too. Doesn't he always drown in that one level (I forget which one). Maybe that's the number of players who completed that level?

</comment></comment><comment><USER11> Interesting that Google Play made 12.1% of sales and 13.9% revenue. Amazon Paid was 3.7% sales to 4.3% revenue.

That said, I really do find the success of this game baffling. It's 45 minutes of play time. The graphics are good, but the puzzles are simplistic and the story is... thin.

Their previous game - Whale Trail [1] - was fantastic. Offered a huge amount of gameplay, was a critical hit, but appeared to be a commercial flop.

Is it just the luck of the draw? A better PR campaign this time? Or something else?

Still - good luck to 'em!

[1] [https://play.google.com/store/apps/details?id=com.jakyl.whal...](https://play.google.com/store/apps/details?id=com.jakyl.whaletrail&hl=en) & [https://itunes.apple.com/gb/app/whale- trail/id450163154?mt=8](https://itunes.apple.com/gb/app/whale- trail/id450163154?mt=8)

<comment><USER12> "45 minutes of play time" \- slight exaggeration there.

<comment><USER11> It took me less than an hour to complete. I don't consider that great value for money.

How long did you take to complete it?</comment></comment></comment>


How SQLite is tested - <AUTHOR> http://sqlite.org/testing.html

<comment><USER2> Discussed only 1 month ago: <http://news.ycombinator.com/item?id=4616548>

There is also a 3 year old discussion: <http://news.ycombinator.com/item?id=633151>

<comment><USER3> This is a HN classic.

</comment></comment><comment><USER4> SQLite has always amazed me with what open source (public domain, specifically) can achieve. Absolutely amazing how much influence this one project has had.

</comment><comment><USER5> I really need to write a script that resubmits this link on some sort of exponential backoff schedule; it's a reliable fountain of karma.

I suppose it could also resubmit old posts from silver-circle bloggers (JacquesM, Yegge _et al_ ) and from various comp sci classics -- picking random essays out of the E.W. Dijkstra archive, for instance.

And I guess I could fold in my old idea for "karma arbitrage" -- resubmitting here anything rising on /r/TrueReddit and vice versa.

"Heresy! Great evil!" I already hear you cry. And yet the invisible hand forms a pointy finger on all these things; what am I doing except to most efficiently recycle all the things that HN holds dearest, thus freeing up eyeballs for novelty?

<comment><USER6> RiderOfGiraffes tried that (with jacquesm's posts); the results were as you described. ( _I_ was a great fan of RoG's attempts to make HN more efficient, but...)

<comment><USER5> I remember that -- Jacques (I like to think of him as "the other Jacques") turned up and made it clear he wasn't a fan of the practice.

I suppose Dijkstra wouldn't object, so long as I proved it was soundly programmed.</comment></comment></comment>


Drawing our Linux mascot TuX in TeX with TikZ - <AUTHOR> http://www.texample.net/weblog/2012/apr/28/tux-tex-tikz/

<comment><USER2> I don't really see how this has anything special to do with TikZ as it's just an SVG converted to TikZ-code.

<comment><AUTHOR> It's about the easy SVG conversion and getting TikZ as result, in perfect quality. It's not that TikZ made it. But now we can use TikZ on it, use the capabilities we can see in <http://www.texample.net/tikz/examples/> , to annotate (SVG) graphics, to combine with LaTeX labels and notation. Tux was it for fun. It could have been an arbitrary technical drawing instead. It's about drawing or receiving SVG with a graphic software program, and re-using it natively within TeX.

<comment><USER2> Sure, it's nice to know that it's possible, but the title is misleading and the actual article doesn't show in any way why this is a good thing to do.

</comment></comment></comment><comment><USER3> Awesome! TikZ really can do marvelous things.</comment>


Ask HN: Can anyone site an example of a Knowledge Base? - <AUTHOR> "A knowledge base (KB) is a technology used to store complex structured and unstructured information used by a computer system. The initial use of the term was in connection with expert systems which were the first knowledge-based systems." - Wikipedia
Projects, code, research, anything
Thanks in advance <comment><USER2> Have you checked out Semantic Wiki?[0] Here's a list of sites using it[1]

It's basically wikipedia software (mediawiki) with structured data markup that lets you extract (sometimes dynamic) data and use it meaningfully.

[0][https://www.semantic- mediawiki.org/wiki/Semantic_MediaWiki](https://www.semantic- mediawiki.org/wiki/Semantic_MediaWiki)

[1][https://wikiapiary.com/wiki/Semantic_statistics](https://wikiapiary.com/wiki/Semantic_statistics)

<comment><AUTHOR> cool, though what is the difference between this and wikidata?

<comment><USER2> It's a lot more established and used on a ton more sites, covering stuff that wikipedia/wikidata doesn't, wikidata also looks to be just a subset of semantic wiki code and not as full featured or capable.

Wikipedia explains it better [https://en.wikipedia.org/wiki/Semantic_MediaWiki#Semantic_Me...](https://en.wikipedia.org/wiki/Semantic_MediaWiki#Semantic_MediaWiki_and_Wikidata)</comment></comment></comment>


The Android and iOS War Is Not Mac vs Windows Part 2 - <AUTHOR> http://blog.louisgray.com/2011/04/android-and-ios-war-is-not-mac-vs.html?utm_source=feedburner&utm_medium=twitter&utm_campaign=Feed:+LouisgraycomLive+(louisgray.com)

<comment><USER2> Louis is remembering the wrong part of the PC vs Mac wars. Go back to Win2/3 vs Mac. The Mac looked much more like iOS then. Windows 3.11 is like Android now, and then Win95 is where it looks like Android is going. And then the 15 years after Win95 is what most people remember about Windows vs Mac.

<comment><USER3> It was a long war and each of us remembers different parts. :) In what way does this dismiss the Mac's ability to get all the software you need even if the numbers are not perfect?

<comment><USER2> _In what way does this dismiss the Mac's ability to get all the software you need even if the numbers are not perfect?_

My disagreement is not with this, but rather the contention that this battle is different because Apple was not the developer choice in the past. When Windows was introduced the Mac was almost strictly better, including 3rd party SW support.

Over the course of almost 10 years Windows chipped away at that culminating with Win95. Where the tables were turned with better 3rd party support, better dev support, and was technologically better.

This 10 year span is very similar to the Apple v Google battles of today. Google is slowly chipping away at all of the iOS advantages. I wouldn't be surprised if in 5 years from now people honestly forgot for how long iOS was almost strictly superior to Android.

<comment><USER4> _how long iOS was almost strictly superior to Android._

Having had both a iPhone (3G) and an Android-phone (since 2.1) I have to ask in what ways you would argue this position, since IMO its seems strictly a matter of preference.

Right now I would actually say at least my opinion is the exact opposite. To me iOS seems utterly stagnant and my Android phone surpassed my iPhone in every way from the second I got it.

Not trying to provoke a flamewar or anything, just wondering if there is something I'm missing here and on what basis this argument is made.

<comment><USER5> If you have an iPhone 3G then your hardware is over two years old, and your iOS version, if updated, is still feature limited. Maybe that's why it feels so stagnant?

<comment><USER4> I fired up my old iPhone 3G to use as a gaming-device and MP3-player not too long back. I updated to latest iOS it would support, which iirc is iOS 4.2.1.

Interested in seeing how the iOS-development had been, I decided to enable all the features Apple had decided to disable. Basically a quick rooting with redsn0w where I only re-enabled the official features and I didn't add any 3rd-party hackware to compensate or otherwise distort the experience.

I still feel it is stagnant, but like I said, I realize this may be a personal preference. Just thought I'd clear up any confusion regarding my ability (and inability) to use iOS-features as they are available as per today.

<comment><USER6> I know you're talking about features more so than specific models, but I was tired of my iPhone 3G after using it for a couple of years. It was sufficient to me feature-wise, but the sluggish response time on every screen was just frustrating. However, after upgrading, iPhone 4 speed and retina display have been game-changing to me as a user.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I like Apple's products and using Android devices makes me angry but I wouldn't find it all that bad if Android/iOS were like PC/Mac.

Not with an half dead Apple as the end result but if Apple's position in the smartphone market were equal to its position in the PC market I wouldn't have a problem with that. I care about Apple making great products, they don't need to be a dominant player in the smartphone market in order to do that.

</comment><comment><USER8> The biggest problem with articles such as these is that the author willfully ignores all of the other mobile platforms currently on the market (Windows Phone, Blackberry, WebOS (note: ignoring Nokia due the the expected retirement of their platforms in favor of WP7)). These platforms are much more compelling than any other OS was during the PC/Mac wars, and dramatically affect the overall market. Especially when you factor in the fact that all three of the platforms I mentioned are backed by companies which are willing to throw /billions/ of dollars into this space. To ignore them when discussing the difference between the desktop wars and mobile wars is ridiculous.

I was even more surprised when I searched for Part 1 of this article. Not only did I not find it, but I found this article instead: [http://blog.louisgray.com/2011/02/windows-phone-7-is-best- wi...](http://blog.louisgray.com/2011/02/windows-phone-7-is-best-windows- ive.html) in which the author claims "I believe the Windows Phone 7 experience to be a serious challenger to both platforms in terms of quality, intuitive use and simplicity."

<comment><USER9> >These platforms are much more compelling than any other OS was during the PC/Mac wars

Seems a bit like historical revisionism to me. RISC OS, Amiga OS and NeXTSTEP were all pretty compelling at the time.

</comment></comment><comment><USER10> _there are many different things possible on [Mac] that can't be done on Windows_

Like what?

</comment><comment><USER11> Any comparison of the Microsoft / Apple wars to the iOS / Android wars needs to take into account one major difference: the presence of Steve Jobs.

Jobs left Apple in 1987, after which the company quickly became a stodgy computer company, a Dell wannabe. They lost their design mojo - anyone else here remember the dark days of all of the performas, and quadros and powermacs with impenetrable model numbers after the names? Beige boxes without any style running an increasingly creaky OS.

Jobs returned in 1997, and immediately the design chops came back, and the Mac's marketshare has been steadily climbing ever since, until today the Mac has enough presence in the US market that the platform is once again well supported by software and hardware vendors.

This time around, with the battle between iOS and Android, Apple is not as likely to drop the ball, like they did in the late 80s, early 90s. The end result, in my opinion, will be a market with two dominant platforms. Over time I would expect Android to become the budget choice with Apple picking off the high margin segment of the market. Indeed, this is the current market configuration that we see in the PC / Mac market.

Of course, the day is coming when Steve Jobs will no longer be at the helm of Apple. I would hope that the board has understood the lesson from the first Jobs-less period, by choosing a successor that understands the primacy of design for Apple.

</comment><comment><USER12> Where is the hardware angle in this? One of the reasons that Macs lost the battle was because they couldn't compete with the latest and greatest hardware that that Intel churned out. Through most of the 90s Apple stuck with unpowered hardware while being clobbered by Dell and HP's prices (due to higher volumes and probably better supply chain management). This is no longer the case - in fact, because of Apple's massive iOS device volumes they can probably beat the bigger manufacturers on price this time around.

All they need to do is keep up with the hardware trends and keep refreshing their product line. So far they've done this (retina, dual core on iPad 2, cameras etc).

So, it's not like the old Win vs Mac battle since the hardware playing field is almost neutral (or perhaps there is a slight Apple advantage here).

<comment><USER13> So basically, all Mac has to do is never fall behind in any way to the rest of the world. I think back to the days of my Apple IIGS.

It was awesome. It showed the way. And then the clones destroyed it.

</comment></comment><comment><USER14> That's because Android vs. iOS is really Linux vs. BSD!

</comment><comment><USER15> Louis forgot that there were other non-windows and on-mac desktop OSes hardware during the MAC vs Win wars in his debating points which contradict his points..

what ones?

Amiga BeOS plus several others</comment>


Awesome List of Advanced Distributed Systems Papers - <AUTHOR> http://highscalability.com/blog/2011/5/31/awesome-list-of-advanced-distributed-systems-papers.html

<comment><USER2> Direct link: <http://www.cs.uiuc.edu/class/sp11/cs525/sched.htm>

</comment><comment><USER3> First comment:

" This was posted on Hacker News 3 days ago, please cite your sources: <http://news.ycombinator.com/item?id=2593998> "

<comment><USER4> The links are to two different courses though -- the previous HN link is to CS598 and the High Scalability link is to CS525.

</comment></comment><comment><USER5> via HN: <http://news.ycombinator.com/item?id=2593998>

</comment><comment><USER6> Anyone have a zip file of those papers? It's a long list.</comment>


Ask HN: How do you use your FreeBSD desktop box? - <AUTHOR>

After reading the recent posts on how people use their Mac and Dell/Windows I was just wondering if there is any one using FreeBSD as a desktop OS and how they use it. After being a Windows user for years I am now a FreeBSD/OpenBSD intermediate user interested in finding guru's advise on proper ways of using it. <comment><USER2> Not a guru, but I've used it for a while. Both as desktop and server. My main gripe is that FreeBSD doesn't have a reliable filesystem. FreeBSD still dies pretty horribly after a few hard crashes (power loss, whatever).

fsck? In 2008? No thanks. Messages about possibly corrupted inodes? How should that be my problem? I can't stress this enough, one day you will wake up and FreeBSD _will_ refuse to boot. And that day will, by Murphy's Law, be one of those days where you have to get an incredible amount of real work done.

I'm a big fan of FreeBSD, ports, and the whole "do it right" and "proper documentation" philosophy. But until they get journalling right you should probably stay away.

(also: upgrading from FreeBSD 6.x to 6.(x+1) is incredibly painful. I don't think upgrading a 7.x system is going to be much easier. Reinstalling FreeBSD gets old fast, so you'll probably just shrug and stick with whatever version you already have)

<comment><USER3> ZFS has a freebsd port.

<comment><USER2> Experimental.

</comment></comment></comment><comment><USER4> I use FreeBSD at work and home. Its nice to have an identical setup on the laptop and colo. When I want to deploy something, I make a package file on the dev box and simply install it on the server. Desktop: window manager: ratpoison browser: firefox editor: emacs email: mew (runs in emacs)

</comment><comment><USER5> Using it "on the desktop" is quite vague. What would you use your computer for? Somebody who wants a computer for checking email, shopping on ebay, and playing flash games is going to have different requirements than somebody who wants to make electronic music or do heavy video editing.

Have you looked at the FreeBSD Handbook? (<http://www.freebsd.org/doc/en/books/handbook/>) That will probably answer many of your questions. Also, the OpenBSD FAQ: <http://openbsd.org/faq/>

I've used OpenBSD on the desktop and servers for over five years. I mostly use it for programming (Emacs), playing music (mpd: <http://mpd.wikia.com/>), and nethack. I use Firefox and w3m for web stuff, dwm as a window manager, mercurial for vc, etc.

OpenBSD's focus on security keeps the core system simple, well documented, and straightforward to configure, so as to minimize the amount of obscure things that could lead to vulnerabilities. FreeBSD is also an _excellent_ OS, but OpenBSD's clean and minimalistic design is more my style.

</comment><comment><USER6> I don't use it as desktop OS anymore, but I used to during the 4.x branch. Most of those days annoyances are now gone like having to recompile java from source or using linux binaries of Mozilla/Firefox for flash (this may still apply).

I don't think it's very different from using a non ultrapolished Linux distro(like Debian). Choose your WM, install bash or (pd)ksh(tcsh sucks) and your prefered tools(Eclipse, LaTeX, Emacs, OOffice... whatever) and you're ready to work. I don't like GNU userland so for me that was a plus, but some people can't live without colored ls and a several megs vi, so your mileage may vary.

</comment><comment><USER7> I'm using FreeBSD on the desktop.

Desktop environment: KDE3.

Text editor: kwrite.

Office suite: OpenOffice.

Web browser: Konqueror for most sites, Firefox for a few sites which don't work in Konqueror.

Email: Thunderbird.

Other communications: Kopete (for ICQ), aMSN (for MSN), ksirc (for IRC).

System administration tools: FreeBSD Update for base system security updates; Portsnap for updating the ports tree; portupgrade for updating installed ports; tarsnap (of course!) for backups.

<comment><USER8> Any particular reason you prefer Konqueror to Firefox? Do you feel it's faster?

<comment><USER7> Two reasons: First, it does feel faster. Second, I don't have flash enabled in konqueror, which makes some websites far less obnoxious.

</comment></comment></comment><comment><USER9> About 10 years ago I started using a colocated FreeBSD system as the central location for all my email so the "desktop" that matters to me is whatever ssh window happens to have the screen session where my mh-emacs process is running.

</comment><comment><USER10> I'm not sure it makes sense to use FreeBSD on the desktop. Not that it isn't perfectly capable mind, but if you want a BSD desktop or laptop there's OSX. I've FreeBSD running in a VirtualBox VM; best of all possible worlds.

</comment><comment><USER11> i used to use FreeBSD until the pain kills me (had to rebuild kernel to activate nat)

openbsd generic kernel covers almost everything i need (no bluetooth support) - for complete hw support, i use ubuntu

overall, openbsd is simpler. Last week i just upgraded from 4.0 to 4.4 on remote machine in about 2-3 hours). I never bothered to upgrade before :D 400+ days uptime is normal

for desktop, i use dwm, firefox3, mrxvt, qiv, axyftp, vifm, vim (non-gui), mpg123, mplayer, ImageMagick, gimp, lighttpd, mercurial, newlisp, tightvncviewer (to control my Mac Mini GUI remotely)

<comment><USER7> _had to rebuild kernel to activate nat_

That hasn't been necessary for the past 3 years.

</comment></comment><comment><USER12> Xorg + fluxbox

emacs22

Firefox

And WIN4BSD when I need to test my work in IE or other Windows browsers.

</comment><comment><USER13> I use FreeBSD for desktop and laptop. Never crashes in the four years I've been doing that. Anything I used to do on Windows I can do on fbsd. The only issue is Flash on web sites. Most of that is just ads so I don't miss it but the few videos I'd like to watch I can download and view them offline.

It's no different than running a Linux desktop and you are running the same software. The question is a little strange to me.

</comment><comment><USER14> I don't. FreeBSD is dying. Haven't you heard?</comment>


It's better to be born rich than gifted - <AUTHOR> https://www.washingtonpost.com/business/2018/10/09/its-better-be-born-rich-than-talented/?noredirect=on&utm_source=reddit.com&utm_term=.2ab4d5307cce <comment><USER2> Unfortunately same applies in Nordic countries too, where all education is free and all students get 500€ monthly no-questions-asked free money and housing.

</comment><comment><USER3> this is no surprise, i imagine university would have been a breeze if i hadnt had to also work full time to cover my living costs, it doesnt matter how intelligent you are when you barely have the time or energy to do the work to an acceptable standard let alone to an exceptional one

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


Apple's App Store sets record: takes in $1.22B in a week - <AUTHOR> https://www.cultofmac.com/598846/apples-app-store-sets-record-takes-in-1-22-billion-in-a-week/ <comment><USER2> Would be possible that Apple will focus on growing software and services, instead of pursuing iPhone sales?

<comment><USER3> I hope they do that instead of adding planned obsolescence.</comment></comment>


Machines are making music now. Does this compliment or replace humans? - <AUTHOR> https://blog.pivotal.io/big-data-pivotal/p-o-v/will-intelligent-machines-replace-or-compliment-human-workers <comment><USER2> "complement"

<comment><USER3> ^^^ This comments looks so good!</comment></comment>


Show HN: Rhine – A typed Elixir-inspired language on LLVM - <AUTHOR> https://github.com/artagnon/rhine? <comment><USER2> Building any language is hard, so congrats!

That said... the big thing about Elixir is that it's got Erlang and OTP behind it.

<comment><USER3> > Building any language is hard, so congrats!

Absolutely. Having tried to write a dead-simple Lua-like language [1], I can attest that it requires the programmer have a very complex graph of semantic requirements in their head at all times while writing the language, in order to not mess anything up, involving the types, the GC, the compiler, the parser, the lexer, the calling conventions, everything. I have high respect for anyone who actually goes through with writing one to a point of it being usable.

[1]: it did not go well, so much so that I have absolutely nothing to show for it

</comment></comment><comment><USER4> I gave quick look at the example. First reactions coming from OO languages and Elixir:

I can imagine that this

        def addCandidate(A ~Int, B ~Int) do

means that addCandidate has two arguments of type Int, but what does the ~ mean? I'll have to read the docs.

However I have really no idea of the meaning of

        def bar(arithFn ~Function(Int -> Int -> Int)) do

It's a function bar taking arithFn as argument, which is a function with... what arguments?

From the demo program it looks like a function with two int arguments returning an int, but why the -> signs and why isn't addCandidate defined as (Int -> Int -> Int) too? Where is it's return type. Maybe inferred?

It's quite puzzling and there are no explanations about that in the README.

Is the ~ necessary? Could it be removed and save one character that's not even on some keyboards around the world?

Apart from that lack of explanations, it could a perfectly nice language and it's a great project for sure.

<comment><AUTHOR> Thanks for the feedback. The ~ is a substitute for :, which is used in other languages for optional type annotations. You're right about removing ~ altogether, Go style. ~Function(Int -> Int -> Int) is a function which takes two integers, and returns one. I've mixed in some Haskell syntax there. And yes, return type is inferred.

There are two reasons for there not being explanations in the README:

1\. I foolishly thought it would be obvious.

2\. I wanted to focus on the implementation, not the language itself.

In any case, I've added them now, thanks.

<comment><USER4> Thanks to everybody for all these explanations! I understand the logic of the syntax now.

A nice thing with Elixir is that it lures OO developers like me into the realm of functional languages with a familiar syntax. Int -> Int is not familiar to me. I could guess what it is but then I also see an Int, Int and feel a little puzzled. If one of the goals of this language is to "convert" OO developers maybe you should consider a syntax they are fully familiar with. You could make long time functional developers feel not at home though. Maybe it's a trade-off that's impossible to avoid. It's your call.

</comment></comment></comment><comment><USER5> Nice project.

As was already mentioned, the main benefit of Elixir seems to come from BEAM, (Erlang VM) and its associated cockroach-like properties. There's also Crystal ([https://github.com/crystal-lang/crystal](https://github.com/crystal- lang/crystal)), if what you want is a Ruby-inspired language with static typing and compilation to native code.

<comment><AUTHOR> I needed a title. I could have said Elixir-inspired or Crystal-inspired, but few people know about Crystal. Although it's only minimally inspired by Elixir, I decided to go with that title.

By the way, I've mentioned Crystal towards the end of the README.

</comment></comment><comment><USER6> > Effort put into rhine-ml: 2 months

> Effort put into rhine: 1 year, 1 month

Props for the effort put into this! I came across rhine-ml a while ago and thought it would have been a nice, native alternative to Clojure. Both of these projects look very well thought out.

Curious, is this a learning project? It seems that way considering you go into detail about the inner workings.

<comment><AUTHOR> Thank you. I actually made a lot of design mistakes in both rhine-ml and rhine, which is why I shelved them as "learning projects". I do fully intend to write a solid compiler for a well-designed language in the future. I have to make my mistakes first.

So, for the curious, the big mistake in rhine-ml is making it untyped: it generates terrible LLVM IR that executes super-slowly. I could try and optimize it, or go the types route. I chose types, and I don't believe in the optional-typing escape hatch.

The big mistake in rhine is that I wrote it in C++. It'll be a decade before it can lift its own weight, and OCaml is a great language to build a compiler in.

</comment></comment><comment><USER7> Does it have tail call elimination?

<comment><AUTHOR> Nope, sorry. And that was kind of the point I was making: in over a year, I've only been able to do the most foundational work in C++. It'll need another 2~3 years to feature optimizations like that.</comment></comment>


Wireless laser power transmission using a gain medium between retroreflectors - <AUTHOR> https://patents.google.com/patent/US20170373543A1/en <comment><USER2> I don't see how you can use a retroreflector as one end of a laser cavity. They destroy coherence, since the path length is different depending on where each photon hits the reflective element. Don't lasing mediums require fairly coherent photons for stimulated emission to work?

<comment><USER3> I think the path length may be constant. Retroreflectors can be used in Michelson interferometers.

[https://patents.google.com/patent/US5309217](https://patents.google.com/patent/US5309217)

<comment><USER2> I stand corrected.

</comment></comment></comment><comment><USER4> Not clear how this couldn't inadvertently fry my eyeballs. Even very low- powered IR lasers are regulated because there is no blink-reflex.

<comment><USER5> Read the patent or watch the video [https://www.youtube.com/watch?v=YeNXRD8eziA&t=0s](https://www.youtube.com/watch?v=YeNXRD8eziA&t=0s)

In simple terms, the laser transmitter, the laser receiver and the beam that is used introduces a feedback mechanism that the transmitter can employ to immediately detect an unsafe condition and cut the high power (infra red) laser transmission. The response is so fast that the risks to damaging eyes, etc are acceptably low.

<comment><USER4> I'm still trying to figure out how that would work with e.g. a piece of glass sitting at an angle other than parallel to the wavefront. That would pass most of the light while reflecting a collimated beam that is much more powerful than allowed for direct laser emission.

Consider the situation where a flat piece of lime glass is in the way at an angle that reflects 1% of the light and passes the rest. With a 3W beam, that would reflect 30mW of laser light which as a direct emitter would be class 3B.

<comment><USER5> I'm more confident now that it's probably very dangerous and may not get the FDA approval. If they do it will be trickle charging. [https://www.youtube.com/watch?v=2bXjn3wwM8o](https://www.youtube.com/watch?v=2bXjn3wwM8o)

</comment></comment></comment></comment><comment><USER6> wireless power exists already? Is this the same tech:

[https://www.youtube.com/watch?v=YeNXRD8eziA&t=0s](https://www.youtube.com/watch?v=YeNXRD8eziA&t=0s)

<comment><USER7> Yeah, the patent filer is WI-Charge Ltd., the company in the video.

<comment><USER5> Agreed. This is exactly the implementation described in the patent.</comment></comment></comment>


Set up your own Ruby-powered Certificate Authority - <AUTHOR> http://langui.sh/2012/11/02/building-a-ca-r509-howto/

<comment><USER2> You can also do this with OpenSSL's x509 code; we have a 50 line Ruby function that mints new validly-signed signatures from a CA=YES signature generated by the OpenSSL command line tools.

<comment><USER3> Absolutely. r509 (which this tutorial uses) is fundamentally a wrapper around the OpenSSL bindings of Ruby. It doesn't do anything that you can't do without it; it just tries to present certificate generation/revocation/management in a simpler manner.

This is most evident in the OCSP responder, which leverages sections of the Ruby OpenSSL code that have...limited documentation (see: [http://www.ruby- doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/Ope...](http://www.ruby- doc.org/stdlib-1.9.3/libdoc/openssl/rdoc/OpenSSL/OCSP/BasicResponse.html))</comment></comment>


Signal can now be used without Google Play Services - <AUTHOR> https://github.com/WhisperSystems/Signal-Android/commit/1669731329bcc32c84e33035a67a2fc22444c24b <comment><USER3> This is great news. Is there sufficient interest in making a secure dumb phone ? If it's cheap enough, I think some people may be interested. The rough design for the phone can be something like this: It should not be a real phone. i.e., No baseband or actual cellular connection. It should work only over wifi (ath9k maybe?), and have provisions for always-on TOR/VPN. The rest of the hardware and software can be derived as some combination of Neo900, Replicant and copperheadOS

<comment><USER4> Next problem: Signal will not work without a phone number...

I'd vote for [https://riot.im/](https://riot.im/) instead.

<comment><USER5> Does matrix even support end-to-end encryption? Last I checked it didn't have /any/, except maybe server-to-server and even that wasn't enabled.

I also seem to remember going over their homebrewed cryptographic rachet and it didn't properly HMAC.

EDIT: Apparently riot.im supports E2E, but it's not a part of the Matrix protocol and it's not encrypted by default. The Olm rachet was also audited by NCC, so that's nice.

<comment><USER6> They have e2e on all devices now.

<comment><USER7> But still no way to enforce or enable as default.

</comment></comment></comment></comment></comment><comment><USER8> I've recently been attempting to gradually liberate my data from reliance on Google's services, not just for being more privacy conscious but by a means of exploring new services offered by other companies/developers and to decentralise my data. I've started this process by installing Lineage OS on my OPX device and selected the bare-minimum of Google Services - Google Play Store/Services.

From what I've done so far I imagine it's quite difficult to remove dependency on Google Play Services and I've been wondering, which alternatives exist and what's the rationale behind completely removing dependence on Google Play Services? With Lineage OS I've been able to restrict most permissions besides storage so is there any need to remove it?

<comment><USER9> There is no need for any Google software. Just install lineageOS, then install f-droid and from f-droid install Yalp Store. From Yalp you can install any app from Google Play, should you want to.

<comment><USER10> More people should know about Yalp! Awesome.

<comment><USER11> Just note that Yalp is storing the username and password you give it server side.

<comment><USER12> They have an experimental option to login without giving your credentials; I just tried it minutes ago.

</comment></comment></comment></comment></comment><comment><USER13> I still like Matrix' federated first approach to the server over Signal's, but this is a welcome change. Now we just need an F-droid build (official repo or built by the F-droid team).

<comment><USER14> The problem with federated approach is that it leaks metadata. When you take centralized system apart and expose internal communications to the Internet, you reduce anonymity. Extreme case is when everyone uses his own homeserver and information on who calls who and when is completely exposed.

It is not enough to make the system distributed, you need to exploit the fact that different parts of the network are controlled by different parties to build self-enforcing protocols that ensure anonymity.

For comparison, see how bitcoin is just distributed and zerocoin is anonymous. Gnutella is just distributed and FreeNet is anonymous.

<comment><USER15> That's not the only problem, or the most important problem. The most important problem of federation is that it generates lowest-common-denominator security. For instance:

[https://whispersystems.org/blog/giphy- experiment/](https://whispersystems.org/blog/giphy-experiment/)

This is how Signal provides Giphy search (spoiler: they tunnel a TLS connection through their own server, with TLS negotiated end-to-end from the Signal app to the Giphy server, so that Giphy can't tell what client is searching for what GIF while at the same time Signal's server's can't see what people are searching for).

Does anyone believe that in a world where 90% of Signal-network client installs weren't Signal.app, that this is how features like this would work? It's not an unknowable question. All you have to do is look and see how Signal's competitors, like Wire, tackle this problem.

It's true that in a federated Signal-network, you might get clients that have security features Signal itself lacks. But because it's far easier to produce an insecure client than a secure one, insecurity will dominate, and be a boat anchor around any efforts to improve security down the road.

Call it "the libpurple problem".

<comment><USER16> All true, but I think the situation looks a little worse for centralization if instead of 'security features', you think in terms of 'vulnerabilities' (almost but not quite an antonym). Signal probably has a lower vulnerability rate than competing software, but if someone finds an implementation bug, it can be used against every user on the network. Compare to, say, IRC, where there are a lot of really poorly written clients, but the sheer number of clients in use would limit the fallout of any one exploit.

Likewise, Open Whisper Systems is pretty trustworthy, but if someone gets access to their servers, either by hacking or by coercion, and starts, say, logging metadata (who's chatting with who), all Signal users are compromised. When I chat on a private (and SSL-only) IRC server, the security guarantees are awful compared to Signal - and I'm not saying that's not a problem - <USER2> at least I know that my conversations will only be compromised if someone really has it out for my group in particular; they won't show up in some massive leak and/or government database.

This also applies to binary distribution. When software is compiled by N different distros or package managers or by users directly, that does make it hard to get security updates out in a timely manner. But with a centralized system like Signal's, if the binaries are compromised, everyone is pwned. Yes, measures like reproducible builds can reduce the risk, but they're far from perfect. Is there even anyone who verifies Signal builds on a regular basis/automatically?

</comment></comment></comment></comment><comment><USER17> What does this mean for an official Fdroid option?

<comment><USER12> Requiring Google Play Services is not the main reason Signal hasn't been on F-Droid; you can read Moxie's thoughts on the subject in these comments (and in other places):

[https://github.com/WhisperSystems/Signal- Android/issues/127#...](https://github.com/WhisperSystems/Signal- Android/issues/127#issuecomment-13335689)

[https://github.com/WhisperSystems/Signal- Android/issues/281#...](https://github.com/WhisperSystems/Signal- Android/issues/281#issuecomment-21762482)

<comment><USER18> While google play certainly helps with these issues, I currently have both whatsapp and firefox installed from their respective websites by downloading the APK directly. WhatsApp is happy to notify me when there's an update, and it's one click to download and install. Firefox downloads the update automatically, and again, it's one tap to start the install. Mozilla crash reporter runs when it needs to, etc.

So while google play gives you these features "for free," it's not impossible at all to have them without. Only unattended upgrades requires special access, and to be honest personally I never want things modifying what's installed without asking.

<comment><USER19> The thing is, you know what you're doing. He makes a fair point in that his target audience is people who don't know what they're doing, which is inevitably going to lead to people downloading "brand new updates" that are full of malware, or worse, backdoored.

</comment></comment></comment></comment><comment><USER20> Taking this long to shake officially somewhat free of the the Play Store horror is one thing which tells me to stay clear of Signal.

Not that it matters. The phone number thing was a dealbreaker from the beginning.

</comment><comment><USER21> Very welcome news.

I discovered after doing a clean flash recently that the ability to have Google Play Services on the phone but disabled, became unavailable. I used to use it exclusively for Signal - it meant no push notifications, but I could still foreground the app for it to check for messages.

I was disappointed that I could not install Signal again, even though my phone number was registered, without Google Play.

I was preparing to walk the microG services (or similar) path, but now I don't have to.

</comment><comment><USER22> I don't feel like wading through a diff to find out so could someone explain what they changed? How are they handling notifications and what impact might this have on battery life?

</comment><comment><USER23> Won't this just drain the battery _very_ quickly?

<comment><USER24> Sure it will. But there isn't so much they can do about it. Google could.

Still, people asked for an option to use Signal without Play Services, and here it is. Even if it will drain their battery a lot faster. Moxie actually said this beforehand:

> I expect it to have high battery consumption and an unreliable user > experience

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

<comment><USER25> > I expect it to have high battery consumption and an unreliable user > experience, but would be fine with it if it comes with a warning and only > runs in the absence of play services.

So for those who are still running on devices with Play Services, it will still use GCM, and hence won't be a drain on the battery?

<comment><USER26> > So for those who are still running on devices with Play Services, it will > still use GCM, and hence won't be a drain on the battery?

Correct

</comment></comment></comment></comment><comment><USER27> Finally, all the 10 people who were waiting for this can use Signal.

<comment><USER28> Few people use phones without Google Play Services.

Because of that, it doesn't make sense for application developers to support the use case.

Because of that, lots of applications don't work without Google Play Services.

Because of that, few people use phones without Google Play Services.

(And then people complain about the lack of open Android alternatives, or that other OSs such as Sailfish do not take off despite doing crazy things to support Android applications.)

<comment><USER29> You can actually install Google Play Services on Sailfish and it's easy to do, but not officially supported obviously.

<comment><USER28> The actual Google Play Services or microG? Last time I checked the solution was microG but it requires you to root your phone, which on Sailfish basically means you don't care about security at all.

<comment><USER29> The actual Google Play Services: [https://together.jolla.com/question/30926/howto-install- goog...](https://together.jolla.com/question/30926/howto-install-google-play- on-original-jolla-phone-sbj/)

It's basically just installing the APK, although there are a few more steps than I thought I remembered.

</comment></comment></comment></comment></comment><comment><USER30> I don't get notifications on Signal. Android 6.0. Anyone else experience this?

<comment><USER31> No, notifications work for me. Android 7.1.1. Check out their support page for some ideas to fix this: [https://support.whispersystems.org/hc/en- us/articles/2181125...](https://support.whispersystems.org/hc/en- us/articles/218112597-Where-are-my-notifications-)

<comment><USER30> Yes, I have ensured all my settings are correct. I get notifications when someone "new" joins signal but not when a message comes through. Same issue with Telegram. I suspect it's an issue with Android notifications.

</comment></comment></comment><comment><USER32> I wish every app would be possible to use without Google Spy Services.

</comment><comment><USER33> Has anyone tried Signal's voice calling? The overall voice quality is very poor and the voice volume is extremely low. And call me stupid, but I could not even find the video call button in signal (on android).

I had to sadly switch back to whats app because voice and video quality are stellar.

<comment><USER3> Voice is getting better. It's in beta right now. Both parties need to enable it in the settings right now. I tried it recently, and it worked quite well for the most part. They'll presumably iron out the issues before a general release.

<comment><USER33> Are you talking about Video and not Voice? I didn't have to enable anything for Signal Voice calls.

<comment><USER3> Yes, it's the same setting for both video and voice, which uses the newer webrtc stuff. The old voice support is being phased out, which is probably what you've used in the past.</comment></comment></comment></comment>


Cleaning up software older than me - <AUTHOR> http://blog.anthrobsd.net/043.html

<comment><USER2> The article author carries the same kind of exuberance I saw in people who discovered programming in the 1980s.

I also read his amusing presentation on OpenBSD here. I don't really program in pure C anymore, but I liked learning about strlcat and strlcpy, among other things [1].

It's amazing that a self-described programming newbie gets his changes committed into a high-stakes-security distro like OpenBSD. My conjecture is that this must say something about the OpenBSD developer community culture.

Has anyone reading this commited to both Linux and OpenBSD? It looks to me like the OpenBSD crowd is a lot friendlier, at least judging by some relatively recent comments from Linux developers [2] (funny, but ouch.)

[1] [http://www.nycbug.org/event/10343/bcallah- nycbugjan2014.pdf](http://www.nycbug.org/event/10343/bcallah- nycbugjan2014.pdf)

[2] [https://lkml.org/lkml/2012/7/6/495](https://lkml.org/lkml/2012/7/6/495)

<comment><USER3> Being called out on your stupid choices is a good thing.

Now this is Linus pointing it out so it's going to be rude and funny at the same time.

Does that really make it less friendly of a crowd?

Personally I think not but you might feel like it is if you don't know the people involved that well.

<comment><USER4> I personally would not feel comfortable in such an environment. It feels hostile and incredibly authoritive. Personally I prefer to work with projects that have a more cooperative management style.

<comment><USER3> Authoritive? Would it feel different if Linus was just one of the contributors to the kernel instead of the one in charge?

Because I'm quite certain everybody is treated equally and there is no pecking order just a chain of trust.

Plus he is cooperative how do you think the bad code / design made in the kernel in the first place.

It's a chain of trust and he trust the people involved to vet most of the code for him however he has the right to complain if someone messed up.

Now how he does it is uniquely his way and everybody should know that by now but ignoring that i don't see a problem.

<comment><USER5> Don't waste your breath. The idea that "Linus makes contributors feel unwelcome" is a self-fulfilling prophecy and the people who want it to be true have a stronger social media presence than those who don't.

<comment><USER4> You can also say that it makes for a good pre-selection process of people who are willing to cope with his attitude. So in that way, your "self-fulfilling prophecy" just means that there is a selection bias in people who are willing to contribute to the linux kernel.

<comment><USER3> The only pre-selection process happening here is people who take themselves too seriously and get offended easily are less likely to contribute.

If I would have been the guy who wrote that piece of code and read this I would have realized 1. I made a mistake and 2. got roasted by Linus for it in a somewhat funny way.

Wouldn't look much more into it.

Why do we enjoy celebrity roasting shows as comedy but when someone does the same thing on a mailing list everyone gets offended?

It does take a bit of self confidence to take it though which not all of us have but this is a good opportunity to work on it.</comment></comment></comment></comment></comment></comment></comment>


Ask HN: What would you do if you made $10M from trading cryptos? - <AUTHOR> Many of the early retirement/"FIRE" stuff I read depicts people celebrating their freedom from soul-sucking jobs by sitting around watching their investments, sleeping in, and playing golf.  Do you have any better ideas? <comment><USER2> I would take 8M of it, drop it into safe "sleep-well at night investments" and then use the rest of pay off my house and live the rest of my days hacking away at whatever projects make me happy and living off the interest from the money.

</comment><comment><USER3> I'd build my R&D lab and spend my time there.

Basically a complete machine and wood shop, nano-manufacturing compound, and materials warehouse, with a small server farm for various other things I generally have going on.

That'd actually only take about $2-5M.

</comment><comment><USER4> Liquidate all of it and buy multi-family apartment complexes. Retire and use my freedom of time to create businesses I care about for the simple joy of creating value in the marketplace.

</comment><comment><USER5> pull half out.</comment>


Android Anti-forensics: Modifying CyanogenMod - <AUTHOR> http://arxiv.org/abs/1401.6444 <comment><USER2> This reminds me of a feature that was on some Japanese flip phones.

You could set some contacts to be "secret", and any messages from them would not appear in the default app. The only notification you would get would be a small pixel embedded in the cell tower signal image in the corner of your screen. You would then go into some deeply hidden corner of your settings to get the "real" messaging app.

If you know about it, its useless, but (like this lying phone) , it can be very easy to overlook in a casual analysis of the phone (by your wife in one case, or by the police in the other). We should never discount how effective really simple things like these can end up being.

<comment><USER3> _Japan 's Philanderers Stay Faithful to Their 'Infidelity Phones': Cads Attracted to How Outdated Device Hides Calls, Texts; Juggling Three Girlfriends_: [http://online.wsj.com/news/articles/SB1000142405297020475540...](http://online.wsj.com/news/articles/SB10001424052970204755404578102581637364040)

</comment></comment><comment><USER4> I would install such a firmware in a heartbeat if I had confidence that there were a team of freedom-fighting hackers staying one step ahead of the authorities.

I don't keep anything incriminating or illegal on my phone (hell, I don't _do_ anything illegal) but I'm terrified of the day where I'm in the airport, embarking on a £4k holiday (not insignificant in my salary bracket) and am asked to hand my phone and laptop/tablet over to confirm I'm not a terrorist. I'll be faced with acquiescing and compromising my principles or disappointing my girlfriend (who I almost always travel with) and having both of us taking a financial hit (and probably being added to a "list" or having my threat value increased).

It's not an unheard of situation in the UK, and is most often not intelligence-driven (more likely you are travelling through an airport where they are trialling some new counter-terrorist technology we've paid a small fortune to install).

I think a device with limited state (ROM-only?) which can give me reasonable assurances that no-one could tamper with it or install any government sponsored malware may be the solution. Although the utility of such a device is questionable, and it certainly wouldn't be fun to use.

<comment><USER5> I've mentioned this in NSA stories before, the US government, the UK, are hardly the only concerns. What happens at other borders? Your devices contain sensitive information -- logins, source code, server lists, archived email, customer data; perhaps not on the machine itself but accessible through it.

Corrupt countries are one problem, but so are first world countries. There are a number of stories about American execs being spied on by first world countries. Failing to protect your physical data when you leave the country (assuming your devices have work information on them) is negligent.

<comment><USER4> Absolutely. However I'm less well versed in international privacy laws than those of the UK. With RIPA, the mere act of protecting your data while transiting through the UK can be seen as incriminatory, with failure to decrypt data a serious criminal offence which can result in prison time.

I think that steganography and plausible deniability are vital. However employing such techniques can make life even more difficult if caught ("What are you going to such an effort to hide?").

<comment><USER5> There is a good solution: don't bring your data. It is a problem if the place you are going doesn't have broadband, but then again there may be little work that can be done in such a place.

<comment><USER4> I don't know if I'd say that's a _good_ solution. If travelling for pleasure, that would mean wiping my personal data from my device - contacts, messages, emails. It would also mean logging out of all network services. Or just leaving that data at home. Being able to stay in touch while away, and retain access to my online accounts is really useful.

If travelling for business (even to a country with poor broadband access) I may still need access to vital business data. I can't always leave this at home.

Sure, I could VPN home but if I am to travel with no private data at all then that would preclude the possibility of using certificate based encryption and relying on less secure (and memorisable) passwords.

Travelling without data is very difficult today, unless you plan on being completely disconnected.

</comment></comment></comment></comment></comment><comment><USER6> So the police have a tool. He writes a tool-fooler. No doubt they will return with a tool-fooler tool. Then he fools the tool-fooler tool. When will it ever halt?

Time for a drink.

<comment><USER7> It never ends. Counter measures, counter-counter measures etc.

Most of the time, though, the police will use another method, as the law has more than anti-forensics in their armoury.

</comment></comment><comment><USER8> In a world in which everything is monitored all the time, like the police State the government agencies dream about, lying is a necessity.

We need more of this. Our messenger app sending false data along with the valid one, but is automatically discarded by the app. This way, anyone intercepting the data is not certain of what it means.

Bandwidth is cheap.Just encrypting something does not make anything sure.

It is one of the earliest tricks on existence. You know someone spies on you, you act like you don't know anything but supply false information to your spies.

<comment><USER9> Exactly, this strategy has been known for a long time: [http://en.wikipedia.org/wiki/Steganography](http://en.wikipedia.org/wiki/Steganography)

</comment></comment><comment><USER10> This makes me wonder just how open everyday Android phones are to forensic examination. I'm not sure how you would get much out of the phone without either manually installing an app with a lot of permissions or doing some kind of device-specific firmware hack. And the manufacturers often seem to be making this kind of hacking harder and harder, going by what the Android rooting community has experienced.

</comment><comment><USER11> It's well-known that phones report our locations at all times, I'd like to see a phone that falsifies that data as well.

<comment><USER12> Kind of hard to fool triangulation. Software doesn't beat the laws of physics.

<comment><USER13> You can fool the towers trying to triangulate you by adding a small random delay to the ping responses. Of course, this would require a custom modem firmware and/or hardware level access to the phone. The authority trying to triangulate you would have an ability to track your approximate location, with in several square miles, but it would make it much more difficult to pinpoint your exact location.

<comment><USER14> you would also need highly directional antenna to make sure only one base station can hear your signal

</comment></comment></comment></comment><comment><USER15> Wait for some prosecutor to determine that just having this capability on your phone makes you guilty.

</comment><comment><USER16> This is just blogspam.

For actual details, see the arXiv paper "Android Anti-forensics: Modifying CyanogenMod": [http://arxiv.org/abs/1401.6444](http://arxiv.org/abs/1401.6444)

<comment><USER17> Thanks! Changed to that from [http://www.scientificamerican.com/article/a-phone-that- lies-...](http://www.scientificamerican.com/article/a-phone-that-lies-for-you- an-android-hack-allows-users-to-put-decoy-data-on-a-smartphone/).</comment></comment>


Static Sites with Elasticsearch - <AUTHOR> https://www.gizra.com/content/drupal-static-elasticsearch/ <comment><USER3> I've been experimenting with SQLite FTS as a way of adding search to an otherwise static site.

The big advantage of SQLite FTS is that it's really cheap to run. The index is a single static file on disk, then you add a Python process (I'm using [https://github.com/simonw/datasette](https://github.com/simonw/datasette) ) to run queries against it. Much less resource intensive than running Solr or Elasticsearch.

It also works surprisingly well - I've run FTS queries against tables that are up to around 10GB on disk and performance is great.

It's no way near as featureful as Lucene, but for small to medium sized projects it's easily good enough.

As for deployment: if the SQLite .db index file is small enough you can bundle it up as part of a static deployment, e.g. bundled in a Docker container. I've done this using Heroku, Google Cloud Run, [https://fly.io/](https://fly.io/) and Zeit Now (aka Vercel).

If the content lives in a git repository you can hook up CI (or a GitHub Action) to build and publish a new copy of the SQLite index on every change.

I've started thinking of this pattern as a kind of static-dynamic site: there's dynamic server-side code but it's running in read-only containers, so you can scale it up by running more copies and if anything goes wrong you just restart the container.

[https://til.simonwillison.net/](https://til.simonwillison.net/) is my most recent site to use this pattern, see [https://github.com/simonw/til](https://github.com/simonw/til) for how it works.

I also wrote this tutorial describing the pattern a while ago: [https://24ways.org/2018/fast-autocomplete-search-for-your- we...](https://24ways.org/2018/fast-autocomplete-search-for-your-website/)

<comment><USER4> It's mentioned in this post but lunr.js is a clever option if you don't have much content. The idea is that your search page has to create a json object with all your content and lunr will build an index out of it client-side. This sounds like terrible architecture but you could stuff about 100 blog posts into an object the size of one big jpeg. For a few dozen articles it's pretty snappy.

<comment><USER5> A few dozen articles? I've seen examples with Fuse.js and Hugo searching over 10,000 articles and it is fast. No server-side components required.

<comment><USER6> Great way to botch user experience since the user has to download the index.

<comment><USER5> There are ways to optimize this per section, alphabetically, etc. Otherwise Xapian is very easy to setup and would be my goto over Elasticsearch.

</comment></comment></comment></comment></comment><comment><USER7> Philosophically building website search on top of Elasticsearch seems fine, but don't call it a static site then - you're deploying a backend.

"Static site search" to me is something like adding a `<form action="[https://duckduckgo.com"](https://duckduckgo.com") method="get">` text box to your site.

<comment><AUTHOR> @arkadiyt Thanks - I see your point. However, I believe you can also think about it as a service - similar to how Disqus can be added to your static site. That is, the site is static, but the results for the search are handled with a service. In this case the "service" \- Elasticsearch - is tightly coupled to your static site's revision.

<comment><USER8> You're confusing static with serverless.

Your content is indeed static but your search is not: It's handled by a service that parses your requests and produces output.

Static content on the other hand are files being served straight from the filesystem.

As for Disqus, they're not static either, they're just "a service for static websites"

<comment><AUTHOR> @turnipla Indeed, the Elasticsearch is completely a typical request - <USER2> kind. However, the point in the post was showing how we could make sure the search is in full sync with static site - even if we for example rolled-back deploys. That is, even if we rollback to a revision with less content than what we have in the "default" index, search will not show it to us.

</comment></comment></comment></comment><comment><USER9> If you're looking to do the same on something that's easier to run and manage than ES, consider using Typesense: [https://github.com/typesense/typesense](https://github.com/typesense/typesense)

The primary benefits are simplicity, typo tolerance and ability to expose the search engine directly to the front end without having to put it behind an ELB as described in this post for Elasticsearch.

P.S: I work on this.

<comment><USER10> TypeSense looks nice for this but it could really use an officially supported browser integration so folks can onboard easier I feel [https://github.com/typesense/typesense/issues/85](https://github.com/typesense/typesense/issues/85)

<comment><USER9> Agree 100%, very close to launching that (within 2 weeks!).

<comment><USER10> Looking forward! <3</comment></comment></comment></comment>


Girl Who Never Ages Could Unravel Secret to Eternal Youth - <AUTHOR> http://abcnews.go.com/Health/girl-ages-unravel-secret-eternal-youth/story?id=19974247 <comment><USER2> PLEASE do not invent your own headlines. In this case, an accurate headline might be, "Girl who never ages shows pathological and perpetual infantile dependence."

Also, you didn't mean "unravel", you meant "reveal".</comment>


French consumer group sues for right to resell Steam games - <AUTHOR> http://arstechnica.com/gaming/2015/12/french-consumer-group-sues-for-right-to-resell-steam-games/ <comment><AUTHOR> I'm interested in HN's take on the whole subject of "used software (licenses)".</comment>


Reading Chess (1990) - <AUTHOR> http://fermatslibrary.com/s/reading-chess <comment><USER2> I took a couple courses by Baird at Lehigh before he retired. He used to teach "Pattern Recognition" as it was called before "Machine Learning". His approach was decidedly old school, but really that was the whole point; a lot of the trends in computing are cyclic, and if you focus on the fundamentals you have context for where new trends fit in.

One of his biggest take-aways in building systems like the one in the linked paper was the need for layered understanding. For example, to understand the meaning of a passage of scanned text, you can't just look at each individual letter of the text. There is ambiguity in characters like l and I or 0 and o and O. To remove that ambiguity, you bring in more context by looking at a character in a word. Then a word within a sentence. Then a sentence within a passage. This is how they were able to build highly accurate systems without massive amounts of training data.

Now that I'm on a roll recollecting the teachings of Henry Baird I will add two more:

1) There is a difference between an algorithm and a heuristic that is often overlooked these days: algorithms are provably correct. If you can't prove it's correct, then it's a heuristic. By this measure, there are very few algorithms out there, because there are very few proofs of correctness. Most likely, anything you've ever called an algorithm that you've written yourself is actually a heuristic.

2) Because of the above, Baird was very fond of KNN classifiers, because they are one of the few classifiers that have any sort of provable guarantees -- namely that with infinite data, the error rate is guaranteed to be no worse than 2x the Bayes error.

</comment><comment><USER3> tl;dr web rendered case study of a computer vision system by K Thompson and H Baird. They used ocr plus word level heuristics to digitize an encyclopedia of chess games/moves. By modeling each game during a second page of parsing, they were able to constrain the possible interpretations of questionable characters/words to legal moves. They claim this reduced their error rate 30 fold.</comment>


Post-traumatic stress disorder may mimic autism in some children - <AUTHOR> https://www.spectrumnews.org/opinion/viewpoint/post-traumatic-stress-disorder-may-mimic-autism-children/ <comment><USER2> I was molested & bullied as a kid, starting between 3-5 years old. It traumatized me. I started withdrawing emotionally into video games and television at age 8 or sooner. I was diagnosed with ADD after 8th grade. I added porn and learning about tech at age 12 to my avoidance habits. I entered into recovery for information, gaming, porn, masturbation, sex, love, and sugar addictions at age 32.

I was accused for years of being autistic in some way. Nope...I simply disconnected emotionally at an early age and didn't learn to actually feel my feelings until 20+ years after I was biologically supposed to. Anxiety was my norm and I didn't know it because I didn't know what anxiety was.

The fact that I could go so long without basic lessons on what emotions are, how we feel them physically in the body, and what to do with them is a damning commentary on our society.

The fact that my trauma went unrecognized as such, even by me, til 32 is a damning commentary on psychology.

I've been feeling my feelings for 2.5 years and it started as a direct result of me saying aloud to myself while alone "That traumatized me." The next moment was a flood of emotions, including excitement over whatever this flood of emotions was or could lead to and how weird it was that simply saying words out loud could lead to it.

I now think everyone could benefit from making a list of things they think didn't traumatize them that other people have been historically traumatized by before, consider how their personal story lines up with standard stories of denial, and then consider the idea that they were traumatized in ways they don't yet realize while saying "That traumatized me."

<comment><USER3> Thank you for sharing this. I commend your courage. I had similar experiences to what you described. In my mid-30s, I sought out the best attachment therapist that I could find. My search was world-wide since I was willing to move to get treatment and me and my husband can work from anywhere.

I found a group in near Boston called the Attachment Institute of New England. Though they predominantly work with children, they agreed to treat me. It completely changed my life and allowed me to overcome and heal from my past. That was 5 years ago and since then, I've had children. I know I would not be the parent I am without their help. I only wish I could somehow replicate what they did for me to help more people as I know most people don't have the luxury of finances and time to do what I was able to do.

<comment><USER2> My first child is almost 8 weeks old & I'm incredibly grateful for the work myself and my partner have done on ourselves leading up to this point.

Would you be willing to connect outside of this thread to talk about your treatment? I'm writing a book centered on a framework for self programming I'm designing and would love to inform it with the experiences of others. I'm convinced we can mathematically define the human system in a computational/programmatic way and use computer science to figure out language constructs resulting in scripts to follow for achieving what we want our minds/bodies/brains to do (or configuring them however we want). I've been "programming" myself in this way for 2 years and have experienced a lot of rapid change, as a result. I'm hoping the book will help people do the same things you & I have accomplished, but in ways they can adapt to their daily lives so they don't have to take a break from life.

The book will only be sold if there's a structure in place such that one purchase funds several free copies or freely helping others in some financial way. I don't want to profit from its sale.

</comment></comment></comment><comment><USER4> My girlfriend is a child and family therapist, a public school teacher in a special needs class before that. They didn't mention this in grad school, but she started figuring out kids had attachment disorders related to PTSD instead of their original autism diagnoses while she was still interning. It didn't sound like it was that big a revelation. It sounded like it's a pretty common misdiagnosis.

<comment><USER5> Wondering if this was true for girls as well as boys. Boys tend to be diagnosed at higher rates, though the prevalence is — now — understood to be the same. For years girls and women went undiagnosed with both conditions. It was only after Van der Kolk characterized PTSD in male veterans that he noticed his female patients — who had never been to war, but were subject to many other kinds of abuse - exhibited similar symptoms.

We're still learning about how different kinds of trauma effect the neuroendocrine system, and gender bias makes it harder to study. I'm very much hoping those biases can be corrected in future medical research (and indeed, I know many younger researchers are acutely aware of the problem and are working to rectify it).

</comment></comment><comment><USER6> "Autism" winds up being a catch-all category for all kinds of social challenges. The label is frequently a means to largely write someone off because real help would be too much work.

One thing you frequently see in severe cases is faceblindness. Faceblindness is itself seriously socially impairing. All other things being equal, a faceblind person will have greater social challenges than a non-faceblind person.

If you can identify the myriad specific things going on with a socially impaired person and address each of them, that's usually more effective than calling their social impairment "autism".

<comment><USER7> There are many other parts of Autism that are prominent, for example sensory atypicalities. I've never met a person with autism without them.

<comment><USER8> There's a book called The Reason I Jump written by a non-verbal autistic boy (dictated by pointing at a printed keyboard), where he describes being able to understand most things (except at times where he is overloaded by sensory stimuli), but is often unable to control his response as he wishes.

This has lead me to believe that sensory-motor differences may be the primary difference between autistic and neurotypical people.

<comment><USER7> Yes. I wrote my thesis on creating a piece of autism technology to teach people what it was like to have Autism. And through my work I came to the same conclusion.

</comment></comment></comment></comment><comment><USER7> I think most people here have absolutely no idea of the diagnostic criteria and how diagnosis works, so are not really fit to comment.

<comment><USER9> It's refreshing to see a comment like this. My default stance on most topics, even those which I am nominally educated in, is to have no opinion. My rule of thumb is to consciously abstain from having an opinion about a thing unless I know I can authoritatively speak at some length about the subject.

To repurpose a comment in another thread about nuclear fusion: online discussions about autism generally consist of the Wikipedia-educated debating the Youtube-educated. Likewise for topics like ADHD and sociopathy. It would be nice if more people defaulted to, "I'm not really fit to comment" rather than, "I have strong opinions after reading a few pages and talking with friends about this."

<comment><USER7> That's nice of you to say.

It might be that I know enough to know that I know nothing.

I've worked in academia and Neuroscience, have studied Autism for my masters and created technology to teach people about Autism. Have volunteered in an adhd charity, worked around clinicians and neuropsychologists and had countless discussions on the topic of diagnosis.

All I can conclude, is even these guys can't establish the correct way to diagnose and it changes often.

I have no chance. PTSD and Autism are both extremely complex.

And, the new DSM-V is very controversial.

</comment></comment></comment><comment><USER10> Child abuse at the hands of parents creates (C)PTSD. But there is a huge incentive to, well, not tell parents they've done a bad job. And parents can be trusted too much and conceal things, or sabotage the process (if the psychiatrist gets suspicious, they stop being seen).

<comment><USER11> Could the psychiatrist silently report suspected abuse to relevant third parties, while continuing to provide the service to the family?

</comment></comment><comment><USER12> More provocatively, is there really autism or is it all PTSD and various early attachment disorders?

<comment><USER13> I'm willing to believe this, having paid a lot of attention to the topic over the past few years.

<comment><USER14> > I'm willing to believe this, having paid a lot of attention to the topic > over the past few years.

Can you elaborate on this? Some more information and/or references would be helpful.

<comment><USER13> It's all rather nebulous and controversial, so it's hard to point to specific sources that would easily convince someone new to the topic. It would take a lot of effort and personal investment, which I've been motivated to make due to my own life challenges.

A couple of noteworthy authors/speakers on the topic are Dr. Gabor Maté and Dr. Bruce Lipton.

Dr. Maté is a mainstream physician who was born into a Jewish family in Hungary just as the Nazis were occupying. Through his career he has closely studied the role of early life trauma in long-term behavioural and physiological illness. Here's an article he wrote about autism [1]. He's written a bunch of books about links between trauma and long-term health outcomes [2].

Dr. Lipton was a pioneering stem cell biologist in the 70s and 80s, who became particularly interested in the role of experience/belief/trauma on behavioural and physiological outcomes. In his book, The Biology of Belief [3], he covers the statistical link between early life trauma and autism, and proposes a biological basis for it.

Lipton is a controversial figure who is easily ridiculed by mainstream medicine devotees as he gets handwavy about quantum physics and has become involved with the new age spirituality movement. But, having applied his ideas very successfully in my own life over the past few years, I can attest that what he's right about is more important than what he might be wrong about.

[1] [https://www.theglobeandmail.com/opinion/autism-is-the- child-...](https://www.theglobeandmail.com/opinion/autism-is-the-child-of- social-disconnection/article773077/)

[2] [https://www.amazon.com/Gabor- Mat%C3%A9/e/B001IO9TH2](https://www.amazon.com/Gabor-Mat%C3%A9/e/B001IO9TH2)

[3] [https://www.amazon.com/Biology-Belief-10th-Anniversary- Consc...](https://www.amazon.com/Biology-Belief-10th-Anniversary- Consciousness/dp/140195247X)

</comment></comment></comment></comment><comment><USER15> Yay, let's continue diagnosing everything as autism!

</comment><comment><USER16> How frustrating that it took so long to get a proper diagnosis and treatment for the child in the article, even though he had multiple diagnoses saying it was PTSD. This is pretty clear that psychology is largely haphazard, which is my own experience with it. It's definitely not as scientific as one would hope, and with such poor funding for mental health issues it only exacerbates the issue.</comment>