Navigation | You Give Love a Bad (Dot) Name
November 7, 2008
An interesting tidbit of information: If you create a cartogram of the United States, by county, based on the number of voters in the 2008 presidential election, and then shade each county red/blue based on the percentage of mccain/obama votes, it comes out looking strangely beautiful, like a purple bird in flight.
At the risk of sounding overdramatic, after 7 years in chains, hope now flies — on purple wings.

Filed by JC at November 7th, 2008 under Thoughts
No comments on this post yet
November 6, 2008
I'm really getting tired of seeing this guy… I made the graphic for IT security, but I wasn't expecting them to filter firefox, too….

Filed by JC at November 6th, 2008 under Random
No comments on this post yet
September 29, 2008
Some modifications to the vacation plans…
Thursday night — Park & Fly package at a hotel by the airport in chicago, dinner at the Woodfield Mall.
Friday — Fly to PR, pick up rental car (Jeep Wrangler), check in to Da House and explore Old San Juan.
Saturday Morning — El Yunque Rain Forest
Saturday Afternoon — Flight from Fajardo to Vieques (Air Flamenco, who actually answers the phone…), check in to Casa de Amistad.
Saturday Evening — Biobay tour with Island Adventures.
Sunday Morning — Rent a car from Martineau Car Rental and check out the island. No specific plans.
Sunday Evening — Sunset from a beach (Probably the west end of Starfish beach) or possibly a second biobay tour.
Monday Morning — Return car, Flight from Vieques to Fajardo, board the Erin go Bragh III for a day of snorkeling and sailing.
Monday Evening — Return to San Juan, check in to the Caleta Guest House's Jungle Room.
Tuesday Morning — check out any of the San Juan stuff we haven't done yet.
Tuesday Afternoon — Arecibo Observatory and the Caguana Ceremonial Ball Courts, then check in to the Casa Grande
Wednesday — Breakfast, Yoga, a bit of a rest, then the ferry around Lago dos Bogas (Youtube link) and lunch at one of the cantinas there. Then back to the casa for some rest (and maybe a side trip if we missed anything on tuesday)
Thursday — Breakfast, Yoga, then a trip to Ponce for the day. We'll visit the Tibes indian site, the coffee plantation, Seralles Castle, and maybe the art museum, as well as some shopping. Then back to the Casa for dinner & relaxation.
Friday — Breakfast, Yoga, and a day of complete relaxation.
Saturday — Breakfast, Yoga, and back to San Juan… maybe visit something on the way there since our flight isn't til 2pm.
Filed by JC at September 29th, 2008 under Random
No comments on this post yet
August 29, 2008
Going back to PR again this year! Here's the current outline of the vacation plans… subject to change.
Here's the map.
Arriving Friday afternoon, staying Friday night in "Da House", a sort of bohemian artsy place on top of a popular nightclub, packed full of art by local artists.
Spending Friday afternoon/evening exploring Old San Juan, probably have dinner somewhere with local criolla food, and walk along the walls of old san juan, the street vendors, etc… have some good coffee…
Saturday morning, head to Fajardo and board the Erin Go Bragh, a 50 foot sailboat, which will take us on a 7 hour tour of some of the small islands of the Spanish Virgin Islands (you never hear about them because they're smaller than the other ones, considered a part of PR and until like 2004 they were mostly restricted military training grounds), including snorkeling and lunch.
After that, we head to the island of Vieques, either dropped off by the Erin Go Bragh, or taking the ferry from Fajardo, and check in to the Casa de Amistad, drop off our things, and as the evening approaches, head off for a biobay tour, where we'll boat and swim in one of the worlds few bioluminescent bays, where little plankton things glow when the water around them is disturbed. (We might end up having to do this Sunday instead because of time constraints)
Sunday we'll rent a jeep and explore the island. Until very recently it was almost entirely restricted as a naval training area, but now it's a protected national or state park or something… we plan to visit the other town on the island, take a quick half hour tour of the local fort and museum, and then drive around… maybe do some more snorkeling on our own or find a nice beach to relax on. In the evening, we'll watch the sun set over the ocean from a beach on the west coast. (Unless we can't get in a biobay tour on Saturday).
On Monday, we'll leave Vieques by ferry, and head to El Yunque rain Forest. We haven't decided exactly what we want to do there, but probably a guided tour and some hiking and maybe swimming in one of the pools with waterfalls and stuff.
From there, we head back to Old San Juan, check in to the "Jungle Room" at the Caleta Guesthouse, and tour the old forts and we're not sure what else just yet… there's lots to do there. I suggested celebrating our stay in this bohemian crash-pad by drinking copious amounts of local rum.
Tuesday morning, we'll check out and head east. We may visit Arecibo town and the lighthouse park there, may not. Then on to Arecibo Observatory, that giant radio telescope up in the mountains that was used in the movies Contact and Goldeneye.
From there, we'll visit the Caguana Ceremonial Ball Courts in Utuado, a Taino indian site with over 25 ball courts. They played a sport similar to soccer to resolve disputes, and for fun.
And then from there we head to the Casa Grande and relax for the rest of the day, with maybe a short hike through the surrounding area if time allows. Yoga every morning at the casa, also.
Wednesday, depending on how time goes, we plan to take the ferry around the nearby mountain lake, stopping at one of the cantinas for lunch, and if time looks good, head south to Ponce to tour a coffee plantation, the castle home of the Seralles family, who founded DonQ Rum, and a second indian site. We'll also do some shopping (Ponce is sort of the arts & crafts center) and visit the art museum there, then head back to the hotel for dinner and relaxation.
Thursday we'll either relax completely with maybe lunch at a cantina, or do al the stuff I listed for Wednesday and have lunch in Ponce, which seems much more likely as we continue adding ideas to the ponce visit.
Friday is *nothing*. we're going to spend the day soaking up sun, napping in the hammocks, and just totally, completely relaxing.
Saturday we head back to San Juan, possibly taking care of any little things we wanted to do between the casa and san juan on the way… our flight doesn't leave til 2 or so, so we have a good bit of time.
And then we're back in good old Chicago and on our way to SB and … work. blech!
Filed by JC at August 29th, 2008 under Random
No comments on this post yet
August 17, 2008
Back when they first figured out how to put custom ringtones on the iPhone, I immediately knew what I had to do. And on some odd whim, I'm now uploading them for whoever wants to use them.
Fair warning: being awakened by a murloc gurgling loud enough for the neighbors to hear may be hazardous to your sanity, if you plug your phone into external speakers at night like I do, exercise caution.
Filed by JC at August 17th, 2008 under Funny, Gaming, World of Warcraft
No comments on this post yet
July 17, 2008
Since I stood in line on the first day to get my iphone, I've had one major complaint. (well, ok, three — No MMS and no flash so I can see the stupid website that AT&T sends me to when people try to send me MMS are the other two…) I wanted to add my entire company directory to the phone so I'd know who was calling me, but I didn't want it cluttering up the list of people I actually call.
I'm not sure if I'm just totally blind or this wasn't available back then, but at any rate, you can do it now, and it's quite simple, at least on a Mac. No clue how it'd work in Windows because that's not what I synch my phone with.
If you add a new Group within the Mac Address Book, the itunes interface for synching your iphone changes. Instead of simply synchin gcontacts, it lets you choose whether to synch all contacts or to synch a given group. And the iphone remembers what group you're looking at, so you don't have to go through the group-choosing process every time you want to make a call.
So, now, I have "Work" "Food" "Business" and "Friends/Family" groups, with work having the complete phone directory for my company, and a bonus of splitting out my clients and other business contacts from my small business off to another group, as well as having a single group to make it easier to call in advance for reservations/pre-order if I'm on the way to a restaurant.
Also — if you didn't know, you can take screenshots on the phone by holding down the Home button and pressing the power button. The screen will flash and the screenshot will be in your film roll as if you'd taken it with the camera.
Filed by JC at July 17th, 2008 under Random
No comments on this post yet
July 14, 2008
Funnel Web Analyzer is an excellent web log analyzer by Quest that we've been using since before Quest bought it. It used to be fairly expensive, but they decided to stop development on it, and at that point released it for free. It runs on Windows, OSX, Linux, and Solaris. It hasn't been updated in a while, officially, but you can pick up an updated settings file that will support more recent browsers and search engines (and modify it yourself for anything you want to track that's missing).
As I said, we've been using it in my office for years, but in the last couple of months it started failing on me in a weird way. It would just silently crash. No message. Nada. Just one minute it's there, the next it's gone. Part of that I tracked down to some settings in Windows system preferences.. but there was no good indication of *why* it crashed. I knew it wasn't because of the volume of data passing through it because it handled years at a time previously without complaint. Very odd.
Long story short, back in late January I switched our sites from having log files that roll at X megs (50 in some places, 500 in others), to log files that roll once per hour. That was the problem — either funnel web itself or the process that unzips .gz files cannot handle more than a few thousand log files at once.
So, how to fix it? Not sure if I picked the best possible way, but it seems to have done the trick. Here's what I did:
- Changed all the servers to log by day instead of hour, so I don't have to deal with this again in a few months
- uncompressed the files into a subfolder
- combined the log files into a monthly file using DOS — copy 2008-www1-ex0801*.log 2008-www1-ex08.log
- If the resultant log files are over 1.2 gigs (the max TextPad will open), run the freeware TextSplitter tool to split them into chunks of around 900 megs each
- Open the first file in TextPad, copy the log file header lines to another document.
- regular expression replacement to strip out all the header lines: ^\#.*\n
- Tools > Sort > From 1 Length 20 Ascending Case Insensitive (in case the merge put some of the files in in the wrong order)
- Check for any lines from the wrong month, drag those out into a new document if they exist
- Paste in the header at the beginning, update the date/time stamp there to match the first record if needed
- Save and move to the next file. Rinse. Repeat. Be sure to drag/paste any extra hours of data you might have excised from earlier months.
At the end of this, instead of having around 7000 files for one 2-server cluster, I had around 20-30 depending on the site. Going forward of course, this number will be larger since I have it set to 1 file per day. But at any rate, I was then able to easily run my reports and can remain confident that the scheduler will begin to do its job properly again.
Hope that helps someone out there.
Filed by JC at July 14th, 2008 under Web Stats
No comments on this post yet
July 6, 2008
to the bastard who celebrated Independence Day by going around and doing this:




Filed by JC at July 6th, 2008 under Michiana, Thoughts
No comments on this post yet
June 27, 2008
A month or so ago I had to throw together a script to help with some forensics, it strikes me that it might come in handy for other people, so I'm going to post it here. Just edit the first bit and provide it with your datasource name, and run it. You might need to adjust the timeout settings in ColdFusion Administrator — if your database user has access to a lot of stuff, it could take a very long time to run.
It uses one of the new CF8 tags, CFDBinfo, that hasn't gotten much press. It also highlights something that I found a bit disturbing, though I guess it makes sense… even though you assign a database name to your DSN in CF, CF isn't locked down to that DSN, it can interact with any database on the server that the user you put in there can access.
This snippet of code is also pretty useful — it shows all your DSN settings at once:
<cfset sf = CreateObject("java", "coldfusion.server.ServiceFactory")>
<cfdump var="#sf.DataSourceService.getDatasources()#" expand="true">
With either of these, please exercise caution.. don't put them somewhere anyone but you can execute them, and don't leave them up there any longer than it takes for you to extract the data you need.
Filed by JC at June 27th, 2008 under ColdFusion
No comments on this post yet
June 4, 2008
I keep this in a file on my desktop.. may as well put it here, too… maybe it'll help someone someday.
CRLF:
cfset crlf = #chr(13)#&#chr(10)#
Variable Variables:
cfset varvar = "MyVarName"
cfset "#varvar#" = "whatever"
#evaluate(varvar)# outputs "whatever", #varvar# outputs "MyVarName"
Existence/Type Test:
StructKeyExists() IsDefined() (isDefined fails on complex vars with[], use dot notation) IsArray() IsStruct() IsQuery() IsSimpleValue() IsNumeric() IsDate() IsBinary() IsBinary()
CFHTTP Connection Failure
Gzip bug — add this:
cfhttpparam type="Header" name="Accept-Encoding" value="deflate;q=0"
cfhttpparam type="Header" name="TE" value="deflate;q=0"
Also check for redirect="yes|no" — sometimes redirect needs to be set to no
Query Variables:
query_name.currentRow, query_name.columnList, query_name.RecordCount, result_name.sql
Query of Queries:
cfquery dbtype="query" name="foo" — select * from query_name
CFDirectory Performance:
listinfo="name" significantly improves performance, if you don't need other columns
CFQueryParam:
Null="#YesNoFormat(NOT LEN(MyVar))#" will make the value NULL instead of empty
List="yes" will internally CFParam all list values so you can do WHERE ID IN (cfqueryparam… list="yes") and get a valid list format. Add separator = '|' instead of delimiter='|' — for some reason this tag is different than all the other ones.
CF_SQL_TIMESTAMP — datetime, smalldatetime (use CreateODBCDateTime() for this)
CF_SQL_CHAR — char, nchar, unique identifier
CF_SQL_VARCHAR — varchar, nvarchar, sysname
CF_SQL_LONGVARCHAR — text, ntext
CF_SQL_NUMERIC — numeric (scale='2' for 2 decimal places)
CF_SQL_INTEGER — int
CF_SQL_SMALLINT — smallint
CF_SQL_TINYINT — tinyint
CF_SQL_BIT — bit
CF_SQL_FLOAT — float
CF_SQL_DECIMAL — decimal, money, smallmoney (scale='2' for 2 decimal places)
CF_SQL_BINARY — binary, timestamp
Merge Log Files (Not CF, but useful!)
copy *.log merged.log
CF Regex:
rereplace(foo, "[[:space:]]+", " ", "all") — turns all whitespace into single space
rereplace(foo, ".*?", "", "all") — strips all HTML tags (probably fails if they span multiple lines)
(updated July 16)
Filed by JC at June 4th, 2008 under ColdFusion, Web Stats
3 persons have commented this post