Wednesday, December 27, 2006

Tiger barbs

A couple days ago the group of tiger barbs that I bred years ago was down to a lone pair of individuals. Last night I made a decision to stay with the common, feisty little fish and bought four more for the 40 gallon long tank they are in. I also dug up information I was going to do for my "web site" and posted it here:

Details

  • Scientific Name: Barbus schuberti
  • Family: Cyprinidae
  • Origin: Borneo, Indonesia, Sumatra
  • Adult Size: 3 inches (7 cm)
  • Social: Active schooling fish, nips fins
  • Lifespan: 6 years
  • Tank Level: Mid dweller
  • Minimum Tank Size: 20 gallon
  • Diet: Omnivore, eats most foods
  • Breeding: Egg layer
  • Care: Easy to Intermediate
  • pH: 6.5
  • Hardness: up to 10 dGH
  • Temperature: 68-79 F (20-26 C)

General Information

The tiger barb is a fairly common, often maligned, but colorful and entertaining fish. Identified by it's trademark vertical black stripes this fish can be obtained just about anywhere. They are schoolers and if given abundant space will always be on the move, chasing each other and generally acting impish. A hardy fish, the tiger barb is a good beginner fish able to survive most environments and water compositions.

Environment

To recreate the natural southeast Asia backwater stream environment you will need at least a twenty gallon (US) tank, with at least thirty gallons recommended. The folks at Aquarium Adventure have a good example of how to recreate the natural environment. If a southeast Asia recreation is not feasible, then the ideal aquarium for tiger barbs would be well planted in the back with plenty of space in the front. Adequate space is a necessity for these active fish.

Important note: the hygrophila polysperma plants indigenous to this environment and recommended by all resources also happen to be illegal in the state of Ohio and is on the federal list of noxious weeds. I substituted wisteria and red ludwigia for the hygrophila.

Stocking

As with all freshwater fish: never exceed the standard 1 inch of fish per 1 gallon of water.

Tiger barbs are schooling fish that establish a social order. Without numbers they can be overly aggressive and abusive. Almost every resource recommends at least eight tiger barbs per shoal as a minimum. Numbers less than six will usually introduce problems.

Tank mates

Tiger barbs have a reputation of being "fin nippers" so hardier fish should be considered as tank mates. Fish with long trailing fins (angel fish, gouramis, bettas and guppies), and from my experience; colorful but passive fish (neon, cardinal and glolite tetras), represent nothing but playful targets for tiger barbs. Other passive fish like corydoras, platys and even a plecostomus could be harassed by a rogue tiger barb (see below). The list below contains a list of suitable tank makes:

Southeast Asia Backwater Stream Environment (indigenous)
clown loach (needs a higher pH and purer water quality, schooling, needs space to hide, at least two or more)
iridescent shark (potentially large schooling fish, can be over a foot long, at least two or more)
red tail shark (aggressive, solitary, needs a cave or space)
Southeast Asia River Environment (indigenous)
giant danio, zebra danio, pearl danio, rosey barb, black ruby barb, bala shark, algae eater, kuhlii loach, rainbow shark
Variations
green barb, albino tiger barb
Others (noted from the Internet)
black widow tetra

Personal note: many resources consider this fish as a community fish. This barb can be a community fish but obtaining a happy, mostly passive shoal is more luck than theory. If you are looking to have tiger barbs, please consider dedicating a tank to them and suitable mates. If you must make this fish part of a community then make sure you can return fish to the place of purchase.

Psychology

