Monthly Archives: July 2008

Actionscript 3.0 Video Tutorial #9: Auto Update AIR Application

as3 video tutorial: updating air applicationIt tooks me more than six month to create a fresh new tutorial, but finally here it is!
This tutorial shows how to automatically update an AIR application when a more recent AIR file is on Internet.

I hope it is easy to follow and clear 🙂

You can watch it here.

You can see all my AS3 video tutorial here.

This tutorial use the côdeazur Class available here.

Ahmet

 
0 Kudos
Don't
move!

My First Last Day :)

Today is my last day in the first 100% (non freelance) job I had. It’s funny to see how man can be attached to a team and to an environment.

It was a great experience for me, they recruited me even before I finished my MS, 1 and 1/2 year ago. I learned a lot, realized that what you learn at University is not easily applicable in real world and that sometime the harder is to understand how people think (depending of their department, background, culture, …).

I think that one of the most important lessons I have learned is to trust in my ideas and to try to explain them at the lowest commun denominator. I have also learned to understand that when you lead a company, you need income, so perfection is not always the goal: produce and then try to perfect the product (my boss was right on this). Small iteration in web development are very important as project are easily changed but it demands a good organization.

Big thanks to everyone from MBA-Exchange.com & Careernomics.com team 🙂

I will now have 1 week holiday and then start my new job at Microsoft (Unified Communications) in Zurich, woooaaw.

Ahmet

 
0 Kudos
Don't
move!

iPhone 2.0 : 6+ cool Tips

#1 Taking a screenshot: Hold the ‘home’ button then hit the ‘power/sleep’ button

#2 Saving an image from Safari: Tap on an image and hold, a pop up will display

Save Image from Iphone More domain extension on Iphone

#3 More domain name extension: hold the ‘.com’ if you are in Safari or the ‘.’ button in mail composer, and you will be proposed more 3 extensions (.net, .edu, .org)

#4 Bigger Keywords: Simply rotate the iPhone horizontally before tapping on the address bar, the onscreen keyboards appear much bigger

Larger onscreen keyboard

#5 Deleting an element: Slide your finger from the left to the right of the list element you want to delete, a delete button will appear

#6 Reboot: press and holde both ‘Home’ and ‘power/sleep’ for ten seconds.

Update … will be below:

#7 Quick Player Access: when you iPhone is locked, press 2 times the ‘home’ button it will display the iPod player, don’t even need to unlock it

Ahmet

 
0 Kudos
Don't
move!

My tips for web development and web design

After nearly ten years creating web sites and web applications I have learned some lessons. Below are some points I chatted about with friends wondering about going into web development or web design and who asked me for some advice…

1) Be organized

Like any project, you need to be prepared before starting coding or designing anything. For me it is important to know and understand what is the role of a website we are about to build.
a. What are the functionalities expected?
b. Who is going to use this website, what can they do, are there some different role?
c. How will this website be marketed (think SEO)?
Essentially, knowing the functionalities is important to create your OOP modelization and your database structure. Knowing the type of visitors expected allows you to build the credibility of your website and to select the appropriate group to make some usability test. Finally, knowing how the website will be market is clearly a point that needs to be address while thinking about the web structure.

2) User Experiences: Do not reinvent the wheel

There are a few points you must not neglect during a conception, sometimes you will scratch your head to offer the best experience to the users but often a lot of people have scratched their head before… Using ‘Design Pattern’ will help you find nice solution, you do not have necessarily to respect it totally but it gives a good starting point to cogitate 🙂

Here are two links you may want to see about this:
Welie : http://www.welie.com/patterns/index.php
Yahoo!: http://developer.yahoo.com/ypatterns/

Do not forget about usability and accessibility.
Usability is to create the most simple user interface; there are a lot of books and website on that topic. If you do not have a specific budget for usability, simply ask your friends and family to do some tasks on your website model (paper is ok), see how long it takes, if they failed, where frustrated and so one. Solve those points. Also while designing the web site, think about the iconography: what does this icon mean to everybody?
Accessibility is to allow people with handicap to access your web site. For example think about screen reader for people with vision handicap, think about the color, the size of fonts…
Here is a list of resources about usability.

3) Framework and technology

The choice of framework and technology depend on your budget, the type of visitors you focus on and the time you have. There are a lot of frameworks for nearly all languages, selecting yours is really important and you should stick to your choice once done. I would strongly advice to use only one framework for each language you will use but it is not always possible but at least try to keep things separated.
To decide yourself, you might wonder if it has the all the feature you needs, if it will last (not a beta framework, is there community support, what is its size and if it is cross-browser…

Below are my two favorite’s frameworks:
CSS: http://code.google.com/p/blueprintcss/
Javascript: http://jquery.com/

4) Take the time to write clean code

