Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts

June 1, 2009

Amazing web site with VoIP protocols flow

If you are wondering what messages should follow the SIP INVITE message, you can take a look at the official SIP RFC, or you can go to www.tech-invite.com where you will find amazing protocol flows with nice explanations.

image

And you can find not only general VoIP protocols at www.tech-invite.com, but also other telco protocols.

image

September 4, 2008

Google OS: it’s a browser - Google Chrome

image Google has yesterday published a public download of its own web browser – Google Chrome.

Google Chrome is a brand new web browser build from scratch and uses amazing new techniques.

For web pages rendering, Chrome uses Apple’s WebKit which is used in Safari and iPhone too. That makes loading of web pages really fast.

For JavaScript running it uses the V8 JavaScript virtual machine. V8 compiles javascript into a code that can run directly on a CPU so it makes a big speedup for processing JavaScript codes.

Each web page runs in its own process. That means that if a web page causes a browser crash (BUGs are everywhere), only a tab where that one web page was running will crash. It also means that memory leaks that are well known from other browsers does not affect Google Chrome. When you close a tab, you close a process and free all the memory that was reserved for that webpage. Isn’t it great? No more killing the whole browser just because it eats 1.1GB of your RAM.

As a developer you have access to a nice DOM tree, process manager, etc.

So far I really like it, even tho I am missing some great features from Firefox – plugins, rss handling, google bookmarks integration, etc.

image

You can download and learn more about Google Chrome from http://www.google.com/chrome and don’t forget to read a nice animated story about Google Chrome at http://www.google.com/googlebooks/chrome/

May 12, 2008

Write Code: Mind Wide Open

I was talking with a friend of mine about some programming stuff. He has got a school assignment to develop a simple game in C#. Well, the first thing that students usually start with, is that they buy a book about C#. They read the book, and when the last page is over, they start with the development of their fabulous application. Now they know a lot of C# commands, structures, objects, we could maybe say that some of them are now even C# gurus (at least they know a bunch of commands). Now there is a problem. Many times I face people that even tho' they know HOW to write code, they do not know WHAT to write!

Many times they are missing the essential imagination of the application's building blocks, relations, dependencies, application flow, etc. My suggestion for this case is to grab a pencil and paper, forget everything you know about C#, open your mind and start drawing and designing your application.

You can start with the user interface. If you know that the game will be the minesweeper, draw a basic window, control objects, the minefield, etc. Then start with the application analysis. Within the analysis you have to understand what must your application exactly do. After finishing the analysis part, you should have an activity diagram, that will clearly display what actions may happen in you application and how to handle them. This part was the platform independent analysis. For this part it is not necessary to know anything about C#. As you will go deeper and deeper, your drawing will became more and more platform dependent, and for this game it should end up at the .net and C# platform.

So continue with deeper analysis and create the architecture of you application. Start thinking about building blocks of you application - basic classes, interfaces, methods, their relations, dependencies, etc. Draw everything to your paper and take notes. Supporting applications like MindManager or FreeMind may help you to collect your ideas and don't forget anything.

After having completed all these steps, remember all the things that you learned about programming in C#, take a look at your drawings and notes, and now you should know HOW and WHAT to write to your source code!

image

A successful analysis at the beginning is about complete understanding of the application and it ensures that at the end of your application development you should not end up in such a situation as it is displayed on this ^ picture :-)