Category Archives: Stupidity

Replacing the LCD Panel in a Samsung 303C Chromebook…

In what quite possibly might be the most boring video ever produced, I recorded myself changing the LCD panel out of my Chromebook. It’s 17 minutes of riveting youtube goodness. Skip down to the bottom if you want to watch.

But here’s the story if you’d rather just read a paragraph. My wife bought me this little Samsung 303C Chromebook a while ago, and unlike the netbook that I had years before, I actually found this gadget to be pretty useful. For those who may not know about Chromebooks, they run ChromeOS, an operating system designed by Google to mostly run web applications. You can read more about it, but essentially it’s an OS designed to run a browser and web applications. I use it mostly to do web browsing, email, writing (using Google Docs), Netflix, and running ssh to access other machines on my network. For that, it’s great: it has long battery life, is lightweight, and is cheap (list price is $200 or so). I have taken it when traveling instead of a tablet when I may need to get some writing done, and when bringing a full laptop would be more cumbersome.

Sadly, a few days ago I realized that I had somehow managed to crack the LCD screen on it. I tend to be pretty casual with the thing, so I probably kicked it around while it was on the floor or something. I was kind of bummed. But a little quick googling revealed that I could get a replacement screen from Amazon for about $39 with free shipping courtesy of Amazon Prime. I ordered it on Tuesday night, and got it Thursday.

The replacement is very, very simple: I suspect having done it once I could probably do it in less than five minutes. The procedure is basically to turn off the unit, pop off the bezel (just use your fingers), and remove four screws that hold the screen in place. Then, you have to disconnect the ribbon connector, which I found to be a little unobvious, and results in a boring middle part of this video, where I am trying to understand exactly how to release the catch. I was overly cautious, and wanted to make sure I knew what I was doing, so I stopped and rewatched another video, which didn’t help a lot. In the end, I realized what I was staring at: there is a C shaped hasp which goes around the outside of the connector on the board, and had a plastic tab which was hidden under a layer of tape above. Once I figured that out, I used a small screwdriver to lift the edge, and disconnected the ribbon cable. After that, it was entirely easy: just reverse the process, attach the cable, secure the four screws again, pop the bezel on, and voila! Screen works again.

At the very end of the video, you can hear me muttering a little bit about the “black line”. When I reinstalled it, it looks a little like the active area of the screen is a little offset: I see a black gap at the top, and the active lines of the screen at the very bottom are very close (or even hidden a little) by the bezel. I was wondering if perhaps I should have secured the panel with the alternate set of screw holes. Rewatching the video, it appears that I used the same set that the original did, but I might still disassemble it to adjust this and see if it makes the result better.

In any case, it was a quick and easy fix, and I’m glad my trusty little Chromebook is back and running.

Regarding production: I filmed it all with my GoPro Hero 3 (white). I apologize a bit for the audio, I’m picking up a bit of noise, and didn’t have time to fix it. I assembled the two clips using an FFMPEG script that I have used before, with one addition: I realized that I typed my login password on camera, thought that might be a bad idea, so I figured out how to blur out the image at that time. Fun! I might make a new article about that later, when I develop some more interesting examples.

Hope this helps someone in the future!

On random numbers…

While hacking a small program today, I encountered something that I hadn’t seen in a while, so I thought I’d blog it:

My random number generator failed me!

I was implementing a little test program to generate some random terrain. The idea was pretty simple: initialize a square array to be all zero height. Set your position to be the middle of the array, then iterate by dropping a block in the current square, then moving to a randomly chosen neighbor. Keep doing this until you place as many blocks asu like (if you wander off the edge, I wrapped around to the other side), and you are mostly done (well, you can do some post processing/erosion/filtering).

When I ran my program, it generated some nice looking islands, but as I kept iterating more and more, it kept making the existing peaks higher and higher, but never wandered away from where it began, leaving many gaps with no blocks at all. This isn’t supposed to happen in random walks: in the limit, the random walk should visit each square on the infinite grid (!) infinitely often (at least for grids of dimension two or less).

A moment’s clear thought suggeseted what the problem was. I was picking one of the four directions to go in the least complicated way imaginable:

[sourcecode lang=”C”]
dir = lrand48() & 3 ;
[/sourcecode]

