Ask HN: Teaching programming to a 10 year old, and I'm kind of lost - <AUTHOR> Basically, I was wondering what would be the ideal introduction and flow to teach this - ideally it would start out easy and the more engaging the better! Obviously it makes no sense to try and force something if the kid isn't interested, so help me make it interesting and easy to understand!
I was thinking
-Scratch or Alice for the basic concepts
-Then either learnpythonthehardway, diveintohtml5, diveintopython3, ruby+shoes (hackety hack) (thanks to the respective maintainers/creators of these apps/sites)
Any comments (with or without experience) would be appreciated greatly, as I am unsure which of these would be most appropriate for a complete beginner, or whether there is something else that would be more suitable. <comment><USER4> A couple of random thoughts:

When we got our first computer, my then husband was excitedly explaining to me how to do stuff on it. I stopped him and said 'Where is the on switch??" My point: You may need to scale things back to where she is from your current vision.

Also, I recently showed my two sons a little html and css. My oldest has been wanting to learn a programming language and not finding anything intelligible for the way his mind works. A few minutes of demonstration and the light went on as to what kind of info he needed, which he promptly began looking up. We also used analogies using video games to provide some mental models for it. So if you run into any hitches, consider trying to adapt to her learning style and using something she is familiar with to provide examples.

Good luck. And I still want to learn a programming language, so would love to hear how this goes.

</comment><comment><USER5> Umm well if you have the money go for lego mindstorms, if I was a kid again I'd want to play with legos and robots. (Hell they are still cool)

<comment><USER6> And if the kid gets bored of the visual programming language that goes with Mindstorms, try setting up NQC for him/her:

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

</comment></comment><comment><USER7> Step 1, learn to elide almost everything except what you're actually teaching. This is surprisingly harder than it sounds and often involves saying things that are technically untrue.

Step 2, teach the things required to do tasks.

For a child, you should focus on things that they can understand the output of. Sound, animations, pictures. Turtle/logo is a fantastic platform in this regard.

For, well, everyone, you need to ensure that what you're teaching is what they're interested in. If they're not excited about moving a cursor around a canvas, then they won't learn anything.

You'll know you're teaching correctly when they start doing things on their own that you didn't expect.

Sean

</comment><comment><USER8> Turn off the computer for a while, use analogies, and remember that children rely on different modes of thinking:

<http://carlos.bueno.org/2010/07/corrupting-the-youth.html>

<http://csunplugged.org/>

Also, please email me (in my profile). I'm working on something in this area, and I'd love to have some more kids to use as guinea pi-- er, research assistants.

</comment><comment><USER9> Hackety Hack still exists <http://hackety-hack.com/>

I've taught several people quite new to computers Ruby and HTML, I've found the hardest thing they try to grasp is logic, drill into their head how conditionals and boolean logic work - it's needed everywhere.

EDIT: I can't stress this enough, I've had people where I thought I've made a break through, they seem to grasp it, then two weeks down the line I look at some code they're trying to debug, and it's like they completely forgot how flow control and conditionals worked.

<comment><USER10> Thanks for mentioning it, and thanks to the OP for the thanks. ;)

Hackety is designed for people that are absolute beginners at the moment, and I plan on making more 'intermediate' and 'advanced' things later. We're still pre-1.0 for another few weeks, though, so there still might be a few small rough patches. Specifically, soon it'll just be one program, rather than downloading both Shoes and the hackety.shy.

</comment></comment><comment><USER11> First, before you ever turn the computer on, you should explain to them how computers work from a high-level that a kid can understand - i.e. how they are dumb, and they just follow instructions that we give them, and how those instructions are what's known as the program, etc.

Then I would suggest starting out with Hello World in Javascript. Javascript is straightforward, relatively forgiving, and it's on every computer, so it's basically the modern-day BASIC in my opinion. Show them what happens when things go wrong, not just when things go right, in order to drive home how computers are really just slaves to our directions.

Then maybe have them start working on a game, one piece at a time. Kids like games, after all. Maybe something simple like Tic-Tac-Toe or a Pong clone. The main advantage here in using Javascript is that they can email it to themselves and then play it anywhere with no need to set anything up - <USER2> can also continue to tinker with it on any computer after the teaching is over.

</comment><comment><USER12> What does the 10 year old want to program? Most likely a game, which is challenging but which fortunately may be satisfied by a working snake or Space Invaders rather than requiring stereoscopic 3d with a physics engine. But a simple interactive graphing calculator can be just as much fun as a game. Tools and diagnostics are good too - instead of teaching arbitrary-seeming practices for problems the kid has not encountered yet, let them run into the problem (eg having to check the dimensions of the window on loading) and write a tool to make the computer do the work.

As a kid, I found the logic relatively easy, and the control structures moderately easy. Abstraction and complex types were the difficult part for me, and I still tend to evolve them by trial and error rather than defining them in advance (though having done so, I usually enjoy refactoring as soon as I have a working prototype).

<comment><USER13> <http://inventwithpython.com/> this isn't a bad book for teaching those simple games.

<comment><USER12> It's very good - I had an earlier unfinished version. Thanks for reminding me of it, it's expanded considerably since the last time I saw it.

</comment></comment></comment><comment><USER14> The two vital things you can help a kid with are:

1\. Setting tasks that are within reach but will stretch his ability (and getting his buy-in on the idea before you start)

2\. Teaching him how to find the answers to his own questions

I'd do all the setup yourself so the kid can jump straight in to producing something. I'd use FTP as it's easy to conceptualize. Avoid the command line and version control.

I'd start with HTML (written in Notepad) so that you can learn to present any data output. Just teach basic tags: h1, p, table, a href. Use w3schools for reference. Build something like a 'My Family' website with a page for each family member and links to the others.

Then maybe stir in a bit of CSS - again just basic stuff (colors, borders, positioning) and again using w3schools for reference. Use this to make the My Family website a bit prettier.

Then try some PHP/MySQL. You could save each family member in a table and use one PHP file to display each one based on an id specified as a get var.

Simple project ideas to try after that could be a simple CMS or (my favourite) a very basic Twitter clone.

</comment><comment><USER15> Logo worked for me. If you want to teach a "real" language (Logo is practically a LISP! It's real!) then Python has a turtle module.

<comment><USER16> Another Logo fan here. I still haven't found any other environment that makes me wonder about the power of computers as Logo did. I was 7 to 10 years.

<comment><USER17> Cory Doctorow called Squeak "logo for the 21st century."

        http://squeak.org/

</comment></comment></comment><comment><USER18> I'd avoid Dive Into Python and HTML5 -- both are intended as quick-start guides for those specific technologies, not as general programming tutorials. They won't make a lick of sense without significant prior programming experience.

<comment><USER19> About Dive Into Python: <http://oppugn.us/posts/1272050135.html>

<comment><USER18> I wouldn't go quite that far, but it certainly isn't for beginners.

</comment></comment></comment><comment><USER20> I personally started by learning basic when I was about 9 or 10 years old...thing that got me interested was an open source game I used to play a lot. I accidentally stumbled onto the knowledge that changing the voodoo magic text at the beginning before launching the game (it was written in QBasic i think) managed to change things around in the game itself. If they like games, that could be a good way to start? It gives early rewards, as they're modifying something that already exists. From there I started getting ideas of things I wanted to make myself...and just experimenting here and there.

</comment><comment><AUTHOR> Wow, I am speechless at the amount I have learned from these replies, thank you all so much - and keep them coming ;)

I am teaching my 10 year old sister, but I don't really know much at all myself - I wish I had back then though, hence why I am teaching her.

She is learning just for the knowledge, with the aim of being able to use it as she needs - inspired by <http://news.ycombinator.com/item?id=1299227>.

I was thinking of something like this then, from the responses:

scratch/alice->hackety hack->lpthw/invent w python->how to think like a cs/a byte of python->tools/vim/emacs/vcs (?)->google code uni?->django book

Echoing Zed Shaw here (from the link about Dive Into Python, which was extremely helpful for me): what are some decent intros to all the tools used - eg git/vcs, emacs? This is as much for me as it is for her.

Any thoughts on this flow and the choice of resources, especially those with /options/?

hackety hack->?->rails guides? (what would be a similar path for ruby?)

And if this seems to be going a bit deeper than the original scope - it is - <USER3> suppose the latter bits are more aimed at teaching me and my brother. I have coded some vb6 before, and he hasn't done anything, but we both want to learn.

For us, we want to learn how to build websites first, so I was thinking:

