Ask HN: Why do people consider Ruby better than Perl or vice versa? - <AUTHOR>

I've seen a lot of anti-perl, pro-ruby speak recently on HN and am curious for what reasons people find Ruby to be superior (esp. from people who have experience with both)
I'm personally a fan of both (and continuously delighted by learning new things in both languages). I'm spending more time with Ruby lately because it looks like it's where the community is going and is fashionable these days, but I have no real major issues with perl itself.
Perl is often a stereotyped as unreadable, but it's largely up to the writers of the code itself to make it _that_ illegible; it's not a consequence of the language. <comment><USER2> I tried both for a while when I was getting into programming, and one huge thing that has always bothered me about Perl is the strange behavior with changing sigils. Here's what I mean:

$foo is a scalar

@foo is an array

$foo[0] is the first element of @foo, instead of @foo[0]

As far as I know, Larry Wall's rationale as a linguist was that in English, one would say "this apple" and "these apples", but "this third apple" instead of "these third apple". The problem is that code isn't a human language, and obeying these rules doesn't make sense and puts additional cognitive strain on the programmer. Basically, having different syntax quirks for scalars, arrays, hashes, and file handles makes code unnecessarily weird, especially when combining them for things like multi-dimensional arrays.

<comment><USER3> Why is this difficult to understand? my @foo = qw(1 2 3); $foo[0] = 1;

you are referencing an array and returning a scalar. the sigil represents a scalar which is what is returned. A list isn't being returned, so why should the sigil represent that?

<comment><USER4> Why require context-dependent sigils when you don't need to?

Eliminate the unnecessary.

<comment><USER5> for the same reason strcmp() returns not just a -1,0, or 1, but a "distance" between the two strings being compared. A function or syntax has multiple uses if additional information is available to the programmer.

Example:

@array = qw(1 2 3); $length = @array;

print $length;

By allowing a non scalar to take an implicit scalar form, we have an extremely useful and quick way to get the length of an array. Nothing that difficult to replace with a len() call, but it's language features like these that make perl ($length = @_ may be the most useful of all) so handy for quick hacks.

<comment><USER2> I guess my problem with something like that is that conceptually it doesn't make much sense. There's no obvious reason why assigning an array to a scalar variable would give its length – it doesn't really feel clear or elegant, just unexpected.

</comment></comment></comment></comment></comment><comment><USER6> I believe the Ruby community is very pro-Perl. I enjoyed Perl myself and Ruby seems to have a lot of the same soul to it.

I usually say Ruby is everything I loved about Perl with none of what I disliked/hated.

<comment><USER7> I'm an old Perl hacker but do most of my work in Ruby these days -- and love it. I'll always have a soft spot for Perl, and will never forget how it helped build the Internet. But to me, Ruby makes Perl look like Java.

<comment><USER8> Can you explain the "makes perl look like java" comment? how does perl look like java?

<comment><USER7> I'm kind of kidding, but Ruby lets you do things more elegantly than you can in Perl, and with less verbosity (hence the Java comment). It's really a syntax issue that I'm talking about, but it matters a lot for readability and language usability.

Perl:

my $x = 'Apple Carrot Banana';

# sort them into an array

my @y = sort split(' ', $x);

# do we have more than 2 elements? (just a random test)

if (scalar(@y) > 2) {

      print "we've got ", scalar(@y), " elements!\n";

} else {

      print "insufficient elements. fail.\n";

}

Ruby:

x = 'Apple Carrot Banana'

y = x.split(' ').sort

if (y.size > 2)

      puts "we've got #{y.size} elements!"

else

      puts 'insufficient elements. fail.'

end

Ruby just seems more elegant to me, more programmer-friendly. YMMV.

<comment><USER9> A modern Perl programmer might write something much more elegant:

        my $x = 'Apple Carrot Banana';
        my @y = $x->split(' ')->sort;

        if (@y > 2) {
            say "we've got ${\@y->size} elements!";
        } else {
            say "insufficient elements. fail.";
        }

<comment><USER10> Or ever-so-slightly lighter Perl 6 version:

        my $x = 'Apple Carrot Banana';
        my @y = $x.words.sort;

        if @y > 2 {
            say "we've got {@y.elems} elements!";
        } else {
            say "insufficient elements. fail.";
        }

</comment></comment></comment></comment></comment></comment><comment><USER11> I've used perl for over 15 years and ruby for over 5.

I prefer ruby just because, I tend to be able to read and understand other people's ruby code easier than other people's perl code.

Maybe that is something about the language, maybe it is something about the people who use each, maybe it is something about their cultures or something about me. In the end it doesn't matter much to me.

<comment><USER12> Other people aside.. I prefer ruby because I tend to understand my own code easier when coming back to it. Every time I try working with Perl, I have to "relearn" the language

</comment></comment><comment><USER13> Ruby owes much of its popularity to Ruby on Rails. I don't think Ruby would be as popular (or "hip") if it hadn't been for Rails.

Ruby on Rails also appeared around the time webapp development was gaining a lot of momentum, so that might be a part of the reason.

I myself don't find Ruby superior, for me Ruby (on Rails) and Perl solve problems in different domains. Ruby is great for web development. Perl is great for system administration and scripting, and it's preinstalled on most Unix-like systems (although Python has replaced Perl for the most part in my case).

</comment><comment><USER14> Anti-perl speak? I must have missed it. I'm not sure why someone would hold a poor opinion of perl, unless it were simply personal taste. To say you don't like a language is not the same as saying a language is bad. I don't like to program in ASP.NET C#, but I don't think it's a bad framework/language.

Perl is kind of the "C of scripting languages". It's been around for a very long time (late-eighties/early-nineties). The fact that modern languages, like Ruby, borrow from a language that was invented in the late-eighties says a lot about that language.

<comment><USER15> _Perl is kind of the "C of scripting languages". It's been around for a very long time (late-eighties/early-nineties). The fact that modern languages, like Ruby, borrow from a language that was invented in the late-eighties says a lot about that language._

Perl seems like such an old language...it's hard to believe it's only been around 23 years. It goes to show you how quickly things change in the tech world.

</comment></comment><comment><USER16> What you are seeing is probably more sibling rivalry (or plain old fanboyism) than genuine hatred.

From the Ruby FAQ:

"If you like Perl, you will like Ruby and be right at home with its syntax. If you like Smalltalk, you will like Ruby and be right at home with its semantics. If you like Python, you may or may not be put off by the huge difference in design philosophy between Python and Ruby/Perl."

<http://www.rootr.net/rubyfaq-2.html>

<comment><USER16> But to the question of whether a language can be intrinsically "illegible", I'd say that it is easier to write "hard-to-read" code in some languages than others.

The conventions that a language community shares often lead to easier or harder to read code. In the Perl community, clever code which solves a problem is highly valued. In the Python community (as the Python Cookbook famously says) "To describe something as clever is NOT considered a compliment in the Python culture." A Pythonista is more likely to compliment your clean code, to say that it is pythonic.

I don't know enough about Ruby's community to say whether they have their own view about the relative merits of the clever/clean approaches or if they value something else entirely.

<comment><USER17> > I don't know enough about Ruby's community to say whether they have their > own view about the relative merits of the clever/clean approaches or if they > value something else entirely.

Although I think some groups are starting to pick up an anti-clever view of these (the Merb movement probably helped), but you can almost pick any random ruby github project and there will be some custom magic under the hood.

Not saying that's good or bad, just sayin.

<comment><USER18> The Perl community has a strong movement of anti-clever, or at least "clever as a last resort" these days. Much of the Modern Perl movement is based upon being solidly engineered over shiny and polished. Take for example Moose's stated policy of prioritizing Correctness over everything else.

</comment></comment></comment></comment><comment><USER19> People naturally compare Ruby and Perl because of the well-known similarities and influence that Perl had on the development of Ruby.