In other words, I extracted just the lowest bits of the lrand48() call, and used them as an index into the four directions. But it dawned on me that the low order bits of the lrand48() all aren’t really all that random. It’s not really hard to see why in retrospect: lrand48() and the like use a linear congruential generator, and they have notoriously bad performance in their low bits. Had I used the higher bits, I probably would never have noticed, but instead I just shifted to using the Mersenne Twister code that I had lying around. And, it works much better, the blocks nicely stack up over the entire 5122 array, into pleasing piles.

Here’s one of my new test scenes:

Much better.

Regarding comment spammers…

It’s been quite some time since I had a decent rant on this blog, and I didn’t sleep well last night, and I am feeling a tiny bit grumpy, so pretty much anything will set me off on a rant. I figure I may as well get it off my chest now, then I can get down to work.

Comment spammers, you guys really suck.

I enjoy having a blog. I don’t try to support it with ads. It’s a flat out expense: my $8 or $10 a month buys my hosting, and I can run WordPress and I’m really quite happy. To date, I’ve made 3234 posts (this will be 3235) and have approved 1,588 comments in the six years or so its been going on. For everyone who has found anything of genuine interest here, I thank you for checking it out, and occasionallly leaving your genuine comments.

But here’s my reality: since October, 2006 (the earliest date I have good statistics for) my blog, the spam filter Akismet that WordPress ships with has caught 202,756 spam comments. In some sense, these aren’t the worst problem, since they are automatically caught and routed directly to the bit bucket. Nobody ever sees these posts. They don’t generate even a single click through. But the ratio of legitimate comments to fake comments is about 200:1 or so. That means that the vast majority of the actual cost in terms of bandwidth that I see is likely to go to these comment spammers. If we could eliminate spammers, there would be lots more, lots cheaper bandwidth available for us all.

But another kind of comment spam is currently sneaking past my filters occasionally. If you have no links inside your post, but merely use the ability to specify a URL with your ID, it will often make it through my spam filter and get posted. Many of these “comments” contain empty platitudes like “Wow, this is a great post, I’m bookmarking your site for later.” Who are they kidding? It’s annoying to have to read this kind of banal crap, whose only purpose is to send you to some overseas pharmacy where you can get drugs for that “special part of the male anatomy”.

Bleh! Comment spammers are going to a huge amount of effort to annoy us all. Can’t we all just rally with pitchforks and make the world a better place?

I now return you to your regularly scheduled morning.

Gutenberg Gem: The Evolution of Man Scientifically Disproved by William A. Williams

Well, “gem” is perhaps not the right term. Perhaps I should start a new category: Gutenberg Coal.

I’ve been interested in (and have from time to time posted here about) the seemingly never ending conflict between science and creationism. I found this book to be an interesting glimpse 80 years into the past, to see how people argued against evolution even before the famous Scopes trial.

The Evolution of Man Scientifically Disproved by William A. Williams – Project Gutenberg

It contains gems like this exchange:

The population of the world, based upon the Berlin census reports of 1922, was found to be 1,804,187,000. The human race must double itself 30.75 times to make this number. This result may be approximately ascertained by the following computations:

At the beginning of the first period of doubling there would just be two human beings; the second, 4; the third, 8; the fourth, 16; the tenth, 1024; the twentieth 1,048,576, the thirtieth, 1,073,741,824; and the thirty-first, 2,147,483,648. In other words, if we raise two to the thirtieth power, we have 1,073,741,824; or to the thirty-first power, 2,147,483,648 Therefore, it is evident even to the school boy, that, to have the present population of the globe, the net population must be doubled more than thirty times and less than thirty-one times. By logarithms, we find it to be 30.75 times. After all allowances are made for natural deaths, wars, catastrophes, and losses of all kinds, if the human race would double its numbers 30.75 times, we would have the present population of the globe.

Now, according to the chronology of Hales, based on the Septuagint text, 5077 years have elapsed since the flood, and 5177 years since the ancestors of mankind numbered only two, Noah and his wife. By dividing 5177 by 30.75, we find it requires an average of 168.3 years for the human race to double its numbers, in order to make the present population. This is a reasonable average length of time.

Can you spot the problem? Let’s imagine that he’s right. 5077 years ago, there was only Noah and his wife. It takes them 168.3 years to produce two children, and double there numbers. If we allow for 3000 years to pass, bringing us roughly up to 2000 years ago, around the time of Christ, the world population would have almost 18 doublings, bringing the total world population to about 260,000. Worldwide.

