Is there such a thing as “success by brute force”?

I’m guessing that mentally healthy people seek success. However, many of us fail. Should we give up trying? As a geek, I love to explore theory and engage in thought experiments. Here’s one: can success be attained through brute force? I think so, yes.

In any scenario where the chance has a non-zero probability of occurring, it must be attainable through brute force. It’s this fact that makes books like Malcolm Gladwell’s “Blink” (buy it on Amazon.com) valuable–it realizes the truth in the statement “success and failure come from action, nothing comes from inaction.” Scott Adams suggests choosing actions for Complicated Decisions by not trying to choose the right decision but at least the knowably rational one. Again, this helps avoid analysis paralysis which often leads to inaction. You’re almost no longer interested in making the decision that leads to success but rather just making some rational decision that leads to learning, which iteratively enables you to make different rational decisions in the future.

The key is to avoid insanity (“repeating the same action expecting different results”). Brute force success doesn’t come from repeating the same decisions or actions–it depends on trying every possible input until the desired output occurs. Just as theoretically unbreakable encryption must be defeatable through brute force in theory (although, in practice it could be infeasibe due to time, cost or other constraints), success must be achievable by brute force, in theory.

Of course, as a pragmatist, I have to ask myself, “How does this theory help us, in practice?” I believe the answer lies in the necessary traits involved in achieving brute force success: rationality, tenacity, resiliency and skepticism. Rationality and skepticism are critical because they will prevent insanity and yield the best next actions. Tenacity and resiliency are critical because they are necessary in order to sustain the process. Does this mean that everyone who exhibits these traits will eventually succeed? No, because there are other practical limits to brute force (time, cost, etc.) as well. But, I’m guessing, these people are statistically more likely to succeed where others have failed in cases where the brute force approach is the optimal path to success.

What then does this mean for people who lack these traits? Are these innate or genetic, are they environmentally formed, or can they be taught and learned? I have no answer, but my instinct tells me they are indeed learned but through both genetics and environment, some learn them as a side-effect of other processes. (I’d appreciate citations of any affirming or contradicting scientific evidence, if you have it.)

What do you think? Can some successes be achieved through simple brute force methods? Could all successes fundamentally be the product of what is essentially a brute force method, even if externally they appear to be skill-based or even luck-based successes? When you have succeeded at something, to what do you generally attribute your ability to succeed? How do you isolate and identify your failures in order to avoid making them again?

Go ahead and share your thoughts in the comments below!

Tags:
,
,
,
,
,
,
,

Have any repair tips for a Dell C840 laptop screen?

I’ve had a Dell Latitude C840 for the past 4+ years now. It’s big and heavy, but I absolutely love the 15″ UXGA display at 1600×1200 resolution. It’s crisp and readable and bright. Until, of course, this past Thanksgiving weekend, when it went dead.

At first, I didn’t know what broke and in opening up the laptop, I managed to break a few of the delicate traces on the flex cable that connects the display to the video card on the laptop. A quick search of eBay turned up a replacement for $15. That arrived yesterday and replacing it was easy. Reconnecting the display, I discovered that there was an image on the LCD, but it was completely dim–no backlight, at all. In a sense, this is good news: an entirely new display assembly goes for $150-$200 on eBay, but the display itself is okay. The problem could either be in the CCFL (lamp) or in the power inverter.

How is this good news? The specific display I have is the Samsung LTN150U2-L02, and according to lcdpart.com, the suitable replacement CCFL is model MS20305, $9.99 (plus $9.99 shipping). Of course, the lamp could be just fine and it could be the backlight inverter that’s busted, which could be replaced by Ambit J07.027.P.00 for $39.99 (plus $9.99 shipping). (Note: The inverter that’s currently on the display is labeled “AMBIT REV:2 K02I051.00” and “LTN150U2-B”.) Both amount to less than the replacement of the display assembly, of course.

The downside here is that there’s no easy way (that I can think of) to test whether it’s the CCFL or the inverter that’s gone bad–or, worst case, both. Laptop Freak had a similar idea, trying to test the inverter with a multimeter, but the output from an inverter is typically in the range of 1,500 VAC which is both dangerous and outside the range of the average multimeter. The folks at Endicott Research Group published a great whitepaper on backlight inverters: Design Issues in the Selection of Backlight Inverters (PDF). In it, they explain how CCF’s work and how they test backlight inverters and how sensitive the tolerances are for proper operation. I’m guessing it’ll be cheaper to buy a replacement CCFL and hook it up to the inverter to see if it works than it would be to fiddle with the inverter and risk breaking it in the process.

