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.
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. 
This year the chart is not as colorful as before but it was enhanced with annotations 😛
Since the first release in 2001, the Zeitgeist progressively does a better job reflecting situations of the world, from regional to international.
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
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 Obama
who is McCain ~ Google is becoming one of the criterion for presidency 😛
who is Palin
who is lil wayne
who is miley cyrus
who is dolla
who is jonas brothers
who is chris brown
who is biden
who is martin luther
what is love ~ How can you define love 😛
what is life ~ 42
what is java ~ Americans doesn’t seem to use that much coffee 😉
what is sap
what is rss
what is scientology
what is autism
what is lupus
what is 3g ~ Proof of Apple’s influence (j/k, 3G standards are in active development)
what is art
how to draw
how to kiss ~ Isn’t this stuff best practiced than learning
how to write ~ Blog is growing, right…
how to cook ~ Restaurants are now expensive for Americans
how to tie
how to hack ~ Adults are taking their kids apart from the fun…
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… ;))
Technology takes people nearer to each other… less and less lonely since 2004. The world is getting better! 🙂 You’ve got to love it!
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 😉
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
I tried and solved some stuff ^^
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
My blog provider: Doesn’t work because you are reading this 😛
Don’t upload picture: Awn, not helpful at all
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
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:
Byet hosts: they have a high likelihood of deleting file storage only accounts even if their TOS doesn’t say so.
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
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:firstname.lastname@example.org
http://[homepage address] for source URL
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!)
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
Browse to the word executable, usually it’s in C:Program FilesMicrosoft OfficeOffice 12winword.exe
Right-click and choose Create shortcut
Right-click the newly created shortcut and choose Properties, switch to the Shortcut tab
In the Target field, add /t “C:Program FilesMicrosoft OfficeTemplates1033Blog.dotx” /q, replace “C:Program FilesMicrosoft Office” with your path if necessary
The /t tells Word which template to use at start, the /q (supposedly) suppress the splash screen
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 😛
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…
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
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…
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
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
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.
How come every time I build something small, no matter how trivial it could be, I wanted to share it? :-/
This afternoon, i was asked on how to do a splash screen in C#. The guy already tried threads to display they screen and and that threw an ugly exception at the user’s face. I guess it is not that simple to guess 😛
The splash screen is just a form. You can either show it on the foreground and allow your application to load on the background with thread, or just build another application and execute it with some function in the System.Diagnostic namespace, I will demo how to make a splash screen for the later since it’s easier to debug and you can show as many of them as once as you like 😛
First, you need a form, splash screen doesn’t have title bar and stuff, so change the FormBorderStyle property to none, insert a picture box and fill-docking it to the form. Why a picture box and not just the form’s background you ask? Well, the picture box is designed to host pictures and you can scale it, provide an error image for it etc. If you simply use the form itself, you’ll have to scale the picture by hand.
Next change the image attribute of the picture box to your splash bitmap. Alternatively, if you want to reuse the program without having to recompile the project, have it read the splash bitmap in the application’s directory with:
Put that in the Form_Load() event. The first line get the application’s directory; the Substring() is there to remove the file:// part form the returned path. The second line’s Bitmap constructor doesn’t like that 🙂
For the final touch, add a timer, set it to enabled, set your desired splash duration for interval, add a Tick event and type in