Web browser and HTML allow a lot of errors but you shouldn’t allow yourself to use it.
Ban CSS hack from your mind and use conditional comments instead.

Find some information here : http://www.quirksmode.org/css/condcom.html
Here is a CSS validator: http://jigsaw.w3.org/css-validator/

Also stop using HTML 4.0, please jump over to XHTML and validate your pages.
Validate your pages here: http://validator.w3.org/

If you are using a server side language, try to apply OOP paradigm with it (even if you use php). For example, think that the name of your application will certainly be written more than once, so save it in a variable and call it when necessary. So if the marketing team asks you to modify the name, you just have to modify the variable once. Generally speaking, if you need to write something more than once saves it somewhere (it’s longer at the beginning but at the end you will be happy to be able to spend more time for other project).

5) Do not lose the time of your visitors

The first thing visitors do on your page is waiting the page to be downloaded…
There are a few things you can do to prevent a long loading time. Here are my way of doing things but it is not necessarily the common way of doing things…

For example some people advice to have one CSS file for a website, I prefer to split my CSS to pages. I usually have one CSS for the website structure, one for the general design and finally one for every pages that need a special layout. For Javascript files, I load only one .js at the end of my page, this one will load all the others .js needed.

For images, try multiple compressions, if you works with Photoshop in the Save for web panel you have a preview of the size of your image. Take the time to make some test to offer the better quality with the lowest file size. Do not use images when you can use CSS.

If you are using Firefox, I strongly advise you to use the YSlow plugin, It will display the load time length and gives tons of advices to reduce the size of your pages.

6) Do not lose your time

Maintaining a web site is not funny at all, there is no creativity you have to live with existing bugs without having the time to solve them and you want to redesign completely this web site 🙂
Whenever you build a web site, never forget that you will most certainly have to do some update or bugs solving. Prepare an error management system, prepare a safe server with a safe copy of your web site, keep all you work in a safe (and accessible) place and never write two times the same classes/functions. We got much better things to do 🙂

7) Help visitors finding you, help them coming back

The web is huge, visitors doesn’t come by chance. They are searching for a service or for information. Attracting visitors is a huge work and depending of the marketing strategy you may have to take different path. I’m a strong believer in the use of blog. For example during my studies I used to do some web site to earn some money, declaring myself a freelancer wouldn’t have helped me finding client, building this blog allowed me to drive much more traffic to my website (around 100x more visitors by day) and to position well myself on some keywords (web technologist Geneva).

Making people coming back is easier (sort of), offer interesting content and people will come back. Do not just create interesting content but contact the people that come to your web site. Offering RSS feeds and/or allowing them to subscribe to a newsletter is a good start. You can also jump in the game of buzz it can offer you a great visibility but this visibility is generally very short in time.

8) Security

The closer you are from the database the higher must be your security. There is multiple level of security, you should ensure that the client-side have functions testing the user input, the server-side must also have function avoiding any injections in your code.
There are some basic things to do about security, be sure to know them (depending on the languages you use).

9) Test, test and test …

As you certainly already know each browser behaves in its own manner. Cross-browser issues are easy to test and with the time you will learn what properties tend to bring bug. Keep in mind that JavaScript and CSS are the most common ‘languages’ that are misinterpreted by browser.
All functions and all interactions should be tested. Also you have to ensure to have proper alert in case of bug. Once your website is open to public you need to be able to react to any bugs easily. Know when a bug happen, where it happen, what made it happen and how often it happens.

10) Keep discovering

The world of development is for curious minded person with the will to solve problems and with a touch of creativity. Being curious is going around on the web and bookmarks pages that you find extraordinary cool. Willing to solve problems is applying the technologies behind those cool pages to your own. Being creative is special to everyone, for me it comes from the time I spend with my wife and my daughters walking around beautiful landscape.

 
0 Kudos
Don't
move!

Microsoft Acquire Powerset – How does it work?

Microsoft in its fight for search market share has finally acquire Powerset (a natural language processing system). The system is really impressive and could be a real value for users. For example if you type in ‘How tall is the Eiffel Tower’ you will have the answer: 300.65 Meters

According to an interview in TechCrunch the Microsoft search team will implement Powerset’s functionalities in their search engine (Live.com) by the end of this year.

Below is a simple explanation of how it works (by Barney Pell):

