Books

Monday, November 19, 2007

40 Days Already?

...cause I've been in the lab wit a pen and a pad tryin to get this d*mn label off?--Dr Dre

Can't believe i have been away for 40 days!


Blame me?I have actually been busy with school and pushing 60minuteswiththegeeks alongside. And the online spot for 60minuteswiththegeeks is not doing bad; the blog has enjoyed over 300 page views within its 30 days of existence...not bad if you ask me. And still cooking up strategies to make the blog more popular.


So that is why i have been kinda silent over here, but school will be going on break soon and sure, will have more time on my hands then to share my thoughts here...not planning on forsaking geekabyte!

Wednesday, October 10, 2007

Pictures From The Last Gig

We had our first exclusive get together this last Saturday and here are some of the pictures:
Photobucket Album

View All Pictures

Filling You In On Events


From the pictures you know we already had the first exclusive meeting of 60minuteswiththegeeks. It featured Dipo Odumosu who did a presentation on 3D art, using WINGS 3d and Blender. It was an introductory expose where dipo took the audience through the process of modeling a mug.
I also gave a very concise CorelDraw tip and rant a little bit about APTANA an IDE for web application development.
The next rendezvous will be on the 20th of October and it will feature Muyiwa Oyedemi who will talk on developing mobile applications. Visit 60minuteswiththegeeks to get latest updates.

Now What Happened on The 15th September?


We were busted by security personnels who disrupted the program claiming that we lack the appropriate permission to use the venue (BOOB) for the show. On the contrary, we had an official permit given by the Dean of faculty of science, but you know, everybody has a right to express their illogicality, and the security guys did on that day.
I won't go into details but due to the pointless obstinacy we didn't have that edition of 60minuteswiththegeeks

What About The 22nd of September?


Sure we had no disruption this time around which is evident from my previous post.

Tolu who gave a talk on that day has a post on his blog about the event. You can read it here

It has been fun and really its going to get much more exciting. Really looking forward to the next show on the 20nd

Saturday, September 22, 2007

Phew!!! Straight from 60minuteswiththegeeks

Straight from the venue, i quickly found an hotspot, hooked up my laptop to the internet and here am i; blogging about 60minuteswiththegeeks, a seminar i blogged about in a previous post...

It was really fun, and sure, you will be getting the full gist over here and also on 60minuteswiththegeeks.com But permit me, i have to run now but when i get back, I'll make the pictures plus the slides available.

I'll also give you the full lowdown of what happened on the 15th September...

Hey tolu man! Your presentation was da bomb!

i'll be back.

Thursday, September 06, 2007

60minuteswiththegeeks



They are all students of O.A.U…
They can all be described as whiz-kids…
And they have one thing in common…
Their love and adeptness with computers…
Put them in front of a PC and they can make the earthquake…
Now imagine what will happen when you have all of them together under the same roof…
... ... ...

And there go excerpts from the multimedia presentation I had for 60minuteswiththegeeks just yesterday in school…

Now you may ask: “what is this all about, what is 60minuteswiththegeeks?”

Well, it is the forum I hinted that I was working on in one of my previous post and it is about to commence…which explains the outdoor multimedia presentation in school yesterday and the other publicity materials being circulated…

So let me explain what this is all about.

I have always nurtured the idea of having a tech talk; a gathering of computer enthusiasts: web-developers, programmers, graphic artists and everything else in between coming together on a regular basis to interact, form relationships and learn from each other. I have played with this thought for a while, but now, after some series of events I just have to make things happen…

60minuteswiththegeeks is exactly such a gathering; a forum of developers; a gathering of computer enthusiasts which is going to be a fortnight event in o.a.u. Where guys meet in SpringHills (new buka) to have like say 3 hours together.

Folks like timba, ipod, tanimomo, tolu olugboji, Eddy popoola, bellers, soloz and some other great guys will be regular attendees.

But one thing though, due to the nature of the whole gig, it won’t be for the general public. You must first of all be a fellow before you can be in attendance. And one of the reasons is that I want to, as much as possible, create a close-knit of techies and one way to achieve that is to limit the people that enlist.

Another factor is the capacity of the auditorium. To have a great time together, we can’t afford to have a crowd.

So attendance will be open only to the members.

To kick-start the whole gig, and to get folks enlisted, there will be a kind of public sensitization, where we intimate the students of O.A.U. on what 60minuteswiththegeeks is all about and at the same time sign-up folks whose interest has been piqued.

This public sensitization will be coming up this month. Saturday 15th and Saturday 22nd. The venue is BOOB lecture theater and it’s going to be free of charge.

On the 15th, ipod and I are slated to talk. While 22nd will have tolu olugboji giving a talk titled:Technology in Incubation: You’ve got to Love Creating!

After these events, details and other modalities will then be made available to the members.

