Sunday, May 8, 2016

Subjects I studyed at SLIIT

1st Year
Semester 1
1. Information Systems
2. Computer Fundamental
3. Mathematics for Information Technology
4. Software Technology I (Java/OOP)
5. Business English & Communication Skills
Semester 2
6. Computer Architecture
7. Data Communication & Computer Networks I (Theory)
8. Database Management System I(RDBMS - Concepts)
9. Introduction to Programming Environment (C++/UNIX)
10. Software Technology II (Data Structures Java)
2nd year
Semester 1
11. Software Engineering I (theory)
12. Data Communication & Computer Networks II (theory)
13. Internet Technology Applications
14. Systems Programming Design (Perl/CGI)
15. Probability & Statistics
Semester 2
16. Computer Graphics & Multimedia (Photoshop/Coral Draw, Moho, 3Ds Max)
17. Software Engineering II (DFD / Data Dictionary)
18. Design  & Analysis of Algorithms
19. Database Management system II (RDBMS - with systems like MS SQL Server, Sybase, Informix)
20. Information Technology Project I (2nd year Project)
3rd Year
Semester 1
21. Software Engineering III(UML)
22. Project Design & Management
23. Operating Systems (the concept of making an operating system, how operating systems do it)
24. Advanced Graphics & Visualization (How graphics work, the theory behind them. and GTK+, OpenGL Graphics Programming)
Semester 2
25. Data Communication & Computer Networks III (includes Configuring Cisco Routers and Switches)
26. Database Management System III (ORDBMS-Object-Relational Database Management System (ORCLE))
27. Distributed Computing / CORBA
28. Software Engineering Tools & Metrics
4th Year
29. Comprehensive Design & Analysis Project (4th year Project) - one year project (2 semesters)
30. IT Project Management (how to Manage IT Projects How to plan, what are risks and how to manage them, things that a Project Manager Needs to Know)
31. Artificial Neural Networks (AI)
32. Data Communication & Computer Network IV (Network Programming)
33. Parallel Computing
34. Network Security

Saturday, May 7, 2016

Vector Graphics & Raster Graphics

Graphics as you know it is what we see on screen it is a way of illuminating pixels of the screen with different colors that makes a picture. When it comes to graphics there are 2 types’ vector and raster

Let’s first consider raster graphics  
They are graphics that is develop by programs like Photoshop each pixel information is saved in a file so when displayed it can be mapped to positions of the screen this is normally fast since it is 1 to 1 mapping from image pixel values to screen the draw is faster compare to vector but the drawback is it will pixelate when zoomed i.e. when you enlarge it pixels also get enlarged and begin to show them as blocks of squares

Next we have the vector graphics

They are mathematical algorithms use to draw geometrical things like lines, curves ellipse and so on so the values of the variables are kept in file and when need to display take the values and draw it using and equation like an equation for line or ellipse this method is slow compare to raster graphics since the data  need to be processed before any drawing can be made but the benefit of it is you can zoom it to  whatever the level you want, it will use a translation, rotation or scaling functions of geometry to calculate the end result. Resulting a smooth translation of the object software like illustrator use this to draw images. also 3D's Max and Maya like 3D animation software and most of the 2D animation software use these as models and Raster graphics as texture to them

Thursday, May 5, 2016

Image, how it is done?

As you all know computer run on binary that is true of false, 0 or 1, presence or absence of a current so on so how a system that works on binary show images to screen the secret is in how it handles graphics itself.

 

See computer handle graphics by combining 3 different colors namely Red, Green and blue, different intensity of this create different brightness of color. In computer each of this colors a byte is allocated and it resembles the intensity of its value. so there is 1 byte for red 1 byte for green and 1 byte for blue and all together 256 X 256 X 256 colors since byte has position of 0-255 in binary all 256 colors this is known as 24-bit color since each color is represented by 24 bit 8 for red, 8 for green and 8 for blue.

When you want to display in monitor or other device for example CRT there is 3 guns that fire electrons associate with 3 colors so when you pass a color code to CRT it takes the red value and fire red gun to that intensity and get the green value and fire it in that intensity and get the blue value and fire in that intensity and combination of this intensity when hit to monitor screen display the appropriate   color

 

