Loading

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

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