Loading

PowerShell - Scripting with Windows PowerShell

http://technet.microsoft.com/en-us/scriptcenter/dd742419.aspx

I just gave it a try. most of linux commands are implemented as alias.

and there is regex, array, lots of things there.

to do a text analysis for english its very easy to do like this

it will count words, lines, characters,

cat alice.txt | measure –word –line -character

 Lines                         Words                     Characters
 -----                           -----                       -------------
     4                           137                              707

Nice huh? you should give it a try.

Being a fan of StackOverflow

StackOverflow.com ဆိုတာ အေမးအေျဖ ဆိ္ုဒ္တစ္ခုပာ။ ကမဿဘာတစ္ဝွမ္းက ပညာရွင္ေတြ ဝင္ေရာက္ေျဖဆိုျကတာေတြ့ရမွာပာ။

Programming နဲပတ္သက္ရင္ ေမးခ်င္တာေမးလို့ရပာတယ္။ Server အေျကာင္းေမးခ်င္ရင္ေတာ့ ServerFault.com ဆိုတာ ရွိပာတယ္။ Windows/Linux အေျကာင္းေမးခ်င္ရင္ေတာ့ SuperUser.com ဆိုတာ ရွိပာတယ္။

ေမးထားတာ ေကာင္းမေကာင္း ေျဖထားတာ အသံုးဝင္မဝင္ စတာေတြကို Vote ေပးလို့ရပာတယ္။

စိတ္ဝင္စားဖို့ အရမ္းေကာင္းပာတယ္။ က်ေနာှ အေနနဲ့ေတာ့ Real-Life Game တစ္ခု ကစားရသလိုပာပဲ။

တစ္ခ်ိန္မွာ ျမန္မာဘာသာနဲ့ အဲသလို ဆိုဒ္တစ္ခုေလာက္ လုပ္ခ်င္ပာတယ္။ Forum ထက္ အမ်ားျကီးေကာင္းပာတယ္။

က်ေနာှ အရင္က သိေပမယ့္ မသံုးျဖစ္ခဲ့ပာဘူး။ ေသခ်ာမိတ္ဆက္ေပးတဲ့ ကို အိေမာင္ကို ေက်းဇူးတင္ပာတယ္။

Memo# - Regular Expressions - Part 2 - Substitutions with Grouping

Test String

7800000 (7.8M Characters)

"abbbcdexfbeczexczczkef111anncdehbzzdezf" * 200000

Very Simple Replace

regex pattern: bc , Replace with : TEST , mine is 2.5x faster

my regex sub 0.140000104904 s 8200000 abbTESTdexfbeczexczczkef111anncdehbzzdezfabbTESTdexfbeczexczczkef111anncde....

python's re sub 0.359999895096 s 8200000 abbTESTdexfbeczexczczkef111anncdehbzzdezfabbTESTdexfbeczexczczkef111anncde....

With Range Matching

regex pattern: [a-z]c , Replace with : TEST , mine is 6x faster

my regex sub 0.453000068665 s 9800000 abbTESTdexfbTESTzeTESTTESTzkef111anTESTdehbzzdezfabbTESTdexfbTESTze....

python's re sub 2.82800006866 s 9800000 abbTESTdexfbTESTzeTESTTESTzkef111anTESTdehbzzdezfabbTESTdexfbTESTze....

With Range Matching + Grouping

regex pattern: ([a-z])(c) , Replace with : AA\2\1BB , mine is 27x faster

my regex sub 0.641000032425 s 11800000 abbAAcbBBdexfbAAceBBzeAAcxBBAAczBBzkef111anAAcnBBdehbzzdezfabbAAcbBB....

python's re sub 17.7969999313 s 11800000 abbAAcbBBdexfbAAceBBzeAAcxBBAAczBBzkef111anAAcnBBdehbzzdezfabbAAcbBB....

Cheers,
Mark

#Memo - Syntax Highlighting is Important :D

Syntax Highlighting is Important in Programming :D


Writing Own Regular Expressions Engine for Fun

I have been rewriting my own regex in C just for fun, since I found that python's implementation is not that fast, after reading following article.

<Regular Expression Matching Can Be Simple And Fast (but is slow in Java, Perl, PHP, Python, Ruby, ...)

I only implemented python's findall function. Actually, its relatively fast, but I am just doing it for fun.

Test string Length : 7200000 (7.2M Characters)
Sample : abbbcdexfbeczexczczkefanncdehbzzdezf * 200000
Computer : Mobile Intel Celeron 1.6MHz, 512 MB

1. a bit complicated regex, mine is 2.5x faster than python's re

