Show HN: We built a Chrome extension to use J/K to navigate popular sites - <AUTHOR> http://jknavigator.org

<comment><USER2> Sounds like Vimium, but with interactions for popular sites built in.

<comment> thomas-st It's faster and easier to use than Vimium for common use cases as there is no need to enter a two digit link code to open a link.

</comment></comment><comment><USER3> You could also use the Vimium extension that already exists: <http://vimium.github.com/>

</comment><comment><USER4> Great work! I made a similar extension a few months ago but only for Craigslist (<https://github.com/yonran/craigslist-shortcuts>), but it's great that your one works on many different websites. I still prefer simply focusing the link instead of also adding a background-color, though.

<comment><USER5> I think the focus is not enough, though I have to say it also took me some time to get used to the pink. We could actually make that into a pretty easy setting... Maybe I'll do it sometime when the pink pisses me off too much.

</comment></comment><comment><USER6> Looks great!

An alternative interface for navigating links with your keyboard in Chrome is DeadMouse: <http://chetan51.github.com/deadmouse/>

With it, you can simply start typing out the text of any link you see on the page to go to it.

<comment> thomas-st Just tried it out. This extension "highlights" the links in the most annoying way possible I've seen since the introduction of the blink tag :). Looks like it also could conflict with many sites if they use shortcuts. Are you using this extension on a regular basis?

</comment></comment><comment><USER7> I'm using gleebox[1]. It has "ESP visions" - you define selector for elements on certain website whic are tab-able. You can also hit 'g' and write text of link/alt of image and that element would be highlighted. [1] <http://thegleebox.com/>

</comment><comment><USER8> Indispensable comment about Opera having fully customizable page and browser keyboard navigation that works with every site built in since prehistorical ages (in Chrome timeline 8-). <http://imgur.com/I2Vpk>

</comment><comment><USER9> When I try to make an entry for 'hackerne.ws' (using same selector as news.ycombinator) it saves but then resets the regex after I visit the site and it doesn't work. Any ideas? Otherwise, I'm a fan - will keep using.

</comment><comment><USER10> Help me understand this ⌘ + return. This "⌘".....don't know it? explain more...cant be able to open a new in a new tab using that short cut

<comment> thomas-st It's the command key on the Mac and the control key on Windows. What OS are you using?

<comment><USER10> Thanks so much. It has worked. I am using windows 7. May be developers of this application should consider simply including the full words.

</comment></comment></comment><comment><USER11> I especially like using this on FB. It allows me to efficiently go through every post without missing any. Much better than scrolling!

</comment><comment><USER12> This worked for me in the main page of hacker news, but I could not get it to work for moving between comments.

</comment><comment><USER13> All good, except I hate the pink. You should make the CSS customizable in Options.

</comment><comment><USER14> +1

Google results get a new dimension. Same for Reddit.

<comment><USER15> You should check out <http://redditenhancementsuite.com/>. I wish there was something similar Hacker News, or there is?

</comment></comment><comment><USER16> Err, is there any way to get to the comments in HN?

<comment> thomas-st Currently you have to hit tab three times to highlight the comments link, then press return. Not ideal, but should still be faster than having to use the mouse.

<comment><USER16> It'd be great to just steal opera's shift arrows to move to the next link in that direction on screen. (or hjkl)

</comment></comment></comment><comment><USER17> I use this to browse HN, it's great.</comment>


Ask HN: Best and worst UI's you've seen? - <AUTHOR> The worst I've seen, or tried to use is my city's public transportation bus app here:
https://centro.org/service_schedules/mobile-app
Best would be ProxmoxVE's, here:
https://pve.proxmox.com/wiki/Main_Page <comment><USER2> My current choice for worst UI / UX also is from a public transportation app, to be specific the latest version of the public transportation app the Rhine- Ruhr area (a metropolitan area roughly the size of Greater London in terms of inhabitants. One would think they had at least some sort of quality assurance for a product targeting such a large number of customers but it seems they don't ...): [https://itunes.apple.com/de/app/vrr-app- fahrplanauskunft/id4...](https://itunes.apple.com/de/app/vrr-app- fahrplanauskunft/id423533479?mt=8)

The new UI / UX is glossy, somewhat unique, seemingly modern and ... completely useless. You can't even perform the most basic tasks anymore like finding a route from A to B.

In terms of best UIs the previous version of Headspace (both on mobile and the web) was fantastic. The latest version is still good though not quite as good in my opinion.

Trello has a great UI, too. It's simple and easy to grasp with no unnecessary frills.

</comment><comment> ng-user Personally, I don't like flushing toilets around the world because there are a million ways to do it. I'm surprised something like that did not get standardized internationally or nationally or even across a brand. I understand it's cutting water costs in a lot of places by having a lite flow + regular with the dual press but it's wildly inconsistent. I've pulled the lever, pushed a button, pushed a half button, pulled a string hanging from the ceiling.. is this just something that we mutually agree is fucked? Or is it just me?

Shit could be improved.

<comment><USER3> In some parts of China, you need to throw a bucket of water into the bowl to get it to flush down.

</comment></comment><comment><USER4> My favorite web UIs are Joyent's mgmt console and the GitLab UI. I find them both clean and intuitive to use - although as GitLab has been adding features sometimes I end up looking for something - but once I find it it's very easy to use and it is obvious what the next step is with the big fat green button. I love the big fat button!

[Disclaimer: I am now a GitLab trainer and reseller too.]

<comment><USER2> While GitLab's UI isn't particularly bad I don't think it's terribly good either. I keep ending up searching for specific options like pipelines or adding web hooks.

Granted, it's a both complicated and complex product but GitLab could still use some improvements in making the UI more intuitive.

<comment><USER5> What kind of pipeline information do you usually look for? The pipelines list is available from the project main navigation.

About web hooks, we've recently changed things a bit and consolidated some of the project settings. You can find those in Settings > Integrations.

</comment></comment></comment><comment><USER3> The new Linkedin is probably one of the worst UI's I've seen.

<comment><USER6> LinkedIn was always a recruiting/contacts database disguised as a social platform. So while their UI was never great, the new UI is particularly horrendous (and surprisingly, its performance seems pretty poor too.)

<comment><USER7> Funny that they hired the creator of Ember to work on the new version. Not even him could make it faster?

</comment></comment></comment><comment><USER8> the HBO go mobile app has always been pretty horrible. Even the new one has some pretty obvious bugs. it's like they didn't bother testing it at all.

I thought the Yahoo screen app was one of the more beautiful and intuitive apps. It was really pleasant to use, just has very little content so I rarely used it.</comment>


Fundraising Hacks: Interview with Naval Ravikant of AngelList - <AUTHOR> http://go.danielodio.com/AngelList

<comment><USER2> If you're looking to raise angel money you should absolutely watch this video.

</comment><comment><USER3> Would like to see examples of successful AngelList applications. Applied recently and wasn't about to get any intros out of it.

<comment><USER4> Hey Matthew, I don't see your pitch. Is the company name Stormpulse? Hit me up at email@example.com. Gracias.

<comment><USER3> Will do! Thanks.</comment></comment></comment>


Ad blocking - <AUTHOR> http://sethgodin.typepad.com/seths_blog/2015/09/ad-blocking.html <comment><USER2> I've whitelisted two sites: reddit, and duckduckgo. In both cases I have zero knowledge of how honest they are about their data collection and transfer, it was just based on a vague sense that they aren't evil.

I have _no way_ of knowing how to judge if Wired or the NYT uses "honorable" ad networks. I suspect Wired and the NYT also have no way of knowing that.

It's like taking a phone call on the couch at night, and some random person is asking me all kinds of personal data. I don't know what they're going to do with it after the call, and I'm not even sure which of the data is dangerous to release.</comment>


"Anti-Solar Panel" Could Generate Power from Darkness - <AUTHOR> https://oilprice.com/Alternative-Energy/Solar-Energy/This-Anti-Solar-Panel-Could-Generate-Power-From-Darkness.html <comment><USER2> Generating power from very small temperature differences (2-3 degrees) with require gigantic surface areas to move energy. 25 mW/m2 is a TINY flux rate, and they are talking about how to get it to 0.5 W/m2? Need a bigger temperature difference...</comment>


WordPress Photo Gallery - <AUTHOR> http://www.apptha.com/category/extension/Wordpress/Mac-Photo-Gallery Slideshow your pictures with Photo gallery plugin also you can upload photos, images and create multiple albums with mac dock effect and facebook sharing features. <comment><AUTHOR> This Photo gallery has professional look and the mac dock effect attracts me more...</comment>


What do you use scala for? - <AUTHOR>

Just wondering what types of projects use scala. <comment><USER2> At my current company, relayr, we use Scala Spray for building infrastructure API, that our internal and third-side apps will use (user management, app, device management). Our main functionality, reading and processing data from a large number of sensors, is currently built with Node.js, and it's mainly IO, not CPU now. After release we think to gradually move data processing and filtering to Scala / Akka.

At my previous startup we used Scala with Unfiltered and Akka for processing lots of data from recipe sites and food stores (NLP stuff, scrapping, retrieving ingredients, matching ingredients with goods etc.), Play framework was also used for admin board and marketing backend.

I personally use Scala / Akka to learn about distributed programming, concurrency, compiler and DSL building etc.

</comment><comment><USER3> If you want an at scale scala user, twitter is a huge one.

[https://github.com/twitter](https://github.com/twitter)

Apache Spark is also written in scala. [http://spark.apache.org](http://spark.apache.org)

Scala is used for a lot for systems programming. I personally use the JVM for my distributed machine learning work.

</comment><comment><USER4> Interesting topic, would love to see more answers here.

I am currently building a web based database management tool in Scala and Backbone.js. Our initial prototype was built in Python, but Scala proved to be multiple times better fit for this kind of project.

Also we now offer both self-hosted and in cloud versions mainly thanks to JVM.

</comment><comment><USER5> We (PagerDuty, YC S10) use Scala + Cassandra to build distributed services that comprise our realtime infrastructure - receiving alerts from monitoring systems, sending out email/SMS/phone/push notifications and everything in between. High availability is a requirement.

</comment><comment><USER6> At my last job, we used Scala/Play to essentially generate a complex single- page app composed of dozens of partial templates. It was a technology mismatch and proved to be a controversial decision among the developers.

</comment><comment><USER7> The Typesafe blog regularly includes case studies to give you some idea of Scala in the wild: [http://www.typesafe.com/blog/CaseStudy](http://www.typesafe.com/blog/CaseStudy)

</comment><comment><USER8> TextTeaser ([https://github.com/MojoJolo/textteaser](https://github.com/MojoJolo/textteaser)). It's an automatic summarization algorithm I created.</comment>


Rockmelt - a socially integrated browser - <AUTHOR> http://www.rockmelt.com/

<comment><AUTHOR> A couple more links on this: [http://www.pcworld.com/article/209998/rockmelt_the_facebook_...](http://www.pcworld.com/article/209998/rockmelt_the_facebook_of_web_browsers.html) and <http://blog.rockmelt.com/post/1509448074/world-meet-rockmelt></comment>


Do you really know why you prefer REST over RPC - <AUTHOR> https://apihandyman.io/do-you-really-know-why-you-prefer-rest-over-rpc/ <comment><USER2> > Both RPC and REST use HTTP protocol which is a request/response protocol.

Uhm... No? Who lied you so horribly?

> As far as I know, there are no particular rules for this style [RPC] but > generally:

No. You have just pasted REST-ish ad-hoc protocol. This is not RPC. RPC uses a properly defined protocol, such as XML-RPC or JSON-RPC or Thrift or gRPC, and it doesn't shit all over the place in URL router: the procedure to be called is encoded in _the body of the request_ , along with parameters.

<comment><USER3> It's all "justified":

> In this post, when I talk about RPC I talk about WYGOPIAO: What You GET Or > POST Is An Operation.

When you consider RPC only as this extremely contrived protocol, _of course_ REST is better.

(I, too, don't know why the author is trying to pretend that this incredibly narrow specification is somehow representative of RPC in general.)</comment></comment>


Royal Society journals are free to access until Oct 27 - <AUTHOR> https://royalsociety.org/journals/ <comment><USER2> This is not open access. The Berlin declaration states it quite clearly. It is about usage rights.[0]

Publishers really love co-opting the OA movement. Scheming up increasingly convoluted colour OA categories. Or deluding the concept with campaigns like this.

[0] [https://openaccess.mpg.de/Berlin- Declaration](https://openaccess.mpg.de/Berlin-Declaration)

</comment><comment><USER3> So they are doing 'Open Access Week', I tried to figure out why, and why this week, which led to me this page [https://royalsociety.org/journals/free- content/](https://royalsociety.org/journals/free-content/) and then to here:

[http://www.openaccessweek.org/page/about](http://www.openaccessweek.org/page/about)

</comment><comment><USER4> The contents might already be on SciHub and other sites, but I can already see the bandwidth spike they're going to receive from doing this... from those sites wanting to complete their collection, among others.

</comment><comment><USER5> Why not be open access always if it can be done for a week?

<comment><USER6> The Royal Society is a non-profit organisation - the income is used mostly to fund research, but also to fund scientific collaboration, and on public policy to try and ensure governments are making decisions that are not completely ignorant of the scientific evidence (of course they can then ignore that evidence).

From the RS financial statements, the income from its publishing side raises about £7.5m per year, and the publishing expenditure costs are about £3.5m per year. So that's around £4m/year that is invested in science that otherwise wouldn't be.

I think many RS fellows would like to see the RS journals become open access all the time. But it would mean that less research could be funded.

Disclaimer: I'm a fellow, but I don't have any insight into future plans on this front.

<comment><USER7> Put all the back catalogue of research into a zip file and throw it out there via bit torrent.

Let the downloaders become the sharing infrastructure.

<comment><USER6> Much of the back catalogue is already available open access direct from the Royal Society:

 _Most of our oldest content is now freely available, specifically, all papers older than 70 years. In addition, papers published between 10 years ago and either 12 months ago (biological sciences) or 24 months ago (physical sciences) are freely available. For Biographical Memoirs all issues are now freely available, apart from the most recent issue._

<comment><USER8> That's odd. What about the papers published between 70 and 10 years ago?

<comment><USER9> Ancient organisations like the Royal Society have arcane rules and oddities. This is likely one of them.</comment></comment></comment></comment></comment></comment>


Evolution of a Web Developer: From PHP Newbie To Python Ninja - <AUTHOR> http://dev.hubspot.com/bid/85467/Evolution-of-a-Web-Developer-From-PHP-Newbie-To-Python-Ninja

<comment><USER2> This is really good stuff. The roadmap from beginner to expert is generally consistent irregardless of the language or framework.

I always hoped for a "knowledge map" for programming (example: <http://www.khanacademy.org/exercisedashboard>) that clearly shows knowledge dependancies.

Can this be a step towards developing a comprehensive, collaborative knowledge map which would benefit programmers of all levels?

<comment><USER3> You're giving the article way too much credit (I'm the writer).

But, I think the notion of creating a Khan Academy style map for web development would be really cool.

<comment><USER2> Ha, well I was giving credit to where it's due. As a novice coder I find myself always wondering about the bigger picture, and so I can always derive value from a step-by-step process of how someone more experienced than myself has achieved their current status.

</comment></comment></comment><comment><USER4> Great read, but I'm slightly horrified that it took until #18 to realize "concatenating strings to form SQL queries is a bad idea."

<comment><USER3> The order on some of those items is a bit messed up (i.e. it's not quite chronological).

I was uncaffeinated at the time I wrote it, and the order somteimes reflects the order I thought of them in, not the order they happened.

</comment></comment><comment><USER5> _Ruby as a language feels a little strange. Maybe it was designed for hipsters. If I had a dog, it would bark at Ruby code._

I'd love to know why. The way this is written makes it feel less like opinion and more an opportunity to take a pop. Ruby seems susceptible to this sort of "hipster" callout in a way other languages aren't. Confusing a _language_ with its comically unfairly defined userbase, perhaps?

<comment><USER6> Well, Ruby on Rails has as its mantra "Convention over configuration" which naturally lends itself to an experience filled with Rails-isms. I think the language has similar leanings, so you end up with a bunch of Ruby-isms as well. For example methods ending with ! mutate their receiver, and methods ending with ? return booleans. None of this is enforced at a language level but it is still part of standard Ruby practice. You end up with an ecosystem of opinionated software built on an opinionated platform, which makes many people -- myself included -- feel a little bit like an outsider when I read Ruby code that is littered with little idioms.

</comment></comment><comment><USER7> Nice post. It's even more fun to read and compare to your own experience, there are some things that I had know during the earlier stages that you learned at a later stage and some things I didn't know until the later stages, but you knew at the earlier stages.

</comment><comment><USER8> Tangent: Shouldn't the python equivalent of a Ninja be a Mongoose?

<comment><USER9> Some pythons are nocturnal and many mongooses are diurnal. If you've never coded in Python, you could call yourself a "python mongoose" and not be _completely_ disingenuous.

</comment></comment><comment><USER10> I found this very enjoyable and am finding myself a few steps behind where you currently are in your journey. Nice article.

</comment><comment><USER11> Good to see how other developers evolve. I wonder if OP would start with PHP today or go straight to Python/Django?

<comment><USER3> I (the OP) would go straight to Python/Django. Knowing PHP is somewhat useful, but if using it were completely mandatory (because I was building a WordPress plugin or something), I suspect I could figure it out.

</comment></comment><comment><USER12> If the author reads these posts: please, for the love of all that is true and pure, do not open with an apology. Instead, just edit out whatever you were going to apologize for.

Also: I really like the article.

<comment><USER3> Sorry about that. :)

</comment></comment><comment><USER13> Surprisingly enjoyable read. Thanks!

</comment><comment><USER14> I fail to see why selection of Python over PHP should be an Evolution.

<comment><USER15> Seriously.

It should be more of a metamorphosis from dung to butterfly, or perhaps an ascension to heaven.

</comment></comment><comment><USER16> Step 152: "And then I switched to using the Java platform entirely, because there are things I am doing that are much more easily expressible in some of the JVM languages (not Java)."

</comment><comment><USER17> Great read,:)

</comment><comment><USER18> _"Realized that my friends will forever make fun of me if I stay on PHP"_

That was lame.

 _"Considered Cake as well, but went with CodeIgniter mainly because I had friends that had used it"_

Can you see a pattern here?

<comment><USER19> Yes. It's really easy to learn things when you have a support network turn to for questions and advice.

<comment><USER20> _or_ a willingness to take your own path and not mind the opinions of others.</comment></comment></comment>


Bitcoin and the hype cycle - <AUTHOR> http://blog.vincentleeuwen.com/bitcoin-and-the-hype-cycle <comment><USER2> I have noticed the relationship to the basic hype cycle as well. As the average volume of blockchain transactions increased price stability has also increased. One can only wonder what will happen to the price of Bitcoin once all coins have been issued while the number of blockchain transactions continues to increase.</comment>


Ask HN: I feel as if I have ADD, how do I pick a field and stick-to-it? - <AUTHOR> The problem I'm having is picking a path.
I've jumped from field-to-field once every 1 to 1 1/2 years.
I've been a sysadmin, software developer, full-stack developer and I'm currently a software engineer focusing on Docker containers.
I read cons about the current "field" I'm in and suddenly jump-ship. It's hard to stick to one-path. I feel as if I'm spreading my abilities too thin.
I did DevOps but got stressed out from all of the paging/alerts.
I started my own business in VPS hosting, but found the competition stiff.
I program away all day every day in Go and Ruby; but yet I'm not as-good as those who've studied algorithms and data structures.
Right now Machine Learning has taken my interest, but I know I don't have the math skills to become an "expert". I know that after a year of working on it, I'll probably jump-ship to another area/field that interests me.
I love Docker and Kubernetes but feel as if I don't jump on the band-wagon of the current trend (machine learning), I'll fall behind.
How do I pick a path and stick-to-it? <comment><USER2> You might find some good pointers here: [https://www.reddit.com/r/GetMotivated/comments/5950tm/text_i...](https://www.reddit.com/r/GetMotivated/comments/5950tm/text_i_just_finished_the_online_coursera_course/)</comment>


Alexa and Google Home 'have capacity to predict if couple struggling' - <AUTHOR> https://www.independent.co.uk/life-style/gadgets-and-tech/alexa-relationship-dating-google-home-advice-imperial-college-research-a8658976.html <comment><USER2> > "In-home listening devices will soon be able to judge how functional > relationships are as well as interrupt an argument with an idea for how to > resolve it, the study said. ... The technology would reach a verdict through > acoustic analysis of communication between couples – examining everything > from everyday encounters to arguments."

Currently, these devices only start listening when users ask them to, but understanding relationships would require the owners of these devices to consent to being constantly monitored.</comment>


Bitcoin Unlimited fork reaches majority support for first time - <AUTHOR> http://nodecounter.com/#bitcoin_classic_blocks <comment><USER2> Is this the first time? What happened at February 5? (And there was an almost draw at February 19?)

Do they need a supermajority, like 75% or 90%, before something interesting happens?

<comment><AUTHOR> Damn, I was on mobile and didn't see the previous history. It's my understanding that the target is 75% before bitcoin unlimited will try and "take over".

/r/btc is excited about it. Apparently there's a civil war between /r/bitcoin and /r/btc and the broader bitcoin community.

The issue is bitcoin fees have skyrocketed at an almost exponential pace and transaction times are way up.

Right now a "normal" fee from last year results in a ~24hr wait time

[https://bitcoinfees.21.co](https://bitcoinfees.21.co)

The core group has a "solution", and the Unlimited group claims to have a better one (as well as a list of grievances such as the core group being irresponsibly slow to react, also that their solution doesn't scale and is a stopgap etc etc).

I'm no expert though, if anyone could chime in with more info I'm all ears.</comment></comment>


Ask HN: How to raise kids as entrepreneurs? - <AUTHOR>

I have 3 kids (the oldest one is 5), and a niece of 9 that I care much about. I believe that making and selling products is something that is both mentally and financially rewarding, and something that they don't teach you in school.
In my ideal world, all 4 of them would build their own company selling a product that lies within their passion.
My plan is to set aside Sunday afternoon to 'build stuff'. Probably LEGO for a long time since they are still young. And maybe later let them blog about the progress. Are there any of you who also want to raise entrepreneurs? If so, how do you do it? <comment><USER2> Wouldn't you be proud of one of your children if they became a teacher?

Proud of a second for embarking on a career as a pilot?

And the third for running a hospital well?

One of the things I've learned watching children grow to adulthood is that their lives unfold wonderfully and unpredictably, and what I thought was important for a five year old turned out to be less important than what they thought, as a five year old, was important.

Build Legos on Sunday afternoons just for the sake of building Legos and being in the moment with your children. That's what matters.

Good Luck.

<comment><AUTHOR> The most important thing to me is that they can do what they love every day, and make a living out of it. And that can indeed be teaching or any other job if they wish.

But school already has a system for that, if they want to go down that road. I want to provide them with another option, the one of building and selling their own creations. But it needs to be fun an playful indeed.

I'm definitely enjoying playing Legos with them, backing pizza's and last weekend building a house in Minecraft with my oldest :).

</comment></comment><comment><USER3> I want my daughter to do whatever she wants. (Although even I was relieved when 'Bathroom Designer' fell off the table).

She has told me in no short order that she wants to be A) a kid doctor, a doctor for kids. B) a rock star C) a restaurant owner D) a zookeeper E) an actress F) an MMA fighter G) an engineer H) a conductor (of trains) etc.

My daughter is six, I could care less if she wants to be a rock star in her twenties, if she wants to go to college to be an architect, an engineer, or if she wants to move to Hollywood and go for success as an actor. The only thing I want her to do is be happy. In the mean-time, she gets dance lessons, karate lessons, music lessons, soccer practices. We recently went to see her favorite rock band live. The only thing I push her into doing is finding out who she is, and being a good person.

Now I'm sure you're doing much of the above (except rock concerts but hey, 'I'm a 'hip' dad'), however my point is you can't say entrepreneur and expect that to happen, but you can expose them to things that will boost their creativity, and show them what entrepreneurship has done for YOUR life. They will take all of these factors into consideration as they grow up. Don't set their time aside. Just make it a part of their lives. Of course, it's good for you to set time aside out of your own schedule but that's because we're adults and we have schedules to stick too oh hrumph busy busy. Just be their dad (& uncle!) and show them what you are passionate about, it will probably rub off on them.

</comment><comment><USER4> As a few people have pointed out, don't try to make entrepreneurs. But you seem to be on the right track to be a good parent which is what counts!

As I have pointed out in other posts, I am a serial entrepreneur. My mother and father, also both serial entrepreneurs, did not set out to make me an entrepreneur. They did spend a lot of time with me and my brother. I remember fondly going to the build out of a new store with my mom, or to my dads office, or sweeping (some of the businesses were actually not technical, and required a lot of sweeping, which I did, for a little spending money). My parents went to every one of my brothers baseball games and helped me with every science project and paper and "invention faire". When I grew to the point where I was starting a company and needed advice I would call my parents and the answer would often be something like "Remember the time when we had to balance the books in the store when so and so was stealing? This seems similar." And the light bulb in my brain would go off and off I would go, knowing what I needed to know to handle the situation I was in because of the experiences they had given me. It wasn't forced or "do this so you can be a good business man someday," it was far more of a situation of "hey, would you like to hang out and help around the shop today? I am making a piece for a client and could use a hand."

One other small point. My parents were and are still very wealthy. I grew up in a wealthy area. My friends always had allowances and such. My parents on the other hand never allowed me or my brother to have a dime we didn't work for. Many important lessons were learned from that. I remember as all of my Freshman Spanish class mates left for Spain and I couldn't afford the trip even though I know my parents could have easily popped down the $1000's in cash for it. Can you imagine the business acumen I have now gained from having financial experiences like that? I am grateful every day for them. (And I have made it to Europe on my own many many times at this point, so I am not left out).

The point is, be a parent and make experiences with your kids and nieces and nephews. Don't try to force it. I am now an entrepreneur, my brother is an executive at a large, Fortune 25 company. Build Lego's on Sunday's and be happy to know that in 20 years your kids will say, "I am so glad I got to build lego's on Sunday's with my parents".

</comment><comment><USER5> Keep in mind you can't force it on them . . . that said it starts with little things . . .

Growing up all I heard was go to college and work for a company. That's a good backup plan but keep being a founder in the forefront of their mind.

The office I used to work at the owner brings his dog in the office on Fridays . . . my son and wife came by for a visit one Friday . . . even though my son was 6 when he left the office with me the first thing he asked was 'why can they bring their dog to work' . . . I explained that he owned the company and could make the rules . . . and that he earned more money by starting and owning the company than any of the employees . . . basically just look for teachable moments to get the idea in their head that they can start their own business someday . . . my sons response 'I want to have my own business someday'.

I tell him about creating apps and products, being your own boss, that working for someone else you can only make so much money, having your own business can enable you to work flexible hours and make more money to provide for your family in the future and you make the rules and get to pick what you work on.

I also keep a running list of videos, podcasts and articles to share with them when they are older . . . things that will still be relevant in 10 years . . . and I've shared my views with my wife, family and friends so they can point him in the right direction if something happens to me.

I know not everyone can be an entrepreneur but I think it's a good idea to groom this generation that it's an option if they are interested and groom them to have the skills.

Good luck . . .

</comment><comment><USER6> I am 21 right now and am an entrepreneur. I am in a start up which started about a year ago. One thing I can tell you from my perspective is that my parents never encouraged me to be an entrepreneur. I think subconsciously the school teaches you if you want to be an entrepreneur or not. I learned that I would be a great entrepreneur from all the group projects I was leading ever since I was young. All the other kids would want to make me the "leader" and that encouraged me to take action. Also from my peers in college, they told me the dreadful stories of working in a big company. Many universities have entrepreneurship classes (believe it or not).

You should be happy whatever your child wants to do with his/her life. Whether it be an entrepreneur or flipping burgers in the streets. I think as a parent, it's your job to open doors for the child. Show them there is more than working for a big company, expose them to different roads. Then LET them choose what they want to be.

It's cool that you want to set aside Sunday's afternoon to "build stuff", but I would say also take them for "sports club", "art school", "music school". Don't limit them to what you want to be, open doors for them.

</comment><comment><USER7> My background: I've been teaching math and science for 20 years, and I have a 3 year old of my own.

Brief thoughts: It's not so much about a Sunday afternoon event, as it is for how they see their world every day. So: Tell them when they ask insightful questions. Answer every question they ask about how things work, sparing them no detail they're interested in hearing. (Spare them harsh realities for a while. Be honest about the fact that people die, but don't dwell on that.)

Give them big principles at a young age - principles of science such as identifying questions, gathering evidence, testing ideas, being open to new ideas and refinements of ideas that work. Tell them that heat is a thing and cold is the absence of heat, light is a thing and darkness is the absence of light. Help them see that everything that exists was developed by someone - avoid using the vague "they". Say "European scientists just landed a probe on a comet!" That's much more powerful than "they". People who can say who "they" is can influence the world.

All that said, rituals like a weekly time dedicated to making things together is a wonderful idea. People will remember the daily perspective they grew up with, and they'll remember the rituals we immersed them in. The greatest gift we can give our kids is exposure to many experiences, and the willingness to dive into the things they love.

</comment><comment><USER8> I try to teach my kids (age 6, 8, 9) both technology and entrepreneurship, but not necessarily together.

We do LEGOs, programming, robotics camps, etc.

But they also have a great time with their own little business. We have a huge garden and every week or two, they put all the extra produce in their wagon, walk around the neighborhood, and sell it. They usually make between $20 and $80 (when you're cute, $2 for a lemon is an easy sell). I love that it teaches them skills beyond _entrepreneurship_ (math, conversation skills, money, etc.).

Here's one of them in action: [http://instagram.com/p/tyEpthi9oZ/](http://instagram.com/p/tyEpthi9oZ/)

</comment><comment><USER9> As a wantrepreneur, I feel I'd have been less hesitant about it if I had the following in my childhood:

\- social activities (such as sports, competitions, workshops, cultural activities) that might have given me better socialization skills, since business always involves getting along with people you may never even know

\- better persuasion and communication skills, for the same reason

\- taught to plan and manage, even earn, my finances

\- resources to make things (electronics, mechanical, woodworking, metalwork)

On the other hand, one thing I did get as a child, and which I'm very grateful for, was an environment filled with knowledge and books on wide range of subjects (this was before the Internet). That helped me build wide interests, and the business ideas I work on right now are totally unrelated to my formal education.

</comment><comment><USER10> First, you can't force them to be entrepreneurs and you shouldn't. Second, entrepreneurship is not limited to making and selling products. If you want to prepare your children for the possibility of being entrepreneurs, make sure they are exposed to thinking about business. Read books about some company founders with them. For many people, the idea that they could start a business is something they never are exposed to. Try to give them a well rounded exposure to life and teach them to be observant and critical thinkers. Most importantly, try to encourage them to be active doers rather than passive consumers.

</comment><comment><USER11> Cameron Herold did a Ted talk: [http://www.ted.com/talks/cameron_herold_let_s_raise_kids_to_...](http://www.ted.com/talks/cameron_herold_let_s_raise_kids_to_be_entrepreneurs?language=en)

</comment><comment><USER12> I think if they can understand the concept of measurable outcomes i.e., how will you know that x has happened (answer: something like "because i can see/hear/do/feel etc. y many things") – that's a huge win.

To me understanding this concept is the foundation of everything. How you achieve this mindset is then a matter of tactics, whether that's LEGO or anything else.</comment>


We Don't Need Uber - <AUTHOR> https://www.vice.com/en_us/article/y3mm5x/we-really-dont-need-uber <comment><USER2> Article begins with:

>The company is unsafe and unprofitable. It's past time to start considering alternatives.

Why would I care about their profits and look for alternative if it gets me from point A to point B for 1,5$ in Ukraine? LoL

<comment><USER3> I love getting my rides subsidized by VCs</comment></comment>


Avoiding conferences in the USA for now - <AUTHOR> http://www.drmaciver.com/2017/02/avoiding-conferences-in-the-usa-for-now/ <comment><USER2> Who?</comment>


Matrix Multiplication - <AUTHOR> http://matrixmultiplication.xyz/ <comment> daniel-levin This is a cool example of what Bret Victor calls an "Explorable Explanation" [0]. That said, I feel that it's more important to understand how and why matrix multiplication corresponds to a composition of linear transformations than learning the actual mechanics of doing the computation. You can get good at matrix multiplication without knowing what is going on. I view that as a less valuable activity than learning about linear transformations (vector- space structure preserving mappings) between finite dimensional vector spaces.

[0] [http://worrydream.com/ExplorableExplanations/](http://worrydream.com/ExplorableExplanations/)

<comment><USER2> For understanding the mechanics of matrix multiplication, I found it useful to think in an analogy consisting of a grid of two layers of pipes; One -- the input-pipes -- coming in one direction, and the other -- the output pipes -- laid in an orthogonal direction. Then there would be "taps" in the cross- sections between the input and output pipes, representing the numbers (multiplication factors, really) in the matrix. I illustrated this in this little drawing: [http://imgur.com/gallery/gBs64](http://imgur.com/gallery/gBs64)

The point then is that the taps (again, representing the matrix values) determine _how much of each item in the input vector, that should be mixed into each item in the output vector_.

This analogy has the limitation that the taps are allowed to _enhance_ the flow, not just limit it, like physical taps would. That is, outputting more than 100% of the input :P Also, while this way of illustrating it may make some sense for matrix * vector multiplication, matrix * matrix would probably become a prohibitively cluttered image.

<comment><USER3> I really like that. And matrix * matrix would just have to be 3D, with a whole cube of taps. Sure, not easy to illustrate, but the concept extends well. It also makes it more obvious what the complexity of the operation is.

<comment><USER4> Actually the complexity of matrix multiplication is not known. Current best is n^2.37

<comment><USER5> There is a proven lower bound [1], though.

[1] [http://epubs.siam.org/doi/abs/10.1137/0218052](http://epubs.siam.org/doi/abs/10.1137/0218052)

</comment></comment></comment></comment></comment><comment><USER6> This is cool, but I have a few criticisms:

\- Flipping something over like that looks cool, but confuses the brain. At least it confused mine.

\- Inconsistently calculating 1 or 2 elements at a time is confusing. Having 2 results calculated at a time simply put requires the recipient to untangle what is going on. This only gets worse when the recipient tries to do it themselves for examples with more columns in the right matrix.

Disclaimer: I am biased as I already know how to do matrix operations, and I visualize it differently. When multiplying by hand I translate the right matrix up, like in the animation, but do not flip it over. Then I calculate each element one at a time by taking the sum of products of the row and column that intersects over that element. Like so: [http://i.imgur.com/D572zOI.png](http://i.imgur.com/D572zOI.png)

As you can see I'm not much of a graphics artist.

Edit: actually, I think this would be really good if you "filter down" one column at a time, instead of moving the whole matrix down, so that it only calculates one element at a time, one column at a time. Means the animation will contain more steps, but I think that is actually to its benefit. Does this make sense?

<comment><USER7> > Flipping something over like that looks cool, but confuses the brain. At > least it confused mine.

I think it would be helpful to have a shadow of the right matrix after it's moved to the top. This way it would be easier to see where particular numbers are coming from in the original input.

Disclaimer: I'm similarly biased and actually the reason I came up with this shadow thing is because I also imagine the right matrix moving like here but somehow this never causes it to disappear from its original place on paper, go figure, so this animation looked really alien to me.

</comment></comment><comment><USER8> Not sure if anyone here has mentioned this yet, but it's useful to think of matrix multiplication as the most natural extension of one-dimensional algebra into multiple dimensions. First, remember that people first wrestled with and found solutions to "1-D" equations like "ax^2 + bx + c = 0". When others came along asking about how to extend these results into multiple dimensions so that previous results might still be useful, the most natural answer was found to be how we now define matrix multiplication. To see further evidence of this, take your favorite linear algebraic equation using matrices and then look at the edge case where you have only 1x1 matrices in your equation. Usually you'll end up with something that looks analogous to a result in basic algebra in real number (or complex) variables, not matrices.

If all this still seems counter-intuitive, then realize this is essentially why math is so important to our logic. It helps us to reason about things that are not obvious, yet logically must fall through from the basic tautologies we "chose" (like 0 != 1, addition on integer numbers, etc.). Or, more aptly in this case, it helps retain an analogous symbolic representation (the overall logic of the equation at the high level) despite a change in the underlying nuts and bolts of computing solutions to it (matrix multiplication vs. our regular "1D" multiplication).

<comment><USER9> I'm sorry, but that's not how that works.

Your example is of a second-degree equation, which can't be solved by linear algebra. Linear algebra was invented to solve systems of linear equations, and matrices first arose as a convenient notation for expressing those. Matrix multiplication came later and is now understood to correspond to the composition of linear morphisms on vector spaces.

If you try to extend the (very few) methods we have for obtaining exact solutions to polynomial equations in one variable to higher dimension, you (a) fail and (b) invent algebraic geometry.

</comment></comment><comment><USER10> I like the idea, but my brain is wired differently.

Usually, when I do matrix multiplications, the rows on the left side transition to the columns on the right side. In the example, the 1 goes to 2, 2 to 6, 1 to 1.

The animation completely confused me, because it looks like being reversed, but the result is the same.

Maybe, make this a visualization option?

<comment><USER11> I do this too and this is way more intuitive in my opinion, as you can easily see which entries of the resulting matrix are linear in which rows and columns. Also, you don't need to transform the matrices in a way that is impossible to do on paper.

</comment></comment><comment><USER12> For me personally, a simple animated version of this image[0] looping through rows of A and columns of B seems easier to understand.

[0] [https://upload.wikimedia.org/wikipedia/commons/e/eb/Matrix_m...](https://upload.wikimedia.org/wikipedia/commons/e/eb/Matrix_multiplication_diagram_2.svg)

</comment><comment><USER13> The idea is good but I am afraid it misses the point entirely. Multiplying both columns of the right hand side matrix to the left hand side matrix is really not helping the target audience understand what is going on. 2 operations are going on as the same time. I believe [https://www.youtube.com/watch?v=XkY2DOUCWMU](https://www.youtube.com/watch?v=XkY2DOUCWMU) is a much better way to illustrate the matrix multiplication (and provide a clear explanation of the why) .

<comment><USER14> Comments like these (aside from providing a nice link) just make authors of content sad. Why say such thing? You can say "here is another helpful link", but "misses the point entirely"? The point is to provide a self-evident mnemonic, as explained here: [https://github.com/staltz/matrixmultiplication.xyz](https://github.com/staltz/matrixmultiplication.xyz)

Not nice.

<comment><USER13> Mr Staltz, please allow me to elaborate. I did not mean to be mean at all, nor to reduce the value of your work, excuse me if I made you feel like that. I am actually grateful that you made this animation as it allows one to reflect on the concept.

If your kid proudly brings home a drawing, you are most probably going to greet him with warm encouragements no matter the quality of the art. The kid is in a process of developing his creative sense, learning, and forming his/her sense of reality. Comparing the drawing to what mature artists produce would certainly have a negative effect on the kid. The point is to provide a feedback relevant to the recipient of the critic.

The same goes here with this animation. I respect your work but obviously disagree with the usefulness of it. You made an animation to explain the matrix product, which is a really good idea. Alas, I think the realization of it gives a confused picture of what it is. I doubt that a student with no prior understanding of matrix products will get much enlightment. Too many operations are going on at the same time. This means that it misses its intended audience: students in need of building an intuitive understanding of the matrix product. That's what all those javascript (among others) animations (ex: [http://jackschaedler.github.io/circles-sines- signals/dft_int...](http://jackschaedler.github.io/circles-sines- signals/dft_introduction.html)) are all about: make it simpler to grasp a concept. Unfortunately, though beautiful, the animation is not clear. At best it provides a visual mnemonic for multiplying matrices which maybe useful for some but not for the younger version of me in need of understanding :)

I realize that instead of providing such a harsh critic, I would have been better inspired to suggest improvements. Mea culpa :)

<comment><USER14> I think your elaboration just made it worse, as you compared my work to a kid's drawing, and assumed that the target audience will not benefit from that. I actually have proof against that. In Twitter, over 2000 people have retweeted, and countless people have commented along the lines of "I wish this was around when I was studying in school", or "now I finally understand it", and even school teachers saying thanks and how they'll use it in class next week. And, even this hackernews thread, for that matter.

<comment><USER15> To back up the parent, unfortunately, the audience is not always qualified to judge the quality of your work - for the simple reason that they have no idea what they are missing!

What they are missing from your explanation is "why". Your animation shows how to multiply two matrices, and anyone confused about the mechanics of doing that might find it helpful.

But the actual mechanics are not of much use if you don't know why they are this way. Everything in mathematics is made up by humans, so why would someone at some point write down this particular set of rules to apply to rectangular arrays of numbers?

To that end, I reaffirm the parent's opinion that your visualization only helps to confuse people, giving them a false sense of understanding. There is already too much emphasis in education on "how", and too little on "why"; the comments from the teachers you mentioned are downright scary to me.

Perhaps you will take this comment as yet another critique that is too harsh - but it must be done, so that others don't mistake your animation for an explanation of concepts behind the operation. When one understands the concepts, visual mnemonics - like the one you created - are not needed.

To start a productive discussion, however, (which, hopefully, might lead to you using your skills to come up with a version 2 of your work), I am very curious to hear your answers to these questions - which people confused about matrices might have:

1\. What information is actually stored in a matrix? Why write down a bunch of numbers in a rectangle instead of, say, a list or a triangle (like Pascal's triangle)?

2\. Why would one want to "multiply" two matrices? That is, why would one want to combine two matrices, and what information would the "product" matrix store?

3\. Why do the rules for "multiplication" actually yield the result desired in (2)? Wouldn't some simpler rule do the same? For instance, if we have two 2x2 matrices, why not just multiply the numbers there elementwise (top left by top left, top right by top right, etc.)?

My claim is that anyone who can answer these questions wouldn't need your visualization - and, conversely, your visualization doesn't help answer these questions at all.

I'd be glad to be proven wrong, so I'm looking forward to your explanations of the three questions above.

<comment><USER14> I totally acknowledge that it is missing the "why", I knew that from the beginning. The widget I built simply answers the "how". It's a very focused tool, and this kind of tool may be very useful in itself. It's a tool to be used in the context of other tools, like books and courses. Your ordinary calculator never answers the why question. And if the audience, who includes both students and teachers, isn't qualified to judge the quality of the work, who exactly is?

On a side note, it's disgusting (I find that an appropriate word) how hackernews threads are so harsh and negative. You can do a fun exploration: search for historical threads announcing tools and services that were revolutionary (Angular.js or React.js, to name a few), and you'll find a plethora of negative comments. If hackernews discussions are good judges of quality, absolutely everything in this world sucks.

<comment><USER15> > And if the audience, who includes both students and teachers, isn't > qualified to judge the quality of the work, who exactly is?

Again, it is very unfortunate, but on the average, high school teachers wouldn't be.

For starters, linear algebra (where multiplication belongs) simply isn't taught at high-school level. It is not in the standard math curriculum in any state. Bits and pieces of linear algebra, like teaching matrix multiplication alone, simply don't belong in the high school curriculum.

For that matter, too many high school instructors either don't have deep enough knowledge of linear algebra themselves, or if they do, they don't have enough experience or expertise in teaching this subject - simply because it is not a part of the curriculum.

To compound the problem, too often we don't teach math educators well enough. The math requirements for math teachers are often significantly lower than for math majors, and many don't get to see too many facets of mathematics.

To answer your question: matrix multiplication belongs in a university-level linear algebra course. Our system is so perverse that the version taught to non-math majors is missing most of the explanations, and even the math majors don't really learn the linear algebra until their second (or even third) year.

So here's my opinion:

The instructors qualified to judge linear algebra instructional materials would be people involved in teaching linear algebra courses at a college level - the professors, TA's, and people running help sessions in universities.

The students would be qualified to judge in retrospect, once they have themselves learned the material beyond the definition.

>On a side note, it's disgusting [...] how hackernews threads are so harsh and negative. [...] If hackernews discussions are good judges of quality [...] this world sucks.

Don't take HN threads as judges of quality - you have seen yourself that they are not. Yes, they are endless sources of critique, and some of the critique is valid and useful. Things people here talk about may succeed in spite of the flaws, but it doesn't mean they are flawless.

And it's great! This thread alone can give you many ideas on where to go from here if you like making educational props like this one - and how to improve what you have done. Treat this thread as a feature request, as a todo-list, as a bug report. You have just got yourself a small army of through beta-testers, who were kind enough to submit detailed reports (with links and examples!). Leverage that.

If you need praise: you are a talented programmer, who can create great visualizations that can help many people get a deeper understanding of things that you have mastered. And the critique is here because of this potential - because you really, really, really can do better.

>I totally acknowledge that it is missing the "why", I knew that from the beginning. The widget I built simply answers the "how".

"How" what?

How humans multiply matrices? Certainly not, I don't cut out one matrix and put it on top of the other. And, to be frank, if I need to multiply two matrices, I either use a computer algebra system (or code it up).

How computers multiply matrices? Software like MATLAB or BLAS would use more complicated algorithms which perform faster (Karatsuba, Strassen, whatever).

In the end, your tool is just a visual mnemonic for a definition. It's a SOHCAHTOA for matrices. And really do think we don't need more of that in education.

> Your ordinary calculator never answers the why question.

That's why there should be way more caution in using calculators in classrooms than is currently exercised. The current way of things is horrendous, but doesn't have to be. I have designed Calculus labs with MATLAB in which, I hope, the computer is not doing anything that the students could do by hand (given a lot of time). Done this way, calculators and computers become tools which aid understanding.

Anyway, regardless of what the motivation of others here was, here is where I'm coming from:

I've taught linear algebra help sessions where by the middle of the semester the students could multiply, row-reduce, invert matrices without having a clue what they are doing. They could put a bunch of vectors in a matrix and do - what to them was - some number magic to check for linear dependence.

I would draw them two arrows on the board pointing in different directions, and ask them a simple question - are these vectors linearly independent or not? They would be thoroughly lost.

That's the state of linear algebra education in the US. We are teaching people mechanical operations that computers do better.

There are better approaches! Linear Algebra Done Right (S. Axler), for example, is one of the few books that justifies the definition of matrix multiplication. Practical Linear Algebra does everything visually, and is suitable for beginners. But the first text is only taught to math majors, and the second one is not widely used.

In any case, I am highly opposed to teaching the mechanics an operation, because with a good understanding, people will come up with the mechanics themselves.

You are an example of this. Having an understanding of the operation allowed you to come up with a visualization. But the visualization, in my opinion, doesn't set one on a path to develop a similar understanding. And this is where your work can be improved.

For instance, take this: [https://betterexplained.com/articles/matrix- multiplication/](https://betterexplained.com/articles/matrix-multiplication/) [https://betterexplained.com/articles/linear-algebra- guide/](https://betterexplained.com/articles/linear-algebra-guide/)

Is this a perfect explanation? Maybe not, and it's not animated. But the author tries to pass on the way to get a better understanding, a new angle on how to understand the operations being done.

Would doing things like that with an animation be challenging? Certainly. But don't blame the audience for having a high expectation of what you can do.

</comment></comment></comment></comment></comment></comment></comment><comment><USER16> Question for staltz - are you happy with the cycle code at [https://github.com/staltz/matrixmultiplication.xyz/](https://github.com/staltz/matrixmultiplication.xyz/) ? It feels like a lot of work for this sort of task which I feel could have been achieved by using an existing (mutable) matrix lib and drawing ad-hoc. It feels like an awful lot of code written - especially with all the `.something === "SOME_STRING_CONSTANT"` (couldn't those be typed directly in TS btw?).

Still, you're a smart guy - I'm trying to see why it's worth it. Do you really feel model-view-intent shines here?

(Nice visualization by the way)

<comment><USER14> Yes, I'm very happy with that code, apart from one thing: how animations are done sometimes with tweens in JS, and sometimes with CSS.

I'm sure it could have been built with less code. In general, the more shortcuts you take and the less abstraction you use, the less amount of code you will have. But also, it's likely that you would mix concerns more easily. So in general, when separating concerns, you end up getting more LOCs. That's what I've perceived in my experience, not a fact that I can prove.

So I do feel like model-view-intent shines here. Model only has state concerns. I was careful in moving away DOM-related code from the model. So theoretically you could reuse this model for React Native or any other UI target. View only displays state in a visual representation, and intent only captures user events and represents them in a form suitable for the model.

About some TypeScript code, I think you referred to [https://github.com/staltz/matrixmultiplication.xyz/blob/mast...](https://github.com/staltz/matrixmultiplication.xyz/blob/master/src/Calculator/model/actions.ts#L58-L80). These could have been avoided. The only purpose they serve is to make inference work out for lines like these: [https://github.com/staltz/matrixmultiplication.xyz/blob/mast...](https://github.com/staltz/matrixmultiplication.xyz/blob/master/src/Calculator/model/reducers/controlPanel.ts#L16-L17) TypeScript knows that `action` is of type StartMultiplyAction. If we had only done `.filter(ac => ac.type === 'START_MULTIPLY')`, TypeScript couldn't infer anymore. So I understand those isFoo functions are very boilerplatey, but they serve the purpose to provide accurate typings. It's optional and depending how you write TypeScript code, you can use more type casting and more `any`, or you can go down the route of providing accurate types everywhere, which is what I did. This is not at all related to Cycle.js nor MVI.

Feel free to ask more architecture-related questions. I like these. What else feels like "too much code"?

</comment></comment><comment><USER17> I think a cool way to visualize matrix multiplication would be to put three matrices MxN, NxK, MxK on the sides of a three-dimensional box MxNxK. Each cell of the matrix MxK would cast a "shadow" onto some row in the MxN matrix and some column in the NxK matrix, whose dot product would give the value of that cell.

<comment><USER18> Would you mind elaborating or providing a link for the uninitiated? I use matrix multiplication in almost everything I do and that sounds like a neat way to visualize what is happening.

</comment></comment><comment><USER19> It's easier to think of matrix multiplication by computing the matrix elements, which means reducing the problem to NM vector dot products.

To get the element of the result matrix at position (n,m), compute the inner product < r_n | c_m >, where r_n is the nth row vector of the left matrix and c_m is the mth column vector of the right matrix. Once you try it, you'll see that it's also much easier to visualize than this strange, unintuitive approach.

With great power comes great responsibility. That domain name belongs to that person. I hope they do society a favor and put more content regarding MM that that, because they chose one of the least intuitive ways of thinking about it. Put more ways up, or ditch the domain.

If the goal is to get people to understand what matrices are, the best way is to teach them about operators, transformations, vector spaces and linear algebra in general, because this is really the only way to fully understand what's going on without relying on some heuristic.

If the goal is to get people to remember how to do matrix multiplication, at least put up more ways of doing it.

<comment><USER14> Nope, won't ditch the domain. I'd recommend you ditch that type of speech.

<comment><USER19> I'm sorry if my words upset you. That said, it would be a shame to tell someone off if they bring up a good point (however brash). I used to teach this stuff, and I can tell you many of my students would end up being more confused with your visualization. I hope you can see that you've assumed some responsibility. That's all I can hope.

</comment></comment></comment><comment><USER20> Change to color of rows to red & blue (while multiplying) so it is easier to which result is which product.

<comment><USER21> This is a great idea

</comment></comment><comment><USER22> Neat visualization. I feel it's important and eye-opening to note that there's not just one way to multiply matrices, there're five (according to Strang):

5 ways to multiply A B = C

1) Each element of C is a dot-product of corresponding rows of A with columns of B

2) Each column of C is a combination of the columns A. Each column of B has the coefficients.

3) Each row of C is a combination of the rows of B. Each row of A has the coefficients.

4) Accumulate outer-product. Accumulate sums of of outer-products of each col of A with each row of B.

5) Block multiplication

They all produce the same answer, but different ones provide different insight for particular situations.

See Video Lecture #3 of Strang's Linear Algebra course for more info: [https://ocw.mit.edu/courses/mathematics/18-06-linear- algebra...](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra- spring-2010/video-lectures/lecture-3-multiplication-and-inverse-matrices/)

<comment><USER23> His lectures are awesome, wish some of them could be remastered though

</comment></comment><comment><USER24> Awesome.

Some concepts in math are so much easier to grasp with an interactive visual. I once made an entire game around matrix multiplication -- such that players didn't even know they learned how to do this.

And sometimes, visualizations can help cause discoveries. A lot of progress in theoretical physics came about because physicists 'guessed' what nature's equations should look like...and then got shocked when they discovered they were right.

Take James Clerk Maxwell, for instance:

"He had achieved his greatest success by relying on just one empirical fact known to every school boy. Yet now he tried to do without any empirical facts, by pure thinking. He believed in the power of reason to guess the laws according to which God has built the world."

[http://www.mathpages.com/home/kmath103/kmath103.htm](http://www.mathpages.com/home/kmath103/kmath103.htm)

<comment><USER25> I'm curious about this game. Is it online?

<comment><USER24> I built it for the Windows 8 Store (of all places), years ago, in base C++/Cx. All de-published now though. Could dig up a gameplay video if you wish...

<comment><USER25> Thanks, but I'm just curious and don't like videos. The world needs more things like that, though -- it was nice to hear of it.

</comment></comment></comment></comment><comment><USER26> As others have mentioned, many introductions to linear algebra / matrix multiplication only gives the student a formula, but not why the formula looks like it does.

Why is matrix multiplication not pointwise, was something I had a hard time understanding.

Better explained has a good article on this, that really made it click for me

[https://betterexplained.com/articles/linear-algebra- guide/](https://betterexplained.com/articles/linear-algebra-guide/)

</comment><comment><USER27> This is nearly how I think of it, but for me I do one column of the second matrix at a time. I think it is clearer that way. This way makes it look like there is some kind of staircase thing going on which there isn't really.

<comment><USER28> That was my thought too - I was taught to do one row of the first matrix with one column of the second matrix at a time.

I found the whole staircase thing quite confusing.

</comment></comment><comment><USER29> Nice illustration of the "row picture" of matrix multiplication. The "column picture" is equally important. This intro lecture by Prof. Strang is a really good lesson on that: [https://ocw.mit.edu/courses/mathematics/18-06-linear- algebra...](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra- spring-2010/video-lectures/lecture-1-the-geometry-of-linear-equations/)

Also, this short tutorial on linear algebra covers the row + column pictures on the first page: [https://minireference.com/static/tutorials/linear_algebra_in...](https://minireference.com/static/tutorials/linear_algebra_in_4_pages.pdf) (disclaimer: I'm the author)

</comment><comment><USER30> This reminds me of Nicky Case's Explorable Explanation of a 2D transformation matrix: [http://ncase.me/matrix/](http://ncase.me/matrix/)

</comment><comment><USER31> As a gamedev who uses matrices all the time, I don't find this animation useful at all for practical work. Instead I think of matrix multiplication as creating a list of ordered operations (scale x translate x rotate etc) which is just encoded efficiently in a table, to then be sent to other parts of the program for use. You can even remove items from the list by multiplying by their inverse.

<comment><USER32> But of course when you have encoded the scale, rotate and translate into the matrix, it isn't possible to decode it back out to your original values. This is obvious if you consider the fact the following produce identical matrices (just consider 2D for now):

1\. Scale in X and Y of -1

2\. Z rotation of 180

<comment><USER31> Yes, I know, what is your point exactly? When I say 'list of ordered operations' I mean that if I were to apply the matrix to any object, you can imagine each transform in the list being applied one after another to the object visually, resulting in the final position.

</comment></comment></comment><comment><USER33> This is sounding increasingly like the Monad situation, where everybody has their own incompatible approach for explaining it, and none of them make any sense.

I feel like I understand Matrices _less_ now than when I started reading around here.

<comment><USER34> If by "Monad situation" you mean trying to learn a concept by just reading a single blog post then sure. Trying to learn something by scattered blog posts without engaging in material is a bad idea no matter what the problem is. For some reason nobody expects to read a blog post and understand the fundamental theorem of calculus without first learning intuition and doing calculations with derivatives _and_ integrals. On the other hand, if you have been working through a concept and you read a blog post that gives a different perspective than you're used to, it might help.

If you want to actually learn something, then get something like a book or series of posts and work through examples and explore the ideas yourself. But having more than one intuition is _useful_ and complaining about the fact that there is more than one way to understand something is _lazy_.

</comment></comment><comment><USER35> Matrices are linear maps, and matrix multiplication composes the linear maps. Now statements like the determinant of the product is the product of the determinants, the trace is preserved under similarity transforms (since similarity transforms just rewrite the linear map in a different basis), etc. are intuitive.

I've always felt that these explicit calculations don't really get to the point. You can memorize them and still not really understand what's going on.

<comment><USER9> Maybe you know something I don't, but I don't find these statements about the determinant and trace intuitive just from knowing that matrix multiplication corresponds to composition of linear maps. They can be made intuitive by appealing to geometry, but I don't see how to do that just by staring at the algebraic picture.

Actually, proving them without picking a basis and then showing that what you get is invariant under base change is quite nontrivial and involves throwing a lot of heavy machinery around; see for example Coffman's non-coordinate proof of the statement about the trace in [http://users.ipfw.edu/CoffmanA/pdf/book.pdf](http://users.ipfw.edu/CoffmanA/pdf/book.pdf)

For the determinant, if you want to do everything without picking a basis, you're basically proving that the exterior power operation defines a functor on the category of finite-dimensional vector spaces, which isn't that bad to do, but you somehow have to explain what all those words mean along the way.

</comment></comment><comment><USER36> I have never understood Matrix Multiplication - which has always prevented me from doing cool 3D stuff.

Now I do! THANK YOU! :)

<comment><USER37> You totally don't need matrices to do cool 3D stuff though.

</comment></comment><comment><USER38> How I would explain it:

\- First, show how to multiply a row vector by a column vector.

\- Then, show how to "simultaneously" multiply several row vectors by a single column vector by placing the row vectors in a matrix.

\- Now, similarly, do the same with the column vector. And voila, matrix by matrix multiplication.

<comment><USER39> im trying to understand this, and what you said appeals to me but i can't quite visualize what you mean. do you have an illustration?

</comment></comment><comment><USER40> I think this is overdone and does not help the intuition. two things: (1). the first step of transposing the second matrix 90 degree is unnecessary and confusing. A row vector and a column vector are different. This step confuses the two. (2). All the final elements are independent and should be calculated in parallel, the stepped anime is not necessary and does not reveal this basic fact.

</comment><comment><USER41> This is very cool. For me I needed to know why it works not what it does.

I worked it out here for 2d transformations [http://webglfundamentals.org/webgl/lessons/webgl-2d-matrices...](http://webglfundamentals.org/webgl/lessons/webgl-2d-matrices.html) and then expanded it to 3d, perspective, and cameras.

</comment><comment><USER42> The UI confuses me to the point of frustration.

1\. A "Previous" button would help since otherwise you have to go loop through the whole thing to see what actually happened (e.g. how exactly the first step lifts and rotates the matrix, what's getting added to what).

2\. The final animation step is a transition from the patently false equation "[matrix1]=[result_matrix]" to the finally correct equation "[matrix1] x [matrix2] = [result_matrix]". This could be avoided if instead of transforming "[matrix1] x [matrix2]" into "[matrix1 plus overlay]=[result_matrix to be filled]" and then doing the 'waterfall', the equation "[matrix1] x [matrix2] = [result_matrix to be filled]" was maintained throughout, perhaps with the moving overlay slightly grayer after lifting [matrix2].

</comment><comment><USER43> Very nice, but the mental model I prefer is to think of a Matrix-Vector multiplication as the weighted sum of Matrix columns, and a Matrix-Matrix multiplication as just several Matrix-Vector multiplications (results being the columns of a new matrix).

</comment><comment><USER44> Nice. I needed something like that when I was getting started with ML courses.

</comment><comment><USER45> This would have been so awesome to have in college. I stumbled upon RegExr the other day ([http://regexr.com](http://regexr.com)) which I absolutely love. It kind of shares this spirit of showing people how to do things that appear complex at first glance, but have a sort of addicting nuance to them. Thanks for sharing.

</comment><comment><USER46> I find this image a lot easier to work with. The animation above just seems a tad confusing:

[https://staff.fnwi.uva.nl/r.vandenboomgaard/IPCV/_images/Mat...](https://staff.fnwi.uva.nl/r.vandenboomgaard/IPCV/_images/Matrix_multiplication_diagram_2.png)

</comment><comment><USER47> I have found the Stanford EE263 class to be possibly the best class on linear algebra. This might be due to the fact that it's technically a class about linear dynamic systems not linear algebra per se

[http://ee263.stanford.edu/](http://ee263.stanford.edu/)

</comment><comment><USER48> I my head I see the matrices remaining in place, while the vectors from the left slowly float to the right, produce dot products, which in turn float into their destination cells in the new output matrix just to the right of the equals sign.

But that's just me.

</comment><comment><USER49> See the very first video in Strang's MIT Linear Algebra course on YouTube.

There's two ways of seeing matrix multiplication (from a matrix POV, rather than as linear transformations).

</comment><comment><USER50> Awesome. What about making it more clear that the "End" button will animate remaining steps? Before clicking it I thought it would have jumped to the last step.

</comment><comment><USER51> Thank you! This is marvelous and really made me understand this process at a much simpler level. Please consider making more for other mathematical concepts :)

</comment><comment><USER52> I have no idea what's going on there.

But it's a cool piece of art, I'm guessing that was the intention.

</comment><comment><USER53> Appropriate use of the .xyz TLD :-)

</comment><comment><USER54> I wish we had visualizations like this back in the 90's when I studied statistics.

</comment><comment><AUTHOR> I wonder if this visualization could be turned into a fun game.

</comment><comment><USER55> Nice, now let's do it with the Strassen's algorithm

</comment><comment><USER56> Cool visualization.

</comment><comment><USER23> Now make one that can find inverses ( ͡° ͜ʖ ͡°)

</comment><comment><USER57> Another one for matrix inversion would be nice.

</comment><comment><USER58> Misrenders on Firefox for Android.

<comment><USER14> Yeah, I'm aware. It annoys me too. [https://github.com/staltz/matrixmultiplication.xyz/issues/1](https://github.com/staltz/matrixmultiplication.xyz/issues/1)

</comment></comment><comment><USER59> this is more than just visualization. i can touch the computation. each step is tangible

</comment><comment><USER60> Interesting, I wonder why Facebook has this website blocked, preventing me from posting it on my wall.

<comment><USER14> Good sign that it's time to leave Facebook. Really

</comment></comment><comment><USER61> Meh, the site is blocked at my workplace. Websense is really crummy.

</comment><comment><USER62> Uggg, why is zoom disable on mobile devices?

</comment><comment><USER63> Cool

</comment><comment><USER64> I read the title and thought, oh God, not another one, the second was bad enough and I like to pretend that the third never happened...</comment>


Peter Reinhardt on Finding Product Market Fit at Segment - <AUTHOR> https://blog.ycombinator.com/peter-reinhardt-on-finding-product-market-fit-at-segment/ <comment><USER2> Not many comments on the startup school stuff this time around. There was some discussion on his similar talk Mar 17

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


How many iPhone 5′s will sell in the opening weekend? - <AUTHOR> http://www.asymco.com/2012/09/13/how-many-iphone-5s-will-sell-in-the-opening-weekend/ <comment><USER2> Less than in the iPhone 4s opening weekend?

</comment><comment><USER3> No one cares.</comment>


Show HN: React 101 – Free online course for advanced beginners - <AUTHOR> https://ihatetomatoes.net/get-react-101/ <comment><USER2> Why is that?

</comment><comment><USER3> damn, React is so disgusting how can it be so wide spread

<comment><USER4> Why do you consider it so disgusting?

As an aside, we use it at work because it offers server side rendering, seamless transition to client side rendering, and most importantly, React Native.

What are better alternatives in your mind to cover these use cases? Also, in your eyes what problems can be solved better than React is solving them in?

<comment> web-dev-123 How are you liking React Native? Kind of on the fence right now with learning it

<comment><USER4> Our RN project is quite early in development, so it's hard to say, but so far we like it quite a bit. We're a small shop, so the thought of hiring out a dedicated Java _and_ ObjC developer was really, really hard. RN made this whole project much more approachable, and is proving invaluable.

Again though, these are just early impressions.

<comment> web-dev-123 Thanks, I appreciate your response. I can see how it was right for your specific scenario.</comment></comment></comment></comment></comment>


Glimpse 0.1 Released as the Rebranded Fork of the Gimp - <AUTHOR> https://www.phoronix.com/scan.php?page=news_item&px=Glimpse-0.1-Released <comment><USER2> I'm looking forward to all the new and improved things now that this long- standing problem has been addressed. I've known so many people with good ideas for it who spent their finite time and energy on other projects instead because of the name.

Why people get so mad about this is beyond me. _Every_ time it comes up, everyone including the developers says "fork it to change the name." Then someone does it, and now _that 's_ a problem.</comment>


LaunchKit team heads to Google and open-sources its tools - <AUTHOR> https://techcrunch.com/2016/07/27/launchkit-team-heads-to-google-and-open-sources-its-tools-for-helping-devs-launch-their-apps/ <comment><USER2> "Our incredible journey!"

I wonder what the investors ended up out of the deal?

(Kudos to them on giving users a 12 month sunset window and open sourcing their code...)</comment>


Developers: Try Windows 10 Linux Subsystem Instead of MacOS - <AUTHOR> https://jhatax.blogspot.com/2016/11/developers-windows-linux-subsystem-is.html <comment><USER2> I bet people (and power users) reluctantly will get used to it!

<comment><AUTHOR> OP here. Is the reluctance borne out of a dislike for Windows (privacy, functionality, UI) or is it something else? Windows laptops, particularly the Surface Book and the Dell XPS line, compare very favorably to the MacBook Pro line. The differentiators usually are the touchpad and macOS.

The former seems moot for the developer audience, a number of whom have an external keyboard and/or mouse.

So it comes down to a preference for macOS. What should the Windows team do to convince non-Windows developers to give their OS a fair shot?</comment></comment>


IPhone 5 will reportedly sport 8 megapixel camera from Sony - <AUTHOR> http://www.edibleapple.com/iphone-5-will-reportedly-sport-8-megapixel-camera-from-sony/

<comment><USER2> I'm hoping the iPhone's camera will someday use a larger image sensor. That would improve the quality of images shot with an iPhone, a lot more than just increasing the resolution from 5MP to 8MP. The iPhone 4 has a 1/3.2" sensor [0]; it'd be nice if a future model had a 1/1.6" sensor or even a 4/3" sensor [1]. The camera in Nokia's N8 already has a sensor size of 1/1.83".

[0] [http://arstechnica.com/apple/news/2010/06/sizing-up-the- ipho...](http://arstechnica.com/apple/news/2010/06/sizing-up-the-iphone-4-for- shutterbugs.ars)

[1] [http://en.wikipedia.org/wiki/Image_sensor_format#Table_of_se...](http://en.wikipedia.org/wiki/Image_sensor_format#Table_of_sensor_sizes)

<comment><USER3> It won't. When you start getting bigger sensors, you start needing a longer focal plane or crazy optics with aspherical elements. This most definitely means a thicker phone.

<comment><USER2> The iPhone 3GS' camera has a 1/4" sensor. With the iPhone 4, Apple shaved off 24 percent of the size of the iPhone 3GS. And yet, the iPhone 4's camera has a larger 1/3.2" sensor.

Sure, to get to 1/1.6", the iPhone would have to get thicker. Personally, I wouldn't mind. I've owned every iPhone model since 2007, and honestly, the original iPhone was thin enough for me. (Of course, Apple likes to make their products thinner, not thicker, so it's not likely.)

</comment></comment></comment><comment><USER4> 5 MP is more than enough, better optics & bigger sensor, please.

</comment><comment><USER5> The resolution is completely irrelevant. The optics are what define quality.

<comment><USER6> Well… The sensors do define quality too, and there is some correlation with resolution, which is reverse: given the same size of the sensor having more pixels makes matters worse: less photons hitting one pixel, lower S/N ratio, noisier images, poor low light performance.

</comment></comment><comment><USER7> I'd rather see larger, rather than denser, sensors. Although I suspect the tiny apertures of phone cameras will always be the limiting factor.

</comment><comment><USER8> I look at 8 megapixel and wonder why such poor resolution. These days with RED Epic (<http://www.red.com/>) and similar such on the market, surely better can be accomplished? I mean if it is good enough for hobbits, should be good enough for 'complex social interaction' right? Oh well maybe by IPhone 10 or so...

<comment><USER9> Physics, that's why. The sensor in the standard DSLR is fairly large and thick and has a fairly large aperture to let enough light hit it. The sensor in the iPhone is about the size of a pinky nail. You cannot get the megapixels the RED has without larger sensors.

</comment></comment><comment><USER10> Anyone else think that this is a bit of overkill for what is effectively a snapshot camera? Nobody is doing serious photography with an iPhone.

<comment><USER11> > Nobody is doing serious photography with an iPhone.

Bullshit. A quick Googling reveals plenty of professional photographers using iPhones in their work.

For example: [http://www.chasejarvis.com/index.php#mi=2&pt=1&pi=10...](http://www.chasejarvis.com/index.php#mi=2&pt=1&pi=10000&s=0&p=5&a=0&at=0)

<comment><USER10> Professional != Serious, necessarily.

If my wedding photographer showed up with an iPhone, I'd demand my money back.

<comment><USER11> You need to define "serious", then. I'd consider photos taken with the intent of exhibiting them in a gallery pretty "serious" photography.

I wouldn't hire an artist to do a building-sized mural in pencil, but that hardly means no one's doing serious art with pencils.</comment></comment></comment></comment>


Arduino, open-source electronics prototyping platform - <AUTHOR> http://arduino.cc/

<comment><USER2> ... Okay, you linked to Arduino.

(I like Arduino - I use Arduino when I want to start messing around with a new bit of hardware, because it's practically like programming from the console; dead simple and as 'rapid' as hardware prototyping gets. I got into AVR as well, mucking about and seeing what interesting stuff I could output to video.

Hardware prototyping is one of the most enjoyable ways to sandblast your free time that I know of. ;)

But, what's the story? Why did you submit this?

<comment><USER3> I'm always amazed how many not-so-random people I meet are into Arduino, and how many of them began interested in programming because they cut and pasted a few sketches which they then tweaked.

Got any current projects? My non-existent free time is devoted to a track driven, maze solving robot.

<comment><USER4> I plan on using one in a EE senior design course, making an IR tracker using Wiimote camera with some servos for full pan and tilt control. Also going to interface a nunchuck for a manual control mode.

<comment><USER3> Sounds great - hope you keep a diary blog of your progress.

</comment></comment></comment></comment><comment><USER5> I got into AVR programming before hearing all about the Arduino. I don't really understand the appeal since an AVR development platform is quite simple to put together for a lot less money than an Arduino board. I also prefer Freeduino since it's open source:

<http://www.freeduino.org/>

<comment><USER6> You know, all the cool conceptual new media artists use Arduino. It's marketing baby!

More seriously, Arduino is open source too.

</comment></comment><comment><USER7> Yes it's great - but what exactly is the news part? It has been widely available for several years.

</comment><comment><USER8> Time to tweak this little baby:

(= gravity* 1.4 timebase* 120 front-threshold* 1)

      (def frontpage-rank (s (o gravity gravity*))
        (/ (- (realscore s) 1)
           (expt (/ (+ (item-age s) timebase*) 60) gravity)))

      (def realscore (i) (- i!score i!sockvotes))

      (def item-age (i) (hours-since i!time))

</comment><comment><AUTHOR> I just discovered this today (and yes, on mefi). And I don't see what's wrong to share it with the fellow hackers here.

<comment><USER9> One of the major problems with HN is that is is an old, established community. That means that lots of stuff that is new to newcomers is old hat to the old hands here and they do not tire of telling people that.

In deference to the 'old hats', they do make this community in to what it is, a place where some pretty cool stuff gets posted and discussed at a fairly high level.

I personally see absolutely nothing wrong in people posting stuff that is new to them, for every 'poster' there must be 10's if not 100's of people to who it is news as well.

Just because you already know everything there is to know doesn't mean that that goes for everybody else too.

One way around this is to have a karma threshold for displaying submissions, that way the 'old hands' if they so choose could blind themselves to whatever the newcomers to on 'their' view of HN without any interference.

And it would stop people from taking 'revenge' on the submitter of this story the way it is being done right now, which I really think is not becoming of HN.

Have some room for each other please, and do not kick people for doing the same thing that you did yourself in the not so distant past.

</comment></comment><comment><USER10> Does anyone here have any cool projects to show off? I would love to see what people here have put together...

I'm working on an alarm clock that requires me to do some math in order to turn it off. Thinking about extending it with an automated french press with heating element to have a cup of coffee ready for me.

<comment><USER11> Not Arduino (I use mainly PICs at the moment 'cos they're cheap and simple) but my current hardware project is working with my friend Felix on his Machines (music making sound art machines):

<http://felixsmachines.com/>

I do the electronics & programming stuff, it's an awful lot of fun. Plus I got to go to TEDGlobal for a day :)

<comment><USER12> That's pretty sweet! I thought this video was great: <http://felixsmachines.com/video.html></comment></comment></comment>


Atomic CSS - <AUTHOR> http://acss.io/ <comment><USER2> I can tell that a lot of hard work went into this, which I really appreciate and admire. But I think this approach is fundamentally flawed because it attempts to solve one problem (managing CSS) by replacing it with an entirely novel problem (new syntax and interface for managing styles).

I would rather see tools that attempt to solve hyperspecific probems (e.g. culling unused styles, visualizing namespace collisions) without disturbing existing best practices (e.g. modular CSS, BEM, using preprocessors like SCSS and post-processors like PostCSS).

</comment><comment><USER3> [https://news.ycombinator.com/item?id=9577150](https://news.ycombinator.com/item?id=9577150)

I didn't care for it eight months ago, either. Non-semantic solution in search of a problem. I understand the motivation, I'm just not convinced this is "better".

</comment><comment><USER4> Why do people hate css so much?!?! Why is the solution to styling components to throw out css?

I thought BEM and other css frameworks/conventions solved this problem.

For example:

      myComponent/myComponent.jsx
      myComponent/myComponent.css

in myComponent.css

      .myComponent {
        /* whatever */
      }

Since all of your components are uniquely named(I hope), you can just use flat single class selectors without any specificity issues.</comment>


Why Do We Need More Wikileaks and Cryptome? - <AUTHOR> http://www.foo.be/cgi-bin/wiki.pl/2010-11-28_Why_Do_We_Need_More_Wikileaks_and_Cryptome

<comment><USER2> DOS Attack on wiki leaks [http://news.blogs.cnn.com/2010/11/28/wikileaks-were- under-cy...](http://news.blogs.cnn.com/2010/11/28/wikileaks-were-under-cyber- attack/)</comment>


AMPRNet: Amateur Packet Radio Network - <AUTHOR> https://en.wikipedia.org/wiki/AMPRNet <comment><USER2> Hams are the last to go offline and the first to come back on wherever a natural disaster strikes. They are due to their de-centralized nature incredibly resistant and often function as the first points of contact to provide information on the scope of the damage. Many hams are well prepared for this and have their own backup power, just in case. It's a pity that this 'hobby' (though if you'd walk into some ham shacks that word seems very inadequate) is slowly dying out. Most hams are well past their middle age, and the younger ones tend to work exclusively with bought equipment. Maybe the new 'maker' trend will usher in a new age in which it is considered cool to know how to size an LR circuit and how to wield a soldering iron.

<comment><AUTHOR> I've been on a bit of a kick to try and understand how we could re-build the Internet and computing based on what could be pulled from the scrap heap, which lead me to cross paths with AMPRNet. Nifty idea, though with its limited bit rates, information dissemination would only be for those with long attention spans :)

<comment><USER3> There's also the restriction of no encryption or commercial traffic. Still pretty nifty though.

<comment><USER2> The 'no encryption' rule is there to make sure amateur radio can not be (easily) used for nefarious purposes. Of course two people with Yagi's, very low power transmitters and a couple of very low bandwidth modems could still use the amateur bands (or any other frequency, really) to exchange information without anybody being the wiser. If they manage to be on the hoof while transmitting and are on the air for a very short time only then they could probably keep such a scheme alive for a really long time before being detected.

</comment></comment></comment></comment><comment><AUTHOR> Perhaps in a post-apocalyptic world this will be all that is left of the Internet. Though in a post-apocalyptic world there would be no one there to license the radio spectrum, and so why limit ourselves to HAM radio bands? -- Plus this all overlooks the need for power generation and storage in such a world :)

</comment><comment><USER4> My brother lives in Alaska, and he just built a home this past summer. No Internet, no phone. Just electricity. He has to fill a 1500 gallon water tank in the town because he's up too high to drill a well, there's no running water.

He's not too confident in his heater, and being away from home when it's -20C for more than a few hours can do serious damage if the heaters not running. Most people would just use the Internet, but he can't. So what do you do?

We scripted around APRS raw packets [1] and APRSDroid [2]. He bought some 1WIRE temperature sensors that are plugged into his OpenWRT WAP. The values are served up by apache, and a $10 smartphone from craigslist reads the values and pipes them [3] through APRSDroid. This then goes via the headphone jack to his radio and it gets digipeated a couple times before it hits the 'net.

Now he can watch his home temperature while he's at work and not get worried. How cool is that?

[1] [http://blog.aprs.fi/2010/03/decoded-and-hex-raw-packets- defa...](http://blog.aprs.fi/2010/03/decoded-and-hex-raw-packets-default.html)

[2] [http://aprsdroid.org/](http://aprsdroid.org/)

[3] [https://github.com/sielickin/local2aprs](https://github.com/sielickin/local2aprs)

<comment><USER5> What does he do if the electricity goes out?

<comment><USER4> The broadcasts stop, so at least he knows and can go check on things.

There's no reason he couldn't hook this up to an APU or something though.</comment></comment></comment>