Sunday, December 30, 2007

Doctor HP Says: Howdy!

I wrote this in January (1/13/07) responding to a personal ad on craigslist and I stumbled onto it while looking for a contact at HP, somebody I met at RIT in the Golisano College who had a pretty interesting chat with me about language and computational linguistics. If that guy was a doctor, he might have meant to diagnose me.

I think he was saying something like this: save yourself!

This photo is pretty representative of my personality: the cigarette-smoking buddha. It's a vile habit of course, that I haven't quite kicked completely. There's no good reason for that, but I've got plenty of excuses if you're interested:

In my defense, I was voted "Scholar of the Year" in my fraternity... read that again if it doesn't sound like the Oxymoron of the Year. Point being I'm living alone for the first time in my life, since October. I don't see much of my friends (the best of them are smokers), and when I do, I tend to go to great lengths to relate.

That being said, if you and I are to meet in person, I will certainly be very self-conscious of smelling like smoke, and I'm likely not to smoke for at least 48 hours in advance! I'm generally a pretty quiet person in person, don't really like to talk about myself as I feel like I end up repeating the same resume/laundry list every time. Perhaps I'm in an introverted phase of my life right now, but I am a great listener and I enjoy talking one-on-one, and getting to know good people.

I'm not really into video games but I think it's great that you are! I had my fill of playing games constantly in high school, but I do a lot of watching (erm, call it research) when I visit with friends... the coolest game I have seen lately is Guitar Hero, and the most highly overrated is certainly World of Warcraft.

What a crock. Computers are awful for your personal well-being. At least my brothers are smart enough to spell my name wrong on the Scholar of the Year plaque. GO PHI DELT!

Travel Toronto!

Your Chinese lesson/word of the day, care of something I overheard a dude say while he was on the telephone in the bathroom at Spirits:

漂亮: piàoliàng - beautiful

How incredibly discourteous of me! First I was eavesdropping while taking a piss, then worse yet I had the nerve to repeat what I heard on the internet?

Probably not a completely wasted trip, while I was in town I met a guy from Korea smoking cigarettes at a gas station (live dangerously) that said he had worked an Advertising job at Adobe. He was pretty cool! I hope he made his bus :D

Wednesday, December 26, 2007

Wordpress is Sweet!

Sweet guys, Wordpress is sweet. I can't stand how sweet it is, anyway I thought I'd let you know that it's just not working out between you and me, and I like that one better. Don't take it personally, unless you're insecure about your person, I just like that one better than this one. XOXOXO

Monday, December 17, 2007

Personal Todo

"I spent all day Friday trying to get my environment working! I wasted an entire day. How do they expect us to get any development working if we can't get a stable development environment?" -- overheard from the other side of a cubicle wall at a nameless company.

So I spent $100 a little while back on a toy for myself. I mean it's not so much a toy, as an investment. OK so it's a toy, but a well-designed useful toy that is very helpful for expressing the frustration you might experience as a developer.

It's one of those neat little Sidekick things. It doesn't do anything worthwhile, besides taking pictures on a MicroSD card at 1280x1024 pixels. It has a simple notepad, a task organizer and a calendar, which lose all of their data as soon as the battery runs out. Without a service plan, it's really not much of an organizer at all.

So then why do I call it an investment? Because it doesn't charge me $70 every month for the privilege of using it. My Verizon phone reliably sends me a bill every month, and still, the most frequent caller is this fellow Sultan from Saudi Arabia, whose calls get forwarded from my Skype account. These days you don't need a mobile phone any more than you need OnStar.

We hold these truths to be self evident: you can talk to your friends face to face. Except when you can't, then you can use the Internet.

Apparently they are holding on tight to the Sidekick developer keys these days, because it turns out that if you have one you can actually circumvent all of the copyright protections on the device and run any subscription-based programs (that you or your friend probably bought and paid for at least once) without paying a recurring subscription fee.

Are there any other developers out there like myself that think this sounds like a good thing? Subscription software is the road to a never-ending pyramid game. I don't want to go down that road, I just want to pay the bills so I can live indoors and eat food! And, you know, maybe take a couple of days for traveling every once in a while.

Anyway, I want something to do with my free time, and I'd like to believe it might make some money one day. The Danger team says I have to provide some evidence that I am a developer to receive a developer key. They've provided lots of well-organized documentation and a simulator that I can run on my own computer.

To hook all of my devices together and make them do my bidding, they are asking that I demonstrate some competency in that skill. All they want in return for building the device is a slightly new idea and an implementation, and they have promised to respond in kind with a developer key and further support regarding sales and marketing. Now I've got a pretty good idea for them, and I might even have time and expertise to implement it myself.

The project: integrate a set from the toys listed below, and come up with a cool name to call the resulting program by... here's the list: bluetooth, tomboy/wiki, sidekick/hiptop, java, groceries/recipes, collaborative team sharing, web desktop. Come again? I want a [java] program simulating the popular Tomboy application for Linux (it's a personal wiki).

I want it to run on my Danger Hip-top and synchronize with my desktop computer across a Blue-Tooth link. I want to keep my grocery list on it, I'd love it to integrate with Quickbooks for expense reporting, and it should also have a sharing component to make selected pages available to a team of people with (or without) danger Hip-tops. There should be a desktop component with a similar interface, or at least a web interface that authenticates by e-mail address.

Read about D-Bus, I think these concepts are important.

And sorry folks, the UI testing work and Blackjack simulator that I promised have been delayed again. Turns out the most useful tool, FolderShare, is in fact blocked by name from the corporate firewalls. Good thing I spent so many months working with Subversion, but it's still not end-user easy. I wonder if I'll have any more luck with iFolder when I get that up and running.

Hopefully we'll have more news before next weekend... I want to start a group discussion on Saturday or Sunday on one or the other project.

Wednesday, December 5, 2007

Hibernate Tutorial Review

I'm starting my co-op at Thomson West this week, and things are going swimmingly! I've been introduced to a handful of interesting people and perhaps twice as many new frameworks, some of both that I had never heard of before. Trying to narrow the focus just a little bit and learn something while I've got some downtime on my hands, I haven't been assigned to a particular project yet so I'm going to make my own with an initial focus on the Hibernate library for Java.

Hibernate is a layer that enables creation of persistent objects in Java applications, using a JDBC database as the backing storage layer. I meant to use PostgreSQL as my backing database because it is known as the most advanced database and it is also free, but the tutorial that I am following is based on HSQL, a simple lightweight native Java database engine, so I'm running with that until I have a reason to change it out.