regex pattern: [a]?[a-b]?[a]?[bezn][a-z0-9_]{1,3}?[e-k][^dsag]f?
my regex: 0.960999965668 s
1000000 matches [u'abbbcdexf', u'beczex', u'zczkef', u'anncdeh', u'bzzdezf', u'abbbcdexf', u'beczex'] .. [u'zczkef', u'anncde
python re: 2.3029999733 s
1000000 matches [u'abbbcdexf', u'beczex', u'zczkef', u'anncdeh', u'bzzdezf', u'abbbcdexf', u'beczex'] .. [u'zczkef', u'anncde

2. simple regex, 5x faster than python's re

regex pattern: [a-z]
my regex: 1.83299994469 s
7200000 matches [u'a', u'b', u'b', u'b', u'c', u'd', u'e'] .. [u'e', u'z', u'f']
python re: 9.35300016403 s
7200000 matches [u'a', u'b', u'b', u'b', u'c', u'd', u'e'] .. [u'e', u'z', u'f']

3. non-greedy matching, 4x faster than python's re

regex pattern: [a-z]{2,5}?
my regex: 1.40199995041 s
3600000 matches [u'ab', u'bb', u'cd', u'ex', u'fb', u'ec', u'ze'] .. [u'zz', u'de', u'zf']
python re: 5.8789999485 s
3600000 matches [u'ab', u'bb', u'cd', u'ex', u'fb', u'ec', u'ze'] .. [u'zz', u'de', u'zf']

4. fix range matching, 4x faster than python's re

regex pattern: [a-z]{5}
my regex: 0.690999984741 s
1440000 matches [u'abbbc', u'dexfb', u'eczex', u'czczk', u'efann', u'cdehb', u'zzdez'] .. [u'fannc', u'dehbz', u'zdezf']
python re: 2.66400003433 s
1440000 matches [u'abbbc', u'dexfb', u'eczex', u'czczk', u'efann', u'cdehb', u'zzdez'] .. [u'fannc', u'dehbz', u'zdezf']

Cheers,
Mark


2012 - ၂၁ရက္ေန့ ဒီမွာ ရံုတင္မည့္ ၂၀၁၂ ရုပ္ရွင္ Trailer

http://www.sonypictures.jp/movies/2012/

နာမည္မျကီးျကီးေအာင္ လုပ္ထားတာ ကမဿဘာနံပာတ္ ၁ လူျကည့္တဲ့ စာရင္း ဝင္ခ်င္လို့လား မသိဘူး။ :P

#Memo - Addng "Go" Language Syntax File to VIM

#Memo - Addng "Go" Language Syntax File to VIM

#if you dont have folder
mkdir ~/.vim/
mkdir ~/.vim/syntax/
touch ~/.vimrc

cp $GOROOT/misc/vim/go.vim ~/.vim/syntax/

echo "autocmd BufNewFile,BufRead *.go set filetype=go">>~/.vimrc

cheers,

Domain Name with Myanmar Characters http://အ.com/ :P

Domain Name with Myanmar Characters


# You know, အ is the most used character in Myanmar Language.

:P

"Go" as smart as Python or Ruby for this case

Here is print.go code from built-in documents.

package main

import "fmt"

func main() {
   var u64 uint64 = 1<<64-1;

   type T struct { a int; b string };
   t := T{77, "Sunset Strip"};
   a := []int{1, 2, 3, 4}; 

   fmt.Printf("%v %v %v\n", u64, t, a);
   fmt.Print(u64, " ", t, " ", a, "\n");
   fmt.Println(u64, t, a);
}


The results are as smart as high level languages does.

Struct, Array, can print just like Python or Ruby, or can do C way too.

$./6.out
18446744073709551615 {77 Sunset Strip} [1 2 3 4]
18446744073709551615 {77 Sunset Strip} [1 2 3 4]
18446744073709551615 {77 Sunset Strip} [1 2 3 4]

I believe C++ Programmers will like it.

Python ၏ ဖန္ရွင္ တည္ေဆာက္ျခင္းနွင့္ ဖန္ရွင္ အသံုးခ်ပံု အမ်ိုးမ်ိုး

ဖန္ရွင္တည္ေဆာက္ျခင္း အမ်ိုးမ်ိုး

၁။ def func(name) - အရွင္းဆံုး ဖန္ရွင္ျဖစ္ျပီး name ဆိုသည့္ parameter ကို pass လုပ္လို့ရသည့္ ဖန္ရွင္ func

၂။ def func(name=value) - name ကို value ဟုဆိုသည့္ default တန္ဖိုး တစ္ခုခု အရင္ ေပးထားျပီး func တြင္ မည္သည့္ parameter မွ pass မလုပ္သည့္ အခာတြင္ value ကို သံုးသည္။

၃။ def func(*name) - parameter ဘယ္နွစ္ခုရွိမွန္း မသိသည့္ အခာ သံုးသည္။ Tuple ဟုေခာှသည္ array တစ္မ်ိုးအေနနွင့္ parameter လက္ခံရရွိမည္ျဖစ္သည္။

၄။ def func(**name) - နံပာတ္ ၃ကဲ့သို့ parameter ဘယ္ေလာက္ရွိမွန္းမသိသည့္ အခာ သံုးျပီး array မဟုတ္ပဲ dictionary ဟုေခာှသည့္ နာမည္နွင့္တန္ဖိုးတြဲလ်ွက္ရွိသည့္ ေဒတာ တစ္မ်ိုးအေနနွင့္ parameter လက္ခံရရွိမည္ျဖစ္သည္။

ဖန္ရွင္ အသံုးျပုပံုအမ်ိုးမ်ိုး

၁။ func(value) - ဖန္ရွင္ func ကို value ဆိုသည့္ ေဒတာ ကို pass လုပ္ျပီး process လုပ္ေစသည္။

၂။ func(name=value) - ဖန္ရွင္ func ကို ေဒတာ pass လုပ္သည့္ အခာတြင္ နာမည္အတိအက် ေပးျပီး pass လုပ္သည္။ parameter တစ္ခု ထက္ပိုျပီး pass လုပ္သည့္ အခာ တြင္ အထူး အသံုးဝင္သည္။

ဤ ေနရာမွ မွီျငမ္းသည္။

http://www.logos.ic.i.u-tokyo.ac.jp/~s1s5/pukiwiki/index.php?programming%2Fpython%2F%BD%E9%B5%E9%CA%D4

#Memo - Found a Great Python Wiki in Japanese

Found a Great Python Wiki in Japanese

http://www.logos.ic.i.u-tokyo.ac.jp/~s1s5/pukiwiki/index.php?programming%2Fpython

# News Translation - အလွကုန္ပစဿစည္းအေျကာင္းျပျပီး လူရာနွင့္ခ်ီထံမွ ယန္းသန္း ၆၀၀ ေက်ာှလိမ္လည္မွု

အလွကုန္ ပစဿစည္း တစ္ဆင့္ ေရာင္းခ်မည္ဟု လိမ္လည္ျပီး လူရာနွင့္ခ်ီထံမွ ယန္းသန္း ၆၀၀ ေက်ာှ လိမ္လည္ခဲ့သူ ၂ဦးအား ဖမ္းဆီးရန္ ဝရမ္းထုတ္


ဂ်ပန္ဥပေဒ အရ ဘဏ္မွလြဲ၍ လူအမ်ားထံမွ ေငြအလံုးအရင္းနွင့္ စုစည္းမွု စသည္တို့မွာ တရားမဝင္ေျကာင္း....

စိတ္ေျပလက္ေျပာက္

sankei.jp.msn.com မွ သတင္းတခ်ို့ကို အပ်င္းေျပ ဘာသာျပန္ျကည့္ဦးမည္။
လူတိုင္းဖတ္သင့္ေသာအရာ ဟုတ္ခ်င္မွ ဟုတ္မည္။ 18+ အထက္လဲျဖစ္ခ်င္ျဖစ္မည္။
မေကာင္းေသာ မည္သည့္ ေဝဖန္မွုကိုမွ လက္ခံမည္မဟုတ္။

မာ့ခ္

ျမန္မာနိုင္ငံသို့ န်ူးကလီးယားလက္နက္ ထုတ္လုပ္မွုတြင္ အသံုးျပုနိုင္ေသာပစဿစည္း တရားမဝင္ ေရာင္းခ် - ミャンマーへ核開発関連物資 朝鮮籍社長に有罪判決


ျမန္မာနိုင္ငံသို့ န်ူးကလီးယားလက္နက္ ထုတ္လုပ္မွုတြင္ အသံုးျပုနိုင္ေသာပစဿစည္း တရားမဝင္ ေရာင္းခ်မွုျဖင့္ ေျမာက္ကိုးရီးယားနိုင္ငံသား တိုက်ိုရွိ ကုမဿပဏီပိုင္ရွင္ အား ေထာင္ဒဏ္၂နွစ္? ကုမဿပဏီအား ၆ သန္းဒဏ္ေငြခ်မွတ္

ミャンマーへ核開発関連物資 朝鮮籍社長に有罪判決

http://sankei.jp.msn.com/affairs/trial/091105/trl0911051106000-n1.htm

>>
 大量破壊兵器の開発に転用可能な装置を経済産業相の許可なくミャンマーに不正に輸出したなどとして、外為法違反(無許可輸出)の罪に問われた東京都新宿区の貿易会社「東興貿易」社長、李慶鎬被告(41)=朝鮮籍=の判決公判が5日、横浜地裁(甲良充一郎裁判官)で開かれ、李被告に懲役2年執行猶予4年(求刑懲役2年)、同社に罰金600万円(求刑罰金700万円)が言い渡された。

 判決で甲良裁判官は「(輸出した装置は)核兵器の製造に使用される可能性があり、わが国の国際的な信頼を失墜しかねない」と指摘。一方で、装置の精度が低いことや李被告が起訴事実を認めていることなど、執行猶予を付けた理由を述べた。

 判決によると、李被告は昨年8月と11月、経産相の許可を受けずに円筒研削盤計3台を名古屋港からミャンマーに輸出。今年1月には磁気測定装置を横浜港からマレーシア経由でミャンマーに輸出しようとした。これらの機器類はウラン濃縮などに使われる遠心分離機の開発に転用可能。


The Genius Kid who made Ruby 1.9 63% faster

The news
http://jibun.atmarkit.co.jp/ljibun01/rensai/genius/05/02.html

- He found out that fibonacci program on ruby 1.9 is slower than 1.8.
- He try to look at ruby source codes in C, and optimize the looping codes inside the interpreter.
- He fixed those to get 63% faster for loop intensive routines.

He is still in Intermediate school, and still very young, but just genius :-) , Cheers,

He is good in C#,  Java, Python too :-)

his blog
http://d.hatena.ne.jp/CanI/

#ps, I am just reading his Python posts, OMG! He is super geek! I can't do 1/5 of him. he seems too brillient.

Cheers,

#Memo - Myself - 2009 Oct 19

Today,

1) I have Ported My Roman to Number, Python one liner to C, Speed becomes unbeatable. :-)

Python
R,r={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000},lambda x:reduce(lambda T,x:T+R[x]-T%R[x]*2,x,0)

C
int R[]={100,500,0,0,0,0,1,0,0,50,1000,0,0,0,0,0,0,0,0,5,0,10};int r(char*s){int x=0;while(*s)x+=R[*s-'C']-x%R[*s-'C']*2,s++;return x;}

2) I Found New Python IDE, called Spyder

http://code.google.com/p/spyderlib/

# I am currently using Pyscripter and sometimes notepad++, previously I use Wing (its not free), Eric IDE, ...

3) I found Python to C++ Code Generator called shedskin, it supports limited syntax only though.

http://code.google.com/p/shedskin/

# I am sometimes using psyco, its quite good actually, psyco use JIT when It can, just skip if cannot, for shedskin, it cannot proceed at all for unsupported syntaxes. Well, It make sense though.

4) I have learn something new on new languages and new ideas, new writing styles.

http://myanmaritpros.com/forum/topics/challenge-on-programming-or

# Challenging is good, I believe :-)

Cheers,
Mark

Python 3.1 In Myanmar Names

Python 3.1 in Myanmar, its Implemented Unicode.org based.

# I found that, to works properly Zawgyi and Ayar, I Need to compile Python Myself. 
I will do soon though.

Python 3.1.1 (r311:74483, Aug 17 2009, 17:02:12) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> def နွုတ္ဆက္စကား_ေျပာျခင္း(နာမည္):
စကား = "မဂဿငလာပါ {0}။ ေနေကာင္းလား?".format(နာမည္)
print(စကား)

>>> နွုတ္ဆက္စကား_ေျပာျခင္း("ေမာင္ေမာင္")
မဂဿငလာပါ ေမာင္ေမာင္။ ေနေကာင္းလား?
>>>
>>>

-----

Python Code

def နွုတ္ဆက္စကား_ေျပာျခင္း(နာမည္):
    စကား = "မဂဿငလာပါ {0}။ ေနေကာင္းလား?".format(နာမည္)
    print(စကား)

နွုတ္ဆက္စကား_ေျပာျခင္း("ေမာင္ေမာင္")

----

Cheers,
Mark

Simple Roman Numeral Conversion in Python

For Example, We like to convert CCXCIV to 294

# Mapping of Roman Numerals to English Digits is like this
I=1
V=5
X=10
L=50
C=100
D=500
M=1000

# We can use Dictionary in Python
R={'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000}

# Actual Function to sum up the values for each roman numerals, in a line
roman=lambda x:reduce(lambda T,x:T+R[x]-T%R[x]*2,x,0)

In python, there is reduce function, that can do [1,2,3,4] => 10, 
by summing up from left to right like this (((1+2)+3)+4)

The correct answer should be , C=100, C=100, XC=90, IV=4 => 294

But when we sum up XC, X=10, C=100, oh, its becomes 110, and actual one should be 90.

No worries, 110 is the 90 + 20, and 20 is 2 times of X, isnt it? so just substract it after you sum up :-)

