Tuesday, April 26, 2016

Globalize your mobile content - App Localization

Mobile applications are built for specific purposes and requirements, but it has to cater to a wide audience beyond linguistic and geographical barriers. This involves a great deal of personalization of the application to the users specific language.
Why is Localization Important?
Below are a few stats that clearly emphasize why an applications have to be localized.
  • 89% of the Internet users are outside the United States
  • When it comes to consumer preference 52.6% of consumers feel that localized content is more important than the price they pay for the service
  • Vendors receive $25 for every $1 spent on localized content proving consistent return on investment. This has resulted in 71.43% of Fortune 500 companies adopting localization to reach more customers in the countries they already operate in
English is the dominant language among application development organizations and as a result the great majority of apps launch only have an English language option. This approach has failed, in turn causing reductions in usability and reachability.
What Does it Take to Localize an Application?
Every smartphone platform has provisions for developers to localize content, but one has to consider all areas in this landscape. Areas of consideration for mobile application localization include:
  • UI context switching 
  • Handling bi-directional text (RTR <-> LTR)
  • Encoding formats for languages like Chinese, Arabic, etc.
  • Support from web services and middleware

Localization Solution Approach in Detail
Be it Android, iOS or any other mobile application platform, the labels and text content to be localized are placed inside a XML/JSON based common resource file bundled within the app package.
This involves carrying out the strings to different resource files with the equivalent text for different languages. A respective key value pair will identify every specific text (). The resource files are placed inside the folders with the respective language identified by default values within the OS.
UI Context Switching
When the language context is changed, say from English to French, then it would logically fetch the localization resources mapped to French language and display the corresponding text on the user interface. With respect to multimedia resources (images, audio and video), which require localization support, mobile platforms/OS provide region-based qualifiers to the resources folder structure. A resource folder can be differentiated by adding the “-xx” qualifier to the name, where xx would stand for a specific language (en - English, fr - French, etc.). This would help the OS to select region specific resources as well.
  • The user interface should be mirrored when displaying right-to-left languages
  • If base internationalization and Auto Layout is used in iOS, most of the user interface will appear mirrored automatically
  • The text direction changes to right-to-left with the exception of phone numbers and country codes, which are always left-to-right
  • Some views and controls in the user interface may not change direction automatically which can be fixed programmatically
Handling Bi-directional Text
Use of standard views and controls that automatically handle bi-directional text, as described in Displaying Text is recommended. On creation of custom controls for text input, bi-directional text has to be handled explicitly.
Encoding Formats for Languages
There are several different encoding formats such as ASCII encoding, Unicode & UTF-8/UTF-16 are available but to support Internationalization UTF-8 can be used.
Support from Web Services and Middleware
Employ a common character-encoding format across mechanism either UTF-8 or UTF-16.
The following is an example of how internationalization should be handled incase of SOAP services.
Localization in a Mobile Client - SOAP Architecture




Monday, March 21, 2016

Apple "Loop Me In" Event Updates - Mar 2016

Quick updates from today’s “Loop you in” – a special event organized by Apple.

Apple and renewable energy:

Announcements from Lisa Jackson, Apple's Vice President of Environment, Policy and Social Initiatives :

  • Apple states that their goal is to become 100% renewable in 100% of their operations worldwide. This includes all of their offices, retail stores and every single data center belonging to Apple. 
  • Also mentions that 93% of Apple facilities run on renewable energy.
  • And in 21 countries around the world the company is using 100% renewable energy which is quite impressive. Kudos !!
  • And say Hello to Liam, a robot (R&D project) which breaks all the old iPhones and separates the reusable/renewable materials. And wow that's pretty thoughtful and amazing !!
For more information :http://www.apple.com/environment/renewable-resources/



Apple Announces CareKit:


Announced by Jeff Williams, COO, Apple., CareKit will be an open source software framework which will help developers to add features in the health apps like keeping track of care plans, symptoms monitoring, measurement trackers and sharing the same information with family and health care professionals.


Other features include CareCard – which will help people track their individual care plans and Insight Dashboard which will map symptoms and action items in the care card.

So this would be a great added advantage to existing iOS frameworks like HealthKit and Research Kit.

CareKit will be available in April 2016.

For more information : http://www.apple.com/researchkit/



