Can 2011 be the year for personal grid computing?

I just posted a thought as a tweet, but the more I think about it, the more I hope it actually becomes a reality. Here it is:

http://twitter.com/dossy/status/29659038908157953

Sure, I guess this is pie-in-the-sky dreaming, but it makes total sense: combine fast storage with its own dedicated processor for off-loading of data-oriented tasks. 128GB or 256GB of solid-state disk (SSD) is becoming more and more affordable and the form-factor is tiny, rugged, and is energy-efficient. It already uses an industry-standard, high speed (3.0 Gbps) SATA interface. Modern, energy-efficient mobile CPUs like the 1 GHz Snapdragon are readily available.

How much additional engineering would it require to produce a SSD coupled with such a CPU and an API for pushing executables from a host machine down to the SSD which would run them? Even a design as simple as “create a partition on the SSD with a specific partition-type in a size of your choosing, and write binaries that will execute on the local CPU.” You’d write or use a small embedded OS that would run on the CPU, consume and produce data to the SSD volume, which could then be interacted with by a host machine attached to the device.

In a sense, I guess this is what some specialized data warehouse companies have already done, but this would be an economical, off-the-shelf product that individual consumers could use to accelerate data processing for their own personal needs. It would mark the change in the pendulum swing back from “the cloud” to “the personal computer.” It would, basically, usher in another new age of computing.

I’m sure most people who are still trying to wrap their heads around “the cloud” won’t understand why this would be such a dramatic shift, but I know there’s some visionaries out there who will read this and either totally understand, or already are working towards making this idea a reality. I’d like to be part of, and even perhaps have the opportunity to pioneer it. But, it’s not something I can do alone … maybe someone can introduce me to the right people to work with? Who knows … it’s a small world.

But for now, it’s back to work for me …

Disappointing video quality from the at&t Captivate

Totally disappointed by the poor quality of the at&t Captivate’s video recording capability. Here’s a short sample:

Dear Nintendo, bring the sexy back!

