What's brewing
Tuesday
Nov072006

Web application for project tracking

Now is the time for the development of another new product. Before I head forward to do anything, I sit down and try to come up with a tracking mechanism, as I was being told our development process is not transparent at all.

I started with a list of thing which I want to achieve from the tool,

  • Categorize the entry
  • Allow visitor to leave comment
  • Searchable!
  • Can ease my documentation effort
  • Time tracking or something like completion
  • Can integrate with the other resources, e.g. version control, file server, etc.


We have used Basecamp from 37Signals and it serves most of the purpose. The only downside is, information are stored on their server, which we have some hesitation. We want to put everything in this single repository which means confidential information could be found.

So, we decided to host it on our server. The decision in using a blog is very natural but limitation shows immediately, like how do we use it as a file repository and integration with document generation is no easy task. Then, we consider in using a traditional CMS, but setting up and publishing with a CMS is a daunting process.

A couple of candidates that pops up immediately,

  • activeCollab
  • Drupal
  • Expression Engine
  • Wordpress


Before reading forward, be warned that the comment below is my very own view. Sometimes, it's even goes to my personal aesthetic, so you could be seeing it way differently from me. ;)

 



activeCollab



activeCollab is an easy to use, web based, open source collaboration and project management tool.



It is a mock-up of Basecamp, which allow the user to install and run it on their own server. Hey, isn't this THE solution I am looking for?

Having said that, you know I have turned my back away. The main gripe is, it is not mature for production yet. 0.6 was released and I have heard about a lot of changes will be done in 0.7. I am willing to try out new thing but not that new as yet to reach even the alpha release. ;)

To be fair, it looks really promising, and everything was done by Ilija Studen alone. I think the project is now expanding with more contributor and I will definitely re-visit it again at later time.

 



Drupal



Drupal is software that allows an individual or a community of users to easily publish, manage and organize a great variety of content on a website.



The software was developed by 2 university student back in 2000 and it has already gone through 4 versions with version 5.0 on the horizon. It is a powerful system that provides a complete set of basic features like user management, access security control and a nice publishing framework. Also, it is extensible, which module can be written and operate in extending what it can do.

The installation procedure is straight forward, at least I can get it work in the first shot, but configuring the system to suit your need will take some time. I can have the first post published in minutes. Indeed, there are a lot of little options, finding out the way in customization is not easy. Also, you will need to navigate between pages and I find the loading speed is on the slower side.

One of the reason why I want to try out Drupal is for the use of Project and PDF module. The Project Module allows me to set project information like project website, CVS tree (via viewcvs which allow you to scan through the repository from the browser), documentation, etc.

After that, I can add issue (which can be a new task or a bug submission), and assign priority as a new content.

These features covers the basis for project tracking but it's not flexible, especially for the issues manipulation. Issues can be glanced as a summary with information like last update and assigned to. I can even sort it by project or priority.

And yet, I find the content creation is clumsy, especially in the initial setup phase. I have to jump from the administration page to the content creation page from time to time. Besides, the content to be shown is too crowded (I am using the theme "pushbutton") which introduce the barrier in using. Also, the category for each issue is predefined, and the content editting page is limiting. Like if I want to attach a picture in between, I have to firstly have it uploaded and enter the link manually.

Again, we step away from using Drupal, for the time needed in managing the site is a bit too much to me. We just want to jump in and out quickly.

 



Expression Engine



ExpressionEngine, our flagship product, is a modular, flexible, feature-rich web publishing system.

ExpressionEngine supports great add-on modules - an image gallery, a moblog module, and our new discussion forum, to name just a few - so you can build your dream site.



I first heard about this product from Veerle's blog 2.0. Her blog is definitely a joy to read, informative and with a VERY NICE layout.

It has a rich user base and availability of a large volume of additional modules. pMachine themselves has developed a number of them, from image gallery to forum. Apart from that, developers around the world can submit their module to pMachine and have it verified, before putting it up on their server for user to download. This can ensure the reliability of each module available.

I tried the community edition provided by pMachine, following their nice installation procedure, and have my copy running shortly. The admin pages are solid, the flow is very natural and it's a pleasing to the eye. The module and plugin development is very structural, by just implementing a clearly defined set of functions.

And yet, I didn't land my vote on this product, which relates a lot to my personal taste.


  • It's difficult to change template
  • PHP 4 instead of 5 is used. I prefer something more OO in nature. OK, it has nothing to do with functions, just my geek factor has some influence on this.
  • Template customization is powerful, or too powerful. I don't want to learn everything in adding a link or change a color.


 



