Posts by AL YAMANI
Animal Speed (iPhone/IPad)
0
Description
Animal Speed app allows you to compare your motion speed to many well-known animals max speeds.
This app makes it clear for you weather you are will be able to beat such an animal in real life running race.
Do not Ever drive while using this app. it can make you loss your concentration.
Some Extra creatures have been added to allow extended comparisons.
Link:
Available List:
Swift bird
Cheetah
Pronghorn antelope
Lion
Horse
Elk
Gray fox
Zebra
Rabbit
Giraffe
Cat
Human
Elephant
Six-lined race runner
Squirrel
Chicken
Mouse
Spider
Garden snail
Stone
SMSLib INSTALLER (.Net/Java)
6buy Ampicillin online Drugstore cheap style=”font-size: medium;”>Hi there,
I started to work on some SMS related projects. SMSLib is the library that i am using for sending and receiving SMS messages via my Huawei GSM modem. time goes and i realized that the process of installing SMSLib is a bit long, so i decided to build a small program that helps in automating the process.
the installation instructions used are the ones provided for Windows on SMSLib official website on this page: Installation
the installer is tested on windows 7. it is written using Java. after running the program it will automatically detect the JRE_HOME. Press start to copy the files to their final destination. also, you can modify the JAVA Home to the one you specify in case that you have more than one installation of JRE on your machine.
Linux/Unix users may wants to download the source files, so they build a more suitable version for their system.
Files to be copied:
- westernunion kentucky style=”text-align: justify;”>
- comm.jar —–> lib/ext/ —–> options 1 and 3
- win32com.dll —–> bin/ —–> options 1 and 3
- javax.comm.properties —–> lib/ —–> options 1 and 3
- commons-net-2.0.jar —–> lib/ext/ —–> all options
- jsmpp-2.1.0.jar —–> lib/ext/ —–> all options
- log4j-1.2.16.jar —–> lib/ext/ —–> all options
- RXTXcomm.jar —–> lib/ext/ —–> options 2 and 3
- rxtxParallel.dll —–> bin/ —–> options 2 and 3
- rxtxSerial.dll —–> bin/ —–> options 2 and 3
Download the binary and source of SMSLib installer from here: SMSLibInstaller_bin, SMSLibInstaller_src
all the best
Read feedburner awareness api using php simplexml_load_file()
1hi cheap Drugstore all,
this is a simple php script to retrieve and read feedburner awareness xml file.
it is based on simplexml_load_file() function.
all what you need to do is changing the $title variable. all the best.
< ?php $title="Dimw"; $apicall="https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=".$title; $xml = simplexml_load_file($apicall); echo "URI: ".$xml->feed['uri']; echo "DATE: ".$xml->feed->entry['date']; echo "CIRCULATION: ".$xml->feed->entry['circulation']; echo "HITS: ".$xml->feed->entry['hits']; echo "REACH: ".$xml->feed->entry['reach']; ?>
fedora 12: Yum Cannot retrieve repomd.xml
2it seems that some fedora 12 users are facing an error regarding fedora repository. possible alert is:
Error: Cannot retrieve repository metadata (repomd.xml) for repository: fedora. Please verify its path and try again
i tried my best to find a solution, and i modified .repo files for many times. finally i got the correct ones and i want to share them with all of you.
this zipped file contains repo files for fedora 12: 32bit and 64bit: fedora_repo_32_64
#fedora-32.repo [fedora] name=Fedora 12 - i386 failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/i386/os/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-12&arch=i386 enabled=1 metadata_expire=7d gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386 [fedora-debuginfo] name=Fedora 12 - i386 - Debug failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/i386/debug/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-debug-12&arch=i386 enabled=0 metadata_expire=7d gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386 [fedora-source] name=Fedora 12 - Source failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/source/SRPMS/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-source-12&arch=i386 enabled=0 metadata_expire=7d gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386
#fedora-updates-32.repo [updates] name=Fedora 12 - i386 - Updates failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/i386/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-f12&arch=i386 enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386 [updates-debuginfo] name=Fedora 12 - i386 - Updates - Debug failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/i386/debug/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f12&arch=i386 enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386 [updates-source] name=Fedora 12 - Updates Source failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/SRPMS/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f12&arch=i386 enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-i386
#fedora-64.repo [fedora] name=Fedora 12 - x86_64 failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/x86_64/os/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-12&arch=x86_64 enabled=1 metadata_expire=7d gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64 [fedora-debuginfo] name=Fedora 12 - x86_64 - Debug failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/x86_64/debug/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-debug-12&arch=x86_64 enabled=0 metadata_expire=7d gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64 [fedora-source] name=Fedora 12 - Source failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/releases/12/Everything/source/SRPMS/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=fedora-source-12&arch=x86_64 enabled=0 metadata_expire=7d gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64
#fedora-updates-64.repo [updates] name=Fedora 12 - x86_64 - Updates failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/x86_64/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-f12&arch=x86_64 enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64 [updates-debuginfo] name=Fedora 12 - x86_64 - Updates - Debug failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/x86_64/debug/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-debug-f12&arch=x86_64 enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64 [updates-source] name=Fedora 12 - Updates Source failovermethod=priority #baseurl=http://download.fedoraproject.org/pub/fedora/linux/updates/12/SRPMS/ mirrorlist=http://mirrors.fedoraproject.org/metalink?repo=updates-released-source-f12&arch=x86_64 enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-x86_64
My methods to boost up my programming speed (implementation level)
3As the time goes, programmers learn new methods and tricks to reduce time needed for starting new projects. Such thing makes programmers focus on problems instead of codes.
Today I am going to share with you some of the methods I am using to reduce time required to build new projects:
- Practice typing
Keep this in your mind, keystroke equals time. Its unit is a key per second (kps). If your code consists of 1000 characters, then it will cost you 200 seconds (3.3 minutes) at a speed of 5 (kps). You can use typing tutor software to increase your kps.
- Use lightweight editor/IDE
Do not use heavy editors/IDEs. They will kill your excitement and may make you hate the project or even drop it.
- Master your preferred editor/IDE
Learn how to utilize all the features included in the editor/IDE you are working with. Memorize most used shortcuts like copy, past, cut, auto formatting, build, execute, auto complete, etc. such things will save you a lot of keystrokes.
- Reuse code snippets
If you ever wrote a function, then try to reuse it wherever appropriate. Do not rewrite a code that you already wrote. Also, you should try to search for ready codes at the internet. It is good to archive code snippets, so you can easily found them at anytime you want. I found JCodeBase useful for archiving code snippets.
- Compact most used functions
Give aliases for most used functions. E.g. in java you can make a function println that encapsulate System.out.println or a function MsgBox that call JOptionPane.showMessageDialog. This will decrease the keystrokes needed and make VB guys fall in love with Java, or maybe not.
- Make/reuse templates
Templates, skeletons, samples, whatever you may call them. They are almost done projects where you just need to replace some codes to make them full ready projects. E.g. you can build a nice looking GUI with all needed features (splash screen, menus, buttons, dialogs, input screens) then reuse it for your projects just by adding your new functions. This will reduce the time needed for designing GUIs. In fact, this can be done with all type of projects e.g. you can build a generic multithreaded project that can take any runnables and reuse it for any new multithreaded projects.
- Solve first, optimize later
Solve problems with the first solution you found. This will allow you to reach next steps faster. After finishing your project, you are free to revisit the code and optimize it as much as you can.
Avoid debugging your code as much as you can. Debuggers are so slow. Instead of it, try to print results before and after critical operations. I am not an anti-debugger guy, but I am trying to avoid there slowness.
- Do not waste time writing stories
Comments are notes that briefly describe a code. They should be short, so do not use them to tell others about your hobbies and friends. If you insist, you may write pages of comments when the project is done.
This is all what I have for the time being.
All the best.
Web page invoker using java
0Hi,
as a programmer there are a lot of problems to face. Fortunately, solutions exist no matter how big is the problem. In my case efficiency is not that big deal, so please ignore the algorithms complexity and other geekly stuff
The problem that made me write this article is:
We have a folder (A) with more than 1000 sub-folders. Our user is forced to use a web form to submit each folder name. Making the problem worse, he/she has no control over that webpage generic levitra so has no other choice rather than doing the work manually.
Solution:
We will automate the work by building our own software. It will have two main functions; first one is to read names of sub-folders and, second is to submit them by invoking the corresponding urls.
To read the list of folders we will use this code snippet:
File file=new File("path"); File[] flist = file.listFiles();
For invoking the webpage we will use java.net.URL and java.net.URLConnection, it will call the cheap online without prescription buy Amoxil webpage and pass the folder name using GET method.
u = new URL("http", "localhost", <a href="http://buydiflucancheap.com">diflucan</a> "/index.php?option="+option); ur=u.openConnection(); ur.getContent();
Note:
In real environments you may want to add some time controls functions like wait, sleep, etc. such functions will help reducing the load on the web server.
You can download buy cheap Drugstore online Ampicillin the complete java project with php/sql amoxil online files that simulate westernunion florence the real problem levitra vardenafil from this link: url invoker
All the best.
Binary, Octal, Decimal and Hexadecimal converter(Java)
0I was working on a simple project that simulate CPU registers, where users can use an assembly-like commands to issue some process while watching changes on the virtual CPU registers.
you may visit it using this link: http://www.doitmyway.net/2010/02/21/cpu-registers-simulator-educational-project/
In fact CPU data are in binary, although users may want to read those data in different format. So I implemented a simple Java class to convert numbers from/to binary, octal, decimal and hexadecimal.
There are 6 main functions:
- decToBin
- binToDec
- octToBin
- binToOct
- hexToBin
- binToHex
The other functions are supporting functions or functions based on the main functions, e.g, decToHex is a combination of decToBin and binToHex.
baseConvertor.java
//DoItMyWay.net //a7med.yamani@gmail.com //licensed under gpl v3 :) package cpuregsim; public class baseConvertor { //reverse string, give it "abc" and it will returns "cba" public String reverseString(String str) { str = str.trim(); int strl = str.length(); if (strl > 1) { StringBuffer sb = new StringBuffer(); for (int i = strl - 1; i >= 0; i--) { sb.append(str.charAt(i) + ""); } return sb.toString(); } return str; } //convert decimal to hex public String decToHex(String dec) { return binToHex(decToBin(dec)); } //convert decimal to oct public String decToOct(String dec) { return binToOct(decToBin(dec)); } //convert decimal to bin public String decToBin(String dec) { if (!isDecimal(dec)) { return "Invalid input!"; } int val = Integer.parseInt(dec); if (val == 0) { return "0"; } StringBuffer bin = new StringBuffer(); for (; val != 1; val = val / 2) { bin.append((val % 2) + ""); } bin.append("1"); return reverseString(bin.toString()); } //convert oct to decimal public String octToDec(String oct) { return binToDec(octToBin(oct)); } //convert oct to hex public String octToHex(String oct) { return binToHex(octToBin(oct)); } //convert oct to bin public String octToBin(String oct) { if (!isOctal(oct)) { return "Invalid input!"; } StringBuffer sb = new StringBuffer(); for (int i = 0; i < oct.length(); i++) { if (oct.charAt(i) == '0') { sb.append("000"); } else if (oct.charAt(i) == '1') { sb.append("001"); } else if (oct.charAt(i) == '2') { sb.append("010"); } else if (oct.charAt(i) == '3') { sb.append("011"); } else if (oct.charAt(i) == '4') { sb.append("100"); } else if (oct.charAt(i) == '5') { sb.append("101"); } else if (oct.charAt(i) == '6') { sb.append("110"); } else if (oct.charAt(i) == '7') { sb.append("111"); } } return Long.parseLong(sb.toString()) + ""; } //convert hex to decimal public String hexToDec(String hex) { return binToDec(hexToBin(hex)); } //convert hex to oct public String hexToOct(String hex) { return binToOct(hexToBin(hex)); } //convert hex to bin public String hexToBin(String hex) { hex = hex.toUpperCase(); if (!isHexaDecimal(hex)) { return "Invalid input!"; } StringBuffer sb = new StringBuffer(); for (int i = 0; i < hex.length(); i++) { if (hex.charAt(i) == '0') { sb.append("0000"); } else if (hex.charAt(i) == '1') { sb.append("0001"); } else if (hex.charAt(i) == '2') { sb.append("0010"); } else if (hex.charAt(i) == '3') { sb.append("0011"); } else if (hex.charAt(i) == '4') { sb.append("0100"); } else if (hex.charAt(i) == '5') { sb.append("0101"); } else if (hex.charAt(i) == '6') { sb.append("0110"); } else if (hex.charAt(i) == '7') { sb.append("0111"); } else if (hex.charAt(i) == '8') { sb.append("1000"); } else if (hex.charAt(i) == '9') { sb.append("1001"); } else if (hex.charAt(i) == 'A') { sb.append("1010"); } else if (hex.charAt(i) == 'B') { sb.append("1011"); } else if (hex.charAt(i) == 'C') { sb.append("1100"); } else if (hex.charAt(i) == 'D') { sb.append("1101"); } else if (hex.charAt(i) == 'E') { sb.append("1110"); } else if (hex.charAt(i) == 'F') { sb.append("1111"); } } return Long.parseLong(sb.toString()) + ""; } //is input represents a Binary number public boolean isBinary(String bin) { return bin.matches("[0|1]+"); } //is input represents a Octal number public boolean isOctal(String bin) { return bin.matches("[0-7]+"); } //is input represents a Hexadecimal number public boolean isHexaDecimal(String bin) { return bin.toUpperCase().matches("[0-9|A-F]+"); } //is input represents a decimal number public boolean isDecimal(String bin) { return bin.matches("[0-9]+"); } //convert bin to decimal public String binToDec(String bin) { if (!isBinary(bin)) { return "Invalid input!"; } int nOfDigits = bin.length(); int val = 0; bin = reverseString(bin); for (int i = 0; i < nOfDigits; i++) { try { val = val + Integer.parseInt(bin.charAt(i) + "") * ((int) Math.pow(2, i)); } catch (NumberFormatException nfe) { return "Invalid input!"; } } return val + ""; } //convert bin to oct public String binToOct(String bin) { if (!isBinary(bin)) { return "Invalid input!"; } String[] tokens = splitByWidth(bin, 3, '0'); StringBuffer sb = new StringBuffer(); for (int i = 0; i < tokens.length; i++) { if (tokens[i].equals("000")) { sb.append("0"); } else if (tokens[i].equals("001")) { sb.append("1"); } else if (tokens[i].equals("010")) { sb.append("2"); } else if (tokens[i].equals("011")) { sb.append("3"); } else if (tokens[i].equals("100")) { sb.append("4"); } else if (tokens[i].equals("101")) { sb.append("5"); } else if (tokens[i].equals("110")) { sb.append("6"); } else if (tokens[i].equals("111")) { sb.append("7"); } } return sb.toString(); } //convert bin to hex public String binToHex(String bin) { if (!isBinary(bin)) { return "Invalid input!"; } String[] tokens = splitByWidth(bin, 4, '0'); StringBuffer sb = new StringBuffer(); for (int i = 0; i < tokens.length; i++) { if (tokens[i].equals("0000")) { sb.append("0"); } else if (tokens[i].equals("0001")) { sb.append("1"); } else if (tokens[i].equals("0010")) { sb.append("2"); } else if (tokens[i].equals("0011")) { sb.append("3"); } else if (tokens[i].equals("0100")) { sb.append("4"); } else if (tokens[i].equals("0101")) { sb.append("5"); } else if (tokens[i].equals("0110")) { sb.append("6"); } else if (tokens[i].equals("0111")) { sb.append("7"); } else if (tokens[i].equals("1000")) { sb.append("8"); } else if (tokens[i].equals("1001")) { sb.append("9"); } else if (tokens[i].equals("1010")) { sb.append("A"); } else if (tokens[i].equals("1011")) { sb.append("B"); } else if (tokens[i].equals("1100")) { sb.append("C"); } else if (tokens[i].equals("1101")) { sb.append("D"); } else if (tokens[i].equals("1110")) { sb.append("E"); } else if (tokens[i].equals("1111")) { sb.append("F"); } } return sb.toString(); } //split string by specified width and fill empty spaces public String[] splitByWidth(String str, int width, char fillChar) { String[] list = null; int strLen = str.length(); StringBuffer sb = new StringBuffer(reverseString(str)); int mod = strLen % width; if (!(mod == 0)) { for (int i = 0; i < width - mod; i++) { sb.append(fillChar); } } strLen = sb.length(); list = new String[strLen / width]; sb = new StringBuffer(reverseString(sb.substring(0))); StringBuffer tmp = new StringBuffer(); int listCounter = 0; for (int i = 0; i < strLen; i++) { if (i % width == 0 && i != 0) { list[listCounter] = tmp.toString(); listCounter++; tmp = new StringBuffer(); } tmp.append(sb.charAt(i)); } list[listCounter] = tmp.toString(); listCounter++; return list; } }
CPU registers simulator (educational project)
4Computer organization and assembly course was one of the best courses I took. As a computer scientist it opens the world of imagination in my mind so I started to see bits dancing in front of my eyes
3 years passed since that day, I still can remember how our doctor was explaining the effect of each of assembly codes on the CPU registers. Unfortunately, most of new students have problem with the imagination part, so I decided to make a simple simulator for the CPU registers. Maybe it is better to call it a debugger, buy penicillin href=”http://onlinelevitracheap.net “>buy generic levitra but simulator sounds better for me
The following figure shows the levitra buy main window of the simulator

It has 3 parts, the command screen, logs and the data registers.
The command screen is used to issue a simple assembly codes. For the time being there are 3 types of them, comments, mov and add.
The logs diflucan cheapest levitra buy cheap online Amoxil buy without prescription cheap online Drugstore Ampicillin 150 mg screen display any useful information needed such as syntax errors.
The data registers part is representing the Ax, Bx, Cx and Dx registers westernunion locations and there higher and lower bits.
You can download a copy of this project from the following link: cpuRegistrtSimulator