There you have it. Now I have to go. Have so many things I need to put in place but I'll make sure I give a blow by blow report as events unfold...

So if you are in O.A.U. I am looking forward to having you on the 15th and 22nd.

Friday, August 31, 2007

Creating Modal Dialog With Javascript

I got inspired to write this post after reading Tyler Hall's post on modal dialog over at sitening

Nowadays when a web application does not necessary have to be a case of stuffing data through the browser and shipped to the server for processing, where the clients itself becomes a more active participant in the over all application, designing the web UI sometimes calls for methodologies that erstwhile wasn’t heard of in the browser’s domain.

One of such UI design methods is the modal dialog.

Modal dialog are not new. They have been around in the UI design of desktop application for donkey years.

You most likely interacts regularly with modal dialog in your everyday use of your computer.

A modal dialog, in a desktop application is a box or message that forces you to dismiss it by interacting with its options before you can continue using any other part of the program.

Here is a screen shot of a modal dialog:


Modal dialog is one of such design elements that is finding its foray into web applications, and thanks to JavaScript, it is easily implemented in the browser.
It is also simple.

The principle behind it is this: have a DIV that initially won’t be visible; that will contain the options to be presented via the modal dialog. Then have a javascript written that will make it visible when it is required. Once it is visible, any content beneath it will be “unclickable” by the user.

The code that will implement this can be divided into three parts: The HTML, the CSS and the JAVASCRIPT

THE HTML


The button (or whatever you choose to attach the modal dialog activation unto) that will fire the javascript when clicked:

<input type='button' value='show modal dialog' onclick='overlay()' />

Then the overlay DIV which initially will be invisible:

<div id="overlay">

     <div>

           <p>You are at liberty on what to use the dialog for.</p>

          <form method=" " action=" ">

          <input type='file'/>

          <input type='submit'/>

          </form>

          Click here to [<a href='#' onclick='overlay()'>close</a>]

     </div>

</div>


THE CSS


#overlay {

     visibility: hidden;

     position: absolute;

     left: 0px;

     top: 0px;

     width:100%;

     height:100%;

     text-align:center;

     z-index: 1000;

     background-color:#eee;

     opacity: 0.8;

     filter:alpha(opacity=80);

    -moz-opacity: 0.8;

}



#overlay div {

     width:300px;

     margin: 100px auto;

     background-color: #fff;

     border:1px solid #000;

     padding:15px;

     text-align:center;

}


The first style takes care of the full screen overlay: notice the opacity styles while the second style is applied to the modal dialog.

The margin style:
margin:100px auto;
Ensures the dialog is 100px from the top and it is centralized.

THE JAVASCRIPT


function overlay()
{
xyz = document.getElementById("overlay");
xyz.style.visibility = (xyz.style.visibility == "visible") ? "hidden" : "visible";
}


Put everything together and you have your modal dialog. As you can see, the whole stuff is incredibly simple.

Here is a screen shot before the activation of the modal dialog:



And this, after the button was clicked:

Thursday, August 23, 2007

Facebook's code Leakage...




“None is safe. Repent of thine evil. The gates of heaven will be hacked next, and the blueprint to creation posted on the web.”


Isn’t that cute?

I got that from one of the comments on techchruch’s post on facebook's source code leakage.

From all indications it appears that facebook is not under any serious security threat. And the reason why we have this entire hubbub over the code spill is simply because its facebook (that’s what happens when you are that big).

Apparently the cause of the leakage isn’t due to flaws in FB’s code or it being hacked, like I was initially made to believe, but it was due to lapses on the part of their sysadmin. It was simply human error.

According to Brandee Barker of facebook :
… Some of Facebook’s source code was exposed to a small number of users due to a bug on a single server that was misconfigured and then fixed immediately. It was not a security breach and did not compromise user data in any way…


So you might want to say that there is nothing to fear right?

Sure there was no leakage of any sensitive user centric data; nonetheless this little incidence will have put a scare in quite a number of people causing them to ask the question of security; how safe are all these social networks? How safe is it to give out accurate information about oneself on social networks? How vulnerable to identity theft does one become by getting too deep into socializing via social networks?

There have being incidence of people meeting with malicious experiences via contacts with social networks. Statistic even shows that online identity theft is one the increase, according to this article, that is.

So should we eschew social networks in its entirety? I think not! There are a whole lot of benefits that can be derived from them. I guess we just need to be a little more cautious of our interaction on social networks and the amount of information about ourselves we divulge.

As a developer, I guess one should pay more attention to security issues (one aspect that is often overlooked or relegated to an after thought), and making sure applications passes through adequate development-stage testing before implementation on the production server.

Sure this might just be a trivial slip (which I think it is) but it was a costly slip.