Owning tiger barbs for over two years I have noticed the following distinct traits:

  1. They establish a specific social order. A dominant male (usually the largest) will "lead" the group. If more than one male is available they will occasionally joust for supremacy, never really damaging each other but looking violent while doing so.
  2. Mature tiger barbs stick to their group, rarely bothering with other fish in the vicinity. Young barbs, however are prone to straying and sometimes taking aggression, playful or otherwise, out on tank mates. The younger the barb, the more prone to aggression usually in the form of fin-nipping. Large shoals of individuals will not diffuse aggression. As tiger barbs mature, most grow out of their aggression but there is a chance some remain aggressive. Two examples: "Stab" and the kids. "Stab" was a mean little bastard that would literally nip and tug with anything, including a plecostomus three times his size. "Stab" was isolated in the hospital tank for a couple months, was eventually outgrown by the other males, and after a violent return to the tank learned his place in the middle of the pack. The "kids" are two tiger barbs out of the surviving spawn that continue to pester other tank mates. They nipped my albino corys, were the first to attack a pearl gouramis when I tried to integrate the fish in the barb tank, occasionally pulled at the tail of a plecostomus if it was nearby, and were the only ones to attack orange platys. All the other (22) tiger barbs kept to themselves, never bothering anything non-barb. All aggression is limited to definitely one, and I'm certain a second uniquely identifiable tiger barb. This leads me to believe a group of tiger barbs could potentially have a "rogue" barb prone to occasionally disturb the community.
  3. After living most of their lives in a 29 gallon (US) tank, cramped in between a piece of driftwood and a large sword plant, I can easily say tiger barbs are happier with a lot of wide open space. The 40 gallon (US) tank (48" wide x 15" deep x 13" high) with planting in the back and plenty of space in the front appears to be the ideal environment for these impish little goof balls.
  4. Tiger barbs are known to "head stand" is the water is too high in nitrates, a behavior unique to the species.

Sexing

male and female tiger barbsMale tiger barbs are spear-head shaped and when mature sport bright red noses and ventral fins with a bright red line on the dorsal fin. Female tiger barbs are rounder, shaped more like a spade than a spear. Females will usually not have the bright red colorings of their mature male counterparts.

Breeding

The common reproductive behavior for most tiger barbs: 1

  • promiscuous mating
  • no parental care
  • selective depositing of eggs by the female
  • external fertilization during mating clasp (1 male:l female)
  • females receptive during mating sessions lasting hours
  • repeated mating clasps with or without a change in partner or location
  • male plays the active role in courtship
  • male more active in antagonistic behavior and competition

I have read numerous paragraphs on the Internet and spawning tiger barbs has been described from easy to difficult. My own experience was more of a quickly thrown together attempt at mating two individuals that were "getting friendly" in my 29 gallon tank. In my opinion, here are the steps needed to breed tiger barbs:

  1. You should already have at least two healthy, mature fish.
  2. You will need at least a separate breeding tank: a five to twenty gallon (US) tank with an adequate sponge filter and spawning material. (I used plastic plants laid on their side in a three gallon Eclipse all-in-one unit, which was too small and had substrate in it). Depending upon the size and inhabitants of your main tank you might need a separate grow out tank: at least a twenty gallon (US) tank with adequate filtration, substrate and plant life. Spawning material can be a spawning mop, brush, a layer of marbles (not the best 2), spawning grass (available a Walmart), or plastic plants laid on their side.
  3. Most sources recommend conditioning the male and female pair. I didn't, because at the time the parents were already spawning in the main tank, so they conditioned themselves. Conditioning the fish consists of keeping the pair separate via divider, feeding them healthy amounts of high protein live foods for about a week, then joining the pair for courtship and spawning.
  4. Before spawning, either order or locate a local fish store that carries Liquifry #1. If you are ordering, you might want to pick up supplies needed to create a baby brine shrimp hatchery as well.
  5. Leave the happy couple to spawn overnight. Remove the parents after spawning has occurred (small white specs will appear, these are the eggs). Order live foods like micro worms and vinegar eels if you are going to use them.
  6. Consider removing the spawning material at this point.
  7. Start adding Liquifry #1 while waiting a couple days until the eggs hatch. Fry will look like two black specks and will be hard to spot.
  8. Keep feeding Liquifry #1 until the fry look like they are able to take live food, usually about four days of free swimming. Newly hatched brine shrimp should be used first and exclusively for a couple days, feeding until full (orange bellies full of shrimp) three to four times a day.
  9. Slowly change the diet to include other foods like powdered flake, micro worms, vinegar worms and other commercial foods. Start doing daily water changes, carefully replacing ten percent of the water. (I used a line of air-tubing attached to a chop-stick to vacuum the bottom debris and water into a glass jar, glass just in case a fry was caught in the suction).
  10. After 28 days, carefully move the fry to a grow out tank or the main tank if feasible.

Citations

  1. A Manual for Commercial Production of the Tiger Barb, Capoeta tetrazona, A Temporary Paired Tank Spawner
  2. Mike Edwardes Tropicals: Tiger barbs(No longer available)

Tuesday, November 28, 2006

Top 10 unintentionally worst company URLs

Attn: Entrepeneurs. Everyone knows that if you are going to operate a business in todays world you need a domain name. It is advisable to look at the domain name selected as others see it and not just as you think it looks. Failure to do this may result in situations such as the following(legitimate) companies who deal in everyday humdrum products and services but clearly didnt give their domain names enough consideration:
  1. A site called "Who Represents" where you can find the name of the agent that represents a celebrity. Their domain name is www.whorepresents.com
  2. Experts Exchange, a knowledge base where programmers can exchange advice and views at www.expertsexchange.com
  3. Looking for a pen? Look no further than Pen Island at www.penisland.net
  4. Need a therapist? Try Therapist Finder at www.therapistfinder.com
  5. Then of course, there's the Italian Power Generator company: www.powergenitalia.com
  6. And now, we have the Mole Station Native Nursery, based in New South Wales: www.molestationnursery.com
  7. If you're looking for computer software, there's always www.ipanywhere.com
  8. Welcome to the First Cumming Methodist Church. Their website is www.cummingfirst.com
  9. Then, of course, there's these brainless art designers, and their whacky website: www.speedofart.com
  10. Want to holiday in Lake Tahoe? Try their brochure website at www.gotahoe.com

Thursday, November 16, 2006

The Flash mind reader

Okay, now this one is just freaking me out...

The above link does not work anymore.

Okay, I figured out how it works. By picking a two digit number then subtracting the sum of the two digits you are going to end up with a limited set of numbers each time. For example: 20 through 29 will always be 18, 50-59 will always be 45, etc. The ones digit always negates itself leaving the tens digit to be subtracted; i.e. 10-1=9, 20-2=18, etc... Multiples of nine. Each time you click the crystal ball the symbols change but the ones for multiples of nine will always be the same. All the program has to do is pick the symbol used on multiples of nine.

Monday, September 11, 2006

Remembering 9/11

I was on contract at a client site in downtown Columbus. I was working on an AS/400 to Microsoft conversion project while listening to Howard Stern on my pocket AM/FM radio. They got the news that a plane had hit the World Trade Center. It pretty much all went downhill from there. The second plane hit, there were rumors of a bomb at the Mall of America, then rumors the Pentagon had been hit and then the horrifying collapse of the two towers. The freaks and perverts were now correspondents relaying information into the stunned group. I was one of two people in the entire area that had a radio and knew what was going on so I relayed bits and pieces to my colleagues. The World Trade Center was gone and the Pentagon was on fire.

I stayed at my cubicle glued to the radio until about noon or so when they broke off the radio and turned control over to the news. Someone managed to get Internet footage of the collapse which shocked us. I had to pee so bad by that time.

They began evacuating downtown Columbus around one or two. Folks with kids were free to leave. I stayed until about 4pm or so then drove home on mostly deserted roads. The footage on the news was shocking to say the least. I called my parents later in the evening. We discussed parallels with Pearl Harbor (something that I was knowledgeable with).

It is now the five year anniversary of the 9/11 tragedy. People will discuss the politics surrounding this day so I won't. It is a scary fact of life that even though the majority of the people on this planet are good people (stupid and annoying, but good) all it takes is the one in the millions with the right tools, components and drive to destroy a building, city or life as we know it.

Thursday, September 07, 2006

Annual heresy

It is about time for my annual whining and complaining about organized religion in central Ohio. I won't be discussing the Catholics, Baptists, Methodists, Christians, Protestants or the Episcopalians. I won't even be discussing the Buddhists, Muslims, or Hindus. Heck, I don't even have a beef with the Adventists, Jewish, Hari Krishnas, snake handlers or even Moonies. So what organized religion am I upset about?

Ohio State Buckeye Football

Yes, it's that time of year again when coverage from the local news media switch from covering East side shootings, gas prices, animals at the zoo giving birth, the weather, and just about anything else to covering what flavor of Kool-aid our starting tailback prefers on Wednesdays. There was a major collapse of a diamond mine in New Guinea, hundreds were buried alive, no Buckeye football players were in the mine or the country at the time of the disaster. It is to the point where it is transparent and sickening.

I refuse to watch the sports departments on the local stations anymore. Their job is to cover local and regional sporting events. Last Saturday (the Buckeye football season and home opener), all coverage was on the football game and other Big Ten football games (i.e. Michigan, etc.) with 10tv also covering the Ohio University game. There was not a single mention, much less coverage of, other sports news from the central Ohio area. On that Saturday the Columbus Crew (soccer team in Major League Soccer) did something they haven't done all season under a new coach, score more than a couple of goals to defeat an opponent. The Crew beat the New England Revolution (a team we have been a personal bitch for recently) 3-0 in front of a respectable home crowd. Not a single mention on all three networks. The NHL hockey franchise, the Columbus Blue Jackets, lost their recent top pick Derick Brassard to injury during a junior club exhibition. He will miss rookie training camp with a dislocated shoulder. No information. Our minor league baseball team, the Columbus Clippers, defeated local rivals the Toledo Mudhens with a two-out, two-run homer to right field in the 12th inning (they ended the disappointing season by beating Toledo, forcing the Mudhens to possibly miss the playoffs). No coverage.

Would it have killed any of you sports dweebs to perhaps event mention any of these events in the final ten seconds of their broadcast instead of bantering with Elizabeth Scarborough while starting at her chest or stuffing your face with buffalo wings?

The sucking up to Buckeye football doesn't end with the local media, it extends into the service industry as well. Whether it is a server or fry cook, someone selling a book, or someone at a gas station punching lottery tickets for eight hours straight many of them appear to be asked to wear something "Buckeye" like a pin or shirt to show support. There is nothing wrong with honest, heartfelt support for a team but transparent ass-kissing to not alienate a segment just makes me ill. I feel lucky my workplace does not force me to support OSU football. Of course having a diverse group from Ohio University, Penn State, Michigan, Hocking Technical, Devry, Franklin University, Columbus State Community College, and Denver working around me helps a little bit.

It's not like I don't want to support the Buckeyes, I have since I was a kid watching Woody and Earl run the sidelines. The past number of years, though, coverage and promotion has simply become overpowering to me. It is like a plate of raw onions. Sure I like onions but I'd like something else as well. The Buckeyes are like too many air fresheners inside a hot car; they smell good but overwhelm you. They are a case of Schlitz when a 12 ounce Guinness would have been more palatable. They are too much cow bell.

Thursday, August 31, 2006

Real-life Dilbert-type managers

I've seen these before, but they are always worth a chuckle...

A magazine recently ran a "Dilbert Quotes" contest, looking for people to submit quotes from their real-life Dilbert-type managers. These were voted the top quotes in corporate America:

  1. "As of tomorrow, employees will only be able to access the building using individual security cards. Pictures will be taken next Wednesday, and employees will receive their cards in two weeks." (This was the winning quote from Fred Dales, Microsoft Corp. in Redmond, WA)
  2. "What I need is an exact list of specific unknown problems we might encounter." (Lykes Lines Shipping)
  3. "E-mail is not to be used to pass on information or data. It should be used only for company business." (Accounting manager, Electric Boat Company)
  4. "This project is so important we can't let things that are more important interfere with it." (Advertising/Marketing manager, United Parcel Service)
  5. "Doing it right is no excuse for not meeting the schedule." (Plant Manager, Delco Corporation)
  6. "No one will believe you solved this problem in one day! We've been working on it for months. Now go act busy for a few weeks and I'll let you know when it's time to tell them." (R&D supervisor, Minnesota Mining and Manufacturing/3M Corp.)
  7. Quote from the Boss: "Teamwork is a lot of people doing what I say." (Marketing executive, Citrix Corporation)
  8. My sister passed away and her funeral was scheduled for Monday. When I told my Boss, he said she died on purpose so that I would have to miss work on the busiest day of the year. He then asked if we could change her burial to Friday. He said, "That would be better for me." (Shipping executive, FTD Florists)
  9. "We know that communication is a problem, but the company is not going to discuss it with the employees." (Switching supervisor, AT&T Long Lines Division)

Monday, August 21, 2006

New low point in correctness

from "Tom and Jerry" smoking scenes to be cut after complaint : Reuters

A channel airing the cartoons has agreed to cut scenes that glamorize smoking after British media regulator Ofcom received a complaint from a viewer who took offence at two episodes.

In the first, "Texas Tom," the hapless cat Tom tries to impress a feline female by rolling a cigarette, lighting it and smoking it with one hand. In the second, "Tennis Chumps," Tom's opponent in a match smokes a large cigar.

I grew up watching Bugs Bunny and Tom and Jerry cartoons (largely unedited) and as I am nearing the big four-oh I can't help but get sickened by such blatant sissification of the human race. I don't smoke. I'm pretty damned sure I can make my own decisions about smoking without some British wuss's input. What's really sad is the Tom and Jerry cartoons have already been butchered to make them ethically, racially, socially and just about everyally correct that I get offended every time I see them. I remember every missing scene. "Didn't Bugs shoot Yosemite Sam in the head, there?"

Ugly...

Tuesday, August 15, 2006

I Object! (part two)

Back in April I had a rant on object oriented programming so I guess this rant is an extension; think of it as bitch plus plus.

I should start off by saying I'm not very friendly towards computer methodology purists; those folks that see the world one way and only one way and any deviation from that is a sin against their god and you therefore kill babies in blenders, eat puppies, etc. I usually take the viewpoint of "code has to be written somewhere, might as well write in the location where it is most efficient and where it will get the most use." Unfortunately, throughout history (long), that viewpoint seems to get me into arguments with the purists because some of the time doing so will break one of the rules of their methodology. I guess the best way to explain this would be to look at a strict, multi-tier object oriented structure.

data service object
provides standardized properties and methods to data objects to isolate them from the physical RDBMS.
data object
creates and uses data service object to
  • delete a stored object by unique ID
  • create or update a stored object by unique ID
  • read a collection of records by unique ID or other searchable field
(aka CRUD) and uses business entities
  • map columns to/from business entity properties
  • requires a business entity to create, read, update or delete
  • creates and returns a collection of business entities for read requests
business entity
contains only properties, overriden methods and constructors
business object
creates and uses data objects to
  • save and delete business entities
  • read business entities
  • search for business entities by searchable field(s)
uses business entities for
  • evaluation of business rules
business objects do not (appear to) have a state (i.e. are stateless);
presentation objects
create (or not?) and use a business object to
  • fetch data that needs to be presented
  • evaluate and store data in business entities

Of course, this structure is just one of a couple dozen "standard" ways of implementing this kind of methodology and there are hundreds of books that would support and/or refute line-by-line everything mentioned above but I'll just go with it but keep my points to a minimum so you don't get bored, teary-eyed, listless and then run off to surf porn.

Why must all business logic be in the business object?

Example #1: in a table containing 14.5 million rows you need to update 1 million rows that meet specific criteria. Do you:

  1. Run a process that creates a business object that creates a data object that retrieves 1 million rows creating a business entity object for each row then returns that collection of objects to the business object which loops through the collection one record at a time making updates to the business entity and using the data object to save the changed business entity (with the data object creating, using then destroying a data service object 1 million and 1 times)?
  2. Run a process that creates a business object that creates a data object that creates a data service object that tells the database to do the whole damn update?

Of course the answer is "depends, does somebody want a report?" because if that "Coke-bottle glasses wearing paper-hoarding genetic mutation that can find a report from March 4, 1982 in a nine foot stack of green bar" wants a report you really can't just pass the whole event to the database – might as well do the whole object tossing process. However, if you want it done in the most efficient manner possible you go to the database, which is already optimized to do such a thing.

Example #2: you need a collection of objects where the selection criteria are not only in the object but in associated objects with 1-1 and 1-many relationships between the two. Do you:

  1. Run a process that creates a business object that creates data objects for each type of object then uses the driving data object to retrieve the initial set of data creating a business entity object for each row then returns that collection of objects to the business object which loops through each of them using the associated data objects to create business entities for each associated record evaluating all criteria adding the business entity to another collection of selected records?
  2. Run a process that creates a business object that creates a data object to fetch a collection of records using pre-defined criteria in both objects to call a database procedure to fetch the result set creating business entities for each row then returning them in a collection to the business object?

If you are the object oriented guru you say the second option, of course.

Huh?

But I thought rules for valuation and evaluation had to be in the business layer because the database shouldn't know how to calculate a balance or determine how old someone is (it should only know how to handle CRUD). Apparently the duplication of logic and relocation of code is acceptable in this case because it provides a more practical and efficient view of "read only" data (I forget what the actual word for this was but it made me just want to say "why don't you simply it read-only instead of something obscure like neojurassient"). Well why not move update logic to the database as well? "No, no, no that violates the rules of separation of business from persistence" they would say as I cocked my head like a dog trying to equate his owner's noises to "am I going to get fed" or "can I go pee on something".

Example #3: you have your three tier framework as solid as a rock then along comes department X (with the blessing of the CEO behind them) with a completely different architecture written in a completely different language. They need minimal read and update integration with your RDBMS. Do you:

  1. Count your blessings because you moved such logic to your RDBMS so everybody who needs to use it can use it?
  2. Create an entirely new layer to interface the two languages?

Of course, you silly fool, the answer is the second one. You write a service and let the foreign system interface with yours using the service. I try to comprehend where the "service" component fits in and my best guess is that it is between the presentation and business logic. I seem to remember Enterprise Java Beans having a similar construct with the "stubs" on the presentation and application tiers talking to each other via RMI (?). Or would the service be a business object? To me the only standard thing between all of these languages and tiers is all of them can talk to a database right out of the box but need a service, web service, RMI, etc. to talk to each other. Seems stupid, doesn't it? I'm not advocating opening up a database to the Internet at all (no way). But it seems like, again, that the higher up the tier the code goes, the more beneficial it is to multiple tiers beneath it and more beneficial to the database in terms of efficiency.

Quote from "Java Enterprise Best Practices"; In spite of my recommendations to avoid stored procedures, there are valid reasons for using them. Specifically, stored procedures can significantly speed up some very complex database operations and encapsulate complex transaction logic. The rule of thumb in these situations is to write the application using prepared statements first and identify the bottlenecks and complexities. Once you have identified them, manage them by moving special cases to the database in the form of stored procedures. If the changes are designed to improve performance and are successful, keep the changes just in those bottlenecks. Also, stored procedures allow the DBA to handle the database logic and allow the programmer to use just the exposed hooks. But, no matter what, never resort to placing business logic into stored procedures!

Okay, just how the hell does this work, add separate code for these cases? Business entities (entity beans in this case) use a persistence manager to load and save themselves. Properties are mapped to/from columns via your code, a meta-data based framework, or by the container. But you still have a one-to-one relationship between "types" of business objects. The "more efficient in this case" stored procedure is going to be doing most if not all of the complex transaction. I assume this involves a number of tables and records at the simplest level (persist all of these records) or some business logic (if this situation exists, do this, etc. in addition to persisting data). Does the business object (session bean) bypass the business entity and perform a direct action through the data service (through a special business entity)?

Does anybody understand why I get frustrated sometimes? It just seems to me that through all of this decoupling, separation and redundancy this whole ideology is adding a lot more physical code, more hardware requirements and the need for more resources to manage the latter with the same amount of direct one-to-one coupling? A lot of the time I think it is the responsibility factor kicking in when I start asking questions about why this framework is better than the other one or why this RDBMS is better than this one or why should we throw money and time into something that is probably replacing something that works but isn't current?

Thursday, June 15, 2006

Personal Internet use at work

Internet usage in the corporate world is a touchy subject to being with but with recent compromise of taxpayer records at the Oregon Department of Revenue (an employee downloaded a Trojan from a porn site) this topic will blitz its way through management and the hysterical committees. But just how much Internet usage at work is acceptable and what type of usage is acceptable? In my opinion it breaks down into to two categories: time and content

Time

Personally, I don't care how much personal time you spend on the Internet as long as you are putting in your allocated work time. If you are supposed to be working forty hours a week then work forty ore more hours a week. Personal usage can usually be allotted to lunch; simply eat lunch at your desk while catching up on news or whatever. I will take time in the morning to read news, catch up on hockey and soccer, do a sudoku puzzle and participate in some message forums. If I spend a little too much time I will always add time to the end of the day to keep a simple eight hour day. If I know there will be rain for the drive home one afternoon I will put in time there to avoid the idiots on the roads; which leaves time for personal Internet or extra time in the gym

Some people will complain that they have down-time or slow-periods where they are either bored doing nothing or can surf the web. I have a mixed reaction to that. If you are part-time or on a job that has busy and slow periods then maybe some personal Internet time is warranted unless the office works to help each other out during peaks. If you are slow while another area is getting slammed then maybe you should help them out (and they should reciprocate). If you are a programmer like me you should be bettering yourself through education during off-time

Content

Obviously there are some places you shouldn't go when using the office Internet. Pornography is almost universally unacceptable but there are gray areas. Some "humor" or "not safe for work" content sites might have pictures of women flashing their racks along with pictures of mother ducks walking her chicks into a storm drain and animations of dogs eating their own barf. Obviously the naked breasts are wrong but that mother duck was funny and cute. A little humor works wonders when you are dealing with idiots all day long

The extreme point of view is "no personal use under any circumstances" – which is a harsh policy but really the only one that almost guarantees so workstations get compromised. Such organizations will usually have content filtered through a proxy, will log EVERYTHING you do, and will actively monitor your workstation with about eight scanning programs. In such environments it is best just to not use the corporate workstations to go to the Internet for anything. Don't even request access. As a consultant I had to be extremely careful what I did because the slightest infraction could be used against me to negate a contract or worse. A friend of mine got sent off a contact for having Yahoo! Sports in his bookmarks. If a client had any Internet policy or made me sign anything that weighed more than a can of pop I would simply say "no thanks" and worked without the Internet. If I needed something I would make the client do it. Sometimes they got the point

The other extreme is totally free and unrestricted access. While awesome as this might be it leads to compromised computers and plenty of content problems. Sites that start this way usually end up implementing this next type of policy

The most common policy I see in place in business entities is what I call the "gray area" policy. It is a policy drafted by some legal team somewhere that basically says "do what you want but don't do anything is wrong or will offend anybody, else we retain the right to punish you (for doing something wrong that might be wrong or might not be wrong or we might have no idea if it is wrong or we simply don't give a rat's hiney just as long as we cannot be held liable for anything)." It is policies like this one that scare me because I simply don't know what to do right and an employer can always use something I did in the past to justify an action towards you in the future. If the policy is gray then the button leading to the Internet should probably be gray as well.

Or if you want to have a little fun, mail the list of web sites you are going to access then have your supervisor sign-off on them. If your management is as gray as the policy they will eventually get tired of you annoying them all the time and either yank everything or give you full access.

Wednesday, May 31, 2006

Simpsonsisms

I don't know about anybody else but I really like the animated television series "The Simpsons". There are so many episodes that are knock-out drag-down funny. What I find interesting, though, is how many "Simpsonisms" have made it into my every day existence. Here is a short list:

The "ribwich"

What started as a one-time Krusty Burger sandwich made of a now-extinct animal has turned into a common term in our vocabulary. McDonalds doesn't have a McRib anymore, they have a ribwich. "Hey look, the ribwich is back." Even the microwave garden burger soy-based ribs are "ribwiches". It's a name only The Simpsons could come up with and actually be better than everything else.

Doh

No explanation necessary?

Mmmm. Noun.

Another "Homerism"; where he will see something delicious, close his eyes, utter a slow "mmmmmmmm" followed by the food product tempting him.

The Canyonero

Can you name the car with four-wheel-drive?
Smells like a steak and seats thirty-five!
Canyonero! Canyonero!
Well, it goes real slow with the hammer down.
It's a country-fried truck endorsed by a clown.
Canyonero! Canyonero!
Twelve yards long and two lanes wide,
sixty-five tons of American pride!
Canyonero! Canyonero!
Top of the line in utility sports!
Unexplained fires are a matter for the courts.
Canyonero! Canyonero!
She blinds everybody with her super-high beam.
She a squirrel-squishin', deer-smackin' drivin' machine!
Canyonero! Canyonero!

Any gigantic truck or massive sport utility vehicle is usually referred to as the "Canyonero" even it isn't driven by some obnoxious dimwit. If it's massive presence obstructs something essential to your driving experience like oncoming traffic, a hot chick in another car, or sunlight; then it is a "Canyonero".

Cheese-eating surrender monkeys

This line from Scottish school groundskeeper Willie when forced to substitute-teach French class is now a common slam on the French or anybody from France or a French speaking Canadian providence. "Bonjourrrrr, you cheese-eatin' surrender monkeys!" A Google search retrieves 135,000 exact hits on this topic.

Wednesday, May 24, 2006

LASEK, month one (almost)

It is has been almost a month since I had the LASEK laser eye corrective surgery. Yesterday I went for the one month checkup and here are the results.

According to the OD, my eyes are progressing normally for this type of procedure. The right eye is now 20/40 and the left eye is 20/50. The left eye is over correcting itself which is causing some astigmatism to (re)occur. I will still need to keep using the prednisolone eye drops but will be backing off the dosage every two weeks from four, to three today forward, then two, then one drop per day from now on. In two months I return to the facility for an eye mapping and the usual tests.

For the most part I am satisfied with the corrective procedure. My goals going into this were to be able to play sports without the need for glasses or contact lenses (I have trouble with contacts because I'm in front of computers all day and it doesn't make sense to plop contacts in just for sports), to be able to function (i.e. work, eat, sleep, play) without needing glasses, and to keep my existing good close up vision intact. Using glasses for driving or other occasional circumstances was acceptable (i.e. a pair of driving auto-tinting glasses). The healing process for LASEK is slow, much slower than the LASIK procedure.

Hopefully over the next couple of weeks or so, as I decrease the prednisolone dosage and my eyes correct themselves, the vision will slowly start to sharpen and if it wants to go to 20/20 I will be doing back flips. In the meantime, I just need a little patience.

Monday, May 15, 2006

Karma

Anybody watch the TV show "My Name is Earl"?

I was watching that show the other night and there was a sequence where penniless Earl and his brother, Randy, are trapped in the middle of a desert inside their car without fuel or a battery charge. In the morning a stranger passes by and offers $1,800 for their car. Randy tells Earl "take it Earl, you know this thing's only worth $1,500" so the stranger says "$1,500" and Randy replies "Take it Earl, we're desperate" so the stranger says "$1,200". Funny stuff.

The whole show revolves around "karma" – do good things and good things will happen to you. Do bad things and they will come back and bite you on the ass. In the show, Earl must right the wrongs he has listed on a yellow piece of paper to appease karma for taking a winning lottery ticket from him. This is only a television show, but sometimes it gets you thinking. When you are as bored as I am sometimes, thinking isn't necessarily the best thing.

As you can tell from the little menu on the side, I had LASEK surgery a little while ago. There were no major complications with the surgery; I wasn't blinded for eight days, there are no growths on my eyeballs, my eyes aren't clotted with gunk – things went okay. Things aren't perfect, though. I'm still not one of the eighty-five percent that can see 20/20 or better after laser eye surgery. My distance starts to blur after about fifteen to sixteen feet. I have an appointment in eight days and will know more but that is a lot of time in the day to accidentally slip into thought.

What effect, if any, has karma had on my LASEK surgery?

Most pieces of information I found stated 1 in 100 people have some sort of complication with laser eye surgery (within the first week). This must be good karma for something I did right either recently or throughout my life. It is now day nineteen (19) with the "new eyes" and since I am still not at 20/20 maybe the good karma I received to get through the surgery without complication is a "conditional karma" (i.e. here is some good, but you can do better – wink, wink) or maybe a "temporary karma" (here is some good karma on loan with fifteen percent interest payable ASAP).

On Friday I took a soccer ball in the face. If my eyes would have been uniform enough to have LASIK surgery, the flap could have been damaged and I could be blind in one eye. Is this good karma? I don't think so. Chances are good that if I would have had LASIK surgery I would have purchased special protective glasses and would have been wearing them when I got my face bombarded. So it wasn't good karma to push me to LASEK.

If I dissect the lack of 20/20 vision further it could mean I shouldn't be able to see things I used to be able to see with my glasses. Because of my vision I can't really talk about people behind their backs because they could be twenty feet from me and I wouldn't see them until I made some comment about their ineptness or horrifying body odor. I also cannot properly "babe spot" anymore. Some chick in the distance could be a complete package of tempting hotness but until they got close enough I would never know. They could actually be horrifying looking, or worse, illegal, or worse yet, a dude. I don't think it is karma telling me to not treat women as objects by staring at them because if that were the case my close up vision would have been fuzzy as well leaving me unable to view pictures or Internet porn.

I have received one comment about my looks without glasses. Maybe this is karma's way of nudging me out of geekdom and into a new, more attractive look? "You've suffered long enough you computer nerd, now go and stud yourself up". Then again, it could be karma's way of telling me to be myself; that no matter what I do to myself physically to change the flows I will never be perfect and will always find new or more imperfections.

Sometimes I think I think too much.

Tuesday, May 09, 2006

LASEK – day thirteen

Today was supposed to be the deadline day where my vision really sharpened up. My vision is still not 20/20 and hasn't improved much since day nine or ten. I still have about two weeks before I go back for the next follow up appointment but I have a feeling I will either need touch up surgery or will have to deal with the less than perfect vision; it isn't back to where it was before glasses. Blurred vision is one of the side effects of the Prednisone corticosteroid but I the blurred vision should include close-up vision as well. My next follow-up appointment is two weeks from now, so I will know more then and they will probably take me off the Prednisone at that time. Reading success stories on the Internet reassure me a little bit because there are a number of responses where weeks and months passed before vision was sharp enough to make people happy. Of course, there is a wealth of negative opinions and horror stories. One study suggested that 1 in 3 people were unhappy with their LASIK procedures, some going back to wearing glasses or for a second procedure.

I played soccer today in the gym, which was really nice without the glasses. I can play goalkeeper without having to squint. One of the nice things about the LASEK surgery is that it doesn't have the fragile eye-flap like LASIK so I can be a little more active. I still have to be cautious about my eyes, though.

Monday, May 08, 2006

LASEK – day twelve

Played hockey for the first time today since the surgery. The freedom to be active without the hassle of glasses was refreshing.

Saturday, May 06, 2006

LASEK – day ten

Today I dropped the Vigamox drops and reduced the Econopred to one drop four times per day.

Friday, May 05, 2006

LASEK – day nine

My vision still is not 20/20. My sharpness is about twelve to twenty feet in front of me before it starts to blur. This really sucks because I can't recognize people where I work until I'm really close to them. It also means I can't do a lot of babe-spotting (what a bummer). My close up vision if good enough to go back to the 1600x1280 resolution on my monitor.

Thursday, May 04, 2006

LASEK – day eight

My close up vision is about 98 percent of what it used to be (razor sharp). There is small bit of blurriness.

Tuesday, May 02, 2006

LASEK – day six

Finally I got those contact lenses out of my eyes. What a relief. My close up and distance vision wasn't the best but the OD said this was normal and it would take at least a week before things start clearing up.

I was going to go into work for a half-day but my close-up vision was just not good enough to make four hours of work worth the gas and time; so I stayed home and rested.

Monday, May 01, 2006

LASEK – day five

My close up vision is starting to return just a little. I read my electronic mail at work from my laptop (easiest to read).

Sunday, April 30, 2006

LASEK – day four

The swelling in my eyes decreased greatly but the protective contact lenses in my eyes were beginning to dry them out. I start using artificial tears frequently. My vision was good enough to drive myself home, so I did so. The drive home was uneventful but there was one time where I was unsure judging cars in the distance; so I played it super safe.

Saturday, April 29, 2006

LASEK – day three

I was still with my parents. When I woke up in the morning my vision seemed razor sharp but as the day progressed and my eyes got more tired the vision would blur. Both my close up and distance vision wasn't the greatest; good but not the greatest. I spent most of the day like I did the past two days: drops, eat, sleep. I tried to get in some walks to stay active and to see my old neighborhood and elementary school through new eyes.

Friday, April 28, 2006

LASEK – day two

There was a follow-up appointment the day after the surgery. My right eye is usually the dominant eye, but during recovery my left eye took over due to the amount of swelling and irritation in the right eye. I could read the eye chart with the left eye but not with the right eye. My eyes were sharper in dim light and blurred in bright light (like the sunlight outdoors).

Later that night

Later that night I played a card game with my Aunt and my parents. My eyelids were starting to get sore and swell up (normal). My close-up vision wasn't the greatest, there were times where I had to strain to see; so needless to say I didn't play very long (rest those eyes).

Thursday, April 27, 2006

LASEK surgery, part one

Today I was scheduled for LASIK surgery around 2pm. My dad and I arrived around 1:30 per request to get some tests performed. I went through some more tests before meeting with the MD. The MD informed me that my left eye had a slight deformity that would make LASIK a risky procedure and that LASEK was a safer option. I opted for the LASEK procedure.

It was around 3pm or so before we actually moved to the waiting room. I was given a medical kit with sunglasses, a steroid and some individually packaged, lubricating, artificial tears. I was offered a Valium (yes, please).

I was the first patient out of our group to go in for surgery. I remember wondering about the Valium and if enough time had elapsed for it to take effect (I've never had a Valium before so I had no idea how I should be feeling - should I be relaxed, loopy, or dizzy?).

The LASEK procedure

I was moved into the operating room then placed on my back. An eye patch cover was placed over my left eye to protect it while the right eye was operated on. The laser unit was moved over my head. The MD then placed what I assume were three plastic pieces under my eyelids to keep my eye open then rotated a suction cup down on the eye itself (to hold it in place). The MD focused the laser and scraped over my eye with some utensils. The next part was probably the most tense part: when they actually use the laser to burn your eye (if you ever decide to have this surgery this will be the worst part). The actual “laser” part started with the sound of a vacuum device that I assume was to suck the smell (smoke?) of burning eyeball out of the air. The laser made a snapping noise that sounded like the starter on a stove or barbecue grill. Even with the vacuum I smelled the results of the laser burning your eye. The laser was on for about seven to fifteen seconds (if you can get past that, the rest of the surgery is cake). After the laser disengaged, drops were placed in my eyes along with a protective contact lens (to aid recovery and regeneration of layers of the eye). The device on my eye and the devices propping my eye open were removed. The procedure was repeated for the left eye.

The entire procedure lasted about seven to ten minutes by my best estimates. My dad was watching the entire procedure from another room and admitted he could have used a Valium more than I did. The closed circuit monitor was a close-up of my eye and was probably the same thing the MD was seeing while operating on my eye.

Shields were taped to my eyes and we were sent on our way.

Afterwards.

Immediately after the surgery there were times where my vision was sharp and other times where it was almost as blurry as my eyes before the procedure. My eyes were sore and very sensitive to light. Figures it would be a bright, sun-shiny day that day.

The post-operative procedure heavily emphasized as much rest as possible. As soon as I got to my parent's house I walked upstairs to my old bedroom and was down for the count.

I would like to thank my parents for driving me from the facilities and putting me up in my old bedroom while I recovered.

Drugs?

I was placed on one drop of Vigamox four times per day and two drops of Econopred Plus (synthetic corticosteroid Prednisolone) four times per day. The recovery guide suggested Tylenol for pain so I stayed on the maximum dose per day for about four days.

Links

LASEK Eye Surgery: How It Works

Friday, April 21, 2006

I object

I just came from the four day class on developing computer programs using object oriented methodologies. I just have one question: does the object oriented world have any concept of a batch or set processing?

I will use the following pseudo SQL as an example: SELECT a,b,c,d,e FROM table1 INNER JOIN table2 LEFT JOIN table3 LEFT JOIN table4 WHERE table1.criteria = 'something'. The set from table1 will select about 50,000 rows (records) from a 12,000,000 row table. The table2 table will have 1 to 7 corresponding table1 records. Tables table3 and table4 are (for simplicity sake) optional (i.e. 0..1).

You have a data class for table1. The data object class has load and save methods to select and update data using SQL by unique id. I assume you would have to add a method to the data class to provide a way to return a collection of a) unique ids or b) objects by non-unique key selection criteria (hopefully an indexed column). If you have a unique id then you must create a new object and load it by ID (which would have horrible performance going one record at a time?). Then you would load the corresponding table2 object. What about the two optional tables? Would the class for the optional tables know to return a null or default value if the load method does not find a corresponding record? Back to table1; would you load all columns as part of the standard object load method even if you need maybe ten percent of the record?

