Portfolior

Portfolior, eh!?

Portfolior is the WordPress theme created for the presentation I am giving/gave at the Winnipeg Code Camp 2010.

The word “portfolior” is a system-ization of the word portfolio. Another system-ization example would be “reporty”.

The term system-ization represents efforts of (non)creative programmers to come up with a good system name, so to keep the meaning of what the system does, they choose the most appropriate word, and then try to make it sound like a machine that would do the task the system does.

What a rant!

Secret Handshake

I had fun at the Secret Handshake meetup last night. It was great to meet some great young people working in different professions.

I met some Rails Web developers: @marcjean, @gmarik, @ssoroka

Some network security experts: @ron_bowes, @xorrbit

Some designers: @toderash, @timder, @instant_noodles (instantnoodles.ca)

SEO/SM: @thewebgrrl (who I met at the Winnipeg WordPress meetup), @steveosnyder

And some other people, including @TishTishTish, @visuallizard, @4letterw0rd and others.

Notable quotes:

“Vim is better than emacs” – @marcjean
“We could make it into a framework that people can extend and use however they want” – @ssoroka

Best business card: @toderash with Strategic Intuition. An oversized piece of paper, with perforations to tear out the business card (But beware, the small print below the perforation says: “Tear here to limit thinking”). It can stand up, and be used like a table name tag.

I had a little bit of trouble finding the place, I think mostly because I did not have my glasses on, so I could not read their sign, since I did go by the place twice before I finally entered it the third time.

New Version of the ProjectPier Project Management Web Application

I’ve been using the Basecamp project management web app at work for a while, and although I like certain features, I do not want to use that for my freelance work. I mostly do not want to use it because there is an excellent alternative that is very close to Basecamp in it’s functionality: ProjectPier, which presents a long-awaited opportunity for me to work on the code of an Open Source project.

The excellent PHP project management web application ProjectPier saw a new release, version 0.8.6, on December 31st, 2010. There has been a great number of new features added, and now the system is even more like Basecamp.

I’ve contacted the lead developer, and he is interested in learning more about me, and collaborating. The features I am currently most interested in adding are first the things that it does not have and basecamp does. I expect they will all be done in the theme. I plan to then move on to adding some features that I would like to have in a project management tool that we use at Canada’s Web Shop, which will be additions that will require more extensive work, up to and including additions to the database schema.

Should be fun!

New Project Management Tool for my Freelance Work

Bigger Playground for my Website Building Projects

I’ve recently moved my domain, bernardic.ca, to Network Redux web hosting servers. Chris Lowry originally registered the domain for me, in return for some advice I gave him and out of the goodness of his heart. The network redux account is provided by Mark Johnston for free. Mark is my friend and mentor who I met at a call centre I previously worked at. The new hosting allows for more websites to be hosted, so I installed a project management web app written in PHP, called Project Pier.

Professional Project Management Tool

This app provides me with a way to enter projects I am working on, enter associated tasks, and indicate when the tasks have been completed. I can create accounts for clients, so they can keep up to date with the status of the project, add new tasks, and share files. I hope this will improve the communication, as well as act as a reminder of what is left to be done, and it should work well as a central repository of information and files related to a particular project. It is fairly easy to install and use, and since it is written in PHP, I will probably tweak it to my need, and contribute bug fixes & feature enhancements back to the project.

Hello, CentOS

Recently I installed CentOS using a USB Stick on my laptop, and blogged about it.