Updates on Apple Watch :


  • Apple showcased new woven nylon bands for Apple Watch in multiple vibrant colors – Black, Pink, Orange and Blue
  • And starting from today Apple watch will be sold at $299




And the most awaited update-  Apple introduces iPhone SE :

Apple presented a cheaper and a smaller option to its flagship iPhone 6S and 6S plus taking the best of both iPhone5 and iPhone 6 series.

Apple is always brilliant, very specific and unique when it comes to design and according to Apple’s website the iPhone SE is ” Crafted from bead-blasted aluminum for a satin-like finish. And matte-chamfered edges and a color-matched stainless steel logo finish the look “

A few key specs of iPhone SE :
  • 4-inch screen
  • 64-bit Apple A9 processor
  • Hands-free and always-on “Hey Siri”
  • 12-MP rear facing iSight Camera (almost same as iPhone6S’), slow-mo upto 240fps
  • Additional camera improvements like True Tone Flash, Panorama limit to 63 MP, 4K ideo recording
  • WiFi-Calling
  • A much faster LTE – upto 150 Mbps.
  • Bluetooth 4.2




iPhone SE pricing starts at $399 for 16GB and goes till $499 for a 64GB version.


Orders to begin from 24-Mar and shipping from 31-Mar reaching 110 countries by end of May.


iOS 9.3 :

Apple VP Greg Joswiak talks about iOS 9.3


Few key features will be:

NightShift - Automatic adjustment of display colors by detecting iOS device's clock and geolocation. And in the morning it turns back into regular settings.

Touch ID and password support in Notes app.

More personalized News

Apple Music integrated with CarPlay and more additional features.

Apple further announces that the update will be available as a free one for everyone starting from today.

iPad Pro - 9.7 inch

Phil Schiller , Apple Marketing chief introduces the 9.7 inch iPad Pro.

Few key specs include :

  • 12MP iSight Camera, 5MP front-facing FaceTime HD
  • 64-bit A9X Chip efficiently providing 10 hours of battery life
  • M9 Coprocessor
  • Focus Pixels
  • True Tone Flash
  • New image signal processor
  • Panorama up to 63 MP
  • Live Photos


Orders starting from 24-Mar-2016 and available from 31-Mar-2016.





Wednesday, February 10, 2016

Best online video streaming service: YouTube Red Vs Netflix Vs Hulu vs Amazon Prime Video

YouTube Red Vs Netflix Vs Hulu vs Amazon Prime Video
With the recently launched new features in YouTube Red service, I wanted to check out some of the features in all the streaming media services. The key aspects used to compare these services are cost/month, the content available on each service, the devices on which the services are supported and few other key features like ad-free, offline content availability, content quality, etc.
Hope this comparison chart is helpful for you to decide the best service which suits you.



The data is referred from multiple sources for which the links are provided below. 
Reference Links:
https://www.youtube.com/red
https://www.netflix.com/
http://www.hulu.com/welcome
http://www.hulu.com/help/articles/203239
http://www.amazon.com/gp/help/customer/display.html/?nodeId=201423000


Monday, February 8, 2016

Getting started with Android Application Development

Thought of sharing my answer on Quora to the question : How do I get started with Android Application Development?

Start by learning Core Java and get familiar with OOPS Concepts.
Gotta be very strong in data types , class/objects , interface concepts , exception handling , multithreading ,string manipulation, utils, etc.

Once done, get started by setting up the development environment for Android.

You can refer this link for the same : Build your first App


Also Android tutorials by Vogella can be a great reference to get hands-on all the basic concepts required to get started with your idea. Vogella - Android Tutorial



Mostly an Android app ( enterprise/consumer) would involve these 5 components/building blocks :


  • User interface
  • Connectivity (HTTP/S -> REST/SOAP,sockets , etc )
  • Data Exchange format parsing ( XML,JSON)
  • Device specific features ( Camera, GPS,etc)
  • Local Storage


So you gotta take that approach and try to build a sample application which will get you familiarized with the above mentioned concepts.
You can start with Simple weather apps, To-Do lists, Nearby Places App, etc.

Hope this helps.

All the best !! Happy Learning :)

Link here: https://www.quora.com/How-do-I-get-started-with-Android-application-development/answer/Mohamed-Ameer-Irshad

Tuesday, December 9, 2014

Security - Convergence of Mobility and Internet of Things