The code is all copied here, all dependent libraries are included for simplicity (exclusively for educational purposes; I have not reviewed the licenses but I'm pretty sure this is non-infringing educational use.) The JDBC drivers are not included as far as I know, you will have to install HSQLDB or PostgreSQL for yourself if you want to follow my tracks and learn with me.

Hibernate code is database-agnostic, a single change in the file hibernate.cfg.xml will alter the storage backend of the app, and that's all it takes to swap out your database for another one. Something like a schema is evident in the file Event.hbm.xml, the hibernate-mapping file, which describes the mapping of objects to database entries for Hibernate.

Hibernate-test01\data\> java -classpath ..\lib\hsqldb.jar org.hsqldb.Server

HSQLDB just runs in a command-line console and you can terminate it when you're done working. Modify the options in hibernate.cfg.xml for hbm2ddl if you want to re-seed the database with fresh tables (maybe you have updated the Event class to include some new data fields and you have modified the hibernate-mapping information, so now the database schema is out of sync.) You will lose any data that you have generated, so it is recommended not to do this in the middle of an experimental trial!

So, now that we've had enough technical jargon to kill a small animal, what does this code do and how can you tinker with it? There are three important classes for which new code has been defined: Event, EventManager, and HibernateUtil.

Event is what is called a JavaBean, that is to say it is very simple in function and supports little else besides manipulation of various data fields; for each Event on our hypothetical calendar, a new Event object is created with a Date, String title, and Long id. These fields are again defined in the hibernate-mapping file Event.hbm.xml, with mappings to columns in a database table.

EventManager is also pretty lightweight, though it is actually doing a lot of work thanks to the support code in Hibernate. The main execution test is in this file, with only two options: list the events in the database, or store a new event with the current time and a default title. The EventManager code does not know about any database, only talks about a Session and from the documentation the current session is associated with the current thread of execution.

To create and store an event:

  1. Get the current session object out of HibernateUtil class
  2. Start a transaction
  3. Create an Event object and populate the data fields
  4. Save the object in the current session
  5. Get the transaction again and commit it back to the database
To show all of the currently listed events:
  1. Get the current session object
  2. Start a transaction
  3. Create a query on the session to grab a List of all objects from the Event table
  4. Commit the transaction and return the resulting List of Events
This leaves HibernateUtil, whose operation is dead simple: instantiate a SessionFactory based on the options in the hibernate configuration file, and hang on to it until EventManager asks for the current Session object. As long as our program is single-threaded and there is only one Session, one transaction at a time, this process remains extremely simple.

Part 2 of the tutorial adds Person objects that can participate in Events, to display the bi-directional association that can be expressed using JavaBean objects and the Hibernate package. I plan to get through this object-association exercise before the close of business today, posting an update to the files in Subversion at least, and completing the primary tutorial.

Tomorrow's post will explore the basic design of business logic for a persistent Casino world with one or more Blackjack tables, and I hope to add some smarts to the Person object by creating some blackjack Players with the capacity to perform card counting. We will also consider the possibility of a user interface and what bits need expressive elements to make this an interesting simulation. Best of all, I may find my keys before the morning comes!

Tonight, resume the tutorial with 1.3. Part 2 - Mapping associations.

Thursday, November 22, 2007

T+Day 2007 Delicious Roundup

This song is brought to you by a beautiful girl from Saudi Arabia. Besides American Indian music, she loves Lauren Graham of the Gilmore Girls and also freedom.

My own contribution, this artist is very near to my heart and her song is a perfect expression of what I feel in my soul today. We have done so much, there is so much to do.
Here we have a reflection of just how much. How much is that? A whole bunch. Art and information want to be free! Why won't we let them be?
If only man could sit and talk with Ishmael, he would realize that in fact he can. Add this to your reading list, I want to know just what he is thinking.
And finally, a message from the reincarnation of George Clinton. In a word, Calculus.
Thanks to all of my paying subscribers, the rest of y'all should know where to go. Happy Holidays, and I'm very grateful to have your following, now go with peace in your heart and love in your soul.

Wednesday, November 21, 2007

Word of the Day

enraged - angered, infuriated, with regard to horses this word describes an upright leaping posture, as in saliant for a lion or a tiger

I'm having some trouble with the Pandora application. I can't say why exactly, but for some reason my Windows 2003 server is lagging the hell out, and it can't get through an entire song without the audio cutting out completely. This is especially infuriating because I have been using this server as my work radio while I work in the kitchen in the next room. My Linux workstation is chugging along, playing music from Pandora without skipping a beat, so I think it must not be a problem with the wireless network. The two machines are on different wired subnets, so more investigation is necessary to prove that conclusively; it's still a mystery to me.

Unfortunately the Bluetooth dongle doesn't work so easily in Linux. In Windows Server 2003, I installed the Belkin drivers and paired my Bluetooth headset, and the audio gateway service registered a new sound device. Heading into the audio preferences, it was a simple matter to select a new Default Audio Device, and immediately I noticed that all of my sound events were routed to the Bluetooth headset. In Linux, it has not been such a simple matter. Pairing the device did not require a separate driver installation; I was immediately impressed by this! Unfortunately, neither Skype nor the Sound Preferences panel applet make any reference to a Bluetooth device in the interface elements.

What does this mean? We need a new arrangement. The Linux machine should become the #1 internet radio in our home, and Blackruby, the Windows Server, is in charge of vidi-telefax services. The Linux machine still works as a standard audio-only Skype phone, and the built in speaker in the monitor is sufficient for that purpose, so long as an external microphone is connected. Moving the Klipsch 5.1 speaker set from my apartment will upgrade that box to a pretty sweet entertainment machine, and the Windows 2003 Server will continue to serve as the chief Video Telephone and Fax Machine. All of this will move upstairs to Joe's old room and we can call this the guest office for as long as it takes to find a new tenant here at 149.

As for the Macintosh, I guess it is still a pretty good word processing machine.

Monday, November 19, 2007

Word of the Day

Another word from me this day, this one comes to you all the way from Texas:

spur - to give heart or courage, to spur, to prod or goad with a pointed stick or especially with spurs, as found on some cowboy boots

and since I've got some catching up to do, I don't believe this came from India:

spurn - a narrow sand spit on the tip of the coast of Yorkshire, England that reaches into the North Sea and forms the north bank of the mouth of the Humber estuary

Thursday, November 15, 2007

Word of the Day

The word of the day, this is a very good one... and don't go thinking you're going to have another word tomorrow on my account! Just because it's called the word of the day and it came from me, doesn't make it my responsibility to provide a new word every day henceforth! That's fair warning, and now for the word:

Sapiosexual - deriving sexual excitement from developed thinking patterns. A person who is said to be sapiosexual will get hotter and hornier as their partner is thinking out loud and making cogent points. The more points that are considered, and the more lucid and clearly expressed are those points, the greater the intensity and the passion of the ensuing sex.

Think about it! I'm not making this up.

Paul Simon == George Carlin?

I'm watching Paul Simon perform Outrageous on David Letterman, and the resemblance is uncanny! Anyway, even if the two are not really bred from the same stock, I'm telling you Paul Simon could spend eight days a week beating the living hell out of Johnny Cash and still have plenty of time to make blueberry pancakes in the morning.

Sunday, October 28, 2007

Tackling Tickets

These are all of the things that I mean to do in the next short span of time. The plan is to run down the list and generate a file for each issue, then either prepare a note on my schedule to remind me of the time for action, or write another note expanding on the task at hand, or mark it as thoroughly completed. First priority is to fulfill my government-mandated obligations, I have two tickets on the books.

  • Judge in Avon
Court date early in November, some time before the court date in the town of Henrietta. This was a simple speeding ticket, 75 in a 65. The officer told me that I was actually going 88 according to his laser, but the ticket was actually written for 75.

My own observation of the speedometer indicated my speed was between 80 or 82 MPH, though admittedly my first reaction upon seeing the reaction of the cloaked state trooper to my passing was not to check the speedometer, but to reduce my speed and prepare to pull over.
  • Pay Bills (Check Bank Balance)
Do it now. Nothing to say about this.
  • Set up Home Office at 204-1
No Go. Moving out of 204-1, as I'm still not sure how to pay the November rent. I'm about comfortable and moved into 149, but the arrangement with the computers and the furniture is not really finalized to this point.
  • Clean out Trunk of Car
Still got a bunch of crap in it. The last thing I want when traveling over a border is to have to endure a lengthy, protracted search. If they are going to search me for guns or drugs, I'd rather make it easy for everybody involved!
  • Take out the Trash
We generate more trash than anything in the world. I didn't generate half this much trash before I started cooking. Make an extra effort to minimize waste food and save on trash output. Also remember, if you're going to empty the trash, replace the bag so the next person who tries to use the trash doesn't have a conniption!
  • Do the Dishes
Finally got everybody to participate in doing the dishes, thanks to delicious food. The trick is a repeat performance, and the better trick still is to make it sustainable. I do have high hopes for 149 Waterloo.
  • Video Software
Provide a synopsis of tools I've learned that save you from buying expensive packages (both MRR and NRR), enabling content consumption and production for Audio Video geeks.
  • HP Warranty Status
Fuck HP! I spent at least 3 hours on the phone troubleshooting and the result was they told me there was nothing wrong with the hard drive. I can't afford to drive out and see my dad again next weekend, if the machine is not fixed, I will be spending more of my own time on this issue that has no benefit to me!

End result: I bought a new hard drive and put it into my Dad's computer. A little white lie, I said it was covered under warranty, but really I couldn't stand to spend another 3 hours on the phone with HP to prove that the drive was faulty and get a replacement shipped.

We've got til February to orchestrate a catastrophic provable failure on this drive and get a new one under warranty. Maybe I can get Dad to load it up with porn and keep writing to it over and over again?` It probably will not crash on its own, hooked up in configuration as a secondary drive like it is now.

Would you ever know if videos, instead of system data and configuration files, were losing bytes due to corruption? There's no reason the system should crash because of incoherent data files. Is there any great symbolism to the idea of corrupting pornography? Kind of funny I guess, ha ha ha.

The unhappy conclusion to this story is that my new cheaper HP Slimline does not seem to have user-serviceable parts. I have no idea how to remove the hard drive, and if I had to replace it with another from Western Digital working on my own, I think I would become a slave to the HP warranty timetable. That sounds awful.
  • NYS DMV License Plate Replacement for CVP1942 - Stolen?
Paid an $18 fee and spent 2 hours at the Brighton DMV to get the stolen plate replaced with a new set. I lost my cool plate number, and now I don't have the number memorized anymore. Bummer. Would have only been $3 if I had filled out a police report and brought it to the DMV.

Thursday, October 25, 2007

Bluetooth Transactions

From what I'm reading so far, the anticipated limitation of the protocol is that audio data is not to be encoded in BluetoothTransaction packets without support for A2DP. I don't know how this compares to the encrypted Quicktime support that is embedded in the Apple Airport Express (that's WiFi, not BlueTooth) except that both protocols seem to make it prohibitively difficult for devices to support VoIP routing or transfer of audio packets without manufacturer support for A2DP. The jury is still out, whether this makes an effective copyright control device or not.

TODO: Expand this article to include code examples and a working implementation of two-way Bluetooth Transactions. Check on the filesystems available to the Sidekick developer, targeting the question of whether I can write a program that backs up my contacts, notes, schedule, and replicate other application files to a desktop interface, database, or other hiptop computer. Find out if there is any way to play my mp3s over a bluetooth A2DP headset without A2DP support in the hiptop from Danger and T-Mobile.

Monday, October 22, 2007

Pea Soup Design

Who has seen an example of my design sense? If you know me you should know that I am like a spartan and that I have no innate aesthetic sense of my own. I believe that furniture should be arranged to maximize positive energy flow, and so with the lay of a page, but to define what that means exactly is perhaps more art than science.

When I am designing a space, web page or home interior, I collect the chips, be they text images or furniture, and I arrange them in the first pleasing order that comes to me, included with absolutely minimal adornment, decorating them with only what I deem to be absolutely necessary to facilitate navigation and to preserve a sense of accommodation to save my readership from wondering what I wanted them to see.

I cook the same way. I'm making pea soup right now, and it matches the color of this page. I hope that it turns out quite delicious, but I'm short on the usual pea soup ingredients by a few, and I'm afraid therefore that it might turn out non-delicious. Such is life, so I suppose I'd better have a better list the next time I go shopping for food!

Saturday, October 20, 2007

Recursive Backlinking

This is a note from a student who says he's working on some projects he intends to monetize. What should I tell him? I think it's OK to allow for-profit usage in academic contexts. He paid his tuition, so technically he has paid the bill for access to the software. So is there line crossing that mandates another new purchase after graduation?

Subversion RSS

So now that all of my important files are tracked under Subversion, I have some opportunities that I didn't have before. I can add to my iGoogle page or Netvibes any arbitrary tree or sub-tree of the files that I publish. I can maintain a window page with 500 or so links to samples of my work. I can publish that page as well, and share it with the world even. Neat!

I've added some tools to the Web Developer's Arsenal that I try to carry with me at every computer that I use to do publishing. The first cool toy that has a requirement of more cool toys beyond a simple printer is SeaMonkey's DAV publisher. DAV is like Subversion, in that it allows the user to publish a file directly using an HTTP client. It's a simple protocol for file exchange over HTTP, instead of another protocol that supports file exchange like FTP, Skype, or rsync.

SeaMonkey allows the user to edit a page as if it were Wiki content, and publish the changes directly to a DAV server. Subversion's DAV implementation is very friendly to ordinary web clients like Firefox and Safari: it allows the user to browse the tree of files and directories and download the latest revision of each. For an ordinary web server with simple support for DAV and any ordinary web page, it would not be so easy to identify the presence of the protocol.

Subversion repositories do not interact directly with SeaMonkey. Managers should not interact directly with Subversion repositories. Instead it is better for them to use the XML/RSS interface provided by WebSVN, and a reader like Google Reader or Windows Live Mail. Tuesday Studios Web Components implement RSS feeds, Subversion, DAV, and PHP applications. Support for Python and Ruby are forthcoming.

My Norwegian keyboard is still prëtty gøød, but it feels like an invitation to commit møre spellïng grëivånces into the revision history that is the world internet. Better to stick to the home keys I think, and I'm getting used to the location of the apostrophe ' parens () and forward / and back \ slashes. I still wouldn't say that I'm flu€nt in Norwegian but I'm quite sure that I'm well on the way ¤=) Thanks KPB

Something I Do

I really hope I can have a copy of Windows Server 2003! I'm running Windows XP on my Dell SC420 PowerEdge server, and it's just not the same without Windows Server! I've got no choice but to use the Wireless Internet, which I'm sure puts me in violation of some license agreement with some company, but I've got no choice at this point because it seems there are no network drivers for this machine's NIC in Windows XP!

Same goes for the on-board video and also probably the RAID chipset as well.

So why did you do that Mr. Dell-Gates? I can't afford to pay you whatever you seem to think the fair market value of this software is, and the hardware was delivered by one of your employees. When I received it, the included software was a release of FreeBSD, and that is certainly within your rights as a software provider, to redistribute BSD licensed software. But just because you put a box in my office, is that a good reason to owe you money?

Your license agreement would have me believe so... well, where I come from we charge a fee for storage. What do you think about that?

I checked on the list of supported operating systems, and I guess I'm supposed to be using Windows Server 2003 or Enterprise Server. I've got copies of both through the Microsoft MSDN Academic Alliance. But I keep telling people I'm not a student anymore... it does actually help to avoid drunken fratties and I can't just show up and tell some story about the hard work I've been doing in all my classes.

Still I go sometimes. These are my brothers, right?

So I'm not sure if I can use these softwares anymore without receiving Dell and Microsoft's both OK. I've asked permission to lie to a computer before, and received consent, while employed by RIT. I'm no longer employed by the university, and my lease on hard-line internet is almost up.

So can I still have my own office after November?

Monday, October 15, 2007

Games to Play

It's called Circular Chess

圍棋 in Chinese
囲碁 or just 碁 in Japanese... the Japanese name makes a metaphorical sort of joke about real animals, and the Chinese name does not include this information. Both names indicate a turn-based game, and 棋 sounds almost just like 星期的棋 which is 的其外的其

In RIT English we call it Go, and we usually say it is a Japanese game. Sorry!

Thursday, October 4, 2007

Download Inventory

I was meaning to provide access to my normal Subversion repository which provides a full revision history over 40GB of data with accounting for users and groups. Subversion is the most useful piece of software in a Computer Scientist's arsenal; it provides a perfect revision history, but the cost of backup becomes prohibitive if files change frequently at random.

A DVD or hard disk is like a piece of land. Some real estate is more valuable than other places; so with software, but the going rate for a pre-mastered CD (700MB) loaded with software is $50-100. The cost is the same for access to the latest edition of my software collection of backup disks.

Software is traditionally exchanged using physical tokens and is sometimes marked as "not for resale" using license agreements. Insofar as I am an independent human being without a degree in law, I choose to ignore the legal risk that a piece of software I distribute at a particular (700MB) data storage cost may have a copyright claim against it.

I will send a digital catalog to each publisher that contributed to the release, along with a note indicating that I have enjoyed testing their programs. How does that sound for a business model? I wonder if I am obligated to standard handshaking procedure in this case.

Monday, October 1, 2007

Your Only Limitation

I am terrified by myself.  I'm learning to recite the Quran from memory.  This is your homework for the day.

أوذوا بالله من الشيطان الرجيم

بسم الله الرحمن الرحيم

الحمد لله رب العالمين، الرحمن الرحيم

ملك يوم الدين، إياك نعبد وإياك نستعين

اهدنا الصراط المستقيم

صراط الذين انعمت عليهم غير المغضوب عليهم

ولا الضالين

In English:

[A call to Allah from the vile Satan]

In the name of God the merciful

Praise to God, Lord of the world

King of the day of Religion

You alone we worship, you alone we beseech

Guide us to the right path!

The way of your grace, not the way of your fury

Lead us not astray.

Saturday, September 29, 2007

Hybrid Apps

Facebook integrates with NetVibes, and Windows Live Messenger has been ported to MacOS... cool first step. I like the fact that Messenger notifies me when I'm receiving a message, or a contact has joined the party online, but it's really the only program on my system that I allow to deliver popups. I would like to receive popups from Facebook and GMail as well—that might encourage me to do a better job of policing my inboxes and notifications. A unified API that supports all three applications might be too much to ask for.

Friday, September 28, 2007

Web Content Dev Kit

So the word on the street is that Aptana IDE for Eclipse is THE new hot environment for web developers who want to write code. I'm going to teach NVU instead, because it's better for businesses. OK? Ok..

Saturday, September 15, 2007

XML Developer Toolkits

C# has a framework called MSXML and Java has the SAX Parser. Web browsers are trained to parse XML already, and Adobe has Spry to enable page authors to parse XML documents from external sources. Spry therefore seems like an ideal toolkit to prototype and describe functionality of our XML toolkits in online documentation! Testing functionality therefore becomes a trained-monkey style task like lever pulling, of comparing program output to the documented specifications, which is slightly less complicated than blackjack though it can also be profitable.

The application that I have in mind is a tool for foreign language students to enable homework collaboration. This is basically a dictionary which will live on http://thursday.nerdland.org/dict. The interface should allow a web user to click on a word on either side of the line (eg. arabic/english) and edit the word; a third comments field will also facilitate collaboration over confusing translations. Adding a new entry should be as simple as clicking an empty field and entering some data. I'm not interested in an overcomplicated accordion-style user interface at this point!

C# application users will have the choice of a Cocoa-Sharp or Windows.Forms interface depending on their platform, and these applications will edit the data locally, as it is checked out of subversion into a sandbox, or remotely onto thursday, where anonymous updates are periodically noted and logged into the subversion repository. Therefore it is necessary for users to register and receive write access to the repository in order to receive credit via svn blame. I wonder if this problem is solved by monotone, mercurial, or any of the new scm tools on the market?

After The Hardware

So we've got all the hardware we need to start our own pirate internet here at home, and the neighbors aren't having a fit about it yet. What we need to do now is to start broadcasting our signals into their homes, and allowing their wireless devices to hop on and authenticate themselves. How do I support wireless handshaking like RIT Claws without requiring a paper exchange to securely transmit passwords? IMHO conventional wisdom dictates a paper exchange is necessary to have a contract or to securely and reliably transmit a password. Telecom companies don't always operate that way.

Thursday, September 13, 2007

Developers Toolkit

A proof of Card Counting for the game of BlackJack is quite simple: a text-based application could simulate a dealer playing standard Las Vegas rules with a table full of players using Card Counting strategies to fix their bets, and any sort of strategy to determine their playing style.

The simulation that I have in mind would run for 10,000 hands with a table of four players. A successful proof would show that after 10,000 hands, each of the players has increased their personal stash of cash by a substantial margin. In a casino, the pit boss would surely suspect some inequity if four players played 10,000 hands at once, all draining cash out of the bank.

To win at blackjack, my experience has been that it is possible to read a table rather than sitting for 10,000 hands, and to simply pick a winning table before sitting down. How exactly do you read a table? If I make my millions in a casino, then I will write a book and tell exactly that. My training is as a programmer, so today we will play Hack the Planet instead.

It would be nice to produce a playable game with a graphical interface as well; an efficient simulation could probably play 10,000 hands in a matter of seconds, but we wouldn't get to play or watch the dealing happen; how unrealistic! One of the goals of this project will be to produce a graphical player interface to show at least the cards on the table.

For a good simulation, our program should allow an individual player to carry a card or two around with him, and optionally depending on the various data protection that is in place, to pick up and put down cards. In a casino, the dealer is the only one dealing, and there is one dealer per table, so our simulation will make some accounting for the possibility to cheat.

Tools for the developer:

  • Subversion—Some simple revision control software that enables neat tricks like distributed development teams. This one is free, compare to PlasticSCM for a commercial alternative built exclusively using C# and Mono.
  • Vim—A text editor is necessary to write code or documents in any language. Vim is a modal text editor. Explicit instructions from Axel, please don't write your code in Word! Compare to Acrobat Professional for a commercial alternative with a print focus.
  • WebSVN—I use this to put an interface on top of the code. Does anyone want to take a look at the changes over time to your Subversion code base? It's easy to do, you can even subscribe to the updates with an RSS reader.
  • Interface Builder—Lay out your interface using Cocoa .nib files, and load them from inside of your application to get a player interface set up. This is the only part that should not translate to Windows and .NET proper as it is defined by Microsoft.
  • C# Code—This is another attempt at a BlackJack simulation. This code failed to compile in the latest Visual C# from Microsoft, and I suspect that it is pretty old. Still helpful to establish the game logic including some graphics that can go in the Cocoa UI.
Finally the various cards and card piles should be represented as XML data so that this development effort has a chance to satisfy Axel's requirements and earn some course credit for my degree. Still anticipated is a chip counter, as well as simulations of Poker and Hokm.

Monday, September 3, 2007

Moving Right Along

After that colossal failure at making something of myself in the web development industry (well it's not so easy to hit the ground running after a long break, don't you know it) I'm going to try my hand at some application development once again. The Molly Project was not my thing, really the problem is mostly that I googled and I couldn't find any tutorials whatsoever.

In fact all I found were some non-functional demos and I got the impression that I would have to install the code and learn all of the development tools, then make contributions by myself to the existing code-base before I would even generate a single useful application. Hey man, that's a raw deal.

Compare to the work flow of the printing industry: business people don't buy posters so they can hang them on their office walls and have them look pretty, they finance marketing campaigns so that their products will sell harder better faster longer. If Molly Project is a product, lets just say that from the marketing campaign I am thus far not impressed.

Consider: There are sharks and there are bankers.

Bankers keep an inventory of resources and hand out their resources based on complex algorithms that are studied and modeled by Computer Scientists. Sharks don't need to know math. Sharks love bankers, because sharks know exactly what they need to have in order to get on with their job as a shark: eat more animals, and go on living until some time near their own death.

Sharks go around asking bankers for food, and bankers give it away so long as they are not strictly married to the idea of population control. Sharks and bankers both live here in the world with pirates, and a pirate is another idea altogether. They're really only ever important if you concern yourself with entertainment. This may come soon.

Also: a pirate tends to require a ship to protect him from the harsh seas and from the elements. Coincidentally, both bankers and pirates are animals that sometimes ride inside of ships, so the ship should be built strong to help protect against sharks as well. Pirate ships usually have a crew. The job of the crew is to see that the ship remains in working order, and not full of water, lest the sharks take over.

What was I on about? So much for applications; anyway I'll model a game of Blackjack and some players, to see how the various strategies perform, and to get myself accustomed to the C# language. Blackjack is a good game for a computer scientist. The players play against the dealer, not against each other, so the players are all in the same boat, so to speak.

The dealer is essentially a robot who behaves according to rules, and handles the bank's money to pay winners and collect from losers. Dealers have no free will; they must hit up to 16, and if the dealer is busted, all of the remaining players who are left in the game are winners. Players always have the choice to place a bet, and to hit or stay.

If you never hit then you can never bust; this is fundamental. Card counting strategies attempt to predict the odds of a dealer bust before the draw, based on the number of cards of each type (high or low) that have been drawn already, and the number remaining in the deck. Is it possible to do this with statistical reliability?

It sounds like a strategy to me, but does it actually improve your odds against the house? That is a perfect job for a computer simulation! Maybe we can get on mythbusters. Start with both BlackJack using C# and Visual C# 2005 Express Edition, that should be enough to get you simulating a heist on the house. For detailed reporting capabilities so we are able to inform the world about the reality of casino rules and the existence of Santa Claus, we will want to include Visual Web Developer 2005 Express Edition and the Reporting Add-In as well.

I have yet to use most of these tools, and I'm looking for a qualified instructor. If you want to learn together, please contact me.

Friday, August 17, 2007

Molly Installation

Installing the Molly Project onto the pirate-yogi ship Hobo 11, the machine that doesn't tend to carry copyrighted software on purpose.

Do what you say you're gonna do

This particular desktop is configured such that I can't use it to learn to write in Chinese, only to read. Pretend it's a restriction of the IT department. I'm not sure what implications that would have for the psychology of a person. We're going to find out.

Management handed down a decision, and Juice is taking my new computer from me. He's making money and I'm not, and we're sharing the money under an equitable arrangement as far as I'm concerned, so unless I can find the time to make my home computer (which does not run Windows) handle Chinese input satisfactorily, perhaps final notice that the Chinese will be left behind when our pirate space ship reaches orbit, and eventually travels beyond beyond!

So unless I can find a way to perform that function using free software, I mean, unless my demands are met!!! Uhh, yes I mean to say that, until we are financially solvent under a real business model, I will not be teaching Chinese on company time. Thank you.

Anyway, with that settled, I will be blogging about Molly as I figure out how to get it up and running. I just felt a chill of "whoreyness" run down my spine. Funny. But what I mean to say is, do what you say you're gonna do, it sounds lovely in Chinese.

Saturday, July 28, 2007

The Day Free Speech obsoleted Preventative Copyright Enforcement

I said before that I thought Net Neutrality was a red herring in the fight for digital freedom—on further reflection I can see this was a gross understatement. If codified into law, the goal of net neutrality spells the end of censorship, and along with it any chance of so-called preventative copyright enforcement.

If ISP's are not free to prioritize one kind of traffic over another, then they are effectively prevented from policing their own networks. It's no longer an issue of who watches the watchers; if the actions of those with the keys to the kingdom are stunted through legal means, then there can be no watchers.

Fair use laws provide exceptions for educational use as well as parody and derivative works. If you designed an alternate ending for Beetlejuice and published the whole movie online with the alternate ending attached, there is an argument for a derivative work or parody. The ending is pretty fruity in the first place, but bear with me.

Pretend

What does this mean for the Motion Picture industry? Though the timeline is continuous, recent government codes have expressed that we are in the midst of a digital millennium, a time of discrete events, some with causes and some with effects, and that the culprits will be held responsible. We are no boondock saints here.

Wednesday, July 25, 2007

E-mail Cake and Obsolete Software

Woe is me! It was nice knowing you modauthkerb, but I grow weary of rigid frameworks and have failed to find value in the well-designed but unmanaged and varied implementations of Kerberos; hopefully pam-http and Subversion with htpasswd will serve my needs from now on. I unsubscribed myself from that mailing list as well as the xorg developer community, I was never truly at home with you people.

On the bright side, my e-mail inbox has been freed up for off-site network storage! Now if I can get my disk requirements under 2.8GB, and so long as Google never kicks the bucket or pulls the rug out from under this free e-mail service of theirs, I can have an attempt at compliance with sane and reasonable procedures for off-site data backup without carrying disks full of important data from place to place, and without incurring a separate rent roll for a server or server farm.

Neat! However that's not happening any time soon. One large 700GB filesystem sits on my RAID5 array on the server called Sheng, and a pair of filesystems is spread across two 500GB disks on Blackruby using LVM. With both servers running at capacity, there is no way to produce a backup, so we will have to settle for dueling banjos. Still, I'm not sure that this business of data retention will ever provide a paycheck; perhaps it's time to clean out my Inbox!

Sharing Bandwidth and Disk

Bandwidth and Disk are interrelated just as money and time, but this doesn't mean it behooves anyone to meter it and charge extra for heavy use. Extra value is sometimes a product of sharing, and as you will recall sharing is caring!

I once discovered software for digital media transcription (read: backup), and the peasents rejoiced as they were enlightened. A copy house is like a data warehouse; duplicates of written or copy material are produced, that's copy that's sometimes written on CD and Disk media. Optical media can be reverse-mastered into an image which can be loaded from disk and accessed directly or copied to produce a duplicate of the original media. Files and disks can be shared as well as copied, and so can compressed files.

Network disk can be used to share files within a group; issues sometimes arise when clients and servers part ways, and revision control like Subversion helps determine original authorship. A server maintains a catalog of changes made by users who collaboratively administer a file space. Commits that derive from outside sources should provide citations. New and unique information is sometimes produced, and new ideas are dated in case of patent litigation.

This is all of the software you need to be a producer of media content on a desert island; that and an internet connection. Ideally we have a more elegant system for generating income from distribution than sending out messages stuffed into plastic bottles and hoping that they return filled with gold doubloons... still we might be surprised just how often this works!

Thursday, July 12, 2007

Laughing from Afghanistan to Iraq

If you speak English (and you probably do if you found this page), then you might have noticed as I have (and I'm probably not the first Irishman to think in this way, it's a funny coincidence) that Afghanistan was the first target in the so-called war on terror, and that Afghanistan is also the first country out of all countries in an alphabetical list. Now I'm not suggesting that President Bush decides his political strategy by opening a phone book and starting at the beginning, but I was watching Comedy Central one day and I took note of the fact that the writers for Lil' Bush put that same kind of thinking into their Fathers' Day episode.

It's funny! I'm not trying to say that death and fighting are laughable, or that we should take terrorism as a source of amusement, but why don't you go ahead and ask George Carlin for his opinion. Death can be funny. In fact, death is damn near all he's been talking about, the last few times I've seen him doing stand-up comedy sketches, and I've always thought him to be a fantastic comedian. I thought it was funny then, and I'll probably continue to think that way until it's too late anymore, for thinking any other way. So while you keep on trucking, please do keep on laughing. It's good for you, and it's good for us!

Cheers,
Kingdon

Generating Traffic

While I might not be the best source for information of this sort (my blog has 4 subscribers at present, and I know that my own computers account for at least two), I have accumulated quite a decent amount of information on cheap and free internet publishing methods and strategies for generating traffic. This is really everything you need to become a source of news—well, this much and also some news.

As long as you are comfortable with Google hosting your content, it doesn't cost you any money! Increased availability of this information will certainly not help me to sell space on my servers, but if you have something good to share and you only want to get the word out, you really shouldn't have to pay for the privilege. I thought I should share my knowledge, so I'm writing this article. Of course if I've missed anything really helpful, I hope you'll leave a comment and let me know so that I can integrate it into my strategy and update the HOWTO document.

Monday, July 9, 2007

Crash-Proof Arabic Language Base

For my next trick, I will attempt to learn 3 API's and produce a data model and controller for my Arabic Language Base application, Qaal. There are several goals in mind with this project: aside from utility as a learning tool for Arabic language, it should also be written to take advantage of public databases for authentication and data storage as much as possible.

A personal account on Yahoo's Delicious server will be required of all users, to maintain a list of the documents which have contributed to their personal corpus of understanding. Further, the app will likely maintain more information locally using Google Gears, and store this information on a private Subversion server when the application is terminated. Local configuration files and databases are a no-no, for data-greedy applications like this one.

We want to store: vocabulary lists, with translations, and also links to documents. Go.

Friday, June 29, 2007

Wednesday Eve Landscape and Taxi Co.

Kingdon stretches legs and prepares to straddle the high horse

If there's two things in this world that I really don't like, and I'm pretty sure that I'm not alone here, these are them:

  1. Losing money in a bar (especially at a pool table)
  2. Watching people drive when it's clear that they've had too much to drink
Preventing these things can, in some cases, require foresight. However, as long as we've got cellular telephones at our disposal, it need not be this way!

The sign at the bar says "No Soliciting!" so I figured I'd better announce this publicly in some other place. If you find yourself in either of these situations, and you need someone to bail you out, call me up! I'm actually a pool shark in a landscaper's clothing.

Cheers,
Kingdon

Wednesday, June 27, 2007

Recipe for a Wireless ISP

Sorting through hardware that I have accumulated over the last many years, and it looks like I've got everything I would need to start a Community Wireless Network right here in my apartment complex. I've got a WDS network set up between my WRT54G and my Airport Express, and I've got a $50 D-Link DWL-730AP that I can use in client mode to connect to the network. The WRT54G is the most capable device of the three, working as a WDS base station, where the DWL-730AP behaves just like you would expect if it was called a Wireless Modem.

What does this mean? WDS means range extension; I can set up independent wireless base stations, some of which are connected to the Internet, where some are only free-standing power saps with antennas pointed in the right direction. Clients can choose to associate with any access point on the network. In theory at least, that should bring Internet access to all clients, even if only some base stations are directly connected to the Internet.

In reality I have only one wireless client to test with, and all of these devices are crammed into my apartment. The DWL-730AP has an interface that allows to select a specific access point by MAC address, but there's no way to test that this has any effect. I won't know if WDS has the desired effects without stationing the unwired base station somewhere far away, where the wired AP cannot be reached by clients. The WRT54G can be hooked up to a yagi, or Cantenna, which has the effect of producing a small cone of boosted signal, so it could still reach the distant access point even if nearby clients could not.

The interface on the DWL-730AP is not ideal for this sort of testing. If I had more time and unused hardware to spend on this (another laptop), I would hook up a FreeBSD or Linux machine and change my association from one access point to the next, to test network conditions on either side of the half-wired/half-unwired network. If the tests go smoothly, I can start whoring out my cable modem to my neighbors immediately. Score!

Monday, June 18, 2007

C'est Magnifique!

Yes, that's really a layered cake, made with three enormous loaves of meat, iced with mashed potatoes and ketchup.

Ingenious? Brilliant? Outrageous? Magnificent. A work of art. I am without words to describe. The whole nation of India had better be laughing; this is funny, even if ten cows had to die!

I got my dad a book by Bill O'Reilly instead. What in Sam Hell was I thinking?

Maybe next year Dad!

Job Hunt

There is so much crap on Craigs List! Develop an effective spam filter (Google, this means you) and you will be rich. Of course the legitimate companies out there can't find good help because all of the talented web developers are surfing Craigs List looking for work, so their postings all must look like spam too.

I think I've constructed a reasonable system to apply a human filter -- stacks of paper are one thing, but Google Reader combined with Delicious really helps with RSS feeds. Reminds me of a neural network with an extra hidden layer. There has got to be an AI application in here somewhere.

Thursday, June 14, 2007

Network Detour

Taking a quick detour to work on multi-homed storage arrays as I think this might be quite handy, with applications from off-site backup, to decreasing access times for valuable data (like FreeBSD ISOs). I mean to duplicate the specialized functionality of the Andrew File System, without quite so much focus on coding and maintaining one unified file-system -- here I hope to demonstrate that Andrew goes too far, and he does so at his own peril.

In other words, we can fudge it without losing very much functionality ... we will lose customer-oriented attention to detail in service presentation. No longer will this have the appearance to random users of being a unified file-system. I was hoping to keep random users in the loop as much as possible, but at this point I've been struggling with some of these issues for so long that I'm going to throw up my hands and answer, "this is my storage cluster. ask for help if you need anything."

I'd rather administrate a distributed storage cluster than a team of researchers anyway! So for now I will endeavor to fill my terabytes with something of value, and to make it accessible through the regular channels, whatever those may turn out to be. Ubuntu Mirrors listings and FreeBSD as well are in the sixth layer delicious notes for the day. Will probably be a few days before I can work out the kinks in the scripting and data inventory process.

I think I'll add a website with links to the data and a nice writeup about this joint interest of Tuesday Studios, Venture Creations, and the Rochester Institute of Technology. Hopefully I can justify some of the money that I have spent, and maybe if I get lucky I can get my activities tacked onto somebody's budget without too much struggle.

Today I am pretty sure that either of these commands can be used reliably inside of a cron job to create a mirror:

$ rsync -vaz --delete [rsync url] [local directory]
$ lftp -c mirror [remote [local]]

There are mechanisms to reverse the direction of this operation; see man rsync or lftp -c help mirror for more details. As long as we are only mirroring things that are already public data, then this is all you need to duplicate the effects of the AFS feature of remotely replicating read-only cells.

Unfortunately today from where I stand, it looks like there will never be a means of simple public read/write access to such a large disk. There are too many copyright issues, this is risky business -- if we're not careful about access control, we might even create something of value that doesn't technically belong to anyone, and then where will we be? Oh yeah...

This sort of policy can be enforced through other means, like access control lists on the file-system itself, or some other restriction implemented through the protocol or the server. Next step for these gigantic public mirrors are to actually make them publicly accessible and start advertising through the usual channels.

I think that I will configure both anonymous FTP and HTTP access, but I suspect that I will change my mind and use HTTP only when I get lazy. What is the value of FTP? Hmm... a convenient interface, in fact if I configure one machine with access to all of the pieces-parts of the whole storage cluster, then this might start looking like a unified file space again.

It's probably worth keeping FTP around.

Wednesday, June 13, 2007

New Router, New PC

Got myself some new hardware to kickstart the revolution, and I'm setting it up this afternoon. Thanks again, RIT, for the fat pipes; this Windows Update procedure used to take me a day and a half. Thanks to your internets, it only takes a half day.

Basic Tuesday Studios services are still down as of the last router's most recent failure. The new router is in place and I'm performing a service inventory while I start forwarding ports. Notes go here:

  1. DNS - hosted on hobo11 for now
  2. SVN - hosted directly from hobo11, migrate to virtualized infrastructure
  3. RDP/VNC - All of the machines on the local subnet should have their desktops shared by RDP or VNC. For now this is necessary, to curb the expense of a monitor at every machine and sidestep the impossible task of setting up 5 or 6 workstations in a single room. I need to invest in more lateral space.
  4. OpenVPN - Now that we've got some workstations, it would be best if some of the freestanding nodes like Irie were connected virtually to the local office network, and had access to some of the services like printing, file sharing, and local DNS and WINS information.
  5. tuesdaystudios.com Web Server and Apache Virtual Hosting - We have acquired some clients. Time to set up some kind of makeshift CRM database and get in contact with all of these people, to see what they want. Lets put up "Under Construction" pages for each of these people at least, and find an external service to start tracking the reliability of our servers.
  6. mail.tuesdaystudios.com - Mail has been intermittent at best lately. This is due to DNS server outages which should be resolved with this new router at the office. Still, it would be best to set up a few remote hosts in places with reliable network connections, as slave DNS. We do have the resources for this.

These are reasonable goals up through #4 at least for tonight. Before I post again, I mean to take care of all of these issues. I expect I will wind up finishing with #2 around 8pm, and of course by finishing I mean hitting the virtualization wall. VMWare and Windows is a whole lot more difficult to administer properly across a network. Live notes are rolling as always on My Delicious Feed.

Saturday, June 9, 2007

Data Retention Plan

You want a data retention plan? I'll give you a data retention plan. Open up your organization! Depend on free services! Put everything you own on the internet, and you will be just fine! Trust me ;-)

In related news, there's a new class of student companies joining us at Venture Creations, the business incubator sponsored by RIT, which houses Tuesday Studios and the server room! In reality I do have some servers of my own, and I have really put a lot of consideration into data retention over the last 8-10 years as I have watched my own precious data occasionally slip through the cracks when tossing an old computer to the curb. First step is to centralize your data and then give it to me... I'll take good care of it for you!

If that doesn't sound attractive to you, then my next recommendation is to give your data to Google. If you're worried about data mining, no, I'm sure it'll be MUCH safer with Google than in my own server rooms... the world's foremost experts in data mining? Nah, I really don't think they'd try anything too fishy.

Still, if that sounds too much like charity, or you like the idea of doing things in house, I am always happy to pay a visit and perform a consultation, or give a tour of my own server room. I could fill at least 1 hour's time talking about where I keep my data, and the measures that I employ to keep it safe.

In fact I will even go so far as to say, free consultation. Bear in mind this may be a limited time offer; I could get very busy tomorrow. You know, this is not a contract to work at no cost for the rest of my days.

I was going to start digging up information on those new companies at the incubator! Tune into my del.icio.us feed for the scoop, I'm going to see what Google already knows. Hopefully I'll meet some of these people soon and post again to tell you how cool their services are; I don't like to interrupt people when they're working, and everyone tends to look busy when I walk by their desks. I wonder if that's because my card says President?

Friday, June 8, 2007

Marketing Woes

This is bothering me, and so I figure I'd better blog about it. It seems like technical people (in particular the most brilliant ones) have a generally hard time relating with people, especially when it comes to anyone who works in marketing. I've seen this recur so many times that I think it's worth further analysis, in fact I would like to write a book on the topic! Any publishers interested? Sign me up! :)

Technical people spend a lot of time in front of a computer, doing in-depth research on complex systems. Conversely, I see marketing people, and I observe a strong affinity for personal contact and the 30 second message. Here at Tuesday Studios, I call myself the President of a Middleware company. What does that mean, practically speaking? I do my best to play both roles, without exploding or any similarly horrible fate!

What does this mean to you? Well, I'm the president of a company with really just one employee... so in truth I hope it means that we will be the best of friends, whoever you are, or may decide to be!

Namaste

Tuesday, June 5, 2007

File Server Upgrades

Just purchased two 500GB drives and set them up in a spare server as a Local Area Network fileserver for the tuesday.local domain that I have running in my office at Venture Creations. I'm copying 300GB of data over from other servers as backups, before I start changing things around again I am nervous about doing that sort of thing. The last time I changed anything at all in my Windows network, (this is a VMWare Server upgrade from 1.0.1 to 1.0.3 to which I am referring, gone slightly awry) I wound up hosing my entire cluster!

Fortunately my developers have been on holiday and they didn't seem to notice the disturbance until a couple of days ago. Anyway I'm about to completely refactor the main VMWare Server cluster by reformatting the main server and stripping down to bare minimum services, then probably add another one or two servers to the virtualization cluster. Maybe I'll even have a go at configuring Xen on one of the Debian servers! This progression should happen in fairly short order if time and funding permits.

I'm now about 52GB through the backup process and this is going to take hours. I'm going to take a break from computers and do the dishes!

English Vocabulary Lesson #2

Lawyers make claims. Well, that's not all there is to it; they also substantiate them, and sometimes defend against them. A plaintiff and a defendant is not exactly the same as an ally and an enemy. In law (and thus in times of war) there must always be two or more parties. In business, and Microsoft will let you know if you just ask nicely, it's really much better for everyone involved if we're all allies. Still, don't let this fact stop you from making claims!

  • substance - the stuff of which an object is composed: in schools of thought, the message, central meaning; in rhetorical analysis of software systems I will always insist that the kernel and process scheduler represent the substance of an operating system.
  • substantial - having a firm basis in reality, and being therefore important, meaningful, or considerable; not imaginary.
  • substantive - meaty, real, essential. substantive is a grammatical term whose meaning is lost on me. I would have to see some examples, duh, of what do you suppose an non-substantive looks like exactly?
  • substitution - In theater, the method of understanding elements in the life of one's character by comparing them to elements in one's own life. In a psychologist's office or a business meeting, a defense mechanism, operating unconsciously, by which an unattainable or unacceptable goal, emotion, or object is replaced by one that is more attainable or acceptable.
  • subsumption - A subsumption is a relation which specifies the relative generality of two concepts; incorporating something under a more general category. For instance: most graduate students are college graduates before becoming graduate students.

Recall from Lesson 1: Most cultures proscribe stealing. Some people equate piracy with theft. Some laws and practices place a value on things with no unique identity as an object. Calculus is required to quantify value in such a situation and logically explain this phenomenon.

The question of the day: what differentiates a graduate student from an undergraduate student? The answer, I hope, is all of these administrative theatrics and hazing rituals! I actually didn't wear the cap and gown, nor did I attend my own High School Prom.

More news tomorrow; still, for today the virtual server outage continues! Hard drives are on the way from New Egg, and I will contain my ecstasy at the latest interactions with Microsoft until I can properly explain my position. The instigation continues!

Monday, June 4, 2007

Facebook Work

Been contemplating lately what kind of groups and other manners of dancing that I should focus on involving myself with, centering around questions like who exactly is going to pay to fund my continued existence. This is not a question of depression, it's a matter of practicality!

The best way that I can think of to kick-start this process is to update my resume. I've been meaning for a long time to build a resume that allows central maintenance of both a printed and an online format. Second note here is that all of my previous resumes have been focused on providing a long list of technology keywords, and I'm not sure of the benefit of that anymore.

I have used a large number of programming languages and it is not helpful to enumerate them, as I will generally need to refresh myself with a book and some form of homework before I can successfully jump into another coding project. Also from my own perspective, I would rather work with a technology that is new to me than one that I have already struggled with before now, so a list of my own known technologies is almost a "bad seed" for any manager that might seek to hire me.

Also while it's helpful to know a lot of languages, usually programming takes place in one language so it could be quite helpful to regain fluency in at least one programming language before re-entering the software development job market. The neatest target language with the most interesting developer buzz ongoing today is PHP and the Facebook Platform API.

I think I'd better set up another server this evening and see for myself some of what can be done in PHP today. Facebook is an incredibly massive well-ordered database of information on groups and individuals, and I suspect the platform is especially ripe for data-driven applications! Lets get one started, or take a closer look at one of the applications that has already been developed.

Friday, June 1, 2007

Statistics

One interesting statistic that tells about the self-perception of illegitimacy in BitTorrent for sharing movies:

Average Speed:
Do the Right Thing (Spike Lee) 10 kB/s
Pulp Fiction (Quentin Tarantino) 30 kB/s

What else can be inferred from this statistic is left as an exercise to the reader.

Gone Out of Town

Let me ask you, what fun is being out of town if you're still charged with the task of taking care of business while you're away? Isn't that the point of going out of town, to get away from taking care of business for a little while and do something else?

Learned to cook orange breaded catfish this week, and it's really quite delicious, especially with a bowl of rice and some light oil. I've got a nice Pyrex pan also that makes cleanup a non-issue. Observe the phenomenon under intense pressure from Chinese of a newborn clean sink at Kingdon's house!

... nope, I still haven't had kittens.

Monday, May 28, 2007

Shoes from China

I have agreed to purchase some shoes from a vendor in China. The check is in the mail, as soon as the bank holiday is over I intend to cash it and the money will be delivered via Western Union. I hope there's nothing illegal about this, it feels somehow scandalous in my experience! Think about cleaning houses...

My favorite house was the one which contained so much dirt beneath the rugs, I was nearly certain that I had begun pulling up foundation from beneath the floorboards! I pulled quite easily 10 bags of hair, dirt and sand from beneath an area rug no bigger than an 10x10' area! The family owned a Dyson if I remember correctly, and the maiden of the house was so happy with her previous purchase that I didn't have the heart to sell her another vacuum cleaner that I knew she wouldn't use anyway.

As I was saying before, when you clean your house, you want to finish at the end of the day and have a clean house! It's not like weeding a garden, especially if you've planted something from seed and you don't know what to expect the sprouts to look like. I have to familiarize myself with the appearance of Zucchini, Lavender, Catnip, Eggplant, Spinach, Tomato, and one other plant whose name escapes me. If I fail, I risk pulling the very seeds I wish to sow! Then what will these animals eat?

More notes on immigration reform soon.

Yours truly,
Kingdon

Some things are Not The Same

Running a Nursing Home is not really anything like Waste Management, and I hope you all know how serious I am about this! Also immigration reform is not like gardening, is not like cleaning a house. It's another issue altogether.

Rather than starting in the middle, lets discuss the area in which I have the most experience. Cleaning a house! Actually I was only in this line of work for one week, but it was a high-paying week! I worked for the Kirby Company going door to door, to see if anyone wanted a free cleaning service and maybe buy a vacuum when I was finished. The only customers I made were my parents and grandmother, who each bought Kirby Cleaning Machines for their homes.

Still I did convince a number of people, at least 4 home owners, to invite me inside of their home and I wish I had kept a diary of my experiences. I met some very interesting characters in a week's time! But certainly nothing like the excitement of Monday morning in China!

Breaking news, I will be with you shortly after the completion of a business deal.

Sunday, May 27, 2007

Morning Activities

Today, yoga and the mac. I can sacrifice my second monitor from the office, it's kind of fuzzy anyway and would make a much better TV in the main room.

Lets see if I can hook up the cable modem via USB to the mac, and set it up as a router... yeah, on second thought lets not do that. It could be a good idea. But then I might still might need to hook up another hub or router in lieu of just the Airport Express.

We're going to need a hub one way or another, unless I get another Mac Mini or hook it up with wireless. I do have that spare wireless card at Tuesday Studios...

Next option for something to do is to move Blackruby to the home office, and made it into a server/router combination. I want to make one machine responsible for the VPN, so the rest can just auto configure by means of DHCP and be "on the network" as if connected directly to the main office LAN. The future is hazy with regard to how this is actually going to fall together.

Current location: Home Office
Next stop: Tuesday Studios Main Office

Outbox:

  • Ubuntu 7.04 Desktop LiveCD
Inbox:
  • Wireless MiniPCI Dell TrueMobile 1150
  • 2 More Monitors (from Warsaw: for BlackRuby Primary Head, Notebah x2 Heads)
  • Internet Stealing Device (from Waterloo)
  • VPN Link (from Home to Tuesday)

  • Secure Remote Access
That is all, until later.

Saturday, May 26, 2007

Essential Network Services

OK been living without things I once considered to be critical network services for well over a week at this point, now it's time for a state of the network address:

  • Revision Control SVN: UP
  • RAID5 Samba Shares: DOWN
  • LVM Samba Shares: DOWN
  • Futuristic Video Portal: UP
  • Mac Mini VPN Router: DOWN
Called out a raindance on my facebook Posted Items, and I've got my umbrella shared in Google Reader. Thanks for all of the websites!
  • RSS Workspace: UP
  • Rain on Garden: UP
  • Headphones: OK
The headphones are actually still chilling in main office with the broken keyboard. I want to get a Chat50 for my home, the headphones are goofy looking.

In the office: three machines are up and running on a production basis: Sheng, Hobo11, and Grandma. Grandma is the new router, and Whiteruby is in pieces scattered across the floor. Blackruby is similarly disconnected, both have no apparent purpose and will make fine workstations. Akhira is not booting for reasons still unknown, and the Indigo2 is chilling in the corner, working just fine but nobody knows the password to see what it's doing.

VMWare Server is still down, on account of the SAMBA breakage has taken out access to all of the Virtual Machine images.

Subversion is back up and running, and we have bypassed LAMP. Hobo11 is the primary Apache Server for now.

Tomorrow, install Ubuntu on Blackruby and see how much space we can muster across a VPN, and how much data we can recover onto reliable disks. Hopefully Wednesday has not lost anything permanently!

Quantum Physics Proofs

OK! We've really done it now! And with nothing more than a standard memory machine!

We've had quantum principles demonstrated, including superposition, heisenberg's uncertainty principle, at least three partial entanglements and a fully valid prediction of one other complete entanglement.

With both willing and unwilling suspensions of belief and disbelief, I wonder if it's alright I skip breakfast today? Commencement ceremonies for graduation of the Golisano College Computer Science Class of 2007 kick off at 12:00 in the RIT Field House today! And also three spots at breakfast have been reserved at The Radisson on Jefferson in my name, which I may not attend if I still have my own free will after last night.

This information should be helpful to anyone who is starving. I do have another valid ID for you if it comes down to that.

Friday, May 25, 2007

Language Learning Resources

Looks like language learners with internet connections who are nearly ready to sever ties with their universities are in luck this week! There are a plethora of language learning resources online. Here is a brief overview of the services I am currently aware of, with an emphasis on services providing syndicated, iPod formatted content.

Unfortunately I don't have the mental capacity to study all of these languages at once. If anyone has used these services, please feel free to contribute a review. In my experience I have found ChinesePod to have the most advanced framework for any language learning podcast.

I had an idea for a daily feature on my blog, where I sit down and explore the web with an emphasis on a particular language. I could fill a week worth of time easily just searching for audio and video content and content providers, and general information about podcasting and iPod-type devices, in a new language every day. It would certainly be helpful to language program coordinators to have an idea of what kind of valuable free content is available to the students of each language. To be specific, I'm trying to improve this page:
However, that's going to be a lot of work, and I'm not sure I fit into the budget, nor do I have access to the source code. In the mean time I'll just focus on ArabicPod. So far I like the Praxis suite and ChinesePod content the best, and in lieu of building some kind of direct partnership between Praxis and ArabicPod, I think the best thing that I can do with my skills is to start using ArabicPod, try to contribute something of value on the podcast forums, and to help add new features as opportunities present themselves.

English Vocabulary Lesson

Computer scientists talk about scripting, where computer scientists and film afficionados both are responsible for producing, reviewing and handling scripts. A film maker is like a programmer. I wonder what else we can do with a script?

  • conscription - involuntary labor demanded by some established authority.
  • orders - something a conscript or conscripted person would receive from the authorities.
  • transcription - something written, especially copied from one medium to another, as a typewritten version of dictation.
  • prescription - instruction or direction delivered before, as authoritative rules, codes, or orders.
  • proscribe - to prohibit, condemn, forbid, command against.
Most cultures proscribe stealing. Some people equate piracy with theft. Some laws and practices place a value on things with no unique identity as an object. Calculus is required to quantify value in such a situation and logically explain this phenomenon.

Thursday, May 24, 2007

Outer Space Wedding

I think it would be nice to be married in outer space. That is to say, if I was getting married tomorrow, I would prefer it to be in outer space. The ceremony. And I suspect that only one man can truly understand what I've just gone through. FYI I would bet that his name is probably not Takeshi Kitano. If I was a gambling man. Still.

Now can I Wordpress? I mean, now can I pleeeease Wordpress?

  1. What now?

Wednesday, May 23, 2007

Recipe for Disaster or A Chicken Allergy?

So I've either derived the official Recipe for Disaster, or perhaps I've developed some sort of allergic reaction to Chicken? Anyone who was at the last Wednesday Eve should be able to vouch for me here. It's actually not very good, when you do it backwards like that!

So far my ability to consume Beef has not been affected.

Here's the thing. I like cows, and I wouldn't want to see anything bad happen to one of them... so the unasked question that appears before me, is it really fair to eat the meat of an animal if I would have chosen not to watch the slaughter?

I suppose that life isn't really fair all of the time. But we can always pretend together, yes?

Tuesday, May 22, 2007

Why I Quit AIMing

Hello Grandma!

I heard you won't be up for graduation this weekend! It's just as well for me that way, I'd rather have you come visit some time this summer when everything is well. We can go to Korean House to celebrate, it's a very nice restaurant only two minutes from my home.

I've been meaning to call you but your phone is very busy. The internet really simplifies communication so much I can't imagine how anyone would maintain a business using a phone with only one line. In fact I don't think I have much need for a phone at all these days!

Only a handful of people left who are nostalgic enough to contact me in this way :) I have been speaking with a girl from Argentina and a fellow from Taiwan both using MSN Messenger. Or typing back and forth with webcams anyway... I find it's much more enriching to have a conversation with a live face, regardless of the other linguistic media that you may have in play.

