Categories
Geek Toronto (a.k.a. Accordion City)

Web Site Integrator Postion in Toronto

Here’s the job that my friend Jay Goldman is offering. Tell ’em you heard about it from the “Accordion Guy” blog.


Job Code: DEV02

Location: Toronto

Type: Full Time

Description

Radiant Core has an immediate opening for a full-time Integrator. You

will be responsible for implementing client sites based on Architecture

and Design Documents, including HTML/CSS, images, and integration with

Radiant Core’s Foundation Website Management Platform. You feel at home

in a self-directed team environment and love producing work that

pleases both you and your clients. You are comfortable building HTML in

a text editor, fixing cross-browser/platform rendering issues, and have

some amount of programming experience in either JSP, PHP, or ASP. You

understand the importance of web standards and are often heard

muttering about validation and cross-browser compliance testing.


Responsibilities

You will work very closely with our Architects, Developers, and

Designers as a member of our Professional Services Team, reporting

directly to our Vice President, Professional Services. You will be

responsible for implementing client websites based on Architecture and

Design Documents, as well as ongoing work to improve our processes and

client services.

Required Skills/Education

  • One or more years experience designing and building

    standards-compliant websites (XHTML 1.0 Strict, CSS2.0) without the use

    of WYSIWYG editors as we hand-code our sites. We are not, at this time,

    hiring implementers who are not fluent in CSS2. Please do not apply for

    this position if you use tables to lay out your websites as your

    application will not be considered.

  • Experience in a client-service environment and an understanding of the politics of client work
  • Experience in design software and web tools (e.g.: Photoshop, Illustrator)
  • Knowledge of cross-browser and cross-platform issues and workarounds
  • Ability to work quickly and efficiently in a self-directed environment and a willingness to learn new things
  • Bachelor degree or equivalent from a related program
  • Knowledge of web programming in one or more of JSP/PHP/ASP
  • Experience with JavaScript

Bonus Points!

  • Experience with JSP specifically (rather than PHP/ASP)
  • Experience building dynamic websites based on Content Management Systems
  • Working knowledge of Macromedia Flash and ActionScript
  • Familiarity with team development environments including CVS, etc.

Compensation

Compensation will be commensurate with your level of experience. Our

employees enjoy competitive pay, flexible hours, a prime downtown

location, and potential ownership opportunities. We are in the process

of finalizing our benefits package and stock plan.

How to Apply

Please send your resume, in an electronic format (e.g.: Microsoft Word,

PDF), along with a link to your portfolio site, to “careers at radiantcore dot com”. Please reference job code DEV02 in your

subject line.

Categories
Geek Toronto (a.k.a. Accordion City)

Speaking at the CASCON 2005 Conference

I’ll be speaking at the blogging workshop of the CASCON 2005 Conference

which takes place next Wednesday, October 19th from 1 to 5 p.m. at the Sheraton Parkway Toronto North Hotel and Convention Centre in Richmond Hill.

Here’s the abstract for the workshop:

Many components of pervasive computing are already in place, including

collaborative and communication applications such as instant messaging,

e-mail, text messaging, and conferencing. In addition, mobile devices

are providing ubiquitous computing and communication capabilities.

Improved methods are now needed to support collaboration that goes

beyond explicit authoring, messaging and conferencing. Techniques such

as collaborative filtering (e.g., in book recommendations by Amazon),

social networking (using systems such as Orkut), and blogging, are part

of an emerging domain of social computing. We are interested in the

impact of blogging and related communication and collaboration

activities, and how social aspects such as community building can

enhance the performance of business activities.

This

workshop will provide a forum for the discussion of issues related to

the development and usability of social computing systems and

applications. Part of the workshop activity will include requirements

analysis for applications of social and pervasive computing. Speakers

from academia and industry will describe their experiences in

researching and deploying social computing applications.

Topics of

interest include: blogs and wikis, semantics, creating and building a

community, e-commerce, and information epidemics. Specifically to

blogs, the workshop will address bottom-up (grassroots, personal,

diary) blogs versus top-down (topic-oriented, corporate sponsored,

political party, etc.) blogs. Other topics to be covered will include

