Simplified Vietnamese

If you are thinking about some other language that have “simplified” before its name then no, Vietnam is not going to use that language as it official language, at least not in this year.

I recently read this article (For a side note: This site copies most of its content from blogs, and doesn’t ask for the author’s permission of course). I simply couldn’t get whatever it’s trying to tell me =)), so as a reflex I asked Google and found this. In short, the “program” and the “new language”, as they identified themselves, are going to change Vietnamese completely, so Vietnamese can be typed faster. They are first planned to be used in the Vietnamese computing society.

Completely impractical.

Vietnamese is a mixed language; it contained elements from both European and Asian roots. This “research” referred only one or two papers and end up creating a “better” language? Apparently its author has neither previous experience nor care to get some about constructed language. The idea of creating the “perfect” language, easier to write, easier to understand isn’t new. Some have tried and fail silently. If you live in Vietnam have you ever heard of “quốc tế ngữ”? Probably not. I’m not even sure which language that noun is referring to: Interlingua or Esperanto? Constructing a language and put it into wide use isn’t an easy problem. The two languages above have multiple contributors, even have their own lingual institute to research and introduce new principles into the language and still, they aren’t as success as they wanted.

What make that guy think one man is going to change history that easy, arrogance or ignorance?

Furthermore, Vietnamese is completely unorganized. There is no formal organization to regulate the use of new words yet (which have been hindering access to newest technologies for most Vietnamese, what would you call a blog or a shell in Vietnamese? =)). Vocabulary differentiates between regions to – North, South and the Central; even the pronunciation is different! (The “simplified” language claims it is based on pronunciation – which will make it easier to learn) Which region’s pronunciation is it using to simplify?

Well, to say how impractical it is, it may as well get 1st prize for that competition. I’m not a judge for that matter.

Faster Vietnamese

Searching for the above, there seemed to be a similar effort before, but it doesn’t dream as big, its main purpose is to allow you to type unpunctuated Vietnamese faster  

Qui ước gõ tt

Ví d

f  = ph

 Gõ fai  bung ra
(→)  phai

j  = gi

       ju jn jay j giu gin giay gi

 B bt h  : – gh

                    – ngh

      gi gn ghi gn         ge  ghe          

      ngi      nghi              nge nghe

c  = k *

       đ  k  = kh

      cim kim                    ce ke             

      ki ko kan    khi kho khan

Hmm, what a pity the author didn’t publish how this method was born, what’s its advantage, estimation of benefits etc. Otherwise more people would have been convinced to use and contribute to it. :/

Reading further into its rule:

Trăm năm trong cõi người ta            

Gõ phím:
       Tram nam trog coi nguj ta               

Bung ra       Tram nam trong coi nguoi ta

 

Ch tài ch mnh khéo là ghét nhau          

Gõ phím:        Chu tai chu meh keo la get nhau
         

Bung ra       Chu tai chu menh kheo la ghet nhau

 

Tri qua mt cuc b dâu                        

Gõ phím:        Trai qa mot cus be dau                       

Bung ra      Trai qua mot cuoc be dau

 

Nhng điu trông thy mà đau đn lòng     

Gõ phím:        Nhug diw trog thay ma dau don log      

Bung ra       Nhung dieu trong thay ma dau don long

 

Even though this method doesn’t seem to have wide usage, I can’t help notice similarities between this and the so-called “9x language”. Is there any chance those kids have seen their parent using this method but failed to learn properly and thus a new language is born? :))

Mikrypto

Splash screen

Splash screen

Is the name of my latest school project in cryptography; possibly the fastest project ever: only 10 hours from concept to realization with all the functionality in place. It would be great if I were in the mood to document it. But unfortunately that is not the case right now. Other than some problem with XML Serialization (specifically serialization order control and serialize to stream), the project went smoothly. The version below is a little more polished than the version I turned in.

So what does this do? In short: It let you encrypt files and send to friends who also used this application. Upon account creation, you are given a key pair (which you can access using the export function); you are free to give your key to others and vice versa. If you want to send a file to someone, just encrypt the files choosing that one as the recipient, send the file to (s) he, the receiver logins to his/her account, hit decrypt and BOOM! Files appear!

Though the process is simple, way too simple that you don’t even have to enter a password to encrypt files, it is still not cryptographically feasible for anyone to decrypt the encrypted file. Even you, the one who encoded that file(s) to send wouldn’t be able to decode it without knowing the recipient’s account detail.

