Wednesday, August 4, 2010

Free music for videos

I'm in the process of editing some home videos and decided to check out what free music I could find. There is some pretty good free music at the Free Music Archive. I especially like the jazz and hip-hop. Well done! :).

Sunday, August 1, 2010

Floss for MacOS X

In trying to be a progressive cross platform developer, I've been playing with OS X quite a bit. One of the nice apps that you get on OS X is iMovie and I thought I would quickly cut together some video I took of a friend's wedding reception. Unfortunately, QuickTime balked at opening it (and if QuickTime says no, iMovie says no).

Looking around I found DivX for Mac and 3vix mpeg4 trial. Both seemed to want to get me to upgrade to some pro version or bundled features to cross sell me apps. Suffice to say, I really don't like cruft on any of my machines so I continued my search. Luckily some enterprising individuals created Perian. It uses ffmeg's AV codec library and makes QuickTime player a bit more useful. Unfortunately although I could now view the videos on the mac, iMovie is still giving me beans and refuses to import the videos.

Looks like I'd have to convert the videos. The closest thing I found was ffmpegX. It's shareware, but it has a nice interface.

Sunday, July 4, 2010

Projects, projects, projects! Autofilehasher.

Downloading open source software (isos, tars, tar.gzs, zips etc.) usually have an MD5 hash or SHA1 hash. This is necessary to validate that the file that you downloaded is the file that the creator intended. With the prolific use of mirrors for distributing software, checking the hash codes is a task that users tend to shy away from. I decided to search around for a firefox extension that would let me check the hashcode of the file I downloaded. The closest I came to finding what I wanted was the MD5 Reborned Hasher; a Firefox extension that lets you click to generate various hashes of files.

While this is cool, I want it MORE automatic than that. As such, I have another project on the burner. This one, unimaginatively named Autofilehasher, will collect hash codes from web pages that you visit (based on a matching regular expression for the codes - length, characters allowed etc.) and when you download something, it checks to see if the hashcode is in its database. If it is and the filename matches text in the web page that the hashcode was from, a green tick is displayed. If the hashcode matches but the name doesn't a yellow tick should be shown. If no match for the hashcode, a red X would be shown.

The immediate visual feedback would be a good thing for users and software publishers alike. Hopefully I can get some time to work on this soon.

Wednesday, May 19, 2010

Mapserver

It's been a while since I've posted, I've been rather busy. I hope to detail some of the things I've been working on in subsequent posts.

Today I'm working on a proof of concept for a MapServer implementation for a potential client. I found a nice interface tool site at maptools.org and after looking at various examples and documentation I've decided to use the Fusion development framework for the proof.

MapServer is nicely cross platform, so the first step is installing it. Luckily in Ubuntu, there's an UbuntuGIS PPA. I added the PPA and updated the repos using the line
sudo add-apt-repository ppa:ubuntugis/ppa && sudo apt-get update
After that I installed mapserver-bin, mapserver-doc, cgi-mapserver and php5-mapscript. It uses about 60MB of space. Not bad.

I test the installation using the -v parameter and see that the latest stable version is what has been installed.

$ /usr/lib/cgi-bin/mapserv -v
MapServer version 5.6.3 OUTPUT=GIF OUTPUT=PNG OUTPUT=JPEG OUTPUT=WBMP OUTPUT=SWF OUTPUT=SVG SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=ICONV SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=FASTCGI SUPPORTS=THREADS SUPPORTS=GEOS INPUT=EPPL7 INPUT=POSTGIS INPUT=OGR INPUT=GDAL INPUT=SHAPEFILE
Next, it's time to run a test that the CGI is working by visiting http://localhost/cgi-bin/mapserv . Everything looks good, I got "No query information to decode. QUERY_STRING is set, but empty.". I learned that this means that the html form settings are missing from the following guide: Installing MapServer in Ubuntu. That guide has a MapServer 4.x demo which I guess I could use, but I'd rather use / learn something more current.

Time to dive into the MapServer 5.0 tutorial.

Friday, April 16, 2010

Another set of logos done

I managed to churn out three more logos and sent them off. I aim for four, but I couldn't get a concept for the fourth one. It's hard to create something when I'm still a little nebulous about the product and service being offered.

Unfortunately, I wasn't too keen on my logos. They were good, but none wowed me. There is a bit of a silver lining though. I managed to come across a nice Inkscape tutorial which put some techniques together in a curious way. It opened my eyes to some new perspectives on being creative in Inkscape.

Tuesday, April 13, 2010

Trinidad and Tobago EBC

So election fever is in the air and to their credit the Trinidad and Tobago Elections and Boundaries Commission (EBC) has a website and on it you can check to see if you're registered to vote.

I was pleasantly surprised to see the site seems to have been coded in php and a bit of jQuery.