[…]I guess one way to think about it is like when you are learning how to diagram sentences in elementary school. You draw these trees of a sentence and find here is the noun phrase and a noun phrase has a determiner like “the” and then it has a noun like “dog” and here is a verb phrase, and it might have a verb like “barks” and then what does it mean for the that word, bark is a verb and it has a “S” at the end and the way that it works, which we call morphology, that’s the present tense of that verb. And then the whole sentence is composed of those pieces, and so the meaning is built out of those. So you draw these diagrams when you are learning how to do it. And the kind of knowledge that’s in a natural language processing system like Powerset is using is sort of like that. Its basically extracting out both the surface structure, that kind of a tree structure of a sentence, and then its converting that into a series of different representation, ultimately into one which expressing that thing in fact. So it will basically say that there is a kind of activity here and it is a barking activity and the thing that is doing that activity, the subject of that activity, is a dog. Ok. So it is going from that sort of a surface structure of the language that you are seeing and converting it into a semantic factor representation. In addition, it is then able to draw on the individual meaning and relationships between words so if you saw that the sentence said “The poodle barks.” Then the system knows, if it can draw upon other knowledge about the relationship between words, as Powerset does, that poodles are a kind of dog. So if you as the user were able to say, “I want dogs barking” then it can actually then match the concept of dog to the concept of poodle and it is matching barking to barking and it is then doing this sort of semantic match for you which uses words you are not even using in your query and matching those against the document.[…]

Then Ramez Naam gave some more explanation:

[…]So one of the things that Powerset brings that is unique is the ability to apply their search technology to the query to the user’s search in ways that are beyond just the simple pluralization or adding an “-ing” is that Powerset also looks at the document, it looks at the words that are on a web page and this is actually very important. If you look at just the users query, what you have available to you to figure what they are talking about are three words four words five words, maybe even less. That can give you certain hints. If you look at a web page that has hundreds or thousands of words on it you have a lot more information you can use if you understand it linguistically to tell what its about, what kind of queries it should match and what kind of queries it shouldn’t match[…]

A quick note about given answers by Powerset:

We return answers. We actually synthesize, so if you were to say, “What did Tom Cruise star in,” you actually get not just the movies, but the cover art for the different movies. It synthesizes multiple pieces of information to give you a whole different kind of presentation. Or, if you were just to say, “Bill Gates” you’d be given an automatically generated profile of Bill Gates, pulled across many, many articles. It’s no longer just about 10 links, although we can certainly do more relevant job (and will) of the blue links, and a better job of presenting those links. With the language understanding systems which we now have, we can go way beyond that and open up a whole new door in user experience until you think, “oh god, that’s how I used to search, now I want this whole new different kind of thing.”

It is also interesting to note that Microsoft will use natural language processing powered by Powerset in Word for grammar and not only in the Live search engine.

Now Google doesn’t have to worry yet but I bet that they are also working hard on natural language processing…

A.

 
0 Kudos
Don't
move!

AIR bundled in Acrobat Reader 9

Acrobat Reader 9
AIR

A very good news for all AIR developer or for all people hesitating to use AIR for future applications. AIR is bundled in Acrobat Reader 9 (released yesterday), as Acrobat Reader is still one of the most downloaded software of Adobe [it is my assumption, I couldn’t find any stats :(] it will certainly help a lot the penetration of AIR (which I couldn’t find any stats either…).

It is interesting to note that some people tend to see bundled software like an unfair ways of doing distributing applications, some commented onRyan Stewart’s post concern about security and posted a link to a sample of trojan injection via PDF. Even if I was aware of some security problems with Flash and Acrobat, I didn’t knew this method to inject .exe via a PDF.

Personally I understand those concern, an incredible high number of user don’t update their software and so are more vulnerable to attack. I think that Adobe could offer the choice to people, even if for the developers and for market share it is not as profitable 🙂

Ahmet

 
0 Kudos
Don't
move!

Adobe offers to Google and Yahoo! Flash Player Technology – Is It Really A Good News?

I’ve just read via the AXNA that Adobe, Google and Yahoo! worked together to allow SWF searchability. My first thought was ‘finally they made it’ 🙂

But while reading the FAQ I’ve been a little disappointed by how this indexation seems to happen:

[…]The Flash Player technology, optimized for search spiders, runs a SWF file similarly to how the file would run in Adobe Flash Player in the browser, yet it returns all of the text and links that occur at any state of the application back to the search spider, which then appears in search results to the end user[…]

FlashFlex

[…]All of the extracted information is indexed for relevance according to Google and Yahoo!’s algorithms. The end result is SWF content adding to the searchable information of the web page that hosts the SWF content, thus giving users more information from the web to search through[…]

So I’m afraid that it means that there will be absolutely ‘semantic’ information on the indexed tag. Is this text a title, a paragraph or an image caption? Does this mean that the SEO effort we have to do on SWF are only based on text and keywords?

If you have text with an Alpha of 0 but that have a tween, will it be indexed?

I’m very happy that A_G_Y are working to offer a better indexation and searchability of SWF but as far as I understand it, they are completely missing the SEO point here.

What do you think?

Ahmet

 
0 Kudos
Don't
move!