If that sounds interesting, give it a try

(If you are confused, read the Vietnamese usage instruction in the PDF file)

2008 in Google’s terms

2008 is almost over, and Google has released Zeitgeist 2008. A good time to blog about it, since it’s still quite fresh and if I don’t do it now, I would postpone it on and on and on, right? 😛

Zeitgeist | Pronunciation: ‘tsIt-“gIst, ‘zIt | Function: noun | Etymology: German, from Zeit (time) + Geist (spirit) | Date: 1884 | Meaning: the general intellectual, moral, and cultural climate of an era.[1] [2]

This year the chart is not as colorful as before but it was enhanced with annotations 😛

Economy

Since the first release in 2001, the Zeitgeist progressively does a better job reflecting situations of the world, from regional to international.

122608-1806-2008ingoogl1.png
122608-1806-2008ingoogl2.png

Trends for Layaway

And no, that’s really a burst, a sudden increase in term of 8 times the original volume; not because the chart is scaled! The turkeys did quite a good job!

Over the hedge comics @ overthehedge.com

Oil

Gas price contributed is part, oh well…

Look at how consumerism has taken over the world. People care about the environment not for their children but instead for their pocket. What if one day the earth stood still? 😛

Who, what and how

I comment only for what I feel like commenting 😛

Who is…

  1. who is Obama
  2. who is McCain ~ Google is becoming one of the criterion for presidency 😛
  3. who is Palin
  4. who is lil wayne
  5. who is miley cyrus
  6. who is dolla
  7. who is jonas brothers
  8. who is chris brown
  9. who is biden
  10. who is martin luther

What is…

  1. what is love ~ How can you define love 😛
  2. what is life ~ 42
  3. what is java ~ Americans doesn’t seem to use that much coffee 😉
  4. what is sap
  5. what is rss
  6. what is scientology
  7. what is autism
  8. what is lupus
  9. what is 3g ~ Proof of Apple’s influence (j/k, 3G standards are in active development)
  10. what is art

How to…

  1. how to draw
  2. how to kiss ~ Isn’t this stuff best practiced than learning
  3. how to write ~ Blog is growing, right…
  4. how to cook ~ Restaurants are now expensive for Americans
  5. how to tie
  6. how to hack ~ Adults are taking their kids apart from the fun…
  7. how to run
  8. how to cite
  9. how to paint
  10. how to spell

International queries [3]

Nothing that much interesting, since Google themselves is quite lazy to translate the international queries this year 😛

What a pity Vietnam still haven’t generated enough data to appear in the yearly list, or is it some kind of classified data? Because I’m quite sure not only Vietnam are contributing to that infamous #1 query, while the second and third appeared in the Zeitgeist…

It’s not something that makes you proud when you searched for blog the most… ;))

Loneliness

Technology takes people nearer to each other… less and less lonely since 2004. The world is getting better! 🙂 You’ve got to love it!

Translation

Google released Vietnamese support for Google Translate this year together with a couple of useful enhancements (translated search, dictionary, etc.). Before that I have always been in doubt that all the Vietnamese pages on Google is machine translated; but that’s countered by the fact that nobody in Vietnam ever succeeded in writing such a translation engine; and the translation looks natural enough :-/ Time to put that to the test 😛

Web history in Vietnamese

Same page, translated from English

Sure enough, you can see the apparent similarity: the wording is the same; the grammar on the static page is a little better than the translated one but is still far from perfect. My guess is Google has someone with basic Vietnamese knowledge, and the person’s responsibility is just to check whether the translated text is readable. Oh well, even though people has to turn to English if they want to read the TOS, this may help kids and give a good example of how hard to translate Vietnamese (O’ great language =)).

Also, since I received complaints that my English is so terrible, this blog has just been enhanced with a translator thanks to David Pozza and Google for providing the API, hope it is more readable now 😉

(Look to the right)

~ And that’s another day with Google

Notes on blogging with Microsoft Word 2007

Word 2007… Interesting piece of software, even enough to provoke a full-scale debate on ISO’s decision to have two standards at a time (isn’t standards are intended to unite people in the first place? :))) but that’s not in the scope of what I want to write right now. And no, I’m not going to tell you where to click in Word to start writing. You can read the good-but-is-the-only-blogging-article at Microsoft Office online for that.

