Thursday, 25 June 2015

THREAD IMPLEMENTATION COMPARISON OF WINDOWS, UNIX, LINUX AND SOLARIS OPERATING SYSTEMS - A QUICK SUMMARY

Leave a Comment



INTRODUCTION
A thread is an independent sequence of execution within the context of a parent process. Threads share the resources of parent process but are separately and independently scheduled. Aside hybrid threads, there are two main kinds of threads – user-level threads and kernel-level threads. In user-level threads, the kernel knows nothing about user-level threads and manages them as if they were single threaded processes while in kernel-level threads; the kernel knows about and manages the threads. This write up is all about comparing implementation of kernel-level and user-level threads in the four operating systems listed above.

WINDOWS
An important characteristics of windows operating system is its support for threads. Windows support the use of multiple threads of execution within a single process. Multiple threads within the same process may execute on different processors (using symmetric multiprocessing) simultaneously. Windows uses one to one relationship thread model. That is there is one to one relationship of user level thread to the kernel level thread. Each user-level thread simply
maps on to its own kernel-level thread. In windows, each thread contains separate user and kernel stacks.

UNIX
Traditional UNIX systems support a single thread of execution per process, while modern UNIX systems typically support multiple kernel level threads per process. UNIX implements many to one model which maps many user level threads to one Kernel level thread. Thread management is done in user space. When thread makes a blocking system call, the entire process will be blocks. Only one thread can access the Kernel at a time, so multiple threads are unable to run in parallel on multiprocessors

LINUX
Linux has a unique implementation of threads. To the Linux kernel, there is no concept of a thread. Linux implements all threads as standard processes. The Linux kernel does not provide any special scheduling semantics or data structures to represent threads. Instead, a thread is merely a process that shares certain resources with other processes. Using a mechanism similar to the lightweight processes of Solaris, user-level threads are mapped into kernel-level processes. Multiple user-level threads that constitute a single user-level process are mapped into kernel-level processes that share the same group ID.

SOLARIS
Solaris implements multilevel thread support designed to provide considerable flexibility in exploiting processor resources. In Solaris, user-level threads is implemented through a threads library in the address space of a process. These are invisible to the OS. The kernel threads are fundamental entities that can be scheduled and dispatched to run on one of the system processors.

CONCLUSION
Some operating systems like Windows distinguish the concept of process and threads while others like Linux does not. UNIX operating system and some of its variants share common attributes including threads implementation.
Read More

Sunday, 21 June 2015

A GUIDE TO SMART PHONES SECRET CODES

Leave a Comment
INTRODUCTION

It is a well known fact that smart phones form a very important part of our daily activities, especially for people above the age of 18. This is because tasks such as phone calls, internet access, emails and so on can be carried out on this encased electronic chips that fit nicely into our pockets. Barely two decades ago, many individuals, especially citizens of developing countries only connect to the internet through the computer. The introduction of internet-capable smart phones as alternatives was a major contributing factor that led to the popularity of smart phones. These devices have become what most people can't do without for smooth running of their day to day activities. Below are some helpful tips on smart phone codes that will enable you to fix basic issues. First I dish out some general phone codes before exploring the codes of one of the most popular smart devices - Android phones.


GENERAL PHONE CODES
Below are some codes that can be applied to a wide variety of smart phones. 

  1. Dial *#61#  to Check redirection status.
  2. Cancel all redirections: ##002#.
  3. Dial *43# to activate call waiting, to deactivate dial #43#.
  4. If your phone doesn't have incoming call barring and outgoing call barring, you can try this - for outgoing call barring dial *33*barcode*# and pres OK. To deactivate it dial #33#barcode*#.
  5. On any phone on any network type in **43# to enable conference calls. You can make up to 7 calls at once
  6. If you need to block SMS reception (if you are spammed by someone) just press this code:
  7. *35*xxxx*16# . Note - xxxx is your Call Barring code (default is 0000).
  8. To remove this barring type: #35*xxxx#
  9. Software version: *#9999#
  10. IMEI number: *#06#
  11. Serial number: *#0001#
  12. Battery status- Memory capacity : *#9998*246#
  13. Debug screen: *#9998*324# - *#8999*324#
  14. LCD kontrast: *#9998*523#
  15. Vibration test: *#9998*842# - *#8999*842#
  16. Alarm beeper - Ringtone test : *#9998*289# - *#8999*289#
  17. Smiley: *#9125#
  18. Software version: *#0837#
  19. Display contrast: *#0523# - *#8999*523#
  20. Battery info: *#0228# or *#8999*228#
  21. Display storage capacity: *#8999*636#
  22. Display SIM card information: *#8999*778#
  23. Show date and alarm clock: *#8999*782#
  24. The display during warning: *#8999*786#
  25. Samsung hardware version: *#8999*837#
  26. Show network information: *#8999*638#
  27. Display received channel number and received intensity: *#8999*9266#