In LCD there are three crystals for pixel that when turn give one of each color (Red, Green or Blue) So when you pass the color code to LCD it turns it according to the value of the Red for Red crystal Blue for Blue Crystals and Green for Green Crystal

In LED there are there are 3 LED for pixel which is for Red, Green and Blue each can be lit to different intensity. When color code pass to this monitor it take the red value and lit the red to that intensity, take the green value and lit it to that intensity and take the blue value and lit is to that intensity.

 

So how and image file contain an image. Well images are consisting of set of pixels each having Red, Green and blue values they are tiny dots of a color that taken together makes a whole image. Image has width and height which defines how many pixels are across and how many from top to bottom so image file consists of two parts a header which consist the width and height of this image and also compression details if any and data part which consist of actual data that is the RGB (Red, Green & Blue) values of the pixels which stored at one after another in 3 bytes

When you say BMP image or bitmap image of color 24 this is the case, all data are row and not compressed but when it comes to GIF, JPG or PNG it is little different since the image is compressed. there are many ways to compress an image but all use same principle it uses a color pallet and use that information store data in image file

 

If you have 8-bit pallet you can have 256 positions so all together will have 256 colors which will be stored in head section of the file. In data all the colors are approximated to one of these 256 colors and now since we have only 256 colors in the image we can represent it in 1 byte that is 8 bit not 3 bytes (24 bits) so the size is reduced 3 times and if you have color value of 00000010 for data value it means it is the third color (since 00000000 is the first) of the color pallet which will store RGB Values accordingly so in third position of color table it may have color 11000010 00100000 00100000 mapped to it so get this color and use it whenever you see 00000010 at the data section which is simple. Also there are other compression algorithms like Huffman which use different methods to create color tables so altogether the size of the image is reduced greatly

so if you have a picture which consist of 800 X 600 pixels it will require 800 X 600 X 3 bytes of information to store it in raw, but by using color compression and pallets it can be reduced to 1/3-1/4 of its original size that is why GIF, JPG and PNG files are reduced in size compared to raw BMP. this method of compression is known as lossy Compression since some Colors of the image are replace to a common color so small variation of colors are removed which in turn degrade the quality of the image.

 

In compression there are two types lossy and lossless lossy is applied to images sounds and movies in this some data is approximated or removed so the size is less this degrade the quality of the image or sound but you get a compact file. The other one is lossless compression, which compress the file and can be uncompressed to original state. the programs you use zip, rar or 7 zip is of example for this.


also there are 1 bit or 2 color which is black and white, 2 bit or four color,3 bit or 8 colors and 4-bit color 8 bit and 16-bit color all use to compress an image, in 1-bit color, color is represented in one bit in data 1 or 0 in 2-bit color it is represented in 2 bits in data that is 00 01 10 11 in 4 bit there are 16 colors and so on. There is also 24 bit color images which consists of all colors RGB. These images have different way of compression in header section there are more than width and height. It consist of extra information like compression method color table if any etc…when you use 24 bit color you cannot use color tables the images data is compressed by a compression method like Huffman and the encoding table is added at the header.

 

in PNG and GIF there are transparency too that is you have an image and background is transparent or semitransparent for this to happened you need to add a transparent amount as 4 the byte so image with transparency has RGBA or RGB alpha which say how trance parent it is. Also some trans parent images have a transparent color so anything of that color will consider as transparent, for example if black is set as the transparent color then all places with black will be shown transparent. So if you have RGBA then you will have an extra alpha value so now pixel is displayed as 1 for red 1 for green 1 for blue and 1 for alpha or transparency so there is 4 bytes for that not 3 which make these image have more bytes that is why some PNG files size is more than JPG even the image is the same.

you can zip an image to compress it to send via email but it does not count as image compression some software use methods like zip to compress whole image so it can be send via email it is a different story

 

 

Friday, April 22, 2016

ASCII Fonts, how it's done?