We all are aware of the fact that mobile technology is growing more disruptive and ubiquitous day-by-day and we rely on them for almost every aspect of our daily lives. Right from sharing content on social media to paying bills,performing banking transactions to taking selfies and from sharing locations to chatting with friends, we rely on our smartphones and tablets containing every type of personal data available.

With the advent of new paradigms like the Internet of Things, wearable data devices and smartphones are going to play a major role in our lives. All these devices will converge at one point which will make smartphones and tablets the nucleus in the landscape of our “connected world “.

Importance of Mobile Security :

Smartphones and wearable devices are to be given more importance when it comes to security for the following reasons :

  • They contain more personal data than desktops or laptops
  • The device itself can be easily stolen physically
  • The total number of devices is huge
  • Multiple interface options like bluetooth , GSM,IR,NFC,BLE,HTTP,USB , etc 
  • Smartphones are being used by enterprises for business related operations carrying sensitive enterprise data
  • For the above options they become attractive to the hacker



How much do we trust these mobile platforms to protect our personal and enterprise data? How secure is our data within these devices?
 Desktop platforms to mobile technologies are all prone to security vulnerabilities which can be categorized into the following areas:


  • Browser Level Attacks
    • Phishing
    • Click jacking
  • System Level Attacks
    • iOS jail breaking
    • Android rooting
    • OS data caching
  • Application Oriented Attacks
    • Sensitive data storage
    • Dynamic runtime injection
  • Network Based Attacks and Vulnerabilities
    • Packet sniffing
    • Session hijacking
    • DNS poisoning
  • Web Server Based Attacks 
    • Cross-side scripting
    • Cross-site request forgery
  • Database Based Attacks
    • SQL injection
    • Privilege escalation
    • Data dumping



Areas of Importance

When we are developing an enterprise application for a client who deals with sensitive data like that of mobile banking, healthcare, insurance, etc., we need to consider security attacks to tackle possible vulnerabilities.

In-App security

Covers security at the application level including data and resources by dealing with permissions, access privileges, code obfuscation, etc.

On-Device Security

Data inside the device is more important than the device itself. This deals with securing data stored on the device and data security in jail broken or rooted devices.

Transport Layer Security

Deals with securing the channel of communication between the mobile client and other nodes which can be middleware, backend, or any wearable device.

MEAP Area

Enabling security from a mobile middleware point of view. This deals with bringing in security to mobile enterprise application platforms.

Device/Handset Security

This area deals with security of the handset itself, what happens to the data when the device is lost, and how to prevent data theft after the device is in the wrong hands.

When a security architecture satisfies and covers all the above areas, then the application can be branded as highly secure and reliable. But for the modern days' device security one has to think and implement new paradigms and only then we can completely rely on the devices we use.

Wednesday, May 1, 2013

how to setup hp 4625 deskjet ink advantage all-in-one printer in ubuntu 13.04

straight to the point .

i have connected my hp 4625 and my lenovo thinkpad t420 running ubuntu 13.04 to a netgear router.

its an amazing printer with excellent print and scan quality.never used the fax feature though.works absolutely fine over usb and wifi.I am a hobby photographer (AmeerIrshadPhotography )  so i tried printing my pics on a photo quality/glossy paper and the results are stunning.
now lets get into the business of configuring this printer in ubuntu 13.04
for the first time you print the printer feature would just work fine in ubuntu .just go to "printer" option .click on add and click on network you will  get a dialog box something like this after clicked on find ->network printer



click on forward and it will give you an option to print a test page.and the printer just worked fine over wifi..

now i kept the test page on the scanner to configure the same.

Scanner setup :

open the terminal and type

sudo hp-setup 
and give your password

and follow the below steps.....its advised to keep your printer connected over usb though you are configuring for "over wifi scanning"


and your hp will get detected in the next step



 connection details





and its almost done here



use any scanning utility and try scanning .remember i had kept my test page in the scanning area and it scanned just fine


please dont mind the scanned image quality as i used very low dpi for a quicker scan to update this blog.



Hope you guys found it useful.comment if you have any queries or suggestions.and sorry for the short language and descriptions used.

-Ameer Irshad

Saturday, February 23, 2013

Dum Biriyani for Dummies

this method involves masala and rice to be prepared seperately and mixed later.


high level approach 




This would take you about an hour..