It just seems so inefficient.

Would you create a completely separate "view" class for every single optimized sequence of SQL that would return a result set? In other words, try to create a reusable cursor that would map to a linear class.

And now the big question: how do accomplish this when the ERP system maps their file objects to three or (and usually) more tables in a positional way that cannot be materialized because of time elements?

I am so f'ing glad it's Friday.

Friday, April 14, 2006

Instant messenger; block the world

What you might run into if you don't block the world from your instant messenger ... (this is an old topic but a classic)

nueregal6903: hi... anyone there?? 
grouchygeek: (sleeping smiley emoticon)
nueregal6903: oh your there : hi...
grouchygeek: hello
nueregal6903: a/s/l (ge sex location)?
grouchygeek: you first
nueregal6903: im 27/f/USA. was lookin at your profile. thought you might like to chat.

(btw my grouchygeek profile of looks like this):

Basics 
Yahoo! ID:grouchygeek
Real Name:Go away
Nickname:Grouchy
Location:Canal Winchester, OH
Age:36
Marital Status:Single, Not Looking
Gender:Male
Occupation:Computer Geek
Yahoo! grouchygeek
More About Me
Hobbies: None...
Latest News: None, Im boring...
 
Favorite Quote
"None.."
 

(sounds likes someone who wants to "chat")

