ATTENTION ALL FANS!!! THIS BLOG HAS MOVED!!!
go to: http://www.taotekaching.com

Monday, December 31, 2007

To Catch a Predator...REDUX x 50,000,000

Ok, ringing in the new year with To Catch a Predator.

WTF is up with this show?  Watching it made me develop some serious stomach upset and gas (or also could have been Joey's tuna cassarole).  Watching peoples' lives get destroyed...What fun...

Already read a gazillion blogs for and against the show, for and against the Perverted Justice people, sympathetic to and (actually much less) antagonistic to the thwarted "guests" of the program.

Methinks it's the blatant humiliation of these folks that made me so queasy watching the show.  I essentially participated in their ultimate punishment just by watching the program.  The punishment for their private, nefarious deeds: broadcast them caught in the act on TV.

I feel gross for helping punish them, and feel very sorry for what will be an extremely difficult rebuilding of their lives afterwards (if they don't just end up putting a gun in their mouths).  However, something else is, for lack of a better phrase, completely f___ed up about this:

That cancer-research doctor guy they caught.  They showed him call up his wife and ask her to bring bail money and not to tell their girls.  Yet he was there for a 13 year old girl...

er...

And almost all of them knew they'd done something wrong, and denied they sent pictures of their dongs to these girls...

And of course, the question always comes around to: what if it hadn't been a sting?  What could have happened to those potential girls and bois?  (That "bois" term definitely translates to "...am a sick f__k")  Answer most likely is: something not good.

Ergo, yes they deserved punishment.  Did they deserve TV punishment?  Who knows.  I just wish I hadn't participated in it.  Although I do hope the YouTube link gets me some traffic here...

Next post: maybe some f-ing code for a change, eh?

 

Submit this story to DotNetKicks

Sunday, December 30, 2007

I'm so exciting...

Always looking for interesting things to do, I downloaded the Electric Sheep screensaver a while back and it came in big tonight.

My wife and I just finished watching the "brilliant" week 16 Steelers game and were bored.  I had the laptop on, trying to figure out who the actors were (besides Montana) in the Joe's Diner commercials, and took a long enough break for the screensaver to kick in.  Joey went in, fired up the iPod in the Griffin system with some Pick Floyd, and turned out the lights.  Kept us busy for a good 30 minutes.

How Dark Side of the Moon stays synced to pretty much everything in the universe when you play it is both a little creepy and awe inspiring.

Anyway, check out that Electric Sheep screensaver and turn on the Floyd.

Submit this story to DotNetKicks

Tuesday, December 04, 2007

CMU should be researching these robotics

This is truly amazing...

Submit this story to DotNetKicks

Saturday, September 01, 2007

SAPI and Me

So I've been messing around with SAPI 5.1. Pretty damn cool API, if you ask me.

Very easy to work with it through C#. The documentation is, for some reason, almost all in C++ and like VB 6. It took a little Google-ing to get what I wanted done: suck in a WAV file and transcribe it. Here's the class I wrote for doing it:



using System;
using System.Collections.Generic;
using System.Text;

using SpeechLib;

namespace Transcriber
{
public class TransSpeech
{
public class RecoEventArgs : EventArgs
{
public struct RecoBlock
{
public int index;
public ISpeechRecoResult result;
public RecoBlock(int idx, ISpeechRecoResult rez)
{
this.index = idx;
this.result = rez;
}
// TODO: order by index
}
private RecoBlock _block;
public RecoBlock Block
{
get
{
return _block;
}
}
public RecoEventArgs(int Index, ISpeechRecoResult Result)
{
this._block = new RecoBlock(Index, Result);
}
}
public delegate void RecoEventDelegate(RecoEventArgs args);
public event RecoEventDelegate RecoEvent;
public delegate void RecoFinishedDelegate(EventArgs args);
public event RecoFinishedDelegate RecoFinished;

static int objNumber = 0;

SpInprocRecognizerClass rec;
SpFileStreamClass fs;
SpInProcRecoContext cntxt;
ISpeechRecoGrammar g;

public TransSpeech()
{
rec = new SpInprocRecognizerClass();
fs = new SpFileStreamClass();
cntxt = (SpInProcRecoContext)rec.CreateRecoContext();
cntxt.RetainedAudio = SpeechRetainedAudioOptions.SRAORetainAudio;
cntxt.Recognition += new _ISpeechRecoContextEvents_RecognitionEventHandler(cntxt_Recognition);
cntxt.EndStream += new _ISpeechRecoContextEvents_EndStreamEventHandler(cntxt_EndStream);
g = cntxt.CreateGrammar(1);
g.DictationLoad("", SpeechLoadOption.SLOStatic);
}
~TransSpeech()
{
// TODO: final cleanup here
}
public void ReadInFile(string filename)
{
try
{
objNumber = 0;
// TODO: lock shit?

fs.Open(filename, SpeechStreamFileMode.SSFMOpenForRead, true);
rec.AudioInputStream = fs;
g.DictationSetState(SpeechRuleState.SGDSActive);
}
catch (Exception ex)
{
throw new Exception("TransSpeech error in ReadInFile:", ex);
}
}

void cntxt_EndStream(int StreamNumber, object StreamPosition, bool StreamReleased)
{
g.DictationSetState(SpeechRuleState.SGDSInactive);
g.DictationUnload();
fs.Close();

// TODO: additional cleanup

if (RecoFinished != null)
RecoFinished(new EventArgs());
}
void cntxt_Recognition(int StreamNumber, object StreamPosition, SpeechRecognitionType RecognitionType, ISpeechRecoResult Result)
{
lock (this)
{
objNumber++;

if (RecoEvent != null)
RecoEvent(new RecoEventArgs(objNumber, Result));
#region old code
//string msg = "";
//foreach (ISpeechPhraseElement el in Result.PhraseInfo.Elements)
//{
// msg += el.DisplayText + " ";
//}
//msg += "\r\n";
#endregion
}
}
}
}

Note that you'll need to download the SAPI 5.1 SDK and reference the Speech Library something or other in COM.


Trying it out on just random office conversation gave pretty poor results, but then I ran it on one of Cringley's weekly podcasts and it fared pretty damn well, for having not been trained or anything


Next test plan is to re-feed "good" recognitions back as training (if I can) and see if it improves recognition


NOTE: if anyone gives this code a try, please let me know if you know / have figured out how to take the retained audio from ISpeechRecoResult and send it directly to DirectSound or something, rather than save it in a WAV file. If I get to it before any responses (likely, given my massive following), I'll post the solution


I've been masterdebating lately about whether to pursue advanced studies in Computer Science. Part of me really wants to, in particular to be able to teach as well as just personal ambition / goal. All comments on this are very, very welcome.


Some of my colleagues at work despise this idea, including some with a BS in Computer Science. The common arguments seem to be as follows:



  • None of my BS has helped or come into play here in the "real" development world

  • It's a waste of money, when you can learn all you want from Google, books, and just doing it

  • The worst programmer's I've seen are fresh out of college with a BS in Computer Science

  • You've got a kid on the way...how the hell will you afford it? (this is particularly relevant to me, but thought I'd throw it in as a outlier argument


Your thoughts on this?

Submit this story to DotNetKicks

Saturday, August 25, 2007

Long time, no post...REDUX

So, much has happened.

Uncle Sammy here is gonna be a dad. Although I'm very excited (partially since I thought I'd sterilized myself back when I was a bad bad kitty doing bad bad things), that was a pretty big jolt. The ultrasound or whatever it was was WAY f-ed up, holmes...The little one in there was just kicking back until suddenly it's choppers went ga ga ga, then swung an arm up. I just about crapped myself and fainted.

So since February I've:

  1. Moved from Portland, Oregon to Ambridge, Pennsylvania
  2. Got a contract, then full-time developer job
  3. Got a place in Pittsburgh
  4. Got pregnant
  5. Got married (shotgun-style)
Anyway, this was always meant to be yet another tech-centric blog, but if anybody does actually read this and want to know any more about 1 - 5 above, do a comment and I'll counter-comment, etc. Now, moving along to tech crap:

First of all, I'm salty with Linux right now. I just got a $300 eMachines T5230 and an nVidia 8500 (plus a 22-in widescreen Acer monitor). Very tasty sweet deal. But, I wanted to fully exploit the 64-bit Athlon in there, as well as utilize the hardware virtualization. Thus, I wanted KVM. Now, my awesome apartment / rowhouse I'm renting said they had a networked house. That was semi-false: the contrators or whoever wired the house with cat-5, but just for the phones. So I just went and bought meself a Linksys wifi router and Ralink USB wifi thumbdrive.

Tried Ubuntu. Couldn't install nVidia binaries, nor did the repository ones work. Tried CentOS 5. Fucked up my hard drive partitions. Mandriva, ok this one worked...initially.

Mandriva was the easiest of the three to install. The only initial problem was the xorg.conf file needed to be changed slightly to get KDE up and running. I went in and got rid of any DRI references and changed the device from "nv" to "vesa". Then I could start X. I could not get nVidia's drivers installed properly on there, but went instead into HardDrake, selected the (currently undetected) video card, and used to config tool to select Vendor->nVidia 8300 - 8800. Then it worked like a champ.

The Ralink was pretty damn easy once I decided to ditch WPA as the setup and go to WEP, as wpa-supplicant sucks right now. I downloaded the drivers from Ralink's site and copied rt73.bin into the /lib/firmware directory. ifconfig showed rausb0 online already, so I iwconfig'ed the essid and key to open (or restricted worked, as well). I then went into Control Center->(something)->wifi something and got the prompt for the WEP key. I entered that shiz nit in and BAM! Gots me some internet.

Then came the problem of getting KVM set up. I had already changed my repositories through the Source Media Manager (or whatever it's called), and then did a search for KVM. Nothing. I instead installed GCC 3.4 and changed the symbolic link /usr/bin/gcc to point to 3.4 instead of 4. I downloaded KVM and tried to build. Nope.

At any rate, I'm going to try a last-ditch effort using Fedora. I'd really like to get a BSD virtualization workhorse up, but I'll wait until they get the KVM ported.

To any Linux users who may come across this: please, any suggestions to make my eMachine a virtualization monster would be very, very welcome. One caveat: no vmware. I think it's a great product, but seem to notice way better performance with both Virtual PC and VirtualBox. VirtualBox seemed too unstable last time I used it, but perhaps it's come a long way. Xen I have no idea about.

On the programming front, I've been itching to try F#, particularly with some managed DirectX action, but I don't currently have a project in mind for it. I've also come across Cw (C-Omega) and am a bit curious about this extension. This also seems REAL cool.

So, this entry got rid of the nagging itch to post. I'm hoping to post more frequently again, now that my vacation's over. Bye bye, now.

Submit this story to DotNetKicks

Monday, June 11, 2007

C#, T-SQL, and Me

This entry is really just a rant.

During these last few weeks, I have been kicking bugs' and errors' asses. Anything from downright dumb keystroke errors to more obscure "this data ain't quite right, but I'm not sure exactly what it's supposed to look like" stored procs and embedded queries, to a fierce battle with FTP and configuration files. But the last two days have made me want to drown myself in a bucket of mud and fecal matter.

I have been struggling with a stupid, simple, retarded date-time filter control for our C# admin app. There was a particular record for June 6th at 3:57pm which, whenever I adjusted the time to 3:07pm for that day, it would be filtered out. I have been ripping my farging hair out trying to fix this, to no avail.

Then, while working on some C# code, I was string formatting a datetime object. yyyyMMddHHmm...wait a minute...Went into SQL Books Online and lo and behold, DATEPART uses 'mi' for minutes filtering. I'd been so used to C# formatting, I just didn't think to...DOH!

Now, that was dumb.

What really chaps my hide is why C# datetime formatting can't use 'mi', knowing that 99.8256% of the C# developers out there will be mixing it up with some SQL, too. Little things like that might save the planet billions of hours of debugging time.

Submit this story to DotNetKicks

Sunday, May 27, 2007

Greetings, all...

So, I've been working like a mad man the last month or so. 60+ hours a week on a "project" defined as so only by a study that the project manager and execs refer to as a spec. The group I've been working with complained at a meeting that we'd be much better off on these projects if we actually had REAL specs (implying that ALL projects are coming in only as studies), to which the "project manager" replied that there was too much multitasking going on with him and the other managers to do what we were asking.

Of course, that leaves us piddly developers to basically figure out use cases, functional specifications, the data schema, and (much less) develop and troubleshoot the project, all while getting new "features" and complete changes to the project thrown at us basically every other day. Oh, and about 5 weeks to deliver what was officially to have been started in December aught six. But, that's not really multitasking, just our job.

If we hadn't used netTiers and CodeSmith, we'd have been kaput, methinks in hindsight 20/20. ZedGraph and Microsoft's Smart Client Software Factory also came in very, very, very, very handy.

Needless to say, Uncle Simon here has been a tired boy. Joey finally dragged me out of the house today to go do something (other than lie around the house, which I kinda really wanted to do). We ended up going out to Mt. Lebanon to Little Tokyo for dinner, then Jernigan's Tobacco Village for some smokes and wine. I had to admit to her that it really is nice to get out of the house every now and then. Little Tokyo would be maybe a 6.5 out of 10 for me, a 10 being Takahashi in Portland. Jernigan's was a cool place, but not like what I'd thought it would be. Again, Portland's Rich's Cigar was a fantastic spot. This was really only my first run out, though, investigating some of the city and it's surrounding area.

In my spare time lately (what little I have), I've been doing a couple of things. One is playing around with SQLite and System.Data.SQLite. I like it. I'm going to try getting the netTiers wrapper for it from the CodeSmith site soon, and my little creation I'm making should fly.

Also been reading Dreaming In Code. This is an excellent book so far. This is not a developer's book per se or something specifically for the software engineer, but rather does for software design what The Code Book did for cryptography.

I have also very recently been directed to and become enormously addicted to Puzzle Pirates. I will be playing this again tonight, like I did last night until 2:00am. I wish a very long and horrible curse on the man who introduced me to this (and you know who you are!). He has also gotten me semi-addicted to going to the Google Products page and refreshing the screen to see what the latest searches have been. I showed him the Trends from Google Labs. He immediately rushed back to his desk, put in "sporks" and I think "mullet wigs" and got Portland, OR back as the hottest city for this "trend". Little does he know, I have a titanium spork for camping!

A quick update. Next time I hope a have a link to my SQLite creation, as well as some more pictures from around here in Pittsburgh. This town's pretty cool so far.

Asta,

~simon


Powered by Qumana

Submit this story to DotNetKicks

Monday, May 07, 2007

I Just Titled This Post in May 2009...and Me...

What a time, people...Lemme tell ya...

So first of all, I haven't posted since February. A tiny re-cap: Joey and I trying to move back East. We sold our house in December, right about when I "finished" a .NET project for my (ex-) work that sync'd an old optical reader Scantron machine to a SQL 2005 database server for student evaluations AND created web front-ends for the evaluations and online reporting AND the database design and tuning. Meanwhile I was also trying to move a state contract over from Access to said SQL 2005 server, as well as assist with 10+ (mis-) managed servers and many many classroom labs having new setups seeming to occur on a bi-monthly basis. Also snuck in teaching the 2541 ADO.NET class (this was actually interesting, as the curriculum was new and delivered as Virtual PC files; too large and memory-gobbling for the classroom we were using, so I pulled them out of the VPC images using RIS...mind you, it worked pretty damn well.)

So we actually make it out of the house to my momma's, and as Joey and I are planning our next step, they tell me at (ex-) work that they no longer want the Scantron evaluations thing on the SQL 2005 server using ASP.NET, etc. They want it open source. PHP. MySQL. Linux. And they want it all done before I leave.

Little did they know in my spare time I'd (thank dear God and baby Jesus) been playing around with BSD on Virtual PC. I could get all the basics set up fine (basically just using the ports), but trying to do things like get MonoDevelop and a few others built (much less working) on there taught a LOT. So I told them, Otay, but I can't be dicking around with these classroom loads et al. I was slated to leave in February. That'd give me Christmas break (which I worked solidly on it through) through to beginning February to get it "done" and test it for maybe two weeks before fleeing.

My (ex-) job was a state job working at a community college. I have never met greater slackers in my entire life. These fucking people would literally come in, play Solitaire for 8 hrs and go home. Not a second longer, but perhaps 30 min to a hour shorter. That left anyone who at least enjoyed working on computers stuck with all their work, too. Then, we were a school. You'd think there'd be SOME pride in trying to give our students a quality product. Oh no. There, you were ENTITLED to your job. Bunch of lame fucks...

Sorry about that. Anyway, I barely managed to get all that done, plus handle getting a rental trailer, get my taxes done, purge most of our shite, etc. We went down I-5 to Sacramento, then down I-99, then along I-40 to the Grand Canyon. Grand Canyon = amazing, BTW. Stayed there for three days camping, then continued on I-40 to Tucumcari, New Mexico, where we angled up I-54 through Wichita and connected with I-70, through St. Louis, Indianapolis, and Columbus, to here: Pittsburgh, PA. (I will be editing this area later on to add pictures, etc. so if you're interested in this shtuff, visit my blog often for constant updates [right...]).

I am now living in Pittsburgh, PA on the South Side and working as a Contractor / Developer for an inventory logistics company doing a butt-load of C#. Oh my God am I happy as a clam. No more managing servers while building complex classrooms while doing database, web, and applications development all at the same time with no one prioritizing any of these tasks but myself (and getting in trouble for any way I organized them). Now just coding. Have had to gobble up CodeSmith / NetTiers, NUnit, MS Enterprise Library and Composite UI / Smart Client in the last two and a half weeks, but at least my focus is in one area. Plus a big grin for the extra $$$. As a gift to myself for all this change, I got myself this bad boy:



Working in the public sector's for chumps...


Tags: , , , , , , , , , , , , , ,


Powered by Qumana

Submit this story to DotNetKicks

Sunday, February 11, 2007

Long time no post...

Sorry, all 1 readers. I've had much going on the last two+ months. Just a few of the wonderful things:


  • sold house & moved in with mother (total house population = mom, joey, 3 pugs, 2 german shepards, me, and LOTS of booze to get through all this...)

  • just finished migrating Windows / SQL Server 2005 / .NET multi-tier app I had finished at the end of October to a LAMP solution (fun fun fun...)

  • ulcers...


Revelations I'd like to share from all this:
I am a Linux convert now. This does NOT mean I am one of those losers who goes around calling Microsoft M$ and all that. I still love my XP + VS2005 for development, but this works wonderfully within VMWare on my linux install. I'd been using CentOS for the project at work, and had it all set up on my Toshiba Satellite P25-520 (b'yatch) working gravy, until I just downloaded and immediately installed PCLinuxOS 2007. OMFG, so so cool.

Eclipse is fantastic, and I'm going to start doing MUCH more development in Java because of it. Eclipse does NOT beat Visual Studio 2005 for me yet, BUT before I am flamed like a mother for this statement, I figure here's why: I haven't been doing development in Java, but C#. That's, I think, 'nuff said. Eclipse was fine for the PHP work, and I love the Web Services designer in there. So, although I am still a huge fan of VS, I readily and humbly admit that I simply do not have enough (any, actually) Java / Eclipse action under my belt yet. VS2005 + MSDN Library, though = very powerful.

Wandering into this LAMP project was also difficult wondering which of the 800-godzillion distros to pick from. We had a contract class run at one of our campuses a while ago where the guy used CentOS, but I first tried FreeBSD. After my head became flat as a pancake from beating it on my desk so much and getting sick of hacking configure files just to make shit build on there, I slapped in CentOS and BOOM! Two hours later had a solid LAMPer with PHP Soap service ready to go (b'yatch). Yum = my friend.

Now it's PCLOS. The CentOS was just a bit too much of a loser to get perfectly set up on my laptop, and I just wanted that Toshiba to become my daily "appliance" for email, word processing, et al, with the VMWare for any specific crap I needed to do. So I try out the PCLOS and BOOM! I really liked how it's packaged as a LiveCD so you can try it out first. I highly recommend this distro.

[to be continued...i'm hungry and tired, so i'll edit this later]

Submit this story to DotNetKicks