Sunday, November 28, 2010

Sunday, November 21, 2010

IT Meritocracy

Had to look up the word meritocracy, just so I didn't look stupid:

* a form of social system in which power goes to those with superior intellects
* the belief that rulers should be chosen for their superior abilities and not because of their wealth or birth
wordnetweb.princeton.edu/perl/webwn

* a system that rewards an individual based on their own talent and ability.
www.deanza.edu/faculty/leeethan/glossary.html

* A system in which the talented are chosen and moved ahead on the basis of their achievement.
www.talentrecessions.com/terminologycontent.html

IT is very meritocratic. I love that. It's partially what drew me to IT. It has allowed me, without formal education, to gain acceptance and and make a good living.

Let's face it though, IT, generally speaking, is the Wild West. It is no where near as established as Accounting, or Architecture, or Engineering...there is always more than one way to do a particular activity. Not so much in those other professions.

They have history behind the way things are done. It was proven long ago, in many instances, that doing something a particular way is the best way to do it. Those professions today stand on the shoulders of giants.

We really don't have that. Our industry is just too young.

I think this is one of the reasons I enjoy the DBA world, things are provable. DBAs can prove why something is better this was versus the other way. Developers have a harder time. Like I said, there is more than one way to do things.

Technology.
Which one? PL/SQL and put it in the database? (a resounding yes from me). What about Java and moving the business rules to the middle tier? Or Ruby? Or any other language for that matter?

Those decisions are mostly based on a developers comfort zone, or what's hot at the moment. It's not provable though, that one is better than the other. We've had the discussion here on multiple occasions (here, here, here, here...and a bunch of other ones)

How does this relate to meritocracy?
Good question. I would say that most decisions to go a certain direction are based on experience. Experience = merit, in the world of common sense anyway. IT is different though, experience does not equal merit. Just because you have worked in IT for 30 years, that does not make you an expert in a given technology. Sure, for the very rare person, that 30 years is quite valuable...they have seen it all and done it all...and they have learned along the way. I can usually spot those types easily, as there is a sort of calm to them, humility. I tend to gravitate towards those people (which is why I love OOW and other conferences so much, there are a lot of super smart people in close proximity).

I'm not perfect of course. I can remember an incident a couple of years ago where I called a colleague and friend, complicated. In fact, he wasn't, I just didn't know what he was doing. I learned quite a lot from that gentlemen.

How do you tell who is who?
Is it the person like me who isn't afraid to say "I don't know." Or is the person who says, unflinchingly, that we should use technology A over technology B? I usually have a good idea of who's talking out their ass (including myself, on those occasions where I let my emotions get the better of me)...but how do those not "in the know" know? Managers? Other colleagues who might not be versed in a particular technology? How can they tell?

I tend to end up on the wrong side of that. My manager, or someone else, believes I'm just a mal-content. I am working on that.

The meritocratic IT environment is equally fun and frustrating. I just need to figure out a way to minimize the frustrating part of it.

Thursday, November 18, 2010

katezilla: Rock Star

Of course I think my daughter is a rock star. Don't you?



It's been a little while since I have written about Kate, so here goes.

One of the awesome things about OOW this year...just about everybody I met asked about Kate. How cool is that? You guys are some pretty awesome people.

Kate has been doing well...nothing major to report over the last couple of months, until today.

Today was our follow-up visit with Dr. Sutton of Butterfly Effects. Back in February, we had a rather...poor performance from another doctor. He took our money and didn't really provide us with anything; no direction, no "I don't know", no nothing really. "I don't know" is just fine with us. If there is anything we've learned with Kate...she appears to be quite unique...so "I don't know" is perfectly acceptable. Funny how that ties in with IT isn't it? (no, I'm too lazy to explain that one)

Back to Dr. Sutton and today's visit.

We were aware that Dr. Sutton had already spoken to Kate's teacher and her Speech Therapist, way more than the previous doctor. Good sign. We met her at her office this morning at spent almost 2 hours there. She allowed us to vent (boy, you don't want to get either of us talking about Kate and her history and our plans...we'll go on forever). She took notes. She asked questions that she missed the first time.

The best part (weird, I know), Kate actually got a diagnosis. PDD-NOS. Pervasive Developmental Disorder - Not Otherwise Specified. In essence, Autism.