Word is not perfect for blogging. For example the category management is just ill-designed. You’ll have to click a button, select the category and then insert it. The on-page category has a drop down box but the only item inside is “none” (what the…?) and yes, I am using the latest service pack. Possibly someone will eventually tell this to Microsoft to be fixed in future release, but hey, Word is not the only thing Microsoft released for the blogger community! There is Windows Live Writer (which is part of Microsoft new “live.com”-ing-everything strategy) too, which appears better suited for the purpose (the demonstration has pictures, categories and stuff listed in a nice view). Unfortunately it’s a 125MB download, and that’s not financially feasible for me to download (and blog about it here). You can download, try, and tell me instead 😛 [edit: a review about WLW can be found here, it cover most of what WLW have to offer, though it has given WLW quite a bias ;)]

UPDATE: WLW is actually only 5MB 🙂

Back to Word… good for text for not so good for blogs, you may as well encounter some problem blogging:

  • No HTML editing
  • Limited picture upload & management
  • Clumsy interface
  • etc.

I tried and solved some stuff ^^

Picture uploads

Word is a Microsoft software, Live spaces is a Microsoft blogging platform. The irony? Live spaces is the only service that doesn’t provide Atom or XML-RPC so Word has to e-mail blog to Spaces, and because blogging is that hard, even if you read and followed the direction on Live Spaces help, Word will just pop an error up when you tried to blog with pictures. Also, wordpress.com won’t allow you to upload pictures either (self-hosted WordPress installations like mine do); and possibly some other service on Word’s “supported” list won’t either… The solution is uploading the pictures to a separate host. If you ever tried to click on”Picture Options” you’d see some choices

  1. My blog provider: Doesn’t work because you are reading this 😛
  2. Don’t upload picture: Awn, not helpful at all
  3. My own server: Make 2 fields appear: upload URL and source URL

What is upload URL and source URL? Word help won’t tell you, Microsoft Office online won’t tell you either! It turned out after a couple of queries that, upload URL is something around an FTP address and source URL is the http address at which the picture should appear after being uploaded. The question turned to “what to fill in?” The links provided in the dialog box is just as helpless as the help 😛 You’ll have to find your own provider, which apparently must support the following

  1. FTP uploads
  2. HTTP direct link

Some image hosts support this, photobucket does have a plan with FTP access but that’s not quite cheap :P. IMO, it’s best to use a web host as you could use it for more advanced purposes later ^^. In this example, I’ll demonstrate with freehyperspace5.com, a free hosting service which anyone can register. You could choose your own host but try to avoid:

  1. Byet hosts: they have a high likelihood of deleting file storage only accounts even if their TOS doesn’t say so.
  2. Any other host that specified in their TOS that they are against picture hosting

Register an account at your host, remember [your username], [your password], [ftp host] and [homepage address], then go to word and type

  1. ftp://[your username]:[your password]@[ftp host] in the upload URL in Word, replace the square brackets with your own information. This looks something like ftp://wind:[email protected]
  2. http://[homepage address] for source URL

122608-1512-notesonblog1.png

Done! Press OK twice and now you are ready for picture (and smart art ^^) blogging with Word! No more manually uploading pictures and copy-paste the lengthy URL; just insert and publish! (For a demonstration, have a look at my previous posts, most of them are done with Word!)

Faster blogging

One proof that Word 2007 is designed in such a hurry: Every time you want to blog, you’ll have to click the big red button (the office button :P), choose new, wait for the dialog to appear, choose blog post, OK, wait for the blogging interface to appear… Sick, isn’t it? To start Word exclusively for blogging, you can follow these steps

  1. Browse to the word executable, usually it’s in C:Program FilesMicrosoft OfficeOffice 12winword.exe
  2. Right-click and choose Create shortcut
  3. Right-click the newly created shortcut and choose Properties, switch to the Shortcut tab
  4. In the Target field, add /t “C:Program FilesMicrosoft OfficeTemplates1033Blog.dotx” /q, replace “C:Program FilesMicrosoft Office” with your path if necessary 122608-1512-notesonblog2.png
  5. The /t tells Word which template to use at start, the /q (supposedly) suppress the splash screen

  6. Press OK
  7. Move the shortcut to where you want it to be: desktop, quick launch, or even start up if you want to blog every time you turn your machine on 😛

When I have some time available I’ll try to solve some more problems. (rest assured there are more, just wandering around you’ll see that Word’s blogging function is beta quality software and there hasn’t been any news from it from the word team since 2006)