WordPress



WordPress is a state-of-the-art semantic personal publishing platform with a focus on aesthetics, web standards, and usability.




I ended up using this after testing out all the products above. But the funny thing is, it was the first product that comes up in mind but turns away instantly by myself.

Let's do something different, by commenting on what I dislike first.

Documentation integration will be a pain. Concering there is no API available in retrieving each post and there are next to zero plugin that was designed for project tracking (OK, there's a todo plugin somehow). The handling of angle bracket in the editor can make content creation a problem. The issue is that, the angle bracket was not handled properly as the editor always try to taken it out which makes code posting impossible.

But it provides something that I am seeing as more valuable (and I have located work around somehow).

First of all, installation is painless. Although I have been installing WordPress on numbers of machines, I am still enjoying the 2 steps process everytime.

Getting into the system and setup the basic web site structure is painless. The admin site layout is just as fluid as Expression Engine and the use of AJAX effect is clever. It's not sole for eye catching but serve the functions well, too. The page preview in post construction is a very welcome feature. Also, by disabling the visual rich editor can solved the angle bracket issue.

Also, I have located a very good PDF plugin that allows PDF generation for each entry which helps somehow in the document generation.

One last thing, most of the people in the project team is familiar with this product, having them getting used to this system is at no cost at all.

Now, all set and done, I will share the details on how to customize WordPress into our project tracking software in my next entry.
Monday
Nov062006

Sending email from Wordpress in local server

I have a wordpress installed in the office for project tracking. Everything works fine except one thing - sending out email.

The wordpress resides on my own linux box and wordpress will issue the mail() command provided by PHP, for any email delivery. The caveat for that is, it relies on my PHP setting. Unlike the Windows counter part, which can simply define the SMTP location and have the email delivered accordingly, we linux user will be using the SENDMAIL underneath for message delivery.

Sendmail, is equivalent to nightmare to me, but my life is saved by Gentoo which has SSMTP installed by default.

That's what our friends in Debian defines SSMTP,


SSMTP is an extremely simple MTA to get mail off the system to a mail hub



OK, after googling around, I found that SSMTP is very customizable. Mail can be sent successfully after setting up the following,

root


Define a valid email address that exist in the mail server. I used my own email address since I am sole responsible for the server setup.

mailhub


This is the key field. I specified the real SMTP server that I want to use.

rewriteDomain


I specified the domain name that I want to use which is the name of the company I am working for.

That's it! Now mail will be delivered properly.

Happy WordPressing.
Monday
Oct302006

Application I use regularly on my PowerBook

I am now gathering the latest version of the applications that I use regularly, for my soon-to-be arrived mbp c2d (Macbook Pro Core 2 Duo).

Documentary



  • Keynote
    I use both Keynote and Powerpoint, the decision point in using which depends if my file needs to be used by others. Personally, I like Keynote more, main because of the interface. The only thing I dislike before was the presentation tools, which I couldn't scroll up and down on the presenter's note, until now I figured out the hotkey. Besides, the templates looks more appealing to me, even the buildin one looks better than those from Powerpoint.
  • MS Office 2004
    Word, Excel, Powerpoint. Do I need to elaborate more?
  • OmniGraffle Professional 4.0
    OK, buying this tool is one of the best investment I have made. I made all the diagram for the documents or presentation with this program. The interface is very natural and un-obstructive, I have even made some vector graphics with the bezel tools in Omnigraffle. The license is a bit steep, I get the standard version firstly but I find myself enjoying a lot of the pro features like the support of multi-pages and master canvas.
  • OmniPlan Beta
    To be honest, I am not fond of tracking schedules with graph like Gantt Chart or work with resources allocation (I am an XP guy!!). But when things become un-avoidable (i.e. when you boss ask you for such a diagram), I will use this to entertain their request. Following it or not is another thing. :)

    And yet, I am not sure if I will pay for it when it comes out of beta.
  • Pages
    Compare to Keynote, I am using far less with Pages. But there is a project that I am working on right now (sort of like coming up with a book for myself) and I find it is very easy in using the tools to do my page layout. I have even bought a commercial template which renders my half-bake book looks great!
  • Paparazzi!
    Have you come across this unknown gems? It helps me A LOT in doing my documentation for the web application! I don't need to stitch the screen capture for a long web page into one after locating this tool!


