Fresh Engineering Graduate Training Topics

I was just thinking of starting a course for Computer Science and Electronics Engineers who have just passed out of College.

The topics that I thought of covering can be split into the following sections, covering what I call the basics.

Basic  Networking / Internet

  • Protocols (TCP/IP, NWLink, NetBios )
  • Application protocols, ports, configuring POP,SMTP,IMAP,NNTP,FTP,
  • Routers,ADSL, dynamic DNS,WIFI
  • Trouble shooting tips, techniques
  • Search Techniques,  Newsgroups search, Torrents
  • Web hosting, blogging, CMS, Adsense, search engine optimization, tools,tips and techniques
  • VPN, Open VPN

PC Trouble Shooting Assembling

  • BIOS – what can be done, basic and advanced techniques.
  • ISA,PCI, PCI Express, AGP and newer bus topology
  • PCMCIA,ExpressCard
  • Various Boot CDs, booting from Flash disk, CDROM
  • Drive imaging techniques, software, nLIte, VLite
  • SysInternals

Telecom

  • Mobile – GSM,CDMA,EDGE,GPRS,Evdo, SMS – PDU/Text formats
  • Land line – ISDN- BRI,PRI, PSTN,PABX,SMDR
  • IP Telephony

Software

  • Various OSes, basic command, shortcut keys etc., Separating DATA from OS, Data Recovery
  • OS differences, versioning
  • Freeware useful Utilities, registry hacks
  • Programing –  Source Control, UI design, Registry, Dotnet, Network programming tricks, techniques, tools(packet sniffers).
  • Virtual Machine Software -VMWare (Snapshots,Serial Ports on VMs) Virtual PC, Live CDS 
  • Sysinternals tools

Electronics

  • Basic electronic circuits
  • Batteries, chargers
  • Microcontrollers – PIC
  • Simulators, Emulators
  • Serial Port, USB, Bluetooth
  • PCB design with Eagle

Will add more as and when required or when I get new ideas. If you are in or around Calicut and needs training on the above topics, please contact me using the contact form of this site.

How to show update availability for a windows program on a PHP/Drupal site ?

With the release of the new version of Jaledit, I thought of introducing a new feature to all my programs. It’s the typical check for updates. I found that Opera does something similar, where in, when the check for update menu option is clicked, a message is displayed if there are no updates. If there’s an update the web page with the download link for the new version of Opera is is displayed.

I didn’t want a fully automatic update where the update file is downloaded in the background for selfish reasons (I want a page hit ) 🙂
So here’s the base spec in my terms

  1. Have a check for updates menu item in the main form and button in the about box form of my Delphi program JALEdit.
  2. Once the user clicks the option, the JALEdit webpage is displayed .
  3. Display message on the page about the status of the update on the top of the page.

My PHP skills = 0, Delphi skills = Advanced

Digging a bit around PHP documentation led to  version_compare, generally used to check PHP versions, but works quite well for program versions as well.

Here’s the code that does the job
$latest = ‘0.5.6’; // define your latest version
$ver = $_GET[‘ver’]; // for me this is like a command line argument get whatever is there after ?ver=
if  ($ver)  // Do the check only if the version info is passed  if its just http://jal.sunish.net/jaledit then nothing happens
 {
if (version_compare($latest,$ver) == 1) // there is an update available
print(“<hr/><strong>”.”An update to JALEdit is available. Latest version is :”.$latest.”</strong>”) ;
 // display in bold about update status in between 2 lines
else
print(“<hr/><strong>”.”No update available.You are using the latest version.”.”</strong>”);
print “<hr/>”;
}

What I learnt,

  1. version_compare()  functions compares versions with “.”.
  2. $_GET[‘variable’] – function to sort of retrieve command line argument.
  3. . is equivalent to + for string concatenation.
  4. A semicolon is required before the else clause (different from Pascal syntax)

Delphi Code

procedure TfrmSecMain.acncheckUpdatesExecute(Sender: TObject);
var
  tempStr: string;