Others are:
  • *#1111# S/W Version
  • *#1234# Firmware Version
  • *#2222# H/W Version
  • *#8999*8376263# All Versions Together
  • *#8999*8378# Test Menu
  • *#4777*8665# GPSR Tool
  • *#8999*523# LCD Brightness
  • *#8999*377# Error LOG Menu
  • *#8999*327# EEP Menu
  • *#8999*667# Debug Mode
  • *#92782# PhoneModel (Wap)
  • #*5737425# JAVA Mode
  • *#2255# Call List
  • *#232337# Bluetooth MAC Adress
  • *#5282837# Java Version 


ANDROID SECRET CODES:
Android geeks, phone enthusiasts and developers will find following android list of codes very helpful.
  1. For IMEI Number: *#06#  
  2. For RAM Memory version: *#*#3264#*#*
  3. For FTA SW version: *#*#1111#*#*
  4. For FTA HW version: *#*#2222#*#*
  5. For Touchscreen version: *#*#2663#*#*
  6. To test Bluetooth: *#*#232331#*#*
  7. To display Bluetooth Physic Address: #*#232337#*#
  8. To test secret GPS: *#*#1472365#*#*
  9. To test other GPS:  *#*#1575#*#*
  10. To test WiFi/Wireless LAN of phone: *#*#232339#*#* or *#*#528#*#* or *#*#526#*#*
  11. To display Wi-Fi MAC Address: *#*#232338#*#*
  12. To test Vibration and Back-light of device: *#*#0842#*#*
  13. To test Proximity/Distance Sensor: *#*#0588#*#*
  14. To test Touchscreen: *#*#2663#*#*
  15. For Audio Test: *#*#0289#*#* or *#*#0673#*#*
  16. To launch Service Mode: *#*#197328640#*#*
  17. Hidden Service Menu (Motorola Droid): ##7764726
  18. Field Test: *#*#7262626#*#*
  19. To format the phone: *2767*3855#
  20. To Restore Factory Settings: *#*#7780#*#*
  21. To create Immediate backup of your multimedia files: *#*#273282*255*663282*#*#*
  22. To display Phone Information: *#*#4636#*#*
  23. To get detailed Camera Information: *#*#34971539#*#*
  24. For Software & Hardware Information: *#12580*369#
  25. To display HSDPA/HSUPA Control Menu: *#301279#
  26. To start GTalk Monitoring: *#*#8255#*#*
  27. To get PDA, Phone, H/W and RF Call Date: *#*#4986*2650468#*#*
  28. Displays Build Time and Change List number: *#*#44336#*#*
  29. Packet Loopback Test: *#*#0283#*#*
  30. LCD  Display Test: *#*#0*#*#*
  31. Enter Service Menu (on New Phones): *#0*#
  32. Diagnostic Configuration: *#9090#
  33. USB Logging Control: *#872564#
  34. System Dump Mode: *#9900#
  35. View Phone Lock Status: *#7465625#
  36. Executes Emergency Dial Screen to unlock PUK Code: **05**#
  37. Enables Voice Dialing Logging Mode: *#*#8351#*#*
  38. Disables Voice Dialing Logging Mode: *#*#8350#*#*
  39. Change behavior of Power button: *#*#7594#*#
CONCLUSION 
We have been able to feed ourselves with a whole lot of phone codes. I hope this will serve as a good reference to you when the need arise.
Read More

Thursday, 18 June 2015

CHOOSING THE RIGHT PROGRAMMING LANGUAGE FOR YOUR SOFTWARE DEVELOPMENT PROJECT

Leave a Comment


INTRODUCTION
Most Countries of the modern world fall into one of two categories based on advancement in technology - developed and developing countries. Both classes consist of countries characterized by their technological standards. That is the extent to which they make use of modern technology. The success of modern technology is determined by software as many machines or devices will never function without it. It is therefore the desire of most organizations (both governmental both non-governmental) to always have access to quality software. This can only be achieved when software developers embrace good software development practices and take appropriate decisions. One of such decisions is choosing the right programming language when embarking on a particular software project.

THINGS TO CONSIDER BEFORE CHOOSING A PROGRAMMING LANGUAGE
There is no perfect programming language. This is a fact that must be accepted if one is to make a good decision. It must also be understood that the choice of programming language must be one that best serve the needs of the intended users. If we are to interview developers packed in a particular hall, it will be discovered that they all have different preference of programming language. However it is in the best interest of a software development team not to opt for a particular programming language based on the personal programming preference of a developer (say their team leader) . The following must rather be put into consideration;

·        Budget: The available funds must be enough to cover the cost of implementing the programming language of choice, else a less-expensive alternative must be considered.

·        Language Attributes: If you are developing for the cloud, stick with interpretative, dynamic, open source languages for rapid and more cost-effective development. For enterprise applications that have critical security requirements or must integrate with legacy environments, compiled languages may be better.



·        Problem Domain: The domain of the problem must be well understood as this will go a long way in determining the software development process, especially the specification and implementation phase. Take a look at what languages are being used to solve your similar business problems and what is supported by the expanse of libraries. Somebody might have already solved 70% of your problem and have a general license available for you to build on.

·        Availability Of Skilled Programmers: except you’re working alone research your local community to understand if you have a ready supply of skilled workers that can be tapped for affordable talent. It is imperative to understand that software development project is much more successful when team work is embraced.