PS: After some more looking, it turns out that Blogger has its own plugin for Word long ago (download it here), it worked on Word 2000 and above but the interface is not that interesting and it still does not allow you to post pictures – according to this podcast. To me the plug-in appears unupdated for a while…

Scary Symbian

I’m not really in the mood to revise writing communication scripts… So I will just blog about Symbian to conclude the assignment I submitted yesterday.

Symbian started as a collaborative Effort between Nokia, Sony Erricson, Samsung and several other mobile phone manufacturers to create an operating system that work for their devices. It’s certainly not the first OS, Palm OS existed long before that. The fact that Symbian collaborated development started in 1998 and got wide attention around 2000 may make you expect a modern operating system with good design while maintaining compatibility.

It’s simply scary for me.

Looking at the sheer amount of features and headers would make you confused, the documentation seems to be machine – generated with very very very few example what each function do. It’s a good thing that a single operating system support all functionality that normally only available on separate devices: media player, digital camera, gaming device… But that is a burden for the developers :(. They will have to get familiar with a multitude of data structures… You think int is just int? No, for Symbian there are 8 bit int, 16 bit int and 32 bit int, and the developer will have to decide what to write both when they design (write the header) and when they code (using the function). Failing to match the two declaration can be fatal and that lead to debug…

To debug you’ll have to install Nokia’s tool: Carbide; which in turn will require you to install

  • Perl
  • Java
  • GNU C++
  • MingW in case you use Windows
  • Phone SDK for simulation; and they install a complete set of files for each SDK

Three languages just to program in one language for one operating system! Even so, if they worked smoothly then there weren’t this post: the SDK installation has a screen in which you can choose where to install, even though you can click the button and change it; and the documentation didn’t recommend otherwise, don’t change it. It will mess up with itself! Installing the SDK in a drive different from the IDE, or different from your workspace drive would results in dumb error messages like “file not found” which unless you are familiar with *nix system, you’ll just went mad! (And even if you have the skill to fix it, are you ready to fix tens of thousands of lines of Perl code just to write a C++ hello world!?)

Expecting the resource editor? It depends on whether you've been nice or naughty…

Expecting the resource editor? It depends on whether you've been nice or naughty…

If you have installed stuff on Windows Mobile before, and ever think to yourself “why must I bring my phone to phone shops, I can do this, piece of cake!”, try using Symbian! Each program throws resource in multiple directories, together with system applications. While this is a good thing on some aspects, a developer just can’t find where his resource file is in the big mess called “sys”. If you think Windows’s window directory on windows mobile is messy because it’s full of dll and executables, have a look at Symbian’s system directory. You’ll see types of files have never seen. Open your eyes and embrace r01, l01, mbm… And because the OS is that complex, OS’s native file structures is complex, to do something as simple as replacing a bitmap, the developer will have to wait for the tools to rebuild it, and then deploy it to the phone, which is not a fast process at all…

And possibly for the same reason why you must rely on shops when your phone has problem, the documentation doesn’t have any mention for any error and how to fix it… Sometimes if you are in luck you may found it in some corner of the Internet. For example a common problem for the 3rd SDK FP1 emulator is it display a kernel failure every time it start. If you google the error, you’ll see several discussion on forum nokia (and several copy of those discussion), most of which will tell you “leave it there, it doesn’t hurt”. It’s not until one beautiful day searching for another kernel problem that I found this KB article: NCNList KERN-EXEC 3 panic when starting the S60 3rd Edition, FP1 emulator. There you go, download the file, install it, and if your phone is happy, it won’t spit a list panic =))

Small community size, clueless forum posts is what you are going to face searching for help with Symbian. I wonder how could they able write so many stuff for their phone? Magic happens among Nokia-employed developers? =))

Some part in their documentation, they mention about how Symbian is so different from normal C, it was designed before the current C++ standards were born. Oh really? How come you can design a new interface for acceleration sensor and can’t even wrap the compiler to use the approrate kind of number and character instead of forcing the developers write clueless stuff like Tint, Tbuf, Tdes, TPtr!? C++ is complex enough already! Keep in mind that you inherited that together with the language next time! Or is it just too hard to let the compiler do exception handling the C++ way instead of some “simple leaves” which make the developer throws away most of their knowledge about constructors to do the so-called “2 phase contruction” like