musicblogs, photoblogs, mobile phone blogs (moblogs), and videoblogs.

The syndication and aggregation of blogs using RSS (Really Simple

Syndication) will also be discussed.

…and here’s the abstract for my ten-minute talk…

Businesses have adopted a number of technologies that once

weren’t thought of as essential. The telephone, fax machine,

photocopier,computer, web site and high-speed network all made the leap

from niche gadgets to must-have business equipment. Twenty years ago, a

business without a fax machine would have been considered archaic;

today, abusiness without a presence on the world wide web seems equally

so.

My talk will cover the business applications of blogs and related social

software technologies for companies ranging in size from the solo

entrepreneur to the multinational corporation, based on my

own experience and observing other business blogs. We’ll take a look

at some business blogs that I find interesting, and I’ll tell

some stories of the right and wrong ways for companies to make use of

the power of blogs.

Presenting along with me will be:

  • Dr. Ian Graham, Enterprise IT Strategy, BMO Financial Group
  • Alvin Chin, U of T and workshop co-chair
  • Veronica Holmes, Bell Canada

Admission to the conference is free. If you’re interested, visit the registration page today!


You may want to check out these links:


My thanks to Alvin “GadgetMan” Chin and Sascha Chua for organizing the event, inviting me to participate and putting up with my general non-availablity last month!

Categories
Geek

Dial “M” for MAXINT

[I originally posted this to The Farm, but thought that it might be of general enough interest to post here.]

This one got pointed out to me by Alain Chesnais, Tucows’ new Director of Product Management. Google the following phone number:

(214) 748-3647

There are nearly 19,000 results for this phone number at the time of this writing. That’s a little odd.

Also of note is the fact that although 214 is the area code for central Dallas and parts of northeast Texas, the first page of Google results also reports that the number for four cafes with free wi-fi in San Francsico, Santa Cruz and Fremont, all cities hundreds of miles to the west, in California. It’s also reported as the phone number for the Jackson County, Florida Chamber of Commerce. And an inn in Labrador.

What’s happening here?

I looked at the number on Friday morning, not thinking much about it until lunch, when it occured to me that I if I ignore the phone number formatting, it becomes:

2147483647

…which should look very, very familiar to most programmers. That’s the largest value for a signed integer that can be represented in 32 bits, or MAXINT for many programming languages…and databases.

These Google results for the MAXINT phone number are most likely coming from database-generated pages (and maybe a few static pages in which someone dutifully copied the number from a database-generated source) in which the phone number was stored as a signed 32-bit integer value.

This will work for phone numbers with the following area codes…

  • 201: Jersey City/Hackensack NJ
  • 202: Washington, DC
  • \

  • 203: Connecticut
  • 204: Manitoba
  • 205: Alabama
  • 206: Seattle, WA
  • 207: Maine
  • 208: Idaho
  • 209: Fresno, CA
  • 210: San Antonio, TX
  • 212: New York City
  • 213: Los Angeles

and some subset of numbers in the 214 (Central Dallas) area code.

The moral of the story: don’t store phone numbers — or for that matter, any number that has no actual value as a quantitative amount, such as social security numbers, serial numbers and so on — as integers!

Categories
Geek

Java Developer Wanted

My friend Hector contacted me asking if I knew any Java developers

looking for a new gig. I said I didn’t, but I thought I’d post it here

and see if any of you might be interested. Here’s the basic info:

  • Senior Java developer
  • The company is “up-and-coming” and develops GPS and geolocation software
  • Offcie location: Richmond Hill
  • The candidate will be required to lead and mentor a team of 5 developers and 5 QA people
  • The candidate will be required to communicate with a number of remote customers
  • The candidate should be familiar with MySQL/PostgreSQL databases
  • Salary is negotiable

If you’re interested, drop me a line or leave a comment and I’ll send you Hector’s way.

Categories
Geek It Happened to Me

Marc Canter Sez: “Bring Accordion Boy!”

Photo: Marc Canter.Marc Canter, in a roundabout way, has played an important role in my career. He was behind the multimedia authoring tool Director, the first development tool I ever used after graduating from school.