(Small dig: The first doctor said she didn't have PDD...thanks buddy.)

So what does this mean?

Means lots of goodness.

We now have a diagnosis. Yes, it might seem weird to be happy about something like this...but we've been searching for the longest time. It's...just a relief.

Mentally. Something to hang our hat on. Something to work towards getting her as functional as possible. Hope.

Financially. With no diagnosis, insurance doesn't cover many of her services. By many I mean almost all of them. PT, OT, Speech, her Home Health Aid (new acquisition). That's almost all out of pocket. Not sure why we pay for health insurance...it hasn't done us much good (well...just in regards to Kate).

Kate. Kate will now qualify for more. More services. Better services. More services too. She'll have access to a host of organizations now that will be able to help her (and us).

So we're excited! katezilla, Rock Star!

Wednesday, November 17, 2010

Investing In Me

Today I finally received my new computer. I haven't purchased a desktop in...almost 10 years.

This one definitely goes beyond mere desktop though. I bought a ZU 4110 from ZaReason. It's billed as server class. Here are the specs:

Dual Xeon E5504 Quad-Core 2 GHz
24 GB ECC DDR3-1333 (Memory)
2 1 TB Hard Drives

Pretty sweet huh?

How about this?



Or this?



Probably, but I look at it as an investment in me. As I learn more and more about various Oracle tools, I want to install them and play around with them. If I want to be an architect, I should know and understand how they play together. Pretty easy decision, despite the cost. Oh yeah, that 24 GB RAM? Upgradeable to 96. Plenty of room to grow.

Now I should be able to easily fire up multiple VMs, say, one for the database that isn't underpowered. One for OBIEE on Linux. One for the OBIEE client tools on Windows. Perhaps my own WebLogic instance? Who knows.

Point is, I can play, without fear of hitting the limits of my computer. Of course having limits is good...sometimes. Teaches you how to conserve. No more conserving for me.

I'm now equipped with my own personal test lab...and a sauna to help me lose weight.

One last thing, I'll be offering up slices to help pay the bills. :)

Thursday, November 4, 2010

CyanogenMod 6.0.2 - Email Force Close

This week I managed to brick my phone, then with help unbrick it, and like an ID10T, I messing with it again.

After getting it fixed yesterday, I reinstalled CyanogenMod 6.0.2. Lo and behold, those Email Force Close errors showed up again. Great.

Fortunately I use GMail, so it doesn't really affect me, but it is very annoying.

With a trick I learned yesterday, I decided to see what was going on.

The trick is the Android Debug Bridge, or ADB. Among other things, it allows you to run shell commands on your phone. Since I have had Ubuntu for close to 2 years now, I'm naturally a Linux expert (quit laughing).

The specific command I am talking about is logcat. You plug your phone in, run adb logcat and you can see what's going on...it's a log file.

With it turned on, I went to applications and selected Email.



Sorry! The application Email (process com.android.email) has stopped unexpectedly. Please try again.

I then checked the log output...and what could it be? I'm thinking it's some sort of java error, but after reading more closely...
I/Database(19754): sqlite returned: error code = 1, msg = no such column: accountColor
D/AndroidRuntime(19754): Shutting down VM
W/dalvikvm(19754): threadid=1: thread exiting with uncaught exception (group=0x4001d7e0)
E/AndroidRuntime(19754): FATAL EXCEPTION: main
What's that? Database? Really?

A little further down:
E/AndroidRuntime(19754): java.lang.RuntimeException: Unable to create service 
com.android.exchange.SyncManager: android.database.sqlite.SQLiteException: no such column:
accountColor: , while compiling: SELECT
_id,
displayName,
emailAddress,
syncKey,
syncLookback,
syncInterval,
hostAuthKeyRecv,
hostAuthKeySend,
flags,
isDefault,
compatibilityUuid,
senderName,
ringtoneUri,
protocolVersion,
newMessageCount,
securityFlags,
securitySyncKey,
signature,
accountColor
FROM Account
(formatted for better readability)

So someone forgot to add a column? Nice.

Now I know I can put a database on there, I'll be more likely to write something for it. :)

Wednesday, November 3, 2010

How To (Un)Brick Your htc Incredible

Another Great Customer Service Experience

Following on the heels of me breaking my phone for 2 days, I am now up and running again with the latest CyanogenMod 6.0.2 release.

How did I do it? Was it magic? My mad skillz (magic would be more believable)?

We'll go with none-of-the-above.

Mostly, it was Jake. I think he's my unofficial protector.

Late last night he saw my tweets and did a quick post, How is Geekery Like Bank Robbery?, basically talking about the geekiness of many of us who just can't stop what we're doing.

After a few more updates by me, Jake tweeted Android001 and "copied" me.

Next thing I knew I was in an IRC chatroom called #rootmydroid.

I guess I shouldn't be so amazed any more, but I am. People are just awesome. Going out of their way to help those they do not know, for no pay and lot of gratitude from people like me.

What follows is the transcript of that discussion. Blank lines are another user or off topic comments.
[16:46] == chet [ad414951@gateway/web/freenode/ip.173.65.73.81] has joined #rootmydroid
[16:46] -ChanServ- [#rootmydroid] Welcome to #rootmydroid. If nobody is around, please come back later!
[16:47] <@tur42keys> Hi chet
[16:47] hi! @Android001 asked me to stop by (@oraclenerd)
[16:48] <@tur42keys> yeah, I've been reading :)
[16:48] <@Android001> Hi chet
[16:48] <@Android001> Herr we can help :)
[16:48] lol - well, I hope I haven't completely bricked this thing
[16:49] What information can I provide to help you help me?
[16:49] (I'm fairly technically savy)
[16:49] <@tur42keys> Well I've read this, http://www.oraclenerd.com/2010/11/how-to-brick-your-htc-incredible.html
[16:49] <@tur42keys> So I think I'm up to speed :)
[16:50] <@Android001> Agreed
[16:50] <@tur42keys> Have you tried to unroot using an RUU?
[16:50] Not that I am aware of. I was just getting to that last night when I gave up.
[16:51] <@tur42keys> actually, have you done a 'Wipe data/factory reset' in clockworkmod?
[16:51] == noddy_ [6d9922ca@gateway/web/freenode/ip.109.153.34.202] has joined #rootmydroid
[16:51] <@tur42keys> that usually fixes most FCs
[16:51] <@Android001> Well there are 2 possible solutions so far
[16:52] I've done all manner of Wipe data/Factory Reset, wipe cache, wipe system (didn't care about user data)
[16:52] <@Android001> Hmm
[16:52] <@tur42keys> and it's still FCing?
[16:52] after just installing 6.0.1, it goes to the cmod splash screen where it just gets in an infinite loop
[16:52] <@tur42keys> hmm
[16:53] i have to pull the battery to stop it
[16:53] <@tur42keys> Do you have adb?
[16:53] <@Android001> Shh
[16:53] <@Android001> Shh
[16:53] <@Android001> Sorry
[16:53] I do have adb
[16:53] <@tur42keys> lol
[16:53] <@tur42keys> boot it up, then
[16:53] I thought you were telling @tur42keys to not tell me about adb! :)
[16:53] <@tur42keys> do adb logcat
[16:54] <@dmzda> adb = aweseome
[16:54] <@dmzda> damn
[16:54] <@dmzda> adb = awesome
[16:54] <@tur42keys> hehe
[16:54] <@Android001> chet: no! I'm on my phone was a typo
[16:54] <@Android001> :p
[16:54] logcat: not found
[16:55] <@tur42keys> Is your phone booting up?
[16:55] ah...I'm in recovery...shoudl i just let it go into that splash loop?
[16:55] <@tur42keys> yeah
[16:55] <@Android001> Yes
[16:55] doing that now
[16:56] <@tur42keys> adb lolcat also works :)