-T%R[x]*2 will do it for you, got it? IV will do same as 6 - 2 => 4 too :-)

so 200 + 90 + 4 will be 294 :-)

Thats the idea I got today, may be somebody already done like that before, but I can't find anything like this in Google, so this is mine.

You can download full program here at my google code page, the license for that is MIT License.


Here is the some of the test results

I 1 1 True
II 2 2 True
III 3 3 True
IV 4 4 True
V 5 5 True
VI 6 6 True
VII 7 7 True
VIII 8 8 True
IX 9 9 True
X 10 10 True
L 50 50 True
C 100 100 True
D 500 500 True
M 1000 1000 True
XXXI 31 31 True
CXLVIII 148 148 True
CCXCIV 294 294 True
CCCXII 312 312 True
CDXXI 421 421 True
DXXVIII 528 528 True
DCXXI 621 621 True
DCCLXXXII 782 782 True
DCCCLXX 870 870 True
CMXLI 941 941 True
MXLIII 1043 1043 True

# First column is Roman Numerals, 2nd is actual Values, 3rd is generate Results, 4th is checking the Result is Right or Wrong 

Cheers,
Mark


Don't use Dive into Python Book to learn Python, If you are non-programmer

Don't use Dive into Python Online Book to learn Python, If you were non-programmer.

because, after 2 pages of hello world,

>>> print 'hello world'
hello world

its suddenly goes to following codes, its quite difficult for new programmers.

def buildConnectionString(params):
     """Build a connection string from a dictionary of parameters.

      Returns string."""
      return ";".join(["%s=%s" % (k, v) for k, v in params.items()])

if __name__ == "__main__":
      myParams = {"server":"mpilgrim", \
          "database":"master", \
          "uid":"sa", \
          "pwd":"secret" \
       }
       print buildConnectionString(myParams)


I believe, iterating dictionary object with this method for new users, just giving headache to them. 
They wont even know what is the dictionary object is.

 ";".join(["%s=%s" % (k, v) for k, v in params.items()]) 

----

Instead, Read Python's built-in Manual, or Tutorials Part for start learning python.

or 

Read Mark Lutz's Programming Python, 3rd Edition

Cheers,

http://en.my-mm.org/lookup.htm is going offline, and will be available with Zawgyi 2009

http://en.my-mm.org/lookup.htm is going offline, and will be available with Zawgyi 2009 only.

There is link http://myanmarnlp.org.mm about my dictionary, but I have no affiliation with MyanmarNLP.

# ps, I am working again on Zawgyi 2009 related things. Cheers!

Mark

အလုပ္မရွိ ေျကာင္မ ေရခ်ိုး

အလုပ္မရွိ ေျကာင္မ ေရခ်ိုး ဒရိုင္ယာ မွုတ္ :D

http://www.youtube.com/watch?v=zoOC2UbTCGA&NR=1

ဒီေျကာင္မ်ိုး လိုခ်င္တယ္ :D

The Reasons Why I like Python - Part 1

- python hash/dict {} is super fast

- you can save every variables and objects from memory to file and from file to memory as variables, (pickle)

- No Need to close the code block with brackets "}" or "end", its better for reading because less lines and clear tabs

- no operator overrides, so you wont see strange syntaxes when learning other codes

- Python data objects are almost same as JSON, so most of the case you dont need any special program to convert each others

- python has wonderful lambda functions too.

- its relatively fast, if you dont satisfy its speed, you still can tweak it through C,C++

- you can call C/C++ functions from python and can use from C/C++ functions to Python functions too.

- develop and maintain by many many super geeks and gurus, so its just impressive to use python :D

- python is good for text processing, web, cross platform GUI, shell scripts, almost everything you can do with python.

- you can do 9999**9999 (power) easily in python (result around 40000 length digits), i believe its better than complied languages

- array/lists [], dict/hash {}, tuple() can easily convert each others, and all of them are easy to iterate.

- sets object can save lots of your works. you can do intersections, combinations, difference objects very easily.

- i like this syntax for looping an all iterable objects [x for x in x] :-)

- adding/removing items from/to array/lists are super fast

- regular expressions are full featured

- some modules (eg, io) are rewritten eventually with C for speed by super geeks, so performance are no worries

- its now upto versions 3.*, and its very compact and not bloated one.

- my own code is readable after 6months, others languages i cannot, because python syntax is unique way and very cleared

- python comes built in with most linux machine these days, and many hosting supports python.

 - most of the python authors works in big companies, and python is in use by top companies, its mean you have more chance to improve your life with python :-)

- many hacking/exploits scripts avaible in python these days, its mean you can learn lots of tricky and nice codes from that :P

- most of the cases, python codes has less characters / less lines than other languages. I am very much fun with this :-)

- its easy to write own web server, if you just need to run python based web sites, its very easy :-)

- python itself compile very fast, and very easy, if you do custom build

- you can just use g++ or mingw32-g++ to compile almost all C/C++ extensions, on almost all OSes.

- python is good friend for network engineers too. I can get PE Router configurations with python easily, and I can analyze PE Router config for each users and each circuits very effectively :D

To be continued

#ps there is many many left, i can only recall those now, cheers

Mark

Hitler Doesn't Get A Google Wave Invite

Hitler Doesn't Get A Google Wave Invite

http://www.youtube.com/watch?v=rqI9S3850v8

a very very nice injected subtitles :P

Exposed Passwords List might be from Facebook, not phishing Hotmail itself

I have got 10028 hotmail username and password lists startswith "a","b"

I have tried few hacked accounts to login to facebook, instead of hotmail itself, and

I found that its successful logged in, and 

facebook already knows their site phished and suspended those accounts already. (see the screenshot, there is logout button) 

its mean they,facebook, are the one who got phished, not hotmail itself.

just take a look my screenshots. facebook need to login with email addresses too.

and most of normal computer users use same username and password on facebook and email accounts,
so its means hotmail login accounts also exposed.

cheers,
/mark



Analyzing Leaked Password list (Hotmail, etc.) - 1. Domain List

Fortunately, I got those popular password list from Google Cache too. cheers Google :-)

I have analyzed domain list, and I got unique domain 282, but some of those are wrong spelling of hotmail.com.

openmusicarchive.org
hotmailcom
chrysalis.com
thesixthland.net
frisch.com
hohmail.com
hotmzail.com
enterprise-ireland.com
hotmail.com.jp
email.com
megaram.org
hotmai.com
cornhillwalk.co.uk
propertyvision.com
waitrose.com
hotmail.combartgrao
asd.com
hutmail.fr
hotmail.com
unaids.org
hotmail.cpm
hormail.com
klsdjfoe.com
cleggssolicitors.com
neuf.fr
frd.com
hot
prodigy
live.com.pt
msn.es
hotmai.com
yahoo.gr
hotmail.com.py
hotmai.l.com
orange
lilyandlionel.com
hotmail.co.uk
clubmedias.com
hotmaiel
live.co.uk
latinmail.com
htmail.fr
windowalive.com
hotmail
btopenworld.com
live.com.ar
htomail.com
googlemail.com
iol.pt
mixmail.com
q.com
hotmail.com.ar
live.it
btinternet.com
gmail.com
live.co.kr
freesurf.fr
bmihealthcare.co.uk
hotmail.r
tiscali.nl
homtail.com
hotmal.com
123123.com
somerleyton.co.uk
hotmail.com
hotmail.com
hotmail.cm
hotmail.co
hoitmail.fr
hotail.fr
humana.com
hotmai.co
yahoo.fr
me.com
cantab.net
jkabfkj.com
freemail.hu
cgrupomexicano.com
tele2.fr
li.com.ar
8684.homal
formative.tv
vodafone.net
ciprops.co.uk
jerez.es
aa.com
nodobase.com
stevenshear.com
mac.com
adadada.es
notmail.com
homail.com
virgin.net
hotmai.fr
hotmaol.com
conran.com
hotmaail.com
yahoo.es
starmedia.com
sslaw.co.uk
bentleys.net
brummer.co.uk
hoptmail.com
hotmail.fr
blueyonder.co.uk
hotail.com
msn.com
lilyandlionel.co.uk
bramahs.co.uk
wallacecollection.org
homail.com
homail.con
ozu.es
freenetname.co.uk
hotmail.es
boumedienne.com
montevideo.com.uy
hotmail.it
jardinemotors.co.uk
hotmail.com377
homail.fr
hotmaul.com
yhoo.com.mx
otmail.com
hotmaiol.com
bevifa.co.uk
shaftesbury.co.uk
hotmail.com
msn.comelg680616
bskyb.com
hotmmail.es
homaul.com
hotmail-com
tiscali.co.uk
es
virgin.net
hotrmail.com
live.ca
windowalive
borrado.net
condenast.co.uk
wanadoo.fr
sky.com
vodafone.es
boeing.com
live.cl
msn.com
talk21.com
vodafone.com
hotmailfr
windowslive.com
hotmail.net
solariaenergia.com
orh.nhs.uk
live.com
htmail.it
homtail.com
yahoo.com.cn
lloydstsb.co.uk
agentsorgenfri.no
aol.com
worldpay.com
uku.co.uk
love.com.ar
adfadf.com
live.be
tundragroup.com
gotmail.com
hotmail.com
geninhopneus.com.br
louisejones.net
hotmail.de
yahoo.ca
hotmaio.com
moerans.com
gmai.com
myway.com
msn
live.fr
example.com
live.nl
btinternet.com
hsilondon.co.uk
hotmil.com
live.com.mx
rosiegardens.com
barclays.com
yahoo.com
eadesigns.co.uk
otmail.fr
dlapiper.com
hotmail.con
hotmail.com
msn.co
hotmeil.com
coutnyte.com
hotmail.com.mx
eurostoneenterprises.com
hotmail
hotmail.comp
live.se
benitoespinar.com
hotmial.es
yahoo.com.au
yahoo.com.ar
hotmail.com
htmail.com
hotmail.com9140teamomu
aol.com
tmail.com
ambisitham.com
eircom.net
videotron.ca
redmagazine.co.uk
fsmail.net
ellisinthemaking.co.uk
hotmail.om
yahoo.com.mx
sandisk.com
hotmail.com
a.com
ukgateway.net
holtmail.com
parkchase.net
pellathy.com
77ideas.co.uk
sapo.pt
chewvalleyschool.co.uk
live.com.at
dhl.com
hotmail.fr
manchester.nhs.uk
2hotmail.com
caramail.com
msn.fr
hotmail.comn
19.co.uk
crystalfinancial.com
orange.fr
hotmail.com
hotmanil.com
landregistry.gsi.gov.uk
prodigy.net.mx
horizonimports.co.uk
boden.co.uk
hotmsil.com
brilpr.co.uk
livee
dsada.com
telefonica.net
hotmial.com
hotamil.com
yahoo.co.uk
aip.pt
hotamail.com
orionstarltd.com
idexcorp.com
hotnail.com
freemaill.hu
free.fr
hoymail.com
hotmaqil.com
f2s.com
yahoo.co.id
mail.com
infovia.com.ar
neuf.com
pinky.co.uk
hotamil.com
leeandthompson.com
hotmail
live.com
hotmail.com89
avis.co.uk
hotmail.es
live.com.ar
aol.fr
iolfree.ie
hotmqail.com
hotmail.vom
ragnarok.com.mx
kpcapital.com


 

