Greentech Inc

Greentech Inc Greentech Inc is developed by a group of software engineering students just for publishing free softwares and applications.

Qualcomm Snapdragon 8 Gen 1     Qualcomm ကတော့ သူတို့ရဲ့ latest smartphone processor ကို ထုတ်ပြသွားပါပြီ၊ Snapdragon 8 G...
01/12/2021

Qualcomm Snapdragon 8 Gen 1

Qualcomm ကတော့ သူတို့ရဲ့ latest smartphone processor ကို ထုတ်ပြသွားပါပြီ၊ Snapdragon 8 Gen 1 လို့ နာမည်ပေးထားပြီး ၂၀၂၂ မှာထွက်မယ့် အကြမ်းစား smartphone တွေရဲ့ ဦးနှောက်လို့ပြောရင်လည်း မမှားပါဘူး...
Snapdragon 898 နာမည်နဲ့လာမယ်ဆိုပြီး ခန့်မှန်းနေကြပေမယ့် Qualcomm ကတော့ triple digit numbering system ကိုစွန့်ပစ်ပြီး ရိုးရှင်းတဲ့ Gen 1, Gen 2 တို့နဲ့ဆက်သွားမယ့်ပုံပဲ...
အခုထွက်လာတဲ့ Snapdragon 8 Gen 1 SoC ဟာဆိုရင် 4nm နဲ့လာမှာဖြစ်ပြီး မနှစ်ကထွက်ခဲ့တဲ့ Snapdragon 888 (5nm) ထက် 20% performance ပိုကောင်းပြီး 30% ပါဝါစားနှုန်းသက်သာလာမယ်လို့ပြောထားပါတယ်...
8 cores CPU နဲ့လာမှာပါ (a single prime core based on the Cortex-X2 at 3.0GHz, along with three performance cores based on Cortex-A710 at 2.5GHz, and a quartet of efficiency cores based on the Cortex-A510 design at 1.8GHz)...
GPU ပိုင်းမှာလည်း မနှစ်ကထွက်ခဲ့တဲ့ Snapdragon 888 ရဲ့ Adreno 660 ထက် Graphics rendering လုပ်တဲ့နေရာမှာ 30% ပိုမြန်မှာဖြစ်ပြီး ပါဝါစားနှုန်းကလည်း 25% ပိုသက်သာမှာဖြစ်ပါတယ်...
Qualcomm ရဲ့ fourth-generation 5G modern နဲ့လာမှာဖြစ်ပြီး 10Gbps ထိ support ပေးပါတယ်၊ Wi-Fi 6 တို့ Wi-Fi 6E တို့လည်း support လုပ်ပါတယ်...
Camera ပိုင်းမှာလည်း triple ISP နဲ့လာမှာဖြစ်ပြီး တစ်စက္ကန့်မှာ 12MP ပုံ 240fps ကိုရိုက်နိုင်မှာဖြစ်ပါတယ်၊ 8K video ကိုလည်း HDR 10 Plus နဲ့ ရိုက်နိုင်ပါတယ်၊ 18-bit RAW video တွေလည်း support ပေးပါတယ်၊ ဒါတွေက Snapdragon 8 Gen 1 သုံးထားတဲ့ဖုန်းတိုင်း ဒီ feature တွေပါမယ်လို့မဆိုလိုပါ၊ SoC ရဲ့ လုပ်နိုင်စွမ်းမျှသာပါ၊ Smartphone company တွေက ဒါတွေကို ဘယ်လိုအသုံးချမလဲပေါ်မူတည်ပါတယ်...
Snapdragon 8 Gen 1 မှာ ၄ခုမြောက် ISP တစ်ခုလည်းပါသေးတယ်၊ သူက အပေါ်မှာပြောခဲ့တဲ့ triple ISP နဲ့မတူပါဘူး၊ ဒီ ISP အသစ်က camera တွေကိုအမြဲ active ဖြစ်နေအောင် လုပ်ဆောင်ပေးမယ့်ကောင်လေးပါ၊ ဒီ always-on camera feature ကို ဘယ်လိုအသုံးချမလဲဆိုတာကတော့ developer တွေ အပေါ်မှာပဲမူတည်ပါတယ်၊ ဥပမာ သင်က ဖုန်းကို မကြည့်တော့တဲ့ချိန်မှာ အလိုအလျောက်ပိတ်သွားပေးတာမျိုး၊ တစ်စုံတစ်ယောက်က သင့်ရဲ့ အနောက်ကနေချောင်းကြည့်‌နေတဲ့အခါ ပိတ်သွားတာမျိုးတို့ပေါ့၊ ဒီ always-on camera က security ပြသနာတွေဖြစ်လာနိုင်ပေမယ့် Qualcomm ကတော့ ဒီ feature တွေနဲ့ပဲ သင့်ရဲ့ device တွေကို ပိုပြီး လုံခြုံအောင်လုပ်ဆောင်နိုင်တယ်လို့ဆိုထားပါတယ်၊ ပြီးတော့ user က ဒီ feature ကို မသုံချင်ရင်လည်း ပိတ်ထားလို့ရပါတယ်တဲ့...
AI အပိုင်းမှာဆိုရင် Qualcomm ရဲ့ latest Hexagon processor ပါဝင်တဲ့ 7th gen AI engine နဲ့လာမှာဖြစ်ပါတယ်၊ Snapdragon 888 ထက် ၄ဆ ပိုမြန်မှာဖြစ်ပြီး ၁.၇ဆ ပါဝါစားနှုန်းသက်သာမှာဖြစ်ပါတယ်...
အရင်ဆုံး ဘယ်ဖုန်းက ပထမဆုံး Snapdragon 8 Gen 1 ကို သုံးပြီးထွက်လာမလဲဆိုတာတော့ ဆက်‌ပြီးစောင့်ကြည့်ကြတာပေါ့၊ တစ်ဖက်မှာလည်း Qualcomm ရဲ့ပြိုင်ဘက် MediaTek ကနေ Dimensity 9000 ထွက်ထားတာမကြာသေးပါဘူး၊ တော်တော်ကြမ်းတယ်လို့ပြောနေကြတယ်၊ ဘယ်သူပိုကြမ်းမလဲဆိုတာကတော့ ထွက်လာမယ့်ဖုန်းတွေက ဆုံးဖြတ်ပေးသွားပါလိမ့်မယ်...