Ingredients : ( tamil translation in brackets)
Rice - Depends upon how many people
Chicken - depends on ur capacity ;)
Vegetable / Olive oil
Ghee (optional) = 1 tsp
Spices-clove(lavangam) ,elaichi(yelakkai)
Onions(vengayam) - 2 big ones for 4-5 ppl quantity
Tomatoes(thakkaali) - 2 big ones for 4-5 ppl quantity
Ginger garlic paste(inji-poondu) - 2 tsp
Chilli Powder - 2tsp
Biriyani Masala - depends ..if u r adding all other ingredients then not much is needed
Turmeric Powder(manjal thool..am i right ? ) - 1tsp
Yoghurt(thayiru) - 2 tbsp
Lemon (Optional)  - half
Cashews  - to garnish
Coriander(kothu malli) Leaves
Mint(pudina) Leaves
Salt - 2 tsp


For masala :
1.Start by heating oil , ghee and spices and add the cut onions and heat till the onions turn slightly brown



2.Add ginger garlic paste, chilli powder , bit of turmeric powder .mix it well and add chicken pieces followed by cut tomatoes.
Keep heating it and by now you should be getting the smell of masala ;)


3.Add mint leaves , salt and biriyani masala if you want..and if you feel the gravey is too thin add yoghurt..
You can also add lemon if you want.squeeze a small lemon for more taste in the masala.


Check for salt and spice here because it would be difficult to add in the later stages..personal exprience :(

if salt is more its fine because once you add rice it will get compensated but if its less add it now else its difficult once you add the boiled rice and start stirring..


Allow this to cook for a while may be for 20mins and in parallel boil the rice.

Once the rice is 3/4th boiled you can add the rice as layers in the masala.

If you want you can add jeera and salt in the rice before you start boiling it.


Cover the vessel wit a lid and leave the stove in sim.

once done you can check it out and garnish with coriander leaves and cashews..



you can also save some cut onions and tomatoes to prepare raitha ;)


hope this helped you..

try it out guys..and practise makes man perfect ;)


Love
Ameer Irshad











Sunday, December 30, 2012

Google Sketchup Pro- Hands-on

New House model:

3D model by Ameer Irshad
tried my hands-on google sketchup for some 3D work and seems to be a handy stuff..

Saturday, December 15, 2012

Installing Hadoop on Windows

Having worked for quite some time on mobile technologies from past few days I have been on Big Data and have been trying out quite a few frameworks related to that.Its been a while since I blogged and thought of writing this step by step tutorial on installing hadoop in windows.
I definitely suggest that if you are taking big data seriously its better you setup hadoop on linux rather than windows ( in case if you are looking for production-like environment).

Apache Hadoop is an open-source framework which is used for distributed processing ,performing computations of large data sets on clusters by distributing computations to each of the node.This framework mainly comes with a hadoop kernel , ability to run distributed MapReduce jobs and a filesystem-HDFS.
There are many tutorials which help you install hadoop on windows but most of them have some issues .After referring few tutorials I am writing this to solve what is missed in other ones.
Since I said earlier that this tutorial is to install Hadoop on windows and the fact that hadoop contains lot of shell scripts to be executed we need a *nix shell for windows. Cygwin is one of them and the best as well.download from here.
Run the setup.exe as an administrator and after selecting the mirror for download remember to select ssh package for installation.refer image below :


once done open the cygwin terminal as an administrator.

step 1:  configure ssh using the command ssh-host-config 
here i have configured a username and password 


 once you have given the password you will recv the confirmation as in the above image..
so now once ssh is configured you can test it using the command ssh localhost

 now generate a key to configure the authentication mechanisms of ssh using the command
 ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 
so that you need not give it everytime u invoke.
 and once done copy it using the command cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys as show above.

now time to download the hadoop framework , i used this mirror and select the hadoop-1.1.1 release.  from the link http://mirror.catn.com/pub/apache/hadoop/common/hadoop-1.1.1/ download the hadoop-1.1.1-bin.tar.gz