Entertainment



  • Audion 3
    I know everyone use iTunes, I am one of it's user, too. But at times, there are mp3 that I want to play but not importing into my library, I will bring up this app. Too bad it had been dropped and I need to look for another UB mp3 player.
  • Audio Hijack Pro
    I use this to capture the audio off my DVD and also for tapping the internet radio broadcast. It's nice but I am not using it as often as I thought, I found myself unable to catch up with the program I tapped, no time to listen to in short. Besides, the mp3 I captured off the DVD is always resulted in a long single piece, and they have just recently released a new application to cut the mp3 into pieces.
  • HandBrake
    Media Center, what a hot topic, but I need to digitize my DVD or MP3 collection before I can enjoy it with the nice remote. HandBrake (or Hawkeye) is the tools I use to convert my DVD into MP4 so that I can browse it through with Front Row.
  • iTunes
    Do I need to say more? Oh, one thing you might of interest, is the size of my MP3 collection. It is now well over 60G and closing to 70G soon.
  • RealPlayer
    I only use this for Radio 4 internet broadcast. I find it difficult in locating the free version and the need for registration before you can download is annoying.
  • VLC
    The nice little app to play back all the .avi or mp4 movies I got.


Graphical / Imaging



  • Adobe Photo Elements 4
    The little brother of Adobe Photoshop, now what I want is an UB version!
  • Color Schemer Studio
    I have been eyeing on this tool for a long time, but the price tag drive me away everytime, until I saw the discount from MacZOT! The complimentary color suggestion, text color suggestion is so useful. And I can import color scheme provided on the web site, too. The original price is too costly and I find it worth the discounted value more.
  • Comic Life
    A funny idea to play around with photos you have taken in an event. My first trial on this is to present the photos taken in the C# Boot Camp. The layout and dialog is funny but my only gripe is the change in resolution means a redo. It's even nicer that a complete version was bundled with my mac mini. :D
  • DoubleTake
    Panorama, not something you will take regularly. But me, as a user of XPan (a camera that takes panorama on films), need this apps everytime when a roll is shot. I scanned in the films and stitch the two half back into one. It's tedious (for the scanning) but the stitching is easy. I have even used this for my wedding photos, too.
  • GraphicConverter
    I bought the licesne for this when I need to work on a bunch of photos, resizing to the resolution I desire. Later on, I tried to use this in place of Photo Elements. But it's a no go, simple action like copying or cropping, takes me a lot of effort. Mainly becoz of the weird shortcut key combination, and the lack of support of layering.
  • iPhoto
    Now my de facto tools in organizing my digital photos, especially important as I will publish them to my .mac website.
  • iView MediaPro
    I use this only for one thing - slide show. But I am not using it much now, especially as I am using iPhotos in doing my photo organization.


Productivity Boost



  • Curio
    I learnt about this idea tracking tools a long time ago but the price tag drive me away instantly. Until last month, when they were offering free license, I re-visited this apps and find it nice. I have used it in my latest project, to keep track of the ideas, requirement, screen mockup. I have even pay for the professional version. The idea sounds but could be done even better, e.g. the HTML export. I know it's hard to export since the data might consist of both text and graph but the decision in making each idea page an image is just too obscure. When I export the idea to HTML, I want to share with others and it's very likely that they will want to use the text. The PDF export is not much better, too. The page orientation keeps changing and get truncated most of the time. I have to go back and forth in changing the layout before a proper PDF can be generated. It has a lot of potential but I just don't get clicked with this yet. It could be my own problem, wish that I could get accustomed to this soon and turns my investment fruitful. ;)
  • Hog Bay Notebook
    After MacJournal gone commercial, I used this in place of it. It's simple and can do the job nicely. I know they have morphed into Mori lately, I am not sure if I am ready for the new layout yet. Maybe it's a good time in forcing me in phasing out the old version.
  • LaunchBar
    Apart from OmniGraffle, this is another tools that I feel my investment worth every penny! I am a notebook user and this tools allows me to focus my work on my keyboard, be it opening an app, dropping files into an app or even opening an URL. I can do it all with combination of keystrokes. It's resemble to Spotlight somehow but it's only a skin deep level comparison. Spotlight is SLOW and cannot do many of the thing I mentioned. Get this, or QuickSilver if you want a free alternative.
  • Pzizz
    I have an habit in taking a nap after lunch. I have heard about this apps before but again, the high price tag driven me away. I got a free copy from MDA sometimes ago and I find the Energizer Nap works quite well. After that, I pay up for the sleep module and the MDA offer on the upcoming version. I am now using it almost daily and on Sunday night when I find it uneasy to relax and sleep.
  • SplashID Desktop
    I have many serial number to keep track of, as well as login ID, this apps helps me to keep track of them nicely. Last thing I've heard from them is a version of Symbian OS. I have yet to check it out and it will be great if I can use it on my M600i.