Images from Qualcomm

Apple announces Self Service RepairRight to repair ကြောင့် ခေါင်းမာနေတဲ့ Apple လည်း နောက်ဆုံးမှာတော့ Self Service Repair...
19/11/2021

Apple announces Self Service Repair

Right to repair ကြောင့် ခေါင်းမာနေတဲ့ Apple လည်း နောက်ဆုံးမှာတော့ Self Service Repair Program ကို ခွင့်ပြုပေးတော့မှာပဲဖြစ်ပါတယ်၊ ဒါက ဘာကိုဆိုလိုတာလည်းဆိုတော့ Apple က သင့်ရဲ့ iPhone နဲ့ Mac တွေကို Apple Authorized Service Center သွားစရာမလိုပဲ Warranty လည်းမပျက်ပဲ ကိုယ်တိုင်ပြုပြင်ခွင့်ပေးတော့မှာပဲဖြစ်ပါတယ်၊ ဒီလို ကိုယ်တိုင် ပြုပြင်ဖို့ဆိုရင် Apple ကရောင်းချမယ့် Official spare parts တွေတော့ ဝယ်ရမယ်လို့သိရပါတယ်၊ အခုကြေညာချက်ထဲမှာတော့ Display, Camera နဲ့ Battery တို့ကိုပဲ Self Service Repair ခွင့်ပြုပေးဦးမှာဖြစ်ပါတယ်၊ ဒီ ၃ခုဟာလည်း အများဆုံးလဲနေကြတဲ့အစိတ်အပိုင်းတွေပဲဖြစ်ပါတယ်၊ နောက်ထပ် part တွေကို ထပ်တိုးခွင့်ပြုပေးဖို့လည်းရှိပါတယ်လို့ Apple ကဆိုထားပါတယ်၊ ဒီ Self Service Repair Program ကို လာမယ့်နှစ် ၂၀၂၂ အစောပိုင်း US မှာစတင်ခွင့်ပြုပေးမှာဖြစ်ပြီး ကျန်တဲ့နိုင်ငံတွေကတော့ အဲ့ထက်အနည်းငယ်နောက်ကျပြီးမှရနိုင်မှာဖြစ်ပါတယ်၊ ဘယ်အစိတ်အပိုင်းက ဘယ်လောက်နဲ့ရောင်းချမယ်ဆိုတာကိုတော့ Apple က ထုတ်ပြောမသွားပါဘူး။

Photo from Apple & iFixit

Tip for your old school laptop 😛
14/11/2021

Tip for your old school laptop 😛

Wifi password ဖြုတ်ချင်ရင်ဖြုတ်လို့ရအောင်လို့ အောက်ကအတိုင်း စမ်းကြည့်လို့ရပါတယ်။ခုလုပ်ပြမှာက zte  router ကနေ wifi passwo...
30/03/2021

Wifi password ဖြုတ်ချင်ရင်ဖြုတ်လို့ရအောင်လို့ အောက်ကအတိုင်း စမ်းကြည့်လို့ရပါတယ်။
ခုလုပ်ပြမှာက zte router ကနေ wifi password ဖြုတ်တဲ့နည်းလေးပါ။ တခြား router မှာတော့ setting နည်းနည်းတော့ ကွာပါလိမ့်မယ်။
အောက်က ပုံတွေအတိုင်းတစ်ပုံချင်းစီကြည့်ပြီးလိုက်လုပ်လို့ရပါတယ်။
(တစ်ခုလေးပဲ သူများအလကားပေးထားတဲ့ wifi ကို ခိုးချိတ်ပြီး password ပြောင်းတာတို့တော့မလုပ်နဲ့နော်)
1. ပထမဆုံး ကိုယ့်လိုင်းကို ချိတ်လိုက်ပါ။
ပြီးရင် browser တစ်ခုခု (chrome, firefox, edge, ...) တစ်ခုခုမှာ 192.168.1.1 လို့ရိုက်ထည့်ပြီးရှာကြည့်လိုက်ပါ။
ပြီးရင် ပုံထဲမှာပြထားတဲ့အတိုင်းဆက်လုပ်ကြည့်ပေါ့
router မတူရင်တော့ setting မတူတာလေးတွေရှိနိုင်တော့ စမ်းကလိကြည့်ပေါ့

GDev

if __name__ == “__main__”:  Python ကိုစပြီးလေ့လာနေတဲ့သူတွေအနေနဲ့ဒါမျိုးကို တွေ့ဖူးပြီးဘာကြောင့်ရေးကြလဲလို့စဥ်စားနေကြမယ်လ...
14/08/2020