But come to think of it, a couple of days back I wasn’t able to sign in into my new [beta] yahoo mail, I kept being served pieces of codes instead…and the same thing too happened just yesterday. I’m I the only one to have experienced this? And why don’t we have people hollering over that like they are doing facebook?

Wednesday, August 22, 2007

Where have you been?

Where have you been?
Hmm...Been here and there. Caught up with activities that made sure I was cut off blogging and the internet in general.

It first started with exams in school. After about 2weeks of trauma; I mean, 2 weeks of jerking for exams, I was left with nights full of nightmares in which the integral sign kept changing into snakes which then engage me in terrifying chase throughout the night…

Then I had to leave school and get to Ibadan after exams since brother mikolo a.k.a Michael Faborode decided to have all students vacate the school premises for the mid-semester break as if we are all boarders in a boarding school. Any way, I had no choice but to leave for Ibadan since I couldn’t get a place to lodge off campus.

Got to Ibadan, Only to have the internet connection at home expired 3 days after my arrival. My aunt who normally foots the bill is not around which left me with no one to subscribe for the next couple of months. Going to cyber cafes isn’t an option. I hate going to those centers!

So I decided to find other means of getting me busy. I got myself caught up in the preparation for a forum I will be starting in school next semester (more on this will be coming soon). Also began work on some jobs I got. I also read Isaac Asimov’s I-robot, Sydney Sheldon’s ‘the other side of mid-night’ amongst many other books; some which I didn’t finish.

I also decided to use the time to catch my trips. One thing my mind have been telling me, recurrently is that my social life is atrophying (as if I had one before), that I should try as much as possible to enjoy the moments while it lasts since I have only one shot at being young.

Well, one way my mind thinks that can be accomplished is for me to spend less time with my laptop, and more time with other Homo sapiens like myself. So I decided to heed the wise prodding of my mind.

So I decided to have a time out at the zoo with one of my girl friends who came to say hi to me from ife

Here are some of the pictures I took…

Genga: The 102 years old tortoise



Haruna's wife


Isn't that Pumbaa?...o no! its just an ordinary warthog



Just Horses.


...and our dear dumb ostrich


The lions where having lunch when we came around so i couldn't get pictures of them in their "glory".

Still talking about socializing, I also used the time to hook up with another old pal of mine from way back in secondary school. Hmm…she was glad to see me again after how many years now? And I observed that time has actually been good to her; she has grown to be an attractive lady (if you know what I mean).

So Now I’m back in school, now I’m blogging again. Although resumption isn’t till 26th of this month, I had to come back to see my professor and also to help ipod out with a project he is working on.

So I guess I can say like S Carter does: “I’m back”

Friday, June 29, 2007

My box.net Account....Now Active

I finally got around to get my box.net account active after leaving it dormant for quite a while.

I first got wind of box.net on a blog somewhere and later when i saw the sharing widget integrated on yet another blog, my interest was piqued.

So now i have some of my files already uploaded and also have the sharing widget on this blog; you can't miss it, it is on the right side just below the 'About Me' section, right on top of the 'Links' section. Right now, you will only see a Jpeg file available to be shared. Its a design i did for a friend on her birthday.

With this i would now be able to share some of my interesting stuffs...Guess i can now even start thinking of doing some graphics designing tutorials too and make them available via the widget right here on geekabyte.

Just hearing about box.net and wondering what it is? here are some interesting reads for you:
technologyevangelist
Siliconbeat
Seattletimes
Mashable
WordPress

Friday, June 22, 2007

Technology. Entertainment. Design...TED




O.k. it’s true. There are some sites you discover that makes you wonder out loud: “where the heck have I being all this while? How come I’m only just finding out?”

Ted.com is such a website that, funny enough, I just got to know about some couple of weeks back.

Now what is TED? Ted is an annual conference that used to take place only in Monterey California but now is held in other cities around the world.

It features a bunch of smart and innovative folks (also of remarkable reputation) talking about the cool stuffs that they are working on, that one day, would change the world or already is changing the world. It’s simply an event where ideas are exchanged.

To get a feel of the quality of the lectures, check out the caliber of folks that have featured on TED; people like Ngozi Okonjo-Iweala, larry & Sergey, Malcom Gladwell, Bono, Jeff Bezos, Bill Clinton, Al Gore, Jeff Hawkins, Rick Warren and the list goes on.

And at Ted.com you get to watch or download these lectures.

If you have quite an amount of bandwidth to play with, you can sit back and watch the lecture right there on line. But if you are like me, then you just download to watch.

My thanks to Neo for letting me on this site and for spending time ripping the videos off the sites. How much again did you say you have now Neo? Over 100?

Monday, June 11, 2007

Ditching Mootools For Jquery



