Wednesday, August 16, 2006

Hylafax protocol experimentation ended

I finally wrote a kind of middleware that sits between a web-based procurement system (written in PHP) and Hylafax server. Among other things that the procurement system does is mass faxing to various vendors - in this case up to a few hundred vendors a day.

My initial test went pretty smooth - well, a bit of hiccup though. Few fax machines apparently received the distorted document due to some unknown reasons. I'm still investigating. Apart from that I would say the prototype was a success, able to handle hundreds of documents to fax simultaneously. The decision to do the communication part asynchronously paid off - no noticeable load on the server which runs the middleware.

So anybody interested in integrating your webbased system with Hylafax? :)

Wednesday, August 09, 2006

Hylafax protocol: Administrative function

Today while testing bulk faxing, I encountered a failure due to blacklisted number.

Is there a way, or rather a protocol verb which I can use to query the Hylafax server for sending modem command - e.g. to check modem status or to reset modem blacklisted number

Tuesday, August 01, 2006

Understanding Hylafax protocol

It's been a while since my last blog post. I've been kept busy a number of things - mainly at work.

OK, so I've learnt one or two things since then. I've managed to build a prototype Hylafax client - and yes - it's making use of asynchronous communication mechanism. The prototype currently able to send a fax job and query the status of a job. The code right now is rather crude. The next course of action is make some administrative query. I just hope I have the spare time for this :)

Friday, June 30, 2006

Hylafax protocol prototype update

Basic login mechanism is now working. All I did was to follow the same way any FTP client handles login as noted by Bernstein here. Next would be testing to login as admin.

Tuesday, June 27, 2006

Hylafax protocol prototype

This is an update of the previous post. For the prototype, I'll just focused on 3 things:

  1. Able to login, both as users and admin
  2. Able to post fax job
  3. Able to query the fax server the status of fax job

I've played around with asyncore/asynchat and looks that this is a feasible project.

Monday, June 26, 2006

The new Hylafax protocol adventure begins

I've started my little learning project - writing a prototype program that speaks Hylafax protocol in Python. I also found Pyla, a Hylafax client written in Python. Pyla make use of ftplib module that comes with Python distribution - a smart move for not re-inventing the wheel. But I want to re-invent the wheel in order to learn something. So I'll be a little bit more adventurous - instead of using blocking socket like Pyla, I'll go for non-blocking asynchronous communication. Two asynchronous communication framework came to mind - Twisted and asyncore/asynchat. Twisted is sexy, but I guess I'll go with asyncore/asynchat for the sake of learning.

Wednesday, June 14, 2006

Another reminder

I know a mental know will not last long, that's why I blog this kind of thing :)

Please be reminded to check out Bazaar-NG - a next generation distributed version control system. I think I might have one or two projects which is suitable for using distributed version control system. Furthermore, this one is written in Python and still under active development. This could be a nice alternative to centralized version control system that I'm used to - CVS and SVN.

Tuesday, June 13, 2006

Hylafax protocol for Python