Juozas is back at home in Lithuania, living with his girlfriend Akvile. I don't know to what degree they have "merged stuff," so to speak, but from the looks of things they are very happy together! He's got a nice apartment and it is clean and well-decorated. We're moving up in the world, no longer do we need newspapers to cover up our messes!

I think I will have a hard time convincing him to move back to Rochester, really I think he's served his time at Microsoft and is again back in touch by means of the web, and it might stay that way. I meant to leave a webcam with you last time we visited, but I think it has migrated back to my office at RIT. I'm afraid I might not be a very good Internet salesman, these things are really not very complicated if you don't make it so.

It's one thing to use the Internet as a tool to maintain contact, but remember that I've grown up in the brave new world where you can actually meet for the first time and initiate a relationship that way! I am a big fan of this and for anyone who hasn't had the experience I think that you are missing the boat entirely!

In case you want to try out some of these tools on your own, there are two major services that are any good for this sort of chat that you should definitely know about. One is called Skype, and the other is MSN or Windows Live Messenger. This is truly a market with lots of competition but nothing else is so outstanding that I would recommend it to a new user.

People on Skype tend to be more outgoing than MSN; I filled out a basic profile and I have had a number of "hits," meeting and speaking for the first time with people from anywhere in the world like I just bumped into them on the street. Windows Live is another service altogether; this is a more cohesive service with better software in my opinion than Skype, but in the words of Clement Chan, "White people don't use MSN." Which is great for me, the compulsive language learner!