[16:57] ooh...that's pretty awesome!

[16:58] <@tur42keys> chet: actually, do adb lolcat *:EW > logcat.txt
[16:58] 10-4

[16:58] <@tur42keys> Then upload the logcat.txt to our dropbox thingy

[17:02] I have 300 KB of logcat, is that enough? (didn't seem to want to end)
[17:03] <@tur42keys> Yeah that's fine

[17:03] <@tur42keys> Pastebin it pls

[17:04] Here's the link: http://pastebin.com/Kh1AYW0n

[17:04] <@tur42keys> Thx chet

[17:08] <@tur42keys> Chet: that's a lot of errors lol

[17:09] yeah, scary...lines 105 to 153 just seems to repeat over and over
[17:10] <@Android001> Ye. It isn't good
[17:10] i'm game for whatever you suggest - this is an expensive paper weight right now

[17:11] <@dmzda> I meant at chet

[17:12] i'm running on ubuntu, just an FYI
[17:13] <@dmzda> Me too :D
[17:13] <@tur42keys> chet: yay :-)
[17:13] all the guides seem to be in windows...for whatever reason, the adb thing worked like a charm
[17:13] <@tur42keys> Yeah
[17:14] <@Android001> chet: excellent, rarely do we get people with enough sense to be running Linux
[17:14] lol
[17:14] <@tur42keys> Yeah
[17:14] i think i'm blushing
[17:14] <@tur42keys> Hehe
[17:15] <@Android001> Lol
Yeah for me!
[17:16] <@dmzda> chet: What have you tried so far?
[17:18] boy...that list is long...just a sec