Inappropriate extrapolation is one of the silly errors that creationists use to argue using mathematics. But as they say, creationists use mathematics like a drunk uses a lamp post: for support, rather than illumination.

Read the entire thing, it’s really quite astounding.

Intel Stammers Apology to Customers: “They aren’t dull!”

Apple’s current TV ads apparently are not all that popular with Intel’s other customers. The voiceover apparently claims that Intel’s processors have been “trapped inside PCs — dull, little boxes, dutifully performing dull little tasks.”

If suppose if you are a PC maker, that has to sting a little bit. But let’s be fair, most of what Intel puts out is slapped in a cheap beige box and spends most of its life trying to run while carrying the bloat of Windows XP on its back. The criticism isn’t entirely unfair.

When freed from the shackles of trying to load Microsoft products and the history of a zillion bad decisions, Intel’s chips (and, frankly, AMD’s as well) are free to do what they really are designed to. From the quoted article:

…if Intel’s work with Apple inspires some PC makers to think more creatively, Intel wouldn’t complain.

Indeed. If you are a manufacturer who used Intel chips, I’d say it’s not a time to get mad: it’s time to get creative. Apple certainly will be.

Intel: Our other customers aren’t boring | News.blog | CNET News.com

[tags]Intel, Apple, Microsoft, Advertising[/tags]

Photo Fraud on Survivor!

Last night I watched the final episode of Survivor Guatamala (yeah, I know, reality television is the opiate of the masses, so sue me) and I spotted something that made me stop the TiVo, rewind, and note something to my wife.

The particular video shot is one of their classic “night vision” pictures of one of the Mayan pyramids, obviously meant to be a timelapse, with the Milky Way whizzing around and a lovely full moon. But there is one big problem:

The full moon and the stars weren’t moving in the same direction!.

The moon will visibly move against the background of stars since the moon take about an hour longer to go around the earth each day than the stars do, but the difference is pretty small (about 45 in rate) so in a shot like this, the moon will mostly look like it tracks the background stars. This shot was assembled from at least two different and possibly three different video layers.

For shame!

Pat Robertson Displays his Christianity, again…

The people of Dover, Pennsylvania recently had an election for their local schoolboard. In a fairly close election, every member of the school board that supported the addition of intelligent design to their school curriculum was voted out, all eight of them. What did Pat Robertson have to say about the free exercise of people’s rights to hold elections?

I’d like to say to the good citizens of Dover. If there is a disaster in your area, don’t turn to God, you just rejected Him from your city. And don’t wonder why He hasn’t helped you when problems begin, if they begin. I’m not saying they will, but if they do, just remember, you just voted God out of your city. And if that’s the case, don’t ask for His help because he might not be there.”

I… just… am speechless.

Windows Live!

Microsoft announced “Windows Live” yesterday. What is it? Well, that seems to be the question of the hour. Apparently lots of Robert Scoble’s readers are asking the very same question. I’m not sure how live.com differs from the other beta portal project that Microsoft was touting. To me, they both seem like crude Ajax-ware which duplicate functionality done better elsewhere.

What it seems to really be about is Microsoft’s rush to convert their business model for web services into a Google one: support yourself by advertising. I’ll probably make that the subject of a future podcast rant (I’m not thrilled of the world where I need to view ads everytime I wish to use my computer. I pay lots of money to buy DVDs and Tivos just because the 20 minutes an hour that broadcast television steals from me annoys me… but I digresss).

But what’s really fascinating about the posting that I linked are all the comments. Microsoft, are you listening? You are doing a terrible job of explaining yourself. You are holding press conferences announcing products which aren’t ready, and then telling people that “don’t get it” that they should be patient. “The really cool stuff is coming.” I can’t think of a company that does product announcements worse than Microsoft.

Look at these comments:

  • It does seem typical though “We are Microsoft, we are all smart, we know better than you do. If you can’t see why you should buy our stuff, you’re just stupid.”
  • You enbarrased yourself with this *launch* (without actually launching anything)
  • What’s the difference between this and start.com?
  • It’s … err… a new PLATFORM! that’s it!!! It’s the new Web DNA!
  • I thought this Joe Wilcox post would explain what Live was, but it looks like he’s wondering what the rest of us are: what the hell is Live?