Socializing



  • Adium
    Instant Messaging! Something I need to use both at work and home, with my colleagues, or overseas friend. Like many of you, I have identity for ICQ, MSN, Yahoo ... and it will be tiring if I need individual client for each of them. And with Adium, I can use them all at once, in styles! If I need to pick a top free app for Mac, this one can easily find it's place.
  • Firefox
    Safari is good, but it is still not a dominant player, in the Web 2.0 arena. Many of the features are not being supported and a second browser is always nice to be on hand.
  • iWeb
    How many photo gallery software has been released? But not until now, we have something so nicely integrated! Importing your photo into iPhoto for organization and then putting them up as a gallery with iWeb. The templates are gorgeous and the limitation they impose results in a very easy to use software. Are there downside? Yes, of course! It's SLOW! I don't know why it takes so long in doing action like adding a new blog, inserting a new image.
  • Mail
    Using mail is a joy, most of the time, it's intuitive and conversation highlighting is something very useful. So, when will be the time that I feel frustrated? It is when an email fails to get downloaded or somehow they can't render the email into readable text. But it's rare.
  • MarsEdit
    A simple (or too simple) blogging editor, it does the job alright and allowing me to blog offline is a big plus.
  • NetNewsWire
    RSS feed reader. I can organize the feed that I feel interested in nicely and have them synchronized to their server. So that I can get the same set of feeds on every machine. The built-in tabbed browser is a nice touch.
  • Thunderbird
    You may be wondering why I need a second email client. Well, I prefer to split my office email from my personal email. I used Entourage for about a year but given up lately. I don't know why it keeps telling me it cannot get the lock of my mail box (an IMAP account).


Software Development



  • Chmox
    CHM reader.
  • DbVisualizer
    This java based application enable the user to hook up to any database server, as long as a proper JDBC driver is provided. SQL statement execution, a spreadsheet like data browsing and editing. A very useful application for anyone that needs to deal with databaases.
  • Eclipse
    The java IDE, it's very common in the office. But at one point, I have selected to use Netbeans instead since it is more responsive. For the new mbp, I haven't decided which one to go yet.
  • iTerm
    Terminal, terminal, terminal. I used this almost daily and the tabbed shell support is one thing I cannot miss! But are there an UB version available?
  • TextMate
    I first heard about the apps from the Ruby guy and I keep wondering why do I want to pay for a text editor when I can find a free one (TextWrangler, Smultron, etc). Upon testing it out and enjoyed the feature of tabbed support, project tree and auto completion (sort of, like bracket closing upon opening), I feel the power of this editor. One interesting side note, when TextWrangler was still in the V1 phase, I have contacted the developer and tell them how much it means in supporting tabbed editor. But they reply frankly that no one would want this feature ... but see what do they do now. ;)
  • Transmit
    FTP is dated, but SFTP is not! Together with the support of WebDAV makes this a very useful application. Not to mention the integration with editor like Textmate which enables me to do updating on the fly without hassle!
  • X11
    OK, this is not really an application. But I do need this to install many thing like Fink, FreeNX Client.
  • zsCompare Lite
    One thing I still miss from the world of Windows is ViceVersa - a very nicely developed folder comparison application. zsCompare is a very closed alternative but still missed little thing like easy copying of the highlighted files to alternative location, exception by wildcard/regular expression. Anyway, it's better than having no choices.


System Utilities



  • ChronoSync
    I use this to syncrhonize the folders between my macs (ah, can't wait for Portal!) but I find it is not working as much as I desire. The file diff functionality for 2 way synchornization is far from satisfaction, so I haven't used it for much now.
  • Cocktail
    Ah, everyone wants a healthy mac, I will run the cron job and fix permission when I remember. I have once setup the schedule thing but I found my using pattern is a bit hard to get a proper schedule from working.
  • Split & Concat
    I am a newsgroup guy and I always got a bunch of files segment. This little gem helps me to join them back together into one piece.
  • Stuffit (Deluxe?Expander?)
    I have been using it since version 4 or 4.5? But now, I am uncertain if I still need to Deluxe version. The only thing I miss is the short cut (cmd-u) to expand files, and also to package files from the context menu. Give me some more time to decide if it worth the US$29.99 for version 11 upgrade.
  • SuperDuper!
    Backup, backup. I was once a user of Retrospect but the time it takes to backup my folders renders me from doing it frequent enough, which also results in having an aged backup. Since I got SuperDuper, I am doing much more frequent and I feel secure. :)
  • UnRarX
    RAR is nice, I even have WinRAR registered. This tools ease the pain to unrar file segments from commandline.