if __name__ == “__main__”:
Python ကိုစပြီးလေ့လာနေတဲ့သူတွေအနေနဲ့ဒါမျိုးကို တွေ့ဖူးပြီးဘာကြောင့်ရေးကြလဲလို့စဥ်စားနေကြမယ်လို့ထင်ပါတယ်။ အဲဒီအကြောင်းမပြောခင် main function တွေ define ရတဲ့ C တို့လို language တွေနဲ့ရင်းနှီးရင်ပိုအဆင်ပြေပါလိမ့်မယ်။
ဒီ C code ကို အရင်ကြည့်လိုက်ရအောင်
# include
int main (void) {
}
void hello_world(void) {
printf("Hello How are you?\n");
}
ဒီ C code ကို compile ပြီး run လိုက်ရင်” Hello How are you?” ဆိုတဲ့စာကိုတွေ့ရမှာမဟုတ်ပါဘူး။ void hello_wordl(void) ကနေစကြည့်ရအောင်။
သူ့အထဲမှာ printf ဆိုတဲ့ function က " Hello How are you?" ဆိုတဲ့စာကိုထုတ်ပေးဖို့ဖြစ်ပါတယ်။ ဒါပေမဲ့ ဘာကြောင့်ဘာမှမပေါ်သလဲဆို int main(void) ဆိုတဲ့ main function မှာ print ထုတ်တဲ့ စာတွေပဲ terminal မှာထုတ်ပေးမှာမို့လို့ပါ သူ့နာမည်အတိုင်းပဲ binary program အတွက် main ကအဓိကဖြစ်ပါတယ်။ ဒါဆို Hello How are you? စာပေါ်အောင်ဘယ်လိုလုပ်ရမလဲ?
# include
int main (void) {
hello_world();
}
void hello_world(void) {
printf("Hello How are you?\n");
}
ဆိုပြီး hello_world function ကို main ထဲ ခေါ်ထည့်ရမှာဖြစ်ပါတယ်။
ဒါဆို python မှာရော main ဆိုတာကြီးမပါဘူးလား?
hello.py ဆိုတဲ့ python file မှာ
print(__name__)
ဆိုပြီးရေးပြီး run ကြည့်လိုက်ပါ
__main__ ဆိုပြီးမြင်ရမှာဖြစ်ပါတယ်။ ဘာကြောင့်လဲဆိုတော့ python မှာက python file ကို တိုက်ရိုက် run ရင် main လို့ သတ်မှတ်တာကြောင့် သူ့ပေါ်မှာ print တာတွေကို terminal မှာ မြင်ရမှာဖြစ်ပါတယ်
ဒါဆို hello.py ပေါ်မှာ အောက်က code လေးရေးပြီး save လိုက်ပါ
def add_two(x):
return x + 2
print("Hello World")
directory တူတူ ထဲမှာပဲ test.py ဆိုတဲ့ file ကို create ပြီး hello ကို ခေါ်သုံးလိုက်ပါ (အောက်ကအတိုင်းရေးကြည့်လိုက်ပါ)
import hello
print("Hello I am test.py")
test.py ကို run လိုက်မယ်ဆိုရင်
Hello World
Hello I am test.py
ဆိုပြီးစာနှစ်ကြောင်းကိုတွေ့ရမှာဖြစ်ပါတယ် ။ ဒါဆိုရင်အဲမှာအဆင်မပြေဖြစ်တာပါ ကျွန်တော်တို့ hello.py ထဲက function ကိုခေါ်သုံးဖို့လုပ်ရင် မလိုတဲ့ "Hello World" ဆိုတဲ့ စာကြီးအပိုပါနေမှာဆိုတော့ အဲတာကိုရှင်းရအောင်
import hello
print("Hello I am test.py")
print(hello.__name__)
အရင်ဆုံ: test.py မှာ print(hello.__name__) ဆိုပြီးထပ်ဖြည့်လိုက်ပါ run လိုက် မယ်ဆိုရင်
Hello World
Hello I am test.py
hello
ဆိုတဲ့စာသုံးကြောင်းပေါ်လာမှာဖြစ်ပါတယ် ဘာကြောင့်လဲဆိုတော့ hello.py ကို import လုပ်လိုက်တဲ့အခါမှာ သူ့ နာမည်က hello ဖြစ်သွားလို့ဖြစ်ပါတယ်
def add_two(x):
return x + 2
if __name__ == "__main__":
print("Hello World")
ဆိုပြီး hello.py ကိုပြောင်းရေးလိုက်ပါ။ if နောက်ကပြောတာက __name__ သာ __main__ ဖြစ်နေမယ်ဆိုရင် "Hello World" ကို print ပေးပါ ဖြစ်ပါတယ် သူ့ကို save လိုက်ပြီး test.py ကို run ကြည့်လိုက်ပါ
Hello I am test.py
hello
ဆိုတဲ့ စာနှစ်ကြောင်းပဲ ပေါ်လာပါလိမ့်မယ် ဘာကြောင့်လဲဆိုတော့ __name__ က hello ဖြစ်သွားလို့ပါ
ခုလောက်ဆိုရင် if __name__ == "__main__": ကိုဘာကြောင့်ရေးလဲဆိုတာနားလည်လောက်ပြီလို့ထင်ပါတယ်၊၊
မှားတာ တို့ မရှင်းတာတို့ရှိရင် comment မှာဝင်ပြောပေးလို့ရပါတယ်
14.8.2020