To contrast I have not made one single new contact by directly using MSN in spite of filling out a profile. However I have met a number of people on Skype that prompted me to shift our communications to MSN, on account of it being a better service and more convenient to use. Not good news for the Skype team I'm afraid! But both services are far superior to AOL Instant Messenger. Now how will I convince my friends to switch :)

There's something to be said here about how we maintain a contact list and developing isolated bubbles of friends that effectively can't contact each other directly... to make a long story short mostly everyone in America who decided to participate in the Instant Messaging revolution joined up with AOL Instant Messenger when it first came out.

Today we've all got our accounts and our screen names, and many people use this service as a direct substitute for in-person contact with their closest friends, in spite of it's being easily the worst software on the market!

Compare to your cell phone address book, but then imagine that you wish to change providers. You can only contact these people through AIM because their screen name is a part of the AOL service. Want to get a new provider? Sorry, you'll need new friends also. Those Verizon Wireless commercials just took on a whole new dimension of weird for me and my friends!

Anywho Skype is the competitor in perfect position to repeat the same scheme on a global scale, with a team of smart developers and a great product that is constantly one step ahead of Microsoft. That would be the hot stock to watch today, if it were being publicly traded.

In the mean time, I'll have to be sure you know how to use one of these packages before I can go to Egypt! Skype is truly a much better deal for this purpose than anything the phone or cable companies are selling today.