Ruby followers can rightly claim advantages over Perl (for me, the fact that you can do OO in Ruby without feeling that you're doing some kind of black magic is the big one).

But Perl devs could be justified in feeling that Ruby is doing nothing new - many of the libraries that make Ruby so useful have equivalents (predecessors in some cases) in Perl.

</comment><comment><USER20> Switched from Perl to Ruby in 2006. Things I like off the top of my head:

One variable type. This makes references unnecessary. Also, everything that can be stored in a variable is an object.

I can remember the Ruby syntax for defining a class. In Perl I had to look it up every time. Also Perl has two competing class systems.

Methods by default take a fixed number of arguments and there are no implicit conversions between strings and numbers. This catches a lot of errors.

Good Perl practice involves boilerplate such as 'use strict'. I hear about lint tools and such and it makes me think the situation has gotten worse since 2006.

The Ruby Array class and the Enumerable module are good. I've become dependent on methods that aren't as readily available in Perl: include? each_with_index all? any? permutation. Also the intersection and union operators: & and |.

Ruby blocks.

Ruby 1.9 has the Fiber class (rough equivalent to Python generator).

Ruby IO operations throw exceptions when they fail. Hence you don't need the '|| or die "could not open!"' idiom.

<comment><USER18> A lot of your points I'll concede are probably better in Ruby. At least they're defaults in Ruby, while the solutions in Perl exist on CPAN (AnyEvent and POE for example for solutions similar to Fiber exit on CPAN but not in core).

However either you've totally missed the last four years in Perl. Perl has been challenged by Ruby, Python and Perl6. Because of this we've had a lot of developments that you gloss over or ignore.

> I can remember the Ruby syntax for defining a class. In Perl I had to look > it up every time. Also Perl has two competing class systems.

The Perl Syntax for defining a class is pretty straight forward. I'm awfully sure I haven't had to look it up in a decade:

        package Foo;
        sub new { my $class = shift; bless {}, $class }
        1;

I'm not sure what the "competing class" system you're referring to is though. Perhaps you mean Moose (first released in 2006 when you left). The assumption that it is "different" is incorrect because Moose does roughly the above, except the `new` method is inherited from a base class. The Moose syntax here is:

        package Foo;
        use Moose;
        1;

Given the Moose syntax, I'm not sure what is harder to remember than Ruby's syntax:

        class Foo
        end

Additionally there is MooseX::Declare which hacks the Perl parser/tokenizer to allow new keyword syntax (a feature added to core 5.12) allowing you to say:

        class Foo { }

> Good Perl practice involves boilerplate such as 'use strict'. I hear about > lint tools and such and it makes me think the situation has gotten worse > since 2006.

Yes it is unfortunate that Larry didn't predict what the good defaults would be in 1987 (Perl1) or 1994 (Perl5). With Perl 5.12 good Perl practice involves:

        package Foo;
        use 5.12;

I'm not sure that this is necessarily "worse" than 2006's:

        package Foo;
        use strict;
        use warnings;

It is 2/3rds of the line count, but really we're talking about _one_ line. Additionally I'm a _very_ active member of the Perl community and I haven't heard about "lint tools". Perhaps you mean `perltidy`? This isn't a lint tool, it's a source code beautifier ... like html-tidy.

> Ruby IO operations throw exceptions when they fail. Hence you don't need the > '|| or die "could not open!"' idiom.

You can use the (now in core) `autodie` pragma to eliminate this idiom from Perl too. Yes it's unfortunate that the idiom could spread for the first 20 something years of Perl making the nearly-anal-backwards-compatible defaults not enable it.

> The Ruby Array class and the Enumerable module are good. I've become > dependent on methods that aren't as readily available in Perl: include? > each_with_index all? any? permutation. Also the intersection and union > operators: & and |

These exist on CPAN in various modules. List::Util, List::More::Util etc. Yes it is unfortunate that they're not more easily available. This is part of the price paid to backwards compatibility demons and keeping the Perl standard library (relatively) small.

</comment></comment><comment><USER21> _"Perl is often a stereotyped as unreadable, but it's largely up to the writers of the code itself to make it _that_ illegible; it's not a consequence of the language."_

Well, one argument is that the language (and community) should encourage good/readable/maintainable code.

<comment><USER18> I'd argue that the community by and large has for at least the last 5 years. Starting in 2005 with Damian Conway's _Perl Best Practices_ and the tools like Perl::Critic that came out of it. Add to that tools like `perltidy` (that was recommended strongly in Damian's book), a strong testing culture (see other threads on HN which discuss the automatic testing of _all_ modules on CPAN), modern changes like 5.12 enabling `strict` and `warnings` pragmas by default. Additionally tools like Moose simplify and reduce the boiler plate associated with traditional areas of Perl's ... shall we say extended obtuse verbosity ... namely Object Oriented programming.

By and large Modern Perl code is strongly encouraged to be readable, maintainable with a sound well engineered basis. If someone is telling you it isn't, they haven't paid attention for half a decade.</comment></comment>


Here's the Google Chrome Browser Comic Book - <AUTHOR> http://kara.allthingsd.com/20080901/heres-the-google-chrome-browser-comic-book-hey-microsoft-kaa-pow/

<comment><AUTHOR> _"... Here is Google's entire comic book–BoomTown's not going to say the search giant is juvenile, but a comic book?–that it is using to explain the technical details of its new browser called Chrome. ..."_

Kara you old fuddy duddy. It's a _"graphic novels"_ and all the audience this technology is aimed at understands glyphs better than newspapers. Choosing Scott McCloud also means they have good taste. Didn't think I'd say that about google.</comment>


50,000 BlockTogether Subscribers Pushing Twitter CEO to Dump Alex Jones/Infowars - <AUTHOR> https://medium.com/@shannoncoulter/how-to-get-alex-jones-off-twitter-once-and-for-all-51b14afc254 <comment><USER2> I am not a big fan of Alex Jones, but... pushing somebody away from popular platforms because a percentage of the users do not like him or her for whatever reason is appalling. With this way of thinking the twitter account of The Rolling Stones -- who have less followers than Alex Jones -- can also be deleted quickly. Who is next?</comment>


Effective Tensorflow - <AUTHOR> https://github.com/vahidk/EffectiveTensorflow? <comment><USER2> But _why_ use TF when you have PyTorch which is just as powerful, runs noticeably faster for most workloads, _and_ is easy to understand? What are you gaining by using TF these days?

<comment><USER3> I think at the moment, TensorFlow has a better tooling and deployment story with tools like TensorBoard[1], Tensor Processing Units in Google Cloud[2], distributed training[3], and deploying to mobile apps[4].

As time passes, PyTorch will probably get better at all of these things, but the core team and surrounding community need to make it a priority.

Meanwhile, Google's investment in TensorFlow will continue, and there's no sign that it will be a _bad_ bet for large-scale deployments... even if PyTorch becomes the favored system for prototyping.

[1]: [https://www.tensorflow.org/get_started/summaries_and_tensorb...](https://www.tensorflow.org/get_started/summaries_and_tensorboard)

[2]: [https://www.servethehome.com/google-cloud-tpu-details- reveal...](https://www.servethehome.com/google-cloud-tpu-details-revealed/)

[3]: [https://www.tensorflow.org/deploy/distributed](https://www.tensorflow.org/deploy/distributed)

[4]: [https://www.tensorflow.org/mobile/](https://www.tensorflow.org/mobile/)

<comment><USER2> TPU will be everywhere next year in the form of NVIDIA Tesla V100. And FB is clearly getting much better ROI. It's not even close.

<comment> david-gpu Google's TPU and Nvidia's GPUs are competing products.

Source: works at NVidia.

</comment></comment></comment></comment><comment><USER4> "The most striking difference between Tensorflow and other numerical computation libraries such as numpy is that operations in Tensorflow are symbolic. This is a powerful concept that allows Tensorflow to do all sort of things (e.g. automatic differentiation)"

Sorry if this is a stupid question, but can someone explain how symbolic operations allow automatic differentiation or link me to a good explanation?

<comment><USER5> "Symbolic operations" is a fancy way of saying you build up the full mathematical equations with operator overloading instead of computing the results at each individual steps. Having the full equations then allows to differentiate with regards to a variable of your choice included in that equation

<comment><USER6> Something like lazily calculating/evaluating an operation, right?

<comment><USER7> Yep (from a compilation perspective)

</comment></comment></comment></comment><comment><USER8> This is very good documentation. In my technical writing activities I have learned that there are two kinds of bad documentation: Math textbooks ("Prove X. Lemma: ..." [Why are we proving this anyway?]) and cooking recipes ("Do a, b, c, the end" [What if I need to cook something else?]) - too little practice or too little theoretical foundation. Sometimes both are present but too disjoint, or the theory is badly structured. This one does a great job at introducing the foundations, in the right order, and immediately showing what they mean to you in practice.

</comment><comment><USER9> For those who use Tensorflow regularly:

What 'type' of tensorflow do you recommend for a project starting today -- tf.slim, tf.contrib.keras, 'raw' tensorflow, keras with tensorflow?

I am building a production model so was probably going to use tensorflow because I like the tooling (tensorboard), and ability to write once for production and research.

</comment><comment><USER10> is anyone using tensorflow or caffe2 on the mobile ? We are trying to build something on the android.. but it seems there are no real-life deployments using caffe2 or tensorflow on the mobile.

<comment><USER11> There are clear instructions [1] for mobile (iOS and Android) in the official TF Repository.

[1] [https://github.com/tensorflow/tensorflow/tree/master/tensorf...](https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/makefile)

</comment></comment><comment> ibm-devex I am curious why someone wouldn't use IBM Watson for this? It seems it's better suited for production and serious use cases than PyTorch or TF.</comment>


Ask HN: How do you store your external SQL statements? - <AUTHOR>

I was wondering what file format is considered appropriate for storing SQL statements outside of one's source code. I was considering XML (in CDATA tag). Any thoughts? <comment><USER2> How about .sql files?

<comment><USER3> I imagine the problem is with assigning names to them.

Usually I've seen people keeping them in hibernate xml with named queries, or some proprietrary .xml files.

CDATA is overkill IMHO, easier to escape the few problematic characters.</comment></comment>


A super-nerdy attempt to predict who will win Eurovision - <AUTHOR> https://www.buzzfeed.com/tomphillips/eurovision-prediction <comment><USER2> Yeah, right! He used Spotify popularity, but nearly half of the songs cannot be listened to!</comment>


Apple snags Ex-OLPC security chief - <AUTHOR> http://blogs.zdnet.com/security/?p=3358 <comment><USER2> Krstić's talk on OLPC was what convinced me to donate to the project a couple years ago. His leaving and subsequent writings[1] left me feeling suspicious of OLPC. I'm glad to hear his expertise will be put to good use now and am looking forward to seeing the fruits of his labor.

[1] <http://radian.org/notebook/sic-transit-gloria-laptopi>

<comment><USER3> What a fantastic summary of OLPC's failure. Thank you for the link.

</comment></comment><comment><USER4> In Ivan Krstić's own words ( <http://radian.org/notebook/2009-05-11> ):

 _I moved to California and joined the local fruit vendor_

(Read the short post, contains MIT and PyCon ;-)

</comment><comment><USER5> The world needs something like Bifrost. If OS X consumer desktops get this, then this will spur Microsoft and Linux to match it. Trojans will have to get a lot sneakier and subtler. This will result in Trojans becoming kinder and gentler, much as biological pathogens become less harsh over time.

(Only kinder and gentler if you are not on the end of their DDOS attack!)

<comment><USER6> Linux does have something like Bifrost - and better stuff. OLPC uses linux.

Newer versions of windows also have a very advanced security model.

OSX is the weakest current OS, and one of the easiest to exploit. There's a number of ways you can crash and exploit it... it's just too easy.

It's funny that Ivan was blasting apple for having a very weak OS. <http://radian.org/notebook/nils2own> Not his own work, but someone he has associated with found the various exploits.

Considering how much damage he did to OLPC by writing bad things about it, apple would do well to hire him... just to stop the bad publicity. I can't wait to he quits... it'll be very entertaining.

<comment><USER7> While it is true that the OLPC is using Linux, many of the features of Bitfrost <http://radian.org/~krstic/bitfrost_2007.pdf> are not present in mainstream Linux distributions (e.g. applications being isolated against each other (yay); theft detection using a central activation server (yay?))

The Bitfrost architecture follows strong requirements regarding the ease of use of security mechanisms (e.g. no user passwords, no reading required). Perhaps Apple just tries to get someone smart for the necessary security improvements who aims for a slightly more pleasant user experience than UAC.

</comment></comment></comment><comment><USER8> This sounds like good news for Apple; it's too bad for us that we may never hear from Krstić again.

</comment><comment><USER9> Had the pleasure of listening to him deliver a talk on capability security models at Boston Lisp a few months back. Glad to hear he's finding productive work, even if it is for the Vain Emperor. :)</comment>


The Science of Scientific Writing - <AUTHOR> http://www-stat.wharton.upenn.edu/~buja/sci.html

<comment><AUTHOR> I came across this essay by way of a citation in a paper I was reading. I posted it here because I think it's yet another way of explaining why _readable code_ matters.</comment>


How Intuit managed to hold off Microsoft - <AUTHOR> http://news.cnet.com/8301-13860_3-10262344-56.html

<comment><USER2> Don't forget that in 1994 Microsoft agreed to buy Intuit, at the time clearly recognizing the value of the company--in particular the annual updates that 70%+ of customers bought. It would have been the largest software company acquisition in history at $1.5 bn in stock but fell apart under DoJ scutiny.

Article comparing failure to buy Intuit to the failure to buy Yahoo! [http://techland.blogs.fortune.cnn.com/2008/05/13/what- micros...](http://techland.blogs.fortune.cnn.com/2008/05/13/what-microsoft- will-do-next/)

Overview of Intuit/Microsoft history [http://www.theregister.co.uk/1999/01/05/why_microsoft_wanted...](http://www.theregister.co.uk/1999/01/05/why_microsoft_wanted_to_buy/print.html)

</comment><comment><USER3> In the early days, I heard that with the Intuit product, they would go home with the early buyers of the product and write down every annoyance, small or large, that users had with the product. I can't help but think that led to building better products and increased market share.

If this is in fact the case, it is a little counter to how many things are built, presuming that 1) everything can be automated and 2) a developer eating his own dogfood while using the app may not be quite enough resolution for how well it works for grandma. Working with actual paying retail customers, in person, does not sound like it is the culture of Microsoft.

</comment><comment><USER4> They didn't kill the product, just the retail shrink-wrapped sales channel. They said that there were not enough changes left to make which would warrant another major version.

[http://www.hunterstrat.com/news/microsoft-money-plus- skips-2...](http://www.hunterstrat.com/news/microsoft-money-plus- skips-2009-update-ends-retail-box-sales/)

</comment><comment><USER5> "It really has very little to do with technology," said Cape, who is now CEO of Cozi, a Seattle-based start-up. "What Intuit and Scott Cook were so formidable at was consumer marketing. He treated marketing Intuit very much the same way as one would treat marketing a bar of soap or bottle of shampoo. He made Quicken a household name. He spent outrageous dollars to get there."

Talk about the pot calling the kettle black! Microsoft products have always had more to do with marketing than technology. He's just upset that someone beat him at his own game.

"In many ways, Money was the precursor to Microsoft's "software plus services" strategy, in which the company posits that desktop software won't be replaced by online options, but will rather lead to hybrid products."

It's only a matter of time before online options replace desktop software, and everyone knows it, even Microsoft. Problem is that they can't admit it yet or they kill their cash cow prematurely.

"Managing your family logistics and your family calendar is about as fun as managing your personal finances," Cape said. "It's not exciting. What we've done at Cozi, which is very much like what we tried very hard to do on Money, is to take that mundane, ho-hum experience and not only make it fun but also make it beautiful."

People have been trying to do this for 30 years and it's never worked. Why? Because optional consumer activities (like familty logistics and family calendar) are easier to do with pencil and paper or, better yet, _not at all_. Even though many of us spend much more time in front of a computer, many of us still don't, and certainly not enough to use a "family app". OTOH, a smart phone app...

</comment><comment><USER6> I think author is giving too much credit to Intuit. Intuit was and in many ways is still ignorant about the fundamental change in developing software products. Mint apart from the fact that it is web based is also much smarter than Quicken. Having all the financial data is good but without analysis Quicken is still pretty much returning you a fancy view of their database. The shift towards software products that are quicker and smarter in analyzing data is here, much more important than adding XmlHttpRequests to your app, you can adapt or kill your product like Microsoft did.

<comment> old-gregg Bullshit. Intuit has been successfully fighting Microsoft for a _very, very long time_ , well before Mint, well before Google maps and before ViaWeb + what followed.

According to you, USSR collapsed and dinosaurs became extinct also because they didn't grok the potential of XmlHttpRequest. Not everything revolves around webapps.

Frankly, I have no idea how Intuit did it, they're probably the only desktop competitor Microsoft hadn't crush, and this article didn't really give me any plausible clues as to why.

<comment><USER6> If you read my post I am saying that XmlHttpRequest on its own will do no good. Agreed Intuit good a really good job in the 90s but that's over.</comment></comment></comment>


Passwordless signup. No social network required - <AUTHOR> https://withcopper.com/ <comment><USER2> Why can't I use my numpad when entering the verification code? [https://zippy.gfycat.com/HoarseSinfulBasilisk.webm](https://zippy.gfycat.com/HoarseSinfulBasilisk.webm)

Why is the little pop-up box where I put in my personal information getting smaller with every key I press? [https://zippy.gfycat.com/ComposedFarflungAmericanlobster.web...](https://zippy.gfycat.com/ComposedFarflungAmericanlobster.webm)</comment>


One-Line Javascript memoization - <AUTHOR> http://osteele.com/archives/2006/04/javascript-memoization <comment><USER2> cute: when the function is run, it calculates the value to be cached, then redefines the function to just return that value. This way, you don't need to check if the value has been calculated yet or not.

Yay for self-modifying code.

</comment><comment><USER3> Misleading title. It's only one-line if your function has no parameters.</comment>


Facebook will disappear in three years - <AUTHOR> http://www.acercandonaciones.com/en/news/facebook-desaparecera-en-tres-anos.html

<comment><USER2> I'll be honest, a couple of years ago, I believed something similar, but for different reasons:

* Friendships change over time, no social network (Facebook included) could crack that.

* "The youth" don't want to be on the same social network as their parents.

* Timeline spam from games was going to kill the network.

* People were uber concerned about privacy and would flock to a more privacy-aware alternative, particularly with employers starting to check up on employees.

* Someone was bound to go and take away Facebook's golden goose - image hosting.

* Mobile monetization was going to be a massive problem for them.

I had other reasons, but I was young(er) and naive(r). They dealt with those threats - by introducing features, having critical mass, changing their partnerships, reassuring users, opening their wallet, and figuring out how to do mobile well respectively.

Yes, free (as in GNU) software is always a threat to people trying to profit from software, but it's no more serious to Facebook in the medium term than any of the above. People are lazy, there's a lot of inertia behind Facebook at this stage, and setting up your own social network-type stuff on your own server is (and always will be) seen as "too hard" for most people.

I highly doubt that they'll be unseated for quite a while (even under the glacially crushing weight of OSS) so long as they keep making the good calls that they've been making over the past few years.

</comment><comment><USER3> I think Facebook will disappear, but it may take a bit longer than 3 years. Also, they won't completely disappear, they just won't be as used as they are today.

I think a lot of people are getting bored and frustrated with the service, but they have a lot of history on the site, and they don't have a better alternative to turn to. This causes the wrong form of user "loyalty:" they are trapped.

It's hard to imagine a better service coming along, but they can eventually be outdone on the mobile front or their own internal inertia (which it seems they are fighting) will prevent them from being able to compete.

Change happens fast. Something will show up overnight, then BOOM.. the end.

</comment><comment><USER4> Didn't this article topic come up a few years ago?

Weren't people saying there was a limit on the number of people you could get into a single social network (like 250k or something like that?) and would never surpass Myspace?

Weren't people saying that Facebook wouldn't figure out mobile monetization?

These types of bold predictions, without really any data or strong evidence, are meaningless and should be down-voted by a tech community that makes changes in the world through science and fact.

Plus, consistently rooting for failure of the thousands of people that work there isn't really cool to begin with.

</comment><comment><USER5> So the guy also predicts the death of Microsoft, whose OS and productivity software is used by _governments_ worldwide. If there was ever a slow moving body, it is government. If there ever was a body that could be lobbied against even good decisions, it is government.

Nope, don't see MSFT "dying" anytime soon, even if they don't grow by much or even start shrinking slowly.

<comment><USER6> Surface revenue just in: [http://www.theregister.co.uk/2013/07/30/microsoft_surface_sa...](http://www.theregister.co.uk/2013/07/30/microsoft_surface_sales_disaster/)

But you're still right... they get 1,000 bad decisions before they dent their cushion of money.

Facebook, though, I'm less sure. Cringely has been calling it "the new AOL" for years, since its product seems to be a limited subset of what "Internet" provides.

But then again, he's predicted that long enough to look suspicious. A bit like one of my favorite bits from Lenny Bruce - "I know marijuana will be legal someday because all of the lawyers I know smoke it." He may be right, but all those lawyers are probably retired.

Cringely put peak-Facebook at 2014, can't wait to find out if he's right.

</comment></comment><comment><USER7> I recently read someone make an comparison between the introduction of the telephone and the introduction of social networks. How people had a miss-trust of telephones because they would take away privacy.

Obviously what is needed with social networks is inter network communication. Otherwise we risk creating a monopoly.

</comment><comment><USER8> "Oops! Google Chrome could not connect to www.acercandonaciones.com"

The site disappear already

</comment><comment><USER9> So, a fully profitable and easily pivotable company with a few hundred million users will disappear because people can/will switch to their own small servers?

Please, Yahoo and freaking Ask.com (who even uses it?) are still around, and Facebook is way ahead of those two...

</comment><comment><USER10> > Happened to MySpace and I know that will happen again

One data point doesn't really establish an unavoidable trend.

<comment><USER11> Also happened with Orkut.

Of course, that doesn't mean it's unavoidable either.

</comment></comment><comment><USER5> _" Traduction by Google Translator"_

uhhh, seriously? I'm quite literally at a loss for words here.

</comment><comment><USER12> No excuse to post utter junk like this article; flagged.

</comment><comment><USER13> I predict Hacker News will disappear in three years !

<comment><USER7> If it did I would be very happy. That would mean I would have found a news source even better than this one.

</comment></comment><comment><USER14> QED</comment>


Ask HN: Help me pick name for a photo sharing app. - <AUTHOR>

The app is a photo sharing/blogging app and we need more awesome people to help us decide, please help me choose between these names; PicLyf vs Picwy vs PicPing. and if possible state why you chose that. <comment><USER2> PicLyf is awful. Picwy is ok. PicPing is ok, but kinda nerdy/techy. Any other names to choose from?

<comment><AUTHOR> these are the only domains available + short enough + pictures related. photo[x] are either taken or too long.

</comment></comment><comment><USER3> piccle

<comment><AUTHOR> thanks but the .com is not available. :)

<comment><USER3> piccled</comment></comment></comment>


Grindr chat protocol "completely insecure", leaks users exact locations - <AUTHOR> http://pastebin.com/fRa1s6yQ

<comment><AUTHOR> See [https://grindr.gay.cat/](https://grindr.gay.cat/) for a demo on locating users.</comment>


Adding an Effect System to OCaml [video] - <AUTHOR> https://www.janestreet.com/tech-talks/effective-programming/ <comment><USER2> If someone wants to try running `ocaml-multicore` there is an opam repository available [1].

I am currently doing the exercises from the "ocaml-effects-tutorial"[2]. This is the first introduction i've had to algebraic affects and the exercises are a fun way to play around with some code as I try to improve my understanding of how one might use the effect system.

[1] [https://github.com/ocamllabs/multicore- opam](https://github.com/ocamllabs/multicore-opam)

[2] [https://github.com/ocamllabs/ocaml-effects- tutorial](https://github.com/ocamllabs/ocaml-effects-tutorial)

</comment><comment><USER3> I'm glad to see effect systems getting so much attention lately. I think they are a far better alternative to monads (and monad transformers) in terms of cognitive load. They commute, for example.

<comment><USER4> Apart from the sibling conmment pointing out that effect monads are one type of effect system, almost all effect systems I know of (algebraic effects included) have a monadic interface. The only one I can think of that doesn't is the family of uniqueness/linear/affine types (to the extent that those model certain kinds of effects).

Maybe you were mainly just thinking of monad transformers or combining discrete monads?

<comment><USER3> I should have indeed said algebraic effects instead of effects system.

Algebraic effects are a restriction on monads, but a restriction that still allows for the vast majority of use cases. In return, you get composability and a clear separation of effectful operations and effect handling.

The default of using monads for everything produces too much cognitive complexity for little benefit.

<comment><USER4> Hmm... What do you mean by a restriction on monads? Algebraic effects basically mean that you live in a single monad that can be either widened or narrowed via new effects or new handlers respectively.

I'm also not sure what you mean by "using monads for everything." Monads are basically just flatten and map. It sounds kind of like "you're using map for everything" to which the answer seems something along the lines of, well in a lot of places where you use map, if you didn't use map, you'd probably just reinvent it.

<comment><USER3> >Algebraic effects basically mean that you live in a single monad that can be either widened or narrowed via new effects or new handlers respectively.

Yep, it is a restriction as I said. Algebraic effects basically live inside the free monad, so that's what I meant by that.

This restriction, versus using separate Writer, IO, etc, monads, is far more easy to reason about. Types in Haskell become insane with monad transformers. It produces code that is difficult to understand and reuse.

edit: Algebraic effects can also be derived from delimited continuations.

<comment><USER4> Maybe I'm just getting hung up on the word restriction. In particular is there any monad that cannot be expressed as a pair of algebraic effects and handlers? I _think_ the answer is no (potentially barring especially magical monads such as IO in its full generality), but I'm not sure.

Totally agree about the brittle and type-soup nature of transformer-heavy code.

</comment></comment></comment></comment></comment></comment><comment><USER5> For those interested in effect systems, here is a description of the effect system in Nim: [https://nim-lang.org/docs/manual.html#effect- system](https://nim-lang.org/docs/manual.html#effect-system)

<comment><USER6> I'm very interested in Nim's effect system. I have a few questions about it:

* Does it have a way to define effect handlers in a decoupled way from the effects? I'm looking for something like this: [https://koka-lang.github.io/koka/doc/kokaspec.html#sec-a-pri...](https://koka-lang.github.io/koka/doc/kokaspec.html#sec-a-primer-on-effect-handlers)

* Are all standard library procs marked with all their actual effects?

* How complete is compile-time effect tracking right now? For example, the following doesn't raise a compile error:

        proc testEffects() {.tags: [].} = "hi".echo
        testEffects()

* Is there a 'strict effect' mode, that would implicitly add `{.tags: [].}` to all proc types without an explicit tags pragma? That would make effect tracking more, well, effective.

</comment></comment><comment><USER7> Here are some recent (June 2018) slides about multicore OCaml that provide some extra information about effect handlers: [http://kcsrk.info/slides/mcocaml_gallium.pdf](http://kcsrk.info/slides/mcocaml_gallium.pdf)

</comment><comment><USER8> I'm excited to see that effect handlers are gaining popularity. I read the original papers that introduced them, and I think that they have a lot of potential.</comment>


Orfox: New Firefox-based Android Private/Secure Browser - <AUTHOR> https://lists.mayfirst.org/pipermail/guardian-dev/2014-August/003717.html

<comment><USER2> There is a growing market for privacy (confidentiality), in my amateur opinion; at least it seems that many consumers choose privacy when given the option and they dislike surveillance.

Why doesn't Mozilla heavily promote Firefox as the 'private' browser, and why not focus on enhancing those features, instead of leaving it to others to make the 'private' browsers by modifying Firefox?

1) Otherwise browsers are functionally the same for consumers, ignoring trendiness and user familiarity. Some browsers may do certain things milliseconds faster, or more often be perceived to perform faster, but there is little practical difference besides confidentiality. (I realize this may be controversial to some, but I doubt choice of browser impacts most people's productivity beyond confidentiality issues.)

2) Other browser vendors could not easily compete with Mozilla in the area of confidentiality: Their business models often include tracking consumer behavior, and their brands are not as trusted to put users first as a public interest organization is (and it depends on trust; consumers can't verify these things themselves).

3) Other browser vendors would be forced to try to compete regardless and improve confidentiality, and awareness of and demand for confidentiality would be increased, furthering Mozilla's missions. I think demand for confidentiality often is overlooked because consumers rarely have the opportunity to express it -- it's hardly ever an option.

Regarding the features: Not all confidentiality features are suited for general use (e.g., NoScript), but many are and some could be options for more advanced users. For example, why isn't there a Tor button or pref in Mozilla's official Firefox releases, which connects to Tor and routes all traffic through it? IME, it works fine, though a little more slowly, for most purposes.

EDIT: A few additions and clarifications.

<comment><USER3> "There is a growing market for privacy (confidentiality), in my amateur opinion; at least it seems that many consumers choose privacy when given the option and they dislike surveillance."

I think this is mostly a myth when it comes to consumer software. People _say_ they like privacy/confidentiality/security but they are not willing to make any compromises to get it even if those compromises are very small in comparison to the privacy/security wins.

<comment><USER2> Asa: Thanks for the input though of course I hope you are wrong. :) Is there research on that? Your experience at Mozilla?

I do know a a few data points: (EDIT: walterbell provides a very good data point below, and one that should have been obvious to me!)

* Some vendors of confidentiality services report increased demand, especially since the Snowden revelations. (Sorry, I don't remember who reported it.)

* Facebook and others now are emphasizing privacy, suggesting that they see demand for it.

* A recent consumer survey said confidentiality concerns were impacting purchases on mobile devices.

* Also I read in an advertising industry publication that when a retail store chain posted signs saying they were tracking customer activities (via wifi/bluetooth on mobile devices), they got many complaints and saw an impact.

* Their solution of course was to take down the signs, which raises another point: If consumers/citizens don't care about surveillance, then why are businesses and government secretive about it?

<comment><USER4> Privacy is a factor, it's just not the factor that drives most decisions around consumer software (at least mass market adoption). It's true that Facebook and others have emphasized privacy, but they have not compromised the user experience. Projects like this are challenging because you're forcing some behavioral changes for additional security.</comment></comment></comment></comment>


20% of UK school leavers illiterate and innumerate. Help my partner change this - <AUTHOR> So, I've just read http://www.telegraph.co.uk/education/educationnews/7691919/Fifth-of-school-leavers-illiterate-and-innumerate.html as part of my morning reads (and on a lighter note, http://www.telegraph.co.uk/education/7673436/Nothing-is-so-harmful-to-our-childrens-futures-as-education.html), and it gave me pause for thought. Firstly, a little background...
I'd consider myself a fairly bright person. I have exceedingly diverse interests, and a can talk in depth and with authority on politics, classical and contemporary music, literature from 1600 to the modern day, current theories on psychological development in humans from birth to adulthood and so on...
In addition, my partner is currently studying to become a teacher. She has equally diverse interests, and is also extremely bright.
Now, with her insight into the British classroom, I've come up with a theory: very few children are incapable of learning to be highly proficient in maths, English and the logical deductive reasoning and research in the quest of knowledge.
Where failure comes in is where the child, due to the influence of their peers, parents, or some other social pressure feels that they don't actually care to learn these things. It is not that it is beyond them, it is simply that they either passively don't see the need, or actively resist being taught.
This would fit well with the available data, as I can easily imagine (just from thinking back to my own school days) around one in five children believing that what they were being taught would have no relevance in the real world.
So the question that I'd like to ask is, how, as a teacher, could my partner try and beat the odds and ensure that the students entrusted to her care are prepared for the world they'll enter as adults as best as possible?
Suggestions on the back of a postcard, or in the comments below. Whichever... <comment><USER3> How about yourself gaining an understanding of facts and statistics and not presenting the findings of a study as you did when it suggests that 17% of UK school leavers are _functionally_ innumerate (limited to "very basic competence in maths, mainly limited to arithmetical computations and some ability to comprehend and use other forms of mathematical information") and 22% are _functionally_ illiterate (i.e. have "less than the functional literacy needed to partake fully in employment, family life and citizenship and to enjoy reading for its own sake"). NOR for that matter does it suggest that 20% are both illiterate AND innumerate. There may be some overlap but instinctively I'd guess that the % of people that are both is significantly below 20%.

For me this is a prime example of the real failings of our educational system - school leavers have completely deficient bullshit-radars, zero healthy skepticism, and a complete inability to spot false inferences. Coupled with a total reticence to go to the source of so-called 'facts'.

The worst thing is that our media (which, in this day and age, you are now part of, in broadcasting these findings) is amongst the worst culprit (and thus in my eyes, most educationally deficient), as are our politicians (save for a few brave souls like Dr Evan Harris, sadly voted OUT of his seat as an Oxford MP last week), who even if they aren't, are slaves to the media in any case.

<comment><AUTHOR> Couldn't fit the word functionally in. 80 letter character limit. If you go through life assuming that someone isn't being dense or facetious, but that there's a mitigating circumstance, you'll find people are more responsive, and that you're more right more of the time.

<comment><USER3> you'll have to excuse me for the tone. I realise it was just a straight up repetition of the original article's outrageously negligent strapline. But it's still absolutely your duty to set it right rather than help propagate a very misleading meme. And the same will be true of the generation your partner is now teaching, bless her. Teach them to set messages right, based on fact and truth not sensationalism and angst or ignorance. If our generation truly revolutionised the media, let that be the revolution, not the creation of an online echo chamber for misleading memes...

</comment></comment></comment><comment><USER4> I'd go with... try teaching something different that has a real impact on their lives and work from there.

In reality... a lot of people will forget what they were taught in school. They really do not care about education as presented by school. And it might shock some, but yes - they will never need any of their school knowledge per se and you can live a happy life without being able to read. If you'd like to make a difference: it doesn't matter if those 20% can pass any maths exam; it matters if they can read their electricity bill and bank statement.

An old joke comes to mind: "- 5*5? ; - I don't know ; - If you steal 5 pounds of lunch money from 5 other students, how much do you have? ; - 25 pounds!"

</comment><comment><USER3> Give them the internet and a problem to get to the bottom of - then back off unless they have a question. And if they're not interested in your task, give them some other problem to investigate. Just because one child doesn't care about writing a Freedom of Information request to a public authority (even if it's to ask how much their teacher gets paid, their MP spends on expenses, time coppers spend filling in forms, times the local power station has been reported for environmental infractions, or whatever) then find something else they would - maybe it's looking up new techniques for computer graphics - introduce them to modelling and show them how maths plays a role in that. Or show kids the stock market. Get them to read up about how rich people avoid paying taxes. Whatever.

Just make them feel confident, once they find a direction. Don't forget to round them out, and teach them to be balanced, skeptical and sustainable. Teach them to make parallels between systems - e.g. a balanced ecosystem is resilient to change and challenge, so too is a balanced education, a balanced portfolio, a balanced diet, a balanced peer group, and a balanced political sphere.

The idea that we can ram 'knowledge' down young throats through rote learning, and get anything useful out of the end product, is NONSENSE.

</comment><comment> barry-cotter Given that ~26% of the British population will definitionally have IQs of 85 or less I think that's a pretty creditable result. They can mostly read, write and do arithmetic; given what the teachers have to work with they're doing pretty well.

 _Academics said that literacy skills had also failed to improve since the late 1980s._

And what happened then? They got rid of streaming. They'd probably hit the point of diminishing returns by then anyway but seriously there's only so much blood you can squeeze out of turnip.

 _"People at this level can handle only simple tests and straightforward questions on them where no distracting information is adjacent or nearby," the study said. "Making inferences and understanding forms of indirect meaning, eg. allusion and irony, are likely to be difficult or impossible._

I don't think that's a problem with their ability to read, but to reason, and to discriminate.

Anyway the only thing I can see as having some chance of reaching those with these difficulties would be Direct Instruction or something similar, like Kumon. This has the small problem that teachers will not stand for it. It makes a stressful, demanding job a boring, stressful demanding job.

<comment><USER5> _Given that ~26% of the British population will definitionally have IQs of 85 or less_

Your percentage is incorrect. I think you were confusing what percentage would be in either extreme range (low or high) with what percentage would be more than one standard deviation below the mean.

[http://en.wikipedia.org/wiki/File:Normal_distribution_and_sc...](http://en.wikipedia.org/wiki/File:Normal_distribution_and_scales.gif)

<comment> barry-cotter True. 16% not 26%.

</comment></comment></comment><comment><USER6> I think that your insight, while simple, is profound. Yes, I think it's the mind state, to a large degree.

With that insight, what does a teacher have to do? She has to find a way to change their minds. She has to make it feel interesting also to them, and most of all inspire them. She has to be a leader for that class, in an exploration of the world.

Anytime a student asks why (anytime! In any context) that's an opportunity to take that student, and her question, seriously. Have a discussion on why, the reasons, perhaps the history of the subject matter.

Create a special environment. Let the student's know that even if the rest of the school is boring, with teachers that just don't understand or seem grey and dull, this is not that, it's different. Spark curiosity.

Don't argue with those who say they're not interested, cater to those who are, and make it easy to join in.

But most of all, take the children seriously, create a culture of trust in the class, and read the six lesson school teacher by John Gatto: <http://www.cantrip.org/gatto.html>

<comment><USER7> Thanks so much for that. I printed and highlighted the pee out of that.

I've been hearing about Gatto for a while but have yet to pick up one of his books.

I can quibble about some points, but most of it fits with my experience: the abilities that I retain are the result of my _resisting_ the educational system. So I expand the traditional maxim of, "1) Those who can... do; those who can't... teach." to include:

2) Those who can't teach... administrate.

3) Those who can't administrate... design educational systems.

4) Those who are concerned only with controlling deviance (aka creativity)... run for school board.

Disclosure: My UC-Berkeley diploma is validated by the signature of a movie actor. [No, not Arnold; think early pleistocene era.]

</comment></comment><comment><USER8> I'd suggest not lowering exam standards year on year as well as allowing respected qualifications like GCSEs to be replaced with vocational GNVQs or similar.

Also what's very important is a work environment conducive towards learning at school and at home.

<comment><AUTHOR> Whilst we'd both love to see the former done, as someone who's not yet in a position to influence government education policy yet, that's not a particularly useful answer.

</comment></comment><comment><USER9> Every reply so far has missed out on one crucial fact: it is not possible to deviate from the officially approved method of teaching and keep your job. I urge everyone to closely scrutinise the National Curriculum and the National Strategies, bearing in mind that you will fail an OFSTED inspection for deviating from either.

<http://curriculum.qcda.gov.uk/> <http://nationalstrategies.standards.dcsf.gov.uk/>

Teaching at KS1 and KS2 is completely micro-managed, with statutory requirements set through the National Strategies on a day-by-day basis. Under the guise of "disseminating best practice", the system forces teachers into lock-step. If a child needs a little more time to grasp a concept, forget it. You've got to move on to the next unit, and the next one, or you won't be able to complete your Teacher Assessments. If they are lucky, the child will busk it and nobody will notice that they never learned appropriate use of the apostrophe; If they are unlucky, they will receive the mark of Cain - <USER2> Statement of Special Educational Needs. It is a near-certainty that they will never recover from this, and will be treated as a dunce for the rest of their school career.

At Secondary level, matters are worse still. Almost all secondary schools are surfing wave after wave of exam-driven panic. The abolition of the KS3 SAT has helped matters, but continuous assessment has kept the pressure on to a great extent. KS4 more closely resembles a death march than anything else; The whole school becomes a machine for getting those all-important marginal students those essential 5 A*-C grades. Any student too far ahead or behind the pace is completely ignored. All other school functions become a tool for pushing up that magical number. Student engagement matters only as much as it affects those marginal students.

The primary function of school is not to teach, and anyone naive enough to believe otherwise will quickly be corrected. A school is a bureaucratic machine and the role of a teacher is to follow the Approved Procedure. Your success or failure as a teacher will be measured entirely in terms of how closely you imitate the State Approved way of doing things.

If your partner has an ounce of intelligence and decency, I'd advise her to quit right now and do something else with her life. There's a lot wrong with FE, but at least you've got some freedom to teach. In the private sector, you won't be teaching anyone who actually needs your help, but at least you won't come home crying. There are some real opportunities to actually engage with young people in the voluntary sector. The pay is awful and funding erratic, but at least you get a chance to actually do some good.

<http://www.johntaylorgatto.com/underground/prologue2.htm>

<comment><USER3> 'Deschooling Society' by Ivan Illich is by far the best book on this topic I've ever read. Old, and somewhat dated since it presages the Internet but never experienced it - but still as fundamentally brilliant

</comment></comment><comment><USER10> I am leading a team working on an AI-based learning game that should help with literacy issues. The software implements several cognitive science principles including those in lionhearted's comment:

> (1) at the edge of their current capabilities, which is to say doable but > slightly challenging, (2) interesting, stimulating, and relevant to them.

We are pretty close to launching. If you're interested, please just get in touch. (My email is in my HN profile).

</comment><comment><USER11> I would look onto game design. game designers has plenty of techniques to create a lot of motivation with people. just look at farmville , leading millions of people to spend a lot of time in an inherently boring game. A good book about game design: <http://www.kk.org/cooltools/archives/004195.php>

</comment><comment><USER5> The failure begins in most cases with appallingly bad reading instruction in school. See

[http://www.amazon.com/Reading-Brain-Science-Evolution- Invent...](http://www.amazon.com/Reading-Brain-Science-Evolution- Invention/dp/0670021105)

and the earlier sources it cites for research on what to do about that.

</comment><comment><USER12> Just wondering, is she stuck to the British classroom, and how flexible are the rules for what happens in the British classroom? What if the traditional system simply doesn't work at all? How do alternative school systems like Montessori compare?

</comment><comment><USER13> Incentivise and Inspire the students to care about what she's teaching. I've been through the British system, it absolutely diabolical, if you want more information follow me on twitter @ajrajanathan - send me a DM we can talk over that

</comment><comment><USER14> People need to be studying things that are (1) at the edge of their current capabilities, which is to say doable but slightly challenging, (2) interesting, stimulating, and relevant to them.

Classrooms fail at this. Some kids are good at math, but do not like writing. And vice versa. A little boy might be doing algebra very early, but does not like nonfiction. Give him time! Let him work out his math and progress with it, perhaps he'd get interested in reading a biography of a mathematician or scientist at some point.

Likewise, maybe another boy is reading and writing at an advanced pace, is devouring classic works, but is behind in math "for his age" - that's okay! Give him time. If he needs more time in arithmetic or doing long division by hand, let him spend time there while reading at a high level. He'll get there.

Subdividing based on age is asinine and crazy. It means a majority of people will be studying at a skill level incorrect for them in an important discipline. That's before even considering how boring school is for most kids.

Me? I loved physics, liked chemistry, and hated biology. Because the way it was taught, physics was cool with acceleration, chemistry was interesting in terms of mixing things, but biology was a bunch of boring memorization of genome and species and things like that which didn't seem very important to me. So, I really enjoyed my Freshman "introductory earth sciences" (physics, chemistry, and a little geology if I remember correctly) and had a fun and enjoyable time, but then I was forced to move into rote memorization biology my sophomore year... I tried to skip ahead to physics, but they said no. Long story short, I wound up dropping out of two high schools, and got into a university despite that before dropping out of there too. Was a great decision for me! The school system is broken - it doesn't meet kids where they're at or where they want to be. Instead, it forces a strict curriculum that requires memorization and obedience to pass.

Look at home schooling if you want inspiration. There's a big community devoted to it, and home schooled _destroy_ mainstream teaching methods on almost every metric except for social interaction/emotional maturity. (A big problem for homeschooling, parents need to be diligent in getting their kids representative social experiences if they're home skilled, at least enough for them to relate to other people their age)

But that's really it - on just about every other metric, home schooling wrecks on mainstream teaching methods. I think the biggest problem is that mainstream schooling instruction is bureaucratic centrally planned with age being the overwhelmingly important decision on what the kids learn.

How asinine! Everyone goes through cycles of being interested in different things. If a kid has a knack for language and is doing hardcore immersion, learning the Chinese characters that will let them read/write Mandarin, Cantonese, and Japanese, and they're learning Mandarin and Japanese at a high level and starting to read literature in the native languages... do you really want to break that up because now it's time for geometry?

You introduce the kids to a little bit here and there, when they're ready for it they learn it. Learning is one of the most exciting and coolest things in the world. The fact that schools somewhat make learning dreadful and boring is one of the most laughable things in the world. But again, you've got to meet the student where he is at. Statistics can be taught via sports, or via census data, or via business, or via hard science experiments, or... y'know? You've got to find one that stimulates the pupil. One training going 100 kilometers per hour towards another one going 180 kilometers per hour isn't going to get it done for the vast majority of kids.

</comment><comment><USER15> Leave it - this is the way it needs to be

<comment><USER15> More detailed answer:

There is no correlation with what you about to teach them and their happiness.</comment></comment>


Google Maps now uses vectors (not tiles), allows rotation, 3-D, faster loading - <AUTHOR> http://www.youtube.com/watch?&v=koIzhLaRJJo#t=101s

<comment><AUTHOR> Actual original source: [http://mobilized.allthingsd.com/20101206/googles- andy-rubin-...](http://mobilized.allthingsd.com/20101206/googles-andy-rubin- dives-into-android/)

This change is mainly to benefit mobiles, and is introduced in the context of the Motorola Android tablet.

I imagine (and Andy Rubin says this too) that this will gradually make it to the desktop/web version of Google Maps especially for those browsers that support WebGL or SVG. If so, this would mean API changes to support all the new viewing aspects etc, and hopefully rich support for addressing individual map artefacts in vector form.

This negates OpenStreetMap's main selling point which, for me, was that it uses vector data. That said, it may allow better comparisons between mapping service's data as vector data can be compared far more accurately and efficiently than bitmap tiles.

</comment><comment><USER2> How long before Google Maps subsumes Google Earth? The browser is capable of incredible things.</comment>


The sound of 15 sorting algorithms - <AUTHOR> https://www.youtube.com/watch?v=kPRA0W1kECg

<comment><USER2> This is really awesome, good work on this.</comment>


Chinese company leaves Muslim-tracking facial recognition database exposed - <AUTHOR> https://www.zdnet.com/article/chinese-company-leaves-muslim-tracking-facial-recognition-database-exposed-online/ <comment><USER2> The researcher should share this database with some human rights orgs. This way they can prove people were alive up to some points before disappearing into thin air.

<comment><USER3> It's not as easy as that. It's not his data to share.

</comment></comment><comment><USER4> \- dudes finds an online db which leaks some customer from Xinjiang

\- Chinese muslim-tracking scheme exposed!

</comment><comment><USER5> Its sad that people can treat each other in such a ways based on criteria that should not matter. Many nations are guilty of similar things.</comment>


Over the Moon: Alibaba Engineers Fired for Mooncake Hacking - <AUTHOR> http://blogs.wsj.com/chinarealtime/2016/09/14/over-the-moon-alibaba-engineers-fired-for-mooncake-hacking/?mod=WSJBlog <comment><USER2> That was a nice insight into another culture. The typical American response would be to decry how unethical it was (could it have influenced Alibaba's decision to fire them?). They got offered a job through WeChat -- that's as Chinese as it gets :)</comment>


Wedding Photographer Threatened with Ludicrous $300,000 Lawsuit - <AUTHOR> http://www.petapixel.com/2012/07/24/wedding-photographer-threatened-with-300000-lawsuit/ <comment><USER2> This situation, where a lawyer uses the financial threat of having to deal with the legal process (little to no cost for the lawyer, great cost and risk for the defendant) to win a highly questionable lawsuit for his (the lawyer's) personal gain is highly disturbing - speaking as a non-lawyer.

It's bullying, plain and simple. Carreon is another example, and I'm sure there are thousands of such threats made a month that we don't hear about.

I think that this is a complete abuse of the power that is given to the attorney and should result in disbarment.

</comment><comment><USER3> I make most my living doing stuff for wedding photographers. I also know Gary (the guy in the video) a bit—he does a good job calling out some charlatans in the industry.

Digital photography, social media, cheap equipment/software and a bad economy have brought a lot people in the industry. They try to make some extra cash with their Costco camera by shooting a wedding and handing over the files.

I hear/see all sorts of crazy things: no contracts, no backing up of files, stealing others' images for their portfolio, no backup gear/insurance, doing unsafe things with babies, not paying taxes, and then lying about how much money they make so they can do workshops for other photographers.

I think much of it comes from people who don't treat it like a full-time business and career.

I still get to sell them websites and software but sometimes I feel like the industry is imploding.

</comment><comment><USER4> Why is this on Hacker News? It doesn't seem to belong here.

</comment><comment><USER5> This is probably US Law 101 but it doesn't jive with my UK knowledge.. if verbal contracts aren't enforceable in that state and the claimant is making the point that there was "no contract", what is the basis to sue a photographer for services made under a "contract" the claimant doesn't even acknowledge?

Separate to that, the photographer's professional liability insurance would help here _if_ the claimant won, wouldn't it?

<comment><USER6> Assuming that the photographer is carrying insurance. It did sound like this was someone that was a true professional though, as opposed to someone that does photography on the side so I would hope they carry insurance. In fact, if they do have insurance, it's very likely that the insurance company would provide a lawyer in the case of the lawsuit as winning the suit would save them more money that having to pay out a claim.

</comment></comment><comment><USER7> I think the main takeaway is never ever do business with lawyers. That guy is not fit to run a lawyer firm imo and he should have his license/privileges/diploma/whatever revoked. What an asshat ... it's surreal.

But some good tips to look out for for people considering this business professionally.

Also, I wonder what FroKnowsPhoto would have to say about this ;o

</comment><comment><USER8> Anyone got a link to a copy of the letter? A nearly 10 minute video of someone reading the letter is inefficient and makes it hard to go back and forth over the content--and from what I saw before I gave up on this video, the host is interspersing his commentary with the reading of the letter, making it even more annoying.

</comment><comment> guard-of-terra Did anyone ever measured the effective tax of writing and signing contracts as opposed to just doing the work?

It's actually not good, while you learn to write/read contracts you're not becoming better skilled professional neither you spend your time meaningfully signing it on every occasion.</comment>


The anti-vax narrative gets darker - <AUTHOR> https://sciencebasedmedicine.org/the-anti-vaccine-narrative-just-gets-darker/ <comment><USER2> The narrative has played out time and again.

-toxic waste in the 70s

-Smoking 80s

-Climate change - now as we speak

-opioids - now as we speak

-US healthcare and insurance in general. (the rest of the world does it one way and you do it another...obviously we're right)

Corporations have massive profits at risk use science to manipulate the government and the public. government rolls over for corporate interests.

I'm not saying there is anything to anti-vax or not. But, the narrative isn't unique to anti-vax.</comment>


MIT network attacks post-mortem - <AUTHOR> http://web.mit.edu/newsoffice/2013/isat-addresses-concerns-about-mits-network.html

<comment><USER2> The most interesting bit for me in this article

        MIT's open network is essential to collaboration in
        teaching and learning at the Institute, Fitzgerald says.
        "IS&T is working to identify and address other
        vulnerabilities that present a risk to the campus
        network and key services — although the nature of these
        complex systems makes it difficult to eliminate risk
        completely," she says. "Community members should be
        assured that particular attention is being paid to
        minimizing risks and outages in the future."

In my books, this is a trade off - if you want to keep your networks open, you will invite some trouble.

</comment><comment><USER3> The article does not mention that the Anonymous had defaced MIT's main website immediately before the Jan 13 MITnet outage: <http://tech.mit.edu/V132/N61/anonymous.html>

</comment><comment><USER4> If their domain was hijacked and repointed to rouge nameservers, I would have expected the attackers to redirect mail (MX records) in addition to web traffic. But this article didn't mention anything about email being potentially intercepted by hackers. Did I miss something?

</comment><comment><USER5> Can someone explain to me why every little news tidbit relating to MIT has to be on the HN front page 24/7? My goodness, it's like this is the MIT fan club.

Why is this being posted here? It's a notice from MIT to the MIT community about network problems they have been having. I attend Rensselaer Polytechnic Institute, should I post every little announcement from their news feed on HN? I'm so sick of this mindless worshiping of a school just because it is a great university.

There are plenty of other higher-education institutions that offer excellent programs. Yet somehow "MIT", "Stanford", "Carnegie Mellon", etc are the only names people want to hear of engineering universities, all other institutions are just "schools".

<comment><USER6> _I attend Rensselaer Polytechnic Institute, should I post every little announcement from their news feed on HN?_

No, but if you're looking for something to post, how about how RPI is basically a CIA farm school and what it's like to experience that as a student? HN'ers might be interested to read something like that.

<comment><USER5> What? I don't follow.

<comment><USER6> If you're in a STEM major, just wait until your senior year or so.</comment></comment></comment></comment>


Contact form using react and php - <AUTHOR> https://github.com/malithmcr/react-php-contact-form <comment><AUTHOR> You can find the blog post with complete tutorial here : [http://blog.malith.pro/how-to-create-a-contact-form-with- rea...](http://blog.malith.pro/how-to-create-a-contact-form-with-react-js-and- php/)</comment>


New FBI Documents Provide Details on Government's Surveillance Spyware - <AUTHOR> https://www.eff.org/deeplinks/2011/04/CIPAV_Post

<comment><USER2> _Eventually, the FBI seems to have sought a legal opinion on the proper use of the tool, both from the Office of General Counsel and from the National Security Law Branch, and ultimately, the agency seems to have settled on a "two-step request" process for CIPAV deployments -- a search warrant to authorize intrusion into the computer, and then a subsequent Pen/Trap order to authorize the surveillance done by the spyware._

<comment><USER3> For now, but hopefully they don't circumvent the need for such procedures as this, and the growing talk of requests by the Administration for developers to add "back-doors" into all software is really a horrible direction for things to take in the US, if you care about privacy. Orwellian things like this are really upsetting, especially when the government is so blatant about it.

<comment><USER4> They don't need back doors if they can just get warrants in this way. Aboveboard, paperwise, and less risk of PR blowback (defunding).

<comment><USER5> So how do they execute the warrant without either a back door or a working exploit?

<comment><USER4> They do, but the chit-chat until now has been about low-level hooks exploited for direct investigation, but from the article it appears to use stuff like browser extensions that cause the computer to report. We and the article are all assuming what might be going on, but from the sounds of it even the procedure here doesn't appear to be foolproof, say if a person has their software all up to date or uses lynx or something. One thing that seems for sure is that sniffing at the switch hasn't been enough for them, perhaps because of existing warrant limitations. It also appears that law enforcement is going to continue pushing for more and more abilities under the law than what they ever have at present.

</comment></comment></comment></comment></comment><comment><USER6> Hence the need for a fully encrypted Internet. Turn the Internet into a 100% secure and wire-proof network. That's the only way to deal with these thugs.

</comment><comment><USER7> Confused: how is this different from the legion of other spyware/viruses I have to defend against?

</comment><comment><USER8> Re-branded 'Back Orifice'?

</comment><comment><USER9> How seriously should I be concerned as a Linux user. (Who uses likely lots of binary blobs)

<comment><USER10> With regard to the current, warrant-backed intrusion method: the default configurations of most Linux distros are far more secure than the default configuration of any version of Windows. Keep up with your browser updates, don't run anything you don't trust, and you should be fine.

With regard to the possibility of back doors in future software...

Hackers, as a culture, are pretty anti-Big-Brother -- I can't imagine any of us voluntarily distributing back-doored packages. If we distributed compromised code, one of our peers would catch it before too long in the case of any but the most obscure packages. The thing is... when might it not be voluntary?

As far as American courts are concerned, source code is speech, compiled binaries are not. So, the government could conceivably force distributors of binary software to comply with a back-door policy, but they could not restrict the distribution of uncompromised source code. (This is why source-based distros can distribute things like DVD-decrypting software, while binary distros leave you to acquire it elsewhere: the distribution of source code is unrestricted.)

The _only_ binaries on my laptop I haven't compiled myself are my video driver (I'm giving you dirty looks, NVIDIA) and the blob for my wifi driver (I'm giving you dirty looks, FCC). I'd like to get rid of both of them -- I'd absolutely pay more for a decent video chipset that didn't require closed- source anything. The wifi blob is the fault of the FCC -- no one in the US can legally distribute wireless hardware that could have its frequency usage changed by the owner. Many wifi cards get reverse engineered at some point, making the binary blob unnecessary, but manufacturers are legally prohibited from aiding in the process of creating completely open-source drivers.

Compromised source code coming from a tool's creator is both unlikely, and hard to pull off for long. Compromised binaries are more likely, but there are plenty of distros not based in the US which would have more leverage in resisting such demands (of course we don't know what their own countries are requiring of them). Getting source code with an "added" back-door (i.e. from a third party rather than the code's maintainers) is easy to avoid if you only use signed code -- make sure to watch for packages that stupidly download code for their dependencies during build without checking signatures instead of using what's already on your system.

As for those drivers with binary blobs -- until consumers become more resistant to using them, they aren't going anywhere.

<comment><USER11> IIRC, ath5k does not need a binary HAL any longer. There is also the madwifi- free branch which has the HAL in source form.</comment></comment></comment>


Recurrent Net Dreams Up Fake Chinese Characters in Vector Format with TensorFlow - <AUTHOR> http://blog.otoro.net/2015/12/28/recurrent-net-dreams-up-fake-chinese-characters-in-vector-format-with-tensorflow/ <comment><USER3> _Stroke order is very important to Japanese culture, in a society where the process matters just as much as the end result. Some calligraphists take stroke order very seriously, and will probably explode if they see someone writing a Kanji with incorrect stroke order._

One might phrase this "Stroke order is assigned by convention in Japanese; deviating from the conventional order is incorrect, much laik hau Einglish speling iz nat ap four eendevizyuelle tyoise." ("What's the matter? You can sound it out. Pfft, Americans, such rigid traditionalists. It makes sense in the context of their religious views and conservative political tendencies, though." [+])

This avoids unfortunate Man Japanese People They're So Craaaaazy overtones. (FWIW: stroke order is prescriptionist not descriptionist but AFAIK prescriptionism has a virtually hegemonic mindshare among relevant authorities.)

n.b. Otherwise this project and post is freaking excellent.

[+] You can actually read Japanese-language takes on American culture which are exactly as bad as this Orientialism-in-reverse.

<comment><USER4> I think a key point about this, which was only clear to me after I learned to write Hanzi in Mandarin, is that if you write the strokes in the wrong order it will not look right at the end.

To someone looking at characters for the first time, it's not obvious that the stroke order matters to the reader as spelling does in English. It's not about fetishization of the process over stroke order, it's really obvious to the reader if you wrote the character incorrectly.

<comment><USER5> I've kind of wondered about how you can tell -- do you know of an example that's online anywhere that makes it clear how it looks different? (... when written with a pen or pencil?)

<comment><USER6> see: す - imagine if it were written from bottom to top. The placement of the 'straight' part of the vertical line and the placement of the 'curl' would be opposite (especially if you're using a brush instead of a pen). This is similar to the lowercase English 'a' or 'u' written bottom to top - <USER2> if using cursive.

or see: お

the last 'dash' in the top right is a retouching of the paper after the curl on the bottom right. Imagine a swirl that starts in top middle, swings around on the bottom left, swings around on the bottom right, lifts off the paper, and then touches back down briefly in the top right. If you're hand-writing, that little landing dot can be huge, tiny, or even conjoined, but to be legible it's generally visually a continuation of the lower stroke. If you just copied the letter without any concept of stroke, it would be difficult to read because you'd be looking for that swirl. Imagine the dot on a lowercase 'i' \- it's supposed to be directly above the stroke for your brain to render it as an 'i' vs an 'l'. It's why when written out you can distinguish 'il' and lt' even though they're quite similar if drawn literally, quickly.

An example of stroke order vs stroke direction is more apparent when you need good proportions. Kanji like 風 or 看 are really hard to 'draw' with good square proportions if you don't stroke them in a particular order. Kind of like trying to draw a face by starting with the nostrils, then doing the eyebrows, and ending with the outline of the face - it's tough.

Interestingly, the Japanese hiragana letters are really designed to be written with a brush from top to bottom. The letters flow from one to the next really nicely when written from top to bottom, and are actually much harder to write properly when written left to right. See: す - き - の. They're much more natural to write top to bottom, and keep going down rather than from a left to right (which is also indicated by stroke order - the horizontal bars on the letters above are written before the downstrokes).

<comment><USER7> Ehhhh. This is all starting to sound rather speculative. People draw the lowercase 'a' in all sorts of different ways and end up with an equally valid result. There's no particular reason why drawing す from bottom-to-top would _require_ that the shape be different. You just have to know the shape.

I also don't buy Emmett's claim. There are regional differences in stroke order, even for hanzi. Japanese people use a different stroke order for kanji than mainland Chinese people use for hanzi, which again is different than the stroke order used by people in Taiwan and Hong Kong. The differences implied by these things are smaller than the differences in CJK fonts, which have no inherent "order" at all, yet people somehow manage to read.

Stroke order matters for calligraphy and memorization and dictionaries, but as patio11 says, it's largely just prescriptive. Spelling is prescriptive, too: it's historically and/or conventionally derived, but knowing the rules makes learning words easier, and you certainly can't use a dictionary without it.

<comment><USER8> There are some minor differences in stroke order by region, but the basic rules are always the same (e.g. top before bottom, left before right, etc).

It's genuinely hard to read people's writing if the stroke order is off.

If you write super slowly and deliberately it may not matter much, but in my actual real-life usage I've found that it does. If you're learning, you're definitely better off learning the standard stroke order for the area where you live.

<comment><USER7> I mean, sure...there's a gray area here. I could theoretically write all of my latin characters from right-to-left, but it would be wonky and hard, if only because english is written from left to right.

I believe there's a reason for the rules and that you need to know them. I think patio11's metaphor is the correct one -- it's a lot like english spelling.

</comment></comment></comment></comment></comment></comment></comment><comment><USER9> About the reference in article to deep learning producing art:

The thing is that what a current net is doing is very simple. It's just extrapolating from a set on a high dimensional feature space.

There's no meaning here and so it's hard to generating a bunch of pseudo-data as art. It's fun and interesting when you do it a few times so any semi-random technique like ink blots or fractals but if you produce a steady stream of something like that, it's unoriginal, non-artistic qualities become more obvious.

<comment><USER10> If a urinal on a pedestal can be art, I think we've lost the fight when it comes to the word having any meaning.

</comment></comment><comment><USER11> >suddenly realise they forgot how to write Kanji. I am also guilty of this – even though I read a lot of Chinese and Japanese content in my everyday life, I struggle to write Chinese characters. What we notice is that while we can definitely read and recognise the characters we are able to write, the converse is certainly not true.

when written in ink by brush the order of strokes seems to follow very natural flow, yet when it is taught using pencil it looks much less natural.

<comment><USER12> It's not about stroke order. You just forget how it should look. It's like the difference between being able to recognize someone's face and being able to draw it from memory.

<comment><USER11> Thanks. I did feel that my interpretation wasn't enough.

</comment></comment></comment><comment><USER13> "Dreams up" sounds a lot like modern "handcrafted with love" marketing.

</comment><comment><USER14> _' Twas brillig, and the slithy toves_

 _Did gyre and gimble in the wabe;_

 _All mimsy were the borogoves,_

 _And the mome raths outgrabe._

</comment><comment><USER15> I wonder what RNN-generated fake Latin characters would look like. Sort of a handwriting version of that "what does English sounds like to non-English- speaking people" video. ([https://www.youtube.com/watch?v=Vt4Dfa4fOEY](https://www.youtube.com/watch?v=Vt4Dfa4fOEY))

<comment><USER16> I reproduced an English handwriting generation experiment in the previou post.

[http://blog.otoro.net/2015/12/12/handwriting-generation- demo...](http://blog.otoro.net/2015/12/12/handwriting-generation-demo-in- tensorflow/)

</comment></comment><comment><USER17> The more I read about machine learning using neural networks, the more I realize that we've just moved the "decisions" up into the choice of architecture and hyperparameters. This blog post describes a process of tuning the neural network until it generates Kanji that "look right" to the author.

<comment><USER18> What's interesting though is that debugging hyperparameters like this is much more at the level of human thought, rather than the nitty-gritty of programming. It's much closer to the Star Trek concept of programming

"Computer, create fake chinese characters. These don't look right, stop drawing earlier. Ok, cut out all that are outside a one inch by one inch square."

<comment><USER19> "No, not like that. Why are you doing that? What on earth is causing that? What can I do to change it? I'll throw away the ones that don't work - oh, there are none left. Has it stopped working? Why is it eating 100% CPU and not spitting out any results?"

One of the earliest games projects I worked on with learning AI scrapped the learning AI because it had a habit of sometimes, but rarely, causing the characters to run into the corner of a room and stay there until shot. Nobody had the slightest clue how to 'debug' the neural network to solve the intermittent issue.

It's all fun and games when things are going well. But like Jurassic Park, when it comes to paying customers, eventually there will be running, and screaming.

<comment><USER16> The problem with this particular algorithm is that I needed to have a lot of data to make it sort of work. I'm not sure how your AI was trained to play that game, sounds like a difficult problem-

</comment></comment></comment></comment><comment><USER20> Pretty cool - some of the characters are actually real Chinese characters.

</comment><comment><USER21> [http://hanja.naver.com/](http://hanja.naver.com/)

Here's a korean site providing many Hanja/Kanji/Hanzi stroke orders

<comment><USER16> Cool, I wonder how difficult it would be to extract all of the stroke data. LINE would probably not put the data on github..

</comment></comment><comment><USER22> Maybe this can be used to generate embarrassing nonsense tattoos for idiotic Americans.</comment>


Show HN: A simple bare-metal Forth for the PDP-10 - <AUTHOR> https://github.com/aap/tenth <comment><USER2> Brilliant! I love the name TENTH, which is 40% of FORTH.

If you're not playing with 36 bits, you're not playing with a full DEC.

I wonder if there's a way to use the PDP-10's repeated indirect bit effective address calculation to efficiently thread Forth code, or implement higher level words like <BUILDS and DOES> by bunny-hopping through the CFA (Code Field Address)? [1]

[https://en.wikipedia.org/wiki/PDP-10#Instructions](https://en.wikipedia.org/wiki/PDP-10#Instructions)

<comment><AUTHOR> I had the same thought at first but somehow all the indirections were confusing me and I think it makes things more difficult than necessary. What I plan to do however is to use direct threading instead since a JRST takes no more space than the mere address of course. That would make NEXT a bit simpler and save some space.

<comment><USER2> Have you checked out the NOVIX Forth Chip? That has a lot of great ideas you could apply, or at least find entertaining!

It had a horizontal bitslice architecture, and separate independent busses for main memory, operand stack and return stack, so several forth words that did some stack manipulation, used the alu, and returned from a call, could all be collapsed into one instruction that accessed main memory, the operand stack, and the return stack at the same time!

[http://www.forth.com/archive/jfar/vol3/no2/article38.pdf](http://www.forth.com/archive/jfar/vol3/no2/article38.pdf)

[https://users.ece.cmu.edu/~koopman/stack_computers/sec4_4.ht...](https://users.ece.cmu.edu/~koopman/stack_computers/sec4_4.html)

<comment><AUTHOR> No, I'm not a forth expert btw. I find forth interesting and wanted to write something to run on the PDP-10 but I've yet to write some non-trivial forth code.

<comment><USER2> Your direct threading approach sounds like a good technique for the PDP-10.

The NOVIX chip is way different that what you're doing, since it has its own instruction set and a pretty fancy compiler. The set of FORTH words it chooses as its instruction set is a good example of a minimal FORTH kernel.

<comment><USER3> Don, what do you think about the eForth Model and the F18 instruction sets? I've been thinking a lot lately about minimal practical instruction sets. I'll check out the NOVIX, which I had of course heard of but never dug into — thanks for the recommendation!

<comment><USER2> That's new to me, so I'll check it out -- this site looks informative: [http://blogs.msdn.com/b/ashleyf/archive/2013/10/13/programmi...](http://blogs.msdn.com/b/ashleyf/archive/2013/10/13/programming- the-f18.aspx)

</comment></comment></comment></comment></comment></comment></comment><comment><USER4> This is seriously impressive work. And writing an assembler to build a compiler is also in the long tradition of craftsmen/craftswomen making their own tools for use in creating their ultimate objective.

<comment><AUTHOR> My plan is to have my B compiler ([https://github.com/aap/abc](https://github.com/aap/abc)) spit out PDP-10 assembly eventually. It would be a perfect fit since B assumes word addressed memory.

</comment></comment><comment><USER5> I showed this to my boss who likes to talk about DEC, and how the PDP-10 was his "first computer in college". First he smiled then "said ohhhh what a useless exercise" then launched into a half hour of stories about programming the thing.

</comment><comment><USER6> Wow, -10 assembler. Now _that_ brought back a flood of memories of TOPS-20 systems hacking...

</comment><comment><USER7> My dad used to work on these and older stuff as a field tech for DEC. There's lots of good stuff on that github page I can show him. Good info!</comment>


BLOOM language for distributed programming (BOOM project)  - <AUTHOR> http://boom.cs.berkeley.edu/index.html

<comment><AUTHOR> Also see the ruby DSL: <http://www.bloom-lang.net/>

<comment><USER2> Also see? That link is the same thing isn't it?

</comment></comment><comment><USER3> Bloom, Boom, Bud, Overlog, Dedalus. Lot of new things here (for me at least).

But (not flaming, just asking) why Ruby? Is that a good choice for this project, or is it just research anyway so it doesn't matter?

<comment><USER4> My interpretation is that they have chosen Ruby explicitly in order to validate the general approach and to make understanding it tractable to the average practitioner i.e. a programmer doesn't have to learn a new language to learn a new paradigm.

<comment><USER3> I must have a mental issue as I get happy when I see prolog/datalog derivatives and unhappy when I see ruby-like stuff. I might be very lonely in that regard :)</comment></comment></comment>


Ask HN: What is the hand-washing of development? - <AUTHOR> I'm reading "Better" by Atul Gawande about how physicians and medical care can improve.
He cites hand-washing as one of the simplest and most effective ways to prevent complications from hospital stays. He writes about how it's universally effective at reducing infections, but still doesn't get implemented for dozens of different reasons (including laziness).
What is the "hand-washing of development"?  What is a simple practice that, when universally and consistently braced by a development team, always results in higher quality output with fewer defects?
Put another way, what are we most often not doing that we COULD do and know that we SHOULD do? <comment><USER2> I like this question, but it is hard to define one that is global to all projects.

Without putting much thought into it though, I'd say the hand washing of development is source control. Most projects know they need source control so do some parts of it, but don't use it to properly make reproducible software builds consistently. And sadly I have ran into a lot of people still not using source control, which blows my mind.

</comment><comment><USER3> Mature devops. Let's say we have a CI/CD pipeline that runs tests and deploys to prod if tests pass and it all happens in a few minutes without further interaction. Given this, you may opt to write better tests, have more coverage, watch deploys when they happen. Also, nothing gets to prod without a automated, repeatable, logged process.

</comment><comment><USER4> Using source code control. Ever so many things become easier, and yet there are still teams that have never heard of it.

<comment><USER5> This, and regular checkins.

</comment></comment><comment><USER6> Not releasing to production on Friday afternoons? :)</comment>