Having arrived at the conclusion that I might have to start using a JavaScript Framework to speed up my coding time and at the same time to be more productive, the next thing was to decide which one to choose, out of the plethora of frameworks out there?

Since all I wanted was a tool kit that will make creating a web user interface a lot easier I decided to settle for something lightweight. Something not too bloated with features I will end up not using but a toolkit that makes manipulating the DOM possible with as little code as possible.

The contenders for my attention were jquery and mootools. But now, having played around with the two frameworks, it is jquery that has emerged the framework of choice.

Why I settled for Jquery? Well…

Syntax:


I personally prefer jquery’s syntax over mootools. I think it is more intuitive and leaner. The chain-ability feature of the syntax is also cool. You will easily get accustom to it if you have spent time with object oriented programming.

Selectors:


I wanted to have the DOM at my fingertips. I wanted to be able to get a hold on a node, without having to be too verbose. And this is what Jquery offers. Compared to mootools, Jquery’s Selectors makes accessing the Dom such a breeze. Borrowing syntax from CSS and Xpath you can burrow all the way down or climb all the way up the DOM with a succinct amount of code.

Community


Jquery boast of a much more vibrant community. This is evident in the abundance of plugins that has been written to extend its core functionality. The same thing can’t be said of mootools.

Adoption


Wordpress recently announced that it will be switching over to jquery. A whole lot of other people have already adopted it. So I figured out that if it is good enough for these guys then it would be good enough for me. Really adoption says a lot about a product. I can safely assume that great adoption = great product. Check out those already on Jquery.


I’m right now an advocate of Jquery. And I won’t hesitate to recommend it to anyone.

You can download it and see for yourself.

Yet Another Talking gig @ MindScape Resource Seminar

By 9.00am prompt on Saturday, 9 June, 2007, Mr. Peter Alabi the CEO of Mindscape Consulting mounted the podium at the Law Lecture Theater to give a talk on Strategy and its importance; both for personal development and also as a business tool.

Right after that, I came up and spoke about the web as a business platform: talking about the different business models that can be built on it. I talked about startups. Gave examples of successful startups and discussed some of the factors that accounts for the success of a startup. In the talk I briefly highlighted the difference in a business model built for the web and the models built for a brick and mortar enterprise.

Mr Peter Alabi came up again and concluded the seminar with a discussion on EQ ‘Emotional Intelligence Quotient’.

After that, I had exchange of pleasantries, chitchat and phone numbers with some of the attendees.

It was fun.

Thursday, May 31, 2007

Microsoft's Suing Threat



If Microsoft is facing unfavorable market trends, guess what they need do is to put on their creative hat and innovate instead of litigate as they are planning to do with their threat to "take on" free software based on uncertified allegations of patent infringement.

We know vista isn’t doing superb. We know that the desktop isn’t the gold spot it used to be; the internet is and the value resides there now. And we know that Microsoft is fighting tooth and nail plus everything else to get a share of this sumptuous market (Microsoft’s biggest acquisition ever: aQuantive, attest to this).

But putting up a fight and acting threatening is not the way to go, in fact it is a bad idea.

Microsoft needs to understand that the monopolistic era is over and acting like a bully who single-handedly snuffed Netscape out of the market won't be of much help in recent times. The landscape has changed.

Cue should be taken from a company like sun. A company that was faced with unfavorable market trends some couple of years back with the core solaris operating system. Instead of putting up a fight, threatening, fuming and bluffing (like the Redmond behemoth seems to be doing); they reevaluated their business model and reconsidered their source of value. They recreated part of their business model. In other words, they were creative.