Throughout all of this, I kept trying to think of people I knew who were hardware geeks who could help me troubleshoot this and I realized: as many online communities that I’m a part of and as many people I know, I don’t know any hardcore hardware geeks. I mean, I know plenty of folks who fiddle around and delve deeper than your average “I’ll just buy it at (insert electronics chain store name)” consumer, but that’s about it. In the upcoming year, I think I know what kind of new friends I want to make. :-)

Tags:
,
,
,
,

Scribd, a startup based on Macromedia FlashPaper 2

Scribd (beta) screenshot, 2006-11-02

Yesterday, Trip Adler sent me an email pimping his new startup, Scribd (currently in private beta). It’s a small startup started by him and Jared Friedman. According to their FAQ:

Scribd lets you share and discover documents online. There are all sorts of features that make it easy and fun to publish, convert, embed, read, and do many other things with documents.

After playing with the site, I have to say they’ve taken a very simple idea and executed it well. They employ a very clean and simple web design and keep the core value (publishing content) front and center. The site navigation is incredibly simple and effective (all text links, practically no use of embedded images). The only embedding that goes on is the actual content–the works that are published–using Macromedia FlashPaper 2.

In a nutshell, I’d describe Scribd as a web-based service for republishing your content using FlashPaper and sharing it with an online community (other Scribd users), as well as being able to embed the Scribd-hosted version in your own pages.

Trip and Jared have already addressed a lot of must-do features: easy licensing of content using Creative Commons licenses, categorization within their taxonomy, user ratings, comments on content, content view tracking statistics.

They also link off to Print(fu) to offer printing of the content, which could allow Scribd users to self-publish works in e-book (or, in this case, FlashPaper) format then allow consumers to request printed copies at their own expense. It’s a great entry into the custom publishing space–if they can monetize on this, it could be big, especially if they can “pay through” the commissions from Print(fu) back to the original content publisher. In other words: if I publish my manuscript at Scribd and someone prints it at Print(fu), I should get paid a percentage of the take, since it was my content. Also, if Scribd allowed me to upload “private” content and allowed me to opt to put it behind a paywall, that could open up another business: e-book distribution. I could then sell my manuscripts as e-books through Scribd, too. Scribd is already handling the user authentication–if they add the payment processing and authorization, they could do this.

Someone, invest in, buy or hire these guys–quick! They’re bright, they’ve got a great idea and they’ve executed it really well! I can’t wait to see where they take this idea, but the possibilities are wide open.

Tags:
,
,
,
,
,
,

Greylisting, another battle in the “war on spam”

After much procrastination, I finally got around to making another improvement in my mail server setup: I’ve implemented greylisting.

“Greylisting” takes advantage of the reliable characteristics of a properly implemented mail transfer agent (MTA) and the and the unreliable nature of spam mail delivery, which typically uses zombie computers to send spam. In a nutshell, you authorize a node on the Internet to deliver mail to your mail server by maintaining a greylist. (A “whitelist” is a list of known good nodes, and a “blacklist” is a list of known bad nodes. A “greylist” tracks those which are not known to be either good nor bad.) When a node on the Internet that’s unknown to you sends you mail, you gently refuse to accept it with a 400-level (or “4xx”) response, which indicates a “temporary failure”, while adding information about the delivery attempt to a temporary list. Legitimate mail servers should attempt to redeliver the message, at which time, you will match them up to the entry in your temporary list to see that they previously tried to deliver this message to you. At this point, you’ll add that node to your “greylist” and accept the message as normal, as well as any future messages from this node.

How does this cut down on spam? Spammers employ “zombie computers”–computers they have gained control over through malware and viruses–and use them to send spam on their behalf. At the moment, these zombie computers typically do not perform reliable delivery of spam: if the destination server rejects the message, it doesn’t care. So, on the first connection from any single zombie computer, your greylist-enabled mail server will respond with a temporary failure and refuse to accept the spammer’s email. The zombie computer won’t care and won’t attempt to redeliver the message: effectively, you’ve avoided receiving that spam.

Can spammers get around this? Of course, they’ll adapt and develop more robust spam delivery systems in due time. But, until then, this is certainly a good way of cutting down on the amount of spam your mail server will have to process.