ASCII (American Standard Code for Information Interchange) what is it? Why we use it? Why every computer we buy has it? In English there are 26 letters in alphabet which can use to make many words. just like that computers work in binary so it has only two symbols and we can represent it with 1 and 0 and  every word of computer are made of it. So how can some machine using 1 and 0 can tell what is “A” and what is “B”. solution is the ASCII code see ascii table consist of 0 – 255 symbols each with 8 bit or a byte, denote a specific symbol in ascii code. so if we type 65(will be represented by binary in computer) and convert it to ascii symbol we get an “A” and as same as 97(will be represented by binary in computer) represent “a” in ascii. it is a mapping to code to a symbol so each code map to special symbol

To see how it work hold down the alt key and type the number in num pad and you will get symbols © for Alt + 0169  you can do it for all the symbols if you know the relevant code. they are inbuilt so we can type English and every computer can understand it. since it is a standard in every computer so if you have a text file which has “A” the file simply has number 65(in binary) in it and every computer has ascii table which know that 65 means symbol “A” so you take it to any computer and open it and you will see “A” a symbol which map to ascii table 65

So what is a ascii font how can we get a various styles of character? See a font file consist of a graphs of a characters, an image or drawing which is placed in one of 0 – 255 positions which resembles the ascii codes so symbol at 65 position is “A” so if you take a font file and change the symbol at position 65 to something else and type "A" you will not get “A” as symbol but the symbol you inset at the position 65, if your selected font is the one that you changed. So you can have Sinhala symbols at each of this positions in a font so if you type “a” it will be a Sinhala letter corresponding to position of ascii “a”  which is 97 so you can make 0-255 different symbols in a font file that will replace the originals to any language of your likeings not only that, symbols are jest images so you can have a image of a tree printed when you type “a”. computer does not understand it is "a" or tree it just print image corresponding to the ascii symbol that’s all

Friday, April 8, 2016

Software engineering as a carrier

Just because you own a degree or learn a programming language does not make you a programmer you need to be trained all the tips and tricks of making a software that is why most start their carrier as trainee software engineers just pass out form university and barley in the world of software you need to get help from your senior software engineer to go through your work you may make mistakes most of the time sometimes do things wrong way or in appropriate way since you have no knowledge of handling them. With experience you will gain new knowledge of how things are handle how to get by and eventually make yourself a professional software engineer

It take more than just writing a paper of java or PHP or doing assignment or practical test. You need to practice, practice, practice, it is the only way out, In you course you will get to know how to right syntax of programming language or how to debug it but it want teach you how to handle different scenarios of business logic, since you are writhing program to business it is vital that you know this or you will fail as a software engineer begin little get advice when needed. Only way to success is hard work and first thing to learning something begin by getting to know that you have little or no knowledge of it

Make most of your time, The ladder to success depend on how much you put effort to it. Creativity is most important so as logical thinking your ability to grasp ideas and implement them to software will be the key element of your success. More you practice more success you will be.

it took me years to understand the concepts and i'm still learning, got the chance to manage a small group of software team act as team leader to them some time analyzer and designer of the project helped them when they were in trouble most of them depends on me, some still is. even though I have achieve lot there are lot to learn

that was what change true explorer from rest, you explore your environment find  new tricks and easy ways of doing things more you learn more professional you get

Wednesday, April 6, 2016

How to face an Interview (software Engineering)

How to face an Interview (software Engineering)
  • ·         Be confident of what you say
  • ·         Always backup what you say with projects you done that will make them confident they will know that you are not boasting
  • ·         If you have not done any commercial projects do some project as you done it to a company and make a copy to a CD and present it to the interview board if they are interested they will look over it and evaluate your  software engineering skills
  • ·         Be hornets of what you say do not lie
  • ·         Be friendly
  • ·         You do not need to talk about what  you learn if the interviewers are professionals they already know what you learn at the university and what you don’t since they have met previous batches of your university
  • ·         Show them that you have a good capacity to handle large projects and complex logic
  • ·         Show them you understand the business concepts and you are able to implement them
  • ·         Most of the time the interviewer will ask to pick one of your project that you are confident on and ask to draw a ER, Class Diagram or Sequence Diagram and after completing he will ask questions  from the parts that is not clear to him or prats that he see as problematic so be prepared pick the system that you are comfortable most with
  • ·         Do not exaggerate things they will find out that you are lying
  • ·         If you do not know something they ask  tell them that you have no knowledge of it but you could easily learn it in 2-3 weeks be confident at what you say
  • ·         If you are in software development, ability to self-study and learn is a must. You should be able to google anything and should be able to lean anything as quickly as possible know that nobody knows everything and no university teach you everything your ability to learn new things will comes advantages when it comes to software development since industry is rapidly changing and you should be up to date
  • ·         It does not matter to them that you have 1st class, second class or general degree they want to know "can you do the job right?". That is the only thing matter so even if you do not have a degree and you show them your capacity they will hire you