[17:21] I can write up another post and list the details there - that should give you time to figure out
all my wrong doings
[17:21] <@tur42keys> I can see a few ways forward
[17:22] <@tur42keys> We can unroot via fastboot on command line
[17:23] that would be awesome
[17:23] * Android001 if I kick someone in the next minute its just a test :p
[17:24] <@tur42keys> So you've got fastboot on your computer?
[17:24] if i did would i get the kudos like with ubuntu?

[17:24] <@tur42keys> Hehe yeah chet
[17:24] <@Android001> Lol

[17:29] 6.0.2 doesn't have market, so I found out

[17:29] i do not have fastboot installed on my computer
[17:29] <@tur42keys> chet: it should come with adb
[17:29] ah...checking
[17:30] <@Android001> In same /tools directory
[17:30] i don't see fastboot in that directory

[17:30] <@tur42keys> U got the android sdk?

[17:31] i do have it, but I don't see fastboot in the /tools folder
[17:31] <@tur42keys> Hmm

[17:31] <@Android001> chet: odd..

[17:32] should I redownload the sdk?
[17:32] <@tur42keys> Yeah try chet
[17:32] <@Android001> Sure its not hiding files?
[17:32] noddy: http://wiki.cyanogenmod.com/index.php?title=Gapps#Google_Apps
[17:33] ls -la
[17:33] etcltool then hierarchyviewer
[17:33] <@Android001> chet: make sure show hidden files is checked
[17:33] <@Android001> An easy mistake
[17:34] <@tur42keys> Hmm strange chet
[17:35] <@Android001> Very weird
[17:35] <@tur42keys> I'll get you something with fastboot in
[17:36] <@tur42keys> filefactory.com/file/b3d8bhc/n/Other-Shitz-DesireRoot.zip
[17:36] <@tur42keys> In there

[17:36] <@tur42keys> Called fastboot-linux
[17:39] waiting for download

[17:40] <@Android001> Right I must depart
[17:40] <@Android001> Good luck change
[17:40] <@Android001> chet:
[17:40] <@Android001> Not change :p
[17:40] <@tur42keys> Spell check fail
[17:40] <@Android001> Yup
[17:40] <@Android001> See ya tur42keys
[17:40] <@tur42keys> Byee

[17:42] should i just copy fastboot-linux into my /sdk/tools folder?
[17:42] <@tur42keys> Yeah
[17:43] <@tur42keys> Then rename to fastboot
[17:43] <@tur42keys> And copy that zip file you were trying to flash in hboot earlier too
[17:44] PBG1IMG.zip?
[17:44] <@tur42keys> Yeah
[17:44] <@tur42keys> And rename it to rom.zip
[17:44] where would you like me to put it? on the root of the sdcard?
[17:44] or local, on my 'puter
[17:44] <@tur42keys> In the same folder as fastboot
[17:45] 10-4
[17:45] <@tur42keys> On your computer
[17:45] <@tur42keys> Then boot your phone in fastboot
[17:46] <@tur42keys> Power + back
[17:47] I think I'm ready...I'm at the ClockwordMod boot screen -
HBOOT USB PLUG -> FASTBOOT (highlighted)
[17:47] <@tur42keys> Ok
[17:48] <@tur42keys> Press power
[17:48] ok, FASTBOOT -> BOOTLOADER
[17:48] <@tur42keys> Yeah
[17:48] <@tur42keys> Now on your pc
[17:49] <@tur42keys> fastboot oem rebootRUU
[17:49] <@tur42keys> Sudo, ./ etc
[17:49] <@tur42keys> :-)
[17:49] chet@cdj-laptop:/tools/downgrade_files$ fastboot-linux oem rebootRUU ... OKAY
[17:50] <@tur42keys> What do u see on your phone?
[17:50] OOOHH...the pretty HTC logo that i saw in one of those downgrades!
[17:50] <@tur42keys> Hehe
[17:51] <@tur42keys> Now fastboot flash zip rom.zip
[17:52] "sending 'zip' (142861 KB)...
[17:52] writing 'zip'...
[17:52] <@tur42keys> [INFO] etc :-)
[17:52] FAILED (remote: 90 hboot pre-update! please flush image again immediately)
[17:53] <@tur42keys> Ok
[17:53] <@tur42keys> Run that command again
[17:53] <@tur42keys> fastboot flash zip rom.zip
[17:53] working...
[17:54] * tur42keys crosses fingers
[17:54] (further along)!
[17:55] <@tur42keys> Don't touch your phone btw :-)
[17:55] not touching...pretty green bar across the bottom now
[17:55] <@tur42keys> Coolio