You know what? Playing Super Mario Bros., the vintage NES version, on the Wii, really sucks. Why? The slight lag due to the Bluetooth Wiimote just makes the gameplay not feel identical … and it bugs me. :-(

NES console with controller

Nintendo needs to release with a “throwback NES” — a game console contained inside the original NES plastic housing, with every NES title ROM ever released, preloaded on a 64 GB flash chip, with the original connectors and two vintage corded square NES controllers. It would power on, you’d select what game you want to play from a menu, and it would load the ROM off the flash memory. Sure, I’d miss the occasional blowing on the contacts of the cartridge, but this would be such an awesome product.

I’d pay $100, maybe even $150, for it. And I’d play with it a hell of a lot more than I play with the Wii.

In the car, on the bus, revisited

So, my friend Gabrielle asked on Facebook:

Why do people say IN the van or IN the car but ON the bus? Why not IN the bus?

Seriously, this is such an oddity of English, one that must have come up before and certainly have been researched and answered by someone of authority, right?

Well, the best I could find searching the web was this entry in the old Language Log blog at UPenn which describes the phenomenon but doesn’t quite explain it. Not being satisfied by this dead-end, I decided to try and come up with a plausible explanation, myself.

What I came up with was this: “In my opinion, if you can ride while standing on a vehicle, you ride on the vehicle. If you must ride sitting, you sit in the vehicle.” This seems to hold for most of the examples cited in the Language Log entry linked above, except for bikes, which you certainly ride on, but ride while seated.

I guess I’ll have to admit that I’m a closeted wanna-be linguist, because I find languages so interesting. I’d venture to guess that most above-average intelligence native English speakers can naturally choose the correct preposition, either “in” or “on”, when referring to modes of transportation, but how do we do that? It seems natural and innate but there’s no way to codify a rule that describes its correctness? How can that be?

What do you think? Can you see a rule or set of rules that correctly describes the proper preposition in all these situations? Do you have insight into how we can naturally determine which preposition to use, but fail to express concise rules for such selection? Do you even care about this at all?

Let me know in the comments below.

Review: Samsung Captivate on at&t

Samsung Captivate on at&t

Despite the news that RIM was going to finally launch a new touch screen slider phone “any day now,” which did finally launch as the BlackBerry Torch 9800, I decided to give an Android phone a serious look.

After looking at the various options that at&t offers, I decided to give the Samsung Galaxy S-based Captivate (details: Samsung, at&t) a try. I ordered three new phones–one for me, one for my wife, and one for my Dad–at the start of August, and by the 6th, we had our phones in hand.

Right off the bat, I’ll have to admit that I went into this with extremely high expectations. I know, big mistake. To be honest, after dealing with BlackBerry phones for the last two-plus years, I was excited at the prospect of finally getting on a modern platform that didn’t involve using that crappy iPhone OS.

On the surface, it sounds really promising: a fancy 4-inch Super AMOLED display; lightweight at 4.5 ounces; 5MP camera; 512MB of RAM and 16GB internal SDHC; Samsung’s 1GHz ARM Cortex-A8 Hummingbird CPU. With these specs, there’s a whole lot of potential to build something really incredible.

My first disappointment was the “Email” app that ships with Android 2.1 on this phone. Apparently, I’m not alone, so much so that folks have forked the code and released their changes called K-9. However, K-9 still has its warts: I can’t figure out how to copy-and-paste text from an email message, without “replying” to it and copying from the quoted text area, then discarding the reply. Perhaps I’ll “fix” this and submit a patch.

Next, the lack of out-of-the-box wi-fi tethering was disappointing. I went and rooted my Captivate and then installed Android Wi-Fi Tether on it. Having a free, open source “solution” is a great thing, but certainly not for the average, non-technical consumer.

The Calendar app. isn’t too bad, but I sadly discovered a shortcoming in it: there’s no way to duplicate an event. I’m not talking about creating a recurring event, but taking an event and duplicating it. Suppose you have an event, like a doctor’s appointment. You go to your appointment, and at the end, you schedule your follow-up appointment. It’d be really convenient to be able to just copy your current appointment, and paste it on the new date and maybe adjust the time. Can’t do that with the stock Calendar app on the Captivate. You have to just add a new event and enter in all the data. Annoying, to say the least.

Battery life also seems disappointing. The specs claim over 300 hours (over 12 days) of standby time, and over 5 hours of talk time. Given the amount of email and Twitter and Facebook I get, even at an hour interval for refreshes and K-9 mail set up to do IMAP “push,” my battery seems to last around 4 hours before needing a charge. I suspect the 3G data use of the cellular radio uses more juice than voice “talk” time … and the notion of “standby” time is a bit misleading, since when the phone is doing background data tasks, it’s really not “in standby” as its actively using the radio.

Another huge problem is the fact that GPS on the Captivate appears to be totally broken. The TeleNav GPS navigation application is pretty much unusable, with it not being able to track your location properly, which causes it to constantly reroute as it tries to figure out where you are. Supposedly there’s a workaround, where you can manually reconfigure the phone to use Google’s Location Server, which I’ll try soon, but again, this is just poor out-of-the-box experience and “fixing it yourself” isn’t really a satisfactory solution for a non-technical consumer.

On one hand, I wonder if I should have bothered making the switch from BlackBerry to Android, yet. Despite my complaints with RIM and BlackBerry products, the few things they could do, they did reasonably well. But, I’m tired of waiting for RIM to catch up. Maybe the next generation of touch-plus-slider devices following the Torch 9800 could be an option, but for now, I’m going to stick it out with the Captivate, hoping that Android 2.2 brings some fixes, along with community-developed Android functionality closes the gap between “sucks badly” and “usable on a day-to-day basis.”

Using MySQL Meta Data Effectively at ODTUG Kaleidoscope 2010

Since Oracle owns MySQL through its acquisition of Sun, more Oracle conferences are providing MySQL content. This past Oracle Development Tools User Group (ODTUG) Kaleidoscope 2010 conference from June 27 through July 1 had a whole dedicated track for MySQL.

Using MySQL Meta Data Effectively - title slide thumbnail

I was fortunate enough to have the opportunity to speak on MySQL metadata, titled “Using MySQL Meta Data Effectively“. Here’s the abstract:

This presentation discusses what MySQL meta data is available including the ‘mysql’ meta schema, the INFORMATION_SCHEMA (I_S) tables first introduced in MySQL 5.0 and extended in MySQL 5.1, storage engine specific INFORMATION_SCHEMA tables, as well as techniques for writing your own INFORMATION_SCHEMA plug-ins. MySQL also provides a number of SHOW commands that provide easily formatted presentation of MySQL meta data. Dossy Shiobara will also discuss some of the limitations and performance implications of the INFORMATION_SCHEMA.

Paper first page thumbnail

You can download the materials from my session here:

Can mind maps help me?

I guess I’ll let a picture do the talking …

Can mind maps help me?

Am I missing anything?

Ah, brain, you cruel mistress

So, I had grandiose plans of trying to post updates to the blog at least three times a week, every week, for the month of May. Uh, the last update before this one was April 28th. Basically, I blogged more the last week of April than I have the whole month of May, so far. What the heck happened?

I just don’t get it. It’s like my brain is sabotaging my plans! Why is it so hard for me to write things down? I have the same problem with writing documentation at work: I tend to think I write very well, but I just can’t commit words to paper, or in this case, an editing buffer. Tons of words, sentences, ideas, etc., flow through my brain at an incredible pace, but nothing wants to come out. I sit with my hands resting on the keyboard, but every time I move my fingers to type something, my brain stops me and I feel like what would have come out wasn’t the right thing to say.

***

Got a bit of the man-cave (the garage) cleaned up with the help of my Dad, and set up the bench grinder that my wife got me for Father’s day last year. Now I can sharpen all sorts of things, and buff and polish others, with ease — sure, the Dremel “does the job” but this just makes things so much easier and better. The table saw and miter saw are also stored in a better place that makes them easier to take out and use, and my Dad ran a new outlet to the post between the two cave openings (garage doors). All very useful things for DIY projects.

***

On May 7 and 8, I attended PICC’10 in New Brunswick, NJ. It was a really great, fun, two-day conference for IT professionals, primarily focused at system administrators.

The next conference I’m planning to attend is ODTUG Kaleidoscope 2010, June 27 to July 1, down in Washington, DC. I’ll probably only be there for two of the days. If you’re going to be there and want to meet up, let me know!

***

I set up a VMware guest with CentOS 5.4 x86_64 with EPEL 5, as my development sandbox for work, since that’s what they deploy on. It’s actually quite nice, not nearly as bad as I remember Redhat-based distributions being in the past.

***

I’ve set up a copy of CrowdFusion on my laptop, and plan to start working on a few plugins. I’m tired of dealing with crappy CMS‘es like Drupal or Joomla! but CrowdFusion is still quite “beta” in some ways. I figure if I can contribute here and there, the sooner I could propose it seriously in RFP responses and the happier I’d be. I’ll say this: as “beta” as it might be, CrowdFusion 2.0 is already better than Drupal or Joomla! at its core. Once a suitable collection of plugins are developed and tested, and a theme gallery is available and populated with attractive themes, there’ll be no reason to use anything else.

Installing Oracle 11g R2 on Solaris 10 with EMC PowerPath

For anyone who has the misfortune of having to install a multi-node RAC cluster of Oracle 11g R2 on Solaris 10 (in my case, SPARC 64-bit) with an EMC PowerPath, hopefully these notes I’ve collected will come in useful. I certainly suffered plenty trying to get this install to work and web searches didn’t turn up very many useful results at the time.

Make sure you set tunable limits correctly.

Previously, you would edit /etc/system to change tunable parameters then reboot the system, but starting in Solaris 10, there’s a new “projects” system where tunables can be configured. For my installation, the cluster nodes had 16GB of RAM each, so I used these settings (as root):

$ projmod -U oracle -sK "process.max-file-descriptor=(priv,4096,deny)" user.oracle
$ projmod -U oracle -sK "project.max-msg-ids=(priv,256,deny)" user.oracle
$ projmod -U oracle -sK "project.max-sem-ids=(priv,256,deny)" user.oracle
$ projmod -U oracle -sK "project.max-shm-ids=(priv,256,deny)" user.oracle
$ projmod -U oracle -sK "project.max-shm-memory=(priv,16GB,deny)" user.oracle

You can check these settings by inspecting /etc/project and looking for the user.oracle entry.

Also, when running in a RAC configuration, some Oracle processes like crsd run as root, so these will be necessary as well:

$ projmod -sK "project.max-shm-ids=(priv,256,deny)" system
$ projmod -sK "project.max-shm-memory=(priv,16GB,deny)" system

This appears to be a catch-all way of ensuring these settings are in use for all users:

$ projmod -sK "project.max-shm-ids=(priv,256,deny)" default
$ projmod -sK "project.max-shm-memory=(priv,16GB,deny)" default

Failing to set these settings for system and default seems to result in Oracle “ORA-01102: cannot mount database in EXCLUSIVE mode” errors when trying to start a database instance.

NB: There may be circumstances when you still need to configure these tunables in /etc/system. For more information, see Oracle Metalink 435464.1 ENABLING SOLARIS PROJECT SETTINGS FOR CRS.

Failure to create the DATA diskgroup using ASM

I wasted a good 6 hours trying to understand why I kept getting the following error during the 11g R2 grid package install:

ORA-15020: discovered duplicate ASM disk "DATA_0000"

Turns out, I had only set the permissions on /dev/rdsk/emcpower* correctly on one of the nodes in the cluster. The permissions need to be correct on all nodes in the cluster, as the installer operates on all cluster nodes as part of the install – duh! Beware of this gotcha, it can be very frustrating.

WARNING: oradism did not start up correctly.

In diag/rdbms/*/$ORACLE_SID/trace, in the alert_${ORACLE_SID}.log, you may find this message:

WARNING: oradism did not start up correctly.
  Dynamic ISM can not be locked.
----------------------------------------
oradism creation failed for unknown reasons 0 8 105

This is apparently a bug described in Oracle Metalink 374367.1. By default, the Oracle installer installs the file with ownership oracle:oinstall and mode 0750. It needs to be suid root, sgid dba. The solution is to perform the following steps (as root):

$ cd $ORACLE_HOME/bin
$ chown root:dba oradism
$ chmod 6550 oradism

Then, restart the database.

Back up the Enterprise Manager encryption key!

The Enterprise Manager runs on port 1158, using HTTPS. The encryption key is located here:

$ORACLE_HOME/*/sysman/config/emkey.ora

Back this key up, because without it, the Enterprise Manager data can’t be accessed.

ERROR: NMO not setuid-root (Unix-only)

When using Enterprise Manager, you might get the following error message:

ERROR: NMO not setuid-root (Unix-only)

This occurs because the NMO binaries need to be setuid-root, as the error explains. Use these steps to correct the problem:

$ cd $ORACLE_HOME/bin
$ chown root nmb nmhs nmo
$ chmod 6750 nmb nmhs nmo

Have you installed a multi-node RAC cluster using Oracle 11g R2 on Solaris 10? Did you discover any gotchas that prevented a successful installation “out of the box”? Please, share them in the comments below so that others can benefit from our pain!

Make sure all your friends show up in your News Feed

I keep forgetting where this setting is, so I’m going to blog it here so I can find it when I search for it.

If you want to make sure all your friends status updates show up in your Facebook News Feed, you need to make sure you’ve set your threshold high enough. You get to this setting by going to the bottom of your News Feed page and clicking on the Edit Options link:

Facebook News Feed Edit Options link

In the dialog that pops up, there’s a Number of Friends section that controls how many friends’ updates will be included on your News Feed. Set this number to something larger than the number of friends you have, to ensure that all of their updates will be included.

Number of Friends configuration

There you go. If you have more friends than the number that is currently showing, you won’t see all your friends’ updates.