(  for list of other mirrors you can always check http://www.apache.org/dyn/closer.cgi/hadoop/common/  )

now extract the hadoop-1.1.1-bin.tar.gz file to c:\cygwin\usr\local and rename c:\cygwin\usr\local\hadoop-1.1.1 folder to c:\cygwin\usr\local\hadoop
now go to the path C:\cygwin\usr\local\hadoop\conf  and open the hadoop-env.sh
go to line9 and u will find an entry for export JAVA_HOME=something
change it to
export JAVA_HOME=/cygdrive/c/Program\ Files/Java/jdk1.6.0_11 
and do not forget to uncomment the line ( remove the # from the beginning of the line )

if you want to get rid of the escape sequence hassle for the space in "program files" you can always install jdk in c:\java\jre or something or use this /cygdrive/c/Program\ Files/Java/jdk1.6.0_11  .it worked for me !!

below are few snap shots of errors which you might get if you dont configure your JAVA_HOME properly.



   (  JAVA_HOME errors )
once your JAVA_HOME is configured ,
open the C:\cygwin\usr\local\hadoop\conf\hdfs-site.xml to configure the hdfs .....add the property tags between the configuration tags so that your file looks like below 


and open the C:\cygwin\usr\local\hadoop\conf\mapred-site.xml to configure the mapreduce service :




once this is done we can now format the hdfs filesystem using the command
bin/hadoop namenode -format 





 and start the dfs subsystems using the command
bin/start-dfs.sh


and you can see hadoop running in http://localhost:yourportnumber/dfshealth.jsp



now we have successfully installed hadoop on windows.I will most more as on when I learn and explore.

Sunday, June 22, 2008

free software song

http://en.wikipedia.org/wiki/Free_Software_Song

http://www.gnu.org/music/writing-fs-song.html

Join us now and share the software;
You'll be free, hackers, you'll be free.

Hoarders may get piles of money,
That is true, hackers, that is true.
But they cannot help their neighbors;
That's not good, hackers, that's not good.

When we have enough free software
At our call, hackers, at our call,
We'll throw out those dirty licenses
Ever more, hackers, ever more.

Join us now and share the software;
You'll be free, hackers, you'll be free.

:)

the power of pervasive computing

i attended a workshop on multi-core architecture in my second year wher i was exposed to few interesting fields of research.though they focussed on multi-core architecture,programming and hardware technology,etc
i understood that all these things focussed on only one thing-connectivity.
i saw few videos in which they exposed few devices which used intel multi-core and all were connected to each other..
to be more clear i can giv a small scenario ..its like wher u turn on ur a.c before u come home jus by sendin an sms,u control ur washing machine from ur mobile phone.as soon as u enter home ur tv starts an interactive application asking u for ur favourite program..gettin share market status on ur mobile phone,etc,etc
it was all good to see but i was wondering how these ppl managed to provide connectivity betwwen these many devices.
this field of research is called pervasive computing and in some areas refered to as Ubiquitous computing.

there is a lot of research work going on in this field..and lot of new innovative ideas are turnin into reality..
my final project which contained 11 modules had 5 modules which come under pervasive computing..but i was not aware of the fact that i am workin on pervasive computing :) actually i was trying to control a comp or laptop using a mobile phone.in which i actually emulated the dos environment on the mobile screen and it was successful..now wen talking about the use and need of an application like this it is really really useful cos this application can be used from nywher to anywher..

a whole lan or wan can be controlled just using a mobile phone..jus imagine tat once u get an access to a network u can control it ,download files from any of the comps,etc or turn bad and shut down and destroy the whole network..

hhmm..destructive ideas apart..


few days back came to knw that in japan a robotics company hav managed to provide connectivity between a robo and a mobile phone as a result the master of the robo can giv instructions to it from wher ever he/she is..

mostly i wud hav been a gprs/wap connectivity bcos no other wireless protocol is so pervasive(upto to my knowledge)

but how come they managed embeddin a gprs device in a robo..wat an innovation..check this out in
http://www.springerlink.com/content/p431402015115626/

we can keep discussing things like this wen it comes to pervasive computing..ther r a lot of things tat we can achieve and implement in this field and as a result life becomes more easy..

not only for a luxurious life..this technology can also be implemented for the physically disabled ppl..and in agriculture ,business,etc ,etc.. my brother once attended a conference organized by tcs in pune.and it was addressed by
many great researchers from microsoft,etc..and also the algo geek c.a.r.hoare(quick sort).. on his return my brother discussed with me ,the various projects going on in this area and almost all the projects wher been carried out for a social cause.. i was very much surprised by the projects he explained ..an realized the power of engineering....
one for farmers,a project for blind ppl,a proj for poor school children,a project for naive computer and calculator users,etc..