The Guessing Game (part 2)မနေ့က Cargo.toml file ကို modify လုပ်တဲ့အထိပြီးပြီးဆိုတော့ ဒီနေ့ဂိမ်းရေးတဲ့ဘက်ဆက်သွားမှာဖြစ်ပါ...
17/05/2020

The Guessing Game (part 2)

မနေ့က Cargo.toml file ကို modify လုပ်တဲ့အထိပြီးပြီးဆိုတော့ ဒီနေ့ဂိမ်းရေးတဲ့ဘက်ဆက်သွားမှာဖြစ်ပါတယ်။

ဒါဆို code ကိုတစ်ကြောင်းချင်းစီကြည့်​ရအောင်
________________________________________

use std::io;
Standard library ထဲက io(input/output) library ကိုသုံးမယ်လို့ကြေညာတာပါ

use std::cmp::Ordering;
ဒါလည်း standard library ထဲက cmp(compare) ထဲမှာရှိတဲ့ Ordering ကိုခေါ်သုံးဖို့ကြေညာတာပါ

use rand::Rng;
ခဏက ကျွန်တော်တို့ Cargo.toml file ထဲမှာထည့်သုံးဖို့ရေးလိုက်တဲ့ rand library ကို ​ခေါ်သုံးဖို့ကြေညာတာပါ အနောက်မှာဆက်ပါလာတဲ့ Rng ကတော့ trait ပါ အခုအနေနဲ့ မသိထားလည်းရပါသေးတယ်

fn main() {
}
ဒါကတော့ Rust ရဲ့ အဓိက မပါမဖြစ် ဖြစ်တဲ့ main function ကို define တာပါ သူ့အထဲမှာ ဘယ်လိုအလုပ်လုပ်ရမလဲဆိုတာတွေကိုရေးပါမယ်

println!(”Guess the number.”);
အဲတာက printထုတ်ပေးဖို့ပြောတာပါ တစ်ခုသတိထားရမှာက rust မှာ println အနောက်မှာ ! ဒါလေးပါပါတယ် macro လို့သတ်မှတ်ပေးတာပါ performance ကို optimizeပေးတယ်လို့ အလွယ်မှတ်ထားလို့ရပါတယ်

let secret_number = rand::thread_rng().gen_range(1,101);
let secret_number ဆိုတာက ကျွန်တော်တို့ရဲ့လျှို့ဝှက်နံပါတ်ကိုသိမ်းထားပေးမဲ့ variableကိုသတ်မှတ်တာပါ ကျွန်တော်တို့ ငယ်ငယ်တုန်းကသင်္ချာမှာသင်ရသလိုမျိုး let x = ဘာဖြစ်ပါစေဆိုပြီး မသိကိန်းတည်တဲ့သဘောမျိုးပေါ့ အစမှာကျွန်တော်တို့သုံးမယ်လို့ခေါ်ထားတဲ့ rand library ထဲက thread_rng (thread random number generator) ကိုသုံးမှာပါ gen_range(1, 101) ကစမှတ်နဲ့ဆုံးမှတ်ကိုသတ်မှတ်တာပါ Rust မှာတော့ တခြားprogramming language အများစုလိုပဲ စမှတ် 1ကနေစပြီး ဆုံးမှတ် 101 မတိုင်ခင် 100 အထိ random generateလုပ်ပေးမှာဖြစ်ပါတယ်

loop {
}
Rust loop တွေဖြစ်တဲ့ loop , for, while သုံးမျိုးထဲက loop ကိုသုံးပြီးရေးမှာဖြစ်ပါတယ် println!အကြောင်းပြောထားပြီးပြီးဖြစ်တဲ့အတွက်တစ်ကြောင်းကျော်လိုက်ရအောင်

Let mut guess = String::new();
Rust မှာ ပုံမှန်သတ်မှတ်နေကျ variables တွေက immutable type တွေဖြစ်နေလို့ mutable ဖြစ်အောင် mut ကိုထည့်ပေးရပါတယ် runtime မှာguess ရဲ့တန်ဖိုးကိုမသိနေတဲ့အတွက်
stack မှာ data storeတဲ့ string literal (:&str) အစား heap မှာ သိမ်းတဲ့ standard library က String ကိုသုံးရတာဖြစ်ပါတယ် new() ကတော့ လက်ရှိအချိန်မှာဘာတန်ဖိုးမှမသိမ်းရသေးတဲ့String ကိုလိုချင်လို့သုံးတာပါ