Unfortunately, the security of the design leaves some things to be desired. Firstly, there's no encryption certificate. Perhaps that's a peeve of mine, but any personal information held in the governmental trust such as my full name and address should be encrypted. I'm surprised there isn't a https://secure.gov.tt/ that would facilitate that.

The second issue is that they made the simple form usable, but with only the illusion of security. There's a simple javascript check to see that you enter more than 1 character for required fields. The search also does not get executed by javascript if the fields are empty. There's also a server side check to see that you sent something.

Given all that was done to make sure you have at least parts of the information required (First name, surname and address) as well as limiting the result to 10 entries if there are multiple matches, I'm surprised that there seems to be no sanitizing of input.

One character that they really should have checked is the % character. If you are familiar with SQL you will know that the % character is a wildcard character that matches everything. Say you don't know the address of an individual, but you know what their name is, you can see the result by putting in %% in the street field. This gets past the validation and pretty much makes the mandatory field non-mandatory. This works for all the 'mandatory' fields and is especially troubling as this lack of input sanitization may leave the site open for an SQL injection attack. Hopefully the account doing the query has read only access to the database.

A good tool to help prevent this is GreenSQL which if they're running MySQL should prevent the possibility of being compromised by an injection attack by acting as a database firewall.

Remember security is a process, not a product, even if you're using open source.

Monday, April 12, 2010

Logo inspiration for a virtual company

Getting inspired is difficult. Being creative without inspiration even more so. My latest logo design client is for a local services company which supplies and supports open source software. The name of the organization wasn't very inspirational for me, but I did have long chat with the founders and they shared what they plan to do and the type of image they want to portray. I gave and got some adjectives to help focus me, but still the inspiration didn't hit. Then, I dreamt a logo. I didn't think it was particularly good, but there was something about it. Maybe it was something I ate. The logo was some swooshies forming an abstract Trinidad and Tobago with three spheres going down the middle of Trinidad. Odd, but it's a start.

I thought of going simple; two colors (they like blue and silver) and a separated box surrounding the acronym for the company name. I'd make the left box blue and the letter inside it silver. Then make the right box silver with the letters inside that blue. Add some spaces, maybe a drop shadow.

For my third idea I thought of using silhouettes forming the first letter, kinda. That will be interesting. I found some interesting fonts over at fontsy that I think I'd like to try out, especially the typewriter font I picked. Although not open source, they supply free true type fonts so maybe the typewriter font would give it a new world edge with a bit of old world feel.

Wish me luck!

Thursday, April 8, 2010

One day at a time...

Life is good. :). Celebrated my 1 year anniversary, limed with some family for birthday and been chillin' with the wifey. The first step of my re-design using Openlaszlo would be to install it. While this is simple enough, I love to do things the hard way. :). As such I decided to create a nice Openlaszlo DEB to install on my Ubuntu box. I haven't gotten very far, so hopefully tomorrow I can get cracking on that.

It seems my logo-creation wasn't half bad. I was recommended to a startup company and they want me to design a logo for them based on the ones I did for my friend. Kinda hard to be inspired by their business though, so I'd have to sleep on it.

Thursday, March 25, 2010

Let's make a background

I have to admit I was not looking forward to creating a nice background for the Royal Hotel site, but it was necessary. I had one of two options on my plate: either I use one of the pictures of the hotel as the background or I create one. While using an existing picture may seem easy, as the whole point of a hotel company's website is to market themselves, putting the hotel in the background just sends the wrong message. And thus, creating a background becomes a necessity.

I like the royal blue color scheme and could possibly even run with it a bit more like they tried to do on the original site. Here is where I decided to gimp it up a bit. I created a 1600x1200 empty image with transparency and then used a flame filter (Filter -> Render -> Nature -> Flame). I tweaked with the color (dark blue to gray), selected a spherical type and zoomed in on the flame so you can see the circle goodness. Here is a scaled down version of the image.



When I add a nice blur effect to make sure it's not in focus and we should be good to go. Because it's transparent, I can add a gradient background that can repeat and isn't part of the image (effectively layering the background) making it quicker to load. The compressed flame image plus the compressed gradient repeat take less space than the gradient added directly to the flame image and compressed.

To do the blur I do a simple gaussian blur. Because the flames are so wispy, I had to increase the blur radius to 20 pixels. Below is the scaled version of the blurred flame background.



All done with that. The actual web development starts next. Let's see if we can get the site functional AND pretty. Well, enough. :).

Wednesday, March 24, 2010

One more logoization

I know I've been going on about Inkscape recently, but it's a cool tool. My friend liked two of the logos I did (50%) isn't bad given the nebulous nature of the requirements and will send some notes tonight on what else she wants.

As I have my graphics hand kind of ready and I'm keen to re-design the Royal Hotel site I can use graphics from the site in a creative way but I REALLY REALLY have to vectorize that logo. An exact vector equivalent shouldn't be necessary, but at least something without jagged pixelated edges. Below is what I'm starting with.

