Programming, Web Development

I've been coding since I was 9 years old. I guess that about sums it up. =) In this page I'm going to add some random pieces and bits of info about anything that has to do with both me and Programming/Web-Dev.

You can check relevant [tagged] posts in my blog by clicking here for programming, and here for web-dev.

The major part of my coding related resources and material repository however, is [and will be] on Verse. Some of the links below will take you to the relevant Verse pages for each topic.

- Topics: Languages| Kool Stuff | Java | OpenID | dotMobi Development | [More to come soon]


- Languages

+ Programming
- Smalltalk
- F#
- D
- C
- Haskell
- Assembly  

[The rest is underconstruction for now...]


- Kool Stuff

- Java

eBook: Thinking In Java 3rd Edition
[HTML, Read Online]
[HTML, .rar Archive]
[Additional Code Collection, .rar Archive]



Favorite IDEs of the past: Forte For Java, BlueJ, IBM VisualAge For Java, Eclipse

Current IDE: IntelliJ IDEA [I love this!]

So, what's wrong with Eclipse?: Noting really! I like Eclipse, it's a cool environment and I'm still using it for various purposes. The only reason I started looking for something new [which led to using IntelliJ IDEA], was obviously the Swing issues. Eclipse is a very smooth IDE as long as you don't want to use the Swing GUI widgets. The moment you do, all hell breaks loose. Well I know, I know that there are tons of discussions and tutorials as to how to use Swing on the side of Eclipse's SWT, but it simply doesn't work as well it should. SWT and Swing sing very different songs, and getting them to communicate is not fun. And well, I use a lot of Swing specially for my current projects. For some more detailed info, visit this one.


- OpenID

A few weeks ago I set up my own OpenID server and I'm currently using as my openID. Since then I've been asked by a few visitors to explain how the whole thing works, so I decided to add a short explanation here.
If you're wondering what OpenID is, or what it can do for you, have a look at for some useful info. The basic idea is that you  create a single digital identity once, and you will use that identity to log in to all sorts of websites and online service, eliminating the need to create a username and a password [and filling in the profile] in every website. The OpenID is a unique URL, which is provided to you by your provider of choice. There are tons of OpenID providers out there, and the best of them are listed in the OpenID website. It is also the case that if you have a blog through one of the current popular blog hosts, you already have an OpenID [your blog URL]. I'm not going to go more into the details of that here, as all about OpenID has already been explained thoroughly in a good number of websites. Here I'm just going to point out a few important things that I figured out, while trying to set up my own server.
A long while ago I created an OpenID through Verisign, which I didn't use very much because 1. Not thaaaat many websites were OpenID enabled at that point, and 2. I didn't like the URL. If it's my ID, then I would like to have my own domain name used, not the provider's domain name. I would also like it to point to my current biggest online profile, my website, and not some profile page on the provider's website. So, if you'd like to use your own website address or blog address as your OpenID, here's what you need to do. It's called delegation, and it's pretty simple. After signing up for your openID, you have to add these lines to the header of your webpage, of course with your own OpenID instead of mine, and the server address of your provider, which is always available in their website.

That's it, now you can use your webpage's URL as your OpenID. But of course it gets a little bit more complicated if like me, you don't like to sign up for an OpenID with a provider either, and you like to have your own OpenID server. If that's the case then you should first have a look at this page. This page is currently known as the best reference for the topic. There you can get some ideas as to what you need to do, but then it gets a bit confusing because certain small points have either not been mentioned, or they've been mentioned a little late, because that article was originally written for the older version of phpMyID. So here's a very general and simplified version of the steps that you actually need to take now:

- Download phpMyID [this copy is v-0.8]

- Upload it to your server, read the included "README" file and configure the MyID.config.php file exactly as explained in the README.

- You can also download MD5.exe from here. It's the MD5 hashing tool. [When you read the README file, you'll know why you need this.]

- Now you have to set up the delegation. You can delegate from whatever website you like, you just have to add those lines to your page header again. It's been said that in this version of phpMyID the server and delegate URLs have to be exactly the same, EXCEPT [and this is very important], if you have renamed your MyID.config.php to index.php to shorten the URL, you need to include the index.php in your delegate URL, otherwise it's not going to work. So although the URLs are supposed to be the same, one of them will have the index.php at the end, and one won't. Like the below example. Just change my URLs with your own.

eBook: Get Ready for OpenID by Rafeeq Ur Rahman [pdf]

If you'd like to learn a bit more about OpenID and the role it can play in different fields, check this book out.




- dotMobi Development

eBook: Mobile Web Developer's Guide [PDF]

Well, the whole dotMobi idea was interesting to me since the first moment I heard about it. Although putting together a .Mobi is probably the simplest thing in the world to do, but you still have to pay close attention to the rules and guides of it, as .Mobi was created for it's own very special purpose of showing up nicely on your mobile device. Recently I received a lot of emails with questions as to how it's supposed to be done. So I'm posting the eBook above, which can answer all the questions. Also, visit the dotMobi website, they have the emulators for different mobile systems so you can see how your .Mobi looks like on a mobile device. You can also see my if you need an example.