Wednesday, June 24, 2009

Substruct Web Store (Tutorial)

The goal of this article is to provide a detailed step-by-step introduction to installing Substruct for Debian (unstable). I installed Substruct on my Windows system, but server loading times were inordinately slow and I got the impression that it was putting an unnecessary burden on my local machine's processor.

Then, when I migrated my installation and database to a Debian system, I had strange problems crop up, like the "Not ready to buy yet?" message would not appear, and my "Add this item to your wishlist" button would start overlapping the "Add to Cart" button. Not cool! So, I decided to gut the provided installation of Ruby and try installing Substruct from scratch.

First step is to download Ruby from the Download Ruby website, compile and install. I recommend the old version 1.8.7, which you will have to dig out of the FTP archives; they are pushing ruby 1.9.1 now, which doesn't have support for the ftools library, something that's used by Substruct; you will surely need some basic developer tools installed already to begin the ./configure; make; make install procedure. Once you've got them all and started the compile, go and make yourself a sandwich. Should take 5 minutes unless you're strapped for memory.

Now that you have your own custom installation of Ruby, you'll need some Ruby Gems to commence the Substruct installation. Get the latest version of both, and follow the instructions to install Ruby Gems (basically ruby setup.rb), then install the gems required by Substruct (gem install RedCloth fastercsv mime-types mini_magick ezcrypto).

Someone needs to use the computer. I'll finish this debugging process later.

Friday, April 24, 2009

OpenAFS for Windows?

Does anyone know how to set up an OpenAFS client for Windows? Aww hell I'm going to pittsford.

Saturday, April 11, 2009

New Coke: The Home Network

We've got some new machines for the inventory:

  • 192.168.22.3: IRIE bare metal, an HP Pavilion Slimline configured to run either CentOS Xen or Windows XP SP3 from the RIT CS Department. Running Xen is a preferred configuration, but with one major deficiency: after all driver issues have been resolved, I'm left with a setup that can't play movies and boots flash videos! Bummer. At least it makes a good fileserver.
  • 192.168.22.48: WinXPSP3 xen cfg, boots under CentOS 5.3 Xen dom0 where everything works fine but network video performance is slow. One minor problem is a clock skew: the system reads UTC time properly from a registry hack, but when the system is left alone for a while, the clock flies ahead by four hours and has to be reset before kerberos authentication can connect to the OpenAFS cell hosted on debunst.rit.edu
  • 192.168.22.1: The router that needs to do the magic so you can connect to either of those new machines on my home network. It's a Linksys RVS4000!
  • 74.74.157.120: The public IP address of my home network.
The list of machines at the office needs to be updated, and a service catalog is soon to be extant.
Customers inquiring about the current state of the system: you can understand that the system is currently in use, and that a new shared instance can be provided at your request, but you should expect an expense of $300-600 for a server of similar quality delivered to your location. Configuration is a further expense that pertains to the state of the system, and I earmark this task at $200 per machine. You can run linux, you can resell services, and you ought to, if you like to help people and make money!

Wednesday, March 18, 2009

/home (exported from irie-arch:Tomboy)

No More Network Video! Please

We have managed to secure device (/dev/sda1 10GB:/srv) to keep some movies and a basic image of Debian Stable (lenny) for bootstrapping Xen instances of domU.

The deployment target is (/dev/sdc1 10GB:/home) where the disk is ext3 with reasonable permissions, and the space has been liberated from network video users.

Our system has a dangerous (/dev/md0 446GB:/) that is probably pretty safe formatted as XFS, with something like 100GB free thanks to a lost 100GB filesystem that was hosting a system running Ubuntu.

So, we ought not count on that 446GB! Instead, find a way to utilize that 100GB such that it can be "snapped" and utilized en-masse by another system, like the 120GB guest OS living on my VMware Infrastructure disk.

When we have another system somewhere with 500GB that we can trust, until then, scripted deployment is king and federated virtualization is a pipe dream that we need not realize now or in the near future.

There is no need to copy hundreds of gigabytes! Your application is insignificant.

Tuesday, February 17, 2009

Red vs. Blue: The Phone Company

