Archive
A complete chronological list of every post.
-
Reprogramming the Commercial Break
So my son said to me this morning, just before heading to his swimming lesson, that he didn’t notice any commercials for Hoppers, this movie that he wants to see, and it’s already out of theatres.
-
No slop allowed in this blog
Like everyone else, I’ve been playing with AI a lot lately. I’m always building things, and sometimes it is difficult to find the time to write about the things that I build, because the writing time comes at the expe...
-
The jDeploy Desktop App
I took advantage of the long weekend to finish up the first release of the jDeploy desktop app. This has been many months in development, and I’m happy with the result. I think this should eliminate most of the hurdle...
-
Prime Time BBS
Note: Throughout this post, I’ll use “us”, “I”, “me”, and “we” fluidly, since I did most of these things with my friend, and I just can’t decide whether each thing was done by me alone, or together with my friend.
-
How I got hooked on Baseball Cards (part 1)
I started collecting baseball cards in 1988. I know this because I still have the Panini sticker book that started it all off. I don’t remember how I got that sticker book – probably as a birthday present, which would...
-
Downloading Youtube Videos with Pytube and Shellmarks
Pytube is a great little Python utility for downloading videos from youtube as .mp4 files. It has a command-line interface that makes downloading videos as simple as entering the following command:
-
Automation, Organization, Documentation, and Sanity
I used to be the “Web Coordinator” in a university faculty, and I often had to provide tech support to the office staff. One morning I received an urgent call from one of the program assistants (let’s call her Carol) ...
-
Do Kids Still Read Computer Books?
I still remember my first computer programming book. It was a glossy, black, brick of a book on PERL 5. I had started building web pages a few months prior, using the copy of Adobe PageMill that came with my bondi-blu...
-
Take me there
I love reading, but I don’t have time to “just read” so I tend to consume a lot of written material in “audio” format. This allows me to “read” while I do other things, like walking, driving, cleaning, and cutting the...
-
Star Wars and the Seven Laser Disc Players
Photo by Artur Tumasjan on Unsplash.
-
Video: Building a Codename One Project for iOS
This is the third video in my series about our new online tool, Codename One initializr, which allows you to generate a Maven starter project for a native mobile app in one click. The first video showed how to generat...
-
Deploying Apps on Multiple Form-Factors
Photo by Domenico Loia on Unsplash
-
Codename One Project -> Build Android App
In my last post I showed off the new Codename One initializr online tool, generating a Maven project, and opened it in IntelliJ.
-
Preview: Online Tool to Generate iOS/Android app starter project
The Codename One initializr is an online tool for generating a Codename One starter project. You can select either Kotlin or Java, then you can download the project and open it in your local IDE.
-
Farewell to TenFourFox
I was saddened by the news that development on TenFourFox, the Firefox port for Mac OS X 10.4, will be ending with its upcoming release.
-
The Water Fight
This is my account of the epic indoor water fight of 1989 that laid waste to Mr. Galvin’s grade 4 classroom. Enjoy
-
Date Night
Beverly sorted the DVDs in the furnace room a couple of weeks ago, and, as a result, there is a stack of DVD cases sitting on the floor of our basement. Topmost in this stack is “Necessary Roughness”, the 1991 footbal...
-
The Rivalry
The following is my account of one of the greatest rivalries in elementary sports history. It retells the infamous showdown at the 1992 Langley Grade Seven Boys Basketball Championships between Peterson Road’s heroic ...
-
The Go Kart
Another true story from my childhood, that I call “The Go-Kart”. Enjoy:
-
SSD Upgrade on my Windows Box
I have a Windows 10 box that I used for Windows development. I generally use Microsoft Remote Desktop to remote into it from my main development machine (a Mac Pro). The windows box is running a 6-core AMD FX6300, wit...
-
The Advent Calendar
This post is another in my series of personal anecdotes and reflections from my childhood. If you read my blog for my posts about Software development, you can safely disregard this
-
The Hustler
I was never much for gambling, but there were times when I wanted to be. The movies made it look like so much fun. A popular plot device in 80’s film and television was for the protagonist to win an improbable jackpot...
-
The Fight
Normally I use my blog to write about software development, but I’ve decided to branch out a bit with this entry. In order to help my fading memory, I’ve decided to try write about small episodes that I can still reme...
-
New Mobile Theme for Xataface
During my two week “vacation” from Codename One, I’ve been madly working on a new project using Xataface. For this project, I really needed the mobile interface to be smooth, so I decided to finally make Xataface’s co...
-
Things I Like #1: The Retroist
For 2019, I’ve decided to start blogging about things I like. For my first entry, I’d like to share “The Retroist Podcast”, and associated media. The Retroist podcast is devoted to pop-culture from the late 70’s to ea...
-
JAXB Hell on JDK 9+
JAXB has been removed from JavaSE starting in JDK 9, so we’ve had to make some changes to some of our code to work around this. We have some custom ANT tasks that use JAXB to process some XML. The task it used inside ...
-
PSA: Prefer to use AdoptOpenJDK’s jdk-11 builds for embedding in Mac Apps
If you are planning to distribute a Java app on Mac, you should avoid using the JDK builds from jdk.java.net as they won’t necessarily work on Mac OS older than 10.13. This is because the libjvm.dylib is build with MA...
-
iTunes DRM Begone!
My storage room is filled with boxes of CD jewel cases with all of the music I purchased before the digital revolution. At a certain point, it just became easier to just buy music digitally. In fact, In many cases I r...
-
High Sierra, Ruby, RVM, CocoaPods, ipatool, xcodebuild Ughh!!
This is a very terse post to record a problem/solution for Cocoapods on High Sierra.
-
OCR.net is officially launched
I’m on “vacation” right now from my job at Codename One, so I’m taking some time to work on personal projects for the first time in a while. On the second day of my “personal project” time, I received an email offerin...
-
Async to Better U/X
I come to you today with three simple tips that will guarantee to improve your Codename One apps’ usability:
-
Entitled OSS Users and the Xamarin RoboVM acquisition
RoboVM has been acquired by Xamarin, it was announced; and it would no longer be open source.
-
If a Drive Dies Once, It’s a Dud
Purchased an iMac from Best Buy in 2011. A few months later it wouldn’t boot up due to a problem with the hard drive. Took it to the Mac store, and their solution was to reformat the drive. After the format, their dia...
-
iOS Certificate Wizard
I don’t know about you, but I cringe every time I need to deploy apps to iOS. There is always something with the certificates or provisioning profiles that requires tinkering. No more, I say!
-
My WWDC 2015 “Hey that’s cool!” list
The 2015 WWDC keynote included a lot of “meh”, but a few “hey that’s cool”s. Here is my “hey that’s cool” list.
-
Untitled
Writing Synchronous Wrappers for Asynchronous Methods in TeaVM
-
Porting a Java Project to the Web with TeaVM
I am always experimenting with new technologies just to see what new cool things are possible. As a Java developer, I’m usually toying with JVM-related technologies. The latest new and cool technology that I have been...
-
Hacking the OSCON 2014 Schedule with Codename One & Mirah
I gave a tutorial on Codename One at OSCON this year. Part way through the conference, I learned that OSCON had published its schedule as a public JSON feed and were encouraging developers to create their own schedule...
-
Using SOUNDEX and MySQL Full-Text Search for Fuzzy Matching
I recently received a question from a Xataface user about how to support searches for misspelled names. Out of the box, Xataface provides some fairly advanced search support that allows users to search on particular c...
-
CN1ML: Using HTML to Design Codename One User Interfaces
In Codename One, you traditionally have two choices for designing user interfaces:
-
OSCON 2014 Reflections
I’m sitting in Portland International Airport waiting for the chariot that will return me to Vancouver, so I thought I’d pass the time by reflecting on my experience at OSCON. I am not generally the kind of guy that g...
-
Why I don’t recommend using GoDaddy for Hosting
This has come up a few times now on the Xataface forum. Users write into the forum because their Xataface application has stopped working — or at least everything except the homepage has stopped working. They report e...
-
Make the World A Better Place by Making A Codename One Library
Codename One recently opened up a plugin repository on their website where you can download libraries to extend the functionality of Codename One. Right now it is really just a static webpage because the list of avail...
-
Git Hub, Codename One Javascript Components , PDF CJK Fonts
I haven’t posted in a while, mostly because I haven’t had time. I just wanted to post a short update on my development activities over the past while. One big thing to note is that I have finally adopted Git as my pri...
-
CFIB Study on Municipal Spending Incorrect and Misleading
In the last few days, CKNW has been touting a new study by the CFIB (Canadian Federation of Independent Business) claiming that spending in the four largest cities in Canada is growing out of control. Specifically (in...
-
Object Persistence in Codename One
One very useful feature of Codename One is its Storage class, which provides a cross-platform key-value store that can be used to store simple data (e.g. Strings, Integers, Doubles), large binary data (e.g. byte array...
-
The Case For Light-Weight UI Toolkits
This post is motivated by a recent Reddit thread where someone posted an announcement about the 1.0 release of Codename One, a toolkit for building cross-platform mobile applications. I was quite surprised by the stre...
-
4 Ways to Consume JSON Web Services in Codename One
I just released a Javascript bridge for Codename One that allows you to communicate easily back and forth between Java and Javascript. This library may be absorbed by the Codename One core at some point in the future,...
-
Codename One iOS Offline Build Project
To build upon my last post, I have encapsulated the steps to build an iOS application offline (i.e. without having to send to the CodenameOne build server) into a single ANT script that can easily be installed on your...
-
Building CodenameOne iOS Apps Locally
Note: This post discusses the mechanics around building CodenameOne iOS projects locally. See my subsequent post for information about a project that automates this entire process.
-
Avian vs XMLVM: AOT Java on iPhone Benchmarks
In my last post, I discussed the results of a benchmark comparison between XVMLVM and Avian both solving the Towers of Hanoi problem on an iPhone 4s. Originally it looked like XMLVM ran slightly faster, solving the pr...
-
XMLVM is Actually Pretty Fast
DISCLAIMER : The Benchmark results in this post turned out to be flawed due to GCC/LLVM optimizations unduly favouring XMLVM. Please see the next post where I discuss the corrected benchmark and associated results.
-
Apple’s Walled Prison
I endure it because they make great software. I endure it because I have become dependent on their ecosystem. I endure it because there’s money in developing software for their platform.
-
CodeNameOne + Avian = Java on iOS
In my last blog post I was expressing my hopes for a Write-Once-Run-Anywhere solution for Java mobile. One of the founders of CodeNameOne responded to the post by saying that CodeNameOne offered everything that I was ...
-
I want Java on Mobile
What makes Java unique? Actually there are quite a few things that set it apart from other languages, but I want to focus on its true cross-platform presence. No other platform provides the end-to-end tools for buildi...
-
PDF Table of Contents with Docbook & FOP
This post is, more or less, a note to self so that I can look up how to do this later on. I use docbook to write documentation for some of my projects and I have a set of shell scripts set up to render the docs as HTM...
-
Generalized PHP Caching Solution
I recently became responsible for maintaining service level of a Joomla! website. The site is hosted on a CentOS VPS instance with NGINX and PHP running with FastCGI. The site had been previously hosted on a shared se...
-
Speaking Cocoa From Java
Java on the Mac recently got a major boost to its profile as a platform for building Mac software when JavaFX ensemble was accepted into the App Store. This was not the first Java app to make it into the app store, bu...
-
Scrolling iFrame on iOS
I just finished adding scrolling support to the RecordDialog class in Xataface for the iPad. The RecordDialog basically allows you to open an edit form or new record form in an iframe using a Javascript call. This is ...
-
OS X JNI Tutorial
I have just recently completed my first JNI library for use with one of my applications. Since I have found documentation on JNI (especially on Mac OS X) to be sparse, I decided to write a tutorial about the process s...
-
JavaOne: A Look Back
I am now home from my Bay area adventure at Java One. This was the first conference I’ve attended since 2005, and is by far the largest conference I’ve ever been a part of. I was blown away by the scale of this one. T...
-
“Engineers” in the US
During the course of a dinner last night, a “canadianism” was brought to my attention that I was quite unaware of. A friend of a friend who is working at Google mentioned that the project he is working on is “quite sm...
-
Ingredients required to port HTML/Javascript App to JavaFX
I have been taking in as many JavaFX talks during Java One as I can. I’m keen to move some of my development from LAMP/HTML5 to LAMP/JavaFX (Yes.. still not ready to move into the JavaEE space – though PLAY makes it c...
-
JFXtras: Cool Widgets for JavaFX
I just attended a session at Java One for JFXtras. I was very impressed by the prolific collection of gauges that were contributed to the project by Gerrit Grunwald (@hansolo_). He has developed incredibly intricate c...
-
PLAY Framework Observations
Going into James Ward’s talk on the PLAY framework I had no hands-on experience with the framework. I only knew of it from the odd mention in other developers’ Facebook updates.
-
In Depth with JavaFX Scene Builder
This post is just a collection of my observations after watching a talk at JavaOne by Jean-François Denise about the JavaFX scenebuilder application.
-
The Metro UI
I attended a talk yesterday on “Java FX meets Metro” by David Qiao. Going in, I was hoping for some information about deploying JavaFX on Windows 8 in some format that is acceptable by the new windows 8 app store. In ...
-
CodenameOne Project : Finally Java on the iPhone
I periodically monitor the progress of multi-platform development solutions for the mobile space. As a Java developer, I’m especially interested in solutions to bring Java to the iPhone. Even better would be a Java so...
-
Is Gatekeeper the writing on the wall?
I just updated one of my Macs to Mountain Lion so that I have a test machine for my software. As expected none of my software worked out of the box. When I tried opening PDF OCR X, it came up with a message saying tha...
-
JavaFX Has Finally Arrived
JavaFX 2.1/2.2 finally gives me the tools that I need to build the applications that I want to build. This release provides 2 missing pieces that make all the difference:
-
Look Both Ways Before Adding Jars to Extensions Directory
I recently ran into a problem with a customer’s Java environment where some of the classes that PDF OCR X requires were being overridden by out-of-date classes. The error wasn’t exactly intuitive:
-
SHOW TABLE STATUS vs SHOW TABLES vs INFORMATION_SCHEMA
I have been battling with some performance issues on one of my Xataface applications of late and I think I just found the cause of periodic slow-downs:
-
Rogers/Fido Redemption
In my previous post, I described a situation where my wife was overcharged for transferring from Fido to Rogers in 2009. I spoke to both Rogers and Fido customer support at multiple levels and was told that because th...
-
Open Letter to Fido and Rogers
My wife and I have recently been forced to cancel our cell phone accounts with Rogers and we will never be returning to either Fido or Rogers for any service in the future. Over the past 5 years we have spent over $12...
-
A Bug Hunter’s Diary: A Guided Tour Through the Wilds of Sofware Security
A Bug Hunter’s Diary is written as a journal of a “Bug Hunter”. It takes us through seven bugs that the author (Tobias Klein) has discovered in the past five years, giving the reader a glimpse of his process and an aw...
-
Survey Builder 0.1 Released
I have just released Survey Builder on Sourceforge. Survey Builder is an application that allows you to design and host surveys using pure HTML. It is the first application built with the new Xataface 2.0 look and feel.
-
Sourceforge Much Improved
I just went to start up a new sourceforge project for the Survey Builder application I just created. I guess it’s been a while since I created a project because the system is total different than it used to be. Much m...
-
Xataface 2.0 Preview Photos
I’ve been putting a lot of work into Xataface getting it ready for release. There are still some details to take care of, but I think it’s safe to say that this release will be a drastic improvement over any of the pr...
-
Logic 8 on Mac OS X Lion Fix
My Dad recently upgraded to Lion only to discover that Logic Pro 8 no longer works on it. When he opened the application it just pops up with message saying that Logic was not compatible with this version of OS X, and...
-
WWSS (What Would Steve Say?)
I just finished reading the new Walter Isaacson biography of Steve Jobs. It is a good read, especially if you have an interest in Apple, Jobs, or computers in general.
-
So Steve’s leaving us…. but is he really?
I received my November issue of Mac Life in the mail yesterday. It includes an article on Steve Jobs entitled “Steve’s Gone… Now What?”. It went over some of the Wall Street reaction to his “leaving” and recapped some...
-
Javascript Development with the Xataface Javascript Compiler
Javascript is a wonderful language, but I always felt as if it wasn’t terribly scalable. Not so much in the performance sense, but in the component sense. When working on large projects (like Xataface) Javascript can ...
-
A Week On Android
2 years ago I purchased an HTC Magic which runs on Android. I used if for a day and decided I didn’t like it, so I switched to my wife’s old iPhone 3G instead. I never looked back, until …
-
Using a “Silent” Java Applet to Render PDFs in HTML
I have read many obituaries for the Java applet. Once upon a time, in the late 1990’s the applet was king of the internet and hope for the future of rich web-based applications. Its decline and (almost) demise can be ...
-
JavaFX on Mac, iOS, Android, Windows Phone… Future looking bright
At the recent JavaONE conference in San Francisco, Oracle demonstrated JavaFX running on iOS and Android. While this hasn’t been officially approved by Apple, the proof of concept is also hope for the future of Java. ...
-
Amazon EC2 Micro Instance By Accident
I recently had a problem with my Amazon EC2 server that caused me to have to fire up another fresh instance and transfer the files over. My original server was a “small” instance (which was the smallest available when...
-
Date.js – Life-saving Javascript library for date handling
I was faced with having to parse dates that could be in any number of formats. The built-in Javascript Date object is not up to the task. Found Date.js to be just what I needed. It will parse just about anything you c...
-
Exploring the HTML/CSS Mobile Toolkit Landscape
I’m in the process of developing a mobile interface to Xataface so I’ve been experimenting with different toolkits to help with the UI. I have worked with jqTouch in the past (to create the Web Lite TV iPhone/iPad int...
-
Javascript matching all characters including new line
In most languages you can add a modifier to the regex function to change the behavior of the ‘.’ operator so that it matches all characters including new lines (by default it matches everything except new lines). Java...
-
Adobe CQ5 Developer Training
I just spent the past week in a developer training course for Adobe Communiqué 5.4 – a content management system on steroids. I thought I’d jot down some of my thoughts while they’re fresh in my mind.
-
TestDisk a Nifty Utility for fixing drives with bad boot sectors
Just ran into an interesting problem with an external hard drive that was being used as a time machine backup for laptop. Someone tried to connect this drive to their windows machine and it evidently screwed up the bo...
-
Left vs Right by way of a “Lion” analogy
Most political systems seek to work for the betterment of society. Most include a claim to a goal of protecting the weak.
-
CentOS and old versions of PHP
When you ask for someone to set you up with an install of the latest CentOS, you’re still going to be stuck with an old version of PHP (version 5.1.6) which is missing many, many useful features, and includes a few bu...
-
Getting Serious about Data Redundancy
Reluctantly, I have had to assume the role of “server guy” with my translation company. I generally prefer to focus on the creative side of web application development, but I’m not naive enough to think that server ba...
-
Heritage Pianos Chinese and Korean Sites Live
Thanks to the hard work of our team, we’ve completed the translation of Heritage Pianos’ website into both Chinese and Korean.
-
Moved my blog to Dreamhost
I just moved my blog over to dreamhost. Maybe I’ll give it a facelift to mark the occasion.
-
Adventures with KeepAlive Slowing down PHP
Disclaimer: To my regular readers (if there are any) this post is entirely technical in nature so if you’re not looking for the solution to this particular problem (e.g. from Google) you’re probably not interested in ...
-
How I use the iPad
It’s been close to a year since I purchased my iPad, so I thought I’d post a short piece reflecting upon how I have ended up using it.
-
Why do you need an app for that?
I have recently stopped using the Facebook and Mail apps for my iPad and iPhone in favour of the HTML equivalents offered through Safari. The reasons: Mobile-optimized web applications are now as good, or even better ...
-
Donald Trump for Panderer of the United States
I saw Donald Trump on Pierce Morgan last night where he declared his possible candidacy for President in 2012. Wow, does he ever have his finger on the pulse of the American people – at least those from the red states...
-
.NET: The most unlikely savior of Desktop Java on the Mac
When Microsoft first introduced the .NET platform and its flagship programming language C#, I, like many Java developers, looked at it and said “They’re just copying Java”. Why would I want to develop on the .NET plat...
-
How to get a Java Application into the Mac App Store
I just received a reply from Apple support confirming that there is nothing in their guidelines that prohibits apps that include an embedded Java virtual machine. Therefore, Apple’s regrettable decision to deprecate J...
-
The Chrome App Store Swinging the Pendulum WAY open
I’ve been very critical of Apple’s recent moves in deprecating java and excluding java-based applications from their new Mac App store. Their restrictive policies seem to be strong-arming developers into using their c...
-
Apple to shut down its download section -> Why I’m not submitting to the App store
I suspected this step was coming. Since Apple is making a push to get people into its new App Store for OS X, it is shutting down its download section. This is decidedly bad news and depending on how it affects the ma...
-
Posthumously discovering JavaFX
It turns out that JavaFX is actually kind of cool. Sun had been pushing it to no avail for over 2 years before Oracle finally pulled the plug (sort of .. they’re killing the language and porting it to Java), but they ...
-
Apple’s assault on Java is an Assault Java Developers
Yesterday, Apple announced that its next version of OS X, called “Lion”, will include an App store to simplify the process of downloading, purchasing, and updating applications on the Mac.
-
wkhtmltopdf
Just discovered this wonderful tool which uses Webkit for generating PDFs. Now generating a PDF from a Web app is just that much easier.
-
Virtual tour of my apartment (FOR SALE)
<noscript><a href=”http://www.classifiedflyerads.com/vt/widget.php?id=320808” target=”_blank”>Click Here To View Virtual Tour</a></noscript> Powered by: ClassifiedFlyerAds.com
-
3g data plans in Canada. What they don’t want you to know.
I have an iPhone with a pretty good data plan through Rogers (6 gigs/mo for $30). No complaints. I generally use under 100 megs per month. I recently bought an iPad but didn’t want to spring for the 3G version because...
-
DRM/Apple to save the world from crap content
The internet has no shortage of pundits complaining loudly about the iPad’s extensive use of DRM (digital rights management). They say that the device is “crippled” by DRM and that it is a giant step backward for the ...
-
iPad: Initial impressions
Just picked up an iPad today and am very impressed – not only by its potential for changing the world, but for its immediate utility. Here are just a few things that I notice after playing with it for 4 or 5 hours:
-
You are not a Gadget
I just finished reading “You are not a Gadget – A manifesto” by Jaron Lanier, and I do recommend it for anyone who is interested in the future of our society and how it will include technology. The real meat of this b...
-
Apple no longer updating its Downoads section
This article confirms my fears after noting that Apple hadn’t updated its downloads in over a month. The Apple Downloads section was my bread and butter for advertising new releases of my Mac software. Since apple dis...
-
Mac, you’ve got a friend in Java. Now be nice.
I have recently rediscovered the joy of programming in Java for desktop Applications. Mac OS X provides a perfect deployment system for Java applications since Java 1.6 comes standard, so you don’t have to worry about...
-
Radical Views on Individual Rights and Freedoms
I had a recent discussion with a friend who holds some radical views on certain topics. I address 3 specific claims that he made during our discussion.
-
Open Source Business Models
Looking at open source business models, it can be difficult to find something that looks viable. Here are a few models along with my assessment of their pros and cons.
-
Why the iPad will succeed / Why I’m excited about it as a Software Developer
To me (as a software developer), the most exciting thing about the iPad is the fact that it is integrated with the App Store. On the iPod and iPhone, the App store has proven to be a fantastic commercial success, open...
-
BC Election – my local candidates
I decided to take a look at the local candidates for my riding in the provincial election. Their websites are: (Harry Bloy – Liberal) (Jaynie Clark – NDP) (Helen Chang – Green)
-
@fido.ca vs @pcs.rogers.com
I was trying to set up server monitoring to send a text message to my cell phone when my server goes down. Since I’m on fido I first tried 0123456789@fido.ca (replace 0123456789 with my phone number), but found this t...
-
Host-alert.com not working – trying monastic
Host-alert.com didn’t seem to be sending out alerts, so I switched to montastic.com and it appears to be working fine.
-
Host-alert.com
Just set up server monitoring with host-alert.com to alert me when my server goes down..
-
Why piracy must be stopped
I wrote this in response to a number of “pro piracy” or “piracy rationalization” comments to a CNN article: http://scitech.blogs.cnn.com/2009/04/20/a-turning-point-for-online-piracy
-
New Video for Web Lite Translation Service
We just had a video created for Web Lite Translation service and the results are stunning. The video was produced by Go2Video Productions. I was absolutely amazed at both the speed and quality of their work. We gave t...
-
New Free Tool for Embedding Publications List in Webpages
I have just released a new tool for managing publications lists and embedding them in web pages. It manages publications in BibTeX format so it is especially useful for researchers already using bibtex to manage their...
-
Translation Forums
I have used my PHPBB Usenet Bridge to set up forums for website translation and internationalization.
-
Automobile Usenet Forums
I have used my PHPBB Usenet Bridge to set up an Automobile Forums Site that syndicates all of the main automobile forums on usenet.
-
Yet another test post to see if this works
This is only a test for translation.
-
This is a test post to see if it works
This is only a test. How does it work?
-
Application Versioning & Synchronization with Xataface
One of the more annoying challenges involved with managing production web applications is keeping the development and production versions in sync. Verson control systems such as Subversion and CVS make this task trivi...
-
Replacing Scriptaculous/Prototype with jQuery
I have used Scriptaculous in the past to sprinkle little bits of UI magic into Xataface. Specifically, I have used it to add collapsible sections, sortable sections (via drag-and-drop), and sortable tables (also via d...
-
Hunter
I have been watching Hunter Season 1 over the past few days. I had forgotten just how corny that show was. Good quality 80’s corn.
-
Operation Aborted in IE:
Found this great IE blog article explaining the cryptic “Operation Aborted Error” in IE. Click Here.
-
Americans don’t even know what socialism is
It’s not the Republicans calling Obama a socialist that has my blood boiling. It is the fact that they believe that this is serious accusation that, if proven true, would be damning of Obama. If Obama were a socialist...
-
Indiana Jones Special Features Reveals where it went wrong
I recently purchased the latest Indiana Jones DVD. As expected it contains a couple of documentaries about the making of the movie containing interviews with the cast and crew.
-
Indiana Jones and the Saucer Men
I just finished watching the special features for the latest Indiana Jones movie. Apparently George Lucas wanted to call the movie “Indiana Jones and the Saucer Men”
-
Boxing is about drama
I watched Rocky III for the first time in 1983. I was 4 years old. I watched Rocky III for the one hundredth time in 1983. I was 4 years old.
-
Focus on the family spreading Republican Propaganda
Focus on the Family distributes bulletins that are handed out in many Churches across Canada and the United States. It contains small pieces of wisdom on Christian and family living. I was quite angered to find that t...
-
WordPress CAS plugin adventures
I am building some SFU websites using WordPress and I need to set them up to use the SFU central authentication service (CAS). A quick search on Google found this plugin: cas-authentication
-
Feed2JS: Incorporate News feeds into static HTML webpages
My Recent goal. Minimize the amount of infrastructure in building a small website (i.e only use static HTML pages), and still incorporate dynamic content such as news and events in the web page.
-
IE Annoyances
There are hundreds of reasons not to use IE (Internet Explorer), but the common folk still seem to use it en masse, so I am forced to deal with its bugs when developing web pages.
-
Automatic Website Translation Service
I have just revamped my translation website, shifting the focus to providing machine translations of web sites. The site will allow users to upload their websites as a ZIP file, and have them automatically converted i...
-
Internet Media Manager
I was tired of having to resize my images before uploading them to the web. I also wanted to be able to host more video on my website in a simple way. So I created an application to manage and serve all of my videos a...
-
Americans a funny bunch when it comes to politics
I have been following the American presidential campaigns of Hillary Clinton and Barack Obama with some interest, partly because I am interested to know what kind of a person will be in charge of our southern neighbou...
-
Screenflow: Finally Screencasting done right
For the past couple of years I have been dabbling in the art of screencasting. I think that providing video tutorials for my software can be much more helpful to my users than producing standard web page documentation...
-
Blackboard wins patent infringement case
This is yet another example of patents out of control. A company named Blackboard apparently “invented” the idea of allowing a single user to operate with different roles for different courses in an online learning sy...
-
Moving backward harder than moving forward… when we’re talking about computers
I recently bought a mac mini to serve as a central server, backup manager. It sports an Intel core duo 1.83 GHz processor which runs about 2.5 times faster than the 1.67 GHz G4 processor in my powerbook. Well, now I c...
-
Patents getting ridiculous
IBM is trying to patent the practice of giving customers free stuff while they wait: http://rss.slashdot.org/~r/Slashdot/slashdot/~3/240588926/article.pl
-
Ankylosing spondylitis
I have been living in pain for the past 5 years or so. Recently it has gotten so bad that I can’t sleep, sit, or watch TV without feeling like there is a vice tightening around my rib cage.
-
Who needs a tower anymore?
I have recently moved from a managed hosting service to a dedicated web server where I essentially have my own machine. This is nice because it gives me full root access to install whatever I like and the performance ...
-
Anti abortion == Irrational Christian Conservative
Last night we filmed yet another Steve Hannah show. This filming went a little different than usual in that we got on to the subject of abortion and decided to ride the debate out for a while. This was different becau...
-
Patch and Diff
This post is basically a note to self because I find myself having to do a google search every time I want to do some diffing and merging of file trees.
-
ReCaptcha: The “human” folding project
If you’ve used the internet even casually over the past few years you have probably experienced CAPTCHA already. From wikipedia:
-
Excellent tutorial for OpenSSL
http://www.vanemery.com/Linux/Apache/apache-SSL.html
-
Using sed to convert PHP short open tags to proper tags
In the good ol’ days of PHP is was quite accepted to just use <? to signify the start of PHP code. PHP installs by default would accept this short notation so you could safely distribute scripts that made use of it...
-
Looping over a set of files in bash
This is a nice example of how to loop over a bunch of files in a shell script: something that is extremely useful: http://www.tech-recipes.com/solaris_tips166.html.
-
The Steve Hannah Show Episode 5
This is the long awaited return of the Steve Hannah Show after a 3 month hiatus. I’m back in full force with two fresh faces joining the team. Enjoy!
-
Roy Jones Jr: The twilight of greatness
Hi had the pleasure to behold two boxing greats go toe to toe on Saturday night: Roy Jones Jr. and Felix (Tito) Trinidad. Jones, in his prime was arguably the greatest boxer of all-time, with a brilliantly unorthodox ...
-
Amazon EC2 Error: Client.AuthFailure: AWS was not able to validate the provided access credentials
This is just a quick note to help me (and others) in case I run into the same problem again. I was setting up Amazon EC2 following This tutorial. When it came time to test my instances: `
-
PHP/MySQL Time zone design pattern
Suppose you have a PHP/MySQL application that you want to adapt to work across multiple timezones. I.e. Users from Toronto should see all dates and times in Eastern time while Vancouver users should see times in Pacif...
-
Canada trademark Law
I found it interesting that Dataface Inc from Houston, TX decided to file a trademark for DATAFACE in Canada. I have been using the trade name Dataface since March 2005, in Canada. Their trademark application found he...
-
Use of Dataface trademark
Well I figured this might happen eventually. A company in Texas has taken exception to my use of the name ‘Dataface’ for my open source application framework. It must rot their socks that I also come up #1,2 and 3 on ...
-
Giving PHPBB Another chance
I have been using Plone for my Dataface web site for the past couple of years. Finally, the slow performance, resource heaviness, and lack of a decent forum product forced me to move the site out of Plone and into PHP...
-
Plone: where our paths diverge
So here it is. The time has come for my path and Plone’s to diverge. I’m sure we’ll meet again sometime in the future as she has too much potential to shun completely. She showed up at my door adorned with diamonds, s...
-
Americans are NOT stupid
This was just posted on my fun wall. I wonder how many people they had to interview to get this footage. It is solid gold!
-
The Problem with Public Sector Unions
Unions were originally created to protect workers from being exploited by unscrupulous employers and improve working conditions. They work by allowing the workers to withhold labour en masse if they feel that they are...
-
Brother 440CN Exemplifies problems with Inkjet printers
I have never been one to enjoy my printing experiences. I print as little as possible (preferring to use electronic documents) and when I do print I often run into problems. It doesn’t matter which operating system I’...
-
Compare the Fuel Economy Ratings of Cars on Craigslist
I was recently in the market for a new car, and I found myself constantly switching back and forth between Craigslist and fueleconomy.gov because I wasnted to see what the gas mileage was like on the cars that were fo...
-
Unique RSS Feed for Digg and Reddit
I discovered Digg and Reddit a few months ago and was immediately impressed by the quality and relevance of content contained therein. So I subscribed to their RSS feeds so that I could keep up to date with the latest...
-
James Blunt All the Lost Souls
I picked up the latest James Blunt CD last night at HMV. His first album took me by surprise and held the top spot in my collection for a while. There is no jinx for this sophomore as his second album is just as movin...
-
Mahmoud Ahmadinejad vs The United States
As a child I watched my fair share of historical movies that documented man-kind’s inability to get along, its recurring tendency towards mob mentality, and its succession of powerful ignoramuses. I used to watch thes...
-
The Steve Hannah Show Episode 4
I may have crossed some lines in this one… so bring on the hate mail.
-
The Steve Hannah Show Episode 3
In this episode I discuss reality TV shows, and vigilante justice.
-
The Steve Hannah Show Episode 2
Here is installment number 2 of the Steve Hannah show. Topics include Dog fighting alternatives, politically correct musical terms, and some controversial web sites.
-
Digg and Reddit
I have finally decided to add some Digg and Reddit links to my site next to each article. If you like any of the articles, please feel free to Digg them or up the Reddit score on them so that others might find out abo...
-
Why are so many nerds libertarians (according to Slashdot)
I recently came across a this post on slashdot entitled “Why are so many nerds libertarians?”. There are a number of comments on this article, some more interesting than others. Here are some of my thoughts.
-
The Steve Hannah Show Episode 1
I decided that it would be easy and kind of interesting to try to record my own little talk show. So I went out and bought a 2nd digicam, some lights, and a pair of tripods – reinstalled Final Cut Pro, and went straig...
-
Clickable URLs with javascript
A client wants all email addresses and urls to be clickable in an application. I would like to develop a javascript solution for this.
-
Software Patents Must Stop
Here is another riduculous law-suit over a patent that should never have been granted.
-
American mainstream media spreading fear about Canada’s immigration policies
I was listening to the Glenn Beck show on CNN XM radio, August 21st. He and his guest (MICHAEL SCHEUER, FORMER SENIOR CIA OPERATIVE) were discussing the SPP (security and prosperity) meeting between the U.S., Canada, ...
-
Insulating the ZODB from bad products
The ZODB (Zope Object Database) is a wonderful little invention that provides Zope and Plone with a lot of flexibility. Because it is uses a heirarchical format, it is intuitive and easy to move and copy objects around.
-
Logic and the Word of God
How do we use logic in reading scripture? A simplistic view might be that we should not rely on logic to understand scripture. Instead we should accept scripture at face value and submit to it. On a verse-by-verse bas...
-
Why I am finished with Plone
I have a client that I set up on Plone about 9 months ago. It was a substantial amount of work moving them over to Plone, what with having to make a skin and copy all of the pages into Plone pages. It was all towards ...
-
Google top paying search word hoax
Ran across this article talking about some of the recent sites that claimed to know the top paying search words on Google. In this article, the author claims that these figures are a hoax – which makes sense because t...
-
PHP: call_user_func no good if you need to pass by reference
In PHP the call_user_func function is used to call a function whose name you won’t know until runtime. In Dataface I need to do this sort of thing quite a bit because the developers are allowed to implement methods in...
-
Yahoo User Interface Toolkit
Great Javascript tools for web sites. And they’re BSD open source.
-
Open Office Base for Taxes!
With only 15 odd days left before taxes are due, I think I’ll try something a little risky in the spirit of learning. I will be creating a database using Open Office Base to manage my books. With my business, things j...
-
In Design XML Importing: The best thing since sliced bread
Came across this little article that explains how you can import XML into an InDesign document to produce business cards from a database. Shazzam!
-
SnapZ Pro X as close to Mac Spyware as you can get
A while back I installed a program called SnapZ Pro X – an application for OS X that allows you to do better screenshots than the built-in OS X ones – you can do movies and stuff too.. Worked OK, but the movies didn’t...
-
Committers the biggest winners in open source projects
http://www.riehle.org/computer-science/research/2007/computer-2007-article.html
-
OpenOffice Base Links
Open Office Base Message Forum
-
Good open office base tutorials
http://sheepdogguides.com/fdb/fdb1main.htm
-
Dataface to Open Office: You complete me
I just ran across the latest release of Open Office.org (version 2.2.) which includes the holy grail of database development: Base. This version contains a built-in database that moves into the realm of filemaker for ...
-
SSHFS
If you’re a web or software developer, chances are you’ve been frustrated before by the inconvenience of having to SSH into the remote server all the time to work on files. You can’t use the cozy development environme...
-
Body language says Wow!
From http://www.nytimes.com/imagepages/2007/01/30/business/30softCA02ready.html
-
CAS4PAS Mission – The further adventures of Plone 2.5
Okay.. I’m still at this Plone 2.5 upgrade thing. The early reports saying that the upgrade from Plone 2.1 to 2.5 is a snap are indeed correct. Unless you are using CAS for authentication.
-
Plone 2.5 migration Chronicles
Okay.. the time has come for us to migrate from Plone 2.1 to Plone 2.5 on the Faculty web site. The word is that this migration should be much easier than the migration was from 2.0 to 2.1.. so here is a little log of...
-
The birth of a thespian
I had my first acting class in FPA 150 on Monday. I think this is going to be a blast. What a change from my usual math and computer courses. Less lectures, more participation, and fun. It will still be a lot of work ...
-
ikea is great!
Just bought a new kitchen table from ikea today – opened the box, read the instructions, screwed a few screws, nailed a few nails – and voila! The table is set up and ready to go.. Either ikea has brilliantly dumbed d...
-
dhtmlXGrid, open source but painfully restricted
I have been attempting to incorporate dhtmlxGrid into Dataface to spice up the editing of related data on web forms. Since Dataface is open source under GPL, any library that I choose to include must also be open sour...
-
Moving into new apt
This week I’m taking care of all the final steps before taking posession of my apartment. Today I’m meeting with my mortgage guy to go over details and make sure everything is in order. On the 28th I take posession. C...
-
Using emotional turmoil in song
It turns out that when you are going through emotional pain and turmoil, you are most capable of producing good music.
-
Back from Cleveland
I have returned from my Cleveland trip. Nice to be back in Vancouver agaiin. A little bit wetter, but also a little bit quieter and more familiar.
-
Sitting at the Chicago Airport
I sit here at the Chicago air port on a 3-hour stay while I make my way home from Cleveland. All I can say is Chicago is massive. Flying in, the landscape was covered with lights as far as the eye can see. I shall hav...
-
First Class Seats on Planes
I find the first class seats on smaller air planes (e.g. 737s) kind of funny. When you enter the air plane you see 2 or 3 rows of seats that are in a 2 seats per side per row formation (vs. the 3 seats per side per ro...
-
In Cleveland
I’m in Cleveland Ohio this weekend doing some training for a company here on Dataface. This is my first time east of Manitoba and it is quite an interesting experience. My work schedule hasn’t allowed me to really see...
-
De la Hoya vs Mayweather – here we go
Oscar De la Hoya will be fighting Floyd Mayweather Jr. for the 154 lbs title on May 5, 2007.
-
What I love about my fiancée
I have the world’s best fiancée. You may think that this statement is as pointless as “the world’s best coffee”, but in this case it is the literal truth.
-
Canadian Sketch Comedy
My friend Mike is part of a hilarious sketch comedy group called Classholes. This is a video of them doing some comedy at a competition in L.A. this past April.
-
RSS Replacing Mailing Lists
I have recently discovered the joy of RSS subscriptions first hand. Before RSS, the only way to stay informed of the news and events that interested me was to subscribe to the appropriate mailing list. This resulted i...
-
DHTMLXGrid Part I
After much deliberation, I have decided to use dhtmlXGrid to develop a portal widget for Dataface. This will improve the usability of Dataface for complex data sources dramatically. Among other reasons, I have chosen ...
-
Suing Spammers for Fraud
I have recently become more annoyed with spammers and their deceptive tactics. Especially since I have launched some web sites recently that leaves me open to receive more spam. I found this interesting article that g...
-
Web Lite Translate
My company, Web Lite Solutions, has launched a new web site translation service to translate data-driven websites into multiple languages.
-
Wikipedia to Aid in translations
We all know that Wikipedia is a great tool for learning more about various topics. I just discovered another great use for it: aiding in website translations.
-
Hallelujah
I just ran across a powerfully moving song recorded by Jeff Buckley in 1994. Apparently this song has been used in many movies, including Shrek and Lord of War. I don’t know how I managed to miss it before.
-
Camping on the island
I’ll be camping for the next few days on Vancouver Island with some friends. We don’t know exactly where we will be going. We’re just going to drive until we find a good spot. Then we will set up camp and relax.
-
Source Guardian
This is a follow-up on my experimentation with PHP compilers. After trying Bcompiler and choosing not to use Zend Guard, I tried out Source Guardian. It will compile PHP into byte codes for either PHP 4 or PHP5 using ...
-
Adventures with PHP Compilers
I am in a situation where I need to protect some intellectual property in a PHP script. The recommended solution is to use a code obfuscator (or compiler) to encode the script. Currently the landscape leaves much to b...
-
IFTPd
Ran across IFTPd (http://iftpd.sourceforge.net/)today and installed it on my westhost server. This is great because I can run it on my virtual private server and create accounts for multiple users giving them access t...
-
Back down to earth
After our amazing victory against the decepticons we succombed to the lesser (yet still more talented than us) District 5. Our 12 minutes in penalties didn’t help. As a forward I didn’t get to play very much because w...
-
We won!!
I have been playing as a spare for a roller hockey team in the VIHL (Vancouver Inline Hockey League – http://www.vihl.net). Our team has great spirit and it it a positive environment. That said, we finished 7th out of...
-
Canada Day Long Weekend Camping
Went camping over the weekend with Joshua fellowship at Golden Ears park. It was a lot of fun and quite relaxing. We ate like kings (thanks to Grace and Dennis), and we explored the local terrain when we were tired of...
-
Nabble.com – Cool Site
Found this great site for reading mailing list archives. Provides an excellent search to search multiple lists at a time by category. Good heirarchical view. It’s called Nabble.com
-
The Heart of the Game
Saw a pretty good documentary on Wednesday called “The Heart of the Game”. It followed Seattle’s Roosevelt highschool’s girls basketball team through 4 or 5 seasons capturing the drama and hardships that go along with...
-
Beverly’s driving!
It took a 5:45am lap around Swanguard stadium to get her into the driver’s seat of a car, but now that she has driven around town a little bit, there’s nothing holding her down. She went to Pitt Meadows last night for...
-
Roller Hockey
I have registered as a spare for my friend’s roller hockey team for this summer. We play in the “Brass” league so it’s not “break-neck” competitive, but it is really nice to get out there and play some hockey again – ...
-
Dataface 0.6 almost there
OK.. enough talk, already. I have been using Dataface 0.6 for a couple of months now on development sites (e.g. Science.ca) and now it is time to put my nose to the grindstone and document it so that others can figure...
-
Plone Pull Down Menu Add-on
I have created a simple product for Plone that allows a site administrator to have pull-down menus in his portal tabs (the navigation tabs at the top of the plone site). It has been released LGPL on plone.org: http://...
-
SQL Parser Subselects
I have decided to rework my local version of the PEAR SQL parser to overcome some limitations. The main features that I will be adding include:
-
PHP WebDAV Library
I woke up at 3am Saturday Morning as a result of an epiphany. I recalled that PEAR has a WebDAV library that will allow me to make any heirarchical structure accessible via webdav. I downloaded the library and played ...
-
SSH Tunnelling
SSH Tunnelling has been around forever, but I have finally started using it – and WOW! SSH Tunnelling is useful when you need to edit content on another machine, but you don’t have direct network access to it. It can ...
-
King Kong
Watched the new King Kong movie last night. It was actually pretty good. My only complaint was that it seemed a little long. It definitely succeeded at being a heart-wrenching tragedy, though. Excellent sound too.
-
Dataface 0.6
Since the end of school I have been working feverishly to finish my next release of Dataface. Version 0.6 will offer some nice internationalization features in addition to improved templating and action support.
-
Taking the Summer Off
I have decided, after much thought, to take a break from school for the summer. I have one class remaining to graduate and was leaning towards Introduction to marketing. My decision was based on the fact that I haven’...
-
Over 1000 downloads of Dataface in March
March was the first full month that Dataface was available. It was downloaded over 1000 times, and the website have received quite a number of hits also. Hopefully these numbers will continue to grow.
-
Internationalization and Multilingualization
I am up to my knees in the entrails of Dataface as I attempt to take it to the next level. I am currently working on the 0.6 release and hope that it will be available for download in early May. The big bit that I’m w...
-
SFU Article
Barry Shell wrote an article about me and Dataface for the FAS newsletter and it showed up on the SFU homepage (http://www.sfu.ca) as one of the stories on random rotation. That was really cool. It seems like everyone...
-
Plone 2.0.5 to 2.1 Migration
OK, so the time has come to upgrade a few Plone 2.0.5 sites to Plone 2.1. I am currently working on 3 sites:
-
Dataface 0.5.2 released
I have added a Javascript calendar widget to Dataface for editing DATE and DATETIME fields. I have also fixed some issues involved with running Dataface on a shared host in safe mode. These changes are part of version...
-
mod_write trick to convert http to https
Found this tip on an IBM website. If you want to convert all http requests to https requests (useful for secure-ish sites), use the following snippet in your .htaccess file:
-
mod_write trick to convert http to https
Found this tip on an IBM website. If you want to convert all http requests to https requests (useful for secure-ish sites), use the following snippet in your .htaccess file:
-
To Plone or not to Plone?
Simple Answer: Don’t go there.
-
Archetypes 1.3.3 required for ArchGenXML 1.3+
1.3.0 is not sufficient. Generated content-types require Products.Archetypes.atapi which is not included in Archetypes 1.3.3.
-
Wash my hands of Plone
This is a notice to any who will listen. I have given Plone ample opportunity to woo me. It is almost there but it suffers from over complexity with version compatibility.
-
PDF Version of ArchGenXML Getting Started Tutorial
Found this great PDF version for the ArchGenXML tutorial. ArchGenXML is the best way to do Plone Development
-
Smarty Layered Skinning
The default install of smarty is great but simple. I wanted to be able to have multiple template directories so that Smarty would search all of the directories for the requested template, choosing the first one found ...
-
Jakarta Commons FTP Client Deadlock problems
I have been experimenting with Java FTP components in my effort to create a JFileChooser component that will work over FTP. Common concensus seems to be that the best FTP component is the Jakarta Commons FTPClient cla...
-
Hessian Web Services
I just ran across a great little library for web services, called Hessian. It is a binary web service (ie not xml) so its messages are much more compact and easier to transfer. In addition, the client and server libra...
-
Sample Dataface application
I have posted a sample dataface application here. It is just part of an application I am building for the Imaginative Education Research Group at Simon Fraser University to manage lesson plans.
-
Extracting Tar files in php in safe mode with no shell access
I have just about had it with web servers that give no shell access and operate in safe mode. I wanted to install Dataface on my webspace here at sjhannah.com. The full installation is about 2.6 megs as a compressed t...
-
Dataface Code Tip #1: Relationships the easy way
This is just a sample of how to deal with related records using the dataface library.
-
Code Tip #1: PEAR SQL Parser
In developing Dataface, I have had to use a number of existing libraries to make my life easier. One such library is the SQL Parser library in PEAR. This class will parse an SQL query into a data structure that can be...
-
Dataface Coming Along
Dataface is coming along slowing but surely. It is still only publicly available via sourceforge CVS but it is growing in features. I played around with soap a little over the holidays and have begun to build a Web se...
-
Happy New Year
OK.. so I haven’t been keeping up with my blog posts. Here’s one for the new year 2006. I spent boxing day through January 1st in Calgary with my girlfriend’s family. It was nice and relaxing. Didn’t really even notic...
-
ClassHoles : Top quality comedy
I went to a fundraiser last night for a local comedy troup called Classholes. A good friend of mine, Mike Berdan, is part of this troup so I may be a little biased in my opinions of the troup. All I can say is that if...
-
Dataface on Sourceforge
I have started up a Sourceforge project for Dataface. There are no releases yet, but the CVS is up-to-date. Check it out at http://www.sourceforge.net/projects/dataface/.
-
Aeon Flux
Just went to see Aeon Flux tonight. Thanks to Beverly’s Auntie Nona for the tickets. Aeon Flux, starring Charlize Theron was an exciting (but somewhat typical) science fiction film set 400 years in the future after ma...
-
PHP User Management
Tonight I am working on adding a flexible permissions system to my PHP application ‘Dataface’. I have a predisposition towards using PEAR classes where I can so naturally I decided to try LiveUser. Unfortunately the d...
-
He-Man DVD Released
I purchased the newly released He-man DVD last week. It has 33 episodes from season 1 (1983). A total of 65 eps were made for each season so there will be more box sets to come. In addition to the episodes, there is a...
-
Beverly’s frictiony sounding triplet of crek crek crek
On a sad, note, my beautiful girlfriend Beverly fell headlong into a grand piano and cracked her nose. Fortunately her nose is very maleable and no permanent damage was done.
-
Collossians Bible Study
I led a bible study on Collossians this past sunday. I prepared a short introduction to the book, that can be seen here.
-
Working as Web Services Developer
I have been working as the Web Services Developer in the Faculty of Applied Sciences at Simon Fraser University for the past several months. It has been an awsome experience so far as it has given me the opportunity t...
-
New Blog Installed
I have decided to keep a respectable website after years of allowing mothballs to build up. Previous attempts at blogs (on Xanga, using PHPNuke, and using static HTML files) were all doomed to neglect. I have chosen t...