Sitepoint tutorial ([http://articles.sitepoint.com/article/html-css-beginners- gui...](http://articles.sitepoint.com/article/html-css-beginners- guide\)/htmldog) (beginner html+css)/w3schools->w3schools for html5/diveintohtml5

</comment><comment><USER21> My 8 yr old has been doing lpthw with some success. I'm partial to that method since I learned by typing basic listings in from books when I was a kid.

</comment><comment><USER22> My son started on Scratch when he was 8 and I think as far as looping and conditions are concerned, it's top notch. Just having that understanding of how a computer works through a problem and dispatches messages and acts on those messages is priceless.

</comment><comment><USER23> When I was 10 my dad taught me if else and how to make dialogue boxes in visual basic. My imagination did the rest.

So my advice is teach something that is practical and understood by the 10 year old. That's the best way to keep him/her interested. No point teaching stuff and telling him/her to have faith that one day it will be useful. That's not effective! You can let college do that later. But right now it's best to show the cool stuff to really get that interest going. So you don't necesarily have to start with the basics. Something cool, show him/her how to tweak it, voilà.

</comment><comment><USER24> If the kid doesn't seem interested in learning a general purpose, turing- complete programming language (a lot of kids don't at that age), then don't try shoving it down as throat.

Instead, get him into languages that have a limited instruction set. this link:

<http://marshallbrain.com/kids-programming.htm>

came my way a while ago, and it has a few examples of things that you could use. Light-bot should be a lot of fun for most kids, and it could give kids a good foot hold into greater abstraction.

</comment><comment><USER25> Take a look at mbed (<http://mbed.org>). It is designed for very rapid development (12/13 year olds were the test subjects, I think) and so abstracts a lot of the very hard stuff - but shows the basic concepts of microcontrollers. It has the benefit of allowing physical things to be controlled, like flashing lights.

Whatever happened to the expansion ports on home micros that provided full access to the microprocessor's bus? The BeBox's geek port was such a good idea...

</comment><comment><USER26> I put together a website collecting links to various programming languages/environments specifically targeting children (if anybody wants to make a prettier stylesheet for it, let me know):

<http://www.happynerds.net/>

Generally I'd advise starting with something interactive and fun, like eToys or Mindstorms. After that a project like Hackety Hack, Löve or Processing might be a good bridge into more "serious" programming. Some people also seem to like the HTML and JavaScript approach, because the development environment (a browser) is available virtually everywhere and it has a very short feedback cycle. I'm not too convinced of that, but YMMV.

Once your kid has the basics down, possibilities are almost endless. There's a plethora of freely available books (legally), of which I compiled a small subset here:

<http://citizen428.net/archives/434>

I'm also involved in teaching Ruby courses on RubyLearning.org, and while definitely not targeted at 10 year olds, our core Ruby course should be doable for a motivated teenager willing to learn.

Whatever you do, I think the most important thing is to focus on the fun. If kids enjoy what they do, they can learn super fast and will happily come back for more :-)

</comment><comment><USER27> I learned programming through SilverCreator (<http://www.silvercreator.net/?action=downloads>) when I was younger than 10. SilverCreator is not updated anymore, it's only for Mac, the official website doesn't explain much about it, and there might be a few bugs, but nonetheless it's a fun game-creation system.

It uses a card-based model where each "card" has an image area and a text area, plus buttons along the bottom, and you can switch between cards easily. You can start the kid off just implementing a guess-the-number game using dialogue boxes or the text area. There are built-in drawing tools for drawing to the image area, so it's easy to create a simple choose-your-own adventure game and use the buttons along the bottom to switch screens. SilverCreator is made in REALbasic, and the programming language it uses is basically a slightly-more-easily-parsable version of REALbasic that uses global functions for everything. All code is started from an event, usually either a button click or entering a card. It's missing some nice features for more advanced game creation, especially detecting whether a key is down or not (though it can detect key press events), but it supports sprites, sound effects, and even network connections with a simple API. The documentation for the programming language can be accessed from the program's Help menu – many people have trouble finding it.

I created a Mayan number system translator, Collatz conjecture tester, Pong clone, and P2P chat client using SilverCreator, to give you an idea of what's possible. You can check the forums on the SilverCreator site to view more examples of games or to ask for help.

</comment><comment><USER28> I taught 3 Bootstrap courses last year to middle-schoolers, with pretty good success. Bootstrap is an introduction to functional programming in Scheme. The students write simple callback functions to implement animation and collision detection in a 2D side-scroller video game framework.

I think it's a pretty good introduction to programming for kids of middle school age, though it assumes familiarity with elementary algebra and the Cartesian coordinate system. Others have taught it to students in the 5th grade, who had no prior algebra experience, though I can't personally vouch for how effective it is for those students.

I modified the standard Bootstrap curriculum quite a bit as I went along, removing the written workbook exercises completely (my students hated them), and replacing them with interactive programming exercises. I replaced some of the least-engaging programming exercises with some of my own creation. For example, I designed a lolcat image macro exercise for the "Introduction to images and strings" lesson. It was a huge hit: kids were making screenshots of their images and sending them to friends. I also added support for projectiles, background music, and user-defined sounds to the standard 2D game engine, in order to make the final games more compelling.

In the future, I think I'd rather use a problem- or project-based approach to teaching introductory programming, but Bootstrap is the best freely available, structured curriculum I've found so far. My main frustrations with it were the written workbooks, which I eventually dropped, as mentioned above; and the fact that I only had 10 90-minute sessions, meeting once per week, to teach it. That's barely enough class time to get through all the material, even if things go perfectly smoothly. It's definitely not enough time to give students the opportunity to explore and experiment on their own, nor especially to fail and then learn from those failures, which, in my experience, is the most effective way to grok programming. However, the compressed timeline was a limitation of the after-school program I was teaching in, not Bootstrap per se.

Find out more about Bootstrap here: <http://www.bootstrapworld.org/> I'm happy to give you my modified Bootstrap framework (with projectiles, etc.) and the Keynote slides I used for my lectures. The slides have very few words; they're mostly animations, diagrams, and images intended to reinforce the oral lecture.

I also "taught" a couple of Scratch sessions to middle-schoolers. You don't really teach Scratch, though; in my case, it was more like giving a 10-minute demonstration of building a simple Scratch program, and then turning the students loose, and giving them a bit of assistance when they got stuck.

Student engagement with Scratch is typically much higher than with Bootstrap, in my opinion. My Scratch sessions were each about 2.5 hrs long, and almost all of the students kept experimenting from start until finish, with 3 or 4 even staying an extra hour afterward during their free period. However, personally, I think I'd move on pretty quickly from Scratch to something capable of procedural abstraction, if a student showed a continued interest in programming after a month or two of Scratching. Among other issues, there's simply no means for students to create their own blocks in Scratch, nor to encapsulate groups of blocks into larger blocks. However, I just heard from a friend that there's a new version of Scratch coming, code-named Sage, I think, that will provide at least some of this missing functionality.

Scratch certainly requires less effort on the instructor's part than Bootstrap. Scratch includes a ton of assets, for one thing. With Bootstrap, when your student(s) come up with a game idea, you might have to help them find images, and then do some Photoshop work to extract them from their backgrounds, scale them, etc.

<comment><USER28> Oh, one more thing I forgot to mention.

Another problem with Bootstrap is that the students seem to be quite confused about control flow. They don't understand how the whole process starts, proceeds, and then repeats itself. The confusion occurs because the students are only writing callbacks, and are never exposed to the event loop of the game engine.

Scratch does not have this problem. Scratch programmers are entirely responsible for deciding how events are sequenced (when they need to be, at least; without explicit sequencing, everything in Scratch executes in parallel by default, which is how the real world works and is therefore familiar).

I think understanding control and/or data flow is a crucial concept for introductory programming. It helps the student develop a complete mental model for how programs, when executed, create dynamic processes. For my Bootstrap classes, I came up with a pretty silly real-world scenario in an attempt to explain to them what Scheme and the game framework were doing behind the scenes, to give the students at least some sense of "who" or what was causing their functions to execute, but I'm not convinced they really understood it. There was a bit too much magic going on for my liking.

<comment><USER29> This reminds me of when I was 10 years old and got a copy of Think Pascal for the Macintosh. Previously I had done the usual AppleSoft BASIC, Logo, and even some Assembler and HyperTalk. But GUI programming stopped me short—partly due to the unattainable cost of InsideMacintosh—but mostly because the basic control flow was an inscrutable mystery to me, with nary a mention in any documentation I could find.

</comment></comment></comment><comment><USER30> I learnt HTML at 10. My grandad taught me that, then I went on and used w3-schools to continue learning. I think that's a very good starting place.

</comment><comment><USER31> I'm with dpcan on this one. I started my current 10yo on Scratch at 8 and have been giving him incremental "challenges". The immediate feedback for even his first "program" was enough to keep him hooked. He regularly keeps making new games and often pushing the system to its limits (Scratch has many annoying limitations if you're a seasoned programmer or even a kid who has figured out that something like an array - he wouldn't use that word, tho - would be useful).

He started 5th grade last week and one of his classes is a programming class which uses MicroWorlds - <http://www.microworlds.com/> \- as the learning platform. I grabbed the demo and _may_ shell out the $100 for the home version, just so he can do stuff here in it as well. It's not a horrible system, but it's definitely rough around the edges.

I fully expect to have him starting in Python by 6th grade, tho.

</comment><comment><USER32> Microsoft makes a kind of neat kid-oriented environment called Small Basic: <http://msdn.microsoft.com/en-us/beginner/ff384126.aspx>

Worth a shot. If you check out the blog, there are a number of tutorials available as well that can help kids get started.

</comment><comment><USER33> <http://edu.kde.org/kturtle>

i created kturtle for this purpose. on most linux distros it is available as kturtle, kdeedu-kturtle or kdeedu.

kde also runs on windows: <http://windows.kde.org>

i learnt programming by MSX-LOGO in dutch (my mother tongue). when i got into free software i decided to create an open source LOGO-like application to enable these days kids to have a smooth start as well.

personally i dont like point-and-click programming, as i belive programming is coding and therefor needs a keyboard.

good luck!

</comment><comment><USER34> I've done some Scratch stuff with my 10 year old (he was 8-9 at the time). It is a good starting place for teaching some of the concepts like looping, objects, and messaging. If nothing else, it is a good way to visualize those, even if you turn to something like Python for "real work".

I would start by asking him/her what she/he wants to do. Pick the tool that fits best. Want to build a game? Start with Scratch because it teaches the actor-based programming that you want to use for games.

Hard to give more advice without more specifics.

</comment><comment><USER35> FWIW (no teaching experience here): In Russia, they're using Pascal to teach programming although I would try to explain programming in some basic abstract concepts.

Like: Program is a list of instructions for computer to do and variable is a "box" where some value is contained.

To make it more engaging you probably need to homebrew some nice and easy to understand demos. Random idea: write a simple graphical library for visualisation for your favourite language to use with your demos.

</comment><comment><USER36> Do some web stuff with basic HTML/JavaScript/PHP or Flex. Having a command line program that adds two inputed numbers is great and all, but having two input boxes and a submit button followed by showing the answer to the side is much more entertaining. (If you go the JavaScript route I'd recommend something like ExtCore as a library instead of raw 'ajax' and so on.)

</comment><comment><USER37> Read Seymour Paperts book Mindstorms

[http://www.amazon.com/Mindstorms-Children-Computers- Powerful...](http://www.amazon.com/Mindstorms-Children-Computers-Powerful- Ideas/dp/0465046746)

The main point is to have children do something they understand from the real world and have a physical relationship with. That way it won't feel as abstract.

</comment><comment><USER38> Probably not a popular opinion, but I found BASIC a nice way to learn about programming when I was around 10. Especially line numbering and goto's seemed intuitive and although I wrote lots of spaghetti-code, I'm glad I learned using a model that somewhat resembled how machines actually execute code.

</comment><comment><USER39> Check out Kojo (a tool that I have been developing and teaching with for the past few months):

<http://www.kogics.net/sf:kojo>

Kojo includes:

\- Logo like stuff to begin with

\- Processing like stuff for the next level

\- A Virtual Math Lab

</comment><comment><USER40> For an introduction to programming and Ruby at the same time, Chris Pine's Learn to Program ( <http://pine.fm/LearnToProgram/> ) is excellent.

<comment><USER41> I'm currently using this to learn programming and couldn't agree more.

</comment></comment><comment><USER42> I think Perl is better way to teach Data Structures.

[http://developers.slashdot.org/comments.pl?sid=174164&ci...](http://developers.slashdot.org/comments.pl?sid=174164&cid=14488560)

</comment><comment><USER43> Have you tried App Inventor for Android? Really easy to get started with and you get an actual application that can be used on a phone. Very encouraging and inspirational.

</comment><comment><USER44> Check out <http://www.raphaeljs.com> and <http://jsfiddle.net>.

</comment><comment><USER45> Put a LAMP stack together for him and have him create basic website stuff that he sees everyday.

</comment><comment><USER46> C++ and then Java. It's what I did, those two will introduce him to OOP, and making GUI apps in Java is never going to get old, I guarantee.</comment>


The Creepy World of Bruce Conner - <AUTHOR> http://www.nybooks.com/daily/2016/07/15/creepy-world-of-bruce-conner/ <comment><USER2> Thanks for posting this. I wasn't aware of Conner but his work is fascinating.

There is something dark and beautiful about images of bomb tests. I can't help but look at them with simultaneous awe and horror.

I highly recommend the photo book 100 Suns, but I will warn that it's a bit haunting.

[https://www.amazon.com/100-Suns-Michael- Light/dp/1400041139](https://www.amazon.com/100-Suns-Michael- Light/dp/1400041139)</comment>


CSS Vocabulary - <AUTHOR> http://pumpula.net/p/apps/css-vocabulary/ <comment><USER2> Awesome! Just tweeted this out for our GirlDevelopIt students, this is a great review resource.

For those of you looking for alternative ways to learn CSS (or teach it), here are our materials:

* CSS Basics/Layout: [http://www.teaching-materials.org/htmlcss-1day/](http://www.teaching-materials.org/htmlcss-1day/) (Scroll down) * CSS3: [https://dl.dropboxusercontent.com/u/10998095/css3-workshop/i...](https://dl.dropboxusercontent.com/u/10998095/css3-workshop/index.html#slide3)

...I find that teaching the CSS3 workshop is always a great reminder of the crazy ass selectors you can use in CSS now, and I end up using them way more in the weeks after. And then forgetting again. :-)

<comment><USER3> This is awesome.

</comment></comment><comment><USER4> This is really neat. I've been using CSS for several years and have never stumbled upon something that uniquely educates in this manner. You'll only really grasp a true understanding of CSS like this if you sift through a lot of (dull) specification.

Also, this brings a lot of attention to the fact that CSS relies upon formal grammar and vocabulary (as the page is titled), which is something that you won't see often.

<comment><USER5> What do you mean exhibit their own idea of grammar? All programming languages are defined in terms of their formal grammar. A grammar and vocabulary is really all that they are.

<comment><USER4> Sorry, I edited my post to clarify.

</comment></comment></comment><comment><USER6> This is great! To anyone else delving into CSS, I also found this tutorial on CSS selectors helpful: [http://flukeout.github.io/](http://flukeout.github.io/)

</comment><comment><USER7> This is a neat and simple idea. I wonder how difficult it would be to add other languages.

<comment><USER8> I think it could be possible for any context-free language, through outputting the parse tree with ranges wrapped with class="symbol-type". CSS's grammar being like this (for those not familiar with the idea): [http://www.w3.org/TR/CSS21/grammar.html](http://www.w3.org/TR/CSS21/grammar.html), and JS's being like this: [http://www- archive.mozilla.org/js/language/grammar14.html](http://www- archive.mozilla.org/js/language/grammar14.html). You might want to have a black/white list of foundational grammar rules to ignore.

</comment></comment><comment><USER9> Very neat and straight to the point. I'm writing a book about CSS, and this comes in very handy considering the vocabulary in CSS is usually misused and lacks precision, especially on Stack Overflow (including by me).

<comment><USER10> It's so hard at the beginning to google it,since you don't know the names. This is an extremely helpful tool for beginners!

<comment><USER11> This is very helpful, because even though I can produce css I sure didn't know the names of anything.

</comment></comment></comment><comment><USER12> Really nice. Why did you skip the media query though?

        @media only screen and (min-width: 35em) {
            /* responsive styles */
        }

        @media print {
            /* printed styles */
        }

<comment><USER13> Page footer:

Made by @sakamies Improvements welcome at [https://github.com/sakamies/css- vocabulary](https://github.com/sakamies/css-vocabulary)

<comment><USER12> Thanks for telling me, In fact I did send a pull request on the matter. (Although I don't understand the down-vote for stating a constructive criticism, what if I didn't know the vocabulary for media queries and was genuinely hoping to learn it on this site?).

<comment><USER13> I didn't down-vote.

</comment></comment></comment></comment><comment><USER14> For someone with only superficial knowledge of CSS but who regularly has to communicate with front-end devs, this is very very helpful.

A shared vocabulary is so important in any collaboration.

</comment><comment><USER15> This is a really great visual way to learn CSS vocabulary. Love the simple and clear UX/UI. Have you thought about adding pop ups when you click on each term that explains the exact purpose of each? It could be an interesting way to expand this into a 5 minute self-taught tutorial.

</comment><comment><USER16> This is really nice, I might fork it myself and add to it as I'd like to see some more explanation on certain parts, though it would then become something different.

</comment><comment><USER17> I always referred to a declaration block as "rules". A single declaration is a "rule". I am not sure where I picked it up, but it is simpler.

</comment><comment><USER18> Very neat and intuitive way to learn. I wasn't aware of the difference between "pseudo classes" and "pseudo elements" before.

</comment><comment><USER19> Great resource.

Anyone know of something like this for Javascript or PHP?

</comment><comment><USER20> Why do they use `::before` instead of `:before`? Is that a typo?

<comment><USER21> The double-colon notation is introduced in order to establish a discrimination between pseudo-classes and pseudo-elements.

Doesn't work with IE.

<comment><USER22> > Doesn't work with IE

That's not true. IE has supported it since IE9 at least. [http://msdn.microsoft.com/en- us/library/ie/cc304078%28v=vs.8...](http://msdn.microsoft.com/en- us/library/ie/cc304078%28v=vs.85%29.aspx)

</comment></comment></comment><comment><USER23> well css is death so, no, thank you.

<comment><USER24> how is CSS dead? CSS is going to live on forever as the base of styling. Stylus, SASS, LESS will always compile to CSS, and their will be a "religious war" of which one to make as the base.

<comment><USER23> just because you use it, or because you like it does not mean is the right approach for styling websites. The future is canvas.

<comment><USER25> How would one create a document type page with a canvas? I'm generally curious and would love an example. I've use canvas before, but strictly for image manipulation and exploring animation.

My experience and limited knowledge of it don't lead me to believe it'll replace HTML/CSS documents anytime soon (which are really the starting point before blogs/apps).

What about resizing causing the whole canvas to be wiped away (thats a default behavior right?).

Edit: Also, how do you achieve separation of content and style?

<comment> jarek-foksa Canvas is just a low level API for 2D graphics, on top of it you could build your own rendering engine with custom document object model, document serialization format, layout engine, styling engine, etc. This would be an enormous amount of work though, I don't believe that standard HTML/SVG/CSS/DOM are that broken that reimplementing them from scratch would become a viable option.</comment></comment></comment></comment></comment>


Why Watching DVDs on Linux is Illegal in the USA - <AUTHOR> http://www.howtogeek.com/138969/why-watching-dvds-on-linux-is-illegal-in-the-usa/

<comment><USER2> We continue trying to find ways to create new outlaws. 6 strikes came into effect and nobody is bothered. The govt does not represent the people. What is said is not meant. We live and are expected to live chasing things we don't want and as slaves to masters, hoping to be masters someday. It is extremely disturbing to be able to think about all this and live life. It is no wonder that some people choose to ignore all of the negativity and live whatever is left of their lives.

<comment><USER3> "6 strikes" doesn't make any new criminals. It's a voluntary deal with certain ISPs that doesn't (directly) involve criminal charges or civil lawsuits.

<comment><USER2> doesn't DIRECTLY involve criminal penalty AS OF NOW.

<comment><USER4> Logical fallacy: Slippery Slope.

<comment><USER5> You're misrepresenting the slippery slope fallacy (<http://en.wikipedia.org/wiki/Slippery_slope>).

      A slippery slope argument states that a relatively small
      first step leads to a chain of related events culminating
      in some significant effect.

6 strikes is neither a relatively small first step, nor is prosecuting people under it a grand leap (it's the next logical step). Slippery slope isn't a tool for dismissing any claims of cause and future effect, it is an informal rule for when claims of cause and future effect are permitted, namely when one can "demonstrate a process which leads to the significant effect". In this case, "language of the agreement between ISPs and the entertainment industry" ([http://www.dslreports.com/shownews/Six-Strikes-Official- Says...](http://www.dslreports.com/shownews/Six-Strikes-Official-Says-Nothing- Happens-After-Sixth-Strike-121693) and [http://www.dslreports.com/shownews/Will-ISP-Six-Strikes- Incl...](http://www.dslreports.com/shownews/Will-ISP-Six-Strikes-Include- BitTorrent-Lawsuits-119981)) clearly states that ISPs have the full authority to _report_ 6 strikes offenders to copyright owners, should they choose to prosecute them:

      The Participating ISP will, however, continue to track and
      report the number of ISP Notices the Participating ISP
      receives for that Subscriber's account, so that information
      is available to a Content Owner Representative if it elects
      to initiate a copyright infringement action against that
      Subscriber.

No demonstration of said process is necessary because the right by IPSs and copyright holders to engage in this very process has been clearly reserved. Not a slippery slope.

</comment></comment></comment></comment></comment><comment><USER6> In Poland you can make a backup copy of a DVD circumventing "security" measures where necessary. More, you can share that copy with members of your family and people in your social circle. It's considered fair use.

Anyway, while this law seems completely and horribly broken, technology allowed us to escape it a bit. I don't even have optical drives in my computers any more.

Of course, this means that watching any movie or tv show on a computer requires downloading it from... a source because popular online players (some offer content for free, like TVN, a large private broadcaster; and not just a clip here and there — full episodes, even whole films) usually require Silverlight which doesn't really work on Ubuntu. Luckily, that — downloading copyrighted materials for personal use — is, again, legal†.

† some exceptions apply.

<comment><USER7> It might be legal from criminal law POV but you can still be sued in a civil court for most of those use cases. Of course that rarely happens.

For those interested how a post-communist country criminalizes copyright violations, here's a link to the relevant section of our Copyright Act:

[http://prawo.legeo.pl/prawo/ustawa-z- dnia-4-lutego-1994-r-o-...](http://prawo.legeo.pl/prawo/ustawa-z- dnia-4-lutego-1994-r-o-prawie-autorskim-i-prawach- pokrewnych/rozdzial-14_odpowiedzialnosc-karna/?on=21.10.2010&exact=yes)

<comment><USER8> "It might be legal from criminal law POV but you can still be sued in a civil court for most of those use cases."

You can get sued for anything, but the court will throw it out if the civil case is unfounded. I don't know how you have it in Poland, but the Czech copyright act stipulates that private copies ("copies for sole personal use") of everything except software and "electronic databases" (telephone directories etc.) are completely outside the purview of copyright protection, up to and including the disregard for the legality of the source of the copy (confirmed by a verdict of the Supreme Court in 2006) If something similar is the case in Poland, what basis could a civil case possibly have?

<comment><USER7> The OP wrote "† some exceptions apply." and you could drive a truck through those exceptions to fair use.

For instance, "copies for sole personal use" that you mentioned, in Poland are "single specimens shared by people in a personal relationshiop" (link to this specific rule: [http://prawo.legeo.pl/prawo/ustawa-z- dnia-4-lutego-1994-r-o-...](http://prawo.legeo.pl/prawo/ustawa-z- dnia-4-lutego-1994-r-o-prawie-autorskim-i-prawach- pokrewnych/art-23/?on=21.10.2010)) which literally indicates that the digital transmission between people who don't know each other is excluded from its scope.

Also, the fait use section ends with a limitation clause: [http://prawo.legeo.pl/prawo/ustawa-z- dnia-4-lutego-1994-r-o-...](http://prawo.legeo.pl/prawo/ustawa-z- dnia-4-lutego-1994-r-o-prawie-autorskim-i-prawach- pokrewnych/art-35/?on=21.10.2010) \- which is a totally unclear ruke but means something similar to "fair use cannot hurt author".

</comment></comment></comment></comment><comment><USER9> Equally weird is that watching PBS content online is blocked if you're not physically sitting in America. For those who don't know, PBS is a US non- profit TV network, partially funded by the federal government and to varying degrees the states. Yet their website actively blocks would-be viewers outside the US, including US citizens (who are required to pay US taxes wherever they live).

Oh, and when I took my Korean-made but US-bought TV to the UK, guess what? Its Netflix feature stopped working completely.

Whether buying a DVD or streaming video online, I'm tired of not getting what I pay for.

<comment><USER10> The PBS geo-blocking is reasonable to understand. Video streaming can get _expensive_ and international delivery almost certainly isn't in the foundation's stated mission at this point. Things also get complicated when you consider that PBS is not just one non-profit, but many "member stations", each operated as a separate non-profit. It's not their main objective navigate through the difficult task of making international streaming pay for itself (i.e. through correctly targeted ad partnerships or additional fund-raising). It's easier to just block it.

But back to the numbers: I'd estimate that PBS is paying around $0.05 per show to stream. I'm basing this on CDN costs in the range $0.10/GB - $0.20/GB, the size of 30 minute shows weighing in between 125MB and 250MB, plus storage and admin overheads. I might be wrong, but it looks like they're delivering their bits via CloudFront[1] and so those costs basically _double_ for viewers outside of the US and Europe[2]. Even if it's not CloudFront, the basic cost structures stay the same. Why on earth would they want to serve content to users who mostly aren't giving them money and are costing twice as much to serve?

One last point: the link below are for Downtown Abbey, for which PBS certainly doesn't have international streaming rights.

[1] <http://video.pbs.org/videoPlayerInfo/2335534842>

[2] <http://aws.amazon.com/cloudfront/pricing/>

<comment><USER11> >I'd estimate that PBS is paying around $0.05 per show to stream. I'm basing this on CDN costs in the range $0.10/GB - $0.20/GB, the size of 30 minute shows weighing in between 125MB and 250MB, plus storage and admin overheads.

If they actually own the rights to the show they want to distribute to the public for free and the primary thing stopping them is the cost of a CDN, why aren't they using BitTorrent? At least as an option that says "no CDN in your country, international users use this"?

<comment><USER10> My guess it that PBS still needs to control distribution of their content because it is still a _valuable source of fund-raising revenue_. Revenue from DVD box sets [1] and international licensing deals goes back into producing new shows. Setting their content free on BitTorrent would quickly erode the revenue generating potential of that content.

[1] <http://www.shoppbs.org/home/index.jsp>

<comment><USER11> The purpose of PBS is to take donations and public money and produce free content. I have a hard time believing that there are a lot of people who would buy a PBS DVD box set but decide not to because it was available on the internet -- especially since it's _already_ available for free on the internet in their primary market, just not world-wide. Moreover, if they distribute using BitTorrent, they can include the usual "if you enjoy this program, please support it with a financial contribution" message, in which case the wider the programs are distributed the more people see the message and the more money gets donated.

</comment></comment></comment></comment></comment><comment><USER12> This is nothing to get in a tizzy about. DMCA is stupid, we know, but the reality is that laws are made all the time that have some asinine edge-case side effect that makes a totally innocent action a criminal offense. The important question here is, are you likely to be prosecuted for such a dumb thing. I think it's relatively safe to say you won't. Obviously we can't say the same for those of us who'd be inclined to build our own DVD playback software but to use it to view a DVD is, in reality, not going to get you in trouble.

I'm not saying I support this. I absolutely don't. My question is, what's the point here? To me, this comes off as another article meant to get all the anti-copyright, anti-DMCA people to all come together and pat each other on the back for how smart they are for being against such silly laws. This stuff is good to know and interesting but I'm still a little disappointed its on the front page of HN. It seems like exactly the kind of thing the guidelines say not to post. It's an easy up vote - who can't get behind the idea of DVD playback on Linux being illegal being, well, ludicrous.

<comment><USER2> There really is no point putting up a "fight". The content creators do not want to give their hardwork away. The content creators have to do whatever it takes to live. If the measures that they take legally bugs us, then we should create our own content and distribute it the way we want to or approach the courts. Talking about how a proprietary format is taking away our freedom will do nothing. And yes put your money where your mouth is. Support companies that do it the right way.

<comment><USER11> Your argument is that if we disagree with a preposterous law, we should have to opt out of the law by opting out of popular culture. Why shouldn't we just fix the law?

<comment><USER2> We can ask courts to allow reverse engineering. We can ask them to exempt personal use and backup. We can hope to remain invisible. But even after all of that we are still beholden to these content creators who hold us in contempt(their actions prove that). And if the courts and luck don't smile on us we end up being criminals too. Look at the music industry, even if lossy, the mp3s now available do not have drm. So things will change if we want to and we won't have to shun pop culture.

<comment><USER11> OK sure, stop giving Hollywood money until they change their ways. Don't buy DRMed media. But fix the law too. They aren't mutually exclusive.

</comment></comment></comment></comment></comment><comment><USER13> Guys, the best way to react to this is to create our own content (music, films, books, theater, whatever...) then share and appreciate with friends. We dont need those companies to invent our life.

<comment><USER14> That would be great, but I can't imagine living without all the pirated books. You can replace entertainment, but how can you replace everything else?

<comment><USER13> Sorry, I dont know. I always bought my books since I am a student (spending lot of money into them btw). Unfortunatly, books that worth the money, and my time reading them are not so numerous.

Anyway, I guess internet is still a good place to find publicly available information not yet copyrighted by some doomed organisation.

</comment></comment></comment><comment><USER15> I was a little taken aback to realise that a new generation of hackers that doesn't remember a world _without_ the DMCA is now here. DVD Jon isn't a kid anymore... he'd be pushing 30 by now.

</comment><comment><USER16> I just realized the other day that public projection of a DVD in an oil rig is illegal (yes, they appear explicitly in the banner). Funny: hospitals, schools, ..., oil rigs!

Unbelievable.

<comment><USER17> You can't use iTunes in the production of nuclear weapons either. I suppose they're just covering all bases.

<comment><USER18> I'm guessing that's because some of the software libraries iTunes is built on has that clause as one of its licence agreements

<comment><USER19> Just an easter egg from Apple, not an actual dependency.

</comment></comment></comment></comment><comment><USER20> I don't love in USA but I have an impression that laws like this are made just to put more money in pockets of RIAA and other similar ass.es.

Most of the copyright laws are standing on the line of sanity and one small change can make them appear like creation of a kindergarten kid.

<comment><USER21> The way I look at it the problem is a bit more subtle than that. In the interest of full disclosure, I'm not a US-citizen either.

Recent technology is making several business models (of which the RIAA is a great example) obsolete. These businesses are powerful enough not to die the way the typewriter or the analog photo film did. These laws (like the DMCA) are a cry for help, a last resort from a dying industry. This is why their side of the argument has always appealed to emotions and not reason. ("How would the world be without movies?" - a complete straw man).

I don't believe it's a conspiracy to make the rich even richer, it has more to do with the difficulty of renewing oneself when technology makes you obsolete. The problem is that a few (or more) innocent casualties are going to get hurt as the Hollywood Titanic (yay, a metaphor!) goes down, but ultimately this whole "technological protection measures" shenanigan is going to disappear. Hollywood is doomed and it knows it.

That being said, I think the US is ahead of other countries when it comes to finding a solution to this problem. The effects of the SOPA/PIPA protests had on Congress is the obvious example, but more broadly, the constant ongoing debate looks promising. This debate is always avoided or dismissed as nonesense in France (where I currently live) and it cannot possibly be held in the Middle East (where I'm from).

I just wished the judiciary system wasn't so harsh on the scapegoats of this whole mess. Because let's face it, the victims (again, obvious one is Schwartz, but there are many others) are scapegoats and everybody knows it.

<comment><USER18> We have anti-copyright-theft trailers in cinemas, and they employ similar straw men. "Imagine a world with all cinemas... gone". As if piracy will stop people going to the cinema for films they really want to see.

</comment></comment></comment><comment><USER22> The weirder thing on Linux is that you can watch Amazon's streaming videos in Firefox, but not in Chrome. Apparently the Flash plugin for Chrome on Linux removed drm for some reason, so Amazon killed it as a supported platform.

<comment><USER23> It's even weirder than that because you can watch Amazon videos just fine using Flash in Chrome Google TV. In fact, until the most recent Google TV update that was the only way to take advantage of this high-profile, remote control button-worthy feature.

</comment></comment><comment><USER24> Yet another marginalization of freedom serving the interests of a the few well-lobbbied rightsholders.

</comment><comment><USER25> In France using VLC to watch a DVD is illegal too.

<http://en.wikipedia.org/wiki/DADVSI> <http://www.videolan.org/press/eucd.html>

</comment><comment><USER26> Curious to hear whether these weird Linux-asymmetries apply to Blu-Ray or online digital media (e.g. Hulu/Netflix) too.

I would be willing to accept the fact that DVDs were invented so long ago that some of their restrictions are a little archaic.

<comment><USER27> These issues absolutely apply to Bluray, and to basically any other format with copyright restrictions. It is not an issue of DVD being invented long ago; the DMCA is what is obsolete here.

</comment></comment><comment><USER28> This isn't even close to correct.

What the DMCA says is that you can't strip and redistribute the content, not that you can't strip and watch it. This is an old false stalking horse.

And even if this is correct, this wouldn't make you a criminal; since nobody knows, this does not rise to the level of intent.

Notice how if this was true, people would be making a fortune going after TiVo.

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

Notice that he's also saying that it's legal to jailbreak a phone (it isn't, anymore,) and that the reason it was legal was an exemption to the DMCA (which is completely incorrect.)

Notice that the thing he's claiming is illegal is a link to a thing that's actually about a completely different topic - space shifting, ie they claim, taking the DVD, decoding it, then transferring that decoded version to another device.

Oh, and that place he's citing is _also_ wrong. This isn't what the problem is in the eyes of the copyright office. Space shifting is perfectly legal, and is done on large consumer devices all the time. iTunes can do it, your Archos can do it, the SlingBox can do it, the high end TiVo can do it, I think the Hopper might be able to, et cetera.

Quoting the source he claims said this was illegal:

> "And the RIAA and the MPAA agree with you. In > 2005, their lawyer (now the > Solicitor General of > the United States) assured the Supreme Court that > > "The record companies, my clients, have said, for > some time now, and it's > been on their Website for > some time now, that it's perfectly lawful to > take a > CD that you've purchased, upload it onto your > computer, put it > onto your iPod." > > Movie executives agree as well. Mitch Singer, the > > Chief Technology Officer of Sony Pictures Entertainment > explained to > author Robert Levine that the idea for > the movie industry's UltraViolet > program evolved out > of Singer's own frustration with transferring movies > > between PCs in his home.

And, of course, the Fair Use clause of the copyright act makes it perfectly clear that you're allowed to do this as long as you aren't transmitting it to other people. Have fun. Go nuts.

There was a point at which it was, briefly, illegal to decode DVDs under Linux, but it had nothing to do with any of this, and it's long since undone. What was actually going on was that the MP3 decoder is under patent by Fraunhofer AG, and back in the mid-1990s, before most people understood what Linux was, but when MP3 players were starting to become popular, Fraunhofer started to assert their patent to take money from device manufacturers.

A few MP3 makers protested that they were using the MP3 stuff built into Linux, and as such they weren't the ones using the tech, Linux was, and Fraunhofer ought to go after Linux. Fraunhofer fell for this, and in response, the community removed MP3 stuff to insulate itself from legal nonsense. A couple months later Fraunhofer figured out what Linux was, and issued a free use license like decent people, but the community was so long since neckbearded out over the topic that they never put any of it back in.

And then the legends of what was going on began.

This is why you don't take legal advice from random programmers on the internet.

This is a bunch of moral panic over a misunderstanding of the copyright system. There's absolutely no reason that it's illegal to watch a DVD in America. This just isn't true at all.

<comment><USER29> You're wrong.

> What the DMCA says is that you can't strip and redistribute the content, not > that you can't strip and watch it.

No, the law is clear that circumventing a copyrights protection measure is illegal. Similar laws got passed in many countries.

Here's a case from the US: ([https://en.wikipedia.org/wiki/RealNetworks%2C_Inc._v._DVD_Co...](https://en.wikipedia.org/wiki/RealNetworks%2C_Inc._v._DVD_Copy_Control_Association%2C_Inc.#DMCA_claims_on_Content_Scramble_System))

> _The court decided that RealDVD is primarily designed or produced to > circumvent CSS technology. In particular, the court found that the removal > of crucial CSS technology in DVD drive-locking, secure storage of content > keys on DVD, CSS authentication and CSS bus encryption during the playback > of copied DVD content from the hard dive is a circumvention of CSS, even > though they are not needed when playback from the hard drive. The court > further explained that even though RealNetworks is a licensee of CSS > technology, it does not shield RealNetworks from DMCA claim because the > removal of CSS technology is a violation of DMCA._

<comment><USER28> And in that case, what made that software product illegal was that the court found that it was for breaking the DVD, _not_ for playing it back.

It's important to actually understand the case.

<comment><USER29> > what made that software product illegal was that the court

No. Some laws are not enforced, but that doesn't make the regulated activity legal.

Someone who owns the original DVD and who wants to play it back (with no storage or format shifting) is breaking the law, because there's no authority from the copyrights holders.

(<https://en.wikipedia.org/wiki/Anti-circumvention>)

(<http://www.law.cornell.edu/uscode/text/17/1201>)

> _"circumvent a technological measure" means to descramble a scrambled work, > to decrypt an encrypted work, or otherwise to avoid, bypass, remove, > deactivate, or impair a technological measure, without the authority of the > copyright owner;_

<comment><USER28> I enjoy how you cut my sentence mid-way through to make it look like it said something very different than what it actually said.

<comment><USER30> I think that was unintentional. What a I read from DanBC's comment was that it was referring to the fact you stated _the court found that it was for breaking the DVD, not for playing it back._. Just because the court said that the problem was something else, and not the playback, does not make the playback legal.

<comment><USER28> No, the fact that nothing makes it illegal is what makes it legal.

I'm sort of confused where this is coming from.

<comment><USER29> To watch a DVD you need to get around the CSS.

There is no authorised method to do this on Linux. Thus, anyone watching a DVD on Linux is circumventing an effective rights protection measure without authorisation. That's a crime in the US. (And similar actions are crimes in other countries too.)

<comment><USER28> "To watch a DVD you need to get around the CSS."

No, you don't. You just need to decode it. What's illegal is leaving it decoded and redistributing it to others.

.

"There is no authorised method to do this on Linux."

One, there doesn't need to be.

Two, of course there is. Have you ever even tried to look?

.

"Thus, anyone watching a DVD on Linux is circumventing an effective rights protection"

Luckily, the Supreme Court, the RIAA, the MPAA, and the current Attorney General of the United States disagree with you, as does a casual familiarity with the law.

<comment><USER29> This is baffling. I really don't understand what you don't get about this.

To watch a DVD you need to decode the CSS.

You either have authorisation to do this, or you don't.

On Linux there is no authorised method to do this, and thus it is illegal.

Whether anyone is interested in prosecuting that illegal use is irrelevant to this discussion; and it's not been what you've claimed.

> What's illegal is leaving it decoded and redistributing it to others.

Let's examine this sentence.

i) circumventing the rights protection without authorisation is illegal.

ii) distributing copy right material without permissions is illegal

Thus, your sentence "What's illegal is leaving it decoded and redistributing it to others" covers 2 illegalities, the circumvention and the distribution.

> Two, of course there is. Have you ever even tried to look?

Yes, I have tried to look. I can't show you what I have not found. Have you tried to look? Feel free to provide a link to any rights holder anywhere giving authorisation.

<comment><USER28> "This is baffling. I really don't understand what you don't get about this."

The part where the Supreme Court and the US Attorney General say you're wrong is probably your first hint.

.

"To watch a DVD you need to decode the CSS."

Yep.

.

"You either have authorisation to do this, or you don't."

Authorization is a function of whether you paid for it.

.

"On Linux there is no authorised method to do this, and thus it is illegal."

1) There doesn't need to be. Authorization is not about what technology is in use.

2) There are actually Linux DVD players which have paid for their Fraunhofer license; I don't know why you keep claiming otherwise, when a simple Google search can straighten this out.

3) Again, authorization has nothing to do with what software you're using, and everything to do with whether you plonked five dollars on the till at Walmart. It's called the First Sale Doctrine.

.

"Whether anyone is interested in prosecuting that illegal use is irrelevant to this discussion"

Why do you keep bringing up something nobody else is talking about, then saying "but that's irrelevant?"

.

"i) circumventing the rights protection without authorisation is illegal."

Yes, this is the piece you keep repeating, like just saying it a bunch of extra times will change what authorization is.

.

"Thus, your sentence "What's illegal is leaving it decoded and redistributing it to others" covers 2 illegalities"

(sigh)

.

"Yes, I have tried to look"

Try harder. There's Fluendo, LinDVD, the codecs in Ubuntu have been licensed from Cyberlink since 2008, Boxee is legal, your TiVo (which is Linux) can give you a legal remote viewer as a .deb, et cetera.

You're too busy feeling correct to check the things being said to you.

.

"I really don't understand what you don't get about this."

Which is commonly the case for people who don't consider what it means that they think someone citing the Supreme Court and the US Attorney General is wrong about the law.

(cough)

Please have a nice day; I'm bored of this.

<comment><USER29> > Authorization is a function of whether you paid for it.

No it isn't. Authorisation is a function of whatever rights you're given, normally at the point of purchase but not necessarily.

> 2) There are actually Linux DVD players which have paid for their Fraunhofer > license; I don't know why you keep claiming otherwise

I have never said that there are no Linux distributions that do not have a valid Fraunhofer licence. This is not about patent restrictions. We agreed that earlier in the thread, and I thought that you understood that point, but perhaps I was mistaken.

Taking just one example from your list: Boxee uses libdvdcss to circumvent the CSS encryption on DVDs and thus it's possibly breaking the DMCA. Again, just because no-one is going to prosecute doesn't make it lawful.

> someone citing the

None of the cites you've made have supported your various changing positions.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER31> This is not limited to Linux but affects all players that use libdvdcss. For example, Windows and OSX versions of VLC come bundled with the library.

</comment><comment><USER32> Minor quibble with the article. Handbrake is not illegal. It does not break encryption, it merely transcodes. It, by design, does not come with a copy of libdvdcss, and you have to download it through other means. It will also, on a mac, go find VLC's copy and use it.

The people behind Handbrake are somewhat touchy about this, for good reason.

</comment><comment><USER33> Who are these people who want to play DVDs on Linux? I have Windows and I have played a DVD on my computer exactly "never" times in the past 20 years.

If you want to play a DVD on Linux, boot Windows for that. Or use a DVD player. Or don't watch DVDs any more. Or crack it in the comfort of your own home for only your own use, and noone will ever prosecute you.

</comment><comment><USER34> It's also illegal to do so in Germany.

<comment><USER35> In principle, circumventing DRM does indeed violate copyright law (or rather the German version thereof).

However, there's also the right to make private copies, and I'm not aware of any relevant case law.

Keep in mind that this is civil law, and "Wo kein Kläger, da kein Richter" ("No plaintiff, no judge").

</comment></comment><comment><USER36> Whaaaaaat? This is the oldest news ever. I'm going back to sleep, and when I wake up, this site better not be a throwback to 2002, OK?</comment>


Advice: how to convert SQL data? - <AUTHOR>

I need some advice/a clever idea. Basically, I have a legacy SQL database that I inherited from our client's old development shop and I need to move all the data over to our new database.
The two schemas are vastly different - the old one is a MYISAM based system with no FKs and is missing some serious integrity.
My question is - is there some easy way to massage the old data into our new schema?
What I've been working on now is basically to build PHP objects for their old data and then write something to generate SQL statements for our new schema. Since we are using Symfony for the new project, I might also try and hook into Symfony and let it figure out the SQL. This will probably work but its really slow and tedious. <comment><USER2> Not nearly enough info for anyone to help you with, and not interesting enough for the crowd here to likely care about. You should probably seek paid help from someone with experience.

</comment><comment><USER3> Since the schemas are vastly different there's probably no alternative to building a custom ETL process. If you already have a workable solution to convert the data then you should probably just get to work and do what you can to keep your unknowns to a minimum even if it is a slow and tedious process. But if you don't really know if what you're doing will work then be honest about that upfront - you'll need to factor in additional time to compensate for mistakes. Try doing your conversions in a series of small steps with the appropriate testing along the way.

I've seen projects that sound like yours go way over budget because of well- meaning attempts to use "silver bullet" tools (often championed by non- stakeholders) that either took too long to figure out how to use properly or didn't end up working as well as expected.

</comment><comment><USER4> how much data are you moving?

</comment><comment><USER5> This is hard work. There are no magic bullets.

Some kind of ETL is all you got. Look forward to lots of exceptions.</comment>


Robot Vulnerability Scoring System - <AUTHOR> https://www.aliasrobotics.com/research/rvss.htm <comment><USER2> What happens when a botnet has actual robots in it.

<comment><USER3> Well, that's a pretty interesting question but, from a scoring perspective, what's the exact vulnerability being scored?

That's what this work is trying to evaluate.</comment></comment>


Tesla Motors founders: Now there are five - <AUTHOR> http://news.cnet.com/8301-11128_3-10357665-54.html

<comment><USER2> The caption from the picture in the article: "Tesla founder Martin Eberhard on the road with his Tesla Roadster.(Credit: Martin Eberhard)"

Martin Eberhard loves himself some Martin Eberhard.</comment>


The Pragmatic Programmer - <AUTHOR> http://www.hn-books.com/Books/The-Pragmatic-Programmer.htm <comment> DanI-S _GUIs prevent truly proficient programming_

I /hate/ this line of thinking. Do we really think that the perfect way to interact with a computer was somehow stumbled upon in the 1970s and can never be improved upon? The computer does not think in ASCII, WE do not think in ASCII - it's no less of an abstraction than any other form of GUI.

Like the colour syntax highlighting in your vim setup? Fond of autocompletion? Enjoy having multiple pages of code, side-by-side? YOU ARE USING A GUI.

I apologise if this sounds vitriolic, but it's important. Programming is the expression of intent. We're never going to progress to more pure forms of that expression if the people designing our tools believe that we've already reached nirvana.

Nice review, though; I'll check out the book.

<comment><USER2> Do check out the book. It's full of very good things.

 _> stumbled upon in the 1970s and can never be improved upon_

Certainly it can be improved upon, and I'm pretty sure even GUI haters must know that. We're just waiting for that to happen, and maybe trying to think how to make it happen.

The big schism comes because there are "GUI people" who think it's the total answer to everything, if only we can make better widgets or something. I don't hesitate to tell such people they're missing something.

<comment> DanI-S Indeed; the other pole is just as bad. I'm guessing at some point they're going to meet in the middle and something wonderful will be born. If I could create great software by staring into a flashing light whilst waving my arms around and humming, I'd be all for it - but we have a ways to go yet.

</comment></comment></comment><comment><USER3> I found the book underwhelming after all the praise I had read of it, because it seemed little more than a collection of common knowledge - I didn't get much out of it. On the other hand, for people very new to the craft, it may be more valuable for precisely the same reason.

<comment><USER4> You also have to keep in mind that this book was written 10+ years ago, when most of this was not actually common knowledge. :)

<comment><USER5> Programming bloggers have strip-mined it for material over the years, so you've probably already read much of it by osmosis.

I prefer _The Practice of Programming_ by Kernighan and Pike, personally.

</comment></comment></comment><comment><USER6> Brief suggestion: You pages should mention the authors more prominently. I didn't bother to allow scripts, but as near as I can tell, I have to look at the (smallish) cover art or for a reference in the body text, to see who the authors are. (And if it's too small on the cover as represented, it's a click through to Amazon.)

Anyway, glad to see conversation around these books.

</comment><comment><USER7> Great book. This is the one book that got me started getting professional about programming. I should really read it again these days.

</comment><comment><USER8> This is one of the best books I've read about software engineering, along with Code Complete. I completely agree with the conclusion of the review, every programmer should be required to own and read this book.

<comment><USER9> Required to read? Sure.

Own? No.

<comment><USER10> Personally I'd say own simply because it's a book worth rereading yearly or at least every other year, which means I'm due for a reread.

</comment></comment></comment><comment><USER11> This book is worth reading even for veteran programmers; there are a few good parts in it: the orthogonality idea, the DRY principle in all its implications, etc.

It's not the definitive book, if there will ever be one. But is a good reading.

</comment><comment><USER12> The Passionate Programmer is another must read Prag Prog title.

<comment><USER13> What did you find enlightening about this book?

I've tried to read it 3 times now and each time put it back. I find it dry and lacking of any new insights or actionable advice:(

I really would like to get some worth out of this book!

</comment></comment><comment><USER14> I was lucky enough to find this for $10 in the SUB at my school. Haven't delved too deeply into it, but it seems good so far.

</comment><comment><USER15> This book is like a self-help book... it mostly makes you feel good, otherwise mostly worthless. People who like this book are probably bad programmers.</comment>


Blog of Inigo Quilez, Creator of Shadertoy - <AUTHOR> https://www.iquilezles.org/www/index.htm <comment><USER2> I work in graphics and seem to lately be referring to these articles more than papers. I love how playful IQ's investigations are, as well as how practical and useful.

Recently I tried writing a sound program on ShaderToy and without thinking much assumed you could easily vary the frequency of a tone by using sin( t * freq * tau ) and animating freq. Whoo my ears got a big surprise, and a Google search brought me right to [https://www.iquilezles.org/www/articles/fm/fm.htm](https://www.iquilezles.org/www/articles/fm/fm.htm)

</comment><comment><USER3> This article about his work with Pixar on "Brave" is a great read: [http://www.cgw.com/Publications/CGW/2012/Volume-35-Issue-4-J...](http://www.cgw.com/Publications/CGW/2012/Volume-35-Issue-4-June- July-2012/The-Royal-Treatment.aspx)

<comment><USER4> Thanks, this was a great read. Interesting how instead of a traditional l-system approach, he went with something more physically influenced.

</comment></comment><comment><USER5> I found his blog a little while ago while getting into generative art and it has been a wonderful source of inspiration, quick learning, and deep knowledge. The domain warping tutorial is one of my personal favorites and the examples are gorgeous!

He also has some wonderful youtube videos ([https://www.youtube.com/watch?v=62-pRVZuS5c](https://www.youtube.com/watch?v=62-pRVZuS5c)).

I cannot recommend his website enough for folks getting into lower-level graphics development!

<comment><USER6> I didn't know he was the creator of shadertoy :o

I stumbled upon the channel one or two years ago, very interesting stuff if you are into math and computer graphics

</comment></comment><comment><USER7> Also the creator of Elevated[1] and Oculus Quill[2].

[1]: [https://www.youtube.com/watch?v=I5CTFMuFvb0](https://www.youtube.com/watch?v=I5CTFMuFvb0) [2]: [https://www.oculus.com/experiences/rift/1118609381580656/](https://www.oculus.com/experiences/rift/1118609381580656/)

</comment><comment><USER8> He has a YouTube channel where he reconstructs shaders too. It's very informative. [https://www.youtube.com/user/mari1234mari](https://www.youtube.com/user/mari1234mari)

</comment><comment><USER9> The actual blog URL is [https://www.iquilezles.org/blog/](https://www.iquilezles.org/blog/)

Maybe the submission title should be s/Blog of/Articles by/, or actually link the blog.

</comment><comment><USER10> Inigo's blog has been one of my favorite treasure troves of information for a long time now. Especially for people who like to play with demoscene-esque types of computer graphics, but honestly there's a ton of industrially useful knowledge there that has informed my work as well.

If you like graphics and somehow haven't found it before, check it out!

</comment><comment><USER11> Cool, unfortunately as this isn't a blog but more a collection of articles there's no RSS feed to keep track

<comment><USER12> I found it at [https://www.iquilezles.org/www/articles/rss.php](https://www.iquilezles.org/www/articles/rss.php)

<comment><USER12> Looks like he stopped updating it in 2013, actually. Shame.

</comment></comment></comment><comment><USER13> You'all killed it.</comment>


Commercial for IBM's Selectric Typewriter 1960's [video] - <AUTHOR> https://youtu.be/vNUEUth7qjc <comment><USER2> And here is one from 1934 by IBMs German subsidiary [https://dave.autonoma.ca/blog/2019/06/06/web-of- knowledge/im...](https://dave.autonoma.ca/blog/2019/06/06/web-of- knowledge/images/hollerith.jpg) 'Übersicht hollerith lochkarten'</comment>


Striking photos – Japan's tireless work culture - <AUTHOR> https://www.businessinsider.com/culture-overwork-japanese-businessmen-high-fashion-pawel-jaszczuk-photos-2019-3 <comment><USER2> Visited twice, have witnessed this both times. They could have taken an uber or taxi? But honestly, its safe enough that you dont need to worry about waking up with your wallet and shoes stolen. I did the same thing with a group of friends after a night of partying and we missed the last train and didnt want to bother with spending extra money on a taxi.

<comment><AUTHOR> So it's a cultural thing, in a way I guess it's cool(a norm) to sleep like that?</comment></comment>


Redux, redo in go - <AUTHOR> https://github.com/gyepisam/redux

<comment><USER2> Author here. Just came to submit a Show HN link only to find that I'm a day behind ;)</comment>


Newt Gingrich Wants New House Un-American Activities Committee - <AUTHOR> http://www.cnn.com/2016/06/14/politics/newt-gingrich-house-un-american-activities-committee/index.html <comment><AUTHOR> Well, there goes a lot of good cookin'.</comment>


Ask HN: Do you hire developers from bootcamps? - <AUTHOR>

tl;dr Are dev bootcamps a good idea for military veterans? I transitioned out of service and it was an excruciating experience even though I had an advantage. I'd like to change this.
Would you hire a recently discharged military veteran if they had received bootcamp style development training? If so how long should it be and what technologies would you hire for?
Most of my fellow combat veterans have struggled to find good careers given that their military skill set doesn't translate to many civilian employment opportunities. I was fortunate in that I was a programmer before I decided to join the Army so finding a job when I got out was challenging but easier than my peers found it. For most veterans finding a civilian career and adapting to the civilian workplace is an excruciating experience, in many ways it can be much harder than some of the training they endure. The sad thing is most veterans have the habits of great employees. For instance in the Army's 7 core values were drilled into me: (L)oyalty (D)uty (R)respect (S)elfless Service (H)onor (I)ntegrity (P)ersonal Courage.
I'd like to help military veterans transitioning out of service get into good dev jobs assuming that programming is a good fit for them on an individual basis. I have access to training facilities at a low cost and have friends who are already trainers in this space but I can't in good conscience accept a veterans money if no one is going to hire them.
Would you hire a recently discharged military veteran if they had received bootcamp style development training? If so how long should it be and what technologies would you hire for?
Thanks for your feedback. Hopefully I can make a difference in the lives of these great people and save them from a string of dead end jobs and relying on the VA for job training.
Edit: Grammar <comment><USER2> I think you need to find your own answer to this, and your answer will determine if you have a product. In other words, you probably need to build contacts with businesses and get them interested in possibly hiring from your boot camps. Then you probably need to find some brave souls who are willing to go through your first round (maybe only charge if they actually get a job?) and see if you can land jobs for these people. If your placement rate looks promising, then you may have something.

I imagine that's a big part of the value these boot camps bring to their students. They probably have awesome contacts, and building those contacts probably isn't easy. Building these relationships is probably more important than the actual teaching of the courses.

</comment><comment><USER3> Why don't you train one or two and take a percentage of their salary? That way, they don't pay up front, you prove your hypothesis, and companies get more employees. Everyone wins. Also, try not telling people upfront that you did a bootcamp, there is no net benefit (some companies refuse to hire from them, and others are like 'meh').

<comment><AUTHOR> I've seen that some bootcamps take a cut of salary. That feels so icky, like I'm taxing someone's ability to feed their family. On the flip side I do see a win/win in that they only have to pay me if I actually helped. I guess I'll have to see how people feel about paying up front vs the salary tax.</comment></comment>


The Bribery Aisle: How Wal-Mart Used Payoffs To Get Its Way in Mexico - <AUTHOR> http://www.nytimes.com/2012/12/18/business/walmart-bribes-teotihuacan.html?hp&_r=0

<comment><USER3> _In interviews, council members said they viewed Wal-Mart's proposal through the prism of lingering resentments toward their public markets. Residents had long complained about vendors inflating prices and rigging scales. They liked the way Wal-Mart challenged the old irritants of the Mexican shopping experience — stores that do not list prices; stores with no parking; stores with musty display cases._

I can relate to the above here in Bangladesh. The local grocery chains as well as the mom and pop stores are notorious for price discrepancies but worse than that - they sell food that has been adulterated and even laced with chemicals. With Wal-Mart consumers would at least get better quality food relative to those sold by local businesses.

<comment><USER4> You nailed it. I clearly do not understand the American (edit: and now spreading wider) obsession with glorifying everything Mom-&-Pop or conflating small-business with 'good' and big-business with 'evil' all the time!

Walmart is probably going to be the best thing to make the entrenched old players clean up their act and force them to find a USP that keeps them relevant. Such change, shake-ups and rattles, are good for the consumers - <USER2> have clearly been ripped-off by the Mom-&-Pop bandits for long years.

</comment></comment><comment><USER5> A tl;dr from a skim through: after WalMart of Mexico paid millions in bribes and had a whistleblower which prompted and an internal investigation that found supporting evidence, WalMart stopped the investigation and did damage control rather than damage prevention. And it continues. This story in particular deals with the WalMart near a Teotihuacán pyramid, which only cost them about $80k in bribes.

<comment><USER6> Not just bribery, which from what I understand is a common way of business in many areas. This is more like out and out fraud, public deception, and gross ethics violations. Horrible stuff. Maybe that's just how high level bribery works. Much worse than the type of bribery I've heard of in the past.

</comment></comment><comment><USER7> This was a fascinating article, astonishing that companies can get away with this level of corruption still. I struggle to believe that Walmart don't do this in other markets, especially other developing economies.

People who are fans of this style of journalism should check out <http://longform.org> for an archive of it. I'm not connected to it, just a fan.

</comment><comment><USER8> I shop at Walmart (or I should say, used to). This is a compelling story, and I feel so sad for the people of this town that lost some of its culture to Walmart. Why is Walmart refusing to comment?

Walmart should close that store, level the place and return it as something beautiful to the community. They cannot be allowed to profit off of this grave crime.

</comment><comment><USER9> The same is about to happen in my country, India. Over here also corruption is rampant and the laws are lax. I have stopped shopping from Super markets unless the item is not available anywhere else. I guess that is the only solution the public has at its hand and can be easily implemented.

</comment><comment><USER10> "I don't know which is worse... that everyone has his price, or that the price is always so low." - Hobbes (from Calvin and Hobbes)

</comment><comment><USER11> There's a perverse irony in staging hunger strikes to protest cheap food.

<comment><USER12> Ah yes, if we pretend their complaints are about cheap food, we can make them look foolish and in doing so reduce the legitimacy of their argument. Good idea.</comment></comment>


Microsoft acquires Obsidian Entertainment - <AUTHOR> https://www.polygon.com/2018/11/10/17959500/obsidian-xbox-acquired-x018-new-vegas-pillars-eternity <comment><USER2> I have always thought of studios as a creative peoples "dev team". So obsidian game developer team. But I've always wondered if there are any operational differences too. Do people move across these "dev" teams? These are all Microsoft employees, right?</comment>


Looking for Mobile/Web Developers - <AUTHOR> <comment><USER2> What technologies are you looking at (if any)? I am a full stack developer</comment>


Quantum Physics Leads To Perfect Mirror - <AUTHOR> http://www.scientificamerican.com/podcast/episode.cfm?id=quantum-physics-leads-to-perfect-mi-13-07-24 <comment><USER2> The Nature article on the subject is considerably more informative. The research shows a curve that's not inconsistent with 'perfect'. The measured Q is about 10^6, and roughly consistent with their wavefunction model of reflection. It's an excellent Q for the substrate.

The model allows for infinite reflectance, so this work opens an interesting window into future improvements. When the reported Q passes 10^12, you'll know that they're on to something truly special. Bulletproof measurements of Qs greater than 10^5 are a challenge, so it may be a while.

This paper was the coolest thing (to me) in last week's Nature.

Paywalled links (the authors have not chosen to put it on the arXiv):

[http://www.nature.com/nature/journal/v499/n7457/full/499159a...](http://www.nature.com/nature/journal/v499/n7457/full/499159a.html) [http://www.nature.com/nature/journal/v499/n7457/full/nature1...](http://www.nature.com/nature/journal/v499/n7457/full/nature12289.html)

<comment><USER3> > the authors have not chosen to put it on the arXiv

Doesn't Nature forbid authors from uploading pre-prints to the arXiv?

[http://www.nature.com/nature/authors/policy/embargo.html](http://www.nature.com/nature/authors/policy/embargo.html)

<comment><USER2> Doesn't look like an explicit ban on preprints, though Nature might prefer that you not do it. I'm pretty sure I've seen a Nature paper or two appear on the arXiv around the time of publication.

"Nature does not wish to hinder communication between scientists. For that reason, different embargo guidelines apply to work that has been discussed at a conference or displayed on a preprint server and picked up by the media as a result. (Neither conference presentations nor posting on recognized preprint servers constitute prior publication.)

Our guidelines for authors and potential authors in such circumstances are clear-cut in principle: communicate with other researchers as much as you wish, but do not encourage premature publication by discussion with the press (beyond a formal presentation, if at a conference)."

Looks like they say "It's okay to talk among scientists, but don't talk with the media at all until we've released it. We'll pull your paper if you do."

<comment><USER3> Looks like you're right:

"1\. You are welcome to post pre-submission versions or the original submitted version of the manuscript on a personal blog, a collaborative wiki or a preprint server at any time (but not subsequent pre-accept versions that evolve due to the editorial process)."

[http://www.nature.com/authors/policies/confidentiality.html](http://www.nature.com/authors/policies/confidentiality.html)

... But I can see how authors, anticipating a possible Nature publication, would choose to maximize "impact" by not jumping the gun.

</comment></comment></comment></comment><comment><USER4> I'm wondering if this would be a good defense against laser weapons? I've heard that normal mirrors are worthless for this since even a minut imperfections can be enough to quickly heat up and destroy the mirror.

<comment><USER5> Use a cylindrical mirror and make it spin fast enough, possibly with movement along multiple axis to spread the energy out over as large an area as possible, and return the beam back to the sender?

</comment></comment><comment><USER6> If you have a perfect mirror, can you store energy in lasers indefinitely?

I guess you'd still lose energy to the air

<comment><USER2> The short answer is yes.

Aside from tiny losses like tunnelling, scattering from vacuum excitations and thermally-generated fields, etc., a perfect optical cavity will store light indefinitely. No laser required, only light of the appropriate wavelength and phase.

The combination of Fabry-Perot cavities and power-recycling in the optics of the LIGO gravitational wave observatory "gains" a ~100 W laser up to a few megawatts. If a cavity is formed in free space, like LIGO, then careful attention to vacuum is required to prevent loss.

ULE clock reference cavities have quality factors that are much higher, and need no vacuum, as the light propagates entirely within a glass substrate.

 _Edit:_ I should add that the "tiny losses" mentioned at the outset are precisely what prevent you from making a "perfect cavity". As the quality of a cavity/oscillator increases, the number and deviousness of loss mechanisms does too. This is especially the case at frequencies that are low compared to those at which an experimenter can iterate.

For HN, consider building a host that can run uninterrupted for 10^12 seconds (30,000 years).

<comment><USER3> ...but the effective storage time of the power recycling cavity in LIGO is about 1 second. This is a rather long time by optical standards, but I'd say it's a long way from "indefinitely".

<comment><USER2> Agreed. My post may have been more tautological than I'd hoped (in the absence of loss, a cavity is lossless). Thank you for the important reminder that in nature, there is no DC.

In the sense in which I'd understood the question "Cavity losses are often dominated by reflectivity losses at the mirrors: does an improved mirror make a big difference?", I think my reply is relevant.

</comment></comment></comment></comment><comment><USER7> Its funny. Quantum Mechanics was invented about 90 years ago but the first cool applications are coming out today.

<comment><USER8> Arguably, LASERS and modern semiconductors both rely on our understanding of QM. Hard drives using GMR have been around for at least 16 years. Erasing of flash drives uses quantum tunneling. MRIs probably would not be possible without an understanding of QM. Computational chemistry relies heavily on QM.

So no, I don't think your statement is accurate. QM has been giving us cool applications for decades. The amazing thing is that it's still giving us amazing _new_ advances even after all this time.

<comment><USER2> Agreed entirely; an upvote wasn't enough. Quantum Mechanics has been delivering the goods since their invention.

While the maser surely is an explicit application of quantum mechanics, placing theoretical chemistry onto a solid physical framework may have had the greatest aggregate impact on humanity. From a scientific perspective, much of what we know about the universe requires spectroscopy. Everything we know about subatomic processes requires quantum understanding as a prerequisite.

Quantum effects are so curious/clever that we should continue to expect interesting surprises into the foreseeable future.

</comment></comment></comment><comment><USER9> What, no pics?

</comment><comment><USER10> sciam didn't mention it, but the last two authors are the same guys who modernized wireless cellphone charging (Tesla's coils were deemed too dangerous)

[http://en.wikipedia.org/wiki/WiTricity](http://en.wikipedia.org/wiki/WiTricity)</comment>


Dr. Jeffrey R. Jaicks Dentist - <AUTHOR> http://www.drjaicks.com/ A meticulous tooth-by-tooth check to identify cavities should be done regularly. This will provide you a healthy mouth and a beautiful smile. <comment><USER2> I would laugh but this is exactly the kind of site I would have built for someone when I started out building websites.

Except I know how to get rid of an istockphoto watermark.

</comment><comment><USER3> This is hacker news gold</comment>


Turris MOX: Modular and Open-Source Router – Indigogo - <AUTHOR> https://www.indiegogo.com/projects/turris-mox-modular-open-source-router-security-computers/x/18511288#/ <comment><AUTHOR> Open source and open hardware, OS based on OpenWRT (plus plans to support other distros), and sensible enough specs.

Though, I'm not happy that as designed the WLAN antennas are internal. Multiple modules of a single type are not supported either, though they say that might change.

Also, anybody having experience on the distance of convenience between some Ubiquity mesh setup and self-made OpenWRT tinkering? (I've not heard many good voices regarding the latter...)

</comment><comment><USER2> Specs where?

I couldn't figure out what SoC it has, how much RAM, or even whether it's any better than their existing Omnia.

<comment><USER3> More detailed specs are at [https://mox.turris.cz/en/specification/](https://mox.turris.cz/en/specification/). The base module has:

        Marvell Armada 3720 1.2 GHz dual core
        512M DDR3 RAM
        1Gbps LAN
        USB 3.0
        34-pin GPIO

…and it costs $29 (board only). It's not supposed to be "better" than Omnia, but more modular, and generally cheaper (depends on what modules and options you choose of course).

 _Disclaimer – i work at CZ.NIC (not on the Turris team though)._

<comment><USER3> Sorry, the data sheet is now @ [https://secure.nic.cz/files/turris- mox/datasheet/MOX_datashe...](https://secure.nic.cz/files/turris- mox/datasheet/MOX_datasheet_IGG.pdf)

<comment><USER2> Thank you. So it uses an ARMv8 SoC, while the Turris uses ARMv7, making the Mox better.</comment></comment></comment></comment>