Upcoming Firefox update will decrease power usage on macOS by up to three times - <AUTHOR> https://www.zdnet.com/article/upcoming-firefox-update-will-decrease-power-usage-on-macos-by-up-to-three-times/ <comment><USER2> > This, according to a series of tests, has put Firefox on par with Chrome, in > regards to power usage.

So still not awesome, but a round of applause to the team nonetheless. Not a small achievement.

<comment><USER3> Whic is odd, as I find FF better than Chrome for energy usage, but still trailing Safari.

<comment><USER4> The big X-factor is extensions. I think these stats usually measure the browsers where neither has any extensions installed.

<comment><USER5> And I think Safari Extensions are pretty much non-existent now, so it's probably never going to be a fair comparison.

<comment><USER6> They're mostly distributed on the App Store these days. The old distribution channels are still available, but installation using these trigger a warning.

</comment></comment></comment></comment></comment><comment><USER7> Firefox has been my only browser since quantum appeared. However, on my 10inch 2-in-1 tablet with 2gb ram and an Atom Processor, Firefox's performance has been subpar.

Pages will freeze, tabs become unresponsive. Closing the browser doesn't work. It remains in process, eating up 70-80% of CPU until I terminate the process with task manager.

Because of this, I'm back with chromium (Opera and Edge). I thought Firefox 69 would change things but it hasn't.