io::stdin().read_line(&mut guess).expect("Failed to read");
lineခြားရေးတာကတော့ readability အတွက်ပါ user ဆီက input ကိုလက်ခံဖို့အတွက်ကျွန်တော်တို့ အစဆုံးမှာသုံးမယ်လို့ကြေညာထားတဲ့ std::io ကိုခေါ်သုံးတာပါ တကယ်လို့ကျွန်တော်တို့ use std;လို့ပဲရေးထားခဲ့မယ်ဆိုလည်းရပါတယ် code မှာ std::io::stdin()..... ဆိုပြီးဖြစ်သွားမှာပါ ဒါဆိုကျွန်တော်တို့ standard library ရဲ့ input/output ကနေuser input ကိုတောင်းတဲ့အတွက် .stdin() ကိုသုံးပါမယ် အဲ့အထဲက read_line methodအတွက် argument ကို &mut guess လို့ရေးပါတယ် & ဆိုတာက guess ကိုတိုက်ရိုက်copy မလုပ်ဘဲ reference အနေနဲ့ပဲယူသုံးတာပါ garbage collection ကိုမသုံးဘဲ memory safety ကို အကောင်းဆုံးဖြစ်ဖို့အတွက်rustရဲ့ featureတစ်ခုပဲဖြစ်ပါတယ် guess က mutable အဖြစ်သတ်မှတ်ထားတဲ့ အတွက် mut guess လို့ညွှန်းတာပါ .expect ကျတော့ error ဖြစ်လာရင်ကြေညာပေးဖို့ပါ user ကဘာဖြစ်လို့ဖြစ်မှန်းမသိဘဲ အဆင်မပြေတာတွေဖြစ်လာမှာစို့လို့အသိပေးဖို့အပိုင်းပါ တကယ်လို့ ကျွန်တော်တို့ code ရေးတုန်းမှာ မေ့ကျန်ခဲ့ရင်လည်း ကျွန်တော်တို့ရဲ့ code ကိုစမ်းကြည့်တဲ့ခါကျရင်rust compiler လိုနေတာတွေကိုပြောပြပေးဦးမှာဆိုတော့အရမ်းကြီးစိတ်မပူလည်းရပါတယ်

let guess :u32 = match guess.trim().parse(){
Ok(num) => num, Err(_) => continue,
};
ဒါဆို user input ရပြီးပြီဆိုတော့ secret_number နဲ့ compare ဖို့အတွက် String type ကနေ u32 ကိုပြောင်းဖို့ guess ကို shadow ပါမယ် match ဆိုတာက invalid value (ဉပမာ user ကကိန်းပြည့်တွေအစား -ကိန်းတို့ ကိန်းမဟုတ်တာ) တွေကိုထည့်တဲ့အခါကျရင် game ထဲမှာ error မတက်ဖို့အတွက်သုံးတာဖြစ်ပါတယ် trim ကိုuser input ရဲ့ အစနဲ့အဆုံးမှာspaceတွေပါလာခဲ့ရင်ဖျက်ပေးဖို့အတွက်ပါ parse ကတော့ အရင် String type ကနေအခုလိုချင်တဲ့ u32 type ကိုပြောင်းပေးဖို့ဖြစ်ပါတယ် အနောက်ကကွင်းကတော့ match ကိုသုံးတဲ့အတွက် pattern သတ်မှတ်ပေးရမှာပါ ကျွန်တော်တို့ prase က Result type ထုတ်ပေးတဲ့အတွက် Result typeရဲ့ variant ဖြစ်တဲ့ Ok, Err ကိုကိုင်တွယ်ရမှာဖြစ်ပါတယ် Ok(num) => num ကတော့ variable တန်ဖိုးက errorrမဖြစ်နေဘူးဆိုရင်အဲဒီvariable ကိုသုံးဖို့ pattern match လုပ်တာပါ Err(_) = continue, ကျတော့အကယ်၍error တက်လာမယ်ဆိုဂိမ်းမရပ်သွားဖို့အတွက် continue နဲ့ match ပေးရတာဖြစ်ပါတယ် {} အဆုံးမှာ semicolon ပါတာကိုသတိထားပေးပါ

ဒါဆို println! နဲ့ ကျွန်တော်တို့ခန့်မှန်းလိုက်တဲ့တန်ဖိုးကိုဖော်ပြဖို့ရေးမှာဖြစ်ပါတယ် အဲဒီအထဲက {} ဒါလေးကတော့ placeholder လေးပါ guess value ကိုထားမဲ့နေရာလေးဖြစ်ပါတယ်
နောက်ဆုံးအဆင့်ကိုရောက်လာပါပြီ ဒီနေရာမှာ ကျွန်တော်တို့ standard library က cmp ရဲ့ Ordering ကိုမသုံးချင်ဘူးဆိုရင် control flow ဖြစ်တဲ့ if else တို့ကိုသုံးလည်းရပါတယ် ဒီမှာတော့ match သုံးပြီးပဲရေးကြရအောင်

match guess.cmp(&secret_number) {..
}
guessရဲ့တန်ဖိုးကိုsecret_number နဲ့နှိုင်းယှဉ်ဖို့အတွက် cmp ကိုသုံးမှာပါ &ကတော့အပေါ်မှာပြောထားဖူးတဲ့အတိုင်း value ကိုတိုက်ရိုက်မကူးဘဲ reference အနေပဲယူဖို့ကြေညာတာပါ match ကိုသုံးထားတဲ့အတွက် ကွင်းထဲမှာ pattern သတ်မှတ်ပေးကြရအောင်

Ordering::Less => println!("Too small."), နှိုင်းယှဉ်ချက်အရ guessကငယ်နေမယ်ဆိုရင် too small လို့ထွက်လာမှာဖြစ်ပါတယ်

Ordering::Greater => println!("Too big!"), နှိုင်းယှဉ်ချက်အရ guessကကြီးနေမယ်ဆိုရင် too big လို့ထွက်လာမှာဖြစ်ပါတယ်

Ordering::Equal => {println!("You win!"); break;} နှိုင်းယှဉ်ချက်အရ guess နဲ့တူနေမယ်ဆိုရင် you win လို့ထွက်လာမှာဖြစ်ပြီး break keyword က loop ကို break ပြီးတော့ ဂိမ်းကိုအဆုံးသတ်ပေးမှာဖြစ်ပါတယ် indentation ကတော့ readability အတွက်ပဲဖြစ်ပါတယ်

Congratulations သင် guessing game ကိုအောင်မြင်စွာဖန်တီးလို့ပြီးပြီဖြစ်ပါတယ်