CONCLUSION
Explained above are the major points to note when choosing a programming language for a software development process. However, there are other minor factors such as language support for software evolution. My advice is you get a book on Types of PL from MIT.

Read More

Wednesday, 17 June 2015

COST BENEFIT APPROACH TO SETTING UP A SUCCESSFUL INTERNET CAFE

Leave a Comment
OVERVIEW
There exist numerous business opportunities in the world of information technology. One of such opportunities is an internet café business. Some business men have the financial power to lavish money during the establishment of their café while others are well to do and are only willing to embrace not-too-expensive business models. This article is a detailed explanation on how to set up cost-benefit and successful internet café.

What is an internet cafe?
In many parts of the world, people are usually unable to conclude daily activities without spending some time on the internet. Accesses to internet depend on a number of factors such as availability of smart devices, location, economy, government policy and so on. Sometimes internet geeks are denied access because of certain constraints. For example some individuals don't have internet-enabled smart devices at their disposal due to lack fund, internet connection in some countries tend to be very poor giving only few people have access to fast internet.
Many who find themselves in regions with enabling environment for internet access may be denied of it temporarily due to loss or damage of smart phone, personal computers or irregularities from their Internet Service Providers among other causes.
When at one point or another people are not able to connect to the internet when they need to, they patronize business ventures offering internet access to the public usually for a fee. An establishment with such service is called an INTERNET CAFÉ.


The Café Business

Running a cyber café incurs costs, especially at the beginning. But, it can at least cover some or all of its operating costs if properly managed. The potential of the café to generate revenue depends solely on how it is run. Though to a large extent the amount of money spent on setting up the café also determines income a café will not survive when mismanagement sets in.



STEPS TO FOLLOW

Explained below are detailed steps that must be followed when setting a cost-benefit internet café that will be successful.



Choose A Reasonable Location

When choosing a location, you should consider the following;

  • Nearness to close-by residents
  • Proximity to businesses offering social services – for instance a stylish, upscale restaurant in the same area
  • Visibility – the café should be in a place where it can be easily seen by people in the area.

Acquire Background Knowledge Of Different Price Options Of IT Equipment To Be Used
IT devices needed to set up a cafe such as PCs, printers, switches… are from different vendors. These vendors also ship their products to different marketers at wholesale price. It is therefore not wrong to say that the cost of purchasing the needed equipment depends on them. For instance a HP can decide to sell a computer for $200 while dell sells a PC with the quality and configuration at $180. Likewise different wholesalers buying from HP sell at different prices. It is your job to determine which purchase combinations will benefit you most in terms of quality and cost.

Proper Analysis Of How Available Startup Capital Will Be Spent
Plans on what to buy and services to pay for must be a reflection available fund. This will enable you to spend the right amount of money on the right equipment and services. It will also prevent you from making unnecessary purchases while leaving important issues unattended to. For example if you desire that your cafe should be able to serve 12 people at a time, your analysis will tell if your desire can be granted or not based on your financial power so that you will not end up using the money that should be meant for internet connection to purchase computers.

Use Only Necessary Furniture
Buying only the needed set of furniture will enable you to concentrate on purchasing the quality ones that are pleasing to the eyes of prospective customers. 

Employ Responsible And Friendly Attendants
Patronage greatly depend on the kind of individuals that will be attending to customers the first time visit your internet café. If their first encounter with your attendant is bad one they may never come back to your café especially if there are other cafés close to the area where you run your business.

Add Other Services
Café customers normally prefer to browse the internet at cafes where they can easily access other computer related services like bulk SMS, printing, photocopy, scanning… etc. Some people with very little knowledge of how the internet works or how to surf the internet always tend to pay back with patronage when you organize free basic internet training sessions for them. Your creativity goes a long way in this aspect. You need to envision the needs of the people around your café and make the availability of services that will satisfy these needs an addendum to your list of services.

Be A Good Manager
It is not enough to set up a cafe business and employ attendants, the business man on his part must properly supervise the day to day running of the business. Detailed account of daily sales must be available as well as correctly generated statistics. This will aid in detecting loop holes in the business such as the decrease in patronage from a particular category of customers and devise means of overcoming such loop hole. A manager need monthly and annual report of business activities in order to prepare for future challenges

Tell The World About Your Business
Starting with the people around you, create awareness and let it be known to people that there is a new internet café around. This can be achieved by using advertising strategies like sharing hand bills, giving out business cards and so on.
It is also a reasonable move to use social networks like twitter and facebook to create online awareness. You can also create a blog or website.


Give discounts for selling more login tickets in your Internet café
Prepare special pricing plans for your regular customers. Give discounted prices to your regular members and they will always come back to your Internet Cafe for your services. Attract new members with discounted pre-paid login accounts. Sell more pre-paid time for lower price (Example: sell 3 hours ticket with 10% discount, 5 hour ticket with 25% discount etc.)

CONCLUSION
With the details above, I believe I have been able give you an insight on setting a cost-benefit internet café. You should also consider getting yourself high end system to act as your network server. You can get a very good one here. However this post is subjected to modifications and regular visitors to this blog shall see updated versions as new posts.




Read More