First engineering employee comments on Krebs post about implosion of Norse - <AUTHOR> http://pandawhale.com/post/70333/sources-security-firm-norse-corp-imploding-krebs-on-security <comment><USER2> The story in question:

[https://krebsonsecurity.com/2016/01/sources-security-firm- no...](https://krebsonsecurity.com/2016/01/sources-security-firm-norse-corp- imploding/)

<comment> at-fates-hands I'm all for letting a company die out, but jesus it looks like there were a ton of shady business dealings, hidden partners, reverse mergers and other sketchy moves.

This article should, at the very least, be a warning sign to anybody who thinks about investing with, or going to work for any of the people associated with any of the firms listed in the article.

<comment><USER3> They also got a lot of their traffic data by sniffing packets at shoddy colos around the world. Sketchy indeed.

</comment></comment></comment><comment><USER4> people should just let a company die in peace so the people working there who did fine work and not neccesarily were implecated with this can find a job easily after it blows over >.> this kind of shit is tasteless and just burdens people who have nothing to do with it. bunch of 12 year olds point at eachothers fails. when will people learn this is not how you grow. as a person, group, company, country, or whatever kind of group of people.

What has been learnt from all these things we didnt know yet? nada.

<comment><USER5> If you knowingly work for a snake oil vendor that speaks volumes about your ethics.

</comment></comment><comment><USER6> I don't think anyone in the security industry ever took Norse seriously.

They spawned an amazing parody pretty early on: [http://threatbutt.com/](http://threatbutt.com/)

<comment><AUTHOR> They had really solid engineering in areas where they really didn't need as much expertise. It was an amazing collection of FreeBSD talent.

</comment></comment><comment><USER7> This is hilarious, the company and it's technology is now dead, but they still insist it's _just the best_ , believe us!

<comment><USER8> I'm still reading, but lets remember that the business side and the tech stack are separate entities and skill sets. They might have the best tech and the worst business.

<comment><USER9> I'm the author of the post, rebutting the Krebs story... and yes. I'm hella proud of the tech we built.. the business... not so much.

<comment><USER8> Meh, it happens. Best of luck with whatever is next for you.

</comment></comment></comment></comment><comment><USER5> Interestingly, both norse website and their mailservers are offline.</comment>


Replace the App Store - <AUTHOR>

The iPhone has peaked.  The App Store harms it by making developers hate Apple.  The App Store makes it impossible for programmers to release apps at the lightening speed they develop them. Releases run at the 10-day Apple-schedule.  Which is two orders of magnitude far from the developer 10-minute schedule.  On the list of things you could do to make developers hate developing for you this might be on the top.  There is a lot of potential energy to be liberated here.
Apple won't do something about this. Or rather, it won't do something soon enough. This opens a tremendous opportunity for a startup. The iPhone being dead is a begging invitation to bring locked-in iPhone developers out of their half-dead, zombie state back to life. Apple's fortress is but one Trojan horse away from falling.
If you wanted to make iPhone app releases faster, how would you do it?  You'd probably need some sort of meta-app that runs other apps.  This app would have to have a programming language and be able to run apps written in it.  I personally wish I could write an app in a dynamic language, under my favorite text editor, and have this meta-App interpret it.  I want to update the app while the app is running; not when the user syncs with iTunes.  I want the language used to program the app to instrument things for me.  I want to have analytics.
What's the most powerful iOS app you can build? <comment><USER2> > _Which is two orders of magnitude far from the developer 10-minute > schedule._

I hate those "ninja" developers who poop so-called "apps" every 10 minutes. We don't need any of them in the App Store (and those that are there need to be rejected IMO).

By the way, you can develop for iPhone and change everything you want and have these changes delivered to your customers 2 minutes after you've made them. Use whatever dynamic language you want for the backend and write the front-end with HTML and JS. You could've used it since June 2007 and you'll be able to use it for the foreseeable future.

<comment><AUTHOR> Have you noticed developers don't use HTML for iOS apps? This only adds to the argument that a better iOS language is needed.

</comment></comment><comment><USER3> Show me some (any) evidence the iPhone is dead or even dying?

<comment><AUTHOR> It's not trailing that signals it's dying <http://mashable.com/2012/07/13/android-51-8-market-share/>

It's the fact that hackers don't want to develop for it. At least none of the ones I know.</comment></comment>


MakerLegoBot: A Lego Mindstorms NXT 3D Lego Printer - <AUTHOR> http://battlebricks.com/makerlegobot/

<comment><USER2> Why, to this day, am I still mesmerized by Legos? Is it the fact that it was my first "engineering" like activity which allowed unconstrained creativity that ultimately lead to my career in software engineering? Or was it more mundane, Robinhood never looked so good until I made him battle a space alien...

<comment><USER3> The Minecraft developer should implement lego NXT-esque stuff in his game :)

<comment><USER4> He does have Redstone, which is Turing Complete, to the point where someone built a 16 bit ALU (I think they went further than that though) out of it. I've seen a few seven segment displays in it too.

</comment></comment></comment><comment><USER5> Not meta enough! It should be made out of 1x2, 2x2, 4x2 and 8x2 blocks, and construct itself! That would be mindblowing.

<comment><USER6> But it would lead to an army of insatiable Lego Von Neumann machines taking over the universe.

</comment></comment><comment><USER7> Skip the pointless summary:

<http://battlebricks.com/makerlegobot/>

</comment><comment><USER8> Please can someone invent a way to turn all the plastic packaging that I throw out into lego bricks?

<comment><USER9> There are already Lego-compatible designs on Thingiverse (<http://www.thingiverse.com/thing:591>), and the RepRap community is working on the recycling aspect ([http://www.3dreplicators.com/cgi- bin/cblog/index.php?/archiv...](http://www.3dreplicators.com/cgi- bin/cblog/index.php?/archives/423-Revisiting-the-recycling-of-Reprap- plastics.html))

We'll be there before you know it.

</comment></comment><comment><USER10> This could be fun as a two phase process, with a typical injection molding machine making legos and then lego maker bot turning them into things. Then you'd have plastic powder -> somewhat arbitrary objects without needing to swap molds out.

<comment><USER11> Also add a lego recycler that rips apart a legos object and grinds the bricks to form the molder's input plastic pellets.

</comment></comment><comment><USER12> So it's a Lego compiler, but it can't quite compile itself yet. I guess that's the next step?

<comment><USER13> Before humanity meets its doom at the hands of self-replicating sentient lego robots? Yes.

P.S. Start stocking up on these now: [http://shop.lego.com/Product/?p=630&cmp=kac- csena&hq...](http://shop.lego.com/Product/?p=630&cmp=kac-csena&hqs=630)

</comment></comment><comment><USER14> Now they just need to miniaturize it 10^9-fold and we'll have our molecular nanotech.

</comment><comment><USER15> Cool! Also interesting and perhaps even more geeky:

Lego Turing Machine

<http://www.youtube.com/watch?v=cYw2ewoO6c4>

</comment><comment><USER16> So.. its meta lego? (Made 'a lego... get it?)

Thank you, thank you. I'll be here all night.

<comment><USER17> > Thank you, thank you. I'll be here all night.

Thanks for the warning ;)

</comment></comment><comment><USER18> That's impressive...I guess. But can it build itself? :)

<comment><USER4> That's a tad like asking if an artificial intelligence is sentient, no? :P</comment></comment>


The Cucumber Test Trap - <AUTHOR> http://tooky.co.uk/the-cucumber-test-trap/ <comment><USER3> I'm sick of all these software engineering articles which are so vague and give no numbers, no hard evidence, and not even any very specific anecdotes.

<comment><USER4> Software architects... the people that don't code but seem to have enough ego to spare to tell everyone else what to do.

<comment><USER5> Sounds like a culture issue rather than a "software architect" (whatever that title means) issue.

</comment></comment></comment><comment><USER6> Judging from the comments most people here _still_ think Cucumber is a testing tool.

Why is it so hard for people to realise that Cucumber's main value proposition is not testing, but to establish a shared understanding between various roles on a software project?

<comment><USER7> Because it's just a higher level wrapper around a unittest framework? I have no idea what you mean when talking about various roles. What roles?

<comment><USER6> > What roles?

Roles of people on a software team. For example:

Business analysts, Product owners, UX folks, Programmers, Testers, End users, etc.

I have described this in more detail here: [https://cucumber.pro/blog/2014/03/03/the-worlds-most- misunde...](https://cucumber.pro/blog/2014/03/03/the-worlds-most- misunderstood-collaboration-tool.html)

</comment></comment></comment><comment><USER8> I think people assume you need 100% coverage at every level of the testing pyramid and so you have redundant tests. Also, with Ruby in particular, the interfaces between objects and methods are so weak that you have no guarantee that things will fit together and behave properly.

For example, in Ruby you can have a method with 2 parameters of X and Y. Maybe X should be a string and maybe Y should be a float. You can unit test the method to make sure it does the right things, but as soon as something else calls that method there is no guarantee they will call it correctly or pass in the right type of arguments. Thus, there are tons of potential integration problems all over ruby code.

I think this lack of strong interfaces has trained ruby developers not to trust unit tests and so they go down the path of integration and end to end testing. Due to the weaker type and interface guarantees of the language, you will write more tests to get the same level of confidence in your code. By compensating for this language weakness, you are falling into "The Cucumber Test Trap" or more generically you aren't following the testing pyramid sensibly.

</comment><comment><USER9> I don't program in Ruby. I write Python so Lettuce ([http://lettuce.it/](http://lettuce.it/)) is the obvious Python binding to use. I've only used Lettuce once and I had an awful experience. That was a two years ago.

I like writing tests though my experience with software development has been limited to school projects, personal projects and intern projects. Nothing major. Nothing at the scale of ecommerce or Google scale.

But one thing I learned from writing tests (unit tests, integration tests and functional tests) is that do what is straightforward and don't worry about the strict TDD cycle. I worry about logging and error messages.

I've spent a whole week learning Lettuce. At that time the research project I was working on lacked tests (the project was using Django). I was told to look up Lettuce because writing Lettuce tests is like writing stories.

My awful experience was trying to wrap my head around the framework, trying to do many things that would take many steps and many tricks to complete. The table was awful. I didn't like it.

I gave up. I turned back to the built-in unittests module. I wrote some tests and from that point the only testing framework I have to add is the _mock_ library. When I need an isolated unit tests I would call _mock_. When I need to test integration between modules without involving database calls or HTTP requests I will use _mock_.

Testing should be straightforward and should remain simple. Maybe Cucumber works nicely with Ruby's RSpec (I heard a lot about rspec and how rspec is so awesome and helpful for testing, not sure if that's true since I am a Python developer).

I also don't think writing a million test cases will work. In the end, while I think unit tests and integration tests are useful and awesome, I like to catch up with my functional tests. Most of my tests are done on the server side (so just use _requests_ library to make HTTP calls). Depending on what kind of application you are testing, the testing tools can vary.

In the end, keep your tests simple. If something breaks, you better fix it quickly.

Logging , incidents collection and error messages are the most important thing in deployment and testing. If I have to spend hours to trace down the bug (the process died half way) or user is confused why the service is not working properly, I will waste more cycles to build my product.

<comment><USER10> I've had pretty bad experiences with mocking frameworks. I try to keep all my tests straight-up python unittests. Forcing yourself to setup and tear down classes and their dependencies in a few lines of code while also keeping the ability to swap out dependencies improves my design by an order of magnitude.

I've had projects that were incredibly hard to change due to mocked out database and network dependencies.

That being said, I've occasionally resorted to mock when I'm stuck with crappy code that needs to be put under test before refactoring.

<comment><USER9> I am okay with mock. I was an early adopter of mock so I had the same struggle. Well, I agree there is a big learning curve using mock. When I mock I get lazy I mock a lot of things out.

If the project has to spawn processes or do a lot crazy network stuff I just forget about mocking and true unittest. I go straight with functional tests.

</comment></comment></comment><comment><USER11> I've never used Cucumber, but a lot of this article seems very familiar. I was working in a C++ desktop app, and we had similar problems with our tests. Some developers insisted on thoroughness and would write massive sets of end-to-end tests (in addition to unit tests). Our test suite was rapidly becoming slow and unwieldy. After about 8 months of development, we had around 1000 end-to- end tests, which took an hour to run. That was already painful, but we feared what it would be in a couple years if we kept adding tests at that rate.

My solution was to abstract away the things that made it slow and swap in faster components for the tests. Network connections were replaced with in- memory buffers, external programs were pulled into the same executable, and timers were simulated. Bam. The tests compiled in minutes and ran in seconds. People actually ran and listened to the tests because they were fast and reliable.

Of course, I was then left with no real end-to-end automated tests. The 'almost end-to-end' tests I had covered most of the software, though, and manual testing was used to catch the rare bug that would slip through. My conclusion was similar to that of the article: if you were going to do real end-to-end testing, you couldn't write very many tests.

</comment><comment><USER12> _Avoiding the cucumber test trap is hard. It's easy to keep adding scenarios which give you a false confidence that your application is working correctly. It's easy to just add some more code to make those scenarios pass._

 _Instead we need to keep focusing on the conversations. Find the scenarios that matter, that are important to document, that are worth automating and push everything else down into lower level, isolated tests._

How then do you prioritise which tests are actually important to document, or better still edit out the ones that aren't? It seems like it would be difficult to be consistent.

<comment><USER13> Agree and write the Cucumber tests when you write your stories, in the same meeting. Agree to write the minimum test that describes the feature in a way that everyone agrees on and understands. Don't rely on Cucumber to test all your edge-cases.

<comment><USER14> This.

BDD is about the conversations - getting people together with a business mindset, a dev mindset and a tester mindset to discuss what needs to be built.

From that discussion you get a good idea of the business requirements - <USER2> hopefully some examples of how they should play out.

The person with the business mindset will have some of those examples that are important for them to be automated as business facing acceptance tests. The one's you write in gherkin.

The person with the testing mindset will have a bunch of ideas about how you can break this. Some of those will be important enough that they should become business facing tests, but often the group can decide that these would be better tested by unit tests.

We call this meeting the 3 amigos.

</comment></comment></comment><comment><USER15> I was heavily involved with the Fit project for a while. (Fit is Ward Cunningham's predecessor to Cucumber. It used HTML tables rather than ASCII sentences.)

I find it interesting, if not surprising, that the Cucumber community is discovering exactly the same issues that we did with Fit: namely, that it encourages brittle integration tests, and that people don't use it for its intended purpose of collobaration.

I've come to believe that these problems are unsolvable.

I worked on and promoted Fit for several years. Eventually, after some deep soul searching, I concluded that Fit (and by extension, Cucumber) is _solving the wrong problem_. The value of Fit (and Cucumber) comes from _discussions with domain experts_. The tools encourage a certain amount of rigor, which is good, but you can get that rigor just as easily by discussing concrete examples at a whiteboard.

The actual automation of those examples, which is where Fit and Cucumber focus your attention, has minimal value. In some cases, the tools have negative value. Their tests are fundamentally more complex and less refactorable than ordinary xUnit tests. If you want to automate the examples, you're better off doing it in a programmer tool.

Some people got a lot of value out of Fit, and I'm sure the same is true for Cucumber. They got that value by using it for collaboration and focusing on domain rules rather than end-to-end scenarios. My experience, though, was that the vast majority used it poorly. When a tool is used so badly, so widely, you have to start questioning whether the problem is in the tool itself.

Ward and I ended up retiring Fit [1]. I've written about my reasons for abandoning it before [2] [3].

[1] [http://www.hanselminutes.com/151/fit-is-dead-long-live- fitne...](http://www.hanselminutes.com/151/fit-is-dead-long-live-fitnesse- with-ward-cunningham-and-james-shore)

[2] [http://www.jamesshore.com/Blog/The-Problems-With- Acceptance-...](http://www.jamesshore.com/Blog/The-Problems-With-Acceptance- Testing.html)

[3] [http://www.jamesshore.com/Blog/Acceptance-Testing- Revisited....](http://www.jamesshore.com/Blog/Acceptance-Testing- Revisited.html)

<comment><USER6> I completely agree with you that the most important value with BDD and Specification by Example happens during conversations at a whiteboard.

Cucumber/Fit/high level tests aren't fundamentally less refactorable. They have a looser coupling to code than unit tests, so when the production code is refactored they are less affected than xUnit tests.

The problem most people make is that they are trying to cover too much with Cucumber. And they use it _solely_ as an automation tool without any collaboration whatsoever. That doesn't work, but it's difficult to get that message across to people.

In order for Cucumber and Specification by Example to be used well it is essential to provide tooling that appeals to the most critical piece of the collaboration puzzle: The business analysts (or the people with the requirements).

Nobody has solved this problem yet, but I think it is a solvable problem. We're trying to solve it with Cucumber Pro: [https://cucumber.pro](https://cucumber.pro)

Let's see how that goes.

<comment><USER15> Looks promising! I wish you the best of luck with it.

</comment></comment></comment><comment><USER16> The author of the article should read the book "Specification by Example" ([http://specificationbyexample.com/](http://specificationbyexample.com/)).

It is absurd to complain about cucumber, if cucumber is used for things it wasn't intended to do.</comment>


The rubber hand illusion - <AUTHOR> https://www.newscientist.com/article/dn16809-body-illusions-rubber-hand-illusion/ <comment><USER2> One of the best TED talks, in my opinion, was given by Vilayanur Ramachandran and it touches on this topic. It's a great presentation loaded with tidbits about how the brain works. Found here: [https://www.ted.com/talks/vilayanur_ramachandran_on_your_min...](https://www.ted.com/talks/vilayanur_ramachandran_on_your_mind)

House (tv show) had an episode on this illusion as well, where House broke into an amputee's house, tied him up, and used the illusion to stop the amputee's phantom pain in his "hand".</comment>


Show HN: Roboto, build and deliver your iOS and Android apps - <AUTHOR> http://roboto.build

<comment><AUTHOR> Hey all!

I've been working on Roboto for some time now after leaving my full time job as an app developer and designer.

One particular pain point was getting beta builds to our testers and deploying to the App Store. We worked in a team, so creating builds would require checking out each other's changes, ensuring we had the right profiles on our machines, and so on. Yuck.

You might be thinking "you need to use CI - Jenkins!", and we tried it. I was at an agency with multiple apps on the go every few months, and getting Jenkins set up and working in a way we wanted was a massive pain in the ass. It was a hot mess of plugins, hacks and external services such as TestFlight and HockeyApp. Other services that offered an alternative — such as Travis and CircleCI — would require access to your private source code, signing identifies, etc.

Paying someone else to compile your code made little sense to us, as we had perfectly capable Macs of our own. Roboto is built so that we manage the bits you'd want us to manage: hosting of the IPA and APK packages, installation pages, emails, web interface, users, etc. You then run the "Roboto Worker" on a Mac of your choice, which does all the compilation and source code management locally. The upside of this is we never see your private data, and your builds can make full use of your hardware — no sharing with other developers

We have big plans for Roboto. What you see today is just the beginning. Whilst I think sharing future plans publicly can sometimes set people up for heartbreak (scrapped features, delays, etc), here's a couple of things already in the works:

\- Unit test support. \- iTunes Connect and Play Store management (metadata, screenshots, etc) \- Full build support for Android.

So that's a bit about why Roboto exists. I'm really looking forward to seeing what you guys think! Happy to answer any questions you guys and gals have. Thanks!

tl;dr: It's an out the box CI tool for mobile apps, TRY IT FREE TODAY.

<comment><USER2> Thanks for posting this, it looks like a cool service! I'd suggest mentioning somewhere on the landing page both the tl;dr from your comment, and the fact that you're a CI/deployment tool rather than a build system. I wasn't clear on whether this was some sort of mobile development framework or what.

<comment><AUTHOR> Cheers for the feedback - I'll look at tweaking the copy. I've had a sinking feeling it wasn't as crystal clear as it could be (too close to it).

</comment></comment></comment><comment><USER3> Looks great!

On a side note, your web design made me smile. Subtly reminds me of the old Trapper Keeper designs of the 90s: [http://i.imgur.com/dGF57ff.jpg](http://i.imgur.com/dGF57ff.jpg)</comment>


Ask HN: What's your primary development laptop? - <AUTHOR> Want to gauge the current situation. Especially with new ultrabooks like the Thinkpad Carbon X1 out these days. <comment><USER2> 3/4 of recent jobs gave me a macbook. Between jobs and away from my desktop, I use a refurbished HP junker. Laptops are disposable and too severely compromised to make good investments. Anything that can run emacs, git, offline docs, and shelling out to a real computer will do.

</comment><comment><USER3> Early 2013 rMBP 15"

It's still quite the workhorse and I'm happy with it. Besides needing a new battery after ~3 years, I'm not sold on the tradeoffs of upgrading to the touch bar model. If I could just buy this same machine again today, I would do that. My only complaint really is it'd be nice to have a matte screen but I don't think Apple even makes matte displays anymore.

<comment><USER4> How does a matte screen help? less glare?

<comment><USER3> exactly

</comment></comment></comment><comment><USER5> I'm not a gamer but I bought an Acer gaming laptop. It's ugly, but powerful, and it was on sale. I've gotten used to the lights and angular features. Only annoying thing I can't remove is the logo which is some aggressive looking face thing.

I'm happy with it but I get it that someone people just can't stand the aesthetics of gaming laptops. But they do have great perf metrics.

<comment><USER6> I have an asus gaming laptop. Basically the same story, even down to a logo that might be a face.

I've had it for several years now, 18" screen, and it is still plenty powerful.

The battery life is shit, that's the only drawback.

</comment></comment><comment><USER7> My primary development laptop for hobby projects is a 2016 ThinkPad X1 Carbon running Fedora. It is used mostly for web dev and Python dev.

This would not be suitable for all aspects of my normal day job, but I refuse to set up at-home VPN access again anyway so it's a nonissue.

</comment><comment><USER8> Thinkpad W520. Works fine; it's heavy, but I don't need to carry it very much since it lives on my desk most of the time.

</comment><comment><USER9> Was a 2016 15" MBP w/Touch Bar (max specs), and macOS. It's on the shelf now.

Now it's the new Dell XPS 15" (9560) (max specs), and Windows 10 - Fast Ring.

<comment><USER10> Why did you switch? (And put a 4-5k machine on the shelf)

The touch bar so horrible?

<comment><USER9> The Touch Bar is gimmicky, for sure. The only useful feature (in my opinion) is Touch ID. Otherwise it's an unnecessary battery drain.

Why did I switch? It boils down to this: after 13 years of being a hard core Mac user, it feels like Apple doesn't care about the Mac any more. It feels like all they care about is the iPhone.

This Dell? It's a better "MacBook" than Apple's MacBook Pro. Beefier CPU. Beefier GPU. Twice the RAM (32GB).

I want raw power, to do my work with. Apple cares more about thin and light, at the cost of everything else.

</comment></comment></comment><comment><USER11> HP Zbook 15 first generation. i7 4xxxMQ, 16 GB RAM, 1 TB SSD (upgrade of the original, 750 GB HD), Nvidia Quadro K1000M, Ubuntu 16.04, 1920x1080.

<comment><USER12> I have a G1 too. Biggest problem is the weight of the thing!

<comment><USER11> The laptop not much, but the power brick is really a brick.

</comment></comment></comment><comment><USER13> Dell XPS 13 Developer Edition running NixOS.

</comment><comment><USER14> 2016 MacBook Pro 15" w/ Touch Bar

</comment><comment><USER15> Early 2015 13" rMBP.

Have no complaints—works perfectly.

<comment><USER16> same here. Bought it after the 2016 MBP came out, specifically because it was still a better design. Am very happy with it.

</comment></comment><comment><USER17> Macbook Retina 12 inch early 2016

<comment><USER18> Hi, if you don't mind sharing, what sort of development work do you do? Do you do much local development or is the heavy stuff offloaded to other computers? I like the form factor but I worry about lack of performance.

<comment><USER17> I just started my first project with my client. The project is still getting started, it's Django with Docker. It's doing fine at the moment. It's the perfect form factor for me, and it's a Mac so I don't have to port all my stuff to my Linux yet. It's great for taking out in front of clients. I'm enjoying the lack of weight on my shoulders when I'm carrying it around in my backpack. It's got 512 gb, which is a lot more comfortable than 256 gb. I haven't encountered any issue with the 8 gb RAM yet. The battery is shorter when doing development compared to an older 15 inch Macbook pro I used to use, but it's fine, I get half a day out of it. I love the thin keyboard. There's a "Turbo Speed: 2.9 GHz" that can come on if it's not too hot - I was using my Macbook in 40 degree celsius weather and that day it shutdown a couple of times from overheating - I was playing with OpenGL.

When the project I'm working become more complete and there's more processing then I'll see what happens then. ;)

TLDR: Most of the performance bottleneck from Node.JS and Django is from I/O anyway and the SSD is pretty fast. I love it because it's the perfect form and it's a Mac. People are still using 2012/2013 Macbook Pro's, Macbook Air's for development, and this computer can more than compete.

<comment><USER18> Cool, thanks for the detailed response. I was toying with getting a 13" MBP, but have always like the 12" tiny form factor. I do have a big slow and heavy 13" Dell from the day job right now, so we'll find out how this new project goes. Shutting down from overheating doesn't sound too great through, I guess that's what you pay for doing OpenGL stuff in the heat.

I play with computer vision and image processing stuff on the side, as well as some iOS and watchOS development, so I'm worried that the 12" might be a little underpowered for these applications. The turbo boost frequencies are quite significant though. So many trade offs!

<comment><USER17> Yes I think with computer vision and image processing a computer with a dedicated graphics card would be a better choice! For certain kinds of iOS development I think it's worth a try.

</comment></comment></comment></comment></comment><comment><USER19> MB air 13"

Full Stack Dev Laravel/Rails

</comment><comment><USER20> Macbook Air 11" from 2012

</comment><comment><USER21> Lenovo T520. Its justice.

</comment><comment><USER22> A 2015 Retina Macbook Pro 13

</comment><comment><USER23> Lenovo Carbon 3rd gen

</comment><comment><USER24> Mid 2015 rMBP 15"

It's great.

</comment><comment><USER25> Asus zenbook :)

</comment><comment><USER26> Mid 2014 MBP</comment>


Ask HN: Have you ever sees a total eclipse? Did it change your life? - <AUTHOR> <comment><USER2> Yeah. Changed how I see things.

<comment><AUTHOR> punny</comment></comment>


Paul Graham and not being as right as he could be in "The Age of the Essay" - <AUTHOR> http://jseliger.com/2011/12/02/paul-graham-and-not-being-as-right-as-he-could-be-in-the-age-of-the-essay/

<comment><USER2> With the caveat that I haven't read Paul Graham's original essay, I have to say that I take issue with a couple of key things in Paul Seliger's response.

First though, credit where it is due: Seliger obviously thinks and cares deeply about this, and has much more real-world experience with it than I. (I am not a formally-trained educator; however I'm a good essay-writer when I put my mind to it, and have been drafted into teaching it on a handful of occasions). Furthermore, Seliger's description of the students he encounters -- their default writing habits and innate ability to explore unfamiliar knowledge domains -- rings absolutely true. He clearly knows what he is talking about in this regard.

However he goes astray in two key respects.

First, he gives examples of formal domains of knowledge ("Money", "Baseball", "Paul Graham's views on Entrepreneurialism") which are both full of abstractions and relatively disconnected from most kids' lives. It should be no surprise that they have difficulty engaging with these subjects in depth or with passion. But Seliger then goes on to conclude that therefore, his students lack the capacity to engage with real-world unbounded knowledge domains.

This is wrong, and it comes from looking at the problem through the wrong end of the telescope. Instead of saying "here is an interesting and well-written body of non-fiction essays about [ money | baseball | ... ]; let's see if I can get my students to engage with it," one should say "here is an issue that my students are engaged with; let's see if I can get them to engage with it as writers / essayists".

Most kids' lives are richer and more problematic than adults comprehend. This offers plenty of material to unpack and examine, and flex their cognitive muscles in the process. For example: where I live in London, we had a series of major youth riots earlier this year. (Well, major for the UK; having grown up in California, they honestly seemed quite tame to me.) Many highschool students participated in these riots, or had friends who did, or had homes / communities / favourite social spaces which were affected by the riots. Certainly ALL young people in London are now being directly affected by the collective response to the riots, on the part of politicians, police, educators, etc. I frequently hear young people espousing various opinions on the subject at bus stops -- rarely very nuanced opinion, mind you; mostly just expressions of the degree to which something or other is bullshit, but no matter -- and that's a good signal that it is something which is sufficiently part of their lives, and which they feel sufficiently passionate about, that it merits exploration with improved analytical techniques.

So if I were teaching essay-writing here in London, I'd start with the riots. I wouldn't even start with the the literary response to the riots -- that's already a bridge too far for most highschoolers -- I'd begin with the television reporting about the riots, and seeing what kind of response can be elicited from that. Having engaged their interest within a relatively familiar medium, I'd then move gradually into the more literary explorations of the domain: first to short opinion pieces written in the daily papers; then to longer analytical essays and parliamentary addresses; finally to the various explicitly literary / artistic means of engaging with the subject, such as the plays about the riots which are now beginning to emerge.

In other words: start with the passionately familiar, and figure out how to get from there to the literary. Not the reverse. If you think that your students have nothing that they are passionately familiar with, then look harder. They do.

The second place where Seliger goes awry is in ascribing value to the process of conducting literary analysis within an explicitly bounded domain (ie a single essay). I hold the somewhat unfashionable view that this violates the very point of education. In my opinion, the whole and entire point of education should be to prepare people to engage with unbounded domains of knowledge in a confident and competent manner. Anything which avoids the necessity of teaching students how to do this is counter-productive, at least in the real world.

An example: along the way to getting an architecture degree, I once took a graduate-level architectural criticism / philosophy course, taught by a professor who very much came out of the tradition of French post-modern literary analysis. When I attempted to critique architectural manifestos from the perspective of social / environmental / economic / psychological / cultural utility, she gave me the lowest grade which would let me pass the course. Why? Not because of the poor quality of my thought or writing -- that same year, I won the grand prize in a national essay-writing competition on the subject of "Architecture as a Social Art" -- but rather because I had committed the grievous sin of suggesting that there was some kind of external objective reality which in any way had something to do with architecture.

In her literary-criticism universe, any system of thought could only be legitimately judged with reference to itself: how internally consistent was it? What interesting implications could be derived from the self-interaction of its principles? In other words: take a domain of knowledge / body of literature, treat it as though it is fully bounded, and procede from there. Although I can see how this is a useful technique for academic literary analysis, I would submit that it is in fact incredibly HARMFUL for any domain of knowledge which directly interacts with the external real world (ie the unbounded world).

So that's my second critique: literary-criticism techniques are only really useful with respect to literary-criticism, and should be considered harmful with respect to most other domains of knowledge. Educator who default to these techniques because their bounded domains are easier to deal with are doing their students a fundamental disservice. Writing essays about unbounded domains may be harder and messier, but if you don't do that, you're not doing your job.

<comment><USER3> It's not true that literary criticism is only useful for the study of literature. One key reason why we teach criticism is to develop critical- mindedness in general; this has important social as well as personal benefits for the students.

<comment><USER4> The only thing that literary criticism ever inspired me to criticize was literary criticism. Perhaps it was simply taught badly, but I received an excellent primary education - if the better schools around can't teach this stuff then I question how many students learn any critical thinking skills from it.

I learned a lot more about critical thinking from history classes. Those obviously have to be taught well, too. The standard regurgitate-some-dates won't impart any critical thinking either. But I think history as a subject is richer soil to grow these skills from, and isn't mixed up with the teaching of both writing and literature at the same time.

<comment><USER5> """The only thing that literary criticism ever inspired me to criticize was literary criticism. Perhaps it was simply taught badly, but I received an excellent primary education - if the better schools around can't teach this stuff then I question how many students learn any critical thinking skills from it."""

The same can be said for tons of fields. You think the teaching of computer science is really that better?

<comment><USER4> My post was not an objection to teaching literary criticism. It was an objection to defending literary criticism by appealing to the value of general critical thinking skills.

If someone proposed to cut computer science from a curriculum, would your defense be "but without computer science, students won't learn how to think critically"?

I also think we're in danger of equivocating over the word "criticism" here. Literary criticism shouldn't be assumed to teach critical thinking well just because the names are similar.

<comment><USER5> """If someone proposed to cut computer science from a curriculum, would your defense be "but without computer science, students won't learn how to think critically"?"""

Yeah, I would say that. CS can teach a lot about critical thinking, in a way that few subjects can. Programming is a very effective way to test hypotheses and cut through the BS.

If I was to give a list for "critical thinking enhancing courses", I'd also put History and Math up there (also language stuff, spelling and grammar, but as a prerequisite).

So, would literary criticism make the list? I'd say, yes, we need some form of art criticism to enhance a blind spot the other subjects leave to our critical thinking --i.e thinking about things that cannot be reasoned in a 1+1=2 way.

Now, Chemistry, Physics, Biology and the rest, I find secondary in regards to critical thinking.

For example, learning about evolution is not "critical thinking" itself.

That would be learning to argue WHY evolution is more plausible or learning how to find faults in "intelligent design". Or to be able to spot holes and inconsistencies in any theory in general.

<comment><USER6> I'm not certain that I agree with your point. I love computer science, and credit my interest in programming with the vast majority of my intellectual development, but that doesn't necessarily make it better at developing students intellectually than other fields. As I've grown older and made friends with people passionate in other fields (e.g. mathematics, physics, economics), I've learned that those people have developed similar powers of analysis and logic as I have. Through the lens of my conversation with them, and I can see the intricacies and thought processes of their fields of interest, which developed them much as the manipulations required in CS have for me. JMStewy makes a good point. For the literary-minded, literary criticism may be a great way of honing their abilities. For you and I, computer science and practicing on problems in the digital field train us well. I don't think we can say with statistical certainty that any field (let alone literary criticism) are optimal for the majority of students.

</comment></comment></comment></comment></comment></comment></comment><comment><USER7> I'm not an educator and I don't think of myself as a good writer either, but when I look around, I believe that I'm above average. I'll still permit myself to throw in an idea or two, that may help educators tap into new sources.

Are you looking for material to instill interest in your teenage students? Well, Youtube and IMDB are full of opinionated people in that demographic, with things to say. The message is often naive, the form usually bad, but the desire to express oneself is there. This to me is a sign of an opportunity to take something rough and refine it.

Make a game out of this. Mimic forum threads, organize teams, with the objective to come up with the best rebuttal in 500 characters. Forcing them to be creative in the language, while staying clean and to the point.

You want to steer them away from the emotional and moralizing narratives? Expose them to manipulative writing and show them how they fell victim of it. Explain phenomenon such as groupthink and ad-hominem attacks. Show evidence of it in real life and how it's used to steer the mass. Explain that if they're unable to address issues with rationality and analysis, they are being led like sheeps. Nobody wants to be a sheep. They'll be more careful with their arguments.

<comment><USER8>
        I'm not an educator and I don't think of myself as a good writer either,

I am a teacher and I have been paid to write learning materials. I always _listen politely_ to advice offered by people who are not teachers. I listen especially carefully to my students of course as that is a critical part of teaching.

Activities similar to the ones that you have suggested here are used quite often in Further Education colleges in the UK. There is a general emphasis on 'active learning'. For more on this idea, read anything by Geoff Petty.

<http://www.geoffpetty.com/>

especially

<http://www.geoffpetty.com/activelearning.html>

</comment></comment><comment><USER4> I was a student that bitterly resented English class, despite being an avid reader and (as a result) a not-terrible writer. Yet, just like all of jseliger's students, I would never have touched that "book or subject of your own choosing" option.

When assigned an essay for school, my priorities were:

1\. Get an acceptable grade

2\. Spend as little time/effort as possible

3\. Enjoy the process/actually learn something

Asking students directly to prioritize 3 rather than 1 and 2 is just not going to work.

I actually agree that teaching thesis-based writing is a good training tool for analytical writing. But in the interest of expending little effort, students aren't going to consider evidence and then change their thesis. It's much easier to spackle liberally with bullshit, since teachers mostly let that slide.

Grading is the elephant in the room. Students must always take it into account and it's quite rational for them to be very risk-averse. Writing about bounded topics in a bullshit-friendly way is easier and much safer than trying to learn how to think through a subject in writing.

This whole discussion reminds me strongly of Lockhart's Lament (<http://www.maa.org/devlin/LockhartsLament.pdf>) except for writing rather than math. If the whole system, years of education, is leading students down a garden path, it's not immediately clear that you can change how you teach your 2.5 hours a week to help. The students themselves will actively resist a single teacher trying to break the mold. That doesn't change the fact that there is a problem, a very big problem.

I think trying to fix math education is a harder problem, but unless you can somehow get around grading, English is a tough nut too.

</comment><comment><USER9> This is a really well thought out and argued essay outlining the realities of teaching writing. There were quite a few lucid appraisals of students and the skills they lack which keep them from writing a "Real Essay". After reading each one however, I couldn't help but think that the author was in fact generating a very good syllabus for what should actually be the focus of his course.

If students are prone to Ad Hominem arguments for instance, doesn't that suggest that more time should be spent explaining this fallacy?

This was just one of many such examples.

<comment><USER10> I totally agree. The author actually did great work in exploring what students need to improve to be able to write the types of essays that pg was talking about. It's too bad the author didn't actually realize that.

I also wish the author had basically eliminated the first two paragraphs. I almost didn't read the rest of it simply because the first part looked to be setting up a trivial "someone's wrong on the Internet"-style post instead of the well-thought-out piece that it actually was.

</comment></comment><comment><USER11> This assertion (of PG's) caught my eye:

 _The most obvious difference between real essays and the things one has to write in school is that real essays are not exclusively about English literature. Certainly schools should teach students how to write. But due to a series of historical accidents the teaching of writing has gotten mixed together with the study of literature. And so all over the country students are writing not about how a baseball team with a small budget might compete with the Yankees, or the role of color in fashion, or what constitutes a good dessert, but about symbolism in Dickens._

That's no longer true at the university level. In fact, writing has been systematically dissociated from literary studies for a host of reasons, some political, some practical, as composition has established itself as a separate discipline. Only a minority of schools still link the two. (This isn't to say that writing courses aren't still grouped under the auspices of the English Department, only that literature, if it appears at all in a writing classroom, is used for reasons other than its literariness -- i.e. to introduce social issues, etc.)

<comment><USER12> We're talking about high school here.

It has never been the case that serious university-level courses in, say, history or political theory or linguistics didn't require serious paper writing.

<comment><USER13> I had to write essays for subjects other than English from middle school onwards. IIRC mostly for history, with some geography as well. Key point being from my education, essays have always been about making a structured argument, and not exclusively about literature.

<comment><USER14> Same for me. When I was in the equivalent of high school, I had to write essays in Art, English, History, Geography, Latin, Biology, and Physics.

History, in particular, explicitly emphasised structured arguments and critical analysis of sources. I think we wrote short essays, in class, at least 3 times a week. We had a fantastic teacher and I remember it being good fun...felt like decoding puzzles.

Another example I can remember was in English. We spent several weeks reading, discussing, and writing about Brighton Rock in a very structured way. We were then given a creative assignment with 3 options; one was to write a screenplay, which I did. So at 14/15 I absolutely loved writing my first (and only) screenplay.

Maybe I was lucky, but I enjoyed writing essays at school.

</comment></comment></comment></comment><comment><USER15> Essay writing in school isn't about the art of writing -- its about teaching children to logically organize their thoughts into compartments using gramatically correct sentences, then present them in linear fashion. This is very important!

The art of writing is about expressing ideas, emotions, arguments, and passions through any visceral manner letters on paper allow you to.

<comment><USER16> Essay writing in public school is about teaching children the peculiarities of the format they will be graded on in their next standardized test. This is probably a wash.

</comment></comment><comment><USER17> Interestingly, when I was in college, 30 years ago, the writing and communications classes were well segregated from the literature classes. They were very hands on and you could pick your own topics or choose from a selection the teachers provided; I usually wrote on topics from my field of study. The courses were rigorous, often touching on linguistic theory in addition to grammar.

I had one teacher that was very clear that authors not only _could,_ but _should_ be willing to break any rule of grammar or style as needed. We'd often get assignments that included breaking rules that we'd previously studied.

The one bit of literature that I remember creeping in, other than a few of the other student's essays (we read our assignments out loud in front of the class every day), were a couple of Max Shulman short stories. The teacher had us read them because they both concerned logic, presentation, and literary writing styles. They were also funny as hell and I became a lifelong Shulman fan. I can't remember the titles, but they were both _Dobie Gillis_ stories.

Later, when I took some of the literature courses, I was surprised by the lower quality of the teaching and the coursework. Totally different teaching staff and curriculum.

Edit: FWIW, in my high school, the literary classes and grammar/writing classes were also separate; although the same teachers taught both types of classes. I remember writing essays in the literature classes, but the writing classes usually had assigned topics that were not about literature. The literature essays were definitely more concerned with the topic of the stories we were reading, and not about learning to write.

This was all in the mid southern U.S., in the late '70s.

<comment><USER18> > be willing to break any rule of grammar or style

If you can break it and be understood, it's style, not grammar. Grammar is why you don't say "Cat mouse mouse run run."; style is why you might cringe when someone else says "Whom is it?"

<comment><USER17> You can break grammar rules and be understood. One of the points of some of the exercises was to show that communication is more complicated than the seemingly a priori rules. Human languages are _not_ formal systems.

It's actually pretty easy with spoken language to completely mangle the rules and not only be understood but be even more evocative; that's how languages evolve.

It's more complicated with written words, but certainly possible.

One trick is to make up a completely new rule and "teach" it to the reader. Another is to create a pattern and then break it for effect. The results can be nonsensical, but quite meaningful.

Not something you might use in an everyday report or memo, but a good tool and a great way to de-provincialize language.

BTW, your "Cat mouse mouse run run." sentence can be made intelligible by inflection rather easily. In English nouns and verbs can often double as adjectives and adverbs. With a little preparation a reader can be made to "hear" the inflection and understand the meaning.

Try and puzzle this out:

((Cat mouse) (mouse run) run)

Loose meaning is something like: The catlike mouse runs with a mouselike gait.

Tarzan explaining something obvious to an idiot big game hunter...

(The movie Tarzan, though. The Tarzan in the novels actually spoke excellent English, but with a French accent.)

Another trick was to take grammars from other language and use English vocabulary. Or play Yoda like games.

Sorry, I ramble, and I've got to get up early...

<comment><USER18> OK, yes, you can break any grammatical rule if you invent new rules to replace it; you can also modify a C compiler to accept some Lispy constructs. My point is, style is fashion, but grammar is something deeper.

<comment><USER19> Except that you don't really need any formalized grammar for communication and language to occur. Do you know the grammar of your native language well? I don't really known mine, and I'm certain I don't have to know it to use the language. Ditto for all the people I know. Grammar is a nice afterthought, but it's not a primary part of a language. It's just a snapshot of ever-evolving fuzziness that is language.

<comment><USER18> > Grammar is a nice afterthought, but it's not a primary part of a language.

This is wrong, and it points up a fundamental problem with how we teach language. Grammar _is_ language; it defines language. You know it at a deep level that is practically instinct for you; you don't know it in the same way you know how to type, but you still know it. If you didn't, you couldn't use language.

Two different kinds of learning are both equally vital to how humans get along: By osmosis and by explicit instruction. Your mother tongue is learned via osmosis, tying your shoe is learned through explicit instruction. Both are vital methods, but only the second (explicit instruction) leaves you able to fully verbalize what you know in a cogent manner.

<comment><USER17> The rules of grammar that we "learn" are an attempt to model a process that we don't understand very well. It's hard to say that grammar defines a language when a speaker/writer can at will break any rule and enhance their communication by creating new constructions and vocabulary on the fly. Rules are at best a simple description of some expectations. Context, observation, and additional communication can completely override any rule.

Grammers are _useful_ in communication, but they certainly don't define and constrain it; they are like standardization in tool making and manufacturing. But words combined together, in a context, can behave in ways that no grammar can describe.

In fact I'd say that grammars are more conscriptive than they are descriptive. Literacy and education teach us to speak and write in grammars for formal, ritual use. But when we need to get work done or communicate important ideas, anything goes...

</comment></comment></comment></comment></comment></comment></comment><comment><USER20> The ability to write well co-evolves with having stuff that you want to say. Students don't get to choose their topics or when to write: they are acting under coercion, and those few who are relatively motivated remain anxious about grades.

Hence student essays are boring, while students' blogs are (often) interesting.

OFC, if authority figures started reading those blogs and assigning grades to blog entries then the blogs would disappear. If the blogs were subsequently required to re-appear with deadlines etc then they would quickly become boring, just like the essays.

Saddest is that if a teacher understood this and confined herself to helping students with stuff that they actually wanted to do, and only when asked, then she would lose her job!

</comment><comment><USER21> >He's right in the sense that real essays don't have to take a position and defend it, but teachers insist on thesis statements for the same reason bikes for three-year olds have training wheels: otherwise the student-writer will fall over.

This part got to me. Falling over is important. Why wouldn't a teacher allow a student to fail? I think the real issue with essay writing ultimately stems from a one-chance-only, end-all, be-all system of grading. (Which is also a gripe across many subjects, as it tends to produce Swiss cheese-like education.)

I was lucky enough to take composition courses in high school that focused on writing a single essay over the course of the entire semester. There was literally no other homework. Just draft after draft of the same essay. The teacher did hardly any lecturing and spent most of his time working students over intellectually, forcing us to sharpen our essays. I think if you want to teach writing, this is the way to do it.

<comment><USER22> Falling down is only useful if you know you've fallen down. It is challenging for a teacher to do that when parents yell at you for giving their kid a bad grade. Of course, that's a whole different topic

<comment><USER21> That's exactly what I'm saying. The point of essay writing, or doing quadratics or reading about the Civil War isn't about getting a good grade, it's about learning something new, retaining that new information and applying it to future learning. The method of grading and class structures (in that a D-level student starts another year/semester with a clean slate along with all the A-level students from the previous year/semester, despite their obvious deficiencies) is insane when you think about how people actually learn. Grades are a way to motivate through fear of failing, not through interest in a subject. Failure is a natural part of learning and I think people know intuitively when what they're doing isn't working correctly.

But then, I'm a fan of the Montessori method, which focuses far more on process and progress than it does specific outcomes at predefined times. It's hard to translate that method to University, which uses the traditional method of grading. The want of grades has actually caused some Montessori schools to include them superficially to appease parents.

</comment></comment></comment><comment><USER23> The underlying story I sense in this essay is a smart and motivated teacher slowly being corrupted by the unfixable system around him.

> I'm dealing with generalizations that don't apply to each individual > student. But class requires some level of generalization...

Yup, there's your problem right there. School is a one-size-fits-none system.

 _Of course_ you're going to get rambling pointless essays if you force kids to write when they have no interest in writing. _Of course_ you'll get something slightly more coherent if you give very precise directions about things like thesis statements. All they have to go on is your directions -- they have no internal motivation at all.

Maybe this whole painful process gives them a tiny bit of useful practice assembling ideas. But the side effects are often terrible: a permanent distaste for reading, writing, and challenging thinking.

<comment><USER24> I don't think "corrupted" is fair. Like any startup, teachers face constraints. Those constraints are not under their control; so you try to do the best thing that you can given those constraints.

That's like saying that a startup is being "corrupted" because they have to live under the constraints of the DMCA (and perhaps soon, SOPA). Do you think a startup has enough money to buy legislators the way Hollywood would? Do you think the VC's would think that was a good use of their investor's resource if they did? No, instead the startup would be urged to adapt and overcome the constraints of where the reality which surrounds them, and to pivot, if necessary. Would you call that "corruption"? I wouldn't. It's just the reality of what we all have to do.

Heck, engineers have to do the same thing. We make tradeoffs, and we work within the world that we live in --- not the world as we would wish it to be. Maybe by doing that, we can change the world, by fixing one small problem at a time --- just as teacher can change the world, one student at a time...

</comment></comment><comment><USER6> "I realized that I could avoid a lot of heartache on the part of my students by changing the way I was offering instruction, because students weren't ready to write essays without taking a position and defending it."

Certainly as a student I can sympathize with your plight. I was one of the students who would wander frequently when given an open-ended writing assignment, much to the exasperation of my teachers (who were positive there was some sort of disconnect between my speaking and writing faculties).

That said, I understand that it may not be entirely practical, but I would rather spend time thinking about how students like myself can be elevated to produce more meaningful work rather than accepting the status quo. For me, the breakthrough came when I read "The Age of the Essay." I'm still by no means a great writer, but the Stanford Application essays I recently produced were my best work yet by an order of magnitude. It's made a substantial improvement in my writing by itself, but more importantly it has provided a kernel of understanding that snowballs with every new essay I have vetted by my friends and mentors. Instead of spinning my wheels, I'm making real strides towards becoming a better writer now -- I've learned how to learn the art of writing.

My recommendation, should you still be interested in experimentation, is to see if you can find a reliable way to reach out to your students and help them grasp your understanding of an essay. If they can see where you are coming from, they'll be able to learn whatever you have to offer unimpeded. They will still need to develop logically and analytically, but I think you might start to see a few more students (successfully) attempting the open assignments if you give them the tools to do so.

</comment><comment><USER25> An interesting note: Mike Schmoker's book _Focus_ addresses most of the points raised both in Seliger's and pg's essays; indeed, he comes to many of the same conclusions that Seliger does, recommending heavy doses of close readings of texts as a "jumping off" point for learning how to write. It also mirrors a lot of pg's thoughts in that it stresses the incorporation of argumentative writing as well.

I'd highly recommend Schmoker for anyone who's interested in these issues, whatever your opinion of these articles:

[http://www.ascd.org/Publications/Authors/Mike- Schmoker.aspx?...](http://www.ascd.org/Publications/Authors/Mike- Schmoker.aspx?id=772617157001)

I use most of Schmoker's methods even in my music classes, where students are consistently asked to write about the music they are learning, as well as to learn how to take a position about that music (e.g., "the woodwinds are not properly used in this piece _because_...") in addition to the more "dry, academic" writing (research papers on the Baroque era, etc). I've had a _lot_ of success by simply following Schmoker's recommendations, which are almost universally applicable across the humanities.

<comment><AUTHOR> Thanks! I'm getting it from the library. It reminds me of _The Atlantic's_ "What Makes a Great Teacher" ([http://www.theatlantic.com/magazine/archive/2010/01/what- mak...](http://www.theatlantic.com/magazine/archive/2010/01/what-makes-a- great-teacher/7841/?single_page=true)). Actual teachers seem to be ceaselessly re-learning what others already know.

</comment></comment><comment><USER26> Are we so enamoured with pg that we must use such sycophantic titles?

</comment><comment><USER27> Here's a little literary criticism of pg's writing that I left as a comment on that blog post. Still awaiting moderation so I thought I'd share:

Anyway, you've probably noticed with close reading that Graham's essays are almost entirely declarative. He tells, almost never shows.

With Paul Graham, everything is a statement, even the questions are really statements in disguise. He may talk about meandering, but really he doesn't meander at all. His writing dictates, it doesn't explore. And when he accuses thesis-driven essays of "blustering through" and "hand-waving", it's rather funny, isn't it?

That's exactly what Paul Graham does, all the time.

With all those statements, he doesn't leave any room in his essays for the reader.

Added "bonus": As a narrator, he never changes or grows, which makes it exceedingly boring for the reader unless they have a feeling of personal vindication over what he's stating. (E.g., the reason you didn't like school was because you are smart. As a hacker, you are god's gift to the earth, etc.)

It's like going to your boring grandfather's house and being lectured to.

(Fun fact: so is listening to Paul Graham speak live. He reads an essay. I'm not kidding.)

Meanwhile changing and growing is the raison d'être of fiction, as you described yourself when you compared his essay to Sonny's Blues.

Honestly, I'm not surprised that your students don't like it [1]. Maybe one of the reasons they ask "Who is this guy?" is because that essay doesn't even bother to establish sympathy or credibility. No "I was once a confused blah blah and learned the hard way blah blah." No "Gee, isn't it aggravating when adults tell you what to do with your life? Wellllll…"

He presumes that the reader will hang on every word for no other reason than that the writer is Paul Graham.

[1] it referring to the essay What You'll Wish You'd Known: <http://www.paulgraham.com/hs.html>

<comment><USER28> > As a narrator, he never changes or grows, which makes it exceedingly boring > for the reader unless they have a feeling of personal vindication over what > he's stating.

...

> Maybe one of the reasons they ask "Who is this guy?" is because that essay > doesn't even bother to establish sympathy or credibility. No "I was once a > confused blah blah and learned the hard way blah blah."

The real problem people have with pg's essays is that he just says, as literally as possible, what he has to say. He doesn't pussyfoot around it or grease it in social lubricant. A lot of people seem to need that, but literal- minded people, the type who usually become programmers, just get frustrated and confused by all that grease.

Still, in that essay he openly admits to many of his own past mistakes, and refers to learning most of it from personal experience:

"I wish I'd grasped that in high school."

"I let myself believe that my job was to be a high school student. And so I let my need to be good at what I did be satisfied by merely doing well in school."

"If I had to go through high school again..."

"That's what I did, and it was a mistake."

"In retrospect this was stupid."

"When I was in high school I used to write "existentialist" short stories like ones I'd seen by famous writers. My stories didn't have a lot of plot, but they were very deep. And they were less work to write than entertaining ones would have been. I should have known that was a danger sign. And in fact I found my stories pretty boring; what excited me was the idea of writing serious, intellectual stuff like the famous writers."

<comment><USER27> Saying "I changed and grew" is not the same as the narrator changing and growing. You just agreed with everything I said: "he just says what he has to say."

That is engaging and persuasive for almost no one.

Moreover, him saying "I changed" comes late in the essay. It's too late to establish either credibility or sympathy.

No wonder the high school kids reject some random adult with boring, bald statement sentences telling them how they're all wrong.

<comment><USER28> > That is engaging and persuasive for almost no one.

It's engaging and persuasive for those of us who just want to grasp the underlying ideas. Maybe not so much for people who need all the rhetorical grease I was talking about earlier.

</comment></comment></comment></comment><comment><USER29> tl;dr Paul Graham is working to improve education, specifically composition (for this article).

The article argues (successfully, I think) that reality is nuanced.

<comment><USER30> There's a kind of cosmic internet irony attached to throwing a tl;dr on an article about writing good essays.

<comment><USER31> A woefully inadequate tl;dr at that. A real summary would be nice though. In another piece of irony, I think it would have benefited from a thesis statement. It's hard to tell what it's really saying, at least after the first run-through.</comment></comment></comment>


Show HN: Scrollorama - <AUTHOR> http://johnpolacek.github.com/scrollorama/

<comment><USER2> Cool plugin, but I can't help but think of that quote—"Scrolling is the new flash." Not trying to hate on your plugin or code, but I really hate all this scrolling stuff people are doing now. I wanted to scroll, not have a bunch of crazy animations explode in my face.

I feel like the popularity of this effect is to some extent a symptom of our society's constant information overload, and the attendant inability to slow down and focus, which then compels sites to compete for our attention with increasingly flashy presentations. Of course, to a much larger extent, it's probably due to cargo-cult website design.

<comment><USER3> it's a neat effect that just became possible, like morphing. When something new becomes possible everyone wants to find an excuse to try it. Welcome to being human and having joy in what you do. Even if it's not "effective" at "informing" or "achieving business aims". you know. Boring things.

<comment><USER4> > When something new becomes possible everyone wants to find an excuse to try > it.

For some reason that sentence reminded me of the 80s.

</comment></comment></comment><comment><USER5> I hate these things, maybe it's just me.

Reasons:

1) I use a mouse with a scroll wheel and the default setting is to scroll three lines at once, and I use the scroll wheel a lot. None of the scrolling effects ever look good for me, and if it's a site which depends on the scroll effect to communicate (a few marketing sites have done this) then I don't get the message.

2) When I use keyboard shortcuts (which I do quite frequently buy I realise most users don't), I just hit page up and page down. I see none of the effects.

To me, this is as bad as hover effects on tablets. I just can't see how it helps to improve user experience or accessibility. Sure, sometimes that isn't the desire but even in the case of those marketing sites I'm fairly sure the marketing men behind it would be appalled to find out some of their target audience was communicated to poorly. Though the worst thing is those same people on other sites then disable some key presses and default keyboard short-cuts to make sure there is no choice but to go through the bad UX to be communicated to.

What worries me when I see these things so high up on HN is that I fear others think this stuff is good.

Is that the case? Is it just me who prefers the idea of the client determining how to render something and not putting such stuff on the websites we create, or to put accessibility to all pretty high up?

<comment><USER6> You don't have to do things just for improving accessibility. Sometimes it's just about looking neat.

</comment></comment><comment><USER7> Unfortunately its a does not work well with iOS as it doesn't update until the scroll event is finish -- resulting in a somewhat jumbled and confusing experience without the animations. No doubt this is due to the way Mobile Safari conservatively updates events to save power.

</comment><comment><USER8> Awesome job! OS X Chrome 16.0.912.63 has some stuttering when using trackpad scrolling, but it's surprisingly smooth for all those animations!

By no means is this meant to dissuade using Scrollorama, but for very long pages (like the demo), I tend to flick the trackpad up to scroll through and stop it when I see the content I'd like. However, I find it's hard to follow the sections because they're almost in a constant state of transition. I'd love to see this used on a site with lots of dummy content, since I assume if it's padded with text or photographs, it will flow much better.

This could be really cool on a portfolio site!

</comment><comment><USER9> Excellent landing page. Epitomizes "show, don't tell"

<comment><USER10> Epitomizes "show, _and_ tell".

</comment></comment><comment><USER11> Is this a bug in firefox 8.01? When scrolling up, the O overwrites the adressbar, bookmarkbar and part of the main menu. Upgrading to 9.01 made the effect less visible, since now only a small part of the O can end up covering the firefox UI.

EDIT: It can in fact cover parts of the main menu in 9.01 just as in version 8.

<comment><USER12> That surprised me as well. The first A in "SCROLLORAMA" goes over the scrollbar in Firefox 9.0.1 on Linux.

<comment><USER11> Could this be a security bug? Is there other ways scrip+css can take over the rendering, which I guess is done by XUL? Advanced click-jacking?

</comment></comment></comment><comment><AUTHOR> Fixed the scrolldeck link, thanks. That's another plugin I made that is for making html slide deck presentations (similar to deck.js or reveal.js) and uses Scrollorama for navigation and animations.

<http://johnpolacek.github.com/scrolldeck.js>

To fix the jerkiness, I could animate the css props but that would probably cause quite a performance hit. If anyone wants to fork it and make improvements, please feel free!

</comment><comment><USER13> Very cool. Nitpick: would be nice if it smoothly animated when using the scrollwheel - it's pretty jumpy using the wheel, but awesomely smooth with the scrollbar.

<comment><USER14> Using Ubuntu? If so, you ran into Ubuntus horrible scrolling config.

<comment><USER15> Do you have any recommendations for "fixing" it?

(I'm not sure what the desired behaviour is.)

<comment><USER14> It's "supposed" to be smooth scrolling. Only way to get that easily is to enable natural scrolling (like Lion). - [http://www.omgubuntu.co.uk/2011/07/reverse-natural- scrolling...](http://www.omgubuntu.co.uk/2011/07/reverse-natural-scrolling- ubuntu-os-lion/)

</comment></comment></comment></comment><comment><USER16> This script seems to trigger a bug in Firefox or X11 which _brings the whole session down_.

It's 100% reproducible with my setup: Firefox 9.0.1 on Ubuntu 10.04 (x86_64) and Fglrx 8.920 (Catalyst 11.11, if I remember correctly). Load the page then scroll down a bit: the whole X session blows up.

Anyone else experiencing this?

</comment><comment><USER17> Very cool, but I'd hesitate to use it on a production site - it's really jerky if the scroll isn't fluid, like on most PC's.

</comment><comment><USER18> The rollout of the top H1 is downright painful (locked up the browser with 100%+ CPU usage on a C2D MBP 13") in Firefox 12.0a1.

Everything else works though.

It's all good in Chrome 16.0.912.63 on the above machine though.

<comment><AUTHOR> Yeah, I pushed it a bit with that one for sure, but I just couldn't resist, haha

<comment><AUTHOR> Just pushed an update that should help the performance a bit. (thanks eivindbekk/John Resig)

</comment></comment></comment><comment><USER19> Awesome plugin and landing page. Minor nitpicking: the "scrolldeck" link is broken.

</comment><comment><USER20> Totally random, but I scrolled down this page while listening to Limp Bizkit's "Take a Look Around" and thought: someone's got to create a movie credits page using this, just for the fun of it.

</comment><comment><USER21> I'm very surprised at how much more smooth this is in Internet Explorer (version 9) than in either Chrome, Opera or Firefox on my PC. IE doesn't actually scale the letters in the title though.

</comment><comment><USER22> Just a heads-up/reminder: <http://johnpolacek.github.com/scrolldeck> is broken.

</comment><comment><USER23> I love the <http://www.groupme.com> scrolling stuff. It was done tastefully and to great effect.

<comment><USER24> Here's another nice one: <http://nizoapp.com>

edit: also, hm, i seem to be missing any effect (if there is one) on the parent post's link

<comment><AUTHOR> How about this one? <http://gidsy.com/handbooks/making-the-perfect-listing/>

<comment><USER25> Nobody asked me, but: I don't like any of these linked pages.

Overriding the way scroll works feels like a horrible thing to do, especially if it alters the nature of scroll (as those 'infinite scrolling' pages do), but even if it just results in extra animation that is still too much of a surprise. Scrolling should be a surprise-less action, just like clicking a link, IMO.

</comment></comment></comment></comment><comment><USER26> Totally love it. I was searching for iOS address book style scrolling (fixed headings for a context). This would help.

</comment><comment><USER27> Totally awesome. I'm constantly impressed at the holiday projects that were developed.

</comment><comment><USER28> Doesnt work with scroll up/scroll down keys, which I always use.

</comment><comment><USER29> The bursting lettering at the top was truly unexpected. Bravo.

</comment><comment><USER30> no dice for mobile webkit.

</comment><comment><USER31> paging looks broken

</comment><comment><USER32> Sadly, these just don't look very good unless you're on a Mac and using a touchpad.

<comment><USER33> I beg to differ; I'm on an Asus laptop running Windows 7 and they look great. For scrolling, I simply middle clicked and moved the cursor down slightly and everything was buttery smooth.

<comment><USER32> I forgot that still works on some computers. Honestly, I've never seen anyone else ever do that on a computer before. I don't even use it when I'm on my Windows laptop.</comment></comment></comment>


Add "127.0.0.1 News.YCombinator.com" to /etc/hosts. Get your life back. - <AUTHOR>

Get your life back. <comment><AUTHOR> Yeah! I'm doing this right after this comment...

As a bonus, your web browser will open up to your local webserver.

Meaning every time you go to read the news, your project will open up.

Best increase in productivity ever.

</comment><comment><USER2> "/etc/hosts. Substituting for will power since 1985."

</comment><comment><USER3> Don't forget to do the same for www.reddit.com, www.facebook.com, www.twitter.com, etc ad nauseum.</comment>


Show HN: UnityShell, a "shell" for the Unity Editor - <AUTHOR> https://github.com/marijnz/unity-shell <comment><USER2> When I dropped my toes into game Dev, one thing that really bothered me was that you had to use the GUI tools for lots of stuff. I wanted to do _everything_ programmatically and just use Unity3D's GUI as a test/viz environment. But in trying to do that I really ran into a wall where everything felt second class to using the GUI.

I dunno... I just can't come to trust the magical files generated by drag and dropping a scene together.

<comment><USER3> I wouldn't fret much about trusting the editor, it's no more magic than the scene appearing when you load it from XML. But I agree that this remains my biggest frustration with Unity. It's fun to use, it's very fast to prototype with, but you hit the nail right on the head that "everything feels second class to using the GUI," and once you've worked in an engine that accommodates a text-first workflow it can really feel like mandatory training wheels sometimes. Maybe someone with more professional Unity experience can drop in, it's such a popular platform that it seems to me like there must be productive workflows that aren't hampered by the GUI in use out there.

Most other engines have different tradeoffs in my experience, and Unity is hard to beat because of how relatively robust and stable it is.

<comment><USER4> I have yet to see a professional game engine that wasn't GUI oriented.

Professional game studios are mostly Windows based, and developers are actually a minority in teams, mostly responsible for low level engine code.

So understandably the workflows are optimized for animators, artists, level designers, gameplay developers, script writers, ...

<comment><USER3> Aha, that's a very good explanation. Most of my experience with 3D development has been alongside something LOB oriented rather than a "game" per se; like the other commenter suggested Monogame is an example of what I had in mind in my post above.

I have to add the note, Monogame is absolutely up to par with "professional" engines in many ways. I quoted because Monogame originated from such an engine, XDE, Microsoft's managed SharpDX framework for developing games for Xbox Live Arcade. The community took over when MS cancelled XDE. I don't know if it can compete with Unreal or Unity on everything these days, given some of the demos I've seen of Unreal's lighting etc.

</comment></comment></comment></comment><comment><USER5> For people interested in this I can also recommend Arcadia which unites Unity and Clojure: [https://arcadia-unity.github.io/](https://arcadia- unity.github.io/)

<comment><AUTHOR> I never heard of it until I released UnityShell. Funny how you can miss such big things. I'll look more into it.

</comment></comment><comment><USER6> This is awesome project. For the last week I was developing essentially the same thing, but with F# as shell/REPL language. It's not yet ready to be open- sourced but if there is any interest I can clean it up and move to Github in a week or so.

</comment><comment><USER7> This is a great idea.

I wouldn't be surprised if Unity builds this feature into a future version of Unity.

Every other 3D creation tool has like, Clara.io, 3DS Max, Blender, Maya. How did Unity not have this?

<comment><USER8> Please correct me if I'm misunderstanding, but at least for 3ds Max, Blender, Maya, their Python integrations make this sort of thing as simple as launching the proprietary Python interpreter (mayapy.exe, maxpy.exe), with consideration of a few limited proprietary details. I think Python is just very well suited for this.

</comment></comment><comment><USER9> I like where this is going, but not sure of the practical use case. Can this help me inspect my game objects at runtime or just act like a standalone playground CLI?

<comment><AUTHOR> You can inspects game objects at runtime. You could, for example, do: GameObject.Find("YourGameObject).GetComponent<Sprite>(). There's probably features that would make it easier to access game objects though, as names are not unique. So you could use the instance ID, but that's a bit of a hassle.

<comment><USER9> This is pretty handy still. Sometimes I just want to grab an object and map it's children's properties into a debug friendly format for output.

Nice work

</comment></comment></comment><comment><USER10> Nice! Does it work to add a TCP listener so one can pump commands to it from an editor or treat it as an integrated terminal in VS Code or similar?

<comment><AUTHOR> Interesting idea, well under the hood it only just uses the Mono Evaluator class. So would rather see that as a new project.

</comment></comment><comment><USER11> Glad to be the first to say here, this is fantastic! I'm going to give it a little go later this evening. Seems interesting!

<comment><AUTHOR> Great! Let me know what you think.</comment></comment>


Qt Weekly #21: Dynamic OpenGL implementation loading in Qt 5.4 - <AUTHOR> http://blog.qt.digia.com/blog/2014/11/27/qt-weekly-21-dynamic-opengl-implementation-loading-in-qt-5-4/

<comment><AUTHOR> I've encountered a lot of issues on Windows XP with QT/Angle but also quite a lot on Windows Vista/7 where the graphic drivers by default don't support properly OpenGL or pretend they do but don't answer properly to Qt's requests. This ended up with a big chunk of my users having a blank window or even no window displayed to them and no way to reliably detect this on our end.

This feature has been in the works for multiple months now and I'm really glad to finally see it ship officially with Qt 5.4, so congrats to the team!

<comment><USER2> Indeed, but I have had better success with `--desktop`.</comment></comment>


Microbes maketh man - <AUTHOR> http://www.economist.com/node/21560559

<comment><AUTHOR> The other article linked there is good as well: The human microbiome (<http://www.economist.com/node/21560523>)</comment>