grouchygeek: about what?
nueregal6903: so what have you been up to grouchygeeek?
nueregal6903: cool. i was just hangin oit watching tv. i was getting kinda horny (*blushes)
grouchygeek: do you like chex mix?
nueregal6903: feel like a little cyber fun with me ? please please...
grouchygeek: do you like chex mix?
nueregal6903: i zhink ill just take that as a yes... being as that im starting to get real horny here.. lol ok?
grouchygeek: chex mix makes you that way?
nueregal6903: alright how bput i get down on my knees in front of you and help you out of your pants?
grouchygeek: can i finish my chex mix first?
nueregal6903: tell me what you want me to do with you while i slip out of my panties
grouchygeek: you've already done it
nueregal6903: oh yeah babe.. dont stop. while i slide my hand down between myy legs and part my moist lips
grouchygeek: keep going
grouchygeek: would you like some chex mix?
nueregal6903: oh it feels so good. Im holding your pulsing cock in my hand, my shiny red fingernails dig gently into your balls, while my full, soft lips engulf the mass of your meat
nueregal6903: open my website so you can look at me while im suckig you. use the link in my profile!
grouchygeek: no link
nueregal6903: cyberfungirls dot com. look for me on that page
grouchygeek: are you as cute as the last girl from cyberfungirls that i reported to abuse at yahoo dot com for bothering me at work ?