For touch screen friendliness, all desktop browsers suck at the moment (Classic edge's basically unusable for me.) Firefox is definitely better than opera in this regard though. But I want a button to switch to touch mode - make buttons bigger. No need for AI to guess which mode I'm currently on.

<comment><USER8> Using Firefox on a 2-in-1 indeed leaves things to be desired. When pinch zooming, it seems to treat the pinching like normal page zooming instead of having a smooth viewport zoom.

<comment><USER7> Thought you'd find this useful:

Was really frustrated today. And searched for a way to make firefox a bit more touch friendly.

1\. Launch Firefox, click on the hamburger menu and navigate to "customise". 2\. In the customise sub-menu, look out for "Density" settings at the bottom left of the screen. 3\. Select Touch Density, and tick the option for using Touch density in Tablet Mode as well.

source: [https://mspoweruser.com/how-to-set-up-firefox-quantums- inter...](https://mspoweruser.com/how-to-set-up-firefox-quantums-interface- for-windows-tablets/)

</comment></comment></comment><comment><USER9> Let's hope this marks a care for Firefox on macOS by the developers, it has been neglected for years now.

I hope proper trackpad support is next.

<comment><USER10> From the bugzilla[0] about Pinch to Zoom last year: "We definitely haven't forgotten about this, and we are working on it (as other priorities permit)."

[0][https://bugzilla.mozilla.org/show_bug.cgi?id=688990](https://bugzilla.mozilla.org/show_bug.cgi?id=688990)

</comment></comment><comment><USER11> How does one optimize applications for power usage? Should it avoid using GPU? Should it run computations in batches?

<comment><USER12> The main change in Firefox is to use the system compositor (via CoreAnimation) to composite components of Firefox windows. Until just recently, Firefox composited its entire window into a buffer using OpenGL, and then sent that to the system compositor. Unfortunately, with that method, you have to send the entire window to the system compositor on every frame (because the APIs are just limited that way), which uses a lot of power when just one little caret is blinking, for example. With CoreAnimation you can set things up so that large chunks of the window that aren't changing never get recomposited.

Unfortunately this change is somewhat invasive, which is why it wasn't done long ago.

<comment><USER13> Long ago? That is what enabled the original Mac GUI in the 1980s. I am having trouble understanding why anyone would have shipped anything else—what was missing in the time of earlier Firefox?

<comment><USER14> APIs for partial compositing _in combination with hardware accelerated compositing_ was the thing that was missing. If you don't use hardware accelerated compositing, repainting only part of the window, and letting the system compositor know about those areas, is not a problem. It's only the GPU acceleration and the lack of convenient APIs that makes this a problem.

Before Firefox got hardware acceleration, so up until Firefox 3.6, we were using CPU-side painting and sending accurate dirty areas to the windowing system. With Firefox 4, we added hardware accelerated compositing, which made scrolling and transform / opacity animations a lot more performant. However, it also meant that we switched to using OpenGL for the compositor, and macOS does not expose any APIs for invalidating only parts of an OpenGL context. And at the time Firefox 4 shipped, "retina" displays were not a thing yet, so the impact of recompositing the entire window was not apparent. And there was the pervasive notion that "modern GPUs are fast, fill rate is not a problem". It was only as pixel count grew and grew that this started becoming problematic. And it took some amount of research and a lot of surgery to switch Firefox to an approach that gets OpenGL content to the screen while also allowing for partial updates of that OpenGL content.

</comment></comment></comment></comment><comment><USER15> Previous:

\- [https://news.ycombinator.com/item?id=20857892](https://news.ycombinator.com/item?id=20857892)

\- [https://news.ycombinator.com/item?id=20864255](https://news.ycombinator.com/item?id=20864255)

</comment><comment><USER16> I hope this will allow me to finally ditch Chrome on Mac. On Windows I changed to Firefox when Quantum was released but on my old Macbook Air it has been too slow to use as my main browser.

<comment><AUTHOR> I am not a huge fan of Safari, but it seems so much more optimised for macOS that it has become my default regardless. I mean an hour extra battery life is really nice.

<comment><USER17> Over the last 5 years I've been slowly shifting into the Apple ecosystem. It started with a 2015 Macbook Pro which I immediately installed Chrome on because what the hell even was Safari? Chrome was basically the only browser in my universe. Then I switched to Firefox but I had so many issues with it. It was slow and buggy and made my laptop chugg along for some reason. Quantum was a good step forward, though.

But now I own three Apple devices and have fully made the switch to Safari. I'm so locked into the Apple eco system now though but it has made my life many times easier using the browser that's designed by the hardware manufacturer of all my devices.

<comment><USER18> After being a long time Linux/Android/Chrome user I got dragged into the Apple ecosystem as I received a used iPhone 6 as a student back in the day.

For my daily life, this has been a blessing. A lot of the complaints about Apple that people have (and I used to have as an avid Android user) are absolutely valid. MacBook Pros are hardly "Pro", missing ports are simply annoying, weird multi-display handling and breaking butterfly keyboards... all that is true to some extent.

BUT... at risk of sounding like marketing shill, in general my workflow and private usage of my Apple devices is a wonderful fresh breeze. 99.8% of the time things just work and I don't have to install third party drivers and adjust my fan speed to a Fibonacci percentage so that Ubuntu's WiFi works after waking the laptop from sleep.

Hell, a large portion of the added cost (at worse specs) compared to Dell or ThinkPad is completely worth it in order to have an amazing trackpad which is still miles ahead of any other device.

Maybe I should finally give Safari a serious go as well. I always avoided it due to its image of a less feature-rich browser.

<comment><USER19> I probably sound like a shill too but while there are definitely many valid complaints, I still feel like being in the ecosystem makes my life a lot easier. I don't have to do any hacky workarounds. My favorite one that I discovered last year was sharing WiFi passwords. I was at my buddies house and asked for his WiFi password but we both have iPhones and it automatically asked him to share the WiFi password with me. It was a beautiful experience.

</comment></comment></comment></comment></comment><comment><USER20> Save you a click: They switched to core animation.

<comment><USER20> Also, is it journalistic best practice to put the only information that's not in the headline in the last paragraph of the story? That's the opposite of what I learned in school.

<comment><USER21> For ad revenue they optimize around time on the page. Putting the key information at the end is becoming a more common practice.

</comment></comment></comment><comment><USER22> I would love to be back on FF, which was my daily driver for most of the last two decades. I had high hopes for Quantum, but I didn't love it. When I heard that Brave had switched to Chromium (and supports most Chrome extensions), I tried it and haven't looked back.

I will try this new version of FF, and I hope it can win me back. Tree Style Tabs is unparalleled, and I've yet to find a Chromium-compatible version that works as well (currently using Sidewise, but don't like that it's in a separate window).

But Brave is so darn fast, I will not be surprised if FF doesn't win me back. Glad they're improving though, and at the very least pushing the whole field forward!

</comment><comment><USER23> Presumably it reduces power usage by up to 2/3rds, not 3x. (You won't be using Firefox to charge your MacBook.)

<comment><USER24> Having it decrease by 3x is the same as dividing by 3...

<comment><USER23> If the reference power level was 30W (purely to make the math easy to do), and the "power _increased_ by three times" what would the new power level be? 50W, 90W, or 120W?

If 120W, then why is a "decrease by three times" different?

<comment><USER25> 30 * 3 is 90...

30 / 3 is 10.

<comment><USER23> Unambiguously true math.

If 30 "increases by three times", does it become 90 or 120?

If 90, what happens if 30 "increases by 1 times"? Does it stay 30 or become 60?

If 60, then what does 30 "increases by 2 times mean?" Also 60?

<comment><USER26> These things are contextual.

"x increases three times" means 3x to most people. This is different from "increases by 300%" which usually means 4x. The article says "by a factor of up to three" in the first sentence but that is too wordy for a headline.

> what happens if 30 "increases by 1 times"?

Nobody would ever say this. We would say it doubled or stayed the same, or "increased by 100%" perhaps, but never "increased by 1 time".

> 30 "increases by 2 times mean?"

Nobody would ever say this either.

</comment></comment></comment></comment></comment></comment><comment><USER27> Is this fix already available in the dev version of firefox?

Edit: The improvements are already available on nightly [https://twitter.com/whimboo/status/1168437524357898240](https://twitter.com/whimboo/status/1168437524357898240)

<comment><USER28> The first part of the improvements is the most important one. This is already included in the Developer Edition as well. Not sure about the second part as of today.

</comment></comment><comment><USER29> Does anybody know if these changes will benifit users who only have intel GPUs and non-retina screens?

I can't complain about performance as-is, but even better would still be nice of course.

<comment><USER30> The change for avoiding secondary GPUs as much as possible has already landed in Firefox 69. This one is about using CoreAnimation.

</comment></comment><comment><USER31> You can also try "pinch to zoom" on the trackpad, enabling the "apz.allow_zooming" flag

</comment><comment><USER32> I am suffering silently through using Safari.. might this be the end?

<comment><USER33> Yes, you've now spoken, making you a vocal sufferer ;-)

</comment></comment><comment><USER34> Will this change be backported to 68.x esr?

<comment><USER35> I would strongly doubt it, switching out the core graphics driver doesn't seem like something sensible to push into an ESR release.

</comment></comment><comment><USER36> duplicate</comment>


Ask HN: Review my startup, ClueMe - <AUTHOR>

I use ClueMe to refresh things I want to know. For example, after reading on HN that there is a ISO-standard for storing sexes in a database, I made a short note that I repeat regularly.
All the entries in the global categories are questions, but around seventy percent of my personal entries are notes.
In addition to the general knowledge categories, I have made a group with HTML5 and CSS questions (under Groups->Programming).
If someone is inclined to check it out, I'd also be very happy to get some feedback on the admin part (requires login with a Google or Facebook account).
A special thanks to Natsu who designed my favicon and saved me £584 ;) (background: http://news.ycombinator.com/item?id=2176227) .
The address is http://www.clueme.net
UPDATE: I screwed up trying to cache the initial categories (The GO-buttons didn't work). Now it should be fixed. <comment><USER2> It looks like the questions are always in the same order. Random would be a step up, but using a proper spaced repitition algorithm would be best.

<http://en.wikipedia.org/wiki/Spaced_repetition> <http://en.wikipedia.org/wiki/Leitner_system>

<comment><AUTHOR> I agree, but sometimes it makes sense to have a specific order. For example, it makes sense to get history questions in a chronological order. Maybe you should be able to choose. Right now there is a _quizorder_ field that determines the order for a given category.

</comment></comment><comment><USER3> \+ Interesting interface and grippy buttons.

o How about let users see (and probably take) a few example questions on the frontpage?

\- The categories page looks the same, whether I am logged in or not. If I'm not logged in the "Go" buttons won't work. That's friction, get rid of it.

<comment><AUTHOR> Thanks. I haven't experienced the problem with the Go-buttons. I will investigate that.

</comment></comment><comment><AUTHOR> Clickable <http://www.clueme.net></comment>


Color Theory Basics: Learning Color Theory with Adobe Color - <AUTHOR> https://www.udemy.com/color-theory-basics-learning-color-theory-with-adobe-color/?couponCode=FREE_6_20 <comment><USER2> I was intrigued, so I started the class. And I immediately ran into the problem I feel like I run into with any online education thing like Udemy; people without an applicable background trying to pass themselves off as knowledgeable.

> So what we have here, these are known as the primary colors. So we have > blue, red, and yellow [screen shows two near-identical shades of blue, two > very similar shades of yellow, and something that's very close to red]. And > the primary colors are the base color for every color that we know. Any > combination of these is going to create any color in existence. That's why > they're called the primary colors.

So right off the bat we're perpetuating the preschool red/yellow/blue primary color myth. I expected at least a hat tip to primary colors of light (RGB), print (CMY) or something relative to color in a professional sphere.

<comment><AUTHOR> Hey thanks for the comment. I appreciate all feedback and I am sorry you didn't enjoy the course. I agree there is always more and deeper information on a subject like color theory. You can easily spend hours debating RYB, RGB, and CMY. Also how we should use color models depending on how our audience is viewing whatever media we created. But this course is meant to be a basics course. In general most people have been exposed to RYB. That makes it the best place to start for beginners, mainly because its familiar to them. For most people RYB is going to give them everything that they need to get started. I agree if this course was an intermediate or advance course then yes, going into detail about different color models would be required. But this course is meant to be a less than one hour easy first step into color for art and design. Again I am sorry that you did not enjoy the course but I do appreciate the points that you made.</comment></comment>


Ask HN: Best way to get out of work mode? - <AUTHOR>

I started my first job as a developer a couple of months ago. I've been programming a while and even been paid to write code before, but this is my first time where it is my one and only focus. I'm enjoying it a lot but I am pretty much unable to snap out of it after work. I either have a list of things to go learn better at the end of the day which leads to lots of random what_does_this_do code/reading documentation at late hours or I am still working on a subset of what I was working on during the day.
I am really enjoying programming programming for a living but given the amount of articles suggesting to chill the hell out I figure better minds than me have discovered my current pattern to be unsustainable.
Any good advice/ideas/hobbies/things you have to get out of work mode after work? <comment><USER2> I like getting mental headspace with a clear separates-the-day activity, whether that is going to the gym, having dinner, or what have you. YMMV. Before $WHATEVER time is work, after $WHATEVER is, in principle, not work.

<comment><USER3> I second this. I've been struggling with this problem as well, and this is the only thing that's been remotely effective. Usually something physical and not at the computer (making dinner, clean up the apartment, get groceries, etc.)

My "nuclear option" is to go for a drive on some back roads. That works for me most of the time, but probably not many others -- you just have to find your own activity that resets your mind.

</comment></comment><comment><USER4> I'll second somebody else's suggestion of walking home. There's something about disconnecting from technology and letting your mind wander on a shortish walk that sets your brain free to go off and do its own thing. Often, the thing it will do is go solve that hard problem you were banging up against all day in a nice elegant way that you'll be able to code up in 20 minutes tomorrow morning.

Of course to pull this off, you'll need both an office and an apartment within a couple miles of it. Not so good if you're telecommuting or working for a company in some horrible suburb instead of sensibly located downtown. For me, during my on-site days, I actually made a point of only ever taking jobs in the city itself, specifically so that I could do this walking trick.

</comment><comment><USER5> You need an activity that makes it inconvenient to pop open a laptop or phone.

As others suggested, walking is a good one[1]. I usually listen to podcasts – unrelated to may day-to-day job – if I'm going to walk for a while.

Other things I do is yoga, weightlifting, bouldering and soap making. Other than walking, what makes these similar is that you have to get out of your programming head and think about performing the new task with focus (yoga is a hard one though since you can still think about other stuff and just do the movements).

[1] [http://www.marksdailyapple.com/17-reasons-to-walk-more- this-...](http://www.marksdailyapple.com/17-reasons-to-walk-more-this-year/)

</comment><comment><USER6> I had this same problem when I first became a developer. The best thing you can do (in my opinion) is get up early rather than stay up late. You'll give your best effort to learning and personal projects that occur before work. You'll also find less of a need to "escape" from family/chill time at the end of the day, since you'll be working on the stuff on your list as soon as you wake up.

</comment><comment><USER7> I go for Walk, specially late night after 10:30 pm.

I actually try to go for 3 walks every day, one in the noon, one the evening and one in the night, as I see people (I am in India so there are people everywhere!) and as I talk to them, it makes me feel good and often relaxes.

People say Music also relaxes but honestly, you should leave your desk and room if you really want to get out of work mode.

</comment><comment><USER8> I either go to work by car or by a combination of public transportation and walk. I don't know exactly why but the second method clears my mind much more than driving. It creates a clear frontier between work and home, while driving force you to stay concentrated and it does not break the work mood so to speak. So minimal physical exercises every day should help.

Also try some meditation.

</comment><comment><USER9> I don't have an off switch either. Working all day is stimulating and stress free for me. Despite all the 'chill the hell out' articles I find it sustainable and I don't really get tired.

The only real thing that works is just stop coding completely. I tend to take very long sabbaticals in between companies.

</comment><comment><USER10> > Any good advice/ideas/hobbies/things you have to get out of work mode after > work?

As a sort-of nuclear option, you could go straight to bed after work, and get up really early. Take your free time before work, instead of after.

In any case, pick up some sports with a social component.

</comment><comment><USER11> I immerse myself in historical fiction books most evenings.</comment>


Ask HN: Video chat tool with low CPU usage? - <AUTHOR> I've tried Google Meet, Hangouts, Zoom, Jitsi meet. All of them hover at around 100% CPU usage for me, especially when there are multiple participants. I teach programming via screen sharing, so it makes my job very difficult. Any alternatives? <comment><USER2> Answering your question properly requires more details about your platform (CPU, GPU, resolution, operating system, etc.). If your hardware can offload video encoding from the CPU, that would probably be your best strategy. I would suggest experimenting with OBS Studio to create an CPU-friendly encoded stream from your screen, then exposing that to conferencing software using something like OBS-VirtualCam on Windows or ffmpeg+v4l2loopback on Linux.

<comment><AUTHOR> Thanks for your reply! Unfortunately, if the answer requires such detailed knowledge, it won't be a viable solution, since I can't expect my participants to have such in-depth knowledge. It would have to be a low-friction solution. As far as I can tell, OBS is only one directional video (I can't see the participants), or no?

<comment><USER2> Your question sounded like you were concerned about CPU utilization on your own computer as a broadcaster. Solving for multi-party video chat is harder. Have you tried Discord?

<comment><USER3> Discord for video chat? We use it all the time for text and voice chat in the RPG circles I'm in, but I don't think we ever do video chat with Discord.

How do you do video chat with Discord?</comment></comment></comment></comment>


On naming - <AUTHOR> http://quietlyamused.org/blog/2012/02/19/on-naming/ <comment><USER2> This might be obvious to some, but I've literally only realized a few months ago that when I write text, I will consult a thesaurus, whereas for some reason I've neglected to do the same when I code. I would spend hours agonizing on how to call a module, wondering if I won't need the same word later for something else, or if it might be making things a bit ambiguous for the next guy.

So I've started also using a thesaurus when I code and so far I'm happy with the results. It's been helpful in accurately framing some of the hazier concepts with interesting names. I also revisit the naming much less than I use to, because I'm comforted with the notion that if I couldn't find a better word with a thesaurus, then maybe there isn't an obvious one. I also now use words that are clear, but that I so far neglected to include in my programming vocabulary, because other more prevalent ones would jump in my mind and put a shadow on my naming creativity.

So, if you need some help naming modules, functions, variables and db entities, a thesaurus could help. Though, take care to not abuse of it.

<comment><USER3> I do this too. Though my thesaurus doesn't always have the right technical meaning of certain words.

I'd love to have a "programmer's thesaurus" with more detail on names that appear frequently in code. For one of the two hard problems in CS, the art of naming things has little reference material beyond raw source code.

</comment></comment><comment><USER4> Naming things to be clear in the beginning, stay clear as the system grows, is quite easily one of the hardest things in developing software.

Over generalized or specific names cause far more confusion and productivity loss than we think.

So take the time to learn what you're working on and how it works at the micro and macro level not only in the context of the application itself, but where and how the application fits in it's ecosystem.

Learn the lingo that your software's ecosystem uses, instead of inventing, by accident or purpose, your own clever and tricky rationalizations ending up in even more confusing concepts and names describing the same things.

The purpose of naming is similar to the purpose of software; creating clarity and empowerment, instead of more confusion and conceptual gymnastics.

</comment><comment><USER5> For more rigorous naming, Eric Evans (in his excellent book _Domain-Driven Design: Tackling Complexity in the Heart of Software_ ) recommends documenting (and maintaining) your product's "Ubiquitous Language".

When developers (and the code), product managers, domain experts, and end users all use different terminology, then cross-discipline communication difficult and imprecise. A documented Ubiquitous Language enforces shared terminology (and meaning) for all communication within the team and in the code.

<http://domaindrivendesign.org/node/132>

</comment><comment><USER6> I am glad someone wrote this article - Now I know I can point it to my colleagues who are often baffled at the amount of time I spend thinking about names :)

I have found that when I can't find a good name for a method or a class, it's because I haven't really thought the reason for the same through. This is especially true for classes where I often realize that I am making the class do too much, or too little.

This book, "Clean Code" by Robert Martin has it's second chapter dedicated to naming things. A whole chapter! The book, alone for that chapter is worth the money. If you haven't read it, I highly recommend it.

[http://www.amazon.com/Clean-Code-Handbook-Craftsmanship- eboo...](http://www.amazon.com/Clean-Code-Handbook-Craftsmanship- ebook/dp/B001GSTOAM)

<comment><AUTHOR> Steve McConnell's book "Code Complete" was an eye-opener for me. It also has a whole chapter on variable naming, and is worth a read.

[http://www.amazon.com/Code-Complete-Practical-Handbook- Const...](http://www.amazon.com/Code-Complete-Practical-Handbook- Construction/dp/0735619670/ref=sr_1_1?ie=UTF8&qid=1329769782&sr=8-1)

</comment></comment><comment><USER7> The first quote in the article; I thought it went like this:

 _There are only two hard things in Computer Science: cache invalidation, naming things and off-by-one errors._

<comment><USER8> That version is just a well-known play on the original.

</comment></comment><comment><USER9> I find that thinking about good names for things can help guide you to design better code.

As Lars mentioned—if something is hard to name, it's probably because the thing you're naming isn't very clearly defined, is a bad/mixed metaphor, or is just plain hard to understand.

And if all else fails, there's always <http://www.classnamer.com/> ;-)

</comment><comment><USER10> My colleagues (developers) laugh when I pause few seconds to think about a proper name for a Java method. But I take it seriously, finding a class or method with proper name is way easier than an ambiguous name> Even a proper name with misspelling is considered bad in my dictionary.

Once in an interview, I asked the guy to write some code, he used variable names like "int ttttt=1;". I never saw him again!!

</comment><comment><USER11> I think this problem comes up from the somewhat obsolete linear text nature of code. Instead of particular perfect names, we could be using tags. AbstractSingletonFactory is three tags. In some contexts I'd like to know it's a factory, in others I don't.

The bigger problem is we haven't moved on from the simple text representation of code. And this overly simple tool, text, is influencing the way we're thinking here. The Humble Programmer phenomenon in action.

</comment><comment><USER12> I agree, naming is important and often overlooked, check out this quote by Josh Bloch: [http://www.elegantcoding.com/2011/07/software-frameworks- res...](http://www.elegantcoding.com/2011/07/software-frameworks-resistance- isnt.html#Names)

</comment><comment><USER13> What I like to do is add a variables.txt file to the root of the project as a sort of legend for any unconventional variables I have to name. I try to stay as relevant as possible, but sometimes 'anospic' is better than 'average_numbers_picked'.

Good or bad, it works.

<comment><USER14> If you use a decent IDE, having longer variable names is nearly no cost.

<comment><USER15> I don't buy this argument, but you're in good company holding this belief.

Generally, I find that long names fall into three categories:

1) refactoring opportunities

Use more namespaces, write smaller functions, embrace lexical scoping, etc. You don't need to call something a _foo-bar-frobber_ when it's being used in the _foo-bar_ context, just call it a _frobber_.

2) line noise

If you're only using the _frobber_ within a two line function, and it is initialized via _create-frobber_ , do you really need to spell it out? _f_ or _x_ will do. If your function grows, rename the variable. Or refactor!

3) an absentee synonym

Maybe you've got a _monster-which-attempts-to-defeat-player_ , when you really need a _baddie_. Or maybe the word you need doesn't exist yet? It's rare, but sometimes you really do need to invent or repurpose a word.

...

I always feel dirty when I have a long variable name. pg writes about this in On Lisp: long names _feel heavier_. They might be super cheap to call, but because the name is long, you're less likely to call it.

Furthermore, I much rather adhere to a line length limit, as I find wrapping lines far harder to read than lines with short variable names. Long names makes this harder.

All that said, I almost _never_ use abbreviations other than standin variables like a single letter. The only exception to this is well known abbreviations, like for your most commonly used utility functions or for objects which are extremely common in your problem domain. Such a set of abbreviations becomes a part of the language you share between your compiler and your team.

<comment><USER16> _f or x will do. If your function grows, rename the variable._

Why would you just not give it a reasonable name to begin with? Why not call your variable _frobber_? The only possible reason for not doing so is that you're using an editor that makes you type it every single time. I insist that calling your Frobber variable _frobber_ is strictly easier to understand than _f_ or _x_. Why not _t_? Or _sdfsdg_? None of them make any sense to someone reading the code, and it increases the amount the reader of the code has to keep in their short-term memory, making it more challenging to understand.

 _pg writes about this in On Lisp: long names feel heavier. They might be super cheap to call, but because the name is long, you're less likely to call it._

Even if pg wrote it this is patently absurd, and it's endemic in lisp code which contributes greatly to the famously write-only nature of lisp. Again, if you're using a decent editor, there is no reason to call your UserDetails object anything but _user-details_ (or maybe _details_ if you're in a context only relating to users).

<comment><USER15> > The only possible reason for not doing so is that you're using an editor > that makes you type it every single time.

Here's some C:

        for (int player_index = 0; player_index < players.length; player_index++) {
          int rank = player_index + 1;
          render_score(rank, players[player_index].name);
        }

Blah. So much for the brain to parse!

        for (int p = 0; p < players.length; p++) {
          int rank = p + 1;
          render_score(rank, players[p].name);
        }

I find that much, much easier to parse in my head. The definition of p is available without any backtracking. The word "player" appears five fewer times, reducing confusion with the players array. This is a _small_ case.

If this code were to start to grow, and the definition of p and its usages start to grow appart, it's trivial to replace.... but it's probably better for you to refactor.

<comment><USER16> That's kind of a pathological case you have there - I don't think many people would argue that loop indices should have long variable names. None of the examples in your post above were loop variables, and what I see a lot of in lisp code is using _ps_ for _players_ , for example. In your example you've used pretty sensible names for _players_ , _rank_ and _render_score_ \- why not _ps_ , _r_ and _rs_ respectively?

<comment><USER15> > why not ps, r and rs respectively?

Um... Because that would be hard to read?

I'm advocating using full words in general, avoiding long variables (multi- word phrases, adjectives, contextualization, etc), and not being afraid of short variables names if they help, rather than hurt readability.

There are plenty of cases where short names are totally fine. If you've got a module full of string utilities and every single function takes a first argument of type String, why not just call it "s"? Everyone will figure it out in seconds and it will save the mental overhead of differentiating "String" and "string". when that does come up.

Things like that; I'm saying use your judgement.

</comment></comment></comment></comment></comment></comment></comment><comment><USER17> cool, and here i thought i was alone in needing to take time to name things correctly.

had to name a variable earlier this week and even broke out the thesaurus. best i could muster was years_experienced_absolute :/

<comment><USER18> Sometimes when I have trouble coming up with a good name it's a sign that I need to rethink the surrounding code as well.

Since naming is hard, I try to minimize the number of names I create. I think the number of names in a codebase is a measure of complexity.

<comment><USER15> Names are also critical to understanding.

It's very similar to the phenomenon of notation (including maths, sciences, and, yes, programming languages themselves):

"By relieving the brain of all unnecessary work, a good notation sets it free to concentrate on more advanced problems, and, in effect, increases the mental power of the race." -- P Davis and R Hersh The Mathematical Experience (Boston 1981).

I know that my team spends an inordinate amount of time debatting the names of concepts. We've found that, since we're trying to build something unique, there aren't always words for the concepts we're building. Worse yet, there are words that are close, but not quite right! It's extremely difficult to write any code before everyone can hear a word and reach a common mental image. I've found that if you get the right names, the code is so much easier to write and reason about.

</comment></comment></comment><comment><USER19> Choosing the right metaphor in terms of OOP is equally important as well as the understanding the word's meaning and the implication of alternative meanings.

</comment><comment><USER20> Seriously, he suggests using i as a variable? I couldn't take him seriously after that.

<comment><USER9> It's an example of using a language's idioms. If you use i in a loop, there's no need to explain yourself since there's a common understanding as to what this means.

<comment><USER20> If you use i, you're a bad programmer. You can't search for the variable name, you can't make sure it is used correctly everywhere. You're a bad person.</comment></comment></comment>


The man with 1,000 klein bottles under his house [video] - <AUTHOR> https://www.youtube.com/watch?v=-k3mVnRlQLU <comment><USER2> I went to Cliff's house a few years back to buy one of his bottles as a gift for my dad. He was just as effusive, welcoming, and excited for one visitor he'd never met as he was in the video.

I thought I was just swinging by to pick up the bottle and pay the check, but I ended up staying for about 45 minutes (because he just kept going!), chatting about the crawlspace, the robot, and life in general. He talked about eschewing a big career so that he and his wife could focus on making life great for their kids. And it certainly seemed to have paid off for both kids and dad: I've never met anyone who seemed to be having so damned much _fun_ just existing. It was refreshing to see that it's totally possible to be driven almost entirely by intrinsic factors and still exist in the real world. He left an impression as being an all-around fantastic human being. The bottle was pretty cool, too.

<comment><USER3> Well how are his kids?

Edit: Seriously, he seems like a fun parent.

<comment><USER2> He was wild about them, and given how creative and dedicated this fellow seemed, I'm sure they're geniuses. I didn't meet them, though, so I can't really say much more than that.

</comment></comment></comment><comment><USER4> His tiny robotic warehouse in the crawlspace of his house is the coolest thing I've seen in a long time.

Pure distilled mad science. He's like a living cartoon. I want to be him when I get old so very much!

<comment><USER5> He is a true "hacker", I was very impressed with his robot made from various junk parts

</comment></comment><comment><USER6> Cliff Stoll in case people were wondering:

[https://en.wikipedia.org/wiki/Clifford_Stoll](https://en.wikipedia.org/wiki/Clifford_Stoll)

I have his original book my shelf, it was fascinating when it came out.

His Klein Bottle company is here:

[http://www.kleinbottle.com/](http://www.kleinbottle.com/)

<comment><USER7> He has also written Cuckoo's Egg, a book about his hunt for hacker that broke into computer at Lawrence Berkeley National Laboratory. [https://en.wikipedia.org/wiki/The_Cuckoo%27s_Egg](https://en.wikipedia.org/wiki/The_Cuckoo%27s_Egg)

This was really fascinating read for a young nerd around very early 1990's.

<comment><USER8> This book basically taught me UNIX. I'm not even kidding.

</comment></comment></comment><comment><USER9> This is incredible. I LOVE stuff like this. It makes me so happy that people like this still exist in the world. I say 'still' because I feel like they're a dying breed. The rationale behind everything he's done is laid bare and it makes sense! People like this don't ever let a detail like "I have no idea how to achieve this" stand in their way. Everything is a challenge or problem that needs solving.

</comment><comment><USER10> Ok, never heard of klein bottles before, watched the video and I learned about something new today. Awesome robot and storage area as well :)

But, aside from that, when I went to youtube to watch the video, the ad I had to watch was this:

[https://www.youtube.com/watch?v=HYhdbxj- yoI](https://www.youtube.com/watch?v=HYhdbxj-yoI)

First time I watched a youtube ad all the way through :p

<comment><USER11> Who the f __k geo-restricts an ad?

<comment><USER12> Advertisers? They have to pay for the ads, why would they want someone who is not from their target market watching the ads?

<comment><USER11> I'm pretty sure they only have to pay for the ad views (pre-roll etc), not regular video views of the commercial.

<comment><USER13> It's also here: [https://vimeo.com/121287413](https://vimeo.com/121287413)

</comment></comment></comment></comment></comment><comment> jay-saint Check out his job postings for his Acme Klein Bottle company [http://www.kleinbottle.com/jobs.html](http://www.kleinbottle.com/jobs.html)

My favorite: _PENTIUM PROCESSOR. Must know all pentium processes, including preprocessing, postprocessing, and past-pluperfect processing. Ideal candidate pent up at the Pentagon, penthouse, or penitentiary. Pays pennies. Penurious benefits include Pension, Pencil. Pentel, Pentax, and Pentaflex. Write to email@example.com_

</comment><comment><USER14> This NOVA episode with Cliff is what got me interested in the Internet when I was 8: [https://www.youtube.com/watch?v=EcKxaq1FTac](https://www.youtube.com/watch?v=EcKxaq1FTac)

<comment><USER15> Ironic because he was also one of the earliest critics of the Internet.

[http://thenextweb.com/shareables/2010/02/27/newsweek-1995-bu...](http://thenextweb.com/shareables/2010/02/27/newsweek-1995-buy- books-newspapers-straight-intenet-uh/)

</comment></comment><comment><USER16> Real life Gyro Gearloose!!!

In the next video he talks about how a Klein bottle is made, and how, contrary to a bottle, it has no edge.

I'm not sure I understand why a bottle "has to" have an edge? Surely it's possible to make a bottle with no edge? For example, if one takes a sphere and progressively turns it into a bowl (by punching into it), and then makes the bowl deeper, it still has just one surface and no edge, no?

<comment><USER17> The rim of your bowl _is_ the edge: it's a point where the curvature changes suddenly. But that's not the important thing: the important thing is that not only is there only no edge, but only one surface.

Let's talk topology for a bit.

A manifold can be thought of as essentially a flat and infinitely thin sheet. If you have a spherical manifold (and your bowl would be a spherical manifold), it has two surfaces: one on the inside and another on the outside. Deforming the manifold doesn't change this.

The thing about a Klein bottle (and a Moebius strip) is that it only has _one_ continuous surface, the difference between a Moebius strip and a Klein bottle is that the latter is a single surface with no edge whereas the former is a single surface with one edge, unlike the sphere (or your bowl), which has two surfaces and no edge.

So what's important here is the number of _sides_ it has, not really that it has no edge. The lack of an edge is really only what separates a Moebius strip from Klein bottle.

<comment><USER16> But with an ordinary bottle, the edge is the point (if I may), because if a bottle had no edge, couldn't it be said that has just one ordinary surface?

So in fact, what I understand so far is:

\- a (hollow) sphere has two surfaces, one inside and one outside, and you can't connect one to the other (you can't walk from one to the other)

\- a potato, or a bowl also have the same properties: two distinct surfaces

\- a bottle is not a special kind of bowl, it's more of a broken sphere (an egg the top of which has been removed) so that both surfaces (in and out) are accessible (but disjoint)

\- to make a true bottle out of a bowl one needs to somehow "collapse" the inner and outer surfaces (therefore creating an edge)

\- if you make a bottle that has a hollow space between the inside and the outside (think Thermos), then you actually have _three_ surfaces

Is this correct?

<comment><USER17> I think the confusion here is that you're taking what he's saying in terms other than those of topology.

In topology, you deal with manifolds. Manifolds have _no thickness_ , but they do have area.

In topology, there's no such thing as a 'filled' sphere: a sphere in topology has no edges and an inside surface and an outside surface, much like a football.

There are two ways you can make a 'bottle': you can deform a sphere, which gives you a 'bottle' much like a vaccuum flask; or you can deform a planar manifold (which is like a sheet of paper). The former will have two surfaces and no edge, whereas the latter will have two surfaces and one edge, that being the rim.

A broken sphere would be a planar manifold.

A vaccuum flask is simply a deformed sphere in topological terms, and thus only has two surfaces, the inside and the outside.

<comment><USER16> Much helpful, thanks!!

<comment><USER17> One quick clarifying note: the reason he said in the video that bottles have an edge is because he was treating it as a planar manifold.

Topology is an interesting area of study.

</comment></comment></comment></comment></comment></comment><comment><USER18> I do like Cliff. This reminds me, I dropped my bottle last year; time to replace it.

If Klein bottles catch your fanvcy, there's another and very different artist doing metal and glass algorithmic artwork in 3D printers: Bathsheba (at [http://bathsheba.com](http://bathsheba.com)). I had Cliff's bottle sitting on top of her laser etched known universe cube at work. Each contains the other. Too bad nobody there gets the joke. But I saw the same combo in a documentary about String Theory, in one of the scientists' office, so I'm not alone :)

</comment><comment><USER19> The klein bottles are awesome, but they are the least awesome thing about his under-floor space. That was amazing.

<comment><USER20> I confess that my first hope was that it was some kind of klein-bottle glassblowing robot bodged togetehr out of bits of scrap wood and insulated with glass-fibre.

The reality was almost as good though, it's a cute little forklift-bot, and appears to work really well for his use (although I suspect if he started stacking boxes on top of each other it would get a lot harder).

So, who's going to kickstart Kiva for your attic/crawlspace? :)

</comment></comment><comment><USER21> I love this guy, I first saw him in his TED talk [1]. He kinda reminds me of Richard Feynman (similar mannerisms and enthusiasm for science).

[1] [https://www.youtube.com/watch?v=Gj8IA6xOpSk](https://www.youtube.com/watch?v=Gj8IA6xOpSk)

</comment><comment><USER22> I got one of those Klein bottles from him, and it's really beautifully done. If you are careful, you can even store some liquid or other stuff in it. I wonder if the mathematical original could do that, too.

<comment><USER23> You're not really storing the liquid _in_ it; you're storing the liquid _on_ it.

<comment><USER24> True of an ordinary bottle too, which is topographically the same as a plate.

</comment></comment></comment><comment><USER25> Definitely subscribe to Numberphile if you thought that was interesting. One of my favorite YouTube channels.

</comment><comment><USER26> "Acme Klein Bottles - where yesterday's future is here today!" [http://www.kleinbottle.com/](http://www.kleinbottle.com/)

</comment><comment><USER27> I went to a talk from Stoll years ago where he basically danced on tables, his enthusiasm is contagious.

I've always been amused by his 'Internet commerce will never work, give up' essay

[http://www.newsweek.com/clifford-stoll-why-web-wont-be- nirva...](http://www.newsweek.com/clifford-stoll-why-web-wont-be- nirvana-185306)

<comment><USER28> Good read, as an aside I found this to be somewhat funny :) from your link: [http://imgur.com/dTdp2g7](http://imgur.com/dTdp2g7)

</comment></comment><comment><USER29> Well, I just bought mine! It warms my heart to contribute to such a great life style. I aspire to a similar future myself.

</comment><comment><USER30> Wow, synchronicity -- I just received a klein bottle order in the mail from him YESTERDAY.

<comment><USER31> Did he send you a personal photo gallery too?!

I love my KB. :D

<comment><USER30> He sure did! I sent him one back of my family, and also of me as a teenager reading The Cuckoo's Egg in 1990 or so.

</comment></comment></comment><comment><USER32> > Now with a LIFETIME GUARANTEE - we guarantee that you will live your entire > life OR YOUR MONEY BACK!

ROFL - that site is awesome. You don't need no fancy javascript, graphics or special effects. Just pure humor and good content!

</comment><comment><USER33> Perfect model for Amazon's new distribution system! Transform people's basements into small warehouses, complete with autonomous robots. Then ship everything locally, as they are needed!

</comment><comment><USER34> Clifford's TED talk is quite entertaining too: [https://youtu.be/dSGHZ4YHP54](https://youtu.be/dSGHZ4YHP54)

<comment><USER35> Here's a link to the actual TED talk, since mattyohe's link is actually to one of Google's promo videos.

[https://www.youtube.com/watch?v=Gj8IA6xOpSk](https://www.youtube.com/watch?v=Gj8IA6xOpSk)

</comment></comment><comment><USER36> Jim Croce should have written the lyrics "If I could save time in Klein's bottle ...":

[http://www.azlyrics.com/lyrics/jimcroce/timeinabottle.html](http://www.azlyrics.com/lyrics/jimcroce/timeinabottle.html)

Eternity ... looping. Doh!

</comment><comment><USER37> I see that little robot and I get images of the little guy from Silent Running tending his plants

</comment><comment><USER38> What would be a practical use for such a feat of inter dimension glass containerism?

<comment><USER39> Its practical uses are both guaranteed and finite!

>You can convert your Acme Klein Bottle into an astonishing amount of energy, over 1023 ergs! Enough to power a small city for years. To get you started, we'll supply the necessary equation for free.

>At any time -- day or night -- you can easily check on the Euler Characteristic of your Acme Klein Bottle. Just add the number of vertices to the number of faces, then subtract the number of edges. So simple, even a grad student can do it!

[http://www.kleinbottle.com/why_acme.htm](http://www.kleinbottle.com/why_acme.htm)

</comment></comment><comment><USER40> He sounds like the scientist from X-COM: Enforcer! Random gameplay: [https://www.youtube.com/watch?v=3O0Z8Fv31l0](https://www.youtube.com/watch?v=3O0Z8Fv31l0)

</comment><comment><USER41> I bought one of these a few years ago and was touched by the personal note written in it. I hadn't realised until now that it was Clifford Stoll who actually sent these! Fascinating video.

<comment><USER42> I just bought one too. It is so heart warming seeing his personal note.

</comment></comment><comment><USER43> Clifford Stoll is always a fascinating character to watch.

</comment><comment><USER44> I want a reality show about this guy, this is amazing!

<comment><USER19> I'd watch a well made documentary. I'd probably help kickstart one.

</comment></comment><comment><USER45> The clicking noises from that robot, its brilliant !

</comment><comment><USER46> I own one of those. They're rad.

</comment><comment><USER47> He is awesome.

</comment><comment> guard-of-terra Is it glass wool hanging down from his underfloor ceiling in insane qualities?

I was raised to believe it's extremely dangerous to health, people crawling there scare me. Of course it's easier with forklift.

<comment><USER48> That was asbestos, glass wool is reasonably safe to be around.

<comment><USER49> jup, just don't handling it sucks (it gets everywhere and itches if it penetrates your skin. construction workers often don't seem to give much of a * though...)

<comment><USER50> I used to work with ceramic wool and in big letters on the box it says that it's known to be a __possible __carcinogen. Not only does it kill you slowly, it hurts more than itches unlike regular insulation. The fibers are longer and sharper and really sting and take a few freezing cold showers to really get it out of your skin. I certainly don 't miss those days :)

</comment></comment></comment></comment><comment><USER51> a warning: the volume on this is REALLY. LOUD.

<comment><USER52> Cliff Stoll's enthusiasm warrants REALLY. LOUD.

Cliff seems like a genuinely great guy.</comment></comment>


Dead Cells review: the best Castlevania game in years - <AUTHOR> https://www.theverge.com/2018/8/6/17655322/dead-cells-review-nintendo-switch-ps4-xbox-castlevania <comment><USER2> I hadn't played such a good metroidvania since the Castlevania on Gameboy advanced (I haven't played on DS so I might have missed a few good EP).</comment>


Ask HN: What do you do with business cards people give you? - <AUTHOR>

First, do you keep them? If so, how? Digitally? In a notebook? etc. <comment><USER2> Generally in a container/wallet for Business cards on a shelf or workspace desk.

But the most important ones (few) stay on my wallet.

</comment><comment><USER3> Got a pile of them. I keep that pile next to all of the loyalty cards I get from various stores.</comment>


Can You Get Smarter? - <AUTHOR> http://www.nytimes.com/2015/10/25/opinion/sunday/can-you-get-smarter.html?action=click&pgtype=Homepage&module=opinion-c-col-right-region&region=opinion-c-col-right-region&WT.nav=opinion-c-col-right-region&_r=0 <comment><USER3> My dad went from being an auto mechanic to learning to code when he was 63 and he's 77 now and argues with me about Drupal vs Joomla over dinner. It's only one sample but I'm convinced him switching careers extended his neural plasticity considerably.

<comment><USER4> I'm not saying you do, but I have found the general public vastly underestimates the intelligence of many auto mechanics--especially today's mechanics.

I guess they have always been an easy target in movies, etc.?

I have a feeling your dad could learn anything if given the right structure. Mechanics are underpaid, expected to continually learn on their time, provide $20,000-30,000 grand worth of tools; and the owner is the only one making a real living.

<comment><USER5> Once-upon-a-time-time auto mechanic, long time software dev here. It's not just the owner making a living, when I was active it was a decent middle-class living (25 years ago, could be different now). I'm talking professional, can diagnose your problem without throwing parts at it, owns a torque wrench and knows how to use it, not the vocational school students you find at Jiffy Lube. No one I knew was making BMW payments on their salary, but plenty had a nice house in a nice suburb, and a boat or other toy for the weekend. I would have been content to keep at it, but I like making software, too.

It was fun, too; much like debugging code with your hands. Okay, what evidence do I have to work with? Of these several hypothesises, which are the most likely? And, just like code, sometimes you spend the afternoon going down what you thought was the right path only to find out you're wrong.

As with software, there are hot shots that just seem wired for the task, and there are those that can merely competently do the job without screwing it up (and, like software, there are those few you don't want anywhere near your stuff). Just like software, I was one of those that fell in the middle. :-)

Tell ya what though, unlike software, I had very few bad days as an auto mechanic. Decent money, I enjoyed the work, and when the weather was nice we open the bay doors and you're practically working outside. Rarely did anyone second-guess my decisions (and when they did, it was to make _my_ job easier so I don't do it the hard way), and I rarely had to convince anyone of my estimates as we had a big book that already estimated how long a competent mechanic should take to do the job.

One big difference is that incompetence is harder to hide as an auto mechanic. You're not going to be doing any copy-pasta from StackOverflow when you're an auto mechanic.

Smart? Eh, like anything, it's hit or miss. Since the repair bays are right next to each other, and you don't have to expend a lot of cycles thinking through hash table algorithms, there's plenty of talking. Mechanics are a reflection of the general population, some guys (and they were all guys back then; girls worked up front behind the desk) I knew could probably write philosophy books, others probably won't be moving to Microsoft to write kernel code any time soon.

In summary, the public underestimates the intelligence of just about everyone but themselves, so mechanics don't get a pass. Nor do the mechanics care about what you think, at least this one didn't. I was happy where I was at at the time, I didn't need anyone's approval. And the money was good.

<comment><USER6> Are there websites to discuss and teach mechanic repair informally like SO ? I mean with a few tutorials I could probably fix a lot of things in cars by imitating the video. One big difference though, initial cost. I can't download a wrench yet, and most auto equipment is costly.

<comment><USER7> so I don't know about on the professional level, but on the amateur level... just about anything you might want to do to your own car? you can find a youtube tutorial. Last time some asshole busted out my window to steal my laptop, I replaced it myself; took maybe an hour and a half and a $60 window from ebay. And a youtube tutorial. Same with replacing brakes/rotors, though those took considerably more time and effort. (have you ever replaced drum pads? Jesus. The video makes it look so easy, and I'm sure it is if you know what you are doing, but my god. Next time I'm letting the professionals handle that one.)

Even if I'm billing out at my full sysadmin rate, the cost to me of replacing the window was dramatically cheaper than the $400 my local repair shop quoted me for a new window. and considering that I pay for car repair out of post-tax money, the difference is even more dramatic. (now, this is silicon valley prices, but the window was for a decade-old toyota sienna, so it's not luxury car in silicon valley prices)

Especially if you are willing to go with 'craftsman' level brands rather than 'snap-on' level brands,[1] tools are pretty cheap compared to what you pay for auto repair, even if you want things like air tools and compressors.

All that said, while youtube is great for figuring out how to do a thing, it's less great for troubleshooting; but I think the reason why things like stackoverflow/serverfault is so great for debugging is that our error messages are printed out in text that we can search on.

And yeah, I've got an ODB2 reader, and for _those_ errors, the internet is awesome. (I replaced my oxygen sensor at the request of my odb2 reader a while back, and that was also easy, facilitated by a youtube video again.) - but for "my car is making a funny noise" kind of errors, it's hard to search for the problem without knowing the jargon, you know?

[1]for auto tools, I really don't see much difference between the craftsman level brands and the better brands. I suspect this has to do with my skill level; I am very solidly in the shade tree school here, and I'm not ashamed to get the damn thing towed to someone who really knows what they are doing if I get in over my head, and that does sometimes happen.

For screwdrivers and other things that you use to rack up or take apart computers, I have strong opinions, and am significantly less happy if I have to do the job with my 'backup screwdriver' \- also, I can tell you the difference between a phillips, pozi-drive, and JIS drivers and become agitated when someone assembles an object with fastener heads that are more than one of those.

<comment><USER5> _[1]for auto tools, I really don 't see much difference between the craftsman level brands and the better brands._

The difference is that you don't use the same wrench a dozen times a day, day in and day out. Same reason my home toolboxes don't have roller bearing drawers: I don't open the drawers a dozen times a day anymore, so it's a waste of money for me now.

As I said above, Craftsman is fine for the DIYer. It's the brand I frequently buy. I haven't talked to a Snap-On driver since I left the field.

<comment><USER7> >The difference is that you don't use the same wrench a dozen times a day, day in and day out.

yeah, that's kind of what I was trying to say with the bit about how I care very much about the tools for dealing with rackmount computers and how I have a favorite screwdriver. I didn't care about screwdrivers either until I started using them a lot. I would bet money that you are right and that if I worked on cars more, I would care more about getting a really nice set of automotive tools, but I don't work on cars that much, so I don't really understand how the really good tools are different from the merely "good enough" tools, because that comes with experience.

But my main point was that there are tools that are adequate for the shadetree mechanic that are cheap enough to more than pay for themselves after a single use in a shadetree level project. If you can afford to have your car fixed, you have the capital to buy adequate (maybe not really nice... but adequate) tools to get started with your automotive hobby or the beginning of your education as a mechanic.

I do imagine that like IT people, most, or at least a whole lot of mechanics start out as hobbyists. The two seem similar enough to me.

</comment></comment></comment></comment></comment></comment></comment><comment><USER8> The nature vs nurture debate will go on. But I think the question needs to be framed differently. Its not about comparing one person with the other but the approach that best maximizes ones own potential. When framed this way, the answer becomes very clear - you have to believe that you can become smarter. This is not just blind belief but is practically the way brain works (neuroplasticity)and we see it every day. If you can learn to play the guitar at 60 means you can change your brain. I am sure there are 60 year olds who are smarter than 20 year olds just like there are 60 year olds who can run for longer than 20 year olds. As engineers we tend to downplay psychological factors compared to physiological factors. But the connection has been established beyond doubt in neuroscience. It hasn't gotten to a point where we can formulaically impact outcomes through calibrated intervention but the linkages are clear. Our definition of smartness is very narrow. Here is a conversation between a 50 year old scientist and a 70 year old poet [https://www.brainpickings.org/2012/04/27/when-einstein- met-t...](https://www.brainpickings.org/2012/04/27/when-einstein-met-tagore/)

</comment><comment><USER9> "six weeks of brain training, with 10-minute sessions three times each week" \- this seems so insignificant amount of practice that no reasonable person would expect it to have any effect. More interesting thing would be measure person's IQ before and after doing their quantum physics PhD studies - <USER2> years of intense work should do the trick of making you smarter.

<comment><USER10> This isn't even enough time to significantly increase your strength at a gym, which we know is possible and observable. Why anyone would think this is enough training to produce noticeable effects baffles me.

<comment><USER11> More imporantly, unless there's a hidden software in brain that responds precisely to that particular training, you'd expect that anything that can yield significant results by doing it 3x a week for 10 minutes would be already discovered purely by random chance.

<comment><USER12> Sure, but would they have recognized it? Would they put 2 and 2 together - "I ate a hamburger every Tuesday night for a year, and now I'm smarter...Eureka!"

Heck, maybe they would - they're a genius now.

<comment><USER11> Of course they would, that's how we've invented pretty much anything, scientific method included. People are pretty observant, there are lots of them and they've been taking notes for many thousands of years.

<comment><USER12> Um, I meant the random chance part. If something happens randomly, folks are rarely watching, right?

</comment></comment></comment></comment></comment></comment><comment><USER13> Dual N-Back : mental exercise ...

* Gwern (unofficial) Dual N-Back FAQ: [http://www.gwern.net/DNB%20FAQ](http://www.gwern.net/DNB%20FAQ)

* Gwern: DUAL N-BACK META-ANALYSIS [http://www.gwern.net/DNB%20meta-analysis](http://www.gwern.net/DNB%20meta-analysis)

* Gwern: NOOTROPICS [http://www.gwern.net/Nootropics](http://www.gwern.net/Nootropics)

* Google group: Dual N-Back, Brain Training & Intelligence : [https://groups.google.com/forum/#!forum/brain-training](https://groups.google.com/forum/#!forum/brain-training)

* [http://brainworkshop.sourceforge.net/](http://brainworkshop.sourceforge.net/)

</comment><comment><USER14> This is more dreadful, than ageism. From linked paper:

For example, longitudinal studies have reported between 1% and 2% annual hippocampal atrophy in adults older than 55 years without dementia (e.g., Jack and others 1998). Other regions also atrophy in late adulthood, including the prefrontal cortex, caudate nucleus, and cerebellum, at estimated rates between 0.5% and 2% per year.

[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3575139/](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3575139/)

<comment><USER15> That is terrifying. I'm 32. That means in slightly over 20 years I am going to slowly become brain dead.

By the time they cure death in my 70s, I will be too old to enjoy it unless they also can reverse this.

<comment><USER16> The cure to death even partially is probably more that 100 years away from us.

<comment><USER17> If that. Many people say the reason cancer kills everyone eventually is that cells in our body wants to be free and it takes that this many generations to declare their independence and rebel against the perfectly tuned totalitarian system that is our body.

<comment><USER12> Maybe your body, certainly not mine. I'm not sure who is in control - not me.

</comment></comment></comment></comment></comment><comment><USER18> Does anyone else have a little bit of a problem with the assumption that the "benchmark test" is enough of a gauge of general intelligence to be determinative in studies like this?

Additionally, the discussion is mostly revolving around the physical size of the hippocampus, but instead of measuring that (arguably a difficult task), they instead rely on a "benchmark test" and base their results on that alone.

What are the indicators that the benchmark test and hippocampus size are closely correlated?

</comment><comment><USER19> I certainly agree with the author's concluding sentence: "Forget the smart drugs and supplements; put on your shorts and go exercise." When he set up the opposing viewpoint earlier in the article, it made me cringe:

"I know, exercise is work, so you undoubtedly want to know if there is a smart pill, like Adderall or Ritalin, that will do the trick."

What an awful idea.

The mathematical and geometrical genius H.S.M. Coxeter lived to age 96. He attributed his continuing mental agility through old age to never being "bored", and to doing 50 push-ups a day.

<comment><USER7> Why is a pill that makes you more like what you want to be an awful idea?

I'm not making any statement about the effects of the drugs in question; if they don't work or have bad side effects, obviously, that's bad, but my point is that people seem to think that drugs, even when they work and have reasonable side effects are a somehow bad or shameful route to self- improvement, and I don't see why that is.

If we're talking about famous people, what about Erdos?

<comment><USER19> Sorry, I should be more precise. I don't think the pill itself is an "awful idea". What is a bad idea (IMO) is relying on a pill specifically because you don't want to exercise, which has been shown to work, and has too many interrelated benefits to mention.

I think stimulants are fine--Erdős took amphetamines, lots of kids take Adderall, and most mathematicians probably drink tea of coffee.

<comment><USER7> ah. yeah. From what I read nothing is as effective as exercise. I recently stopped bicycling to work... and am a lot worse for it. Just sayin' if there _was_ a pill that was as effective as exercise, I'd take it.

</comment></comment></comment></comment><comment><USER20> To stay sharp, start and keep [drawing]([https://vimeo.com/6986303](https://vimeo.com/6986303)) and teaching.

</comment><comment><USER21> _All subjects took a benchmark cognitive test, a kind of modified I.Q. test, at the beginning and at the end of the study. Although improvements were observed in every cognitive task that was practiced, there was no evidence that brain training made people smarter. Scores on the benchmark test, for which subjects could not train, did not significantly increase at the end of the study._

That's what I suspected.

</comment><comment><USER22> I wonder how necessity affects neuroplasticity? I think of foreigners who are forced to to learn a new language and culture at an older age. I can't help but think ones mind needs "jolt" to become smarter.

</comment><comment><USER23> I'm interested in what medicines and supplements people are taking to improve their brain plasticity.

<comment><USER24> Valproate supposedly increases plasticity for some skills: [https://www.newscientist.com/article/dn24831-learning- drugs-...](https://www.newscientist.com/article/dn24831-learning-drugs- reawaken-grown-up-brains-inner-child/)

[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3848041/](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3848041/)

[https://en.wikipedia.org/wiki/Valproate](https://en.wikipedia.org/wiki/Valproate)

Taking acetylcholinesterase inhibitors, also may increase plasticity: [http://dana.org/Cerebrum/2012/Re- opening_Windows__Manipulati...](http://dana.org/Cerebrum/2012/Re- opening_Windows__Manipulating_Critical_Periods_for_Brain_Development/)

Here is a list of acetylcholinesterase inhibitors: [https://en.wikipedia.org/wiki/Acetylcholinesterase_inhibitor...](https://en.wikipedia.org/wiki/Acetylcholinesterase_inhibitor#Examples)

There are a few other ways to potentially increase neuroplasticity:

Blood transfusions from young people or children to old people: [http://www.nature.com/nm/journal/v20/n6/full/nm.3569.html](http://www.nature.com/nm/journal/v20/n6/full/nm.3569.html)

Transplanting inhibitory neurons: [http://www.sciencedirect.com/science/article/pii/S0896627315...](http://www.sciencedirect.com/science/article/pii/S089662731500286X)

<comment><USER25> Mild warning about valproate: it's associated with PCOS (so only relevant to women).

</comment></comment></comment><comment><USER26> So is this an example of Betteridge's law?

</comment><comment><USER27> >YOU can increase the size of your muscles by pumping iron and improve your stamina with aerobic training.

How come? You increase the size of the muscles by lifting heavy.

<comment><USER28> That's what pumping iron means.

<comment><USER27> I though he meant Fe

<comment><USER29> Great movie:

[https://www.youtube.com/watch?v=zZ8aqP2NWk8](https://www.youtube.com/watch?v=zZ8aqP2NWk8)</comment></comment></comment></comment>


Ask HN: If you could redo GNU/Linux, what would you do differently? - <AUTHOR>

<comment><USER2> Arguably unrelated to GNU or the Linux Kernel - so maybe this isn't what you are asking for... but I hope it's close enough.

Focus on the UI and UX of software that runs on GNU/Linux to promote mass adoption. Great, reliable programs don't help when the casual layman can't use them (no UI/all CLI) and things that _look better_ often sell better than things that _function better_.

More users (and thus a larger market target for programmers) may mean more talent to improve GNU/Linux.

<comment><USER3> Is there a UI toolkit you would recommend?

<comment><USER2> I don't do software development, I simply use it. :)

I'm talking more about form-function and a GUI interface being provided as an alternative to a CLI. Don't have 500 options buried under the "Options" menu. Be a bit biased on 'trivial' details to lower the amount of information a user needs to know/remember. Organize things in a reasonable manner.

I've seen a music player where the play button was on the bottom left corner but if you wanted to skip the track or pause - the buttons were on the right. If you wanted to load a new directory to play music from you had to use "black magic" (read: hotkeys) of "ctrl+u" to open a prompt that asked for the directory to read from. As you might imagine - the UX was terrible.

</comment></comment></comment><comment><USER4> The Linux kernel is fine.

The biggest problem with the Linux ecosystem is that windowing systems and X-Window (and clones) in particular are an inefficient design. They're given up performance, increased complexity, and made writing applications more difficult than they need to be. The only trade-off people keep mentioning is "you can now run it over the network!!!" which is something few users do, and VNC (and similar remote desktop solutions) remain very popular (since remote windowing is complex and problem prone).

Essentially I'd design the UI/GUI experience more akin to Android (or failing that at least monolithic like MS Windows, but without the Win32 problems). In 2015, it may be HTML5/JavaScript/CSS based like Windows Store/iOS/Android apps, as that seems to be the direction the market is heading anyway.

</comment><comment><USER5> Ken Thompson was once asked what he would do differently if he were redesigning the UNIX system. His reply: "I'd spell creat with an e."

[http://en.wikiquote.org/wiki/Ken_Thompson](http://en.wikiquote.org/wiki/Ken_Thompson)

</comment><comment><USER6> Handicapped it somehow so that Plan 9 might have taken off.

</comment><comment><USER7> I'd discourage the creation of so many distributions.

The fragmentation problem is really bad. I'd encourage people to focus on one _core_ upstream distribution and then fork it downstream closer to the specific point of customization rather than creating over eight different upstreams. Alternatives are good but not when they're all basically the same. I'd only encourage root-level distro forks when people really want to do something fundamentally different.

The kernel is mostly fine. I'd probably have merged OpenVZ years ago, which would have given us containers (and pretty secure ones to boot) much sooner.

</comment><comment><USER8> prune the filesystem tree

</comment><comment><USER9> The license is the biggest crippling factor with Linux. It makes any sort of sharing of the source code with permissive projects or commercial involvement tedious.

It's a hackers dream, if you're in college and you want all code to be available for you. But when you get in the real world - you realize your time spent programming is more valuable. Maybe you don't want to grant the world the rights to your creativity.

Maybe the GPL can be credited for the success of the kernel's evolving. But there is little evidence that GPL brings serious players in - commercially - GPL wasn't invented by economists - it was invented by an academic.

I'm surprised to see Valve using Linux and not BSD. BSD is even _simpler_ from a developer stand point. I love debian - but as I get more serious about my skills - my investment is going full boar into permissive tools.d

I'm free to borrow code from these projects 10, 20 years down the line for use at work, to add value, no questions asked.</comment>


Designing as a Developer - <AUTHOR> https://blog.benroux.me/designing-as-a-developer/ <comment><USER2> Another link that is useful here is how to create a logo in 5 mins by Design inc: [https://journal.designinc.com/how-to-make-a-logo-for-free- in...](https://journal.designinc.com/how-to-make-a-logo-for-free-in- about-5-minutes-a4f409176a8e#.lnz0mjf8l)

</comment><comment><USER3> Hey Ben thank you for your article. I've been thinking about the same, I feel I am much more qualified in the programming part but I really want to make good design as well. One thing I've been doing is buying html themes from sites like themeforest and adopt them to the framework I'm currently working in. These themes are not perfect, and often I have to fiddle around with their code. But the design is usually very good and done by people that are much more experienced than me in UI design. This stuff takes practise. It's almost like expecting UI designers to be able to code well. At the same time I learn different UI tricks by looking at the code.

</comment><comment><USER4> I think the title should be "Designing as a web Developer".

There isn't really much in that post for you of you are not HTML guy.

</comment><comment><USER5> I'd add: draw it first, don't expect visual art to work well from a text editor. There are many drawing programs for good reason.

</comment><comment><USER6> I think there's a bit of a difference between "making it look nice" and good design.

The article does touch on points that help make a better design but doesn't link to the deeper meaning behind it.

Design is, in effect, planning. A good design is a good plan to achieve a goal. A good web design is a good blueprint for a website.

This is similar to code design. Ask yourself some of these questions:

\- which is easier to read, a pyramid of if statements hacked together or a well factored design where indentation isn't excessive and modules do one thing well?

In visual design, this would be your grid system, consistent and readable typography and well thought placement of modules. Code smells bad when you've got no consistent styling in a 1000 line procedure - the rules that lead to good design are very similar.

\- which will lead to a better end result? A problem explored on paper, with ideas bounced off the client and colleagues or something thrown together in 10 mins in code?

Getting your requirements down is just as important in design. From there, wireframes with client and colleague feedback is equivalent to a design document of some sorts (even if it's one page a la one feature in iterative development). Based on wireframes and requirements, a mock-up follows with more client feedback. Again, you can't produce good software without a clear idea of what's being built and so it is with design.

If designing for one's self, you are the client. In that case, get someone who will give you quality feedback at each step too.

The best way to look at design and "make things look nice" if you are a programmer is to learn the fundamentals of design and look for parallels in programming.

Certainly, there are exploratory designs too. These designs, like equivalent programs, are useful to find a good solution to a tricky problem. In that sense, these wouldn't be complete designs but ideas for a component you can use in a complete design.

Apologies in advance for rambling - I'm starting off 2017 with the flu!

</comment><comment><USER7> I love Unsplash!!! Thanks for discovery

</comment><comment><USER8> There is also Paletton: [http://paletton.com/](http://paletton.com/)

</comment><comment><USER9> The author says that they avoid "Bootstrap like the plague" in favor of Zurb. Why is that?

<comment><AUTHOR> Author here. Over the years, Zurb's grid has consistently stayed ahead of Bootstrap's in functionality (ex: Zurb was allowing embeddable grids while Bootstrap was still using fixed width) and also in class clarity: "three large columns" vs "col-lg-3".

Beyond these reasons, though, i wouldn't suggest other developers turn their back on Bootstrap if that is what they are familiar with. Its adoption has reached a point where the resources surrounding it are unmatched.

If you are comfortable with bootstrap, stick with it. If you are like me and have a bit of contrarian in you, give Foundation a try and see if you prefer it.</comment></comment>


The End Is Near Facebook Adds Support for Animated GIFs - <AUTHOR> http://hothardware.com/news/the-end-is-near-facebook-adds-support-for-animated-gifs <comment><USER2> And thus Geocities is reborn.</comment>


Evolving Proxy Detection as a Global Service - <AUTHOR> https://media.netflix.com/en/company-blog/evolving-proxy-detection-as-a-global-service <comment><USER2> I had always expected this to come, and was surprised that it hadn't for so long. Even though VPN users justified it by saying they were paying to access Netflix, it was a legal grey area, and ultimately came down to accessing something they shouldn't have. The expanded countries offering I guess, is as good time as any to do this.</comment>


How Jim Simons became the most successful investor of all time - <AUTHOR> https://www.economist.com/finance-and-economics/2019/11/14/how-jim-simons-became-the-most-successful-investor-of-all-time <comment><AUTHOR> [https://outline.com/aSeK4S](https://outline.com/aSeK4S)</comment>


How Victor Hugo came to write "Les Misérables" - <AUTHOR> http://www.economist.com/news/books-and-arts/21717357-extraordinary-story-book-changed-world-how-victor-hugo-came-write-les?fsrc=scn/tw/te/bl/ed/bythebookhowvictorhugocametowritelesmisrableshismagnumopus <comment><USER2> The article would better be titled, "How Les Misérables changed the world." Its impact is sadly lost in generations since who would rather view the film or musical at the expense of reading the novel.

I'm not surprised it's also the most adapted novel of all time as it is, in my opinion, the greatest novel ever written and a monument to what literature can be. But I definitely worry that its impact will be more and more limited by alternatives to simply reading the original.

<comment><USER3> I read the book and found all the characters extremely simplified and shallow. I guess the audience was not ready for sophisticated personalities - there are the evil Thenardier, the saint Myriel, the disgraced Cosette... Most books written today are better written than that

</comment></comment><comment><USER4> Hugo is fantastically intelligent but also unabashedly romantic - perhaps even sentimental. I loved Les Miserables, and one of the good things about it was its exoneration of the conscience, of what the main characters unshakingly feel to be be good.

He also packs a fair amount of (occasionally apocryphal) history into it. I love the many pages spent describing Waterloo from start to finish, and his judgment of the battle is sobering:

[http://coldewey.cc/post/19163335604/the-victor-of- waterloo-a...](http://coldewey.cc/post/19163335604/the-victor-of-waterloo- assembled-from-les)

<comment><USER5> what do you mean when you say "exoneration of the conscience"? it's an interesting phrase that can be taken many ways.

i also loved les miserables, and took the story to be an implication of the state: of law & order and it's imperfections and corruptibilities. of how right and wrong aren't forever attached to labels, titles, persons, or any of the other mental shortcuts we take in our daily judgements.

it's really interesting to see how this dichotomy continues to play out in the current political environment. some people believe we are safer when we lock up criminals and thugs, to separate our good selves from those bad selves, to harshly punish in the hopes of instilling order in the world. yet we are each but a single mistake away from crossing that divide into a label we would never apply to ourselves. it goes against our own ego to understand that we are, in the same person, at times lawful and at other times lawless, and the application of justice against that backdrop is often neither fair nor just.

<comment><USER4> I think that in Les Miserables, the main characters are driven by their consciences, and unfailingly make their decisions based on what they feel is right. Sometimes that has ugly or unforeseen consequences, or is even fatal. Many of the characters are plunged into poverty or despondency because they chose to act according to their conscience. Meanwhile people making choices out of expedience or because of external forces they obey (Javert, Thenardier) prosper at least temporarily.

But ultimately the story and characters who do what they think is right end up on top. Now this is also in a way the case in many a moralistic book (the patient Christian triumphs over the predatory thief or what have you) but in Les Miserables I think it is deeper than that, an indication that it is the strong and principled that buoy those around them and feed the matrix of society, even at times with their own lives.

Naturally it's all a bit artificial but I liked it immensely nevertheless.

<comment><USER6> > Meanwhile people making choices out of expedience or because of external > forces they obey (Javert ...

It's really interesting to me that you include Javert in the group that doesn't act according to conscience since I've always seen him as, perhaps, the most conscious driven character in the book.

It's been over a decade since I read the book and I've seen the musical so many more times, so I might be misremembering the story from the book, but it seems like Javert's character arc is one where he starts from seeing the law as absolutely correct and himself as an instrument of enforcing that correctness. His actions aren't expedient or imposed on him by others, but are the result of that steadfast belief in the correctness of the law. It takes the example of Valjean to show him that the his conscience is distinct from the law and there are times that the law might not be correct. And his suicide is the result of his inability to reconcile that steadfast belief with what he begins to see might actually be right.

Categorizing him along with Thenardier, a character with little-to-no moral compass seems wrong since Javert's actions, while shown to us as bad, come from an intention to do good. He always does what he feels is right. And when he arrives at a situation where either choice will lead him to doing something he feels isn't right, he'd rather die that make that choice.

</comment></comment></comment></comment><comment><USER7> A contract that paid by the word, perhaps? I got 700 pages in one year over winter break when I was in college. A (mostly, it was many years ago now) complete summary of the events that had happened that would be familiar to those who have seen the musical:

1\. Jean Valjean acquired some silver from the bishop. 2\. It was established that M. Thenardier looted the deceased soldiers at the battle of Waterloo. 3\. The existence of Fantine and possibly Cosette had been established? 4\. Perhaps Valjean had become the mayor of some town after using what was formerly the bishop's silver to become an honest man?

Note that Javert, who is the other major character besides Valjean has yet to put in an appearance, despite showing up in perhaps the first 10 minutes of the musical. M. Thenardier is, at best, a minor player in the musical, and prior to his introduction, we get ~50 pages on the history of the Battle of Waterloo.

The Princess Bride gently mocks the genre by advertising itself as "abridged". I can't help but feel it's justified.

<comment><USER2> Why would you write so many sentences to simply say that you couldn't finish a great novel? There's nothing wrong with The Princess Bride... but it's for children.

Try reading it again. It's worth it, I assure you. It's vastly better than any of the film adaptations or the musical.

<comment><USER7> I'm not going to claim to be a connoisseur of literature, so perhaps I've just overlooked the greatness. The point I was trying to make is that the book takes a great many pages to advance the plot relatively little. If you're familiar with the musical adaptation and are expecting a more plot-driven novel, you probably won't find that the book meets those expectations. I have not seen any of the movie adaptations, and cannot comment on them; on the basis of your recommendation, I probably will not.

As I recall, structurally, the novel is somewhat like The Grapes of Wrath, with expository sections interspersed with sections that directly advance the plot. I quite liked that about the Grapes of Wrath. I'm not sure if I take issue with the exposition/advancement ratio in Les Miserable, or if I feel less of a connection with the period Les Miserables is set in.

For children or not, I certainly won't hold The Princess Bride up as example of greatness. I would claim that the fact that it works as a send-up of a genre, including the alleged abridgement, is illustrative of something.

<comment><USER2> > perhaps I've just overlooked the greatness

You have. Hugo takes his time because great artists don't tell you, they take your hand and lead you somewhere so that suddenly you open your eyes and you're in a place you never expected to be.

I understand you, of course. The book is longer than War and Peace. It's huge. When he spends the entire first book just on the Bishop, you're forgiven for thinking, "Why?" That's answered immediately, however. The great scene that follows between Valjean and the Bishop feels utterly natural, rather than stilted or artificial if done another way.

The same is true with Fantine. Her story is _light_ when it starts. Hugo spends a lot of time so that _you will feel the lightness of her situation_ so that he can then turn the lights out, and now you're with her in the dark. She's not some loose woman who should have known better; she's you.

He does this again and again. For the entire novel he doesn't tell you anything, he doesn't even take your hand later but simply grabs you by the collar and shows you, immerses you in these characters. It's the greatest novel I've ever read and I would recommend fully reading it to anyone.

</comment></comment></comment></comment><comment><USER8> It doesn't really explain how, or why. Just that he did, in 1845. And then had to do so from exile, after 1848.

</comment><comment><USER9> It's interesting that this is the second book for the general public this year to be about another book and its influence. I recently read "The Book That Changed America: How Darwin's Theory of Evolution Ignited a Nation" which is about the Origin of Species.

<comment><USER10> In 150 years or so, just for kicks, somebody should write a book about _that_ book.

</comment></comment><comment><USER11> Show HN: I wrote a book?</comment>


Avoiding the "IOU" – 4 Rock-Solid Methods for Getting Your Business Paid - <AUTHOR> http://dryrun.com/avoiding-iou-4-rock-solid-methods-getting-business-paid/ <comment><USER2> This article completely missed the technique which worked for me - adding a notation to every invoice. I would put (2/10 1/20) which means to accounts payable that I will give a 2% discount if they pay within 10 days, and a 1% discount if they pay within 20 days. After doing that, I consistently got paid quickly (at a discount - so your offerings must be priced to give those discounts.) Every accounts payable department looks for such discounts as a routine part of their job.</comment>


Bayes' rule in Haskell, or why drug tests don't work - <AUTHOR> http://www.randomhacks.net/articles/2007/02/22/bayes-rule-and-drug-tests <comment><USER2> Drug tests are my favorite example of corporations creating practical law. At this point in America, personal consumption of illicit drugs is effectively legal because of the unenforceability of drug laws thanks to our right to privacy. If you work for a major corporation drugs become illegal because insurance companies mandate pre-employment drug testing. The actuaries can easily show this lowers how often they have to pay for rehab.

For the article itself, the author doesn't make much of a point about the inaccuracy of drug tests because he made up the 99% percent accuracy figure. Drug tests are more accurate than that because all positive results are retested with a more expensive, more accurate test.</comment>