and to conclude i wud like to throw some light on the percomp project which is been carried out in the Embedded Systems and Pervasive Computing Lab at Federal University of Campina Grande.
www.percomp.org
to be contd....................
comments and ideas invited...........................

Tuesday, April 8, 2008

The symbol of liberation: a Hi-Tech madrassa

An extract from an article worth reading.

Set amidst the sylvan surroundings of Rajasthan's Ramgarh town, 10 km from the Jaipur railway station, is a sprawling stretch of 173 green acres encircled by a tranquil valley and cool lake - this is where you will find a completely new experiment with the traditional madrassa education system, the Madrassa Jameatul Hidaya.

Usually, madrassas, or Islamic seminaries, are seen by the media as ghettoes of antiquity, orthodoxy and obscurantism. Madrassas have become the butt of suspicion following a series of investigations after the Sep 11 terrorist strikes in the US. They end up proving their credentials of faith and by providing the authorities with certificates of loyalty.
But can you imagine a madrassa with computers, electronic labs, cricket, basketball and volleyball teams and debating societies in English and Hindi? Jameatul Hidaya is one such institution where maulanas work on computers.
The institution is an apt example of how a madrassa must be in these days of hi-tech life. These maulanas are working with the motto: The holy Quran in one hand and a computer in the other.
Maulana Mohammad Fazl-ur-Rahim Mujaddedi, an Islamic scholar and the Ameer-e-Jameatul Hidaya (proctor) of the seminary states: "For Indian Muslims, it's a dream come true.

linux kernel module

there are many tutorials on how to write a basic kernel module..
but only a part of ppl succeed in writing and running a proper module..
cos there are various reasons which may lead to failure ..like ur distribution,the path where you have placed your kernel source directories,kernel versions,etc,etc..
k..in this post am gonna present a basic kernel module which will print "hello " when inserted into the kernel and "bye " when you remove it from the kernel..
here we go!!
requisites:
kernel 2.6.*
i have checked this on redhat,fedora and debian..it never ran on a suse box :(
//file name :hello.c

#include
#include
MODULE_LICENSE("Dual BSD/GPL");

static int hello_init(void)
{
printk(KERN_ALERT "hello\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "bye\n");
}

module_init(hello_init);
module_exit(hello_exit);

does this needs an explanation?nyways..the header files asusual..the license which the source supports..here it is dual..supporting both gpl and bsd..
two user-defined functions......hello_init and hello_exit..the names can be nything cos they r user-defined..
u can define the body as ur wish..here i have attempted to print "hello" when the function hello_init is run
and "bye" when hello_exit is run..
as we have printf library function,printk is used to print in the kernel ,i mean used in lkmp..
for kernel versions 2.4.* the syntax of printk was
printk(<1> "hello\n");
i guess..
here <1> denotes the priority..the lower the number the higher the priority.(as we all know :) )
fine..
then we provide two entry points.
1.module_init
2.module_exit
in the first one we ask the hello_init to be executed i.e., module_init(hello_init)
and the same applies for the second one too .................

and now its time to compile and run..
but how?
first write a Makefile
$ vi Makefile
obj-m := hello.o
and save the file

now you gotta compile it..
by using the make command with -C switch
here u hav to mention the path where u have compiled the kernel source(oops i forgot to tell how to compile the kernel source..k..in the next post for sure :) )
in my comp and most of the comps the path will be /usr/src/kernels/linux-*
in my comp the command is to be


$ make -C /usr/src/kernels/2.6.23.1-42.fc8-i686 M=$PWD modules

on the terminal u wil get the following:

make: Entering directory `/usr/src/kernels/2.6.23.1-42.fc8-i686'
CC [M] /home/sakthi/lkmp/hello.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/sakthi/lkmp/hello.mod.o
LD [M] /home/sakthi/lkmp/hello.ko
make: Leaving directory `/usr/src/kernels/2.6.23.1-42.fc8-i686'


if u get this then its done :)
if u dont :( pls check the path name and Makefile once..
now if u see the folder where u have ur hello.c u can find the following files:
hello.o
hello.mod.c
hello.ko
hello.mod.o

and now its time to run (execute the .ko file) the module..
hey b4 that u need to change the run level yaar..sometimes if u in gui it wont run..
press ctrl+alt+f1

and now
$insmod ./hello.ko
u will get:
hello

if u check ur /proc/kallsysms file and /proc/modules file u can find ur module name man!!
$cat /proc/kallsymsgrep hello
$cat /proc/modulesgrep hello

and now its time to remove
$rmmod ./hello.ko
bye will be displayed..
to come back to gui.......ctrl+alt+f7
its done..so u have written,compiled,inserted and removed back a proper kernel module successfully :)
try this out..its good..
all the best
Ameer Irshad

