telus sucks

Telus, my local telco monopoly, truly, desperately sucks. Here’s why:

- Their customer service is legendary in it’s inadequacy. They really don’t care about you. This is a sweeping statement - I’ve had a few good experiences with some very good Telus employees, but the overall culture is “we don’t care”, or “we don’t have time for you”.

- Their upper management is weird. And not in a good way.

- They have a crappy, annoying voice-recognition phone system that makes me want to swallow my own face.

- They have a bitter labour dispute happening, and they fight dirty, and have total support of the local media.

- They have the worst on-hold music on the planet. Really, where do you even find music like this?

- Their billing system is totally fucked up right now. My paper bill says I owe them $300, and the “My Account” interface on their website says they owe me $170. Also - I can’t have both an “e.Bill” and a paper bill any more. They force you to pick one or the other. Maybe they do this to hide the inconsistencies? Lame!

- I was on hold today trying to sort out my billing issues, and the line just went dead all of a sudden and I was cut off… AND THEY’RE THE &*^#&% PHONE COMPANY!

OK, I feel better now :)


tags:

posted: 10:02 am

  * 33 Comments

nifty webservices for all

Greatly appreciate the wsfinder blog, which tracks new webservice APIs that are popping up all over the web. Web 2.0 needs more community portals - this site helps to fill that gap. Here are some cool new webservice APIs that have popped up:

geocoder.ca - find the lattitude and longitude of any Canadian address (Google maps hack).

colr.org - generate color schemes from an image.

ip2location.com - map IP address to location. Another GeoIP service. It says I am in Montreal, so I guess it’s not that accurate. Probably works better for smaller locallized networks.

Zimbra - AJAX-based collaboration suite

And, of course, sxore.com, which had it’s first “officially-sanctioned” alpha go live last night.


tags: , , ,

posted: 7:13 am

  * 2 Comments

daily zen 2005-09-24

admittance refused
For all these years, my certain Zen:
Neither I nor the world exist.
The sutras neat within the box,
My staff hooked upon the wall,
I lie at peace in moonlight
Or, hearing water splashing on the rock,
Sit up. None can purchase pleasure such as this:
Spangled across the step-moss, a million coins!

- Ryushu Shutaku (1308–1388)

Courtesy of dailyzen.com

posted: 7:57 am

  Comments Off

techno prisoners

Want solid music for your headphones? Get soulseek and download a live set by Richie Hawtin and Ricardo Villalobos. There are a bunch of em’ on there - I guess these two dudes like playing together. Each incredible DJs in their own right, together they make magic. I like their mix of straight-up beats with psychedelic funkiness. And you know they are using all kinds of funky gadgets to make their grooves, like Final Scratch and Ableton Live, so the show is just as much live improvisation as it is mixing records.


tags:

posted: 9:34 pm

  * 1 Comment

what web apps are made of

Having revisited the web application problem many times, it seems like I keep having to reinvent the wheel of web app development, and I tend to forget some pieces of the process that come back to bite me later. So I decided just now to enumerate a set of general web app components, to kind of organize my thoughts a bit. This may make no sense to you - it’s more for my own sanity.

1. Sessions

- live/in-process data that needs to be stored between accesses
- token stored in cookie or URI
- should allow storage of complex data structures

2. Logging

- tracking application internals, debugging problems
- multiple levels
- meaningful data

3. Authentication

- who are you?
- authentication can can just be a password match, or can be delegated to another entity

4. Authorization

- are you allowed to perform this action?
- user / group privileges

5. Error handling

- different levels / classes
- should this error be shown to the user?

6. Templating

- separates presentation from control code
- a good templating system can perform complex data presentation / transformation functions

7. Data storage

- use CRUD, or object-relational mapping
- if you’re writing a lot of SQL, you’re probably working too hard

8. Request dispatch

- URI to code mapping
- what code should service this HTTP request?

9. Configuration settings

- config file
- store constants

10. Data validation

- did the user give valid data
- ability to re-use data validation schemes
- form fill / highlighting if there is an error

12. Plugin framework

- ability to extend the capabilities of the web app, without changing the core

13. Webservices API

- programatic access to data structures

14. Workflow

- business rules that describe a work procedure
- concept of “desks”, or distinct steps of a flow.

posted: 2:27 pm

  * 4 Comments