(this is actually the second one)

nueregal6903: oh no not work... thats a 4 lettter word you know.. 
grouchygeek: yup... 4 letter word
nueregal6903: what d you think of my pics?
grouchygeek: didn't see any pics
nueregal6903: i ave some pics on my homepage the link is in my profile, still working on it ...
grouchygeek: how much do they pay you to look for profiles of people to bother and chat with all day?
nueregal6903: lol. th website is just something i do to make ends meet. theres lots of free pics on there anyway.
grouchygeek: free pics are boring
nueregal6903: how about you send me some pics
grouchygeek: that would be hard to do with me at work, remember?
nueregal6903: shit the phone. dont stopp stroking it. hold on...
grouchygeek: you just crapped out a phone? didn't that hurt?
nueregal6903: sorry, I have to take this call, probly take bout five mnutes. If you want, come to my page and lets finish this. I have my cam on there cyberfungirls dot com look for me on there
grouchygeek: uh huh...
grouchygeek: it's probably yahoo calling about you using their messenger for commercial purposes
grouchygeek: abuse@yahoo.com
grouchygeek: (dancing emoticon)

So, how about you - do you like Chex mix?

Friday, March 10, 2006

Woo hoo! 100th post

Figures I would waste the 100th post on humor. Not that there is anything funny about political correctness, but...

