existdissolve.com
the singularity of being and nothingness
the singularity of being and nothingness
Jul 3rd
So I finally moved into this century last week by downloading and installing Skype on my computer. Notwithstanding the $15.00 I paid for my headphones, I really like what I see so far.
My primary motivation for getting Skype is my freelance work. While I love talking to clients, it is incredibly taxing on my cellphone minutes to try to manage weekly calls with several clients. I'm hoping that Skype will enable to reduce–or eliminate–this issue altogether, while also providing a way for me to be able to work with both hands while chatting on the line.
So here's some initial thoughts: Skype seems to provide pretty good call quality on my cable connection. In the few calls I've done, I've not had terrible difficulty hearing the other person, and the connection never broke up. Plus, I like that Skype provides a built in contact manager and internal chat client for quick catch-ups with clients that do necessitate a full-blown call.
Negatives: I've noticed that in Firefox 3, Skype recognizes phone-numbers (or at least phone-number formatted strings…) and applies some functionality to them. At first blush, this is cool–but it does get annoying, and can seriously break an otherwise consistent design flow. But More >
Jun 19th
I am extremely proud to present my very own CSS Gallery, CSS Imagine. For those who have been following my blog the last couple weeks, you'll recall me alluding to this very special day. Well, it's finally here and I am very, very, very excited!
Please take a second and check it out. If you're a designer, or just know of a killer site that needs to be on CSS Imagine, please take just a moment and submit it. Also, please let me know your feedback–I am incredibly anxious to hear people's responses to this gallery and some of the functionality that I have built in.
So yeah, check it out, and be sure to follow CSS Imagine on Twitter and ScrnShots too!
Share this:Jun 17th
Just over a month ago, I blogged about the benefits of unobtrusive JavaScript, and how it helps not only produce standards-compliant HTML and CSS, but additionally creates a framework for creating applications that is extensible and reusable.
In this installment of this series, I would like to build on this idea a bit. As you delve into unobtrusive JavaScript, you will soon learn that generifying your JavaScript functions becomes unavoidable. Yes, I said "generifying." Let me explain.
Using inline JavaScript usually means one of two things: A.) you have a one-off function that you need to fire, and you just want to get something working NOW. Or B.) you've not really investigated unobtrusive JavaScript very thoroughly, and are content with using inline calls for even the most complicated functions.
If A.) is the scenario, as your application grows and you need more functionality from your JavaScript, life is going to suck very quickly because you're going to have to do a lot of backtracking to catch up all those inline calls to match any changes you've made to accomodate new functionality. And if you're one of the B.)'ers, you'll have to do what the A.)'s are stuck doing, plus you'll have some major More >
Jun 12th
A rather annoying issue I ran into this evening when testing my up-and-coming CSS gallery on a live server was that all of my cross-domain AJAX calls were failing in Firefox. I'm used to stuff failing for stupid reasons in IE, but this one was unique. I tested in Safari (for Windows), IE 7, and Opera–all of them worked beautifully. But for whatever reason, Firefox horked on the code.
Well, it turns out it was a simple fix. In my AJAX calls, I was using the Spry loadURL() function. For this function, you can specify whether the call should be a "POST" or "GET" method. I assumed for my remote calls that I would be doing POST methods.
After all was said and done, it was apparently the POST methods that Firefox was having a coniption over. I changed the methods really quickly to GETs, and everything worked again in all browsers.
As I am mostly stupid, I have no reason why this happened–however, perhaps this will be useful to some other poor code monkey out there who is betrayed by Firefox in the wee-hours of the night, and maybe a wiser soul would be kind enough to post a comment about More >
Jun 10th
Remember the CSS Gallery I wrote about a while ago? Yes, the one that I'm building? Well, IT'S ALMOST DONE!!
I am incredibly excited. The design, I feel, really came together, and the final result is something simple and sleek, but still (at least IMO) memorable.
One of the most exciting things about this project for me is that it's allowed me to flex some ColdFusion 8 muscles–muscles that I have had not yet really had a chance to use until now.
What kind of features are there going to be? I'm glad you asked!
On the client side, I completely Web 2.0-ified the site submission process. When you click "Submit", instead of getting redirected to a form page, I'm using Thickbox to present the form. The form itself is pretty sweet, too. First, there's a fairly interesting hint tool that I developed. But the power of the form is that not only does it check the XHTML and CSS validation on the site you enter while you're finishing up the form, but even the form submission itself is AJAXed. No stupid submit and refresh here!
Once a site submission is approved and live, each site will have comments attached, as well as a rating mechanism. As More >
Jun 10th
I do not like PHP. Period. Sorry. I find it clunky and it makes me irritable. Sure, it's free, but so what? There's a lot of free things that I don't like (like the flu, for example).
What's my beef? Tonight, I launched my first successful WordPress integration. For the testing phase, I had the installation in a sub-folder off the main site. Everything worked great.
But finally I moved it to the root. Guess what? PHP got angry at me. On nearly every page I received this error:
"Warning: Cannot modify header information – headers already sent by (output started at blah, blah blah)."
Apparently this is common error, caused by whitespace. Really? Stupid. I can't believe that PHP can't process a file with whitespace…just seems really, well, dumb.
But the kicker is this: nothing changed between moving the files from my testing folder to the root! For whatever reason, PHP didn't care about it when it was in the testing folder, but then changed its mind when I moved the files. Again, dumb.
Anyway, the fix was really simple. Turns out that there were two lines of whitespace in my wp-config.php file, whitespace which I didn't put there (thanks WordPress).
Urghh. More >
Jun 4th
A few months ago, I ran across ScrnShots. It's basically a service for uploading, tagging and sharing screenshots of websites. This is pretty useful for me given my profession :).
One of the things, however, that has always impressed me about the site is how easy and fun to use it is. It features really deep networking capabilities, the tagging is pretty robust, and everything is fast, fast, fast!
Of course, while uploading from the site is easy, I've been waiting with baited breath for them to release an API. Well, recently this happened, and I couldn't be more excited!
The API is alot like Twitter's in that it uses Basic Authentication for user-specific http calls. While not the most secure form of authentication, it is ridiculously easy, especially if you're using ColdFusion whose cfhttp tag has a built in mechanism for managing it.
So tonight, I spent a couple minutes digging into the API, and came away with an easy function for uploading, tagging and providing a description and link for an image. And of course, if you're using ColdFusion, it's cake!
Here it is:
<cfhttp url="http://www.scrnshots.com/screenshots.xml" method="POST" charset="utf-8" username="existdissolve" password="password" multipart="yes"> <cfhttpparam name="enctype" type="header" value="multipart/form-data"> <cfhttpparam name="screenshot[uploaded_data]" type="file" file="#filearea#" mimetype="image/jpeg"> <cfhttpparam More >
May 29th
Over the last week and a half, I have been working with an old co-worker of mine on a project that he started about a month (or so) ago: searchwebjobs.com. This site is a pretty cool job listings site that is really easy to browse for jobs.
In brainstorming how to make the site better, I suggested that we create a WordPress plugin that would allow others (presumably, CSS galleries…) to grab a feed of our jobs and display them on their site.
So, grabbing my PHP 5 manual (and dusting it off…), I set to work. Fortunately, I have had some recent exposure to WordPress, so I felt reasonably sure that something could be done.
In all honesty, I couldn't be more impressed with WordPress' support for plugins. Consider this: it took me–a complete idiot at PHP–only 3 hours to program then entire plugin from nearly scratch. Not bad.
The beauty of WordPress' plugin support–IMO–is the default database that is so easily exposed. Instead of having to create stupid PHP connections, that stuff already exists, so all you have to do is basically write SQL. Plus, there are a few native functions to WordPress that allow you to use a row More >
May 28th
Over the last several months, I've gotten into Twitter ALOT. I find it to not only be fun, but it is also an interesting social experiment. I've been surprised by how many great resources I've come across because of my followers quickly twittering something they think is cool/helpful.
Naturally, the next stage in my relationship with Twitter is to crack into its API to manipulate from my own applications. Turns out this is surprisingly easy to do. All of Twitter's functions are relatively simple and require very little to accomplish what you want to do.
So my case study was the most obvious: post an update to my "status." In ColdFusion, the entire process takes 6 lines. 6 LINES! Here they are, in all their simplistic glory:
<cfset update = "Hey, this is an update to my twitter status"><cfhttp url="http://twitter.com/statuses/update.xml" method="POST" charset="utf-8" username="existdissolve" password="mypassword"> <cfhttpparam name="user" value="existdissolve" type="formfield"> <cfhttpparam name="password" value="mypassword" type="formfield"> <cfhttpparam name="status" value="#update#" type="formfield"></cfhttp>
For this function, you do have to create a basic authentication, which merely requires passing your username and password along with the status message. Very simple, but very cool!
So yeah, that's about it. There's a whole slew of functions in Twitter's API, but hopefully this shows More >
May 23rd
Yeah, yeah, I know. There are already a billion and 3 CSS showcase galleries out there. Why re-invent the wheel, you surely say?
Well, I'm actually not…well, not really. I have a few projects that are hovering on the horizon for which I am going to be using a few features I've never built before, such as a rating system, and a tagging system. While I feel confident that they will be no big deal, I figure something like this could provide a good playground for working those things out now, rather than later.
One thing I am going to do with my CSS gallery, however, is auto-generated thumbnails. I really want to do nothing but approve or deny submissions, so the thought of taking time to open the RAM-whore Photoshop CS3 to crop up a bunch of images is not appealing!
In thinking about this, I snooped around the Intrablog for some free services that would provide this. One of them, Websnapr, has an extremely easy to use API…the only problem is that they slap a stupid watermark on the thumbnails that are generated. So obviously, I moved on. The next one I found (and stuck with, incidentally), was ShrinkTheWeb.com. Their web More >