CBanCo::CBanCo()
{
}
CBanCo::CBanCo(TRect aRect)
{
	iRect=aRect;
	iSize=15;
	iNum=0;
	TRgb color(102,255,255);
	iColor=color;
    iWidth = aRect.Width();
	iHeight = aRect.Height();
	iSwitch = EFalse;
}
void CBanCo::ConstructL()
{
	CSettings* settings = CSettings::NewL();

	iSize = settings->iBoardSize;
	iRow = iHeight/iSize;
	iCol = iWidth/iSize;
	iFlag = false;
	iColCur = iRowCur = 0;
	iArray = NULL; // The following line may fail
	iArray = new (ELeave) CArrayFixFlat(iRow*iCol);
		for(TInt i=0 ; i < iRow ; i++)
			for(TInt j=0 ; j < iCol ; j++)
				iArray->AppendL(-1);
	if (settings->iPlayerSymbol == 0)
		iSwitch = EFalse;
	else
		iSwitch = ETrue;
	iImageX = AknIconUtils::CreateIconL(BitmapStore, (iSwitch == EFalse? 2 : 3));
	iImageO = AknIconUtils::CreateIconL(BitmapStore, (iSwitch == EFalse? 3 : 2));

	delete settings;
}
CBanCo::~CBanCo()
{
	if (iArray != NULL)
		delete iArray;
	if (iImageX != NULL)
		delete iImageX;
	if (iImageO != NULL)
		delete iImageO;
	iArray = NULL;
	iImageX = NULL;
	iImageO = NULL;
}
CBanCo* CBanCo::NewL(TRect aRect)
{
	CBanCo* myObj = CBanCo::NewLC(aRect);
	CleanupStack::Pop(myObj);
	return myObj;
}
CBanCo* CBanCo::NewLC(TRect aRect)
{
	CBanCo* myObj = new (ELeave) CBanCo(aRect);
	CleanupStack::PushL(myObj);
	myObj->ConstructL();
	return myObj;
}

While it could be

CBanCo::CBanCo()
{
	;
}
CBanCo::CBanCo(TRect aRect)
{
	iRect=aRect;
	iSize=15;
	iNum=0;
	TRgb color(102,255,255);
	iColor=color;
    iWidth = aRect.Width();
	iHeight = aRect.Height();
	iSwitch = EFalse;
	CSettings* settings = new CSettings();
	iSize = settings->iBoardSize;
	iRow = iHeight/iSize;
	iCol = iWidth/iSize;
	iFlag = false;
	iColCur = iRowCur = 0;
	iArray = NULL; // The following line may fail
	iArray = new (ELeave) CArrayFixFlat(iRow*iCol);
		for(TInt i = 0; i < iRow ; i++)
			for(TInt j=0 ; j < iCol ; j++)
				iArray->AppendL(-1);
	if (settings->iPlayerSymbol == 0)
		iSwitch = EFalse;
	else
		iSwitch = ETrue;
	iImageX = AknIconUtils::CreateIconL(BitmapStore, (iSwitch == EFalse? 2 : 3));
	iImageO = AknIconUtils::CreateIconL(BitmapStore, (iSwitch == EFalse? 3 : 2));
	delete settings;
}
CBanCo::~CBanCo()
{
	if (iArray != NULL)
		delete iArray;
	if (iImageX != NULL)
		delete iImageX;
	if (iImageO != NULL)
		delete iImageO;
	iArray = NULL;
	iImageX = NULL;
	iImageO = NULL;
}

See it? my code hilighter can’t parse Symbian C++ as C++ :))… I stray too far from the debug part, didn’t I? Yes, the debugger does not allow code view, and because it stops immediately when some error happens, you can’t see the values you are tracking at that time. Proved you are clever enough to have the debug work while winscw’s configuration just won’t start.

Guess that when the phone is sold to the rich, its developers should also be rich and have a lot of spare time to think like the rich then. At least the OS have a nice interface after all

Symbian gomoku, thanks to my instructor

Symbian gomoku, thanks to my instructor

Strangely, I can’t help noticing Nokia still has the largest market share in the smartphone market according to canalysis (51% in 2007). I just can’t find a nice chart to match smartphone sales to dumb phone’s so I can’t just conclude that most of the rich people uses an inextricably complex operating system 😛

Nevertheless, iPhone is steadily gaining its part and the first dream phone (as what Google calls it) appeared a couple of months ago also with quite a lot of function. Both of which could be interesting factors to facilitate Symbian in the future.