How to Speak About Women and be Politically Correct

  1. She is not a BABE or a CHICK - She is a BREASTED AMERICAN.
  2. She is not a SCREAMER or MOANER - She is VOCALLY APPRECIATIVE.
  3. She is not EASY - She is HORIZONTALLY ACCESSIBLE.
  4. She is not DUMB -She is a DETOUR OFF THE INFORMATION SUPERHIGHWAY.
  5. She has not BEEN AROUND - She is a PREVIOUSLY ENJOYED COMPANION.
  6. She is not an AIRHEAD - She is REALITY IMPAIRED.
  7. She does not get DRUNK or TIPSY - She gets CHEMICALLY INCONVENIENCED.
  8. She does not have BREAST IMPLANTS - She is MEDICALLY ENHANCED.
  9. She does not NAG YOU - She becomes VERBALLY REPETITIVE.
  10. She is not a SLUT - She is SEXUALLY EXTROVERTED.
  11. She does not have MAJOR LEAGUE HOOTERS -She is PECTORALLY SUPERIOR.
  12. She is not a TWO-BIT WHORE - She is a LOW COST PROVIDER.

How to Speak About Men and be Politically Correct

  1. He does not have a BEER GUT - He has developed a LIQUID GRAIN STORAGE FACILITY.
  2. He is not a BAD DANCER - He is OVERLY CAUCASIAN.
  3. He does not GET LOST ALL THE TIME - He INVESTIGATES ALTERNATIVE DESTINATIONS.
  4. He is not BALDING - He is in FOLLICLE REGRESSION.
  5. He is not a CRADLE ROBBER - He prefers GENERATIONALLY DIFFERENTIAL RELATIONSHIPS
  6. He does not get FALLING-DOWN DRUNK - He becomes ACCIDENTALLY HORIZONTAL.
  7. He does not act like a TOTAL ASS - He develops a case of RECTAL-CRANIAL INVERSION.
  8. He is not a MALE CHAUVINIST PIG - He has SWINE EMPATHY.
  9. He is not afraid of COMMITMENT - He is MONOGAMOUSLY CHALLENGED
  10. He is not HORNY - He is SEXUALLY FOCUSED.