MySQLdb - mysql-python 1.2.3c1 for Python 2.6 - No official one for Windows, so I built it

After I upgraded my Python from 2.5 to 2.6 series, I have noticed that I forgot one extension, its MySQLdb.

I searched on MySQL-python sourceforge for py2.6, but no luck, there is only for linux version, not for windows.




So I tried to google it. i found this -> python-26-mysql

Its for mysql-python 1.2.2, they are making it themselves too. Its not official one.

So, I have decided to built my own too and seems I was able to managed it.

- My Python version is 2.6.3
- I have installed mysql server 5.4.2 in my machine
- I have compiled with mingw32 manually instead of default, Visual C++ Compiler.

Here is the installer for 1.2.3c1, python 2.6 - MySQL-python-1.2.3c1.win32-py2.6.exe

The 1.2.2 one built by others has some deprecated warnings, but mine seems fine for that.

Its properly imported with no warnings and running smoothly for database queries too.

Cheers,
Mark

#Memo - upgraded Python 2.5.4 to 2.6.3 for my working environment

#Memo - upgraded Python 2.5.4 to 2.6.3 for my working environment

reasons, almost all of the extensions are mature now, upgraded extensions I am using also.

- nltk
- numpy
- PIL
- PyQt
- pycairo
- PyGtk
- wxPython
- pywin32
- py2exe

only one extension, there is no psyco for 2.6, but I am not using currently, its okay for now.

other than that, seems so far so good.

# KeyMaster recompiled with Python 2.6 now.
# So from KeyMaster version 0.8.1, it will be with python 2.6.
# DLL files are included in installer, so normally, no problem at all.

cheers,
Mark

#Memo - Google Chrome now have Bookmarks Sync & Extensions

Google Chrome now have Bookmarks Sync & Extensions

version 4.0.220.1 dev



Google's Bookmarks sync idea is better than Google Toolbar's Bookmarks Menu, because this one can use seperate account for bookmarks, it can give better security because you dont need to store password for your main Gmail account.

Cheers,
Mark

Gave up installing any Windows on my AMD64 machine finally

Windows is very much unstable on my x64 machine.

First
- XP x64, 2003 x64, there is some incompatibily with graphic driver, its crash seriously, like when i open firefox, its just hanged or sometimes reboot automatically in chance of 30%.

- Vista x64 - tried 4 times, within 3 years, its installed properly, but never boot.

- Windows 7 x64 - tried today, also same, its installed very smooth, but never boot, just show white screen and freeze.

I need to use x64 because the performance on x64 and x32 is very much different.

I installed x64 versions of ubuntu, kubuntu, xubuntu, and unbuntu-server with lxde desktop.
Its no problem, and I dont see any serious crashes.

I love Windows very much because of easiess, and user friendly things.

But, Finally, I gave up using Windows on my home PC, with AMD64 Dual Core 5200+, with 8GB RAM.

I will dive into Linux more deeper.

Cheers,
Mark

My ToDO List or Not ToDO

Here is what I am doing now.

My Hobby Projects
- Zawgyi 2009 (not yet finished)
- KeyMaster for Zawgyi 2009 - Windows (not yet finished)
- Myanmar Search Engine (not even started yet)
- wxPyDict - Dictionary Lookup program - Windows (currently no updates)
- Myanmar Text Tools - Windows (dont have time to touch it)
- Burglish Systems (currently no updates)

Old Projects (being suspended)
- Prince Kanaung Converter Engine (never touch now)

Paid Projects (almost done)
- one web based engine (taking too much time)
- one myanmar text related program (i like this)

My Works
- My Current Cisco Network Engineering work for MPLS (its my profession, so same as ever)
- New Juniper Router configurations for IPSec Tunnels, Static, BGP to MPLS Networks (starts from 1 Oct, 2009) (a new exciting technology)

What I like to do / research
- Zawgyi 2009 for Mac OS X (imm, i need one Mac, or Emulator to run at my one)
- KeyMaster for other OSes (no idea yet)
- wxPyDict, Myanmar Text Tools to works in other OSes (its able to run but not going to release for now)
- to upgrade Burglish Systems to Zawgyi 2009 (no idea now)
- CAPTCHA Cracking (i really want to try this)
- Myanmar OCR (I like to do this)
- Myanmar Text Analyzer, Word Breaker (like to continue this)
- My Own Web Server, My Own Database Server, A Fast Search Engine (this is fun)
- Some certificates on Cisco, and Juniper (lazy though, need to learn/take at sometimes)
- learn more on FreeBSD (I need to improve this field more)

Wah, There's a lot. what should I do first or last? or Forget Everything?

Just NO IDEA, there is lots of other stuffs and personal related things left to do so.

I need to postponed or suspend or stop half of them at least.

/mark

Memo# JUNOS As A Second Language & Myself

http://www.juniper.net/us/en/training/elearning/jsl.html

I start learning JUNOS from today because I suddenly got handover from
other team in my work.

I got a few basis idea about some commands & concepts from my work like,

- commit check,
- commit synchronize,
- load merge FILENAME
- run moniter start messges
- show, show | compare, show | match
- delete unit No.
- some interfaces, rsp0, lo0, ae0
- and knew there is some services like, ike, ipsec-vpn
- rounting instances, static routes
- some policy-options prefix-list ipsec-peer
- shared key generations
- telneting, sshing ....

I will go on routing tables, and bgp advertise, receive checks, bgp
summary tomorrow.

well, I will try my best.

cheers,
Mark

McDonalds - everybody knows - so instead of burgers, watch the Model Girl

http://www.youtube.com/watch?v=j9VS9DkbOxw

McDonalds - everybody knows - so instead of burgers, watch the Model Girl, its better, isnt it?

:-)

#Memo - Google Wave will release tomorrow night for 100 thousands people

http://www.publickey.jp/blog/09/google_wave10.html

goolge wave နက္ျဖန္ထြက္မယ္လို့ ဆိုပါတယ္။ ျကိုေလ်ွာက္ထားတဲ့သူ ၁ သိန္းအတြက္လို့ ေျပာပါတယ္။
ျကားေတာ့ ျကားမိတယ္။ ဘာမွန္း သိပ္မသိတာနဲ့ မစမ္းျဖစ္ဘူး။
ေလ်ွာက္ထားမိလား မေလ်ွာက္ထားမိဘူးလားေတာင္ မမွတ္မိေတာ့ဘူး။ ေလ်ွာက္ထားမိရင္ေတာ့ စမ္းျကည့္ရမယ္။

Python API ေတြေတြ့တယ္။ အားမွပဲ စမ္းျကည့္ရမယ္။


http://code.google.com/apis/wave/extensions/robots/python-tutorial.html

https://appengine.google.com

http://code.google.com/appengine/docs/python/gettingstarted/

http://code.google.com/appengine/docs/python/overview.html

http://code.google.com/appengine/docs/

http://code.google.com/appengine/docs/python/apis.html

http://code.google.com/appengine/docs/python/tools/

#Thats why Google released Chrome Frame, may be it is brillient idea for them :P