Small, pixilated, stretched on the website. Yowza.

The first thing I need to do is use Gimp to reduce the number of colors in the image. This will make it easier for me to zoom in and do pixel level editing. I used the Colors -> Posterize function in Gimp to reduce the picture to four colors. Then I painstakingly used the pencil tool to remove the shadow and any funny looking bits. The posterization removed some detail, so I put it back with some black pixels. Below is the milestone 1 of the crazy stuff that I did.

So the background is gone, the shadow is gone but most of the words are still there. It's still a pixilated mess. In steps Inkscape. More specifically the ever so fun tracing functionality using the Potrace bitmap tracing engine which is most excellent. I played with some settings, did a nice brightness based trace and voila! Vector logo as seen below. (Uploading a PNG instead of SVG as embedding SVG is still a bit of a pain).



As you can see, I changed the color to about the same royal blue that was being used in the original logo. I used a color picker to match it the best I could. The next step was to get a nice drop shadow working. In Inkscape this is basically an object copy, set the stroke to blur (I used a blur of 4) and reduce the opacity of the shadow (I set it to 90%). Position your shadow first though and send it to the back of the main image. You can see the effect below.



That looks much nicer. Fluid and shadowed. Floating on the page almost. :). Hmmm. The original logo had some more color in it, more specifically a fill in the back. I created a square with a gradient fill to white and a bit of opacity reduced (90% again) and took out the borders. The result is a nice graded blue to white background for the awesome vector logo. You can see the final result below.



So there you have it. From pixilated to vector with the help of Inkscape, Gimp, Potrace and lots of patience.

One kinda down

Managed to finish four logos for my friend so yay. :). Been a while since I played with Inkscape and it's really evolved with features.

I was thinking about the registration thing for the club and maybe a nice framework that supports registration would be the way to go. That way people manage their own data, update it themselves and pretty much take the headache off of the team for admin.

This might be a bit more expensive than I thought though as the type of information that they're requesting really should be encrypted. They might have to ask their host for an encryption certificate and all the joy involved with that.

Tuesday, March 23, 2010

Website dev

I need to flex a bit of the programming muscle I have remaining before it atrophies and I've always liked web apps. It turns out that through a mutual acquaintance I may help automate the registration of a model airplane club in Canada. We'll see how that goes.

Two of my friends are getting married (to each other) and the wedding is in south Trinidad. I don't really want to drive up and down (there's a big bram the night before the wedding) and would love to stay in a hotel as close to the wedding and reception as I could. Asking the bride if there was anywhere to stay (besides her house which she offered) she suggested the Royal Hotel. The hotel seems nice, but the website is, well, not so much. I'll see what I can do with a nice DHTML Openlaszlo site that should cover everything except booking and checking availability. I'll see if I can barter a couple nites there for an updated website.

Man, I really would like that Macbook pro right about now. :).

Monday, March 22, 2010

Logo design

A friend of mine has asked me to design a logo for her new business. She emailed me some logos that she likes that captures what she's looking for. It's been a while since I created a nice logo but I think I could manage. Ordinarily I would use gimp to snaz it up a bit but since this is a from scratch logo, I should start with something like Inkscape.

I'm trying to envision something unique, simple, yet recognizable for the business. She wants something contemporary and trendy. I think I might be able to handle the contemporary part. Contrast of color, add a drop shadow, clean crisp lines. I've never been that good with trendy though. Minimalist with straight lines and some simple shapes should be trendy.

There should be a theme that encourages warmth. For one of the ideas I'm putting two typical symbols together facing each other. Not all the lines will be drawn making the whole logo seem flowing. I think I need a good script font that is readable but trendy looking. I'll check out the open font library to see if there's anything there that fits the bill.

I could also try spelling the name of the business using symbols. Worth a shot but I think it may end up too complicated and confusing. I could also action out a couple things like blowing a kiss because you love the product so much with little hearts everywhere or the product being poured straight into someone's mouth. I could go a little silly and treat the product like a water fountain. :). I don't think she'd like that though.

Enough brainstorming for now I think, let's create a logo.

Been a long time...

Like so many others I see scattered around the blogosphere, this blog, my blog, lay abandoned. There are a myriad of excuses, life, work, and all manner of projects which took my attention away. Since I started this blog though, a lot has changed. I got married :). I also became a consultant once more. :).

I had a full time job (my wife would argue it was more than full time) and I enjoyed what I did and who I worked with. Then the economic craziness happened and a bank acquired my workplace. Life is too short to treat people like they are replaceable cogs in a giant machine. The bank that acquired my workplace was like that. I tried for a few months to work in it but in the end I didn't want to be treated as if I was in primary school again.

So I'm consulting, reaching back to my open source roots, exploring, creating and enjoying what I do once more. I've always believed that if you do what you enjoy and are passionate about, all the rest will fall into place :).