I am currently using CentOS, and it is a fairly good experience, although I am still not able to connect with wireless, although it is almost set up correctly (I even had it going for an hour or so, then rebooted 🙂

Anyway, I am glad for the opportunity to learn to use the RedHat set of administration tools, and switch distros for a bit.

First Blog Post at Canada’s Web Shop

My new employer, Canada’s Web Shop, encourages its employees to blog and tweet through the company’s blog and twitter accounts. They encourage everyone to tweet twice a week, and we take turns blogging weekly. Some people tweet daily, and blog once each week. There is an opening for another weekly blogger, since an employee who was blogging weekly left recently. Is this a good opportunity for me?

Recently, it was my turn to blog, and I wrote an article about PHP development support tools that I like to use.

Mai V2

Mai decided to refresh the look of her portfolio site, and created another clean and crisp design, ready to be implemented into her website.

Mai is a visual designer originally from Japan, currently living in the U.S.A. We met through ProgrammerMeetDesigner.com

I’ve created a WordPress-based site and developed a WordPress theme based on the PSDs she provided.

Technologies used:  PHP, HTML, CSS, JavaScript, jQuery, MySQL, WordPress.

Wordpress theme developed for MaiKSDesign.com
Wordpress theme developed for MaiKSDesign.com

oDesk

I recently discovered odesk, an online marketplace website, and joined it. The thing I like the most about it currently is the test-taking feature.

You can take tests for knowledge within different areas of Web development, and once you are done, your profile lists that you’ve completed the test, what score you achieved, etc. They even give you badges to put on your website, and they link to the oDesk profile page:

oDesk Certified CSS 2.0 Designer
oDesk Certified SQL Database Administrator
oDesk Certified PHP5 Developer
oDesk Certified Advanced PHP Developer
oDesk Certified HTML 4.01 Designer
oDesk Certified jQuery Professional
oDesk Certified LAMP Developer
oDesk Certified YAML Professional
oDesk Certified XHTML 1.0 Designer
oDesk Certified TCP/IP Consultant
oDesk Certified DHTML Developer
oDesk Certified AJAX Developer
oDesk Certified WordPress Expert
oDesk Certified Twitter Programmer
oDesk Certified Drupal Web programmer

I can write, too:
oDesk Certified English Writer
oDesk Certified English Spelling (U.S. Version) Professional
oDesk Certified English (Sentence Structure) Expert
oDesk Certified Resume Writer

A writing writer! 😀 It’s meant to be Resume Writer.

Refactoring PHP

Here are some common opportunities for improving the maintainability of code through refactoring that I find when reading code.

  1. Replace Duplicated HTML with Iterating Over an Array

    The purpose of most PHP code is to output HTML that the web server will send back to the browser. If you have a table that has 20 rows, and all those rows have the same structure, but the data in each row is different, you could write it 2 ways:

    1. Duplicated HTML

           <tr>
             <td align="center" valign="middle" class="messageFormTd3">2010-05-04</td>
             <td align="center" valign="middle" class="messageFormTd3">Copenhagen</td>
             <td align="left" valign="top" class="messageFormTd3">City Hall</td>
             <td align="center" class="messageFormTd5">10:15</td>
           </tr>
           <tr>
             <td align="center" valign="middle" class="messageFormTd3">2010-05-02</td>
             <td align="center" valign="middle" class="messageFormTd3">Zagreb</td>
             <td align="left" valign="top" class="messageFormTd3">Main Square</td>
             <td align="center" class="messageFormTd5">12:30</td>
           </tr>
    2. Iterating Over an Array

                 <?php foreach (array(
                   array('date' => '2010-05-04', 'city' => 'Copenhagen', 'venue' => 'City Hall', 'time' => '10:15'),
                   array('date' => '2010-05-02', 'city' => 'Zagreb', 'venue' => 'Main Square', 'time' => '12:30'),
                 ) as $event) { ?>
                 <tr>
                   <td align="center" valign="middle" class="messageFormTd3"><?php echo $event['date'] ?></td>
                   <td align="center" valign="middle" class="messageFormTd3"><?php echo $event['city'] ?></td>
                   <td align="left" valign="top" class="messageFormTd3"><?php echo $event['venue'] ?></td>
                   <td align="center" class="messageFormTd5"><?php echo $event['time'] ?></td>
                 </tr>
                 <?php } ?>

Hello World – First Post

Hello world!

I am really excited to be writing my first blog post as part of setting up my online presence at bernardic.ca.

Since I work as a programmer, and have a Bachelors degree in Computer Scrience, I think it would be good to start with a hello world. Here it is in all the programming languages I use or have used. The constraint is of course that I don’t look it up on the Web or in other people’s source code, but rather either go by memory, or memory plus the help of a compiler/interpreter:

PHP

<?= 'Hello World!'?>

Ruby

puts 'Hello world!'

Python

print 'Hello world!n'

Java

public class Hello {
  public static void main(String[] args){
    System.out.println("Hello world!");
  }
}

LISP

(print "Hello, World!")

Perl

print "Hello World!n"

C

#include <stdio.h>
int main() {
  printf("Hello World!n");
}

bash

echo 'Hello World!'

Javascript

alert("Hello World!");

or

window.onload = function () { document.write("Hello World!"); }

C#

using System;
public class Hello {
 public static void Main() {
    Console.WriteLine("Hello World!");
 }
}

There it is. I also tried C++, but could not figure out the whole stdout << “Hello World!”, or however it would actually go. 🙂 Happy Coding!