The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Monday, January 20, 2003

A night of driving

Spring and I met Mark at JeffK's house, and from there we headed over to Kelly's for a night time (or rather, very early morning time) wardriving session. It was planned earlier that day pretty much on a whim, just to see what we could find. Mark had thought we would only find two WAPs; I on the other hand thought we would more than a dozen. Since I had the largest car at the moment (Mark's BMW is currently in the shop) I was the designated driver for tonight's festivities.

Once at Kelly's we piled into my car—me in the driver seat, Mark got shutgun, with JeffK, Spring and Kelly in the back seat. To ensure that the computer would remain operational for the duration of the trip, Mark brought along a transformer that ran off the cigarette lighter and provided 110 volts AC current to avoid having to use the laptop batteries; Mark and Kelly both using laptops.

As we started driving off, Kelly realized that he had neglected to install the proper scanning software on his laptop, so we returned back to his house. We sat in the driveway for some twenty minutes as Kelly attempted multiple times to download the software via his wireless access point. While he was doing that, I took the opportunity to take a few pictures while Mark checked his email.

Once the software was installed, we started wardriving. We determined that the scanning software worked better with Mark's wireless network card, so that was installed in Kelly's machine. Less than a mile from Kelly's house we hit our first WAP. The position was recorded for later analysis.

We then headed south down towards Cypress Creek Blvd. with a high concentration of high tech companies in South Florida. Once there we headed east towards I-95. It was pretty quiet until we turned into a large corporate park where we hit about three WAPs right there; one closed off, two open. One of the open ones belonged to a hotel—we assumed for the benefit of their customers.

From there we then headed south along Powerline Road and while we would occasionally get a stray signal we couldn't get a strong lock on any one WAP. Fortunately there was very little in the way of traffic since we were (or rather, I was) driving quite erratic, taking sudden turns, backing up, driving very slowly, attempting to track down the stray signals.

After that, we tried driving through Margate and in the north western corner of the city (18th near 80th, where I used to live during high school) we found one WAP, athough we couldn't find it with three additional passes; afterwhich we decided that it be best to move on least we attract unwanted attention.

We then headed back towards Kelly's and on the way, we were able to pin down the first WAP we found to one of two houses in a gated community. Oddly enough, the scanning software incorrectly identified the openness of Kelly's WAP. Go figure.

So we found more WAPs than Mark thought we would, but less than I expected. Not too bad for something planned at the last minute. This is something we are planning on doing again, only this time with better planning and hopefully, better software.

Sunday, January 19, 2003

“I'm turning Japanese, I think I'm turning Japanese, I really think so.”

JeffK mentioned that over the past few days, when he views The Boston Diaries his browser asks if he wants to download and install Japanese language support. I found the notion odd, but like some stores I've heard, computers can be affect by wierd things so it was remotely possible that for whatever reason his browser felt the need to install Japanese language support whenever my page was loaded.

So we head over to his computer and as he's bringing up my blog, it suddently hits me why his computer is asking to install Japanese language support: my entry on the 14th! (don't worry, it's fixed for now).

When writing English, I was taught that you italicize foreign words. Easy enough to do in HTML, just slap some <I> tags around the word and be done with it. But semantically that doesn't really mean anything, what with the semantic web being a current hot topic and all. While it's apparent to most readers that garçon is French and über is German, what about slumpmässig? Could be German for all you know (it's not—it's Swedish). By using the features inherent in HTML we can add semantics to foreign words beyond just italicizing them.

And that's what I do, in fact. For a foreign word like slumpmässig I'll encode it up like:

<I LANG="se" TITLE="chance; luck, hazard">slumpm&auml;ssig</I>

Certain browsers, like MSIE and Mozilla, will display a tooltip with the text in the TITLE attribute, where I stick the translation of the word (if you happen to be using MSIE or Mozilla, try holding the mouse over a foreign word), and an intelligently programmed HTML vocalizer (used perhaps, by the blind to speak pages) can use the language tag to help recognize which language the word is written in and use that to guide the pronounciation.

Semantically much better than just <I>slumpm&auml;ssig<I>.

So, when I wrote that entry on the 14th I did what I've been doing now for some time and slapped some semantics around the Japanese terms.

The <I LANG="ja" TITLE="fan art">dojinshi</I> market .... <I LANG="ja" TITLE="comic book">Manga</I> publishers ...

They are Japanese terms after all.

Since I seem to already have the Japanese language support installed I didn't notice anything odd when I loaded the page to proof read the entry. But it seems that other browsers that don't have the Japanese language support saw the language attribute for “Japanese,” realized they weren't installed, so decided to ask the user if it was okay to install Japanese language support. But I'm using an Anglicized spelling for a Japanese word so there's no real need to download Japanese language support for what I used, so how do I get around that?

That, I don't know. I'm fudging it right now by using LANG="x-ja" which is allowed (any language code starting with “x” is for private use; that shouldn't trigger any download message from browsers—it's intended for words like Nazgûl which don't have an officially designated language), which I suppose, is better than nothing.

Update on Saturday, September 23rd, 2023

I think it's more semantically correctly to use the <I> tag than the <SPAN> tag to mark foreign words, so I'm going back and making that change.

Friday, January 17, 2003

Twenty-first century CB radio …

About two weeks ago I made a brief mention of roving wireless network. There is now a webpage with more information.

Very geeky, and very cool …

Thursday, January 16, 2003

Alphabet Soup of the Viet-Cong

I started to convert my website to XML back in October but what with the holiday season and what not, that particular project got pushed back. But the past week or so I've resurrected that particular project and I've been immersed in XML, XSLT, HTML and CSS and other alphabet soups of technology.

I had started with converting my humor columns over to XML (of which I had converted about half) and wrote an XSLT file to convert them to XHTML. Earlier this week, I picked up where I resumed, converting the rest to XML and tweaking the templates. Given the recent brouhaha over XHTML, plus an inability of some older browsers to properly handle the XHTML markup, I rethought the notion of using XHTML and went back to HTML 4 strict (which is now an easy thing to do given I'm using templates).

I had started with one of the lower sections of my website and was working my way up (I had finished with Murphy's Law, now time to work on the High-Brow Literary Section) when I started having integration problems, mainly with XSLT. I was working on one template file for the writing section, and I already had a separate template file for the columns.

<?xml version="1.0" ?>

<xsl:stylesheet
        version="1.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>

<xsl:include href="murphy/murphy.xsl"/>

writings.xsl

When I wasn't getting errors I was getting odd results. Perhaps it was still my unfamiliarity with XSLT and the differences between <xsl:include> and <xsl:import> but I was having a difficult trying to locate the source of the odd results, like spurious output when there shouldn't have been any.

I then switched to a top-down conversion, with a single XSLT file. I rewrote what I had, making naming changes to clarify what template what was and what was going on.

Whatever I did, it cleared up the problems I was having.

It's slow going, and XSLT is not the prettiest of languages to program in (and yes, it is Turing Complete so it is a programming language) and I'm still trying to get used to XPath expressions.

<xsl:call-template name="common-meta-tags">
  <xsl:with-param name="year"><xsl:value-of select="substring(@ref,1,4)"/></xsl:with-param>
</xsl:call-template>

<xsl:if test="position()&gt;1">
  <link 
	type="text/html" 
	rel="next"
	title="{preceding-sibling::about[position()=1]/attribute::date}"
	href="../{preceding-sibling::about[position()=1]/attribute::ref}.html"
  />
</xsl:if>

<xsl:if test="position()&lt;last()">
  <link 
	type="text/html" 
	rel="previous"
	title="{following-sibling::about/attribute::date}"
	href="../{following-sibling::about/attribute::ref}.html"
  />
</xsl:if>

site.xsl—Portion of code to generate the index of about pages

Yes, the relational operators like < have to be encoded as &lt; since this is XML—like I said, it's not pretty. And certain XPath expressions can use the short form, while others (such as selecting adjacent nodes with preceding-sibling and following-sibling) have to use the fully qualified notation and you have to know when that is (of the thirteen axis you can step by, child, descendant, descendant-or-self, parent, ancestor, ancestor-or-self, following-sibling, preceding-sibling, following, preceding, attribute, namespace or self only five can be expressed in a shorthand notation, self (as “.”), parent (as “‥”), child (as the name of the element), descentant-or-self (as “/”) or attribute (with a “@” preceding the name of the attribute)).

I hope you got all that (and I suspect I just lost all my readers at this point).

You also don't have variables, even though <xsl:variable> would lead you to think so; it's more a named constant than a variable.

It's stuff like this that reminds me of the Vietnam draftee Kansas farm boy walking through the jungles of South East Asia oblivious to the various trip wires the Viet-Cong have planted …


Snippits of an overheard conversation dealing with a convalescing motorcycle accident victim and his erstwhile friend who has a remarkable revelation to make

“Gregory, you've been a lot nicer since your accident, you know that?”

“I guess having a near-death experience will do that to you.”

“It's either that or the drugs.”

Obligatory Picture

[The future's so bright, I gotta wear shades]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site: https://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

https://boston.conman.org/2000/08/01

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2024 by Sean Conner. All Rights Reserved.