begin
  tempStr := 'http://jal.sunish.net/jaledit?ver=';

  with TJclFileVersionInfo.Create(Application.ExeName) do
  try
    tempStr := tempstr + Format('%s', [FileVersion]);
  finally
    Free;
  end;
  ShellExecute(0, 'open', pcHAR(tempStr), '', '', SW_SHOW);
end;

The Delphi code is pretty straight forward with the JCL function to retrieve the file version from the exe file and that’s passed to the Shellexecute function to do a default browser call.

The PHP code I guess should work with wordpress and any CMS.

 

GPRS Activation and Deactivation procedure for BSNL Postpaid connections

Being one of the early adopters of GPRS in Kerala, I thought I knew what’s going on with BSNL GPRS. Time and again I was proved that my knowledge is limited. I wanted to change my GPRS Plan to Plan 199 and had thought that required a letter. I had suggested to BSNL employees and customer care how easy it would be if that was possible through SMS. In fact it was possible for Prepaid customers and I was told Postpaid users are less and the feature is likely not to be implemented. For me to give the letter to customer care I have to travel around 80 kms in total and wait for the activation. Now with my friend in BSNL office I was confident I could get it done fast. To my surprise I was told it can be done by sending an SMS.

So the procedure is as follows.

To deactivate BSNL GPRS on postpaid connection

Send an SMS to 53733 (3733 was the suggested number but with the new numbering an from the reply SMS no that I got it should be 53733) with the following message.

GPRSD

For activating Plan49 send GPRS49 and for Plan 199 send GPRS199 to 53733. You’ll get a reply SMS asking for confirmation to which you got to reply with GPRS49Y and GPRS199Y respectively. The activation seems to take more time than deactivation and it could take upto 24hours.

The important thing about the service was that it was notified by BSNL officially and it will probably work for only customers in the south zone.

A search with google lead to this doc http://www.ap.bsnl.co.in/mmsgprs/Portal%20link%20documents/Manual-Device+Settings.doc Why can’t they summarize the information and present it decently ? Looks like I got to do it, with all major mobile service providers, their data plans, APN names, activation and deactivation procedures etc would make good blog post.

Does the ATM/Debit Card Expire ?

Yesterday I got a new Visa ATM card for my Federal Bank Account. The expiry date is in 2017. The previous card was valid only for 3 years and the new one has a validity period of 10 years. I was told the old one will work without any problems. I tested and it indeed worked. I guess the bank auto renewed the old one and associated it with my account. Since the new one has a different card number, there’s no conflict of PINs.. However I just changed the new one’s PIN to the old one. So if you have a Federal bank account and thought that the card expired on expiry date, don’t worry, you an continue to use it.

So Why Should I have a personal domain name ?

Of course for businesses you have no choice, you got to get one for the n number of reasons that you might get on a Google search. Long time back my good old friend Shankar Subrahmanian asked me What do you do with a domain name ? 

So here are the pros and cons of having a domain name in your name.

Advantages

  • You feel as if you are one the web, on the net, having a web presence or identity or what ever.
  • Have a stylish email id root@root.com or me@me.com or whatever@whatever.whatever . Yes most domain names will let you have unlimited email ids and you can have a catch all email id so that you can get all spam.
  • You can find the web site who spammed you. On the  registration form on various websites, give the email id as websitename@yourdomainname and use the catchall option to get the registration info.  Later you can know when you get an unknown newsletter, or spam from which web site it actually originated or which web site sold your email address.
  • You don’t loose your identity till you stop renewing your domain.
  • You can register and get free samples of products from sites like http://microchip.com where they do not accept emails from hotmail,yahoo or gmail or any free email providers.
  • Create as many accounts that you want for invite by email id sites. You can have multiple Gizmo accounts or anything that offers a service or product for free.
  • Provide great content and your site becomes a brand, a sellable commodity something like a business entity.

Disadvantages

  • Spam
  • Spam
  • and more spam with catch all
  • Its like you lost your anonymity, anybody can contact you. You have a  forced identity. Well you asked for it …
  • You got to pay renewal fee every year 🙁
  • You got to have hosting and have to pay for it 🙁