Payment processors: I got another call from my T-mobile representatives today, asking for a payment on my phone bill. I gave her the card number and she charged $80; I could have a G-one phone for that price every month... instead she said she'd apply the payment to my FlexAccount.

What she said next intrigued me: make sure you call tonight or tomorrow to make the payment.

Didn't I just make the payment? I guess she would have responded like this:

"No, you just put some money in the account. The payment is a variable amount, based on some combinator on the services you've asked for, the services you've received, and the numbers we gave you when you signed up for the account. The number that's deducted from your coffers every month should be a flat fee, and it shouldn't be too high. If you've got $140 in your flex account and you're using less than 300 minutes every month, it's not going to be $70.

"$73.83 is just a number I threw out to get us started."

Whoa. That's heavy shit. Sidekick Unlimited plan at $19.99 plus Individual Basic with FlexPay for $29.99 is just shy of $50. I asked for the Individual Basic plan with 300 whenever minutes, and I think I should have it. I don't use more than 300 minutes on my phone during prime-time. I've got other phones that don't charge me $0.15+ every minute past my allowance. Some of these phones don't even maintain an allowance!

The last few months I've been paying for 600 whenever minutes, in spite of my demands. Do you know we don't even get rollover? So here's what she did for me: she took some money off my credit allowance with Capital One, and she put it into my FlexAccount. Actually, she put a note into a message queue, and that payment will be finally processed when they get to it.

Meanwhile, I'm going to talk to someone else with the right to refresh my account, and they're going to listen when I say, "There ought to be enough in my FlexAccount to cover the amount due for my monthly payment. Now, can we see how much that is supposed to be?"

She's not from FlexPay team. She represents me, with T-mobile. The distinction is quite fine.

Monday, February 9, 2009

Tryouts: XulRunner Data Grab

So, I've got this hunk of data little over 1GB that I'm pretty sure is going to be essential to my business. It's not the 1GB size, or even the particular data that I'm working with, but the fact that I need access to it, at whatever machine I'm using today.

We've got two users on the same machine collaborating on that data using Unison File Sync. How's it going? One user wants to use Subversion, the other wants to use Git. Integration is a pain that we don't want to tackle now. So, we're giving each user their own copy of the data, with their own exclusive write permissions on that copy, and they can share that data with anyone. They're going to share passwords, or they're going to share a third-party data store on another machine, and it's going to handle the access control rights between these two folks.

Unison supports most popular file transfer mechanisms. Our hunk is exported via FTP to Kingdon's own location on the house machine, /export/ftp/home/kingdon, which is encapsulated in a chroot jail so FTP users can't get out without connecting by another protocol. The firewall is responsible for making sure that only appropriate users will access the machine by any protocol, either FTP, SSH, IMAP, so there are actually plenty of different ways in, but this port's VSFTPD process is restricted to data inside of /export/ftp because it was executed inside of a chroot jail.

The firewall isn't doing its job reliably. The first firewall gets its IP address from the cable modem, doles out a static IP on a private subnet to the second firewall, which assigns a static IP to the house machine on a second private subnet, exposes the whole internal network to anyone with an 802.11 wireless client device that knows how to read, and forwards port 21:FTP past both firewalls to the house machine, so users on the outside with a username and password can access FTP and that big storage area with about 120GB of space on /export/ftp

kpb1363@hilly:~/spring2006$ ftp house.tuesdaystudios.com
ftp: connect: Connection timed out

Bummer. Try again tomorrow? I'll look at the firewall and figure out what's up when I get home.

Ruby on Rails: http://getontracks.org/downloads/index

Tracks has a new version out! I'm going to deploy it on my ArchLinux host, currently represented by irie-arch.tuesdaystudios.com, and I wanted to put up a page there that describes the services exposed, including pricing info, in case someone asks for their own copy from me. Maybe I'll use Instiki for this.

Meet our customer and his ad-hoc server farm (two machines in one) that live in Rochester on a University network, with a nearby home-based backup server for super cheap.

Thursday, October 30, 2008

Live Development

Today working on Lighttpd

fit and fit2 - I'm learning Korean! It's a lot of fun, and the teachers are very engaging. I've got my classes to finish up this quarter, so you might think that I am taking on too much. Not so, I am easily distracted, and it's actually a big help to walk around wearing headphones.