I think there are some positive signs in this announcement. It seems to be saying that they will support multiple platforms, including Firefox. But think about it: for other companies, this decision was made a long time ago. The marketplace made that decision. Firefox is winning marketshare, and if you want to reach the maximum number of users, even ones that run Microsoft Windows products, you need to support Firefox. It’s just a given for other companies. They don’t spend a lot of time considering not doing it, because they don’t want to piss off the significant minority of people who’ve moved from IE to Firefox.

Microsoft, in the meantime, is left with what they perceive to be as a dilemma. At the risk of presenting an overly dramatic metaphor, it’s like those idiots who are trying to keep young women from being immunized against the the virus that causes cervical cancer. They think “oh, gee, without the threat of cancer, young women will go out and have sex.” Of course, women will die as result of their indignation, but you have to crack a few eggs…

Microsoft in the meantime has been slow to deploy technologies which are browser agnostic because of the fear that without browser lock-in, nobody will buy their stuff. But what they are trying to do is to get their customers to serve them. They want their customers to say, “we need this product, and I’m running Microsoft stuff, so you should use Microsoft stuff too, for that extra baked in flavor!” That would work if Microsoft was the only game in town, but other companies (Google, Yahoo!…) are delivering better stuff for the customer, on platforms which are at least as attractive for the consumer. Microsoft is slowly awakening to the notion that lock-in is a poor strategy, and has been for a while. That they are only figuring this out in 2006 is somewhat surprising, given that pretty much everyone else has already figured it out.

Addendum: Oh dear lord. Twice in one day. More “launches” that actually don’t launch anything..

Why Microsoft Sucks for Programmers

Charles Petzold has some interesting thoughts in his essay Does Visual Studio Rot the Mind?, but for me, it’s really this which illustrates why Microsoft is sapping all the allure out of programming:

Today we are ready for the official release of the .NET Framework 2.0. Tabulating only MSCORLIB.DLL and those assemblies that begin with word System, we have over 5,000 public classes that include over 45,000 public methods and 15,000 public properties, not counting those methods and properties that are inherited and not overridden. A book that simply listed the names, return values, and arguments of these methods and properties, one per line, would be about a thousand pages long.

If you wrote each of those 60,000 properties and methods on a 3-by-5 index card with a little description of what it did, you%u2019d have a stack that totaled 40 feet.7 These 60,000 cards, laid out end to end %u2014 the five inch end, not the three inch end %u2014 can encircle Central Park (almost), and I hear this will actually be a public art project next summer.

Whenever I try to use Visual Studio and code any significant applications for Microsoft, I’m always shocked by all the bits of code that seem to have to be constructed which have nothing to do with my application whatsoever. Such programs are what I refer to as “densely annoying” and “sparsely intelligent”. It is actually an intensely bad thing that Microsoft has this “friendly” environment to write all this code for you, to try to remind you of the sixteenth argument to version two of some class that will probably be obsoleted with the next release of Windows: it prevents them from having to actually think about just how poorly the overall system is designed and actually going through the labor of fixing it. Streamlining it. Making it something that a programmer doesn’t get a headache from just thinking about, and muscle aches from carrying the books and manuals around.

Oh, and just in case you Linux guys get to feeling smug, you are marching down this path too. Microsoft just has a decade or so head start in becoming a bloated behemoth. There may be hope for you, but only if you turn back from the dark side now.

Thanks Dan for bringing this one to my attention.

Paul Phillips on evolution vs. ID

I began reading Paul Phillips’ blog when Wil Wheaton mentioned that he was a poker player and a regular blogger. I’ve since found out that he seems to share one of my hot button topics: “evolution versus creationism intelligent design”.

Intelligent design is creationism dressed for court: no more, no less. It attempts to circumvent the findings of the Supreme Court in cases such as Edwards v. Aguillard and to gut the so-called Lemon test, established in the case of Lemon v. Kurtzman. This would be clear, even without the published admissions of some of its principal proponents. Intelligent design is merely an attempt to blur the separation between church and state, and the line between science and religion.

The fact that it seems to enjoy some measure of success should give us all pause.

It’s worth reviewing the decision in Edwards v. Aguillard, including audio of the oral arguments before the court.