I can hear you asking, “If this is such a good technique, why doesn’t everyone just implement it? What’s the catch?” Well, the catch is, some legitimate mail can also be blocked through greylisting. How, if legitimate mailers use robust delivery systems that will redeliver mail after a temporary failure? Well, that’s exactly the problem: some legitimate mail is sent using systems that won’t attempt to redeliver mail after a temporary failure. Most commonly, these are bulk mailers (which, eerily, is essentially what a spammer is doing, anyway)–newsletters by online retailers, direct email marketing campaigns, etc. If these folks are using systems that don’t perform reliable redelivery, their messages will also get silently dropped. Of course, these folks will also have to adjust and adapt, just as their spammer counterparts will.

So, if you’re sending mail to me (or anyone whose mail is handled by my server) and it seems the mail isn’t getting through, perhaps you’re running into an issue with my greylisting implementation. Get in touch with me another way (leave a comment on this blog, call me if you have my number, etc.) and I’ll work with you to add you to my whitelist, so your mail will get through.

What do you think of greylisting? Is it a reasonable measure to take against bulk mailing spammers? Is the possibility of not receiving mail from some senders a real problem? What anti-spam measures have you implemented? How well is it working out for you?

Tags:
,
,

Friday, October 13, 2006

Happy Friday the 13th, everyone! Stay away from black cats and ladders, if you’re superstitious like that.

Yahoo! BBAuth for blog comment authentication

In case you missed it, Yahoo! released their Yahoo! Browser-Based Authentication (BBAuth) to the world to use. For web properties that integrate it, it provides a Single Sign-On (SSO) facility so you can log into other sites–like this blog–using your existing Yahoo! username, instead of creating a new account here.

I’ve gone ahead and spent the hour to integrate it into my blog comments system, so now you can authenticate using your Yahoo! ID and leave comments here.

One caveat for early integrators: Yahoo! BBAuth expects the “sig” signature to be all lowercase. If your MD5 function returns the hash as an uppercase hexadecimal value, Yahoo! BBAuth will complain in a non-obvious way. I discovered this through a bit of trial and error–mostly error, and head-scratching. I eventually squashed my MD5 hash to lowercase and everything worked great.

Here’s just another attempt on my part to lower the bar to make it easier for everyone to leave comments. :-)

Tags:
,
,
,

Stardate 60728.4, Trekkies leave Mom’s basement for the day

Captain’s log, Stardate 60728.4 (that’s September 23, 2006, at 10:00 AM in terrestrial time, you puny Earthling): A bunch of Trekkies descended on the Morris County Library to celebrate the 40th Anniversary of Star Trek, bringing their poor hygiene and ridiculous costumes with them.

William Shatner said it best: Get a life.

You know … move out of your mother’s basement. Stop wearing those goofy Lycra jumpsuits. Stop reaching out at your friends gasping “Khan …” The phrase “First Contact” should describe that epic moment when, some day, you might get laid–not the regular re-enactment of your friend wearing Latex pointy ears pretending to be a Vulcan as you “test warp technology.”

Thank you. This has been a public service announcement.

(Here’s an article in the Daily Record by Rob Seman about the event.)

Tags:
,

Debian printing problem? “DMA write timed out”? Try this …

Last weekend, I had the pleasure of two power outages, one in the early morning and one very late at night. (Damn the wholly unreliable electric utility company in this town.) I woke up the next morning to find one of my boxes had suffered physical disk failure–that lovely grinding sound of a disk head skipping across the surface of the platter. Luckily, the last time something like this happened, I moved everything to a RAID-1 (mirrored) setup as well as performing daily snapshot backups. Everything, except of course, the root filesystem. That remained on a crappy little 1 GB drive and snapshot backups were taken of that daily, too. Of course, the drive that died? The root filesystem.

No problem, I thought. I’ll just yank the drive, replace it with a spare sitting on my desk, restore the backup using a bootable Linux rescue CD, and be back up and running in no time. Well, you guessed it: I restored the root filesystem, wrote the master boot record (MBR) with lilo using the restored lilo.conf … rebooted … and, it wouldn’t boot properly. When trying to boot the initrd, it crapped out with a kernel panic. I futzed with this for a good many hours, trying all sorts of stupidity to try and get it to boot. Finally, I gave up: I downloaded the latest Debian netinst CD image in the “testing” tree and did a fresh install of Debian “etch” beta 3 onto this new disk.