Just hope I don't get hit by a car ;)

Step 1: I wanted to be able to edit my code in place. I am coding in Haskell for Axel's Programming Skills class; it's a very interesting functional language, and it can do anything that C can do. In fact, the haskell compilers can actually produce C. You probably want binaries.

Step 2: I was sitting down at a mac and something convinced me to visit a Korean website! This website was produced by a korean; at least he has a korean name. Neither here nor there; I was sitting at a mac, and I was very impressed that when I pasted Korean text into my code, it lived in the terminal! I was using gnome-terminal, forwarded from my irie-eth0.rit.edu ssh host.

Windows is not so easy.

So what happens if I wanted to document my code in Korean? Korean developers can't use Windows! Unless... if it was a web application! So long as they have the correct fonts installed, Korean developers with a web browser could read and edit my code in place.

OK, so they could e-mail me too. But, my phone doesn't handle Korean either... I needed a good project that won't run out of problems, and this was it.

Back to the mac, I started learning on the 2-set keyboard layout. That means consonants are on the left, and vowels are on the right; the top row consonants can be repeated to indicate aspiration. An aspirated consonant is P instead of B; I hope you can hear the difference!

I thought it might be inconvenient to install the Asian keyboard layouts, especially if a system administrator has denied you permission to modify your keymaps. So, this particular system administrator hasn't done it... he hasn't installed the east asian fonts where I can get at them, and he hasn't installed files for complex script (joining) or right-to-left languages.

Those boxes are grayed out.

What does it mean? Even if I can get the fonts, I can't guarantee that my keyboard will send Korean signals to the program input. I need a function to translate english language characters to hangul, and it's not transliteration. Unless... does a tree fall in the forest?

Were you paying attention? I'm saying that the sounds on the Korean keyboard are not in the same place as a QWERTY. They're not illogical, they're just different.

Yes, they're actually stepping on your toes.

Sunday, September 14, 2008

Dual-Booting EeePC on Ubuntu and Debian

Hardware

My new Eee PC (I call it kpeeepb) came with a variant of Debian Linux installed, ASUS-branded Xandros. Two problems: I don't like branding, and if you follow the instructions on the EEE Wiki called "Pimp My EEE", you wind up with a brick that (while it can still read Word documents) hasn't got any disk space left for user modifications.

Unacceptable, I bought a memory card just so I could mod the thing out, now I've got Ubuntu installed on it but until recently I had mucked the thing up so I couldn't boot without using a USB Key. I don't know. I've got it fixed now so Grub is installed on the main system disk, and you can actually boot the XFS root on my memory card if you want to use the basic Ubuntu Netbook Remix.

I'd rather have Debian EeeOS on the main disk, so you can actually boot the system without a memory card. I was kind of hoping to use that memory card for carrying movies around with me, and if I could keep a backup of my own modifications with a pretty small footprint. The installation instructions call for an already working Linux system on the host computer, the backup Ubuntu System OS is on the memory card. I will need that if I turn it into a brick.

As long as I can boot GRUB, I should be able to enter these commands with the memory card in and expose a working Linux system:
grub> root (hd1,1)
grub> kernel (hd1,0)/vmlinuz-2.6.24-21-eeepc root=/dev/sdb2
grub> initrd (hd1,0)/initrd.img-2.6.24-21-eeepc
grub> boot
I've entered those commands and the wheels are turning... sdb has been recognized in only 731 jiffies... next my system is booted, and ready to overwrite the main system disk according to the instructions.

Oh no! I put the root filesystem specifier on the wrong line, initrd booted but the kernel couldn't find a root filesystem, and the grub process dumped me out to the busybox prompt. I thought I would mount my filesystems and poke around just to see what happened.

Well, I forgot to unmount them, and apparently ext2fs is just that fragile!
grub> kernel(hd1,0)/
Error 2: Bad file or directory type
So, I'm going to have to take a detour on these instructions. Ready to wipe my USB key completely, lets install eeeos_beta2 on the key and boot from that. There we can run e2fsck and find out what happened to my /boot partition on the memory card.

If that exercise was any indication of my luck, I'm going to need more than one solution for independent backup.