Although my computer science degree and strong marks in my database courses meant that I could’ve landed a job at a bank or insurance firm, I wanted slightly more offbeat work. I ended up working for an interactive multimedia company, Mackerel Interactive Multimedia, where I used Director. Thanks to Director and Mackerel, I’ve been doing “road less travelled” techie work ever since.

(Cory Doctorow wrote a piece about Mackerel for Wired titled Burying the Fish. Although commissioned, it was never published.)

Canter’s in Accordion City this week, and sent Boss Ross some email inviting him for lunch. The most notable line in the email, which was cc’d to me:

OK dude - so how 'bout lunch on the 8th?

We’re staying at the Four Seasons – wanna do dim sum or something like that?

Bring Accordian Boy.

That’s Accordion MAN, dude!

Coming along with me and Boss Ross is Tucows’ new VP of Product Development, Alain Chesnais, who in former lives worked at ATI and Alias, partially because this is the sort of meetup that he should be attending and partially as a “welcome to the herd!” activity.

It should be a fun lunch — dim sum — and I’m sure photos and a blog entry will follow.

Categories
Geek

VB or C++ Contractor — Looking for a Gig?

My friend “Bones” is looking for a VB or C++ developer to do some work

for a client based in the Toronto area. The basicgist of the application that the client wants developed:

The

client needs a VB or C++ programmer to develop a taskbar

app that accesses DB information over the ‘net and relays it to a Flash

app which acts as the user interface. The Flash app will be

developed separately

but there will obviously be sufficient back-and-forth between you and

the Flash developer so that the development process will happen

smoothly.

I’d take it, but I’m swamped. But maybe you can! Does this sound like your kind of thing? Drop me a line (joey@joeydevilla.com) and I’ll hook you up.

Categories
Geek It Happened to Me

Lost Conversations #4: A Resounding Yawn from the Developers

Lost Conversations is the title of a series of blog entries that have

been sitting in draft form for too long; it’s my attempt to do some

“spring cleaning”. This is the fourth in a series — the other three are:

Please note: this one’s rather high in technical content. It’s also been cross-posted to The Farm.


Hindsight, Guy Kawaski and Ice

One of my favourite speeches is a high school commencement address titled Hindsight, which was made at Palo Alto High

School by one of my role models (especially given my line of work):

former Apple evangelist Guy Kawasaki. It was a “top ten list” of

advice to the graduating class, and item number eight was “Challenge the known and embrace the

unknown”. It went like this:

One of

the biggest mistakes you can make in life is to accept the known and resist the

unknown. You should, in fact, do exactly the opposite: challenge the known and

embrace the unknown.

Let me tell you a short story about ice. In the late

1800s there was a thriving ice industry in the Northeast. Companies would cut

blocks of ice from frozen lakes and ponds and sell them around the world. The

largest single shipment was 200 tons that was shipped to India. 100 tons got

there unmelted, but this was enough to make a profit.

These ice harvesters,

however, were put out of business by companies that invented mechanical ice

makers. It was no longer necessary to cut and ship ice because companies could

make it in any city during any season. These ice makers, however, were put out

of business by refrigerator companies. If it was convenient to make ice at a

manufacturing plant, imagine how much better it was to make ice and create cold

storage in everyone’s home.

You would think that the ice harvesters would

see the advantages of ice making and adopt this technology. However, all they

could think about was the known: better saws, better storage, better

transportation. Then you would think that the ice makers would see the

advantages of refrigerators and adopt this technology. The truth is that the ice

harvesters couldn’t embrace the unknown and jump their curve to the next curve.

Challenge the known and embrace the unknown, or you’ll be like the ice

harvester and ice makers.


You Couldn’t Give Away Visual Studio Here

A couple of weeks back, I placed an order for the beta evaluation version of Microsoft

Visual Studio 2005, which consists of the upcoming version of the

Visual Studio IDE, the Visual Studio Team Server (which I assume is

some software to assist with versioning and collborative programming)

and Microsoft SQL Server 2005. For those of you who aren’t terribly

into techie stuff, this is the Microsoft equivalent of a fully loaded Snap-On Tools truck, minus the free calendars with the girls in bikinis holding wrenches.