[17:56] sweet!
[17:56] <@tur42keys> And you're done
[17:56] <@tur42keys> fastboot reboot
[17:58] htc Incredible...
[17:58] htc - quietly brilliant
[17:58] verizon wireless...
[17:58] effing awesome sauce!
[17:58] <@AColwill> htc - quietly retarded
[17:58] <@tur42keys> Woop!
[17:58] <@dmzda> YAY
[17:58] <@dmzda> Awesome
[17:59] side question: would you guys mind if I posted this dialogue?
[17:59] <@tur42keys> Nah its fine
[17:59] <@dmzda> No
[17:59] sweet...i have a screen again!

[17:59] <@tur42keys> Publicly logged anyway :-)
[17:59] <@tur42keys> LOL
[17:59] Select your language!
[17:59] all of you are my new heros
[18:00] i owe you multiple beers
[18:00] <@dmzda> chet: Glad it worked out
[18:00] if anyone is near tampa or chicago...
[18:00] thank you all so much...very freaking awesome.
[18:01] <@tur42keys> np :-)
[18:01] <@tur42keys> Gotta go
[18:01] <@dmzda> cya tur42keys
[18:02] <@dmzda> chet: Yay for mention :D
[18:02] == tur42keys [~OnPhone@pdpc/supporter/student/tur42keys] has quit [Quit: Pulser is awesome!
Badgers ftw! Vote :coolbadger:]
[18:02] very much appreciated...thanks again!
So thanks again to Android001 (David), @dmzda and @tur42keys. I owe many, many beers.

How To Brick Your htc Incredible

I've had the pleasure of creating a beautiful little paper weight.

Back at OOW, Jake told me it would take one click to root my phone. I took him at his word. What I failed to gather, was hat he didn't mean one click, he meant "one click." As in some sort of multi-step process that requires me to read stuff. I don't read much. I just take things apart and attempt to put them back together.

Anyway, somehow I talked Anthony, one of Jake's teammates, to go ahead and play with my phone (i.e. root it). He did so while sitting at some bar in San Francisco, giving me wi-fi tethering for the win.

Flash forward to a couple of weeks ago, when I decided to get super fancy and install one of the CyanogenMod ROMs, 6.0.2 to be exact. All went well using ClockworkMod, save for the fact that a certain server was down that didn't allow me to download the Google Apps ROM. Once I got that one, installed it and all seemed to be right in the world.

Until I started to get these android.process.email Force Close (FC) errors. Very annoying.

Guess what I did?

I tried to fix that.

Hence the reason for the post. At this point, I am receiving the following errors through ClockworkMod Recovery while attempting to mount /data: E:Can't mount /dev/block/mmcblk0p1 (file exists). Awesome sauce.

I'm simply trying to downgrade my phone back to stock so I can start all over with this mess. After following the instructions to load the PB1IMG.zip to the root of my sdcard, HBOOT -> BOOTLOADER says it can't find the image, which probably has to do with the inability of the system to mount the above drives before boot.

I'm currently reading A Harrowing Tale of Incredible Rooting as this seems to be the closest to my situation. I'm also reading [SOLVED] internal storage partitions screwed up.

Also, I've managed to access the phone directly using the Android Debug Bridge (ADB). I've even installed Eclipse and the Android plugin that goes along with it (that's not as useful as ADB though). ADP allows you to run shell commands directly on your phone.

Almost forgot, there seem to be quite a few YouTube videos on downgrading your Incredible which I've found very helpful. In particular the ones below.



I'll continue to update this page as I progress (or don't).

The bright side of all this is that I won't be intimidated by creating my first Android application. Seems fairly easy to do (now).

Update: 17:11 EST
I'm now working with @Android001 and others in an IRC chat.

So far, I've produced this awesomely wonderful logcat file.

Update: 18:11 EST
Back up and running!