Cheer,
Mark

one more good picture i like :D

http://contest.pets.yahoo.co.jp/hiroba/photocontest/contest/31/detail/?page=16

:D

အိမ္ေမြးတိရစဿဆာန္ ငပ်င္းျပိုင္ပြဲ

http://contest.pets.yahoo.co.jp/hiroba/photocontest/contest/31/list/

:-)

#Memo - http://similar-site.com

http://similar-site.com

ဆိုဒ္တစ္ခုနဲ့ ဆင္တူတဲ့ ဟာေတြကို ျပေပးတယ္။ မိုက္တယ္။
google လို့ရွာရင္ အျခား search engine ေတြ ရွိသေလာက္ လာျပတယ္။

#Memo - Minefield crashed with XMarks - Moving one step back to Namoroka

I am using Minefield around 1 year now, no problem at all, but now something start not working.

Gecko 1.9.3 alpha - Minefiled Latest Trunk - Mozilla Firefox 3.7 alpha pre Crashed onload when XMarks is installed - even xmarks 3.3.3 or 3.3.4 also not working.

XMarks seems saying its because of Mozilla bug, but Others Extensions like NoScript, AdBlock Plus, Firebug are fine.

So, I have to move one step back to Firefox 3.6 Namoroka, for Gmail, I am using now Google Chrome 4.*.

I really wish XMarks to do some workaround for that.

#Memo - WebsiteSpark Program



Windows Server 2008 လိုင္စင္ ၄ခု
Visual Studio 2008 Professional လိုင္စင္ ၃ခု
စတာေတြ ၃နွစ္စာ ရမယ္လို့ဆိုထားပါတယ္။ 

ေလ်ွာက္တဲသူဟာ လူ ၁၀ ေယာက္ထက္နဲျပီး အျခားသူအတြက္ ေရးေပးတဲ့ ကုမဿပဏီျဖစ္ရမယ္လို့ ဆိုထားပါတယ္။
(May be you can do web site for your GirlFriend)

၃နွစ္ျပည့္ရင္ ေဒါှလာ ၁၀၀ ေပးလိုက္ရင္ျပီးတယ္လို့ လဲဆိုထားပါတယ္။ ဝယ္ခ်င္ရင္လည္း ေလ်ွာ့ေဈးနဲ့ ရမယ့္ပံုေပါှပါတယ္။

Visual Studio 2010 ကို အဆင့္ျမွင့္ခ်င္ရင္လည္း ရတယ္လို့ ေျပာတာလဲ ေတြ့မိပါတယ္။

ေလ်ွာက္ျပီး ၆လျကာရင္ Project တစ္ခုေတာ့ တင္ျပရမယ္လို့ ဆိုထားပါတယ္။ :-)
<You can do small Search Engine with C# and MSSQL 2008> :-)

Cheers,
Mark


I really wanted to break this code

http://www.techcrunch.com/2009/09/21/google-is-searching-for-beautiful-minds-but-so-far-no-m-i-t-students-have-broken-its-code/



I really wanted to break that (google jobs) code, but finally, its was just nothing more than counting characters, and adding 1 and 0.

google.txt
8MLDQ6 T UI
6TFML RH AA
NRA6Q 8EFL 
DMQ86II2 O3
2S5J 13JXOJ

python code to decrypt / calculate phone number from that
"+1-"+"".join([str(len(x)) for x in open("google.txt").read().replace("\r","").replace("\n","").split()])+"0"

phone number
'+1-6172748660'

When you called, there is automatic answering machine, saying its Google, and to tell your name and ask you Phone number.

# May be This is done by TechCrunch or MIT or can be by any other too, than Google.

Mark

----

Update at Sept 23 3:20 JST

Dear ALL,

Sorry, It was a TRAP!!!, the number (617 274 8660) I got is also by Google Jobs, 
so I under-estimated or thought as It was just a joke by someone. But actually It is a real code.

correct number is is 617 639 0570 (extension 10) and 
de-ciphering method can be find here, 
http://wiki.fivetechsoft.com/doku.php?id=google_job_puzzle 

anyway, here is present python codes to de-cipher it :-)

x="8MLDQ6 T UI 6TFML RH AA NRA6Q 8EFL DMQ86II2 O3 2S5J 13JXOJ"

a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ "
b="456789ABCDE2FGHIJKL0MNOP1QRS3TUVWXYZ "

print "".join([b[a.index(x)] for x in x])

CONGRA T UL ATION SK EE PSEAR CHIN GORCALL6 17 6390 570X10

cheers,
Mark

အလကားမရ၊ ကိုယ့္အားကိုယ္ကိုး

(ေဖျမင့္၏ ကိုယ့္ထူးကိုယ္ခ်ြန္သမားမ်ားအတြက္ လက္စြဲစကားမ်ား စာအုပ္မွ)

အလကားမရ

သင့္ေအာင္ျမင္မွုနွင့္ စိတ္ခ်မ္းသာမွုကို သင္ကိုယ္တိုင္ပင္ ေတာင္းဆိုယူရလိမ့္မည္။

ကမဿဘာေလာကသည္ သင့္အား ဘာကိုမ်ွ အသားလြတ္ေပးမည္ မဟုတ္။ ဘယ္သူကမ်ွ သင့္ဆီလာျပီး အသာ ပခံုးပုတ္ကာ ေရာ့... ယူဗ်ာ၊ အခြင့္အေရးေတြ ဟုေပးမည္မဟုတ္။ ပခံုးပုတ္၍ လွည့္အျကည့္တြင္ မ်က္နွာကို လက္သီးျပင္းျပင္းနွင့္ ထိုးထည့္လိုက္ျခင္းမ်ိုးသာ သင္ ခံခ်င္ ခံရနိုင္သည္။

အလကား ရနိုင္တာ ဒါမ်ိုးပဲ ရွိသည္။

ဒါကို လူအမ်ားလည္း သိျကသည္။ သိ္ု့ေသာှ ဒါကိုသိလ်က္ သူတို့ ဘယ္လိုေတြးျကသနည္း။ ဘယ္သူကမွ ငါ့ကို မကူညီလ်ွင္ ငါဘယ္မွာ ေအာင္ျမင္နိုင္မည္လဲ ဟူ၍ပဲ ေတြးသည္။

မွားျပန္ပါျပီ။

မည္သူမ်ွသင့္ထံလာျပီး အခြင့္အေရးေတြ မေပးေတာ့ဘူးဆိုေတာ့ေကာ ဘာျဖစ္သနည္း။

သင့္အား ေအာင္ျမင္သူ တစ္ဦ္းဘဝ ေရာက္ရွိေအာင္ တြန္းပို့ ေမာင္းနွင္ေပးမည့္ စြမ္းအားေတြ သင့္ကိုယ္ထဲမွာ အျပည့္ရွိေနသည္။ သင္၌ လိုအပ္ေနသည္မွာ သင္သည္ ဤေလာက၌ ထိုက္တန္ေသာ တစ္ေနရာကို ရပိုင္ခြင့္ရွိသည္ဟူေသာ ယံုျကည္ခ်က္နွင့္ ထိုအရာကို ရေအာင္ ယူမည္ဟူေသာ ခိုင္မာသည့္ သနဿနိဋဿဌာန္တို့သာ ျဖစ္သည္။

ဒါေတြကို တျခားက မရနိုင္။ သင့္ကိ္ုယ္တိုင္ထံမွပင္ ေတာင္းခံယူရေပမည္။

----

ကိုယ့္အား ကိုယ္ကိုး

သင့္အား မည္သူမ်ွ အေပါှအျမင့္သို့ ေရာက္ေအာင္ ျကိုးျဖင့္ ဆြဲမတင္နိုင္။ ျကိုးကို ျကာျကာ ဆုပ္ကိုင္ မထားနိုင္ေသာ အေျကာင္းေျကာင့္ပင္ သင္ျပုတ္က်မည္ျဖစ္၏။ သို့ေသာှ ကိုယ့္ေျခေထာက္ေပါှကိုယ္ ရပ္၍တက္လ်ွင္ကား အျမင့္ဆံုးေတာင္ထိပ္သို့ ေရာက္ေအာင္ပင္ သင္တက္နိုင္မည္ျဖစ္သည္။

- ဘရန္ဒိုက္စ္

(ေဖျမင့္၏ ကိုယ့္ထူးကိုယ္ခ်ြန္သမားမ်ားအတြက္ လက္စြဲစကားမ်ား စာအုပ္မွ)

Teach Yourself Programming in Ten Years - ပရိုဂရမ္ တကယ္တတ္ဖို့ ဆယ္ ... နွစ္

Teach Yourself Programming in Ten Years

ပရိုဂရမ္ တကယ္တတ္ဖို့ ဆယ္ ... နွစ္ ... အခ်ိန္လိုအပ္ပါတယ္

Peter Norvig (ပီတာ ေနာဗစ္)


လူေတြ ဘာလို့ ဒီေလာက္ ေလာေနျကတာလဲ?