I received the discs a couple of days after placing the order and

then

sent out an office-wide general notice to my co-workers saying “Hey, if

you want to try out the Visual Studio 2005 beta, come by my desk and

I’ll loan you the discs.” Not only is it my job to make sure that the

tech world is aware of what Tucows is doing, it’s also to ensure that

Tucows is aware of developments in the tech world.

The response: almost none, save for two comments.

One comment came from a sales engineer who passed by my desk and said “Heh. Good luck getting anyone interested in that.”

The other was a short and perfunctory email from the IT department

reminding me that it is a violation of company regulations to install

unauthorized software onto company machines.

(Of course, the joke’s on IT — I brought in my own Windows box. As

someone who isn’t in the development department of the company, I got

issued a non-developer machine. It’s quick enough for writing TPS reports,

but not up to the task of development. I use it as a monitor stand. I

did what any half-decent hacker would do — I brought in my own box.)


COBOL for the 21st Century

Of course, I installed Visual Studio 2005 on my machine. A number of

our customers build their web services on the Microsoft platform and I

should at least maintain some passing familiarity with Windows

development (in a former life, I wrote VB apps for small-to-mid-size

businesses). I wouldn’t be doing my job if I didn’t install it and

build some basic apps, both desktop- and web-based.

However, for the development of the Tucows platform — our domain name

registration service, email and email defense, Blogware, Blogrolling,

Start — there is no compelling set of reasons to switch from the LAMP

platform.

On an even more fundamental level, there’s a reason for a lack of

interest in Microsoft’s languages (C# and Visual Basic) and even their

Sun-based kissing cousin, Java: they’re not where the interesting stuff

is happening.

C#, Visual Basic and Java are going through an “ice maker” or “ice

harvester” phase. The improvements to these languages are now

incremental and seem to be aimed at making sure that they have more

items on their feature lists than their rivals. Improved IDEs? Nice,

but nothing major. Generics? After trying to improve away from C++,

both C# and Java went back and aped the unwieldiness of C++’s

templates. These new features are knowns; they’re the software

equivalent of ice harvester thinking: faster ships, better ice storage,

sharper saws.

The really interesting stuff is happening with open source dynamic

languages, namely PHP, Python and especially Ruby, all of which are

pushing little-known possibilities of programming, such as

metaprogramming, generators, higher-order functions. These languages

are more about getting things done and less about getting in your way.

Consider the difference between the code required for the Order class

in this developerWorks article. In the Java version, you need this XML:

01 <hibernate-mapping>
02 <class name="models.Order" table="ORDERS"
03 dynamic-update="true" dynamic-insert="false"
04 discriminator-value="null">
05
06 <id name="id" column="id" type="java.lang.Long"
07 unsaved-value="null">
08 <generator class="identity"/>
09 </id>
10
11 <set name="items" lazy="false" inverse="false"
12 cascade="none" sort="unsorted">
13 <key column="id"/>
14 <one-to-many class="models.Item"/>
15 </set>
16
17 <property name="name" type="java.lang.String"
18 update="true" insert="true"
19 access="property" column="name"/>
20 </class>
21 </hibernate-mapping>

…and this Java code…

01 public class Order {
02 private Set items;
03 private String name;
04 private Long id;
05
06 public Long getId() { return id;}
07
08 public void setId(Long id) { this.id = id;}
09
10 public Set getItems() { return items;}
11
12 public void setItems(Set items) { this.items = items; }
13
14 public String getName() { return name; }
15
16 public void setName(String name) { this.name = name; }
17 }

The

XML is necessary in the Java implementation because it allows you to

change the Order object without having to recompile the Java.

Now let’s look at the equivalent class in Ruby:

01 class Order < ActiveRecord::Base
02 has_many :items
03 end

Note the lack of XML and “scaffolding”. Note the lack of code, for that matter.

Which would you rather code? Which would you rather maintain? Which

method seems like archaic ice boats and saws, and which seems like a

refrigerator?

Yes, I’ll keep up with the Visual Studio and Java worlds, and maybe

crank out an app or two using them, but for me — and my fellow

developers here at Tucows — the really interesting programming tools

are elsewhere.