Thursday, March 20, 2008

anatomy of device drivers

now that wen i have got a good response for this post on device drivers i wud love to thankyou all and share more..now let us examine the anatomy of the device driver..
i mean the major components of a driver..from my previous post we can percept that device driver is a software with a set of entry
points that can be called by the operating system.it can also contain *data structures private to the driver*references to kernel data structures external to the driver*routines private to the driver..here i dont mean entry points..instead routines..
now let me stop boring you ppl with the theory part and jump into programming.. :) :)
most drivers are written as a single source file or set a set of dependent files and
compiled usign make command..(before that we gotta write the Makefile specifying the order
of compilation of all the .o files)
the initial part of the driver source file is called as a prologue and the rest contains entry points.
the prologue contains the initialization part as most of the .c files are written.
* #include-header files * #define-all the constants used in the driver * all the variable declarations and data structures
as said before the remaining part contains the entry points
like init,exit,open,read,write,close and all
k let me continue in my next post..got some work :(

Friday, March 14, 2008

device drivers

an essential part of the operating system..

a very interesting and challenging subject for system programmers..
device drivers are the programs which allow high-level programs to interact with the hardware..
now all that am going to talk about is device drivers in unix and unix-like os.

in a programmer's point of view there are four types of drivers..
* char drivers(read/write char by char eg..floppy,mouse)
* block drivers(block by block.eg.filesystems..hard drivers)
* terminal drivers(ttys)
* stream drivers(don knw much abt these.neva worked..must be related to stream interface functions)

in unix/linux device drivers can be part of the kernel or can be loadable modules..
modules are the programs which can be loaded into the kernel during run-time..these are generally called

kernel-modules..(refer d book kernel-module programming

u can find many books on linux kernel module programming(lkmp)..but make sure that they deal with kernel 2.6 and above..
cos lkmp slightly differs from 2.4.* to 2.6.*.

after writing the kernel module we can load them into the kernel using the insmod..
if ur module name is hello.c
then u gotta load its .ko
bit4054@VITLINUX$ insmod ./hello.ko


to check whether ur module is loaded or not u can check the name of the loaded module in /proc/modules
just give
bit4054@VITLINUX$ cat /proc/modules

and also u can check for the symbol table in

bit4054@VITLINUX# cat /proc/kallsyms

the above file contains the kernel symbol table..

and to remove the module

bit4054@VITLINUX$ rmmod ./hello.ko

in this way a module is written and loaded into the kernel..

like wise u can write a device driver..
there are few basic operations which are essential in a driver programming..

open()

read()

write()

ioctl()

poll()

close()

but its a very painful task cos u gotta knw about the h/w at the bit-level

there are many APIs that wil help u in writing a driver..and u need good testing environments..
few of the APIs are:


  • Advanced Linux Sound Architecture (ALSA) - The standard modern Linux sound driver interface
  • I/O Kit - an open-source framework from Apple for developing Mac OS X device drivers
  • Installable File System (IFS) - a filesystem API for IBM OS/2 and Microsoft Windows NT
  • Network Driver Interface Specification (NDIS) - a standard network card driver API
  • Open Data-Link Interface (ODI) - a network card API similar to NDIS
  • Scanner Access Now Easy (SANE) - a public domain interface to raster image scanner hardware
  • Uniform Driver Interface (UDI) - a cross platform driver interface project
  • Windows Display Driver Model (WDDM) - the new graphic display driver architecture for Windows Vista
  • Windows Driver Foundation (WDF)
  • Windows Driver Model (WDM)



i have tried writing and running few basic kernel modules but still learning to write device drivers..

u can refer many books linux device drivers alessandro rubini 3rd edition..(note:2nd edition deals only with kernel 2.4.*)

writing unix device drivers.(don remember the author name)..

and am sure this post wil give u a very very basic knowledge on drivers..

linux on IBM's BlueGene

When i was browsing about high performance computing for a seminar i came across links on

blue gene..the fastest super computer from IBM..they announced blue gene in 1999 which was

initially developed to facilitate and speed up scientific research..like..human protein

modelling,etc..now used in various labs for various reasons one among which is nuclear

test simulations

Blue Gene is the successor of deep blue,the super computer which defeated gary kasprov in a chess competition..

• it has 65000 processors..

• speed ranging in petaflops

• one quadrillion operations per second....


Tuesday, January 15, 2008

QURAN-the light of the world

hello friends!anybody interested in reading the Holy QURAN understanding word for word(Arabic for English) may refer the link below..
http://www.studyquran.co.uk/Quran_ArabicEnglish_WordforWord_Translation.htm

or just click here

Thursday, January 3, 2008

when your command prompt is disabled

When you attempt to run CMD.exe or a batch file, you may receive the message "The command prompt has been disabled by your administrator". This is caused by restrictions placed in Registry. DisableCMD value is set to 1 or via Group Policy. To enable Task Manager, try any of these methods:

Method 1: Using the console registry tool
Click Start, Run and type this command exactly as given below: (better - Copy and paste)

REG add HKCU\Software\Policies\Microsoft\Windows\System /v DisableCMD /t REG_DWORD /d 0 /f
Method 2: Edit the registry directly
Open Registry Editor (Regedit.exe) and navigate to:

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System]

In the right-pane, double-click DisableCMD and set it's data to 0


Method 3: Using Group Policy Editor in Windows XP Professional.
Click Start, Run, type gpedit.msc and click OK.

Navigate to User Configuration \ Administrative Templates \ System

Double-click the Prevent access to the command prompt

You can then disable or set the policy to Not Configured. Disabling or setting this policy to Not Configured should solve the problem.

Saturday, October 20, 2007

how to delete avpo.exe virus?

its a worm actually.
if u wanna delete this file pls do the following..

There is a trojan/virus (either the Win32/Pacex virus or the Win32/PSW.Agent.NDP trojan) that uses those two files. Here is how you can get rid of them:

1) Open up Task Manager (Ctrl-Alt-Del)
2) If wscript.exe is running, end it.
3) If explorer.exe is running, end it.
4) Open up “File | New Task (Run)” in the Task manager
5) Run cmd
6) Run the following command on all your drives by replacing c:\ with other drives in turn (note: if you have autorun.inf files that you think you need to backup, do so now

del c:\autorun.* /f /a /s /q

7) Go to your Windows\System32 directory by typing cd c:\windows\system32
8) Type dir /a avp*.*
9) If you see any files names avp0.dll or avpo.exe or avp0.exe, use the following commands to delete each of them:

attrib -r -s -h avpo.exe
del avpo.exe

10) Use the Task Manager’s Run command to fire up regedit
11) Navigate to HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run (as usual, take a backup of your registry before touching it!)
12) If there are any entries for avpo.exe, delete them.
13) Do a complete search of your registry for ntde1ect.com and delete any entries you find.
14) Restart your computer.

comment for further queries..

Saturday, September 8, 2007

tsr programming

tsr-terminate and stay resident programming is a very excellent field where u can learn and explore a lot of intrsing stuff.
a best way to explore ur DOS kingdom..
these programs stay resident in ur memory once they are executd..and can be invoked any time wen u need using some hot keys..

This is achieved by capturing interrupts and adding our own ISRs(Interrupt Service Routines) in the IVT(Interrupt Vector Table)..
Each ISR is addressed by an Integer..There are totally 256 interrupts ranging from 0 to 255..
and v make our program resident using the keep() system call..defined under dos.h

TURBO C has the facility of caputring these interrupts and replacing our own ones..
some of the functions used are getvect(),setvect() ,enable(),disable()..,,etc..defined under "dos.h"
some of the interrupts are 8-timer
0x417-keyboard and many more..

TSR programming is really intrsting wen learnt thoroughly or even if v get a small essence of it..

All virus programs are essentially TSRs but its not the vice versa..
We can use these techniques to wirte out own anti virus programs taking care of our MBR(Master Boot Record) and even tackling file viruses..

I hav written a program which monitors ut MBR and notifies u wen any illegal access is done to tat..this is done by monitoring 0x413 or 0x414
I referred Writing TSRs Through C by Yashwant Kanetkar..

Post ur comments to know more about TSR Programming..