Sunday, May 6, 2007

Spiderman 3

I just saw Spiderman 3 in the theater by Walmart, and I don't think I'll ever be quite the same!

Three Thumbs Up!

Wednesday, May 2, 2007

No Pants Friday!

OK, this friday is No Pants Day and also the cable guy is coming to juice me up. I'm having a No-Pants Party at my place, from morning until night (depending on the timing of the cable guy) to celebrate the installation of the Internet. More news will follow as I know more; RSVP while you can!

Rest assured this still fits into my "don't trust a computer" philosophy; I see a future where we are heavily dependent on social networking sites to organize and communicate, which paints a pretty grim picture for security professionals in small business! Nobody seems to get the group administration thing quite right; Facebook has it down pretty well, but the utility of a facebook group is heavily dependent on the personality of the members. Every groupware system should be as flexible to administer as an IRC channel, and no more complicated to manipulate than an Explorer or Finder window.

I would say the next runner up behind Facebook is Google Groups and Google's beta Domain Hosting services. This is certainly more focused on providing infrastructure for an organization as opposed to informal or ad-hoc groups. Either way, I like nailing things down; the goal for Friday is a multi-point no pants video conference that you can visit through a simple web interface. It would be nice to integrate a jabber server so we can keep notes (?) but any sort of text chat interface will be plenty good for the purposes I have in mind.

Working with Windows machines and TinCam software (~$30), and so far not having very much luck. TinCam sends an .html and a .wvx file over ftp to my web server no problem. The website is accessible at http://nerdland.org/~kingdon/cam/webcam.html, but so far no dice receiving from the two computers I'm using to test. I've left this up streaming and I'm going to go grab my laptop, maybe I'll have more luck working on a machine with a publicly addressible IP. If the webcam works for you or if you have experience with what I'm trying to do, please do leave a note.

Tchues for now!

Monday, April 30, 2007

Video Portal

I'm installing a video portal (like Johnny Mnemonic!) in my home and in my office. Concerned about the rising gas prices and global warming, I'm working to minimize what might be an excessive amount of driving around and using my car. These are the two places where I am most likely to be found.

Working on the idea of providing instant feedback, because people seem to like things immediately. Seeing how I've finally caved and am installing Time Warner Cable Internet in my home, I don't see any point in keeping a phone; as an experiment I'll be using the Internet exclusively for all sorts of personal and business communication.

More news at the top of the hour. If I have left you in the dark please don't take it personally! It's my goal to satisfy everyone.