A reminder for myself to investigate about Hylafax protocol. All I know right now, the new Hylafax protocol is a modified FTP protocol. When I browse through the hfaxd code (it's written in C++), I think writing a Hylafax protocol under Python is acheivable.

Monday, June 12, 2006

FIFA World Cup - got time to blog?

I haven't been able to find a time to blog - all due to FIFA World Cup. Below are my thoughts of the current state of the competition:
  1. Most of the seeded teams which have played produced a sub-standard performance.
  2. Many of the teams which were expected to lose to the seeded teams fought in a spirited manner and played extremely well.
After 8 matches, the underdogs were obviously well prepared. They did their homework well. They played well as a team. Many of the players were very good at ball control.

So, what happened to the seeded teams? Over confidence? Ego - thinking that they're star players which make them unable to play as a team? Poorly prepared? Or all the above?

Friday, June 09, 2006

Open Source: Beyond Software

Open Source is not exclusive to software, or in the broader sense tech domain - yes, that's right. Newsforge reported about a project called Free Penguin Project that produced sewing pattern to make a soft toy of the cuddly little penguin - Tux.

Another thing to do beside hacking the codes - sew!

Thursday, June 08, 2006

My little rant on Python

Today I thought to myself, why not try to play around with SysV shared memory and semaphore under Python. Then, to my surprise, this time the battery is not included. Yes, there is no module that come with standard Python which offer this facility. After painstakingly Google around, I found 2 modules which provide a mechanism to this IPC - but I'm not too convinced with these 2 modules. I guess I need to dig into the C codes of these external modules to boost my confidence level. Till then, I'd stick to Unix domain socket and pipe for my IPC under Python.

Tuesday, June 06, 2006

IPv6 has finally come

Today, the 6th day of June of the year 2006 - or 666 if you like to dramatize a little bit - is the day 6Bone, the experimental IPV6 netwrok will be shut down. Now IPv6 comes to a stage of deployment to the masses.

This is a wake up call for me to ensure that all the boxens I'm using and their corresponding network apps support IPv6. With this, comes a task of learning how to use IPv6 and its tips-and-tricks. Bye-bye 6Bone, Welcome IPv6.

Monday, June 05, 2006

2 weeks full of events

A couple of updates.

First, ITTutor was defaced on 31 May 2006 and up till now is still closed. Apparently the Admin is taking the opportunity, while fixing the defaced page(s), to do some upgrade works.

Secondly, the Klang Valley in Malaysia was shocked by a landslide which claimed 4 lives. A series of finger-pointing trying to find the fault followed right after. The local authority, however, has the lion share for blames - due to repeated complaint by the affected residences months before the incident happend.

Next news, I still couldn't find an SSL library for Python which is easy to use and less confusing for newbies like me. The existing libraries is either too complex for newbies or simply out of date with the current C version.

Finally, the talk in the office is to integrate the procurement system with the fax server, which is running Hylafax. It is very likely I'll be assigned to figure out how to do it.

Friday, June 02, 2006

Managing user account using OpenLDAP

IBM developerWorks features a nice article on implementing a centralize user management using OpenLDAP. Although it's Red Hat specifics, but most of the steps described also applicable to other Linux distributions. I might even try to test the steps in the article myself when I have a free time - may be after the FIFA World Cup is over :)

Thursday, June 01, 2006

The first day of June 2006

A very interesting day.

Today marks the month of June 2006, the month of FIFA World Cup. Along with it come plenty of sleepless night - since all the live telecast would be in the early morning in Malaysia.

Also a very interesting start:
Linux.com featured 2 nice articles on GNU grep and Emacs tips.
Newsforge brought an article on OCSNG - which could be a nice complement to WPKG I'm currently evaluating.

Wednesday, May 31, 2006

Design pattern - is it for real?

Today I read a book on design pattern - after hearing about it for quite sometimes. A lot of good and bad things have been said about design pattern. I guess I have to experience it myself before making any judgement. I'm quite sure design pattern is not the holy grail to all programming problems. But with a little bit of effort in understading when to use and when not to use, design pattern could probably be useful.

Monday, May 29, 2006

Passed another 2 tests at Brain Games

I took another 2 tests namely, HTML 3.2 and Linux Administration (General) today and passed both. As for the Linux test there were a number of questions on NFS, a subject which I'm not really fond of. I just hope I could sit for a couple more tests before 31 May.

My transcript is viewable at http://www.brainbench.com/transcript.jsp?pid=873436

Sunday, May 28, 2006

Logic

Logic is, at best, correct but not always the truth.

Friday, May 26, 2006

Rise in electricity tariff in Malaysia

Two days ago Malaysian government announced a hike in electricity tariff commencing in June 2006. The government also claimed that the price increase will not affect approximately 3 millions. I didn't quite understand by that statement though but I guess this got to do with the direct electricity bill. The real concern with this price hike is whether the price other goods will also go up as well - just like during the incident the fuel price increase. Personally, I feel the likelihood is high based on historical patterns. How this will have any impact on common people like you and I remain to be seen.

Thursday, May 25, 2006

Learn to program in ten years

The first time I read Peter Norvig's essay titled Teach Yourself Programming in Ten Years, I don't give much thought about it. Today, I've re-read and started to ponder my own progress over the years in achieving hacker's enlightenment.

The one that struck me was the similarity in my own experience in attempting to learn and grasp what I've learn. Like him, I've read numerous books, howtos, FAQ and other documents, yet I still feel like a novice. So what really went wrong? Why I'm still feel I'm at the same level as I was 2 or 3 years ago? Well, Peter Norvig certainly had given all the pointers but I failed to recognize them 2 years ago.

However, in my effort to learn, it's better late than never. The pointers he had laid out in the essay must be taken seriously.

Wednesday, May 24, 2006

Life of a programmer

7 bug reports and 11 feature requests: That will keep me busy at least for the next 2 weeks.

I know this basically translates as: no Math challenge; no exploring Google Pages and updating my little homepage; no other activities that require rigorous thinking.

Tuesday, May 23, 2006

Python 1.5 Certification Test at Brain Bench

I took the Python 1.5 test for Brain Games last night and passed. As a token of bragging the transcript is viewable at http://www.brainbench.com/transcript.jsp?pid=873436. To be honest, I never consider my Python skill as good. I only started to seriously code in Python for the past 2 years - and still learning.

Monday, May 22, 2006

PHP Certification Test at Brain Bench

I've passed my first test for the Brain Games - and it's the PHP4 Certification. The test was not that hard - I even managed to juggle between doing the test and doing something else (you can do the same provided you know PHP well enough). There are few questions asking about some build-in functions which I've used once or twice and couldn't seem to recall how to properly used them. Those are the question I flunked.

As my right to brag for passing the test: you can view my transcript at Brain Bench. Just fill in my transcript id 873436.

Free Certifications

I've just learnt that Brain Bench is conducting another round of Bench Games - what this means is that all certifications test will be free - starting from 15 May 2006 till 31 May 2006. Silly me for ignoring the offer email for too long.

But I guess I should try to take advantange of this offer. May be learn a few thing along the way. Certification in Linux, Bash Shell, Python, PHP, (X)HTML and CSS come to mind as top in my priority list. However I better have a look at the whole list of certifications over there - which was claimed to be more that 500 certification tests!

Saturday, May 20, 2006

Elementary school placement examination

Yes! You heard it right. My daughter just finished the placement examination to enter elementary school. Out of 352 candidates, only 185 will be chosen for the 2007 academic session. She was quizzed on 8 subjects over 2 hours - with no break. Personally I think it's a little bit too much for a 6-year old. Her result is expected to be out on 29 May 2006. Well, I guess it's tougher nowadays to get a good education.

Friday, May 19, 2006

Personal website

I have just created an account with Google Page Creator for my personal website. It's accessible at eafaisal.googlepages.com. Mind you the content is still alpha :)
I guess for the next couple of weeks I'll also be busy exploring Google Page Creator.

Mathematical puzzles

Just over two weeks ago, a post at IT Tutor attracted my attention. It was about Project Euler at mathschallege.net. To quote from Project Euler introductory page:
Project Euler is a series of challenging mathematical/computer programming problems that will require more than just mathematical insights to solve. Although mathematics will help you arrive at elegant and efficient methods, the use of a computer and programming skills will be required to solve most problems. Please be warned that the problems are challenging and you are unlikely to make much progress if you have no knowledge of programming. Having said that, this is both the perfect environment and opportunity to learn new techniques and refine your programming skills.
At first I wasn't quite enthusiatic about it. But after solving 2 problems I thought, "Wow! I could learn a couple of things if I continue solving the given maths problems". To date, I've solved 21 problems using Python as my programming language of choice. There are a lot of difficult maths questions which I've yet to figure out how to solve - which I believe require a good understanding of mathematics fundamentals - and my last encounter of mathematics academically was during my schooling days :)

Wednesday, May 17, 2006

A few subtle fixes

Instead of laboriously reading Help, I decided to just quickly scanned certain topics to make a few quick fixes.

Below is my Changelog:

  • Changed NavBar to use silver theme
  • Fixed the links - no more Edit Me
  • Minor changes in few setting options

For now I'm pretty OK with the new changes. Probably I'll leave the settings as they are for next 1 month or so.

Tuesday, May 16, 2006

Time to explore...

Now that I've figured out how to post, it's time for me to explore Blogger features. Probably I'll start with "Help", then browse through the knowledge base.

The first thing that needs to be resolved would be: try to comprehend what those settings mean :)

Monday, May 15, 2006

My first post

This is my first post. Ain't it something :)