Update (Nov 7, 2006) : Turns out I have some apps missed mentioning.

  • xScope
    It's a suite of tools especially useful for web page creation, on screen ruler, browser sizes.
  • Unison
    I like newsgroup and Unison is king in managing all the content. The binary post manipulation is especially good, it can gather all the segement and joint as a complete file to ease the download.
Sunday
Oct012006

Tools for PHP obfuscation

We have developed a PHP application and is about to be released. And we want to obfuscate our PHP source before selling it, thus, I have evaluated different product that aimed in performing this kind of activity, I have selected to check out the following products.

  • ByteRun Protector for PHP
  • PHP Thicket Obfuscator
  • PHP Encoder

ByteRun Protector for PHP


Encoding process


ByteRun Protector for PHP is first mentioned in PHPArch, a nice review is given and steps by steps procedure in illustrating on how PHP codes can be encoded are shown. It has provided a windows only GUI interface for the user to select the projects folder and where the encoded file should put into.

The encoding comes with 3 level of security and only the PHP encoded in level “weak” can be executed with the original loader. The rest of the 2 can only operate under the loader provided. The encoding process is painless and you can encode the script with different parameter, such as expiration date for execution and domain checking. All these configuration can be saved as a “project” and you can execute individual project at anytime, to ensure the deliverable will always be encoded under the same setting.

Deployment


There are very little documentaion on how the deployment should be done, upon copying the encoded scripts to the execution platform, I have added the corresponding extension as instructed and upon execution, segmentation fault is resulted.

I have sent an email to the support but no reply from them so far. The only help I can help is a single page of html indiciating I should make sure the loader is properly loaded but it just doesn’t seems to work.

PHP Thicket Obfuscator


I have high hope on this product as they critized heavily on competiting product like those by Zend, also, they declare the PHP is obfuscated (note the different between this and encoding) and could not be reverse engineered by any decompiler available. They even claimed that, the obfuscated PHP scripts can be executed in regular loader, no customized loader will be needed.

Encoding process


The encoding process is performed in command prompt, there is a bunch of argument one can (or has to) pass into the encoding command. You have to specify which of the file (or files you listed in a project file) together with what do you want to do with it, to ease the customization, a very primitive has been provided for the user to create the project file. The building process is scriptable and can easily be merged into the building process.

I have spent hours trying to figuring out on how could I obfuscate my code to no avail, maybe I am too old in typing command? The only documents I got is some html pages, which resemble very closely to a typical “how-to” document, i.e. with a lot of word but you cannot easily follow through. I have finally given up and moved on to the next product.

PHP Encoder


Encoding process


The trial version of PHP Encoder from ionCube contains a command-line encoder (again?!), the loader and a user guide (finally!). I have followed through the user guide, and fires up the encoder (they have 2 encoders, for PHP4 and PHP5 respectively) which I only need to specify the source and output folder location.

The product has 3 different level which differs in function, like the Pro version allows the generation of time limiting license while the Cerberus version can limit the execution of the script to a certain MAC address only.

Like PHP Thicket Obfuscator, the command line execution allow us to integrate the encoding process easily into our build process. The encoder can execute on various platform like linux and windows but the licesne will be bound to a particular MAC address.

Deployment


I have copied the whole set of encoded PHP, as well as those provided by the program for loader verification to my testing machine. I fired up the testing script and it shows the steps that I need to take in order to have my encoded script to operate properly.

I have modified the php.ini as instructed, and copied the loader to a particular location and reload the testing script. It reports I am fine and then, I moved on to check my program.

Ta-da, everything just works!

I logged in and start to wander around, every functions just work like before. Then, I opened the encoded script in text editor and noticed nothing that I can understand. :)

My decision is very apparent, I would propose to use ionCube PHP Encoder for our project.
Page 1 ... 4 5 6 7 8