gunzip -dc eeeos_beta2.img.gz | sudo dd of=/dev/DEV

On IRIE, the DEV here is /dev/sdf1 for the first partition on my Kingston 4GB Data Traveler. Depending on phases of the moon (or, what device gets plugged in first) this is either (hd1):/dev/sdb or (hd2):/dev/sdc on the Eee. Once the system is up and running from the stick, I can copy the beta2.img file to the main system disk and complete the installation instructions normally.

Wait... I can still fix it without the stick! I had the foresight to copy the newer 2.6.24 kernel from Ubuntu system onto the Xandros root on sda1. My kernel is still hanging out somewhere I can get at it. I should still be able to boot. Phew!

Oh well, of course I will be overwriting it soon enough... don't forget to fsck sdb1 first chance you get, it really needs the cleanup after that mess.

Commentary

I surely won't need these instructions again. The machine is a rock. It's not going to need another reformat, once I installed Debian. Maybe a new set of menus... but that can wait until I learn some UI programming.
D'oh, so I really hosed that ext3 partition somehow. I think it's best to leave the booting to the system disk. Here's what you need to get strapped into Xandros, or whatever is the main system on disk sda1:
root (hd0,0)
kernel /vmlinuz root=/dev/sda1
initrd /initrd.img
boot


Looks like it's Ubuntu today.

Homework List

Today is C#/Haskell day. There is an assignment each from last week that needs review, and an assignment each for next week that needs new code. Systems Programming assignment was not completed, I think it's due this coming week... one Physics WebAssign each week and the first has already been lost to inattention.