စာအုပ္ဆိုင္ေတြရွိတဲ့ ဘက္ကို သင္ လမ္းေလ်ွာက္ျကည့္ဖူးမွာပါ။ ဂ်ာဗားကို ၇ ရက္အျပတ္သင္၊ Visual Basic၊ ဝင္းဒိုး၊ အင္တာနက္ စတာေတြကို နာရီ အနည္းငယ္၊ သို့ ရက္အနည္းငယ္ နဲ့ အျပတ္သင္ ဆိုတာမ်ိုးေတြေပါ့။

တစ္ခါက Amazon ဆိုတဲ့ ဝဘ္ဆိုဒ္မွာ ဒီလို ရွာျကည့္ဖူးတယ္။

ထုတ္တဲ့ရက္ ၁၉၉၂ ေနာက္ပိုင္း၊ ေခါင္းစဉ္မွာ days ဆိုတာ ပါျပီး (learn (သို့) teach yourself) ဆိုတာလည္းပါတဲ့ စာအုပ္မ်ား ဆိုျပီးေတာ့ရွာျကည့္တာ ၂၄၈ ခု ထြက္လာပါတယ္။ ပထမဦးဆံုး ၇၈ အုပ္ဟာ ကြန္ပ်ူတာစာအုပ္ေတြ ျဖစ္ျပီး (၇၉ ခုေျမာက္ဟာ ဘင္ဂါလီဘာသာကို ၃ဝရက္နဲ့ အျပတ္သင္ဆိုတဲ့ စာအုပ္ျဖစ္တယ္)

ဒါနဲ့ days ဆိုတဲ့ စာလံုးကို hours ဆိုျပီး ေျပာင္းရွာျကည့္မိတယ္။ ၂၅၃ အုပ္ေတာင္ ထြက္လာတာေတြ့ရတယ္။ ၇၇ အုပ္က ကြန္ပ်ူတာစာအုပ္ျဖစ္ျပီး ၇၈ အုပ္ေျမာက္ဟာ (အဂဿငလိပ္သဒဿဒါနဲ့ ေရးပံုေရးနည္းကို ၂၄နာရီနဲ့ အျပတ္သင္) စာအုပ္ျဖစ္တာေတြ့ရတယ္။

စာအုပ္ ၂၀၀ မွာ ၉၆ ရာခိုင္နွုန္းဟာ ကြန္ပ်ူတာ စာအုပ္ေတြ ျဖစ္ေနတာေတြ့ရတယ္။

ဒါကို ျကည့္ျခင္းအားျဖင့္ လူေတြဟာ ကြန္ပ်ူတာနဲ့ ပတ္သက္ျပီး ေတာှေတာှေလးကို ေလာေနျကတယ္။ ဒါမွ မဟုတ္ ကြန္ပ်ူတာ နည္းပညာေတြကပဲ အျခားဟာေတြနဲ့ ယွဉ္လိုက္ရင္ ဒီေလာက္ လြယ္ကုန္ျပီလား။ ကြမ္တမ္ ရူပေဗဒ၊ ဘင္သိုဗင္ စတာေတြ၊ ယုတ္စြအဆံုး ေခြးေမြးျမူေစာင့္ေရွာက္ဖို့ နည္းေတာင္ ရက္အနည္းငယ္နဲ့ တတ္နည္း ဆိုတဲ့ စာအုပ္မေတြ့ဖူးဘူး။

ဒီအလြယ္တတ္နည္းေတြဟာ သူ့အေျကာင္းနဲ့ သူေတာ့ရွိလိမ့္မယ္။ ဘယ္မွာမွ သံုးစားမရတဲ့ ပရိုဂရမ္ဆိုရင္ေတာ့ လြယ္ရင္လြယ္မွာေပါ့။ အဲလိုမ်ိုးဆိုရင္ေတာ့ ခပ္တံုးတံုး သူေတြေတာင္ ၂၁ရက္နဲ့ တတ္ရင္ တတ္နိုင္လိမ့္မလားပဲ။

ကဲ.. ထားပါေတာ့။ ..

C++ ကို ၃ရက္နဲ့ အျပတ္ ဆိုတဲ့ စာအုပ္ကို နဲနဲ သံုးသပ္ျကည့္ရေအာင္။

- ၃ ရက္နဲ့ ပရိုဂရမ္ တကယ္ ေရးခ်ိန္ ရွိလိုက္မွာ မဟုတ္ပါဘူး။ ကိ္ုယ္ေရးလိုက္တဲ့ ပရိုဂရမ္ရဲ့ ေအာင္ျမင္မွု၊ မေအာင္ျမင္မွုေတြကို သိမွာ မဟုတ္ဘူး။
- တကယ့္ အေတြ့အျကံုရွိတဲ့ ပရိုဂရမ္မွာေတြနဲ့ အလုပ္လုပ္ခြင့္ရွိလိုက္မွာမဟုတ္ဘူး။
- C++ ရဲ့ လက္ေတြ့ အရသာကို သိရမွာ မဟုတ္ဘူး။ လြယ္လြယ္ေျပာရရင္ ေလ့လာဖို့ အခ်ိန္မရဘူး။
- ဒါေျကာင့္ အဲဒီ စာအုပ္ဟာ အေပါှယံေလာက္ပဲ ေျပာသြားနိုင္တာကို ေတြ့ရမွာပါ၊
- ပုတ္ရဟန္းမင္းျကီး အလက္ဇန္းဒါးက ေျပာဖူးတယ္။ နဲနဲပဲ တတ္တာဟာ အနဿတရာယ္ ျကီးမားတယ္တဲ့။

- C++ မွာ ၃ ရက္ဆိုရင္ syntax ေလာက္ေတာ့ သိရင္သိသြားမွာေပါ့ (အျခား ဘာသာစကားကို သိထားတယ္ဆိုရင္)၊ ဒါေပမယ့္ တကယ့္လက္ေတြ့ ဘယ္လိုသံုးရမယ္ဆိုတာ သိလိုက္မွာ မဟုတ္ဘူး။
- ဥပမာ basic ပရိုဂရမ္သမား ဆိုရင္၊ C++ ရဲ့ syntax  ေတြကို ဘယ္လိုသံုးရမယ္ဆိုတာ သိေကာင္းသိလာမယ္။ ဒါေပမယ့္ C++ ရဲ့ တကယ္ေကာင္းတဲ့ ေနရာ၊ မေကာင္းတဲ့ ေနရာေတြကို  သိမွာ မဟုတ္ဘူး။ ဒါေျကာင့္ ဘာမွ အဓိပဿပာယ္မရွိဘူး။
- အလန္ ပါးလစ္ဆိုတဲ့သူေျပာဖူးတယ္ ... ဘာသာစကားတစ္ခုဟာ သင့္ရဲ့ လက္ရွိ ပရိုဂရမ္ စဉ္းစားပံု စဉ္းစားနည္းကို ေျပာင္းလဲေစမွု မရွိဘူးဆိုရင္၊ ေလ့လာရတာ မတန္ပါဘူး တဲ့။
- တကယ္ျဖစ္လာမွာက C++ ရဲ့ တပိုင္းတစ ေလာက္ပဲ နားလည္လိုက္မွာပါ။ ပရိုဂရမ္ တကယ္တတ္ဖို့မဟုတ္ပဲ၊ အလုပ္ဘယ္လိုျပီးေအာင္လုပ္ရမလဲ ဆိုတာ မ်ိုးနဲ့ ပိုျပီး တူတာေတြ့ရပါတယ္။

တကယ္ေတာ့ သံုးရက္ဟာ ဘာမွ မဟုတ္ဘူး ဆိုတာ လုပ္ျကည့္ရင္ သိပါလိမ့္မယ္။

------

ပရိုဂရမ္ကို ေလ့လာဖို့ ဆယ္နွစ္ အခ်ိန္ေပးပါ။


သုေတသန ပညာရွင္ေတြျဖစ္တဲ့ (Bloom (1985), Bryan & Harter (1899), Hayes (1989), Simmon & Chase (1973)) တို့ကို ျကည့္ပါ။ သူတို့ေတြ သူတို့ရဲ့ ကိုယ္ပိုင္ ပညာရပ္ေတြကို က်ြမ္းက်င္ဖို့ ဆယ္နွစ္ အခ်ိန္ယူခဲ့ျကရပါတယ္။ ခ်က္စ္ ကစားတာ၊ အနုပညာ ဖန္တီးတာ၊ ေျကးနန္း ပို့ေဆာင္တဲ့ပညာ၊ ပန္းခ်ီဆြဲတာ၊ စနဿဒယားတီးတာ၊ ေရကူးတာ၊ တင္းနစ္ ကစားတာ၊ ဦးေနွာက္နဲ့ အာရံုေျကာ ပညာအတြက္ သုေတသန လုပ္တာေတြဟာ တကယ့္ကို အခ်ိန္ေပးခဲ့ရပါတယ္။

အဓိက ေအာင္ျမင္ဖို့ဟာ တစ္မ်ိုးတည္းကို ပဲ ထပ္ခါထပ္ခါ လုပ္ရံုနဲ့ လဲမရပါဘူး။ ကိုယ့္အစြမ္းအစ ထက္ပိုမိုတဲ့ အရာကို အျမဲပဲ ေလ့လာလုပ္ေဆာင္ ျကည့္ေနဖို့  ျဖစ္ပါတယ္။ တျဖည္းျဖည္းနဲ့ ပိုပိုသာလာေအာင္ အမွားကင္းလာေအာင္ ျပုလုပ္နိုင္ဖို့ကို သာလ်ွင္ ထပ္ခါထပ္ခါ လုပ္ေဆာင္ရမွာ ျဖစ္ပါတယ္။

