Ask HN: What are some nice electronics courses that blend theory and practice? - <AUTHOR> I am looking for an electronics course that is a good blend of theory and practice. I studied electronics in college and remember Kirchoff's laws and the like, but nothing else. The ideal course would probably start off from there and would include lot of practical circuits to build while explaining the theory of each circuit would work. <comment><USER2> I highly recommend the Student Guide to the Art of Electronics: [http://www.amazon.com/The-Art-Electronics-Student- Manual/dp/...](http://www.amazon.com/The-Art-Electronics-Student- Manual/dp/0521377099)

The book covers the basics of both analog and digital, and focuses on developing intuition without getting _too_ bogged down by theory, with accompanying labs/projects. I took the course taught by the author of the book before going to school to study the same subject area, and it helped me develop intuition and general electronics knowledge in a way no other course has.

If you want preview of the book, e-mail me and I can send you some scans.

<comment><USER3> Curiously, you linked the Student Manual for TAOE. I was under the impression that the Manual was more of a supplement to the main text than a standalone book. I've been looking to buy a hobbyist-friendly yet comprehensive electronics book for quite a while now. Do you recommend I get the Manual alone or do I need the TAOE book (which appears to be a bit expensive to me at the moment)?

<comment><USER2> I think the Student Manual more or less stands as its own text. Obviously, there are some complements to TAOE, but I don't think it's necessary for the manual. TAOE is more like a cookbook than a textbook; it makes for a great reference but I wouldn't recommend trying to learn directly from it.

If you're curious, I have some scans that you can use to preview the book.

</comment></comment></comment><comment><USER3> If you are willing to consider eBooks, I find the ones at All About Circuits [1] quite accessible. They are yet to be completed in their entirety but the parts which exist are well-written and do well to cover both the theory and practical considerations (there is a laboratory book supplement available too IIRC). Plus, there is a nice forum to turn to for helpful discussions.

For a free resource, it is right up there with TSEGDSP [2].

