2September2008
Posted by Kaanon under: Rants.
So the big news this weekend is that Google Chrome is coming out soon. For those of you who don’t know, grab a cup of coffee and check out the comic about it here, it’s a long read.
To make a long story short, Google will be releasing a browser soon, and they’re going to do their best to make sure it rocks. It looks as if it will be using Safari’s speedy rendering, Opera’s ingenious start page, Firefox’s handy “awesomebar”, re-named to “Omnibar” and something called V8 javascript. Along with built-in Google Gears and better process management and you have a great new browser, right? Not in my book, not yet at least.
I’m skeptical that Google Chrome will make any short term difference in the browser world. The other day, I caught my wife using Firefox 2 (which she had opened for me, so I wouldn’t have to use IE7). I scolded her and she exclaimed that “nobody uses Firefox 3 or even knows about it”. I looked up the statistics and according to W3Counter, she’s right (not the first time that’s happened). Barely anyone is using what I think is the best browser out there.
Here’s my point, Google Chrome and Internet Explorer 8 and any new or updated browsers that get released are definitely a good thing. They make the web safer for users, provide more tools for developers and competition always helps the industry. Unfortunately, it doesn’t matter what the Best browser is, or the browser that makes web browsing safest, or prettiest or easiest for developers. It doesn’t matter if things keep getting cooler, because I can’t use any of that coolness. For Centerflow, I put rounded corners in it, but only Firefox and Safari users will see it. I’m often afraid to NOT use a Javascript framework, because I know how tough it would be to debug Javascript without the compatibility already “taken care of”. It’s a cruel thing to say, but I’m coding for the lowest common denominator, the worst of the worst, the oldest and remarkably the most popular browser out there. I’m still stuck making sure things I do work in Internet Explorer 6.
It’s not that I don’t LOVE that Google is doing something about the state of browsers, rather than sitting on their hands and hoping Microsoft, or Apple, or Mozilla or someone “fixes” it. I’m more sad that users just don’t upgrade. They either don’t know that there is a new version or perhaps they don’t care that there’s a more up-to-date version. Maybe after what Microsoft did with Vista and Office, they are actually scared of upgrading. It’s not uncommon. I’ve often help off upgrading my Xubuntu box because I didn’t want to break anything. Until people finally move past that wretched 7 year old software, we’re stuck making sure that everything still works for it.
Maybe I’m being too cynical, or Google is making the browser for the highest level of users, the web development community. Maybe this will finally make a difference because the brand name of Google is more well known that that of Opera or Mozilla. Maybe Microsoft will somehow get enough people to switch to IE7, which is more than a capable browser. Maybe…. but i’m not holding my breath.
1September2008
Posted by Kaanon under: Projects.
I’ve updated the images command I made for Ubiquity. First I got around to making it DRY, and I also decided something useful to do for the execution area.
Check out the new code Ubiquity Commands.
29August2008
Posted by Kaanon under: Projects.
Ubiquity is the newest thing from the Mozilla Labs, who have brought us such great things as Firefox and Thunderbird. Essentially it’s a command line terminal for Firefox, but it has the capability to be so much more. The examples of emailing maps, or easily finding Yelp reviews is awesome!
Of course, I had to try it myself. I’ve created my own commands as a sort of proof of concept. You have to install Ubiquity to see them though. After installation, come back here, and you should be prompted to subscribe to my commands. Subscription is a good idea, because if I ever fix a bug or add a new command, you’ll get it too.
- images
This command will bring up all the images on a page in the Ubiquity Window. It only pulls up actual IMG tags, because css images are usually background images and ads are usually printed after the page has loaded.
- zipcode
This command will use a web service to bring up information about a zip code. Less useful, but kind of cool nonetheless. It uses some webservice (http://www.webservicex.net/uszip.asmx/GetInfoByZIP) to find the information and doesn’t work more than a few times a day.
How’d I do it
The nerds out there are probably wondering how it worked, so here’s the source code: ubiq.js and a little breakdown below.
Images
The images commands was much easier to write. I just get all the images on a page, loop through them and put them into the preview window if the are bigger than 65 x 65 (anything smaller is probably non-interesting. I basically do nothing with the execute command now, because I can’t think of anything useful to do with a bunch of images. I thought about saving them in a zip or something, but I’m not there yet.
preview: function(previewBlock){
var images = CmdUtils.getDocumentInsecure().images;
var txt = "";
var previewTemplate = "<a href='${src}' style='margin: 3px'> <img src='${src}' /> </a> <br/>";
for (var i = 0; i < images.length; i++) {
if (images[i].height > 65 && images[i].width > 65) {
txt += CmdUtils.renderTemplate(previewTemplate, {src: images[i].src});
}
}
if(trim(txt) == "")
{
previewBlock.innerHTML = "<em>No Images found</em>";
}
else
{
previewBlock.innerHTML = "< div style=’width: inherit; height: 400px; overflow: auto;’> “+txt+”</div>";
}
}
zipcode
The zipcode one was a bit harder because I’ve never dealt with jQuery before but essentially, I make a call to a XML webservice and then extract the information from the responseXML.
CmdUtils.CreateCommand({
name: "zipcode",
takes: {
zip_code: noun_arb_text
},
description: 'This will get information about a Zip Code',
preview: function(previewBlock, param){
if (!param.text || param.text.length < 5) {
previewBlock.innerHTML = "Zip code must be 5 characters"
return;
}
url = 'http://www.webservicex.net/uszip.asmx/GetInfoByZIP';
params = {
USZip: param.text
};
jQuery.ajax({
url: url,
data: params,
success: function(x){
var txt = '';
var nodes = x.documentElement.childNodes[1].childNodes;
var attributes = jQuery.makeArray(nodes);
var previewTemplate = "${tag}: ${content}
“;
for (var i = 0; i < attributes.length; i++) {
var item = attributes[i];
if (item.nodeType == 1) {
previewData = {
tag: item.tagName,
content: item.textContent
};
txt += CmdUtils.renderTemplate(previewTemplate, previewData);
}
}
//CmdUtils.log(txt);
previewBlock.innerHTML = txt;
}
});
},
execute: function(zip_code){
url = 'http://www.webservicex.net/uszip.asmx/GetInfoByZIP';
openUrl(url + '?USZip=' + zip_code.text);
}
})
25May2008
Posted by Kaanon under: Projects.
FINALLY!!!
Centerflow has been a work in progress for months now. I’ve gotten a good amount of feedback who like the tool, but have trouble installing or configuring it. Ever the problem solver, I decided that the next step for centerFLOW was to follow Wordpress’ lead and offer the web application as a service for people to signup and use, instead of downloading and installing
Feel free to signup at Centerflow Signup
4April2008
Posted by Kaanon under: Downloads.
I’ve released a new version of Centerflow. It’s pretty much ready to go.
Before, the Projects and Messages model were using scaffolding. I’ve changed it so that the Projects model can now edit, merge and delete properly. Deleting a project will also optionally merge tasks into the parent project (unless, of course there IS not parent project)
Messages no longer use the scaffold page. I jacksoned the Message listing so that editing messages happens inline, much in the way tasks are edit.
Speaking of tasks, priority is finally in place. It can be done through each projects dropdown menu. There’s a link to “Reorder Project” where the tasks can be re-ordered with some sweet drag-n-drop action.
Enjoy.
Download @ SourceForge or CakeForge
Demo can be found here Centerflow Demo
19December2007
Posted by Kaanon under: Downloads.
For the past couple of months I have been working on a project management tool using CakePHP. It’s now available for download so check it out.
It all started with BaseCamp. I had our development team using it and it really revolutionalized our development process. It got so good that it was time to move on from our little free account to a full blown one. I pitched the idea to my boss, but she was cautious about so much of our information being on someone elses servers. I guess I got inspired, since I went ahead and did my best to build my own. Centerflow is now up as a demo and for download, so please try it out. It’s my first released project so I would love a lot of people to try it and give me some feedback. Thanks!!
centerFlow is a cool project management tool for development. It keeps track of your projects and tasks, and allows you assign them to users as well as mark their progress until completion. It can be used for development projects, or any kind of project that suits your needs.
CenterFlow uses cakePHP, a PHP-based MVC framework. It also uses the Prototype and Scriptaculous libraries for javascript. I also jacksoned my own tree class using said JS libraries.