Chemical Literature: the first submission of my Bibliography (using the Professor's template) is due TONIGHT at 11:59PM on RIT's myCourses website.

Sunday, September 7, 2008

lets jack mycourses

My annotations are in plain, unitalicized text.

<<<>>>
Authored by: Alexander Haruk
Authored on: Sep 4, 2008 10:01 PM
Subject: Once Again All The Talk of Academic "Integrity" Makes Me Want To Rant


  1. No

  2. Not Sure

  3. No

  4. No

  5. No

  6. Yes

  7. Not Sure

  8. No

  9. Not Sure

  10. Yes

  11. No

  12. Yes

I suppose I should explain myself and these answers. These talks are always the same repetitive thing, nothing new is ever said, and frankly the scenarios almost always piss me off.

"A student completes a paper and submits it for two courses, but each requires 'original work' prepared for this course." This one always pops up, and it's the same thing "This is a very bad thing to do, and uh if you do it your a Nazi!" Reusing something that you wrote should never be thought of as a bad thing. Suppose you wrote a report one year How the Color Red Makes People More Inclined to Defaecate, or some such nonsense, then the following year your boss (yes this was an employment setting) want's you to do it again, and he tells you to put in all the new stuff. After checking you find there is nothing new, so you give the same thing again. Or alternatively you retake the course. Understand my point

Timeshifting is good. Nobody should be able to monopolize your hours in your day, requiring you to tediously repeat something hour after hour or day after day. OK so maybe it's your livelihood (hey professor) but maybe you're not carrying the news that day? Nobody, least of whom should be the cable company! #kpb

"A student allows another to copy his or her work during an exam." This is rather ambiguous because it doesn't specifically state that the "work" has anything to do with the exam. If it's a French exam and the work being copied is homework for Anthropology then "No." Even if we assume it is for the same class it still isn't necessarily wrong. What if what's being copied isn't on the exam? There's really only a narrow circumstance where this is wrong, if and only if what's being copies actual pertains to the exam.

If the purpose of an exam is to test each student's individual knowledge of a subject domain, then it is rendered ineffective by two students sharing information inside the walls of the exam room. If the goal is to engage in discussion and present as many facts or viewpoints as possible, then to copy is to share and to enlighten. The test is really about your note taking ability, one way or another. #kpb

"A student uses copies of previous exams to study, but the instructor does not return exams to keep." This isn't wrong for one of two reasons, either the instructor is an idiot and doesn't notice that he's short a graded exam, in which case shame on the instructor, or the student is able to transcribe an entire exam without being noticed, in which case the student deserves to keep the exam.

"A student obtains information from someone who has taken the same exam in an earlier secion (anyone notice that spelling error before?); the instructor requires all exam takers to sign a vow of silence." Unless the instructor works for the Pakistani intelligence agency (or something like it) and the punishment for breaking the vow is death it's unreasonable to expect people to keep their mouths shut.

"After taking an exam, a student 'swipes' a copy that is not supposed to be 'out.'"

Note: The following is based on the assumption that "after" means immediately after and is confined to the testing area, and as such does not apply to any breaking and entering at a later time or date.

Again the scenario is left open to interpretation. This could be the way a person similar to the one in question 3 operates (technically can't be the one in question 3, because of the presence of the word "return" in the question) or the instructor brings copies of the next exam with him; making him an idiot and deserving of his exploitation.

Is nothing sacred? In the industry, we have what are called trade secrets. A degree (or lack of degree) is a sort of bar to entry into an industry. Professors should be expected to invest in their testing materials and to proffer grades accurately. How then if they must take extra care and invest in "safe" workspace and storage of their valuables to keep students from stealing them?

#kpb

"A student obtains a term paper, report, or homework from some source and turns it in as his or her original work." Well obviously it's wrong. It's like asking if counterfeiting is okay.

"A student uses a programmable calculator during an exam when such devices are expressly forbidden." Reasons why it could be okay: there's nothing programed into it, what is programed in it isn't relevant, it's open book, or complete formula sheets are provided.

"A student receives full credit on a team project on which he or she did little or no work." Don't hate the player hate the game. The student has no control over how the project is graded, so why this keeps on getting asked baffles me.

You can't crash the boat if you're not at the helm. What have you done for me lately?

"A student obtains an advance copy of the exact same exam he or she is going to take and uses it to study." Is this the same idiot instructor from question 5? Was this a review sheet passes out, by the instructor, to the class that happens to be the test? Or did the student break into an office and steal it? Can you guess which of the three is wrong?

"A student alters answers on a test returned for review and then gets credit for the 'mistake.'" Far far to cheap of a tactic for me to defend in any way shape or form, after all I have integrity.

I have seen professors who will grant credit for students after the fact if they show that they have learned the lesson. That's not what's being described here, but seriously, haven't you ever heard of extra credit?#kpb

"Teams agree to share information on a project/case after the instructor explicitly forbids doing so."

Note: The following assumes that the "project/case" is in an academic setting and is a graded assignment, and does not apply to research, legal proceedings, or anything else that has inherent competitiveness.

Information is different from answers. Information is how to do something, and telling/showing someone how they're supposed to do it is fine.

"A student uses crib sheets, notes, or similar materials during a closed book/closed note exam." Why. Why. Why. Why, do they have to ask this? Of course it wrong!

Monday, July 7, 2008

Credit Card Debt Analysis

Gee-ze-o! Look at these numbers, if I can command a higher salary today then I should. I am paying way too much interest.

Right now you are $3,886.23 in debt. If you continue to make minimum payments, it will take you 114 months to get out of debt. You'll pay $984.00 in interest.
If you make a one time payment of $1,000.00 today and you pay $200.00 a month, it will take you 22 months to get out of debt and you'll save $953.00 in interest.


Right now you are $7,344.77 in debt. If you continue to make minimum payments, it will take you 129 months to get out of debt. You'll pay $1,543.00 in interest.
If you make a one time payment of $600.00 today and you pay $370.00 a month, it will take you 22 months to get out of debt and you'll save $1,492.00 in interest.

Wednesday, June 25, 2008

I'm talking about Data Mining

I always imagined that my Del.icio.us Inbox should be my primary Inbox, and that if a person wanted to say something to me, they could simply put it on a web page and "say it out loud," you know what I mean?

Some web developer types are taking over my office at Tuesday Studios this week, and I am about to start wondering just how much free time they've got... not fluent in any web frameworks but I've lots of ideas, and I bought a book on Groovy and Grails the Java-derived dynamic languages, but there are diversions...

My business partner at Tuesday Studios is a Ruby pro, and I am finishing my Computer Science degree in November (God-willing) with some classes in Haskell and C#, so unfortunately Grails will have to wait.

Web Developers? Send me your portfolio!
Get an account, and tag your stuff with "for:yebyen"

http://del.icio.us/yebyen

The Casino Out Behind Nick's

I had the greatest dream, I was at Steve T's (formerly Nick Tahou Hots) and the fire was out on the grill, it was getting cold or hey buddy was cleaning it or something, and I had to wait for my plate so I did... then when they served me, actually I don't remember if they ever served me, but I got shown to this great casino room in the back with a bunch of absurdly huge slot machines!

Hey buddy was there, and I brought out $10 and another $10, and maybe a dollar besides... I couldn't resist the temptation to gamble in that casino, well I played the first $1 in a dollar machine and another $10 and for that $10 I was standing next to a beautiful blonde girl that was trying on a pair of thong underwear, some red gap shorts with a picture of Mao in the crotch, and she wanted to take my place at the machine so I let her... I didn't see any more of her then...

Anyway the machines were all dispensing these novelty Giant Dime Balls that were some marked as "this is not money, don't take it with you or its stolen," some not marked at all because the lettering had worn off—eventually I found the machine where you go to redeem them, and it spit out this gnarley looking quarter... then I kept looking and I found it was dumping a shitload of $20 bills and ones and fives, concert tickets and nacho cheese fries, it was like some glorious dreamland behind Nicks, and was Hey Buddy ever smiling!

I was trying to figure out how it could possibly be legal to gamble at Nick Tahou's and Mike Kush showed up, took a few dollars from my winnings, and just walked the other way while I figured out how to pick up and collect my nacho fries...

Monday, June 23, 2008

"The Magic Beer Hat," or "Beer Dues: WTF"

Here is the story of how that case of beer we bought after the Modest Mouse show turned into a magic beer hat... in case I become an alcoholic and suddenly can't explain where all my time and money is going, and because I didn't sign this into the lease, but it seems like it should get written down somewhere anyways

We bought that 30rack after the Modest Mouse show, Jason said "Well, I'm gonna drink some of those, I'll go buy an 18 pack, same brand" now he's drank most of those, and he says "hmm I'd better replace them" ok so we're up to 66 beers from the initial investment of $20... sounds pretty nice of Jason, eh?

Come to find out this particular day he's not happy about someone owes him some money. Apparently Regina has been consistently paying rent late every month, and Jason has been covering it out of his own pocket because he's such a nice guy.

This month, he can't do it. He wants to increase everybody's rent by $20 so that extra $208 doesn't come out of his own pocket for the 11 or 22 days it takes Regina to getting around to paying it.

Is $208 enough money to keep 8 people drinking for 30 days? I don't know, but I'm afraid I just bought a $208 slice of Jason's credit while we all decide if we want to share our alcoholism or keep separate checks.

Have you ever got some money and you spend it twice, just because you have the credit available that particular day? That's how I live, that's why I have over $10k credit card debt, that's why I don't grant someone a pass to use my credit on their own discretion.

Personally I'd rather see that money go towards things that everyone can use, like a working dryer for the house (which will cost as much again in electric as it did to buy outright, don't forget to spend it twice!) or some repairs for the second bathroom (shouldn't the landlord pay that, or the person who made the hole in the sink? nah, neither of those are fair...)

*SNARL* I'm fuming mad!

Thursday, June 19, 2008

Futurama: The Arraignment

I dreamed an entire episode of Futurama last night, it wasn't a real episode but you could've fooled me... I don't know how much I can remember, but by the ending an entire stadium full of people are convinced that Fry is a gay molester (and boy do they find it amusing) -- he has been transformed into some kind of an eagle beast creature who can fly away for dramatic effect, and the whole crew of the ship is transported into outer space where the show terminates.

"Arraignment: The Human Condition, if ever there was one."

It's fading fast. but I want to get it down... there could be money in writing episodes, right?

There is a murder, a bag of evidence that is traced back to him, now I'm remembering another dream where I had to kill a person and chop them up, dump their body somewhere... stay focused, one script at a time! How did Fry become an eagle beast? And where did they get the idea that it was a case of molestation? (From the asian girl... that's where...)

Wouldn't it make more sense to prosecute the murder? No, not if it was all one big lie.

The abductor aliens, they made sure to supply those folks with enough toothpaste and plenty of comfortable beds. The last scene in my head, Fry is explaining what just happened with a crooked half-smile on his face, and a mouthful of toothpaste which he spits into the toilet. He is super wasteful. That is way too much toothpaste.

Use a dab no larger than the size of a pearl! That was two or three large oysters, no mother of pearl toothpaste servings on Decapod 11 please...

"It's called Arraignment: The Human Condition, if ever there was one"

What's that supposed to mean? If there was ever a human? If there was ever a human condition? Who knows where dreams come from?

I hope they do continue to come, after I put down those Marlboro brand I-CHING bones... a busy mind is a happy mind! OK Folks, illumination - improved focus +5, I'm graduating real soon now and there are plenty of jobs in Rochester for people who know how to look for them.

Wednesday, May 28, 2008

Blogger Stylee

Experimenting with my own blog that I can take offline quickly (USB Stick) in case of some reason why I would want to work offline. Like, I've got a client who I want to bill for something really juicy, and I don't want someone else to steal my thunder.

Normally, I like to work openly... there is perhaps no reason to make this an absolute policy, sometimes working transparently can actually affect your bottom line. Today, I believe there is good reason to work in the open, where others can benefit from your example.

Thursday, May 22, 2008

Filesaqs and Development

So there are a couple of different kinds of files out there... source, binary, document, and as a scientist I'm sure I'll need to be prepared to deal with all of them. Network file-systems are expensive to maintain and deploy, in particular when visiting friends you really can't expect them to let you install your drivers on their boxes unless you're about to establish a serious relationship.

Sharing files and disk (sharing with yourself counts here also, for people who are multi-homed or multi-boxed to manage their instances across the various computers), you can make filesystems on disks and use networks to fill them up, transparently with DAVfs2, but more on that later...

liveusb-creator from Luke for some help with that development environment, the system is a static Fedora Core 9 live image, with a transparent overlay filesystem that can be used to keep all of your work on a USB stick. When it dies or is lost (inevitably this will happen) your changes will be preserved as long as you can maintain a backup of this overlay, which means storage requirements are pretty low, really people throw 2GB around like toilet paper these days, and the overlay can't get any bigger than that.

Monday, April 28, 2008

Ontology Management

I meant to look this up today: SWOOP

but, I found myself sitting in front of a computer with no java, and a cell phone with some. uncomfortable installing Java on random peoples' computers, I will take a look at this when I get home.

this one looks good too:
Differential Ontology Editor

Why is this important? The best verse is terse.

Vigorous writing is concise. An ontology can help you to manage the coherency and breadth of your thoughts, or so the story goes... I hope my writing doesn't wind up looking like those awful spam monkeys I still hear from every now and again!

Sadly, Facebook and Delicious still seem to be not supporting Chinese or Korean. Maybe it is just my input method that is at fault. I can't believe it doesn't work.

Wednesday, April 23, 2008

The Sixth Layer: A Business Blog

Building an example of how to build a churning queue for blog posting bandits on the internet... this Blogger blog on blogspot.com is a good example of a content channel, the basic "news output," the first step to recognition in any sort of publishing company. The most you can ask for in the realm of consumable content (here we're talking newspaper articles, not video games) is a content author who provides content in text, audio, video, and URL formats.

Visit the Posts (Atom) feed link on the bottom of the front page and find the FeedBurner RSS frontend which shows the content in this blog: I am generally not posting MP3 or Video content, but the capability is there between Blogger and FeedBurner to add media files for a rich feed viewer such as iTunes to recognize and retrieve. You can include podcast content in your blog postings!

Text articles with embedded content can be viewed in a web browser and podcasts can be scanned in a podcast aggregator. Now, what about those URL-based posts with titles, text summaries and tag data: they're all coming from a particular account on the del.icio.us service, and if you have the account name you can request the set of tags by URL. But, what if you want to edit these tags?

What if you want to collect a group of posts, and tag them all a certain way? What if you want to drill down inside a large set of already tagged posts, and update the tags for a subset? The interface to handle this behavior has already been developed with tagging for gmail, but the feature described here is not available on this database... yet.

I'm on a mission to build this feature into my workflow. Anybody want to stop me? Please, I'm begging you, tell me this feature already exists before I write it myself!

Sunday, April 13, 2008

NOHO-NYC Adventures

We're on a trip to The Moon, says Remy D... with a mild diversion on the way, a stop in Pluto. Eben Moglen of the Software Freedom Law Center and Columbia University Law History department, has asked for a meeting with the founding members of The Causemaker Foundation, and it's just a little out of the way: we came out this way to see the show for Umphrees McGee in Northampton Massachusetts, and that was a bust for me. We went to a nice restaurant (The Dirty Truty) instead of that, Mike said that the concert was a rockin good time!

Have been enjoying Northeastern hospitality and the beautiful weather and scenery of New York and Mass, we're taking a train into NYC and I have yet to contact anyone for lodging or more serious scoping out of the area. We've got enough friends in NYC, and Remy has made some links, that I'm not worried about it. I could come out of this trip with an incredible story or even an internship with one of the great heads of the Free Software movement, with doors leading to Law school and worse: real political activism.

Wish me luck! My phone is out of service, if you need me call Amy Gavin at 585.781.4145, we're in Northampton for a day more, after that you can try my number or Jeremy DeCausemaker at 315.945.1601 -- he's got a Cingular phone, my Cricket has been out of service since near Syracuse. I hope it works in NYC!

Friday, March 28, 2008

ST101 - Software Testing 101

Professional Queue Managers/ and Product Reviewers, take Heed!

The latest post on my delicious:

images/red-kashmiri.png at master from kingdon's tues-crep — GitHub, can you tell without a password, that I think this soda tastes like crap?
... just posted
You are reading this page and you probably can't see it from here. I can't even remember if I included a portal into that bucket on this page. That's not good! Worse, I'm not sure from where I sit, with my saved passwords, if you can even view the product review in question...

Still, the important thing you should get out of my message is this: do not drink Red Kashmiri soda. The Red Kashmiri soda tastes like the ocean. It is made of salt and mixed spices, as well as a token quantity of sugar. Only a fool will drink the Red Kashmiri soda after that!

http://del.icio.us/yebyen/ post#3464

The second most important thing you should get out of this message, if you are a delicious user this will come as no surprise, there is no easy or reliable way to find post #3464! That is not a permanent link, and the facilities for permanent linking are reserved exclusively for permanent records, which could not usually be deleted or absconded with. A delicious feed is more like a queue than a base or a permanent record, and as I learned from MSDN article about immutable data structures (reference still not handy) ahem there are some immutable queues, but this is not a property of queues that you can count on finding every single day! Queues are sometimes immutable, sometimes indexed, in this case not either. Not exactly, the URL is an index or key.

In Delicious world, you can tell if a post is unique or not because it has a URL that distinctly identifies it from other posts; it is assumed here that the value is not in the 255 character summary and unlimited vocabulary of tags, and this is perhaps a foolhardy assumption. The URL is the meat of your HTTP request, and unless there are some special POST variables or unless the referenced website has a special dynamic nature like what is often found on news portal websites (and Delicious pages) you should have no trouble retrieving the same content with the same request URL.

Delicious posts can arrive in a queue many posts all at once, or a handful at a time, and fortunately it is possible to aggregate a day's posts in digest format. What does this mean? If I am posting many times in a day, or many times in a week, with multiple trains of thought, then after that you don't check your mail incoming from what I am sending every day, we are going to have a disconnect: that means either you are going to have a lot of catching up to do, or I'm going to have a lot of explaining to do, either way we will be taxed (my brain and yours) to get a meaningful report of what I've been doing.

I'm in a different office every week.

What does this mean to you? You've probably never been in touch with me on a daily basis. Probably only person who has been in direct contact with me every day for the last year is me. Does this mean that I can't tell you what I've been doing for a year running? Lord I hope not!

You shouldn't spend time on links that you have already reviewed, unless there is some expectation that there will be something to gain from revisiting that URL. How do you guarantee that behavior on a consistent, repeatable basis? I'll start with PlanetPlanet Feed Reader — currently evaluating output formats — and ReiserFS v4 — this one might be over the top.