[1] [http://www.allaboutcircuits.com/](http://www.allaboutcircuits.com/)

[2] [http://www.dspguide.com/pdfbook.htm](http://www.dspguide.com/pdfbook.htm)

</comment><comment><USER4> I actually learned a great deal from just reading Sedra and Smith's book on microelectronics. You don't need much more than algebra and trig to comprehend what is going on in this book.

There is some sloppiness in the book, but the first 5-10 chapters, with enough struggling, get you to think in terms of the basic models that you learn about early on. Once you understand how things break down conceptually, mapping theory to reality becomes a more manageable fight as you cross reference theory while looking at existing designs.

<comment><USER5> I would caution against starting on this text because it's typically at the upperclassman/graduate level, containing details about transistor models and amplifier design that you don't need to know unless you're considering a career in microelectronics design. It also assumes a lot of background so you might find yourself moving at a snail's pace. Otherwise, I thought it was a great text heavy on theory.

<comment><USER4> I agree with your warning, but would advise the reader to struggle with this book and embrace the struggle.

The text helped me with a lot of hobbyist discrete circuit design. The reason is because, in the book, they have little "model" transformations of active circuit components. Breaking things down into models that can be studied with KVL and KCL, as well as simple approximations and rules for dealing with the various modes of transistors, makes the subject accessible. (At least, to me anyway.)

I guess, to add a little bit to the suggestion: buy a used, outdated copy of this book, and try to work through a chapter every 2 months or so. Having a solutions manual on hand helps a lot also.

</comment></comment></comment><comment><USER6> Related question, sorry for hijacking this thread:

Are there any simulator-games out there? Like:

"Here are available components in your components box, now draw a circuit that lights an LED without distroying it, regardless how the 5V input voltage is connected. Max component count: 4"

Something in the spirit of Euler-project, but with electronics.

<comment><USER7> This is what I want too. I imagine I could learn what I want to learn about 20x faster with such a game.

BTW if you want to collaborate together to spec out the game we want maybe someone who already understands the relevant theory can help create such a game.

I want to start with questions like:

\- create a voltage divider to do ___

\- what value of resistor is needed to bias the transistor properly to start oscillation? (would show the rest of the context)

\- choose three components to create a low pass filter

\- which transistor would work with this oscillator circuit? (multiple choice)

\- why doesn't the LED in this circuit light?

There are thousands of simple questions/exercises that would (I think) pave the way for slightly more complex questions... it would be such a fun game :)

<comment><USER8> I commented below, and I would be happy to collaborate and can provide the theory as well as development. I'd love to get in contact, you can reach me at davep dot goliath @ gmail dot com

<comment><USER7> sent you an email

</comment></comment></comment></comment><comment><USER9> Speaking as someone who picked up hobby electronics not too long ago, I recommend Paul Scherz's "Practical Electronics for Inventors" [1]. Good mix of theory as well as practice.

[1]: [http://www.amazon.com/Practical-Electronics-Inventors- Paul-S...](http://www.amazon.com/Practical-Electronics-Inventors-Paul- Scherz/dp/0071771336)

</comment><comment><USER10> Contextual Electronics sounds like just what you're interested in with both design and implementation of electronics. The course is about to start later in January too: [https://contextualelectronics.com/](https://contextualelectronics.com/)

</comment><comment><USER11> I am looking forward to two embedded system courses in EdX.

Electronic Interfaces: Bridging the Physical and Digital Worlds: [https://www.edx.org/course/electronic-interfaces-bridging- ph...](https://www.edx.org/course/electronic-interfaces-bridging-physical-uc- berkeleyx-ee40lx#.VKZTNrCN1WU)

Embedded Systems - Shape The World: [https://www.edx.org/course/embedded- systems-shape-world-utau...](https://www.edx.org/course/embedded-systems- shape-world-utaustinx-ut-6-02x#.VKZTNrCN1WU)

EdX has got some nice electronics courses: [https://www.edx.org/course](https://www.edx.org/course)

Between, I am from compsci background

<comment><USER12> I took Embedded Systems last spring and it was great. Students interface to the outside world by programming an ARM microcontroller using C language. The staff and fellow students provide __tremendous __support on the boards. Here 's the syllabus:

[http://edx-org-utaustinx.s3.amazonaws.com/UT601x/syllabus.ht...](http://edx- org-utaustinx.s3.amazonaws.com/UT601x/syllabus.html)

Here are some projects from last year:

[https://www.youtube.com/playlist?list=PLyg2vmIzGxXGS3bdIkTF4...](https://www.youtube.com/playlist?list=PLyg2vmIzGxXGS3bdIkTF4uhaWy43kPaal)

</comment></comment><comment><USER13> A good book:

[http://www.amazon.com/Make-Electronics-Discovery-Charles- Pla...](http://www.amazon.com/Make-Electronics-Discovery-Charles- Platt/dp/0596153740/ref=pd_cp_b_1)

<comment><USER14> I recently purchased this book, along with three different kits that supplied all the tools and components I would need to carry out the experiments for roughly the first two thirds of the book (total cost: around 300 dollars, I know I could have gotten most of this stuff cheaper but such is life). My experience was...mixed. The book did a great job explaining some of the basic principles of electronics but these kind of cookbook tutorials don't seem to work as well as say a book that will teach you everything you need to know about Ruby programming. Eventually you will need to start from hard theoretic principles in order to design your own circuits.

I've come to the realization that you need to pull from a bunch of different sources to get a good enough background in the domain of electrons to start building a project you want to see realized, and that mastery in this domain is probably a journey that can be measured in decades.

</comment></comment><comment><USER15> [http://mightyohm.com/blog/2008/12/the-greatest- electronics-b...](http://mightyohm.com/blog/2008/12/the-greatest-electronics- book-ever-written/)

In elementary/middle and even high school I absolutely loved this book. I even had a backup copy. It might be a bit more basic than you need if you studied it in college though.

<comment><USER16> Somehow I knew before clicking the link that it would be this book.

I also read it several times, my father's copy in junior high, a copy I bought in high school, and another copy in early college.

Though I'd probably recommend the Art of Electeonics as mentioned up thread, along with the student manual. I took that Physics 123 class at Harvard taught by Horowitz and Hayes, and it was amazing.

</comment></comment><comment><USER17> [http://123d.circuits.io/](http://123d.circuits.io/) and [https://projectignite.autodesk.com/](https://projectignite.autodesk.com/)

</comment><comment><USER18> I loved coursera's course on audio electronics. Starts from absolute scratch, but has you building an amplifier and giving you an understanding of everything in between.

</comment><comment><AUTHOR> A related question is -- Are there good simulators (preferably over the web) that one can use?

<comment><USER19> [http://www.falstad.com/circuit/](http://www.falstad.com/circuit/) [https://www.circuitlab.com/](https://www.circuitlab.com/)

I recommend LTSpice as a desktop circuit simulator/analyzer.

</comment></comment><comment><USER20> I'm signed up for [https://www.coursera.org/course/introtoelectronics](https://www.coursera.org/course/introtoelectronics)

Starts in late March.

</comment><comment><USER21> [https://www.edx.org/course/circuits-electronics- mitx-6-002x](https://www.edx.org/course/circuits-electronics-mitx-6-002x)

<comment><USER22> I actually started looking at this the other day on Open Courseware - as I'd set myself a resolution this year to put together a little embedded\SBC system and needed to understand electronics in more detail[0]. It's a little bit intimidating. For example in the first few sentences he started referring to Maxwell's equations in very familiar terms (something like "we all know about Maxwell's equations already...") which threw me slightly and made me wonder if there's probably a better introduction to electronics out there.

[0] = [http://blog.mclemon.io/new-years- resolutions-2015](http://blog.mclemon.io/new-years-resolutions-2015)

<comment><USER23> _For example in the first few sentences he started referring to Maxwell 's equations in very familiar terms (something like "we all know about Maxwell's equations already...")_

This, incidentally, is exactly like going to MIT.

<comment><USER24> While I don't disagree, 8.02 (Electricity and Magnetism), which basically spends the semester teaching Maxwell's equations, is a prereq for 6.002.

</comment></comment></comment></comment><comment><AUTHOR> Thank you very much everyone for all your useful comments. This community is awesome.

</comment><comment><USER25> Enroll in undergraduate physics at a community college, or as an unmatriculated student at a university. The electricity and magnetism theory as taught to physicists is in many ways better than that taught to engineers.

Alternatively - and less expensive - read The Feynman Lectures on Physics by Feynman, Leighton and Sands, followed by the first part of Jackson's Electrodynamics.

University of California Santa Cruz' Physics Department has two good courses that teach how to design and build the electronics for use as experimental apparatus. The first quarter is analog, the second digital. After I took both courses, I did well at a summer job where I repaired electronic gear for the department.</comment>


Windows 10 will soon run Edge in a virtual machine to keep you safe - <AUTHOR> http://arstechnica.co.uk/information-technology/2016/09/windows-10-will-soon-run-edge-in-a-virtual-machine-to-keep-you-safe/ <comment><USER2> Why stop at the browser? Why not do this for every app?

And sure, this makes exploiting the desktop from the web more difficult, but only by requiring an additional exploit in the chain. I'm sure there will be vulnerabilities in the virtualization that hackers will pair with edge vulnerabilities.

This is a good step so long as they continue to patch browser vulnerabilities at the same pace. But if they use it as a crutch ("oh that vulnerability is no big deal because edge runs in a VM!") then it quickly becomes a problem.

<comment><USER3> This sounds awfully similar to iOS sandbox mechanism.

<comment><USER4> something like this? [https://www.usenix.org/conference/usenix- atc-10/presentation...](https://www.usenix.org/conference/usenix- atc-10/presentation/apiary-easy-use-desktop-application-fault-containment- commodit)

</comment></comment></comment><comment><USER5> Ah. My mom, and her underperforming laptop, which was forced to upgrade to windows 10 by pop ups which you could not just click away, will absolutely love that.

</comment><comment><USER6> This seems to be the only reasonable way to avoid getting hacked considering how hostile the web has become. NoScript and anti-tracking extensions still have to be disabled to be able to see what amounts to plain text on a significant number of websites.

Now we only need a method to protect ourselves from Microsoft's data gathering/spyware that's bundled with the OS.

<comment><USER7> Not using Windows is a very reasonable way to avoid getting hacked, seems to me.

It's been years since I miss something because it only works in Windows.

</comment></comment><comment><USER8> With VT-* and now apps running in VMs, how is it different from Ring 0/everything else separation?

</comment><comment><USER9> I wonder if this same technique could be used to protect users using Tor.

</comment><comment><USER10> Doesn't Chrome do this with its own internal sandbox?

</comment><comment><USER11> So instead of fixing the holes in their browser, they've just decided to offload responsibility to a VM, hoping the hardware virtualization isn't vulnerable (even though Intel surely cooperates with governments)?

<comment><USER12> What makes you think they're going to stop improving security in the browser itself? It's not an either/or thing, they can do both.

<comment><USER13> [https://en.wikipedia.org/wiki/Defense_in_depth_(computing)](https://en.wikipedia.org/wiki/Defense_in_depth_\(computing\))</comment></comment></comment>


Obama to Nominate Tech Adviser Julius Genachowski as FCC Chair - <AUTHOR> http://online.wsj.com/article/SB123180775460975639.html <comment><USER2> Seems that the tech incubator LaunchBox Digital does not only incubate tech startups...

<http://www.launchboxdigital.com/about-us.html> (About us, Founders: Julius Genachowski)

Which chair for pg?</comment>


How to make your own bath bombs – a nice way to save money at Christmas I think - <AUTHOR> https://www.rosinaslotionspotions.com/blogs/diary/how-to-make-your-very-own-bath-bombs <comment><AUTHOR> After recently striking out on my startup I needed a cheap alternative to providing some gifts for friends and family. Making bath bombs is a nice touch, and is surprisingly effective. I had no idea they would be so popular. I recommend everyone does the same.</comment>


The problems with social news - <AUTHOR> http://www.jgc.org/blog/2007/09/problems-with-social-news.html <comment><USER2> Seeing as how it is of interest, if I may trouble the crowd here with yet another summary, "The Wisdom of Crowds" (which is actually sitting on my desk, next to "Good to Great") says that to have a "smart" crowd, these conditions must apply:

\- Independence - people don't look at one another's answers prior to submitting their own.

\- Diversity of opinion

\- Decentralization

\- A way to aggregate the results

The independence thing is the problem with digg/reddit/yc.news etc... - instead of a bunch of people voting on their own, and then seeing what comes out, you see ahead of time how everyone else has voted, and reddit groupthink ensues. News.yc is better because of the high quality of the people, not the algorithm.

Oh, the book is at:

[http://www.squeezedbooks.com/book/show/23/the-wisdom-of- crow...](http://www.squeezedbooks.com/book/show/23/the-wisdom-of-crowds)

But I haven't finished the summary yet... contributions welcome:-)

<comment><USER3> I think it's ridiculous to claim that this book represents the ultimate truth in the subject.

This subject is in its infancy indeed.

<comment><USER2> No, but those conditions make a lot of sense to me in terms of differentiating a "wise crowd" from an "angry mob".

<comment><USER3> I was referring more to the article's statements than your comment.

</comment></comment></comment></comment><comment><USER4> I totally agree. Digg, Reddit, and "Hacker News" for that matter, don't actually implement the "wisdom of the crowd". The true hypothesis of a WotC is based on a random survey or sorts. How many people actually look beyond the first few pages of these social news sites, or maybe their friends (or other reputed users) links. Social news is still in a stage of infancy, much like how web search was (maybe is).

Throw 10 random stories to the user on the homepage, let them vote, and the best stories will emerge. What's point of actually showing them the "popular" stories as the first go.

</comment><comment><USER5> The reason Reddit and Digg are implemented the way they are is that they rely on people's need for attention to generate a constant stream of incoming links. Making it to the "front page" of whatever site you're dealing with is a badge of honor and indicates some sort of social significance. The incentive's just not there for people otherwise. The only people who'll submit links without any guarantee that anyone will see their submission should be using del.icio.us.

<comment><USER6> There's no "guarantee" that links submitted to reddit or digg will be seen by a significant fraction of people, either.

As for the submitter's need for popularity, I think the basic problem is that you need to find the right way to balance voting on stories (which should be more or less independent of a story's popularity, as the article argues) with viewing stories (which must be inherently based on some notion of popularity or story quality, or the whole point is lost). That seems like it should be solvable, though: for example, you could present both kinds of items in the UI.

</comment></comment><comment><USER7> There are some good ideas here, but bing a facebook app Wildfire undoes the analysis on this blog, because then you still create a closed loop of readers.

It's basically like automated email forwarding on facebook, and email forwarding already operates like wild fire, when things are really interesting.

<comment><USER6> Yeah, the fact that it's an FB app was a major turn-off to me as well. What does building it on Facebook give you, other than significantly limiting the set of potential users? Surely, building a social news site from scratch can't be that hard...

</comment></comment><comment><USER8> "We tend to associate with people who have similar tastes and views to us"

There has to be a better word for this than 'homophily.'

</comment><comment><USER9> You have a major flaw in your logic for Wildfire: the fact that "we associate with people who have similar tastes" does not imply that "we associate ONLY with people who have similar tastes". I'm interested in startups, but a few of my Facebook friends are. If I bombard them with startup news, most of them will be annoyed.

</comment><comment><USER10> I'm amused by the implication that The Wisdom of Crowds is a Web 2.0 textbook. It's like "obviously this is not the wisdom of crowds, have they not even read the book?!" I'm not sure that's what they're even aiming at. For my part, I just want a few interesting news stories.

<comment><AUTHOR> That's a fair comment. I must admit that it's specifically Kevin Rose who uses that term a lot.

John.</comment></comment>


Lack of CSPRNG Threatens WordPress Sites - <AUTHOR> http://threatpost.com/lack-of-csprng-threatens-wordpress-sites/111016

<comment><USER2> This is a very slanted piece. Read the original Trac ticket [1] instead. Arciszewski's original patch wasn't merged because it was overly broad, lacked unit tests, and had whitespace problems. He also started emailing one of the lead developers directly [2] instead of the security team, then got up in arms about lack of response.

[1] [https://core.trac.wordpress.org/ticket/28633](https://core.trac.wordpress.org/ticket/28633)

[2] [https://core.trac.wordpress.org/ticket/28633#comment:25](https://core.trac.wordpress.org/ticket/28633#comment:25)

<comment><USER3> I would like to clarify that Andrew Nacin is not just "one of the lead developers", he was the security team member who self-assigned this deficiency.

Let me put it another way: I contacted the security team, Nacin responded. Then a mix of human and technological error (he says it was an aggressive spam filter) led to a communication breakdown.

> Arciszewski's original patch wasn't merged because it was overly broad, > lacked unit tests, and had whitespace problems.

The problem was that my subsequent updates that addressed these issues were met with radio silence. Now the developers have gotten actively involved and they're on version 9 (thanks to dd32). Since the FD post, their response has been largely professional, proactive, and conservative. I have no complaints there.

EDIT: Also, my follow-up post to FD about this: [http://seclists.org/fulldisclosure/2015/Feb/53](http://seclists.org/fulldisclosure/2015/Feb/53)

</comment></comment><comment><USER4> MT rand is truly bad at generating security-sensitive randomness. The exploitability of mt_rand is situational, though, and depends on:

* How long a single process with a single bucket of mt_rand state runs and reveals its state (if it's reloaded over and over, you get fewer bites at the apple to recover that state)

* How it's seeded (if you're in a position that requires you to recover state across multiple reloads)

* How much state is actually revealed (classic example: mt_rand instances that extract a single byte at a time, out of its 32 or 64 bit output)

It's never, ever a good idea to use mt_rand for security, but its mere use is probably not necessarily a bona fide vulnerability.

<comment><USER5> According to this post it seems like you need 624 consecutive values from mt_rand to recover the seed: [https://jazzy.id.au/2010/09/22/cracking_random_number_genera...](https://jazzy.id.au/2010/09/22/cracking_random_number_generators_part_3.html)

(I agreed with everything you said, but it was just hard to follow without understanding how mt rand is usually cracked)

<comment><USER4> It's more complicated than that. The poster here isn't "cracking" MT, he's recovering its internal state completely. Partial information gets you to a place where you can run a cracking-like process against a system of constraints, though.

In any case: as Stefan Esser points out on Twitter, Wordpress doesn't rely on mt_rand for its password tokens.

</comment></comment></comment><comment> mkr-hn Unless I'm reading this wrong, wouldn't it require someone generating a new password, then never changing it to something else?

<comment><AUTHOR> I think that's typical. Not sure if this is the case, but I think the danger would be if you are able to use a "forgot password" link to enable the token.

<comment><USER6> Indeed, create a new throw away account; find out where in the PRNG table the password came from for this throw away account. Use that information to guess the next "Reset password" password then use that to hijack the target account.

</comment></comment></comment><comment><USER7> Is there a WordPress plugin that implements the updated RNG? The `wp_rand` function is pluggable.

It's heartening to see this addressed _before_ it becomes a vulnerability.

</comment><comment><USER8> Mm, seems a bit hyperbolic, like a Wired article.</comment>


What would be a nice Google April Fool's joke? - <AUTHOR>

What would be a nice Google April Fool's joke? <comment><USER2> News release announcing google, apple, and microsoft were teaming up to "redefine the desktop," developing new hardware, operating system, and user interface to give you "all the functionality of a portable device, but without the fear of losing it."

</comment><comment><USER3> After 5 years, Gmail goes back into Alpha.

</comment><comment><USER4> I think it would be a good April Fools joke if google shut down entirely for 24 hours

<comment><USER5> And destroys the world economy! Hilarious.

<comment><USER6> Or how about for just 5 min? with some sort of "serious trouble in the google factory" message plastered across the screen?

</comment></comment></comment><comment><USER7> Google releasing an SDK for iPhone.

</comment><comment><USER8> Google Ventures.

Oh wait.

</comment><comment><USER9> Google car.</comment>


Show HN:Just launched MedStamp.org, where wallpapers save lives - <AUTHOR> http://www.medstamp.org

<comment><USER2> Something that happens on that landing page makes it almost impossible to use my browser's back button and navigate back to where I came from.

That's after not having a clue what you're asking me to sign up for.

</comment><comment><USER3> Landing page needs a lot of work. There's no description of what that even means ('Where wallpapers save lives'). No way I would sign up.

</comment><comment><USER4> What is the point of this submission? It just goes to a landing page with absolutely no information at all.</comment>


Why do Russians pour asphalt over snowed roads instead of plowing them? - <AUTHOR> http://sploid.gizmodo.com/do-russians-make-new-roads-instead-of-cleaning-the-snow-1482195344

<comment><AUTHOR> The top comment has an interesting suggestion for why this is done:

      […] this is how people in local governments make money in Russia:

      Step 1: have a $100,000 of tax money budget for fixing the pavement on street XYZ
      Step 2: pay your nephew's 'construction company' $10,000 for the 'work' they did
      Step 3: pocket $90,000 of tax money
      Step 4: oh noes!! the road cracked AGAIN! not AGAIN!! oh well, guess gotta go fix it
      Step 5: goto Step 1	 Today 1:36am

</comment><comment><USER2> Because pouring hot asphalt over snow melts it?</comment>


Rediscovering Make - <AUTHOR> http://flukus.github.io/2016/11/30/2016_11_30_Rediscovering-Make/ <comment><USER2> Really nice! Sometimes using other build tools can seems simpler, but the article shows very nicely how make can be incrementally constructed to support any kind of project.

Lack of cross-platform compatibility could be an issue though

<comment><USER3> The issue isn't the capabilities of Make. The issue is that those incremental constructions are largely a case of implementing your own version of CMake (yay) or Autoconf (boo). And I guess scons sort of counts too.

Sometimes that is a good thing (strange build platforms). Sometimes that is a huge waste of time (most of the time).</comment></comment>


4G satellite company takes aim at cell carriers - <AUTHOR> http://www.businessweek.com/idg/2010-03-30/4g-satellite-company-takes-aim-at-cell-carriers.html

<comment><AUTHOR> This could be significant if it leads to a commoditization of mobile bandwidth such that random startups can be cell carriers if they want to.</comment>


We're At An 'Absolute' Low Point In Startup Quality - <AUTHOR> http://m.techcrunch.com/2013/04/29/chamath-palihapitiya-disrupt/

<comment><USER2> If we are at a low point, it's not what people are building. People have and always will build junk. Rather, we are at a low point of what people are funding. You may not need my most excellent Twitter Bootstrap styled blogging service, but I can keep pushing it for as long as I can get funding.</comment>


The Skill Tree Principle: An Innovative Way to Grow Your Skills Efficiently - <AUTHOR> https://medium.com/swlh/the-skill-tree-principle-an-innovative-way-to-grow-your-skills-efficiently-7e6287e0748e <comment><USER2> Cool piece. I think there's a difference between growing/picking up skills and mastering them though that isn't covered. For instance, with aesthetic skills (drawing, sketching), I think you need to have some degree of innate creativity, or an eye, to truly become a master. It's the reason why only a few students that were apprentices to the Great Renaissance Painters went on to become famous artists themselves. There were many, many artists in the bottegas of Da Vinci or Rubens who were able to copy and distribute works like those artists, but never paint masterpieces. ([https://www.artspace.com/magazine/art_101/art_market/the- evo...](https://www.artspace.com/magazine/art_101/art_market/the-evolution-of- the-artists-studio-52374))

It's just one example, but I think there a lot of other principles that become a part of "Skill Trees," including collaboration, the environment you're learning in, and maybe an element of innate talent that means you never have to break down the skill.</comment>


Ask HN: Where to look for fringe brain science? - <AUTHOR> Asking the community? Where would you look for fringe brain science text? Specifically, my intuition tells me that some thoughts begin outside of the brain, and "appear there". Call it intuition, or universe waves, etc. In the spirit of Ray Dalio, I am looking to concretely disprove my theory. Where would you start? <comment><USER2> Give us an example of an external thought.

Are you excluding cognition which is part of the environment - a legacy there by other humans? That's real, demonstrable and often not obvious - like the Orders in architecture.</comment>


Shipping a Neural Network on iOS with CoreML, PyTorch, and React Native - <AUTHOR> https://attardi.org/pytorch-and-coreml <comment><USER2> What I like about this write up is it's end-to-end. Most of the ML write-ups leave you with a Keras model. Leaving many questions around how you turn the model into a product. Especially if you have to move the model to a non python platform. Really good read, enjoyed it.

<comment><USER3> The author comes across as very humble too, he doesn't pretend to be an expert, and takes his time to explain his rationale at every step. I'm not even that interested in iOS development or deploying models to phones - but I really enjoyed the read for the journey rather than the destination.

</comment></comment><comment><USER4> Really enjoyed the article. I don't do ML but I'm a React Developer, so I was interested in reading the article cause it said React Native. To my surprise, I read it entirely, understood most of it, and best of all, React wasn't part of it until the very last part. I encourage you to write more posts like this, I learned a lot.

</comment><comment><USER5> If I understand correctly, the reason a CNN is used here is because we want to find the splits that a human would visually agree "looks" the best?

So rather than a regression it's more like the "line simplification" problem in graphics: ([https://bost.ocks.org/mike/simplify/](https://bost.ocks.org/mike/simplify/) [https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93...](https://en.wikipedia.org/wiki/Ramer%E2%80%93Douglas%E2%80%93Peucker_algorithm))

Just thought this solution seems a little overkill. Surely you can pick some error metric over the splits to optimize instead?

<comment><USER6> Overkill is a point of view here. Training and deploying neural networks is becoming easier than ever.

In my group at Arm there's a solid expectation that we'll see neural networks integrated into every part of a running application, and whether they execute on special NN processors or the general-purpose CPU will largely depend on where the data is needed.

I cut a very long comment short and wrote the rest of this up here: [http://yieldthought.com/post/170830096265/when-are-neural- ne...](http://yieldthought.com/post/170830096265/when-are-neural-networks- overkill)

<comment><USER5> I said it was overkill because I thought I had a simple analytical solution as follows. Note: I don't know anything about segmented regression, this is just your standard CS dynamic programming to calculate splits

DP[i][j] = min over k of (DP[i][k] + (cost of splitting at k) + (linear regression error of points from kth to jth))

This should run in O(n^3) which will be fine for the author's requirement of ~100 points. But this isn't a complete solution since it's not obvious how to choose the cost of splitting (which is needed otherwise it will just split everything into 1 or 2 point segments).

I think thinking about this more and explicitly trying to design this cost function is still better than labeling a bunch of data until the machine learning algorithm can reverse engineer the cost function from your head. Then you can be confident of what your code is doing and why and know that it won't randomly output potato.

</comment></comment></comment><comment><USER7> I love the description of convolutions:

> I think of convolution as code reuse for neural networks. A typical fully- > connected layer has no concept of space and time. By using convolutions, > you're telling the neural network it can reuse what it learned across > certain dimensions.

The diagram is great too: [https://attardi.org/pytorch-and- coreml#convolution](https://attardi.org/pytorch-and-coreml#convolution)

</comment><comment><USER8> Happy to hear it worked out for the author and a great showcase example for the technologies. Thanks for sharing with us!

I'm tracking the performance of my mechanical watch myself for over a year now. After some experimentation I've settled for making a burst picture of the watch hands at exact minute with my iPhone camera and reading out the EXIF for exact timing. This solves quite a few logistical problems with the measurements.

From my point of view spending time to design an automatic ml solution to something that is caused by a watch owner and can be easily identified is less optimal than for instance automating the measurements themselves as described above.

If the author is interested in moving into that direction I'd be happy to share my experience directly.

Otherwise good luck further on and keep us posted.

<comment><USER9> Using the camera for taking measurements is a great idea. Deciding where to split the trendlines is a separate problem though. A different way to take the measurements wouldn't change that. Would love to chat about ways of improving both. Shoot me an email!

</comment></comment><comment><USER10> Great walkthrough. Purchased the app - I have been curious about the performance of my watch for a while but never got around to measuring it. The app nicely hit a niche.

What would be the challenges in using the camera to identify the time on the watch face?

<comment><USER9> It's a great idea. I had it on the back burner. Wasn't sure if it was worth the time for a relatively niche app. Now I'm thinking it might be worth doing just so I can write about it!

<comment><USER11> I also had that idea, and I made a crude proof of concept: [https://github.com/iver56/cnn-clock](https://github.com/iver56/cnn-clock)

</comment></comment></comment><comment><USER12> Dude. This is awesome stuff! Great design, topic, demeanor, problem statement, solution. I also like the way you visually offset deep(er) dive subtopics. Thanks!

</comment><comment><USER13> Very nice writeup. Also the timing couldn't be perfect. As I am also dabbling with an idea for a React Native app which would help me target both ios and Android. Thanks for sharing your experience.

<comment><USER12> Timing couldn't be more perfect, I see what you did there.

</comment></comment><comment><USER14> Looks like this is a classification problem as opposed to a regression problem. (The NN is trying to pick one output). You very likely want to use a cross entropy loss function, not MSE.

<comment><USER6> I think this is correct - binary cross-entropy on the sigmoid outputs should at least make the network easier to train and may as a consequence improve test performance.

</comment></comment><comment><USER15> Great work shipping NNs on an app. However, if I understand the challenge correctly, wouldn't starting a new sequence for a new trendline every time the deviation drops (potentially with an error margin) do the trick?

</comment><comment><USER16> Content aside, I love the ToC to the left with clickable links. Helps prepare a reader for what information their about to consume, and provides relevant context for each section.

</comment><comment><USER17> Really great end-to-end write up.

Just a few things: in general case it's better not to use MSE after sigmoid due to slow convergence.

And "logits" variable is not logits actually, it's probabilities. Logits is what you have before applying sigmoid activation.

</comment><comment><USER18> I am guessing the ReactNative choice was for fun/learning since the author didn't target Android. But is there a toolchain that can convert Torch or TensorFlow models to an Android-compatible ML framework?

<comment><USER19> You can use the same toolchain to convert PyTorch model to Caffe2 through ONNX. Caffe2 supports both Android and iOS. There is even a tutorial: [http://pytorch.org/tutorials/advanced/super_resolution_with_...](http://pytorch.org/tutorials/advanced/super_resolution_with_caffe2.html)

</comment></comment><comment><USER20> Really good end-to-end article! Enjoyed reading it.

</comment><comment><USER21> "CUDA is not available" eh... OpenCL!

<comment><USER9> I've been subscribed to this issue since forever: [https://github.com/tensorflow/tensorflow/issues/22](https://github.com/tensorflow/tensorflow/issues/22)

Doesn't sound like using OpenCL on iOS will be realistic any time soon. Am I wrong about that?

<comment><USER18> I am pretty sure Apple has abandoned OpenCL in favor of Metal, which CoreML is built upon.

</comment></comment></comment><comment><USER22> Neural network is great.

</comment><comment><USER23> Great walkthrough, but was a neural network really necessary for detecting how far off the time on a mechanical watch is? I didn't read the article that closely so maybe I'm missing something but just intuitively a machine learning model and neural network seem like a lot of work for something like this.

<comment><USER9> The neural network is not for measuring how far off the time is, it's for guessing where different trendlines in the charts should start and end. You could say it's overkill, but as I mention in the article I wasn't happy with the results I got using simpler math. Also I'm pretty honest about the fact that I used a neural network because I felt like it. :)

Check out this response for a different take on this: [http://yieldthought.com/post/170830096265/when-are-neural- ne...](http://yieldthought.com/post/170830096265/when-are-neural-networks- overkill)</comment></comment>


Microsoft and LinkedIn's vision for the opportunity ahead [pdf] - <AUTHOR> https://ncmedia.azureedge.net/ncmedia/2016/06/msft_announce_160613.pdf <comment><USER2> On Slide 15, they casually write:

"Today Cortana knows about you, your organisation and about the world. In the future, Cortana will also know your entire professional network to connect dots on your behalf so you stay one step ahead."

Great, Microsoft. Can't wait. /s

Between the limitations of the word "know" (without going into the semantics of consciousness/intelligence), LinkedIn's well-deserved reputation for being creepy and Microsoft's ambition to "connect dots on your behalf", I can't say I'm thrilled.

Hopefully, managerial incompetence will come to our aid.</comment>


Show HN: Turn a low res image to high res with ML - <AUTHOR> https://modeldepot.io/joe/vdsr-for-super-resolution/overview <comment><USER2> Neat, but this'll be far more usable once someone sets it up as a nice web service ala waifu2x</comment>


Apple says no fun allowed on the Touch Bar - <AUTHOR> https://techcrunch.com/2016/10/27/apple-says-no-fun-allowed-on-the-touch-bar/ <comment><USER3> I'm not sure the article author really understands how the Touch Bar works.

> _I for one was thinking of what the first Touch Bar games would look like, > or how it could act as a Rainmeter or MenuMeters-like at-a-glance view of my > machine._

People are going to experiment with toys for the Touch Bar, sure, but nobody's going to actually try and publish a game for one. Not only would the audience be very small, but the Touch Bar itself is so limited that you're not going to be able to make a game for it that's worth buying. However, normal games can and should use the Touch Bar to extend the keyboard to do great stuff (e.g. RPGs could put Inventory, Character Sheet, Skills, etc as buttons on the Touch Bar, or use it as an alternative input for controlling some types of abilities).

As for MenuMeters-like at-a-glance, this is why I say the author doesn't seem to understand how it works, because the only way you could have an at-a-glance view in the Touch Bar is if you actually put focus on the app that provides it. You cannot have a background app that provides Touch Bar content (like you can for stuff in the menubar). The foreground app controls what's on the Touch Bar. So the only way to have at-a-glance meters on it is if the foreground app is the one providing those meters. And if you have to put focus on a particular app to see your meters, then it's not really at-a-glance after all, and it would be quicker and easier (and actually usable for people without Touch Bars) to simply have that app show the status on the screen when you give it focus.

<comment><USER4> I mean, you could do all of that — Apple just won't let you.

<comment><USER5> On OSX you can distribute an executable without Apple's permission. The touchbar API may or may not support all use cases, but reverse engineering the lower level interface is probably not too hard.

<comment><USER4> Hopefully! I don't think anyone would be surprised if the touchbar was "App store verified" only.

<comment><USER6> One of the main demos was for Photoshop which is not on the Mac App Store. I would be surprised.

</comment></comment></comment></comment></comment><comment><USER7> > Who wouldn't want a stock ticker there, or a Twitter feed, or a progress bar > for downloads and file operations? There are plenty of possibilities to > explore here, and it seems a disservice to insist that things remain > monochrome, key-shaped and static.

No Mac user has ever thought "gee, this third party design is so much more tasteful than something that follows the HIG!" Apple is right to keep designers on a tight leash.

<comment><USER8> they took away the Esc key and all the Fn keys. Apple's HIG is dead to me now.

<comment><USER9> Just looking at [http://www.apple.com/macbook- pro/](http://www.apple.com/macbook-pro/) shows that's not true:

[http://images.apple.com/v/macbook- pro/j/images/overview/touc...](http://images.apple.com/v/macbook- pro/j/images/overview/touchbar_access_function_large.jpg)

Maybe wait to actually use one before trying to rally the mob with pitchforks and torches?

<comment><USER8> i appreciate you pointing this out concerning the Fn keys. at the end of the day, though, i want real keys. i'm not a starfleet officer and i don't want to type on a flat screen.

<comment><USER4> I'd type on a flat screen if it made me a starfleet officer though

</comment></comment></comment></comment></comment><comment><USER10> Only the foreground app gets to put things in the touch bar. Excellent - <USER2> don't want some background process putting animated ads there.

Beyond that, Apple can't possibly limit what the foreground app does. Distribute your tasteless animating app with a Developer ID cert, and annoy people to your heart's content.

I do want a screensaver that also uses the touch bar. Nyan Cat is acceptable in this context.

<comment><USER11> > I don't want some background process putting animated ads there.

If you are legitimately worried about this then I am in horror of what software you're running on your computer.

I could understand having it require user approval but forbidding it entirely seems short sighted.

<comment><USER4> If I had an application that advertised to me like that I'd just uninstall it immediately, like I do on my phone.

I think a lot of people in this thread are getting so riled up about bad design the only alternative they see is totalitarianism.

In this case I think if you're giving an application your focus it should be able to use a secondary screen however the user wants it to. If the experience is bad people won't use your app.

Apple is instead saying "we know what all the good experiences are, so don't go having any bright ideas" — hopefully they won't strongly enforce any of their "guidelines"

</comment></comment></comment><comment><USER12> How many negative posts about the new MacBook have graced the front-page of HN since the announcement? It feels like a lot.

I don't really understand the degree of animosity that the new MBP is drawing. Apple isn't, nor have they ever really been, the makers of the ultimate dev machine. They were always just the company that makes a laptop with decent power that was actually a laptop (not a desktop with a hinge in the back) which ran a unix that was, for many, more pleasant to use than linux. That hasn't changed with this release.

Would I like them to maybe be a little less obsessive about thinness if it meant getting a keyboard with a bit more travel? Sure.

Do I think that maybe a 32GB of RAM might not be quite the battery-killing trade-off that Phil implies? Kinda. Do I expect Apple to give me the option to make that choice on my own? Not a chance.

And when it comes to the Touch Bar, I didn't really expect Apple to make this a free-for-all for developers. They've long had this tendency to want to control how developers use these new features to ensure that it doesn't get away from their vision. But will someone figure out how to hack the Touch Bar and make it do some very interesting things? Oh, absolutely.

<comment><USER13> "obsessive with thinness"? new MacBookPro - 14.9 mm MacBook - 13.0 mm Asus UX305 - 12.3 mm Samsung Series 9 900X3 - 13.0 mm

I don't think we can call that obsession. And please note that both Asus and Samsung have keyboards with around 2mm travel - laptop standard.

<comment><USER12> My biggest concern is that I won't like the keyboard, but I do most of my typing on an external keyboard anyway, so I suppose it won't be the end of the world. Once you get used to a mechanical keyboard it is hard to go back to typing on any laptop keyboard.

</comment></comment></comment><comment><USER14> I await the first few apps to put ads on the Touch Bar. It seems all but inevitable.

<comment><USER15> Doubtful, mostly because there just isn't that much ad-supported software on OS X / macOS. And Safari certainly doesn't expose any access to it.

<comment><USER16> I believe with safari open, you see a representation (favicon? I don't know) of your open tabs and favorites. I bet something could leak through there, at least with a desperate enough site.

</comment></comment></comment><comment><USER17> "Don't be creative with this new tool we made for creative people" -Apple

Typical Apple restricting the ecosystem. Guess we all knew what we were getting ourselves into.

<comment><USER18> It's not like they're going to ban apps that do this. They're just saying, "These are the best ways to use this thing."

</comment></comment><comment><USER19> _Now, admittedly, some of these things could be annoying or pulled off poorly._

This is one of the things that Apple has always been serious about doing right. Generally, devs who complain about this class of things are proved wrong in a few years. (Remember all of the outrage about background processes from the 2nd gen iPhone era?)

That said, even Apple is getting less Apple-y in this regard.

</comment><comment><USER20> Really? You know what I expected on the keyboard? The escape key, but clearly Apple didn't have a problem with violating that expectation.

<comment><USER21> Several screenshots show that a escape key can be placed on the touch bar by apps that need it (e.g. Terminal).

There's certainly a good argument that physical keys are better, due to tactile positioning and response. But there's still a virtual escape "key".

(And on a related note: Folks could make the same argument about the F13/F14/F15/Help buttons that are traditionally on a Mac keyboard. Or the lack of Print Screen/Break/Scroll Lock from Apple keyboards in general. Keyboard layouts actually do change with time. Heck, look at the "Space Cadet Keyboard" from an MIT Lisp machine to see how much things have changed.)

</comment></comment><comment><USER22> Good, sensible guidelines from Apple, and it's not like you can't ignore them and distribute your app outside the Mac App Store.

</comment><comment><USER23> I've read a TON of pushback on HN about the new touch bar. After reading this article it dawned on me -- the reason _I_ hate the touch bar is because it isn't tactile. Instead of feeling for the volume up/mute/lightness up/down buttons, I'll have to stick my face into my keyboard to know what I'm pressing.

My solution would be allowing _individual pressable physical keys_ to be changed via LED display, so that I can still feel them, but developers can modify what that key means. Yeah this would disable "sliding" which I don't care about.. is anyone with me on this? I hate having to look at things.

<comment><USER3> There's a bunch of external keyboards that do this already. AFAIK, none of them have proved to be particularly popular or have a lot of developer support.

As a side note, I don't think I've _ever_ pressed volume up/down or brightness up/down without looking at the keyboard first. I simply don't press them often enough to have muscle memory for their location, and every keyboard I use puts them in slightly different places anyway.

<comment><USER24> To each their own, but I use esc heavily in vim, and brightness & volume are one in from each edge on all mac keyboards that I'm aware of, so they are easy to hit without looking. Lack of tactile buttons is going to be a huge pain in the ass.

</comment></comment></comment><comment><USER25> I'm kind of OK with this. Yea I think that there are a ton of really cool/interesting things that could be done with the touch bar, but given that it serves the important role of being the power button and controlling user access via TouchID, I really wouldn't want to risk either of those functionalities even if it means less "fun".

</comment><comment><USER26> This article is very misleading. Apple has always had UI guidelines (HIG); that doesn't mean they ban apps that don't follow them. It's a recommendation, not a proscription.

</comment><comment><USER27> Given they showed some pretty interactive demos in the keynote, I'm thinking it's all allowed if you're Apple but 3rd-party developers should be concerned.

</comment><comment><USER28> Would be cool to put a code editor minimap on the touch bar.

<comment><USER29> ed is back.

</comment></comment><comment><USER30> How are they going to control this for non-App Store apps?

<comment><USER31> I'm pretty sure its only talking about App Store apps.

<comment><USER32> But maybe they'll make it hard or even impossible for apps outside the MAS to use the touch bar.

</comment></comment></comment><comment><USER33> Given that displays favor landscape over portrait, there's a lot of free space above the numbers. My bet is that the next iteration will have the function keys and the touch bar after the alienation of developers becomes apparent to Apple.

</comment><comment><USER34> Has anyone here used the touchbar in person? I'm interested to know how easy it is to touch individual controls on the bar. Like can you be in the middle of typing and hit the keys or do you have to stop and poke at it.

</comment><comment><USER35> > Who wouldn't want a stock ticker there, or a Twitter feed, or a progress bar > for downloads and file operations?

I want function keys there. I have a perfectly good screen to show all that other fluff on.

</comment><comment><USER36> This thing looks terrible.

How did

 _" Let's add TouchID to the MacBook!"_

become

 _" Let's get rid of escape, power, function keys, volume, brightness, media controls ... and replace it with a second tiny screen!"_

?

</comment><comment><USER37> There goes my pong controller.

<comment><USER38> FWIW, the guidelines suggest not using the Touch Bar as an _output_ device, i.e. as an extension of the screen, not that you shouldn't use it as an _input_ device. Pong paddle control should still be an acceptable use of the bar.

</comment></comment><comment><USER39> Yet another huge FU to developers.

<comment><USER40> As a macOS user, I'm pretty pleased Apple is discouraging the use of the Touch Bar as yet more real estate for 'innovative' developers to plaster unwanted notifications or other distracting garbage. Besides, if you have a compelling non-approved use of the touch bar nothing is stopping you from distributing it outside of the Mac App Store.

Now if only they could take a look at the user-hostile default "allow" option on the dialog Safari presents when a website wants to start sending you push notifications...

</comment></comment><comment><USER41> The primary reason for this may not be that Apple does not want you to do it but it is probably the hardware and software that powers this feature is probably not robust enough to handle that creative potential. In short this is a substandard piece you are buying.

I will be surprised if someone does not hack and if apple does not provide a proper API support to modify and have fun with this feature.

<comment><USER42> Well they showed a dj using it to control a synthesizer during the keynote, so I think (in short) that was a substandard comment I was reading.

<comment><USER41> What do you think is the delta between orchestrated demo v/s real usability of a particular feature ?

<comment><USER42> Well he was using it. I'm quite sure they didn't fake it. I'm absolutely sure I couldn't do it.

I'm also remain very certain that Apple is not trying to discourage people from using this thing because it only has a life span of whatever hours of active use. How I know it? Because they have been selling touchscreens for ten years now, under much stronger constraints, without any such shenanigans. And also because it is an incredibly stupid theory.</comment></comment></comment></comment>


What's new in Sinatra 1.4? - <AUTHOR> http://rkh.im/sinatra-1.4 <comment><USER2> came from python (and tornado) to ruby, if it wasnt for sinatra, i'd have stayed with python and tornado. great work, keep up the clean syntax and lightweightness.

<comment><USER3> python has flask & bottle, so.. you may consider going back?..

<comment><USER2> can't go back, at least not now, at work we've standardized on ruby. for personal projects, i've also decided to stick with ruby as well, the main reason being mostly the gem package manager and community support, not saying that python doesn't have a good community with great libraries (egg, setup tools, etc), but ruby's just cleaner for me with regards to web app development.

</comment></comment></comment><comment><USER4> I'm glad there is Sinatra because it inspired Scalatra, which seems way more lightweight than Play :-). Keep up being lightweight!

I don't blame the authors for discontinuing old branches (1.2.x), but it makes me hesitant using Sinatra for a production website that's meant to be there for >= 2 years (though is an eon in IT).

<comment><USER5> What do you mean by "lightweight"?

<comment><USER6> I'm curious, too. Also how does it compare to Spray? <https://github.com/spray/spray>

</comment></comment></comment><comment><USER7> > By default, Sinatra will now only serve localhost in development mode. You > should not be running your production system in development mode.

This "opinionated default" makes it very hard to test when you're running your development environment from a virtual machine, like Vagrant.

More and more people are doing this (gotta use those extra cores + memory for something, right?), so please consider us before adding a "listen 127.0.0.1". :)

<comment><USER8> Simply run with -o 0.0.0.0, I think the number of people running without firewall or having an annoying firewall warning every time they start a Sinatra process is larger than the number of people developing on a VM. Also note that this has no effect if you use some different way to run your Sinatra app, like rackup.

</comment></comment><comment><USER9> For static sites I use rack, for dynamic sites I use rails.

When do I use Sinatra?

<comment><USER2> you can use sinatra in place of rails for dynamic sites, but you'd need to pick template language (erb, haml), object relational model (activerecord, sequel, datamapper), and other things that come bundled in rails. that's what makes sinatra lightweight, you add as you need as opposed to everything there for you out of the gate. you can think of sinatra as being a simple domain specific language for creating sites or apis (i use it for both).

<http://github.com/cloudfoundry/defekts>

<comment><USER10> I think you described Padrino (<http://www.padrinorb.com/>).

Sinatra is good for APIs but it's easy to find yourself reinventing Rails/Padrino when you have a view layer.</comment></comment></comment>


Is most science false? - <AUTHOR> http://simplystatistics.org/2013/09/25/is-most-science-false-the-titans-weigh-in/

<comment><USER2> Great to see somebody talking more about the ins and outs of open access research. (Dr Leek is also one of the instructors in the data analysis courses on Coursera, FWIW.)</comment>


Help Your Startup Get Press - <AUTHOR> https://presspartners.co/ <comment><USER2> We've struggled in the past with press, good to see this pain point getting noticed.</comment>


Backuperous: Review my Webapp (via my blog) - <AUTHOR> http://www.inforift.com/backuperous-an-exercise-in-execution

<comment><AUTHOR> Direct link to the app itself:

<http://www.backuperous.com></comment>


Sergey Brin Guesses That Only 20% Of Googlers Still Use Windows Machines - <AUTHOR> http://techcrunch.com/2011/05/11/googlers-windows/ <comment><USER3> _Brin also said that since Google will be deploying Chromebooks internally, he hopes that a year from now, there will only be a small percentage of Googlers not working on the devices._

Weird. It's kind of hard to believe that many google employees will use a 12" atom netbook as anything close to their main machine. In addition to, sure.

<comment><USER4> My guess is they use them like smart terminals and ssh into something else.

</comment></comment><comment><USER5> I used to work at a C.S. research institute in California. Every machine there had GNU/Linux installed as their sole OS. I also worked for a German research institute - when I started in the 90's it was a bunch of Windows machines, some GNU/Linux, some Solaris. Today with a new generation of college graduates, virtually no-one uses GNU/Linux any more, it's almost exclusively Windows, although a few people have Mac Books. There are a few GNU/Linux compute servers, but they're only rarely used.

What are other people's experiences over the last decade? Any apparent changes in the usage of different OS's?

<comment><USER6> At my workplace, it's about 40% Windows, 40% MacOS, and 20% Linux. Those who use Windows generally use it to ssh and/or VNC into our general-purpose Linux compute servers.

I personally have a Linux desktop as my main machine and a Linux netbook as my portable. I could see Google going the same way with its own employees, since the only things my netbook has to do is connect to the vpn and ssh to my desktop, where I connect to my existing screen session and keep going right where I left off. A Chromebook could do that sort of thing relatively easily.

<comment><USER7> What programs do the Windows devs use as a terminal? When I'm using my windows box I use Console 2 - which is great. But still doesn't compare to Mac OS X or Linux terminals.

Of course using a Linux VM or VNCing into one is the easy solution but it's heavy weight in comparison to having a great terminal app :)

<comment><USER6> PuTTY seems to be the most common.

[edit] Oh, wait, I guess you mean for a local terminal? I'm far too ignorant about Windows to know why a Windows user would even want a local terminal. All the Windows users I polled just log into Linux machines and do their work there.

</comment></comment></comment></comment><comment><USER8> Just last year Google eliminated Windows from their list of OS options for new employees after the Chinese hacks, leaving just OSX and Gubuntu, iirc. No surprise Windows has fallen to 20% then.

</comment><comment><USER9> Two things come to mind:

1) What are they running instead? Linux or Chrome OS?

2) 20% is probably about the number of people who do require Windows in a company. Getting rid of the 20% is the hard part.

<comment><USER10> They are running mainly Mac and Linux. No idea on any particular distro, though.

[http://www.edibleapple.com/google-revamps-new-employee- compu...](http://www.edibleapple.com/google-revamps-new-employee-computer- policy-windows-now-out-of-the-equation/)

Here too, but you've got to be a googler to see it: <http://groups.google.com/group/Google-Desktop-Linux/topics>

It's pretty interesting how the two big enemies both depend on each others innovations in rolling out products. Macs google, and Macs _make_ Google.

</comment></comment><comment><USER11> That actually seems high to me considering how cutting edge they are. I'd think Mac's would be the vast majority, followed by a fair number if linux machines. I'd of expected Windows boxes to account for a tiny amount of testing machines, and maybe a few biz/marketing hold-outs, but even those guys I'd expect to be predominately on OSX and running either bootcamp or VM'd for Windows.

<comment><USER12> Google builds some of the most popular - and in my opinion, exciting - <USER2> software that has ever existed. Between Chrome, Earth, Picasa and others I imagine a decently large number of devs need to work on Windows machines for more than just "testing".

(also, in your post "I'd of" should be "I'd have")

<comment><USER11> No, I meant "I'd" to mean "I would", as in "I would think...".

<comment><USER12> > I'd of expected Windows boxes

<http://www.wsu.edu/~brians/errors/couldof.html>

<comment><USER11> I was actually referring to the first 'I'd think Mac's would be the vast majority...', not the one you didn't reference until above.

Thanks for the link, I'll keep that handy if my copy of The Chicago Manual of Style isn't handy (oh they have a nice website now too, cool).

</comment></comment></comment></comment></comment><comment><USER13> Anyone knows if building stuff like Chrome on Windows is faster than Linux/Mac?

</comment><comment><USER14> He's probably way off.

<comment><USER15> I think you're thinking

Googlers == "People who use Google"

when its actually

Googlers == "People who work at Google"

I know I did at first :D

<comment><USER14> Nope. I wasn't.

<comment><USER16> As somebody who worked at Google until very recently, I can assure you, 20% is more likely an overestimate than an underestimate.</comment></comment></comment></comment>


Never Underestimate the Bandwidth of a Station Wagon Filled with Backup Tapes  - <AUTHOR> http://tidbitsfortechs.blogspot.com/2013/09/never-underestimate-bandwidth-of.html

<comment><USER2> I was told it was a 747 filled with those same tapes, but I guess it depends on the distance traveled who's version is the best.</comment>


Crapcost – The Real Cost of Things - <AUTHOR> https://crapcost.com
The long and boring description
Crap cost is an app that aims to raise awareness to the high level of consumerism of our current society.
Through a very simple approach and without focusing on how much something costs we let the user know for how long he or she must work in order to be able to buy said item. This perspective, we believe, might offer a different look on what things really cost.
We aim to inspire people not to buy more useless things and preserve their time, which is the one truly scarce resource we possess, and the planet!
TLDR;
An app who aims to raise awareness to the high level of consumerism <comment><USER2> I _strangely_ can do the same as your "app" (or "site"?) on a calculator and I am not even that bad at doing it mentally (approximated).

<comment><AUTHOR> It's not strange at all. You can probably mentally track your money and I bet you have a bank account :P

Now seriously, the goal here is for people to install it as a native app on mobile and whenever they are about to buy some crap, just open it and insert the price to "figure out the real cost".

Cheers

</comment></comment><comment><USER3> Yeah.. 2 years and 1 week to buy a Tesla model 3 supposing that I don't buy anything else...

Life is so unfair. haha!

Great idea by the way!

</comment><comment><USER4> Interesting concept as a way to raise awareness. Do you have any plans to further develop it?</comment>


Top three requirements for OTA software updates for IoT - <AUTHOR> https://mender.io/blog/top-three-requirements-for-over-the-air-ota-software-updates-for-iot <comment><USER2> I think these goals are necessary, but not sufficient, solutions to the IoT security nightmare. In particular, they miss the biggest problem that leads to these problems -- manufacturers simply _do not care_.

Many (most?) companies making IoT systems not only don't care about making sure their OTA update systems comply with these constraints, they probably don't even care about implementing any update system _at all_.

Then, even in cases where (rudimentary) update systems exist, such as consumer-grade routers for example, the time frame for when updates are actually available is laughably small -- perhaps 12-18 months after the device's launch?

Approaches which focus on the technical challenges of OTA updates (a key area of my doctoral thesis, and one I care deeply about!) miss the mark, in my opinion, because the primary reasons why we've ended up in this mess in the first place is due to _business_ challenges, not technical ones.

Until consumers actually care about their devices being updated, or legislation arrives to force businesses to care even when consumers don't, improving technical solutions to the problem is putting the cart before the horse.

</comment><comment><USER3> While this article does do a good job of illuminating the potential challenges, it's a bit frustrating that there's such scant discussion of solutions.

IMO, this problem has been solved pretty comprehensively by the TUF framework[1], which has a number of solid implementations[2][3]. Many of these implementations even have reliable third-party reviews, so should be pretty trustworthy.

[1]: [https://theupdateframework.github.io/](https://theupdateframework.github.io/) [2]: [https://github.com/flynn/go-tuf](https://github.com/flynn/go-tuf) [3]: [https://github.com/theupdateframework/notary](https://github.com/theupdateframework/notary)

<comment><USER4> For a solution geared more towards the automotive use-case involving multiple vendors, see Uptane[1], a customization of TUF. The IETF is also working towards a standard for IoT updates[2] which I've found helpful.

[1]: [https://uptane.github.io](https://uptane.github.io) [2]: [https://datatracker.ietf.org/wg/suit/documents/](https://datatracker.ietf.org/wg/suit/documents/)

</comment></comment><comment><USER5> Not sure if I agree with the 'Scalable' section of the article.

As an embedded Linux developer, I appreciate why a company might want to push updates autonomously to their product. But as a customer, I want to choose when/if my device gets updated. I don't want some company to break my device without me knowing about it.

Maybe the right answer is to give customers the opt-in ability to get automatic updates.

</comment><comment><USER5> When buying smart devices for your home, just remember folks- the 's' in IoT stands for security.

</comment><comment><USER6> My reflexive answer before reading the article: "security, security, security." After all: [https://news.ycombinator.com/item?id=22119439](https://news.ycombinator.com/item?id=22119439)

I don't disagree with the list though I'm not sure I would have used "robust" to describe "don't brick the device!" And is scaleability really that big of an issue for updates when these can be delivered via CDN? Just sign the update with the right cert, no?

<comment><USER7> Nearly all iot stuff we make at work are air gapped, used on ski places or in industry with strict firewalls etc. CDNs are basically impossible there since even if we could allow a single ip to be routed through from Wan to the iot device, since CDNs don't have a fixed IP

</comment></comment><comment><USER4> I've found the elephant(s) in the room are key management, certificate revocation, and establishing a chain-of-trust from end to end.

These are all problems that cannot easily be solved through one library or service because they fundamentally involve the humans at your company taking responsibility.

Additionally, the article hints at Secure Boot, but a device must also be able to reject old patches, invalid combinations of patches, and untrusted patches - failing to boot _after_ an unsigned update is not a good user experience.</comment>


Custom Reddit Site Builder? - <AUTHOR>

I remember a startup on here a while ago that let users build their own custom reddit sites. I'd like to use this for an open source project to vote on which features to include for the next version. I know there's crowdsound, but there was another cool one that was more reddit like in interface. Anyone know what it is? <comment><USER2> Slinkset maybe? (<http://slinkset.com/>)

<comment><AUTHOR> Yep, thats the one. Thanks mixmax!

<comment><USER3> Let us know if you need help. email@example.com

</comment></comment></comment><comment><USER4> Good news for you, reddit itself is open source. Why use a clone? <http://code.reddit.com/>

<comment><AUTHOR> Not looking to host it. Just a quick hosted instance would be ideal.

<comment><USER5> Why not make a subreddit? They give a decent degree of customizability to subreddits these days.</comment></comment></comment>


Chrome supports TCP & UDP sockets - <AUTHOR> http://blog.alexmaccaw.com/chrome-tcp-udp

<comment><USER2> I checked with our (Mozilla) networking folks and here's what I learned.

This is for Chrome extensions only, not for web content. Mozilla has had an API available to extensions for this for a long time. That is how Chatzilla works, for example.

The Web API team has created a raw socket API for _web content_ that will be used for the Boot to Gecko email client and other non-HTTP applications. For security reasons, this requires an extra permission to be granted by the app store and/or by the user.

<comment><USER3> I think it's important to note as those sockets are NOT standard. Albeit with Nacl and the chrome store it seems that what Google wants, is that users do everything via their extensions, and via their store (bypassing the standard web while thinking they're on it)

<comment><USER4> "everything" seems unfair.

Firefox has had sockets for a while and has also chosen to make them available to extensions only. Even Java Applets back in the day supported sockets only if you jumped through a bunch of hoops (if I recall correctly. it's possible you could only do socket communication with JNLP or something).

As far as I know, NACL is extension/app only as a way of controlling risk to the client.

<comment><USER5> Depends on what you mean by "jumped through hoops". You could open up a socket to communicate with the host the applet came from (lots of fun defining what that meant ;-) without being signed. If you were signed... all best might be off.

</comment></comment></comment></comment><comment><USER6> It's worth noting that while this is becoming available in chrome now, the WebRTC APIs that both Chrome and Firefox are working on (and will likely start showing up in the 3-6 month time frame) is also likely to provide p2p message passing support.

There's a group of people beginning work on porting some of the traditional p2p constructs like DHTs into the browser, for those interested: <http://joincollage.com/webp2p>

<comment><USER7> > the WebRTC APIs that both Chrome and Firefox are working on (and will likely > start showing up in the 3-6 month time frame) is also likely to provide p2p > message passing support.

And most importantly, the WebRTC APIs will be standardized and available on the web, not just for browser extensions.

</comment></comment><comment><USER8> Here's a plug for an existing plugin that brings these capabilities to standard web-pages. Works in Chrome, FireFox and Safari.

<http://sockit.github.com/>

Note that this was a research project. It works, but there's no security, so once installed, any malicious web-page could use your browser to connect to TCP/UDP end-points.

</comment><comment><USER9> Does this mean that one could make a p2p client in NaCl? (as told in the article)

<comment><USER10> Native Client is orthogonal to the APIs mentioned in the article. These APIs are available only to certain kinds of Chrome extensions, and are currently enabled only if several Chrome flags are enabled. If those conditions are satisfied, it should be possible to make a P2P client in JavaScript.

</comment></comment><comment><USER11> It's nice to see Google repurposing Microsoft's project name of "Canary". I'm reminded of this classic Reg article:

[http://www.theregister.co.uk/2002/10/23/were_being_spanked_b...](http://www.theregister.co.uk/2002/10/23/were_being_spanked_by_nokia/)

The codename for the Microsoft phone was "Stinger" until everyone called it "Stinker". Choice quote:

      (Microsoft hates the "Stinker" moniker so much, that it's
      rebranded Stinker as "Canary" - perhaps unaware of the bird's
      history as a sacrificial and disposable early warning system for
      miners. When the Canary dies - you clear out fast).

<comment><USER12> Aside: What a blast from the past .. "Three years ago, a ballistic Bill identified the phone consortium Symbian as enemy number one and this year singled out Nokia for particular attention" and mentions of handsets like " Siemens S55, Sony Ericsson T68i .. Nokia 7650"

</comment></comment><comment><USER13> So he mentions security concerns, but then doesn't explain why they don't apply to this scheme? I assume websockets added the handshake for a reason.

Or maybe is because chrome extensions already have a weak security model and you have to put trust in the author not to sniff all your data and upload it to a server.

<comment><USER14> Extensions are pretty much trusted, as far as I know.

<comment><USER15> Not entirely. Chrome has a permissions system for extensions: an extension needs to declare any sensitive or intrusive APIs it wants to use in the manifest file. Some permissions are even displayed to the user before the extension is installed.

[https://code.google.com/chrome/extensions/manifest.html#perm...](https://code.google.com/chrome/extensions/manifest.html#permissions) [https://code.google.com/chrome/extensions/permission_warning...](https://code.google.com/chrome/extensions/permission_warnings.html)

</comment></comment></comment><comment><USER16> Why are sockets still not a standard web api after all these years? Is a socket in a browser app granted socket permission more dangerous than a socket in a native app? How do sockets in iOS and Android work? Why does the web still not have sockets?

<comment><USER17> Because a Facebook ad could start poking around inside your corporate firewall looking for security vulnerabilities... you can lock down app installs much more than someone accidentally agreeing to allow socket permissions.

</comment></comment><comment><USER18> interesting how something so trivial as sockets (but in the context of a http browser) can stir so much talk of decentralization. maybe if people pull their heads out of their asses about web and embrace native apps again...

<comment><USER19> Agreed. A P2P program with a browser? Come on! We /already have/ wonderful P2P programs. I sense browsers becoming awfully bloated. And for who's benefit? Google's.

</comment></comment><comment><USER20> Wasn't there an ssh client extension already? How did it work if raw sockets weren't available?

<comment><USER21> I believe it was native client with some elevated privileges.

<comment><USER10> This is correct.

</comment></comment></comment><comment><USER22> Listening too? or just outgoing connections?

<comment><USER23> It is still not implemented.

[http://src.chromium.org/viewvc/chrome/trunk/src/chrome/brows...](http://src.chromium.org/viewvc/chrome/trunk/src/chrome/browser/extensions/api/socket/tcp_socket.cc?view=markup) \--8<\-- int TCPSocket::Bind(const std::string& address, int port) { // TODO(penghuang): Supports bind for tcp? return net::ERR_FAILED; } \--8<\--

</comment></comment><comment><USER24> By combining the browser p2p technologies that are being introduced with the local storage stuff, you could presumably write a web app that serves itself and maintains persistent connections and functionality between users, even if the host is taken down.

Now that could be very useful...

</comment><comment><USER25> xss + tcp and now udp websockets. match made in heaven.

<comment><USER26> This isn't anything to do with websockets.

These are raw, unadulterated sockets -- but only available to Chrome extensions, not normal web pages. I'm pretty certain Mozilla extensions have been able to create sockets for a while, and the sky hasn't fallen yet.

Edit: [https://developer.mozilla.org/en/XPCOM_Interface_Reference/n...](https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsISocketTransport)</comment></comment>


Automated Testing as an Agile Enabler - <AUTHOR> https://www.scriptrock.com/blog/automated-configuration-testing-agile-infrastructure-enabler/

<comment><AUTHOR> Great, I'm already getting flamed by coworkers for that title. Probably fair :)</comment>


Blacklists, ahoy PROTECT IP Act sails on to Senate floor - <AUTHOR> http://arstechnica.com/tech-policy/news/2011/05/blacklists-ahoy-protect-ip-act-sails-on-to-senate-floor.ars

<comment><USER2> The scariest thing in this bill comes from the detailed summary.

"[A recent addition] responds to concerns raised that search engines are part of the ecosystem that directs Internet user traffic and therefore should be part of the solution."

They'll try to make linking illegal. Maybe not this year. But it will happen.</comment>


Subsurface – An open source scuba dive logging platform - <AUTHOR> https://subsurface-divelog.org/ <comment><USER2> Imagine Linus trying to get a job. "So we like that you created one of the most popular operating systems ever, and your version control system is also very nice. But do you only have two projects in your portfolio?"

"Those two take up most of my time, but I also have this scuba diving app."

"This is great, it shows that you can ship a full product. You should have led with this."

The moral of the story is that this is like seeing a finger painting made by Leonardo da Vinci. It's cool, but I expected something different. Like, it's just too normal compared to the other things Linus' name is attached to.

<comment><USER3> As far as I can tell, Linux is the most popular operating system if you take into account everything that runs Linux, including Android phones.

<comment><USER4> Tanenbaum claims (or did, a few years ago) that the most popular operating system is Minix.

Obviously it's impossible to prove one way or the other...

<comment><USER5> It's very likely the most popular OS shipping today on desktops, laptops and servers. All Intel chipsets post-2015 are running MINIX 3 internally in the Intel Management Engine.

<comment><USER6> It's not the most popular overall because the largest number of CPU chips in the world are ARM (phones and other devices) which don't have embedded MINIX.

You could argue that the most popular shipping OS is the BIOS, or hard drive microcode.

</comment></comment></comment></comment></comment><comment><USER7> Quoting their front page:

> In fall of 2011, when a forced lull in kernel development gave him a chance > to start a new project, Linux creator Linus Torvalds decided to tackle his > frustration with the lack of decent divelog software on Linux.

> Linus worked with a team of developers, and Subsurface is the result. It now > supports Linux, Windows and MacOS and allows data import from many dive > computers and several existing divelog programs. It provides a quick and > easy way to see the key information provided by a modern dive computer and > lets users track a wide variety of data about their dives. In fall of 2012 > Dirk Hohndel took over as Subsurface maintainer.

> License: GPLv2

<comment><USER8> > In fall of 2011, when a forced lull in kernel development

Can anyone speak to, or link to, what this is referencing?

<comment><USER9> "It was originally just me. I've never logged my dives, because I didn't see the point. Some people do it for the numbers, others do it because they want to do things by the book (literally), and some people seem to just collect the dive shop stamps. For me, the paper logbook just didn't make sense.

At the same time, I'm a huge believer in dive computers. The first piece of scuba equipment I bought was a Suunto Gekko, because while I'm fine renting everything else (I'm apparently very regular sized, and I've never had issues with mask fitting etc either), I also think it's stupid to do dive tables when a dive computer can just do so much better.

So I had my dives logged on the computer, but the Gekko would only remember profiles for about 20 dives or so. So I did want to download, but the Suunto downloader only worked on Windows, which I don't have, and didn't work for the Gekko anyway. I looked into a few projects, but they really didn't work at all.

And then we had problems with kernel.org, and for a couple of weeks there was basically nothing kernel-related for me to do until the infrastructure was cleared up, and I started writing something to save an electronic log-book. It actually started with just parsing some XML that I had from a Suunto export that Dirk had done for me—I think I had given him my Gekko because I had upgraded to a Vyper Air, and he had saved the dives I had on it using the Suunto app and exported them as xml, so I had some data that I wanted to look at."

[https://divelog.blue/linus_torvalds.html](https://divelog.blue/linus_torvalds.html)

</comment></comment></comment><comment><USER10> I think the "by Linus" is a bit much. He was the founder of the project but others did a lot too. Dirk Hohndel has been the project lead for a long time already.

<comment><USER7> Check their homepage (just click on the link above). The project itself gives Linus the spotlight.

<comment><USER11> And why wouldn't they...it's not exactly a bad endorsement.

</comment></comment></comment><comment><USER12> I can't speak for Subsurface's desktop/CLI apps, which I've not used, but I found the mobile app to be very disappointing. The UI is absolutely atrocious, to the point of being unusable, unfortunately.

I've been using the commercial Dive Log [1] app for many years, which is okay, but for my type of recreational diving, it requires a lot of manual data entry for each dive. It's got plenty of "pro" features, but lacks obvious features relevant to recreational diving. In particular, its location support is awful -- a good dive app really should be built around a central dive site database so that the dive app becomes useful not just after a dive (to log your dive) but also before (to read about the under- and over-water geography, local wildlife, etc.). Dive Log doesn't even know about countries -- you have to enter them manually!

Having tried a lot of these apps, they are all pretty bad, and very few of them are free. I think the worst one I've encountered is the official PADI app. I've still not figured out how to edit a previously logged dive in that app.

[1] [https://apps.apple.com/us/app/dive- log/id301049600](https://apps.apple.com/us/app/dive-log/id301049600)

<comment><USER13> > I found the mobile app to be very disappointing. The UI is absolutely > atrocious, to the point of being unusable, unfortunately

Just to provide another anecdote, I have been pleasantly impressed by the (Android) mobile app. I wonder if there are significant UI/UX differences between iOS and Android apps? I don't log my dives through the mobile app which may be where the experience disparity lies. But having a quick reference before a dive of what weight I used on the last fresh water dive or what has been my air consumption at this depth in the past is pretty handy.

As for the desktop apps I've used both the Linux AppImage and the MacOS versions and find them both pretty nice to use. The fact that the dive log data is stored locally in XML makes manual tweaks super easy, for example copying over a subset of dives from a watch dive comp to my main intergrated's dive log file after a vacation.

</comment></comment><comment><USER14> It uses CMake, Qt, and is written in C++. GitHub is the official source code upstream ([https://github.com/Subsurface- divelog/subsurface](https://github.com/Subsurface-divelog/subsurface)). The licence is GPLv2.

This is interesting to me. I don't exactly remember the arguments, for Linux, Linus was always very clearly against C++. He could have also chosen Gtk, and then write the app in C.

<comment><USER15> Originally it was C and used GTK+, but cross platform needs drove it to Qt and thus C++. And CMake is the most popular cross-platform C/C++ (meta) build tool, so no surprise there.

<comment><USER16> Here's an explanation of those needs:

Gtk to Qt - a strange journey [https://www.youtube.com/watch?v=gGZyVSOnqm0](https://www.youtube.com/watch?v=gGZyVSOnqm0)

 _" Presenter(s): Dirk Hohndel"_

<comment><USER14> It seems this was posted a few times to HN already (I just posted it again: [https://news.ycombinator.com/item?id=20746962](https://news.ycombinator.com/item?id=20746962)). Quite interesting.

Some of the messages:

* Their GTK code became very fragile, such that they did not wanted to touch it anymore, and could not implement new features.

* The GTK community was/is not helpful.

* The Qt community was/is very helpful.

* Qt documentation is much better than GTK.

* The Qt frameworks has more to offer (basic data structures, etc).

* CMake is much nicer and easier to understand than just raw makefiles (but somewhat unrelated to Qt vs GTK).

* The model and view system/framework in both Qt and GTK is somewhat/completely broken.

* Qt Creator makes live easier, compared to Emacs (at least for C++/Qt development).

* Qt is nicely encapsulated, in contrast to GTK.

</comment></comment></comment></comment><comment><USER17> I wish a passion project like this could be adopted into the PADI certification app.

The official app has a horrendous UI, and _requires an internet connection_ to function, which basically makes it unusable in a huge number of places that are worth diving at.

<comment><USER18> First time I tried logging with it was 3km off the coast of Mozambique. Which obviously failed. And I've not found anything else I liked before or since so all my logs are still on paper.

I have very specific ideas about tagging my dives so I should really just stop complaining and write something...

</comment></comment><comment><USER19> I think this shows that everyone can use a side-project :-) I'm not sure how active Linus is on it anymore, but I know and worked with some of his maintainers there.

My claim to fame -> [https://github.com/Subsurface- divelog/subsurface/pull/1136](https://github.com/Subsurface- divelog/subsurface/pull/1136)

[https://github.com/Subsurface- divelog/subsurface/pull/1988](https://github.com/Subsurface- divelog/subsurface/pull/1988)

<comment><USER20> I use regularly another of the side projects of Linus: [http://torvalds- family.blogspot.com/2010/01/embroidery-gaah....](http://torvalds- family.blogspot.com/2010/01/embroidery-gaah.html). My wife has thousands of embroidery files that are nicely displayed in gnome explorer.

</comment></comment><comment><USER21> Always cool to see projects like this. Feels like you gain a little more insight into the hobbies and lifestyles of the prominent figures who usually only appear in news related to their famous technologies. Plus, seeing Linus as a contributor is kind of a subtle seal-of-approval as far as the quality of the software.

</comment><comment><USER22> Yesterday, while googling around to gather clues for reverse-engineering the protocol for a Garmin smart watch, I stumbled upon an e-mail on a listserv, discussing pieces of Garmin BT communication. Only after a while I noticed it had been written by Linus, who apparently worked on diving software. Now this appears on HN frontpage. I wonder what prompted the OP...

</comment><comment><USER23> Is it a better experience over SSI app? I am not a expert diver, but used that app during my open water certification and it was painful for me as a developer, though I was surprised people made their peace with it.

<comment><USER24> I use the SSI app every day and it is truly painful. I wish I could just fix it for them.

I always encourage my SSI students to paper log instead.

</comment></comment><comment><USER25> A lot more detail on the platform: [https://www.youtube.com/watch?v=WT_hOTO88Sg](https://www.youtube.com/watch?v=WT_hOTO88Sg)

</comment><comment><USER24> Never knew Linus was an avid diver, definitely going to give this a shot when I get back to my dive center tomorrow.

Kind of regretting buying a nice new logbook the other day.

<comment><USER26> All these years I been programming I thought I was at least a better scubadiver (non technical but since being 13 years old) assuming Linus doesn't even have time for sports, and then today I find out he is not only diving on mixed mixtures (technical deep dives) but also wrote a software that is 10 times better than anything out there related to diving. Sheesh.

Anyways, to make this post worthwile something: if you haven't tried yet, please take a scuba-dive dip. Only once with instructor. I have passed on this great sport to so many of my friends - there is only one outcome when you go take a breath underwater - you either hate it and never try again, or you will get addicted and open yourself up to a brand new world of adventures :)

<comment><USER24> I've been diving most of my life as a hobby, but a few years ago I decided to give up software and start diving professionally. It was the best decision I've ever made.

Now Im not wealthy by any metric other than quality of life.

</comment></comment></comment><comment><USER27> What is the best Android app for this ? Anyone know ?

<comment><USER28> The official one?

</comment></comment><comment><USER29> The first time you look up from 10m down, and realise you are breathing, is quite surreal. I'd recommend it.

<comment><USER30> Counterpoint: it took all of my concentration to not freak out while attempting to scuba dive. I like swimming, snorkeling, and wetsuits, but my first try at scuba diving was viscerally unpleasant.

Anyone else have a bad experience the first time and ended up liking it after trying again? I'm wondering if it is worth trying again...

<comment><USER31> I haven't dived all that much, but the initial submersion with empty lungs is super unpleasant every time, the urge to draw air is super strong. After I'm under I'm 100% fine with it and just don't think about the whole thing. I've only dived drysuit, maybe submersion is easier without.

<comment><USER32> I suspect not. I get the same experience with a wetsuit. And I've seen it happen with dozens of people on their first dives. Once they get down and stay down for a minute or so, they begin to trust that there is in fact air in the regulator, and that it will continue to be there. Until then, they'll fight panic every time.

Different people get over it at different rates. Some never do.

</comment></comment></comment></comment><comment><USER33> I've been using this for a few years now, didn't know Linus Torvalds was involved!

</comment><comment><USER34> Does this use UDDF, the open standardized log data exchange?

</comment><comment><USER35> Any interesting technical implementation details?

</comment><comment><USER36> Written in C++ and Qt, ....

<comment><USER37> So, it actually has great performance?

<comment><USER36> I guess you haven't learned about Linus relation to C++.

</comment></comment></comment><comment><USER38> Is that like git for the world of scuba diving.

<comment><USER13> The irony of this comment is that Subsurface does in fact use git under the covers for online syncing. So yes, this is git for the world of scuba diving :)

</comment></comment><comment><USER39> This is close to my dream: Forcing the likes of Linus, Stallmann, fefe and a few others of their level down to my level and lock them in a room where they only are allowed to leave once they've finished their MVP for a SaaS app.

I'd love to see them getting to v0.1, following their iron hard principles.</comment>


Show HN: CSS Buttons Generator for your pleasure - <AUTHOR> http://www.dextronet.com/css-buttons-generator/

<comment><USER2> I like this. It's simple to use, looks good, and the sliders adjust appropriately as the button's size changes.

Edit: One complaint. It should really be a <button>, not an <a>. (Edit 2: It works just the same as a <button>, though)

</comment><comment><USER3> Iffy about this. There's no option to change the gradient or shadow--these styles done here look a bit overdone, personally for my taste as a web designer.

</comment><comment><USER4> This is great! Maybe add an option to adjust the font-family, but other than that this is just what I needed.

</comment><comment><USER5> Thanks, I'm already using a button on my website. One thing you might want to change is clicking on the button in the preview window brings you back to the same page, resetting all of the changes you've just made.

<comment><AUTHOR> Hello, Thank you! I fixed the preview button.

</comment></comment><comment><USER6> Very cool, will use it in the future. The one thing that gets me to use this one [1] is pre-selected themes that I can choose from, since I suck at getting the right colors/shades in order. Perhaps you can add that feature...

[1] <http://www.cssbuttongenerator.com/>

</comment><comment><USER7> Looks great but I'm having issues with it in Chrome. Only the text will update. Nothing else changes and when I click to get the code the new page just says "Loading the code..."

<comment><AUTHOR> It seems something is wrong with the javascript. Please, what Chrome version do you have? Would you check the console for errors? It works ok in mine. Thank you!

<comment><USER7> I'm using version 21.0.1180.79 on Windows Vista. Any time I try to do something I get this in the console:

Uncaught TypeError: Property 'css' of object [object Window] is not a function button.js:349 $.extend.paint button.js:349 $.extend.repaint tweaker.js:121 editorChange tweaker.js:102 f.event.dispatch jquery.min.js:3 f.event.add.h.handle.i jquery.min.js:3

</comment></comment></comment><comment><USER8> Great looking button, but I have a strange aversion to stuff like this as I normally equate them with the worst examples of web advertising.

</comment><comment><USER9> This is really wonderful. I particularly like the ability to add two lines of text to the button.

</comment><comment><USER10> Thank you. I appreciate you doing this for us.

</comment><comment><USER11> Great way to get some good looking buttons.

</comment><comment><USER12> These look nice. My only recommendation would be to drop the hsl() border color, to get better fallback compatibility with IE.</comment>


Ask HN: Is the Hacker News site is a little less responsive? - <AUTHOR>

Over the last few weeks, the HN website has been a little slow for me. Loading the homepage takes a good amount of time. I was wondering if this was the case for most people or if I was simply imagining it.<p>I love Hacker News, and would love to help in any way that I can if indeed there is a problem. I also wanted to thank Paul for putting up this website and building such a fantastic community around it. <comment><USER2> yup, definitely a little slow for me.</comment>


Chris Pepper Responds to Paul Graham on Programming Jobs - <AUTHOR> https://medium.com/@reppep/paul-graham-appears-confused-about-supply-and-demand-labor-and-visas-and-great-programmers-d1d4854bc928

<comment><USER2> Original page title was "Paul Graham Appears Confused about Supply and Demand, Labor and Visas, and "Great Programmers""</comment>