Good Luck

Monday, March 28, 2016

Virus: Worms

Worm, the creature that all of us are familiar of.  An animal that live inside soil they dig holes into soil and live in it most of the times they construct tunnels that can enter at one position an exit in another

what is the similarity of  this with Virus Worms, well it does the same, The virus worm as you know it dig a tunnel from your machine/Server to out side. so any one can come in to your machine/Server. Most of the times it is able to penetrate firewalls since connection is initiated inside your server and firewalls are allowing that, so some one can use the tunnel that the worm has made and do some damage to your system. or spy on your servers or your activities.

Thursday, March 17, 2016

Trojan Horse Viirus and web development

Trojan, according to Greek methodology City of troy is attacked by Trojans because of a dispute over a women they fort for about 20 years but the walls of troy is impenetrable after 20 years Trojans device a plan they made a large wooden horse and put some of their finest worriers inside and send a message to troy, that they have given up the war, and as a gift of troys victory. they offer this horse and all went and hid them self. the people of troy came and see that no one is there and find the note and was very happy. they pull the horse inside the gates and begin to celebrate all men took wine and other alcohol and was drunk in the mid night

when they got drunk the worriers in side the horse come out and open the gate letting rest of them to come in and to finish the drunken worriers

so how this apply to the Trojan Horse Virus well it attack in slimier fashion, it will arrive to you as a gift and you will accept it since it is a gift and when opening it will attack your system. for an example you will receive a computer game or utility program which is very useful but underneath that there will be a virus that attack your computer setting or give control of your system to another user, so while you play the game or use the utility, it will damage your system or give control to another

so how this apply to web see most of the websites today are build by popular web developing softwere like joomla or wordpress with these you get the ability to attach plugins so you can give functionality to program or make it looks better, better yet most of them are free. so some one can write a plugging and embedded a Trojan inside. plugin is nice has lot of functionality so you are bound to use it, and when you dose it will give the developer of plugin, access to the server and make a security hole so he will be able to manipulate your system through access given by plugin he will be able to upload files like php scripts or run commands linux or windows on your server(if your operating system is one of them) even delete using del command DOS or rm in linux and you will never know what happen.

Friday, March 11, 2016

Enlightenment & Middle Path

Enlightenment & Middle Path All over the world the people think that good & evil are two separate things and been so good will drive the evil away, but as I began to realize things, I began to search myself what is good what is evil and what separates them. Long I search I realize that they are not two but two ends of an same entity, jest as string has two ends, they exist hand to hand with each other, make one end bigger and other will follow, and make one end shorter so as the other, so how do you get rid of the evil if the good and evil exist with side by side, I was searching for an answer for many years of my times. If they both are two ends of one string how are we going to lose one end each time I try to find out I could not get an answer, and suddenly it strikes me you can’t lose one end of a string without losing the other, that is to lose one end, you have to lose the whole string itself, in order to lose evil you have not only lose evil but good itself, such a person will be no good neither evil, and he will do no good no evil, he will act on no good nor evil, no good and no evil act on him. This realize me of one thing one thing that we all was thought from our child hood the teaching of lord Buddha himself the enlightenment & the Middle Path, which many try to find. Is this what he talk about what middle path is, it is not a path between middle of good and evil but a path with no good and no evil, And men who achieve it will see things as it is. He will see the continuation of life flow of nature and many things, more you hang on to one end the other will hang on to you. So giving up both of them will make you free of everything. Free to feel the world from all earthly things, things that the mere mortal will never understands, I wish I would know.