[GEEKY] Interesting collection of algorithms and great Ruby tutorial
Over the last several months I've been following a series of blog postings by Jamis Buck on the esoteric and quirky topic of writing programs to design mazes.
For reasons that are not clear, Jamis developed an obsession with mazes and has collected a series of articles detailing many different algorithms, their tradeoffs and concepts and writing them up beautifully.
Today in his final installment he summarized the project:
Over the last six weeks I documented eleven different maze generation algorithms. It’s been a blast. I’ve had so much fun researching and implementing these! It’s been great to see some of you taking my advice and applying these to learning a new programming language, as well; I really believe there is a lot of value to be had, there. (from Maze Generation: Algorithm Recap)
If you like programming, or like algorithms, or want to improve your Ruby skills, I strongly recommend this series: Maze Generation: Algorithm Recap
Amazon provides free hosting for public data sets
If you work with non-profit projects that collect or disseminate large amounts of public data, you would find this interesting.
Amazon offers FREE storage for huge public datasets. So in otherwords, Amazon's 'cloud based' storage service (known as S3) will offer, for no charge, to store a dataset if it is open to the public and somehow for the public good.
From their site:
"Public Data Sets on AWS provides a centralized repository of public data sets that can be seamlessly integrated into AWS cloud-based applications. AWS is hosting the public data sets at no charge for the community, and like all AWS services, users pay only for the compute and storage they use for their own applications. Learn more about Public Data Sets on AWS and visit the Public Data Sets forum." (from Amazon's Public Data Sets)
Here's the link: http://aws.amazon.com/datasets
A great article about scientific discourse
This article is called "Fact and Folklore In Software Engineering" and while it is about that, the part that was more interesting to me was the first section talking about Scientific Discourse:
"This article is about why some “facts” refuse to die, and about how to avoid being fooled by opinion disguised as scientific “fact”. We start, therefore, with some observations on science and facts." (from "Fact and Folklore In Software Engineering")
Here he goes on to describe "The messy workings of scientific discourse". It's clarifying explanation of a process that we understand intuitively but actually has a rigorous process:
"Bruno Latour is one of the keenest observers I know of the work that scientists really do, and one of the most punctilious in clearing away the myths and misconceptions about how science is in fact done. I have found good use in some of the tools he created to assess the status of an ongoing debate about a matter that falls within the purview of science, one that hasn’t been settled - what he calls a controversy." (from "Fact and Folklore In Software Engineering")
After lots of further interesting detail about this idea, he finally comes back to the question: "So what is known about programmer productivity?":
"We can now circle back to this widely circulated “fact” of the software profession, according to which “programmer productivity varies by a factor of 10 (or 5, or 20) between the best and worst individuals”. This is a remarkable statement, not least because of its implications: for instance, programmer compensation does not vary accordingly." (from "Fact and Folklore In Software Engineering")
After this introduction he goes on to thoroughly take apart this concept as nothing more than unsubstantiated, oft-repeated folklore, based in some really old, actually inapplicable, and incorrectly cited studies.
But they stick because there is a grain of truth in them. The problem is that it's just a grain of truth. It's a wonderful article. Read "Fact and Folklore In Software.
[GEEKY] Great classic article about Mocks and Subs (non-geeks: don’t ask!)
A seminal article about an advanced topic in software testing: Mocks aren't Subs
"The term 'Mock Objects' has become a popular one to describe special case objects that mimic real objects for testing. Most language environments now have frameworks that make it easy to create mock objects. What's often not realized, however, is that mock objects are but one form of special case test object, one that enables a different style of testing. In this article I'll explain how mock objects work, how they encourage testing based on behavior verification, and how the community around them uses them to develop a different style of testing." (from Mocks aren't Subs by Martin Fowler)
Morality
This is actually a keynote to a conference, but it had some very interesting ideas in it. The article is called "The New Science of Morality" and it's by Jonathan Haidt.
I don't know if it makes full sense out of context, but read this section. It makes an important point and it might draw you into reading the whole thing.
"[…snip]Morality is like The Matrix, from the movie "The Matrix." Morality is a consensual hallucination, and when you read the WEIRD people article, it's like taking the red pill. You see, oh my God, I am in one particular matrix. But there are lots and lots of other matrices out there.
We happen to live in a matrix that places extraordinary value on reason and logic. So, the question arises, is our faith justified? Maybe ours is right and the others are wrong. What if reasoning really is the royal road to truth? If so, then maybe the situation is like chemistry after all. Maybe WEIRD morality, with this emphasis on individual rights and welfare, maybe it's right, because we are the better reasoners. We had The Enlightenment. We are the heirs of The Enlightenment. Everyone else is sitting in darkness, giving credence to religion, superstition and tradition. So maybe our matrix is the right one.[…snip]" (from "The New Science of Morality" and it's by Jonathan Haidt.)
If you liked that one, there are two referenced articles, also worth looking at:
Great article about ‘lean’
I recommend this article, "Fatboy in A Lean World", (by Gordon Guthrie) if you are interested in 'lean' as in Lean Startups, Lean Production.
About why lean production is becoming so hot among us software entrepreneurs:
The great transformation of the industry over the last 10 years has been the availability of already-written (and battle tested) software which has slashed the size of a team that can build a functioning product and the crash in price of hardware. (from Fatboy in a Lean World)
About Y-Combinator's philosophy:
The YCombinator slogan is build things people want. Lean production is the double negative of that: don’t build things people don’t want. (fromFatboy in a Lean World)
About one of the key concepts of lean, the "minimum viable product" or MVP:
"Like all hot concepts there is a lifecycle of hype. When people realise it is useful they first start by re-categorising everything they all ready do as the flavour de jour. Then it blooms and blooms and starts being applied quite wildly.
An example of this would be the rise of paper prototypes as MVP’s. Paper prototypes are a great and cheap way of working out design and interface issues but they need to be tempered with capability.
I could knock up a paper prototype of an iPhone teleportation app and get great customer stats (‘96% of 14-25 year olds would def-in-et-ely pay $1,000 for this app, right here, right now!’). But without capability it is just piss and wind.
Patrick Vlaskovits and Eric Ries would define an MVP loosely as ‘enough product to test a hypothesis’ – and would insist that if it isn’t testing a hypothesis, then it isn’t an MVP.
I am all in favour of testing hypothesis by the cheapest mechanisms possible, but my gut instinct is that you probably should not call it an MVP unless it is a product – a product that you are actually trying to sell, right here, right now. An MVP, after all, is a Minimum Viable Product. If your users are not your users (but your product) you should be thinking how do I get enough users to ‘sell’ to whoever your customers are (lead generation, advertisers, market information, whatever). (fromFatboy in a Lean World
Read the article: Fatboy in a Lean World and also check out the links in the footnotes. More good stuff.
Lies people tell themselves
Michael Arrington is a famous Tech-pundit-commentator-blogger who recently left or got fired from AOL because he wanted to be a VC while being a journalist covering the companies he is investing in.
One way or another that led him and AOL and the super-popular blog he started, TechCrunch, to part ways. All that is interesting back story.
Arrington recently wrote a very provocative article arguing that people who are serious entrepreneurs in serious startups, especially in Silicon Valley, should be willing to give up their life for work: Startups are hard. So work more, cry less, and quit all the whining. Yes he is a genius provocateur.
"… You might be sad that you work long hours and that sometimes your boss yells at you when tensions run high. But you also know that there is nowhere on earth like Silicon Valley. Nowhere else that is structurally designed to help you make whatever you can imagine into reality. Nowhere else where there are so many like minded people who are willing to sacrifice and work hard to create something new…." (from Uncrunched)
This is the usual drivel that is fed to innocents in startups and would hardly be worth mentioning except that it got a huge reaction (both pro and con) in the rarified tech geek startup ranks. If you read the article you notice that Arrington quotes at length from a Jamie Zawinski who captured his feelings in a diary from 1994, for example:
"I slept at work again last night; two and a half hours curled up in a quilt underneath my desk, from 11am to 1:30pm or so. That was when I woke up with a start, realizing that I was late for a meeting we were scheduled to have to argue about colormaps and dithering, and how we should deal with all the nefarious 8-bit color management issues. But it was no big deal, we just had the meeting later. It's hard for someone to hold it against you when you miss a meeting because you've been at work so long that you've passed out from exhaustion." (from NSCP Dorm)
You get the idea. Well wouldn't you know, Jamie Zawinski for 2011 is not so happy about being used to bolster Arrington's article. In "Watch a VC use my name to sell a con" he writes:
"Follow the fucking money. When a VC tells you what's good for you, check your wallet, then count your fingers. He's telling you the story of, "If you bust your ass and don't sleep, you'll get rich" because the only way that people in his line of work get richer is if young, poorly-socialized, naive geniuses believe that story! Without those coat-tails to ride, VCs might have to work for a living. Once that kid burns out, they'll just slot a new one in." (from Jamie Zawinski)
You might gather that in this case I am more in Zawinski's camp.
An Australian farm bigger than Texas. Really?
I heard yesterday that there is "at least one farm" in Australia bigger than Texas. I guess this was a way to remind me that Australia is really really big. Which I think I knew already so I let it go.
But then I got to thinking, Texas is pretty big too, and a single farm that size was still a little hard to believe. So I am looking for data. Can anyone prove or disprove the statement?
Free Will
"That journey will provide reasons for resisting the claim that a deterministic view of the material universe is incompatible with free will. Much of the apparent power of deterministic arguments comes from their focusing on isolated actions, or even components of actions, that have been excised from their context in the world of the self, so that they are more easily caught in the net of material causation." (from How Can I Possibly Be Free?)
This is from a really difficult article called "How Can I Possibly Be Free?" in the New Atlantis. At least it was really difficult for me to really appreciate the nuance of the argument. So it's not a matter of agreeing or not, but it is a fascinating read. I recommend it (if you are into that kind of thing 🙂
p.s. The New Atlantis is an online magazine that I recently stumbled across. I have learned a lot from some of the articles (like this one "Getting Over the Code Delusion")
[GEEKY] Why does my LCD display not wake up?
When my computer turns on it can often take 30 to 120 seconds for my Samsung LCD display to wake up. Facts of the case:
-
Display is 213T and is something like 3-5 years old
-
Office can be cold
-
I am sure the computer is ready within seconds. It's just waking up. It will play music for example right away.
-
In every other respect the display is fine
-
It has always done this
Do you know?