I want to add more, but here’s a start. do comment and add more advantages or disadvantages.

Hosting outage

Today, there was a long outage of my site, looks like Manas Hosting is best described by keywords cheap and unreliable. I will have to let everyone know about their poor service and not fall into trap of their Google ads.  There were lots of database errors off late and they couldn’t answer most of my tech queries. 

BSNL GPRS configuration

 

Yesterday I happened to go to Calicut BSNL office. I had an issue with my mobile connection where call forwarding didn’t work. I tried changing the mobile and trying various options, but no luck. Called customer care and they asked to do the usual stuff, turn off the mobile, remove SIM, blah blah. Its really difficult to convey the message that you are technically competent and don’t want to try stupidities ordered by them.

The best part of yesterdays’ trip was that I had a friend, who solved my problem. He made a call and they admitted there was a problem with my no. and after 2 minutes, said it was solved and it just worked. While I was sitting at my friend’s office, I found somebody sitting behind me trying to get GPRS working. Being one of the first customers of BSNL’s GPRS I knew the solution, except for the fact the laptop to be configured was in Vista.

So here’s the important information that you need to know for configuring GPRS on laptop,desktop for BSNL post paid connection.

  1. Install and ensure the modem driver for your mobile is installed.
    (Once everything is done, you’ll find an additional COM port in ports of device manage and a mobile under modems)
  2. Create a dial up connection entry,
    Username : Mobilenumber (don’t put a 0 before the number)
    Password : Mobilenumber (don’t put a 0 before the number)
    Dialup Number: *99#
    UPDATE: No username or password required
    In the properties of the new connection entry, ensure that the modem selected is the newly created modem.
  3. (If you try to connect with these two steps, the connection will progress till authentication. After that you’ll get a PPP link error. The next step is important to prevent that)
  4. Go to device manager select modems, and right click for options of the mobile modem. Click on Advanced and add this to the extra initialization settings.
    AT+CGDCONT=,”IP”,”bsnlsouth”
    UPDATE: replace the above with AT+CGDCONT=,”IP”,”gprssouth.cellone.in”
    UPDATE:2013 replace the above with AT+CGDCONT=,”IP”,”bsnlnet”
    Click OK
  5. That’s it, now connect using the new connection and you should be able to browse the net and do whatever.

Side Note : BSNL officially has not acknowledged that it supports EDGE, but it supports EDGE (Enhanced Data rates for GSM Evolution (EDGE)) on select towers, mainly in big towns and cities. The speed is dependent on the network traffic and can have high speed, when the network is not busy. The problem is there’s no way in most mobiles to differentiate between normal GPRS (speed less than 44kbps) and EDGE (can be as high as 236Kbps).
Go in for the unlimited plan if

1) Your area has EDGE.
2) You are using Internet from a laptop or desktop.

Feel free to ask and comment on your success or failure with the above steps.

Excel Rounding Bug and its solution

For many days I was working on a software for automating the daily accounts of our theatre. The software I developed will generate a QIF file that can be imported to Microsoft Money. I used excel automation within delphi to do the printing of DCR (Daily Collection Report). A copy of the DCR is provided to the film distributor. Since quite a lot calculation is involved and the printing has to be formatted I chose excel. It was then that I found that the printed values after the decimal point was not tallying with the Reps report. I knew its’s well known rounding error, but didn’t know its solution. After some googling I found this link http://www.cpearson.com/excel/rounding.htm where a detailed explanation is given. Eventhough the page is a bit dated the solution still works. Just go to Tools,Options and in the Calculation tab you got to check the option of Precision as displayed. Problem solved. Looks like the setting is saved on the open workbook.

Evaluating CMS

After long searches and researches, I have finally concluded that I need a CMS and CMS made simple seems to be the winner. Serendipity,joomla and many others were considered but CMS made simple seems to be the simplest.

Now I’m just thinking of the content build up hosting etc. It will be hosted on http://sunish.net . Soon my old site would be just an archive.