The install went smoothly even though it took a good long time (I only have a 384K SDSL) to install over the net. Once I got the minimal install booting, I started the tedious process of manually restoring files out of the root filesystem by hand. Eventually, I got enough restored and working so that DNS, mail and web services were back online. However, one place I ran into a snag was printing. I couldn’t get LPRng to spool anything to /dev/lp0. This used to work … so, what changed?

Previously, I ran kernels that I configured and compiled myself. This time, I decided to try out a Debian kernel package. The more packages I can run off-the-shelf, the easier it is for me to keep current. So, the symptom of my printing problems looked like this:

$ echo "test" >/dev/lp0

It would just hang there. Looking at /var/log/kern.log, I’d see:

DMA write timed out
parport0: BUSY timeout (1) in compat_write_block_pio

Well, this was annoying. After much Googling and searching various bug databases, it seemed that this is a frequently asked question with very few decent answers. Looking at Documentation/parport.txt in the Linux kernel source, it recommends disabling CONFIG_PARPORT_PC_FIFO (which it admits is not a module option but should be) as a step in troubleshooting problems. Looking at the kernel .config for my previous, hand-build kernel, I notice that I had this option disabled. Looking at the Debian kernel image’s .config, I notice they build the kernel with this option enabled.

After disabling CONFIG_PARPORT_PC_FIFO and recompiling my kernel modules, I installed the new parport_pc.ko module and loaded it. As you would have guessed, the printer started working with the newly compiled module. This is what the dmesg looked like with the Debian modules:

pnp: Device 00:09 activated.
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378 (0x778), irq 7, dma 3 [PCSPP,TRISTATE,COMPAT,EPP,ECP,DMA]
parport0: Printer, Canon BJC-8200
lp0: using parport0 (interrupt-driven).

Here is what it looks like after disabling CONFIG_PARPORT_PC_FIFO:

pnp: Device 00:09 activated.
parport: PnPBIOS parport detected.
parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE,EPP]
parport0: Printer, Canon BJC-8200
lp0: using parport0 (interrupt-driven).

The COMPAT, ECP and DMA are gone, but at least my printer can print again!

I’ve gone and submitted Bug #388309 in Debian BTS. Hopefully, this information will help others with their printing problems, or at least get someone to tell me how else I could fix mine.

Tags:
,
,
,
,
,

sparkle.gif, the <blink> tag of the modern web

So, I mentioned to some folks the other day about fun you can have with animated GIFs like sparkle.gif and CSS styling of elements. It’s an effect whose obnoxiousness is tantamount to the <blink> tag from the early days of the web. (Combine that with the <marquee> tag and you’ve got all the ingredients for “web n00b” goodness.)

Here’s an example of how to use the sparkle.gif to decorate text:

ZOMG, this is SO SHINY!!!@#!

You can stop convulsing now. I’m sure there’s a special place reserved in Hell for me, now.

Tags: , , , ,

Joe asks, “Why go to college?”

Joe Manna asks, “Why or why not go to college?” There’s plenty of answers to this question, but I think most of the common ones miss the mark.

Joe, when I first started college, I felt similarly to what you expressed. I was frustrated by a very uninspiring required core curriculum. However, as I continued (and nearly dropped out), I eventually figured out what I had been missing.

College is just another concentration of people, so immediate access to a wide variety of minds was readily accessible. There were a large number of average folks–no surprise–but, there was also a good number of very bright people. A college concentrates these people into a particular area, so it increases your odds of meeting them, as opposed to meeting them randomly on the job, or out in the rest of the world. There are people who I met at college who I still periodically keep in touch with today and my life has been made better for it. I don’t know if I’d have met those same people, otherwise.

Another benefit of having access to these people is, when you know what you want to learn, you can hunt down the right people who really know their stuff. I learned more in a 30 minute conversation with the right person than what I probably would have learned spending a week reading a book, or spending 3 months on the job, “doing it.” Of course, there are some skills where you only improve at through practice and there’s no substitute for hands-on experience, but there’s also a whole realm of knowledge that is very time-consuming to deduce experimentally, but being able to ask the right questions can help you understand it very quickly.

Of course, this doesn’t mean you can’t be successful if you don’t go to college. But, if you take full advantage of it, I definitely think it can give you an “edge” over your competition–those who don’t. Naturally, the opposite is true, too: just because you go to college doesn’t mean you’ll gain any real benefit from it. Your education is an active experience, not a passive one. You don’t benefit from just going and being there. It’s what you do when you’re there that makes the difference.

I’m sure everyone has their own reasons for or against going to college. I’d like to hear about them … share them with me in the comments section below. Thanks!

Tags:
,