They are now better for it today. The community behind openSolaris is growing, ODF is gaining greater adoption and Java is finding its way into almost everywhere (learnt javaONE is today’s world's largest open source developer conference).


Microsoft might just find itself dying off with this entire attitude that is pro-monopolistic and ‘anti open source’ in nature because in today’s world, the community (which open source initiative enjoys) is a major propagator of value.

Microsoft needs to take this into serious consideration.

Monday, May 21, 2007

Toggling tinyMCE



Downloaded tinyMCE (V.2.0.8) and went straight to the docs to see if or better still how I can initiate the editor instance such that it toggles on and off with the clicking of a button or another event for that matter.

After going through the docs that came with the download, learnt that the editor instance is initiated with the following codes:

tinyMCE.init({
mode : "textareas"
})


And the mode determines the method I have for calling the editor instance. So I looked further to see the different options/modes that I have. According to the docs I have just three options which are:

  • textarea: which converts all textarea elements to editors when the page loads.

  • specific_textareas: Converts all textarea elements with the ‘textarea_trigger’ attribute set to "true".

  • Exact: Converts only explicit elements, these are listed in the elements option. These elements can be any kind for example textareas or divs.


Which, apparently does not include any option for what I want to achieve; a toggle-able text editor instance. After further ransacking through the docs I realized that there was no provision for what I wanted, I decided I was left with one option; which is to tweak the codes to get what I wanted.

So I looked at the initiating code and since it’s just Javascript, I thought if I wrap it in a function and attach the function to an ‘onclick’ event then I will have achieved my aim. I was so wrong. Instead of it working I got myself a blank and frozen page each time I clicked the button.

Since this post is to show how to toggle tinyMCE with a click, and not to lament about my travails, I will save you all the unpleasant details of what I went through trying to tweak the initiation and just go straight to the point.

So how do you do it?

After my futile attempts I decided to ask around for a solution. This is when I found out that there is a fourth 'mode option' apart from the three specified in the docs. This is:

tinyMCE.init({
mode : "none"
})

It is my finding of this mode option and two other methods that solved the problem.

This is how to use the two methods in creating a toggle-able editor:

First method adds the editor instance.

tinyMCE.addMCEControl(element to be toggled, id given to the editor instance);

Where element to be toggled is the element that will be converted to the tinyMCE instance and the other parameter is the id to be given to the editor instance. This parameter is useful because it will be used in getting a handle on the editor when it is to be removed.

Second method removes the editor instance

tinyMCE.removeMCEControl(id of the editor)

Where id of the editor is used in determining the editor instance to remove and it can be returned by this method: tinyMCE.getEditorId(EditorsID) where EditorsID is the second parameter that was specified for the tinyMCE.addMCEControl() method. I.e. it is the id given to the editor.

Having seen the two methods, here is how the final offering will look like:


var tinyMCEmode = false;

function toggle(editorsId)
{
//check if there is already an instance of the editor
if (tinyMCEmode)
{
//if yes then remove it
tinyMCE.removeMCEControl(tinyMCE.getEditorId(editorsId));
//indicate that editor has been removed
tinyMCEmode = false;
}
else
{
//add the editor instance
tinyMCE.addMCEControl(document.getElementById('geekabyte'), editorsId);
//indicate that editor has been added
tinyMCEmode = true;
}
}

Where ‘geekabyte’ is the id given to the html element that will take on the editor instance. The HTML attached to the following script may look like this:

<body>
<div id='geekabyte'>
</div>
<form>
<input type='button' value='toggle' onclick='toggle("newgeekabyte")'/>
</form>
</body>

Breezing Away With Miles Davis



For the past couple of days now, I have found myself listening to Miles Davis back to back. The dude so soulfully, jazzy and smooth. I have been silently wishing for more tracks of his; and well, you know what they say about the universe responding to your wishes? I just found out my new neighbor is also a big fan of Miles, and he just happily shared with me a trailer load of tracks: more like a discography!

Well, when music so soulful, you will always want more!

And for you folks who don't know who Miles Davis was, you can read up on him here

Monday, May 14, 2007

Problems With API's

Timba has a blog post where he made mention of the unreliability of API’s, expressing his reluctance to build applications on them since most platform vendors have this obnoxious habit of not making newer versions of their API’s backward compatible; Breaking applications that already exist on older versions.

I quite agree with him. Facebook isn’t the only one guilty of this crime. Amazon and Google are other API providers who have, on the sudden release of new and backward incompatible versions of their services, caused developers to scramble to rescue their applications from the hands of vagrant APIs.

Guess we are having such scenarios due to the fact that providing API isn’t much of serious business yet and as such, platform vendors don’t take into consideration applications already built on top of their services. The maturity needed to warrant such consideration has not yet set into the service vending model. So you can have a platform vendor change the structure of their API overnight without notification, after all, you didn’t pay a dime.

Not that having a free service should authorize such thoughtless treatment on the part of those who consume them but having a paid service will do a lot in instilling a level of maturity into the model. And when we have more of API’s being pushed to market a larger service, just like Microsoft is doing with their video streaming services, we will have more stable API’s.

Generally I feel it’s pathetic and unethical for vendors to be such a pain.

Dare Obasonjo also has a blog post on this issue in which he stated that:

“One of the primary goals of a platform vendor is to ensure that the lives of developers on their platform are as easy and smooth as possible. This means releasing a new version of the platform should not cause developers who have taken a bet on the platform to have to rewrite their code.”


He then went ahead to propose guidelines that might help in preventing the issue of backward incompatibility. His post makes do for good reading.

Preaching the Gospel of Technology…




I’ve been away for a while.

Yeah after spending some period of idleness in Ibadan, I decided to move to Ife to get some work into my system. And sure, I've found myself in one activity or the other ever since i got to Ife; the talks I've being giving being inclusive.

Apart from the saddled task of designing a new look and feel for my college website, I have been present at seminars and workshops organized to sensitize youth corpers on the need to embrace Information Technology. Making them see the change information Technology has wrought and the reason to have a destructive mentality according to the words of Tom Peters in his book: Re-Imagine!

It has been a good time: enjoyed myself and enjoyed showing my audience that their jobs are at the risk of been snatched away from them, to be given to computer software or handed over to folks residing on the other side of the globe. And it has been fun getting the initial Luddite reaction which then always leads to questions on how to move up on the skill-chain or how to be the folks catching jobs been flung from the other side of the globe.

I look forward to having more of these seminars. But wait, while I was away, what was it about Microsoft buying Yahoo! And then again, what is this d*mn thing called Silverlight that folks are hollering about?

Monday, April 16, 2007

A New Voting System

Thinking about it, if really the purpose of Voting is to allow the people to choose whom they want as their leader (which I believe is the case), then I think our present voting system might not be the best approach to achieving that desired result.

Not that the present voting system is flawed or something of that nature, its just that with our present technological advancement I believe there is a much better system for distilling the leader of choice from the populace.

I was just thinking the other day; Instead of a system that operates by people casting a vote, why not have one that operates in such a way that people lists in other of preference, whom they would want as a leader. Then aggregating the entire list, the leader of choice will be determined.

I feel such a method of sampling will return a more accurate picture.

The question we should ask ourselves is this: why should the voting system be set up in such a way that it is “vote for one, eliminate the others”. What is stopping us from having a voting system that is modeled in such a way that sampling takes a preference-listing fashion?

Of course the weight of each preference will have to be different for this method to be sensible. The weight will have to be determined by some statistical principle.


I feel that with the level of sophistication we have achieved in software/computing and other technological achievement, this idea is not only visible, it an idea that we should start working towards. Nothing is stopping us from rethinking our voting system.

Let me know what you think.

Wednesday, April 11, 2007

Understanding layout with CSS

If you find yourself banging your head against the wall when using CSS, strictly for your layouts, then I can bet the London Bridge that you have not yet acquainted yourself with concepts like normal flow, box model, and how these come into play when using float and positioning.

I wasn’t able to really use CSS for layouts myself until I took some time out to try and get a handle on these concepts. Before then it was more of trial and error.

The normal flow explains the default flow (positioning) of your XHTML elements.
The Box model explains how the browser renders individual XHTML elements
While float and positioning allows you to specify the position of XHTML elements outside the normal flow.

I should be able to, one of these days, sit down and write a comprehensive tutorial on these concepts, but while I wait for that time, I suggest you rather Google the web for tutorials already out there.

Thursday, March 22, 2007

Clearing the Air

Across various blogs and with discussion amongst folks, I have been observating an assortment of arguments over Ajax and its rights to be referred to as an enduring technology. Some are like it’s the magic potion we need, some see it as just good enough while some refer to it as an error.

Well, right now I’m not interested in directly saying which point of view I feel is right or wrong, I just want to correct some misunderstanding I see often times in most of these arguments:

NO1: Ajax is not a replacement for desktop applications
, neither is it set to make them obsolete. Sure some applications will have to be redeployed as Ajax application to increase their value, but some will still remain as desktop app since there will be no need to Ajaxify them.

If it is understood that Ajax is a ‘design approach’ and that not every problem will require Ajax for its solution then we will stop regarding it as a panacea. Having applications like meebo, kiko, or utorrent as Ajax application makes perfect sense but that does not mean that every desktop application will have to be cloned into an Ajax application.

NO2: Ajax is not a replacement for our good-old web applications
I have encountered rants about Ajax as if it’s the messiah of web applications all developers have been waiting for. Well, this is expected. New and innovative technologies always enjoy tremendous amount of hype which, often times, is not equivalent to the productivity they really offer; so Ajax is just having its share of Buzz.

But it still boils down to understanding that there will be situation that will call for the Ajax approach while some won’t. I mean look at google maps, such an application, which requires an asynchronous communication between client and server may require Ajax. On the other hand it might be overkill or overzealousness to implement Ajax is some domain. The last time I checked, our good old google page still refreshes.

NO3: Ajax is not a HACK
Ajax, in some quarters, is referred to as a HACK. Wrong! Ajax is perfectly not a hack. I mean if Ajax is a hack then stuff like lamp should also belong to the hack club.

The principle of Ajax is simple. It is having different technologies, in their different domain, working together in a holistic approach: Javascript, whose domain is the browser, remains in the browser, the XMLHttpRequest which handles the asynchronous request does nothing more but that, XML or JSON, takes care of the data wrapping while PHP, Python, Java, or whatever server side language you choose handles the back end. So tell me where the hack is, in that set up?

NO4: Ajax is not overkill on the browser
I have heard the browser described as just a document rendering application and that it is eerie to use it in such a manner that Ajax suggests, that is, as a User Interface. Wrong!

Maybe some years back when the browser was just an application that parses HTML codes and displays it as directed, such a description as a document rendering application would have been apt; But not the browsers of today.

API’s like the DOM, BOM and things like plug-ins etc. which have crept into the browser over the years now makes it more than just a rendering application but could easily pass for a ‘maturing’ User Interface.

No 5: Libraries are not bad
Dojo, MochiKit, Script.aculo.us, AJASON, and the rest of them.
Having code libraries is not evil and neither is it new. Libraries have been in existence since time immemorial or what is STL to c++ and having libraries that prevents you from the hassles of writing a lot of code and at the same time taking care of problems that are peculiar to the Ajax architecture is not such a bad thing…at all.

Is YouTube Evil?



The recent $1bn threat coming on Youtube from viacom is no longer hot news.
And I am hearing that Youtube has gone on some recent video deleting binge.

I’m just crossing my fingers waiting to see where this will lead to.

Personally I think the whole 'new media'/'social-network-sharing' movement is cool. I’m not totally against it. But I think if a business model blatantly aids, copyright infringement without putting in place machinery to curtail it, then maybe such a model is evil.

I’m not hoping to see another napster episode. Instead I hope stakeholders would parley up to find mutual benefits that can be derived from sites like Youtube. Cue should be taken from the BBC-Youtube agreement .

Tuesday, February 27, 2007

Keeping the spiders off

For whatever reason you might have, you may want to prevent portions of your website from being indexed by Google or any search engine for that matter. It might be a matter of choice or maybe it makes no sense to have that portion of your site in any search engine’s database. Anyway, keeping spiders off contents of your site is something you can easily do. Here are two methods to it:

Robots.txt


First method is the robots.txt file way. The robots.txt is the first file that a search engine visits on your site. With the robots.txt file, you can instruct a search engine to index or not to index your site. Like someone aptly put it, the robots.txt file is like a snooty nightclub bouncer with a velvet rope, it decides which search engines enters your pages.

The robots.txt is just your regular text file that you will have to put in the root directory of your site. A typical one looks like this:
User-agent: googlebot

Disallow : /confidential files/

Disallow: /private directory/

Disallow: /constitution/

User-agent : *

Disallow: /cgi-scripts/


Which tells Google’s spider, googlebot, not to index the confidential files,private directory, and constitution directories. It also disallow all spiders (indicated with the wild card asterisk) from the /cgi-scriots/ directory.

It is worthy to note that compliance to the robots.txt instruction is strictly by choice and not compulsion. A search engine might decide to ignore the robots.txt file, but most renowned search engines do actually obey the robots.txt file.

Robots Meta Tag


The second method involves you putting a specific meta tag into the page you want to exclude from a search engines index. It takes the following form:

<meta name= “robots” content= “noindex, nofollow”/>

This will prevent search engine’s robots from indexing content or following links from the page.

Monday, January 22, 2007

Workshop at EMDI



Thursday the 18th saw me at Akure, where I was invited to teach on web designing, alongside kazar, at a workshop organized by EMDI.

It was an eventful experience for me since that will be the first time I will be visiting Akure.

I talked on the history of HTML and how it evolved to XHTML and where CSS fits in the picture. I made mention of the need for standardization and why we have bodies like W3C.

I later introduced the class to the vocabulary of HTML explaining the concept of tagging letting them write tags using MSnotepad. And later I introduced them to Dreamweaver, their excitement was another factor that made the whole workshop a rewarding experience for me.

The workshop’s tight schedule didn’t allow me time away for some sight seeing and picture taking; something I would have love to do.

It was fun and I even got to learn some new nifty tricks I could do with Dreamweaver while preparing for the workshop.

Friday, January 12, 2007

Introducing iphone


Imagine a smart phone that doesn’t have key pads…
But how do you compose your Sms then?
You punch on the screen’s virtual key pad.

Imagine a phone where you can pan content like you do your pdf documents…

Imagine a phone that allows you to maximize your view of an image on a web page by just finger clicking it…

Imagine a phone whose display turns vertical if the phone is held vertical and if the phone is held horizontal, your display adjusts accordingly…

These are just part of the features of Apple’s new product called iphone. A smart phone that introducing a lot of innovation in the area of user-interface and usability.

What exactly is the iphone? Apple’s site says…
iPhone combines three products — a revolutionary mobile phone, a widescreen iPod with touch controls, and a breakthrough Internet communications device with desktop-class email, web browsing, maps, and searching — into one small and lightweight handheld device. iPhone also introduces an entirely new user interface based on a large multi-touch display and pioneering new software, letting you control everything with just your fingers. So it ushers in an era of software power and sophistication never before seen in a mobile device, completely redefining what you can do on a mobile phone.



Personally, I think the coolest part of the iphone is its user interface. Smart phones are not new but iphone’s user interface is sure a revolution. Apple is trying to reinvent how we interact with the phone and I think iphone is impressive enough.

Head for Apple’s site to get a glimpse of what the iphone can do.

Thursday, January 04, 2007

A Fast Online Dictionary



This is another Application that uses Ajax nicely. Built by Phil Crosby, it is a dictionary service that lets you query the meaning of words effortlessly. It uses Ajax; meaning your page does not refresh for every word queried.
It is at Ninjawords.com.

Be Careful what You Ask For

I saw this joke while reading Hacking - the art of exploitation, a book by Jon Erickson, today. The joke drew a hearty laughter off me so i decide to share it...




A man is walking through the woods, and he finds a magic lamp on the ground. Instinctively, he picks the lamp up and rubs the side of it with his sleeve, and out pops a genie. The genie thanks the man for freeing him and offers to grant him three wishes. The man is ecstatic and knows exactly what he wants.

"First", says the man, "I want a billion dollars."

The genie snaps his fingers, and a briefcase full of money materializes out of thin air.

The man is wide-eyed in amazement and continues, "Next, I want a Ferrari."

The genie snaps his fingers, and a Ferrari appears from a puff of smoke.

The man continues, "Finally, I want to be irresistible to women."

The genie snaps his fingers, and the man turns into a box of chocolates.

FileSystemObject::Working With Drives And Folders

If you are writing scripts for active server pages or Window scripting Host, and if you will be manipulating files and drives, then you will find yourself dealing with the filesystemobject, which enables you to carry out tasks like writing, reading and deleting of files. With the filesystemobject you also have access to drives and their properties.

I will succinctly highlight here, how to work with this object.

One thing though, since FSO is contained in the scripting type library, you must make sure that scrrun.dll is available in your working directory.

So having said that let us start. This post will cover the Object under the following subtopics:

Working with Drives
Working with Folders

Working with files will be dealt with in another post.


Working With Drives.

The first thing to do, since we want to work with FSO is to create the filesystemobject. It’s ActiveXobject functionality, so the syntax to create it is:

var myfso = new ActiveXobject("Scripting.FileSystemObject");

Since we want to work with the drive, the next thing is to get a handle on the drive we want to work on. Use the ‘GetDrive()’ method of the filesystemobject to do that. That is:

myfso.GetDrive('D:');

If I want to work with the drive D:

Having gotten a hold on the drive you want to manipulate, i.e. by writing:
var mydrive = myfso.GetDrive('D:');

you can make use of the following properties:
  • mydrive.TotalSize //gives you the total size of the drive in bytes
  • mydrive.FreeSpace //to get the free space in drive. myfso.AvailableSpace will also work.
  • mydrive.DriveLetter //to get letter assigned to drive i.e the drive without the ':'
  • mydrive.DriveType //this properties returns integers that indicates the kind of drive it is. for example, 1 is for removable, 2 is for fixed, while 4 is for CD-Rom
  • mydrive.SerialNumber //serial number of the drive
  • mydrive.IsReady //if the drive is available for use. Returns 'true' if it is
    available and 'false'if otherwise.
  • mydrive.ShareName //this returns the shared name for the drive
  • mydrive.VolumeName //gives you the volume name

Working With Folders

There are to ways to get a handle on a folder you want to work with. The first method is to create it, that is:

var myfolder = myfso.createFolder('c://geekabyte');

will create a folder named geekabyte in the root drive 'c:'

The second method is to get an handle on an existing folder, that is:

var myfolder = myfso.GetFolder('c://geekabyte');

Having had a hold on the folder, you have the availability of the following methods and properties.

  • myfso.DeleteFolder(handler to the folder);
    For example if you want to delete an existing folder named 'deathstar', first thing is to get to the folder. You do that by:

    var thefolder = myfso.getFolder('E://deathstar');

    now to delete it,just write:

    myfso.DeleteFolder(thefolder);

    or instead of going through the process of using the .getFolder() method, just write:

    myfso.DeleteFolder('E://deathstar');

  • Retrieve the name of a folder
    To get the name of a folder instead of the the path that getFolder() returns, use the '.name' property. It looks like this:
    //first get an handle on the folder
    var folder = myfso.getFolder('c://geekabyte');
    //to retrieve name...
    var name_of_folder = folder.name;

  • Finding out if a folder exist.
    You might want to check whether or not a folder exist.To do this, you use the .FolderExist() method of the filesystemobject.
    example.

    var returnval = myfso.FolderExists('c://geekabyte');

    if the folder exists, the method returns 'true' otherwise, 'false'

  • Finding out the name of a parents folder
    If you have a folder and you want to get the name of that parents folder, use:

    var parent_folder = myfso.GetParentFolderName('c://geekabyte/blog');

    This expression will assign 'geekabyte' to parent_folder.