ျဖတ္လမ္းဆိုတာလည္း မရွိပါဘူး။ မိုးဇက္ဆိုတဲ့ အနုပညာ ပါရမီရွင္ဟာ အသက္ ၄ နွစ္ကတည္းက ေတးဂီတကို စလုပ္ခဲ့ေပမယ့္ ကမဿဘာ့အဆင့္အတန္းဝင္ျဖစ္ဖို့ ၁၃နွစ္ ျကာခဲ့ပါတယ္။

Beatles ဟာလည္း ၁၉၅၇ ကတည္းက ကလပ္ေတြမွာ စတင္တီးဆိုေဖ်ာှေျဖခဲ့ေပမယ့္ တကယ္တမ္း ေအာင္ျမင္ခဲ့တာ ၁၀ နွစ္ျကာျပီး ၁၉၆၇ ခုနွစ္မွ ျဖစ္ပါတယ္။

အထက္ပါ အနုပညာရွင္ေတြ အားလံုး အသက္ ၅နွစ္ေလာက္ကတည္းက စတင္ေလ့လာခဲ့ပါတယ္။
အသက္ ၅ နွစ္သားတုန္းက ေလ့က်င့္မွုဟာ တစ္ပတ္ကို ၂နာရီ ၃ နာရီ ဝန္းက်င္ေလာက္ရွိပါတယ္။
အသက္ ၈ နွစ္ေလာက္မွာ ပိုမို စြမ္းေဆာင္လာနိုင္ျပီး တစ္ပတ္ကို ၆ နာရီ ၊ အသက္ ၁၂ နွစ္မွာ တစ္ပတ္ ၈ နာရီ၊ အသက္ ၁၆ နွစ္မွာ ၁၄ နာရီ စသျဖင့္ေလ့လာခဲ့ျပီး အသက္ ၂၀ မွာ တစ္ပတ္ကို နာရီ ၃၀ မ်ွ ရွိပါတယ္။

အသက္၂၀ ေရာက္ေနတဲ့ အခ်ိန္မွာ ေလ့က်င့္ခဲ့တဲ့ အခ်ိန္ေတြကို ေပာင္းျကည့္ရင္ နာရီ ၁၀၀၀၀ ေလာက္ ရွိေနပါတယ္။ အျခား ပံုမွန္ေတာှသူေတြဟာ နာရီ ၈၀၀၀ ေလာက္ပါ။ သူတို့ကို သင္ျပေပးသူေတြဟာေတာ့ နာရီ ၄၀၀၀ ေလာက္ပဲ ရွိပါလိမ့္မယ္။

ဒါေျကာင့္ အတိအက်ေျပာမယ္ဆိုရင္ေတာ့ ၁၀ နွစ္ဆိုတာထက္ နာရီ ၁၀၀၀၀ ေလာက္ ေလ့က်င့္ဖို့ လိုတယ္ဆိုတာပါဘဲ။

ဆာမ်ူရယ္ ဂ်ြန္ဆင္ (1709-1784) က ဒီလို ေျပာခဲ့ပါတယ္  "ဘယ္ေနရာက ထူးခ်ြန္တဲ့သူမဆို ေအာင္ျမင္ဖို့ အတြက္ ဘဝနဲ့ ရင္းျပီး ျကိုးစားလာျကရတာပဲ၊ ေဈးေပါေပါနဲ့ ဝယ္လို့ရတဲ့ဟာ မဟုတ္ဘူး ဆိုတာပါပဲ။"

Chaucer (1340-1400) က ဒီလို ညဉ္းတြားဖူးပါတယ္ ... ဘဝဆိုတာ တိုသေလာက္ တစ္ခုခု က်ြမ္းက်င္ေအာင္ လုပ္ဖို့က ေတာှေတာှျကာတယ္။

Hippocrates (c. 400BC) ကေတာ့ ဒီလိုမ်ိုး ေျပာဖူးပါတယ္။ ဘဝဟာ သိပ္တိုတယ္ ... ျကိုးစားမွုက ျကာရွည္ရတယ္၊ အခြင့္အေရးေတြက မျမင္ရသေလာက္ပဲ၊ စမ္းသပ္မွုေတြအတြက္ ေအာင္ျမင္မွုတစ္ခုရဖို့ဟာ အင္မတန္ခက္ခဲတယ္။

-----

ပရိုဂရမ္နဲ့ ပတ္သက္ျပီး ေအာင္ျမင္ဖို့အတြက္ လမ္းေျကာင္းကို ဒီလိုေျပာျပခ်င္ပါတယ္။
 

၁။ အေရးအျကီးဆံုးက တကယ္စိတ္ဝင္စားပါေစ၊ ကိ္ုယ္ဘာေရးလိုက္ေရးလိုက္ ေပ်ာှရြင္မွုရွိပါေစ။ တကယ္ေပ်ာှရြင္မွုရွိမွ ဆယ္နွစ္လုပ္ကိုင္နိုင္သြားဖို့ အင္အားေတြရွိမွာ ျဖစ္ပါတယ္။

၂။ အျခား ပရိုဂရမ္မာေတြနဲ့ စကားေျပာျဖစ္ေအာင္ ျကိုးစားပါ။ အျခားသူေတြေရးထားတဲ့ ပရိုဂရမ္ေတြကို ဖတ္ျဖစ္ေအာင္ျကိုးစားပါ။ ဒါဟာ စာအုပ္ေတြ ဖတ္တာထက္၊ သင္တန္းေတြ တက္တာထက္ ပိုအေရးျကီး ပါတယ္။

၃။ ပရိုဂရမ္ဆိုတာ ေရးျကည့္ရင္းနဲ့ မွ ပိုတတ္တဲ့ အမ်ိုးပါ။ အေသးအမြွား ပရိုဂရမ္ေလးေတြေတာင္ ဖန္ရွင္ အျပည့္အစံုနဲ့ ျဖစ္ေအာင္ေရးပါ။ အျခားသူေတြရဲ့ သံုးသပ္မွုေတြကတဆင့္ ပိုေကာင္းေအာင္လုပ္ျကည့္ပါ။ အမွားေတြကို ျပင္ျဖစ္ေအာင္ ျပင္ျကည့္ပါ။

၄။ အကယ္၍ သင္ဟာ တကဿကသိုလ္ကို လည္း ၄ နွစ္ေလာက္တက္ခ်င္ေသးတယ္လည္းတက္လို့ရပါတယ္။ ဒါဟာ သင့္အတြက္ ပိုျပီး နက္နဲတဲ့ အေတြ့အျကံုတစ္ခုကို ရေကာင္းရပါလိမ့္မယ္။ မတက္ဘူးဆိုရင္လည္း အလုပ္ကေနလဲ ရနိုင္ပါတယ္။ တကဿကသိုလ္ပဲျဖစ္ျဖစ္ အလုပ္ပဲျဖစ္ျဖစ္ စာအုပ္ကေန ေလ့လာရံုဆိုရင္ေတာ့ မလံုေလာက္ပါဘူး။ ကြန္ပ်ူတာ တကဿကသိုလ္ ပညာေရးဟာ ဘယ္သူ့ကိုမွ ပညာရွင္အဆင့္ျဖစ္ေအာင္ ျပုလုပ္မေပးနိုင္ပါဘူး။ ပန္းခ်ီပညာ ဆိုရင္ စုတ္တံ သံုးပံုသံုးနည္းနဲ့ ေဆးစပ္ပံု အေျခခံကို ပဲ သင္ေပးနိုင္မွာ ျဖစ္ပါတယ္။

၅။ အျခား ပရိုဂရမ္မာေတြပါတဲ့ ပေရာဂ်က္တစ္ခုခုကို ဝင္လုပ္ပါ။ တခ်ို့ ပေရာဂ်က္ေတြမွာ ထိပ္သီးျဖစ္ေအာင္ျကိုးစားပါ။ တခ်ို့ပေရာဂ်က္မွာ ေအာက္ဆံုးကလဲ ျဖစ္ရင္ျဖစ္ေနပါေစ။ သင္ထိပ္ဆံုး ေရာက္ေနစဉ္မွာ သင့္စြမ္းရည္ကို အေကာင္းဆံုးအသံုးခ်ပါ။ အျခားသူေတြကိုလည္း သင့္ ေတြးေခါှမွုေတြကို ထုတ္ေဖာှျပသပါ။ သင္ေအာက္ဆံုးမွာ ေရာက္ေနတဲ့ ပေရာဂ်က္ဆိုရင္လည္း ေရွ့က ဆရာ့ဆရာေတြ လုပ္တာကို ေလ့လာပါ၊ သူတို့ လုပ္တာ မလုပ္တာေတြကိုလည္း ဆင္ျခင္သံုးသပ္ပါ။