Ctrl + ` ကို နှိပ်ပြီး terminal ထဲမှာ cargo run ဆိုတဲ့ command ကိုရိုက်ထည့်လိုက်တာနဲ့ ဆော့လို့ရပြီဖြစ်ပါတယ်

Rust Programming language ကိုလေ့လာပြီးလိုသလို modify လုပ်နိုင်သလို ကိုယ်စိတ်ကူးထဲကအတိုင်းဂိမ်းဖန်တီးဖို့လည်းလုပ်နိုင်မှာဖြစ်ပါတယ်

.
17/may/2020

The Guessing Game Part(1)မနေ့က Rust အကြောင်းမိတ်ဆက်ပြီးပြီဆိုတော့ ဒီနေ့ command line ကနေပေါ့ပေါ့ပါးပါးဆော့လို့ရတဲ့ game ...
16/05/2020

The Guessing Game Part(1)

မနေ့က Rust အကြောင်းမိတ်ဆက်ပြီးပြီဆိုတော့ ဒီနေ့ command line ကနေပေါ့ပေါ့ပါးပါးဆော့လို့ရတဲ့ game လေးစမ်းရေးကြည့်ရအောင်
ကိုယ်စဉ်းစားလို့ထွက်သလို modify လုပ်လိုက်မယ်ဆိုရင် FB မှာ လုပ်နေတဲ့ သင့်profile ကိုကြည့်ပြီးဘာဖြစ်ညာဖြစ်တယ်တို့ကိုခန့်မှန်းတဲ့ game မျိုးအထိလုပ်လို့ရမှာပါ
ဖတ်ရလွယ်အောင်ပုံနဲ့ စာနဲ့ တွဲရေးထားမှာဖြစ်ပါတယ်
ကဲ စလိုက်ရအောင်

Rust Programming Language  Rust programming language ဆိုရင် system level programming language တစ်ခုဖြစ်ပြိးတော့ Mozila l...
15/05/2020

Rust Programming Language
Rust programming language ဆိုရင် system level programming language တစ်ခုဖြစ်ပြိးတော့ Mozila labs ကနေ Develop လုပ်ထားတာပဲဖြစ်ပါတယ်
အကြီးဆုံးdeveloper community တစ်ခုဖြစ်တဲ့ stack overflow ရဲ့ နှစ်စဉ်ကောက်တဲ့ စစ်တမ်းတွေအရ Rust programming language က developer တွေသဘောအကျဆုံး language အဖြစ် 2016 ခုနှစ်ကနေလေးနှစ်ဆက်တိုက်ရပ်တည်နေတာပဲဖြစ်ပါတယ်
ဒါဆို developer တွေဘာကြောင့်ကြိုက်လဲဆိုတဲ့အကြောင်းတွေနည်းနည်းလေ့လာကြည့်ရအောင်ဗျာ

Readability
များသောအားဖြင့် system level programming language တွေမှာ ကြုံရတဲ့ပြဿနာကတော့ ရေးရဖတ်ရခက်တာပဲ Rust မှာဆိုရင်တခြား low level language တွေထက်လွယ်တဲ့ syntax နဲ့ system level programming experience ကိုခံစားကြည့်ရမှာဖြစ်ပါတယ်(ကျွန်တော်ဆို python နဲ့ programming လောကကို စ၀င်လာတာ ဒါပေမဲ့ rust နဲ့စရေးကြည့်ပြီးကတည်းကrust ကိုအသေကြွေတော့တာပဲ)

Safety
အခုခေတ်စကားနဲ့ပြောရရင်safety first ဆိုသလိုမျိုးပဲ rust compiler ကဆိုရင် unsafe ဖြစ်နေတဲ့ code တွေကိုသတိပေးတာမျိုးတွေ developer တွေလုပ်မိတတ်တဲ့ ပုံမှန်အမှားမျိုးတွေကို စစ်ပေးမှာ နောက်ပြီး rust ရဲ့ ownership rule က garbage collection ထက်ပိုကောင်းတဲ့ safety ကိုရရှိမှာဖြစ်ပါတယ်

Speed
programming မှာ readability မြင့်လာတာနဲ့ အမျှ speed ကနှေးလာတာပဲဖြစ်တယ် ဒါကြောင့် C, C++တို့ အခုထိနာမည်ကြီးနေတာပဲဖြစ်တယ် rust နဲ့ဆိုရင် C, C++ တို့ကိုယှဉ်နိုင်တဲ့ speed ကိုရမှာဖြစ်ပါတယ်

Concurrency
Rust ရဲ့ ownership နဲ့ memory safety rules တွေကဆိုရင် Multi-threaded applications တွေမှာ Data race ဖြစ်ခြင်းကနေရှောင်ရှားနိုင်မှာဖြစ်ပါတယ်

Rich Documentation
ကျွန်တော်အကြိုက်ဆုံးအချက်လို့ပြောလည်းရတယ် တခြားprogramming language ကိုလေ့လာဖို့ဆို တစ်ခါတစ်လေဘယ်ကစရမှန်းမသိဘဲဖြစ်နေတတ်တယ် rust မှာဆိုရင် ကိုယ့် level အလိုက်ဖတ်သင့်တဲ့ စာအုပ်တွေပါညွှန်းထားတာဆိုတော့ learning journey မှာအထောက်အကူအများကြီးဖြစ်စေမှာပါ

တခြားကောင်းတဲ့အချက်တွေကိုသိချင်သေးတယ်ဆိုရင် official website ဖြစ်တဲ့ https://www.rust-lang.org/ ကို၀င်ရောက်လေ့လာကြည့်နိုင်ပါတယ်/

15/May/2020

30/04/2020
Some Confusing Values in Python.===========================    python ထဲမှာ confusing ဖြစ်နိုင်တဲ့ values တွေဖြစ်တဲ့ 0, ...
10/03/2020

Some Confusing Values in Python.
===========================

python ထဲမှာ confusing ဖြစ်နိုင်တဲ့ values တွေဖြစ်တဲ့ 0, empty string(""), None နဲ့ numpy.nan (Not a Number) တို့အကြောင်းပြောပြပါမယ်. Prerequisite အနေနဲ့ကတော့ Python Basic or other programming language ရဲ့ Data type ကိုအနည်းအကျဉ်းသိထားဖို့လိုပါတယ်.

0.
0 ကျတော့သူက ဘာမှမရှိဘူးဆိုပေမဲ့ သူက ကိန်းတစ်ခုပါ. သင်္ချာမှာဆိုရင် Real Number ထဲပါတာပေါ့. အဲတော့ number တို့ရဲ့ထုံးစံအတိုင်း Integer and Floating point number အနေနဲ့ကြိုက်ရာပြောင်းလို့ရပါတယ်.

Empty String(“”)
သူ့နာမည်အတိုင်းပဲ သူကဘာမှမရှိ string type ပါ. String concatenation လုပ်လို့ရပါတယ်. Int နဲ့မြှောက်ရင်လည်းဘာမှမရှိတဲ့အတွက် တန်ဖိုးမပြောင်းလဲပါဘူး.

None
သူကတော့ဘာမှတကယ်မရှိတဲ့အကောင်ပါ. None Type ဖြစ်ပြီး Int, Float, String တို့နဲ့ Arithmetic Operation လုပ်လို့မရပါဘူး. နောက်ပြီး type တစ်ခုကနေတစ်ခုပြောင်းလို့မရပါဘူး.

numpy.nan (Not A Number) from numpy library.
နောက်ဆုံးတစ်ခုကတော့ Data Wrangling လုပ်တဲ့ အခါ Missing Value တွေကိုကိုင်တွယ်ဖို့အတွက်အများဆုံးသုံးရတဲ့အကောင်ပါ. သူရဲ့ထူးခြားချက်ကတော့ ဘာတန်ဖိုးမှမရှိပေမဲ့ Float Type ပါ သူ့ကို int type ပြောင်းလို့မရပေမဲ့ string type ပြောင်းလည်း float ပဲဖြစ်နေမှာပါ.

Fix me if you know something wrong.

10/Mar/2020

Adobe Lightroom v5.2______________________အခု ဒီတစ်ခေါက်တင်ပေးမှာကတော့ Lightroom (Adobe Lightroom) ဆိုတဲ့ Android App လေ...
08/03/2020

Adobe Lightroom v5.2
______________________

အခု ဒီတစ်ခေါက်တင်ပေးမှာကတော့ Lightroom (Adobe Lightroom) ဆိုတဲ့ Android App လေးတစ်ခုပါ၊ Mobile Photographer ‌တွေ အားလုံးသိပီးသားဖြစ်ကြမှာပါ၊ အရမ်းကလိလို့ကောင်းတဲ့ app လေးတစ်ခုဆိုလည်းမမှားပါဘူး၊ ဒီအတိုင်း play store က download ဆွဲရင် premium features (US$9.99/Month ပါ) တွေကို ဝယ်သုံးရတာမို့လို့ အခု mod ထားတဲ့ကောင်လေး တင်ပေးတာပါ၊ Internet မလို Account ထည့်စရာမလိုပဲနဲ့ကို လွယ်လွယ်ကူကူနဲ့သုံးလို့ရပါတယ်။

https://www.mediafire.com/download/5g0065bwag80kb8

Password - jack
Zip file ကိုဖြည်လိုက်ပီး Install လုပ်သုံးနိုင်ပါပီ

Intro to Linux Desktop Environments 🎊🎊🎊Linux သုံးတဲ့ user တိုင်း Distro ရွေးပြီး ရင် ဒုတိယ အနေ နဲ့ ရွေးရမှာကတော့ LDE( Li...
29/02/2020

Intro to Linux Desktop Environments 🎊🎊🎊

Linux သုံးတဲ့ user တိုင်း Distro ရွေးပြီး ရင် ဒုတိယ အနေ နဲ့ ရွေးရမှာကတော့ LDE( Linux Desktop Environment) ပဲဖြစ်ပါတယ်
LDE လို့ ပြောရင် Gnome,Budgie, Mate, KDE နဲ့ Xfce တွေကို ပြေး မြင်ကြပါ.. (note! LDE အများကြီး ထဲက အသုံးများပြီး popular ဖြစ်တဲ့ အနည်းအကျဥ်းကိုပဲ ဖော်ပြထားတာပါ)

Gnome
Gnome ကတော့ အသုံး အများဆုံးနဲ့ အဖဲ့ခံရဆုံး LDE တခု ဖြစ်ပါတယ်. သူက stable ဖြစ်တယ် သုံးရတာ smart ဖြစ် တယ် customization လည်း ကောင်းတယ်. Developer တွေ api ပဲ ဆောက်ဆောက် ui ပဲ ရေးရေး Dev tools တွေ အများကြီး နဲ့ အလုပ်လုပ်ရတဲ့ အခါ Gnome ရဲ့ Worskpace က တကယ်ကို အသုံးဝင်ပါတယ်. Ubuntu ကတော့ Gnome ကို deafult DE အနေ နဲ့ သုံးထားပါတယ်

Budgie
Budgie က လုံးဝ clean and smart ဖြစ်တဲ့ LDE ဆိုပြီး လူကြိုက်များပါတယ်. Budgie က Gnome 2 ကို based လုပ်ထားတာပါ. Budgie က Gnome ထက်လည်း ပို ပေါ့ တယ် နောက်တခုက Mac လို အရမ်းလှ တဲ့ LDE လေးဖြစ်ပါတယ်. Ubuntu Budgie မှာ ကြည့်ကြည့် 😉

Mate
Mate လို့ ပြောရင် Linux Mint နဲ့ တွဲ မြင်ကြမယ်ထင်တယ်. Mate က Gnome 2 ကို အခြေခံထားတဲ့ Budgie လို LDE တခု ဖြစ်ပါတယ်. Budgie က Mac နဲ့ ဆင်ပြီး Mate ကတော့ အရင် Gnome 2 ပုံစံကို upgrade လုပ်ထားတဲ့ ပုံစံလေး ဖြစ်ပါတယ်. Customization အတွက်လဲ အဆင်ပြေပါတယ်

KDE
KDE ကတော့ Linux community ထဲ မှာ အ hot ဆုံး LDE တခုလို့ ပြောရမလို ဖြစ်နေတဲ့ Desktop environment တခု. KDE က ပေါ့တယ် ကြိုက်သလို customize လုပ်နိုင်တယ် အရမ်းလှ တယ် နောက် ပြီး touch feature တွေနဲ့ ပါ တွဲလာတယ်. Android သုံးတယ် ဆိုရင် Zapya လို ဟာ မလိုပဲ KDE ရဲ့ FTP app တွေနဲ့ ပိုပြီး smart ကျကျသုံးနိုင်တယ် (computer music ကို phone နဲ့ control လုပ်တာတွေအပြင် အများကြီးပါသေးတယ်)
KDE ကို Manjaro/Debian/Kubuntu နဲ့ တခြား distro တော်တော် များများနဲ့ တွဲသုံး နိုင်ပါတယ်

LXQt/LXDE
LXDE ကတော့ Linux Desktop Environments တွေထဲမှာ အပေါ့ဆုံး အမြန်ဆုံး DE တခုဖြစ်ပါတယ်. Customization ကတော့ KDE လို စိတ်ကြိုက်မရပေမဲ့ အသင့်သင့်တော့ ပါပါတယ်
LXDE ကို Lubuntu နဲ့ တွဲသုံးနိုင်ပါတယ်

XFCE
XFCE ကို တော့ Hardcore Developer တွေ ကြိုက်တဲ့ DE တခု ဖြစ်ပါတယ် သုံးရ အရမ်းလည်းပေါ့ပါးပြီး မြန်ဆန်တယ်
KDE လို စိတ်ကြိုက် customize မလုပ်နိုင်ပေမယ့် သေချာcustomizeလုပ်နိုင်ရင် smart ကျကျလေး သုံးလို့ရပါတယ်
XFCE ကို Arch/Debian/Manjaro နဲ့ တခြား distroတော်တော်များများ နဲ့ တွဲသုံးနိုင်ပါတယ်

Overview အနေ နဲ့
ကိုက Modern Designs တွေ နဲ့ အမြဲ ကိုယ့် computer ကို အလှဆင်ခြင်ရင် KDE သုံးပါ
ကိုက အလုပ်လုပ်ဖို့ အတွက်ပဲ crash တွေ မရှိပဲ အေးအေးဆေးဆေး သုံးချင်ရင် Gnome/Budgie/Mate သုံးပါ
ကိုယ့်မှာ အရမ်းဟောင်းနေ တဲ့ computer ရှိတယ် ပေါ့ပေါ့ပါးပါးလေး သုံးချင်ရင် LXDE သုံးပါ
ကိုယ် Design crash တွေ shell တွေအထိ customize လုပ်ပြီး လေးသွားတာမလို ချင်ဘူး ဖွင့်တာနဲ့ ချက်ချင်း တက်လာတဲ့ stable environment နဲ့ ပဲ အေးအေးဆေးဆေး project တွေ ရေး မယ်ဆိုရင်တော့ XFCE ကို ရွေးပါ

meme( ဆောင်းတွင်းမှာ Gnome သုံးရင် လက်အိပ်မလိုဘူး 😜 )
ပုံပြင် ( 2020 မှာ KDE က XFCE နဲ့ မြန်နှုန်း resource စားနှုန်းတူတူပဲ..😝 ပုံပြင် ပြောတာပါ XFCE က ပိုမြန်တာ တကယ်တော့ )

XFCE Preview

အားလုံး အဆင်ပြေ ပါစေ 🍀🍀🍀
(မေးစရာရှိချင် DM ပို့ပါ 😉)

Address

Mawlamyine

Opening Hours

Monday 06:00 - 23:30
Tuesday 06:00 - 23:30
Wednesday 06:00 - 23:30
Thursday 06:00 - 23:30
Friday 06:00 - 23:30
Saturday 06:00 - 23:30
Sunday 06:00 - 23:30

Website

Alerts

Be the first to know and let us send you an email when Greentech Inc posts news and promotions. Your email address will not be used for any other purpose, and you can unsubscribe at any time.

Shortcuts

Share

Category