၆။ အျခားသူေတြရဲ့ ပေရာဂ်က္ေတြကို ေလ့လာပါ။ နားလည္ေအာင္လုပ္ထားပါ။ အကယ္၍ အေရးေပါှအေျခအေန ျပင္ဖို့လိုတာေတြရွိရင္ နဂို ေရးတဲ့သူေတြမရွိရင္ သင္ဝင္ေရးနိုင္ေအာင္ လုပ္ထားပါ။
ေနာက္ျပီး ေနာက္လူ အတြက္လည္း အလြယ္ဆံုးျဖစ္ေအာင္ ပရိုဂရမ္ ဒီဇိုင္း အေကာင္းဆံုးျဖစ္ေအာင္ ျပုလုပ္ထားပါ။

၇။ ပရိုဂရမ္ ဘာသာစကား အနည္းဆံုး ဒါဇင္ဝက္ ေလာက္ေတာ့ ေလ့လာပါ။ class ရဲ့ သေဘာသဘာဝေတြ ပါဝင္တဲ့ ဂ်ာဗား တို့ C++ တို့ေတာ့ တစ္ခု အနည္းဆံုးပါဝင္ပါေစ၊ ေနာက္ျပီး ဖန္ရွင္ သေဘာသဘာဝေတြပါဝင္တဲ့ Lisp တို့ ML တို့လိုမ်ိုးကို လည္း တစ္ခုပါဝင္ပါေစ၊ Template သေဘာတရားေတြပါဝင္တဲ့ Prolog တို့ C++ Template လိုဟာမ်ိုးတစ္ခု၊ coroutines လို့ေခါှတဲ့ အပိုင္းေလးေတြခြဲျပီး အလုပ္လုပ္လို့ရတဲ Icon တို့ Scheme လိုဟာမ်ိုးတစ္ခု၊ Sisal လို့ေခါှတဲ့ Parallel အသံုးျပု လို့ရတဲ့ သေဘာထားေတြပါတာမ်ိုးေတြကို ေလ့လာသင့္ပါတယ္။

၈။ ေနာက္ျပီး ပရိုဂရမ္ အခ်က္အလက္တစ္ခု အလုပ္လုပ္ခ်ိန္မွာ အခ်ိန္ ဘယ္ေလာက္ျကာတာတို့၊ memory ေပါှက စာလံုးတစ္လံုးဖတ္ဖို့ ဘယ္ေလာက္ျကာတာတို့၊ cache ပါရင္ ဘယ္ေလာက္ျကာတယ္။ မပါရင္ ဘယ္ေလာက္ျကာတယ္တို့၊ ဟာ့ဒစ္ကေန စာလံုးေတြ ဆက္တိုက္ဖတ္ရင္ ဘယ္ေလာက္ျကာတယ္တို့၊ ဟာ့ဒစ္ရဲ့ ဖတ္ေနတဲ့ ေနရာမဟုတ္ပဲ အျခားေနရာက ဖိုင္ကိုသြားရွာရင္ ဘယ္ေလာက္ျကာတယ္ စသျဖင့္ကို သိထားသင့္ပါတယ္။ ဒါေတြသိထားရင္ အျခား ပရိုဂရမ္ေတြထက္ အလုပ္လုပ္ပံုျခင္း တူရင္ေတာင္မွ ပိုေကာင္းတဲ့ ပိုျမန္တဲ့ ပရိုဂရမ္ကို ျပုလုပ္နိုင္မွာ ျဖစ္ပါတယ္။

၉။ တတ္နိုင္ရင္ ကြန္ပ်ူတာ ဘာသာစကားေတြရဲ့ စံသတ္မွတ္ျခင္းအဖြဲ့ေတြမွာပါ ပါဝင္နိုင္ေအာင္ျကိုးစားပါ။ ANSI C++ ေကာှမတီလဲျဖစ္ရင္ျဖစ္မယ္၊ ကိုယ္ပိုင္ ကုတ္ေရးပံုေရးနည္း စတိုင္ ညွိနွိုင္းပြဲလဲျဖစ္ရင္ျဖစ္မယ္။ ကုတ္တစ္ေျကာင္းေရွ့မွာ စာလံုး အလြတ္ ဘယ္နွခု စသျဖင့္ေပါ့။ ဒါေတြလဲ စနစ္တက်ျဖစ္ေအာင္ လုပ္ျကပါတယ္။ အဲဒီမွာ ပါဝင္ျခင္းအားျဖင့္ ပရိုဂရမ္ရဲ့ သေဘာတရားေတြကို ေရးပံုေရးနည္း စတိုင္စတာေတြကို ပိုမို နားလည္လာမွာပါ။ ဘယ္ပရိုဂရမ္မွာေတာ့ျဖင့္ ဘာကေကာင္းတယ္။ ဘယ္သူေတြက ဘယ္လို သေဘာက်တယ္ ဆိုတာေတြလည္း အေရးပါပါတယ္။
အဲ စတန္းဒတ္ လုပ္ဖို့ကေတာ့ မွန္မွန္ကန္ကန္နဲ့ သဘာဝ က်တဲ့ နည္းလမ္းကို ျမန္ျမန္ဆံုးျဖတ္နိုင္ပါေစ။ (ျကာသြားရင္ လူလက္ခံဖို့ခက္မွာစိုးလို့ျဖစ္မယ္။)

အဲဒါေတြ အကုန္လံုးကို ေခါင္းထဲထည့္ထားပါ။ စာအုပ္ကေန ဘယ္ေလာက္ေလ့လာနိုင္လဲ ဆိုတာ လက္ေတြ့သိျမင္လာပါလိမ့္မယ္။

က်ေနာှ ကိ္ုယ္တိုင္ စာအုပ္နဲ့ေလ့လာခဲ့ဖူးတယ္။ က်ေနာှ (ေနာဗစ္) ပထမ သားဦး ေမြးတဲ့ အခ်ိန္မွာ How To လို စာအုပ္ေတြ အကုန္ဖတ္ခဲ့ျပီးျပီ။ ဒါေပမယ့္ ဘာမွ မဟုတ္ေသးေျကာင္း ကိုယ္ကိုယ္ကို သိေနပါတယ္။ ေနာက္ ၂နွစ္ခြဲေလာက္ျကာေတာ့ အဲဒီမွာ ျပန္စဉ္းစားျကည့္တယ္။ စာအုပ္ေတြ ျပန္ဖတ္သင့္သလားလို့ ... ေနာက္ဆံုး အဲဒီစာအုပ္ေတြ ျပန္ဖတ္မယ့္အစား ပညာရွင္ေတြ ေရးေနတာေတြကို ေလ့လာတာ၊ ပိုအသံုးဝင္မယ္လို့ ဆံုးျဖတ္ခဲ့တယ္။

Fred Brooks ဆိုတဲ့ သူတစ္ေယာက္ ေဆာ့ဝဲ ဒီဇိ္ုင္း ပညာရွင္ေတြ ေမြးထုတ္ခဲ့ပံုကေတာ့ ဒီလိုပါ။

၁။ ပံုမွန္ စနစ္က်က် ဒီဇိုင္း ပညာရွင္ေတြကို အရင္ဆံုးရွာတယ္။
၂။ သူတို့အတြက္ တိုးတက္ေအာင္ျမင္ဖို ့အတြက္ career လမ္းခ်ေပးတယ္။
၃။ ဒီဇိ္ုင္းသမားေတြ အခ်င္းခ်င္း ေတြ့ဆံု၊ နည္းပညာ ဖလွယ္နိုင္ေအာင္ လုပ္ေပးတယ္။

ဒါဟာ ဘာကိုေျပာသလဲ ဆိုရင္ တခ်ို့သူအေတာှမ်ားမ်ားမွာ အရည္အခ်င္းတစ္ခု ရွိေနျပီးသားပဲ။
အလုပ္က လိုက္ေလ်ွာညီေထြ ျဖစ္မယ္ဆိုရင္ ေအာင္ျမင္တဲ့ ပရိုဂရမ္မာေတြ ျဖစ္လာမွာပဲ လို့ ေကာက္ခ်က္ခ်လို့ရပါတယ္။

---

ဒါေျကာင့္ လက္ရွိ ဂ်ာဗားစာအုပ္ကို သင္ဝယ္မယ္ စဉ္းစားေနတယ္ဆိုရင္ သြားသာ ဝယ္လိုက္ပါ။
သူ့အတိုင္းအတာနဲ့ သူေတာ့ အသံုးက်ပါလိမ့္မယ္။ ဒါေပမယ့္ အဲဒါနဲ့ ၂၄နာရီ အတြင္း၊ ရက္ အနည္းငယ္ အတြင္း၊ သို့ လအနည္းငယ္ အတြင္းမွာေတာ့ သင့္ ဘဝကို ေျပာင္းလဲနိုင္ဦးမွာေတာ့ မဟုတ္ေသးပါဘူး။

ပီတာ ေနာဗစ္ http://norvig.com
---
Original Article : http://norvig.com/21-days.html

တခ်ို့ေနရာေတြမွာ ဆီေလ်ွာှသလို ျပန္ထားျခင္း ျဖစ္ပါတယ္။ မူရင္းဆိုလိုရင္းနဲ့ ကြဲျပားေကာင္း ကြဲျပားပါမည္။ :-)
---

I am learning programming 11 years now, but I am still cant do half of it :P
Well, I am not him :P


Anyway, Cheers,
Mark

က်ေနာ္ဖတ္ေသာ အျခား ဘေလာ့ / ဆိုဒ္မ်ား