I'm Coming Back! Yay me!

Hey hey hey!
Long time no see, my dear blog!
Well, I definitely had a hard time working. But now, I'm backkkkk.



Here is my story. 2 days ago, I had a weird conversation with a bro.
- (him) Congratulation, Minh!
- (me) (Say what?! I have no idea why he congratulates to me) ????
- (him) Have a look at this, girl:
http://en.m.wikipedia.org/wiki/Programmer%27s_day
Wow, what can I say? Programmer day? An interesting one.
Thanks to my bro, I've known that there is a day for people like me, like u, like us.

With more than 4 years learning computer science, 3 years researching in a lab, I can see that people around me - programmers, computer scientists - are very smart, nice and they all build wonderful things. (Well... I dont say this just because my major is computer science :-D It's a true story)



So it's great to have an official day to remind people of us. Unfortunately, the "Programmer day" is not yet popular. I hope that one day, when I come back to see this entry, I can smile reading this and enjoy a day for programmers - computer scientists with my dear colleagues.

See ya in the next entry!
The next one is for Google fans, guys!







[Android] Digital Certificate For Android Applications

Hi guys,
It's been a while since my last entry cause I'm on my way fighting exams at school :((

Well ... This entry is about Android. But it's not about source code or coding an app (application). Actually it's besides Android apps ^^ One of my friends made an application, and now he wants to distribute this app to Android public - community.

He asked me how to "sign" on his app. Hope this entry help him and - of course - anyone.
-----------------------------------------------------------------------------------------------------------------------------------------------

There are ways of making a digital certificate for your apps

  • Using cmd (Keytool & Jarsigner) (this entry is just about this way)
  • Through Eclipse
  • Using some softwares (eg.: Key Store Explorer)
  • ......
  1. Keytool & Jarsigner
Keytool helps us manage public/private key pairs and associated certificates
Jarsigner generates signatures for Java Archive (JAR) files, and verifies the signatures of signed JAR files.

The info below is the summary I've got after browsing page: http://developer.android.com/guide/publishing/app-signing.html. You can browse this page for further information 
Before you begin, make sure that the Keytool utility and Jarsigner utility are available to the SDK build tools. Both of these tools are available in the JDK. To generate a self-signed key with Keytool, use the keytool command and pass any of the options listed below.
Keytool OptionDescription
-genkeyGenerate a key pair (public and private keys)
-vEnable verbose output.
-alias An alias for the key. Only the first 8 characters of the alias are used.
-keyalg The encryption algorithm to use when generating the key. Both DSA and RSA are supported.
-keysize The size of each generated key (bits). If not supplied, Keytool uses a default key size of 1024 bits. In general, we recommend using a key size of 2048 bits or higher.
-dname
A Distinguished Name that describes who created the key. The value is used as the issuer and subject fields in the self-signed certificate.
Note that you do not need to specify this option in the command line. If not supplied, Jarsigner prompts you to enter each of the Distinguished Name fields (CN, OU, and so on).
-keypass
The password for the key.
As a security precaution, do not include this option in your command line. If not supplied, Keytool prompts you to enter the password. In this way, your password is not stored in your shell history.
-validity
The validity period for the key, in days.
Note: A value of 10000 or greater is recommended.
-keystore .keystoreA name for the keystore containing the private key.
-storepass
A password for the keystore.
As a security precaution, do not include this option in your command line. If not supplied, Keytool prompts you to enter the password. In this way, your password is not stored in your shell history.
 Here's an example of a Keytool command that generates a private key:
$ keytool -genkey -v -keystore my-release-key.keystore-alias alias_name -keyalg RSA -keysize 2048 -validity 10000
----------------------------------------------------------------------------------------------------------------------------------------------
 When you have an application package that is ready to be signed, you can do sign it using the Jarsigner tool. Make sure that the keystore containing your private key is available.
To sign your application, you run Jarsigner, referencing both the application's .apk and the keystore containing the private key with which to sign the .apk. The table below shows the options you could use.
Jarsigner OptionDescription
-keystore .keystoreThe name of the keystore containing your private key.
-verboseEnable verbose output.
-storepass
The password for the keystore.
As a security precaution, do not include this option in your command line unless you are working at a secure computer. If not supplied, Jarsigner prompts you to enter the password. In this way, your password is not stored in your shell history.
-keypass
The password for the private key.
As a security precaution, do not include this option in your command line unless you are working at a secure computer. If not supplied, Jarsigner prompts you to enter the password. In this way, your password is not stored in your shell history.
         Here's how you would use Jarsigner to sign an application package called my_application.apk, using     the example keystore created above.
$ jarsigner -verbose -keystore my-release-key.keystore
my_application.apk alias_name
Running the example command above, Jarsigner prompts you to provide passwords for the keystore and key. It then modifies the .apk in-place, meaning the .apk is now signed. Note that you can sign an .apk multiple times with different keys.    
     2.  Through Eclipse
Go to this link for more information: http://developer.android.com/guide/publishing/app-signing.html#setup

     3.   Using Key Store Explorer
           Go to this link for more information: http://www.lazgosoftware.com/kse/index.html


-----------------------------------------------------------------------------------------------------------------------------------------------
Hope you guys find this entry useful ! Have fun, guys !
       

[Google] Have some fun in searching information !

Well, the first website that I've browsed in the very very first time I surfed the Internet is GOOGLE.



We all know Google is a "big name" ! The truth is - in the past - I'm not a huge fan of Google, cause I thought Google was just a machine for searching information. But now, I must say that Google's got my heart. Those guys in Google know how to satisfy customers. They bring to us more services, more stuffs which are really "friendly" to users (I mean user can use these stuffs easily) :))

But I'm not gonna give you an entry talking about the way Google's developed (You guys can use google to search this info ( lol ))

I just want to share some fun when I use google. Just click the link below and have fun in some seconds :)


  • Gravity: http://mrdoob.com/projects/chromeexperiments/google_gravity/
  • Go to Google search, type: "do a barrel roll" ....enter and wait :))
  • Searching "recursion" and you will find out that google will ask you for more about recursion recursively 
  • Searching "ascii art" and see the logo of Google in ascii art
  • You can have a flight in your own plane around the world, with Flight Simulator in Google Earth ! Trust me, this is really fun.
  • More stuffs....
These are some fun I've got. Nice weekend, everyone !

[Python] Pythonic, Pythoneer, Pythonist, Pythonista ?!


First of all,

If you have coded in Python, you must know these terms: PYTHONIC, PYTHONIST, PYTHONEER and PYTHONISTA... So what is the meaning of those terms ?!
Pythonic simply means something like "idiomatic Python".
Pythoneer and Pythonista - of course - are people who love Python. For me, Pythonista are programmers who are real loyal fans of Python-the-language. Pythoneer - in my view - are the ones that always think and create new things using Python, they seems to be the ones who are likely the leaders talking about Python programming and stuffs... Well, that's just my own opinion.

But that's not the main content of this blog entry. If this is the first time you've coded in Python and you want to learn more about this language, I think you should read those 2 articles below. Those articles are about the style of coding of PYTHONISTAs and the meaning of PYTHONIC. When I first learnt Python, I was so glad that I had read those articles:

Know more about the meaning of Pythonic:
http://faassen.n--tree.net/blog/view/weblog/2005/08/06/0

English version for "Code like a Pythonista: Idiomatic Python": http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html

(For my dear Vietnamese friends, there is a VNese version too)
http://www.vithon.org/2007/07/28/l%E1%BA%ADp-trinh-nh%C6%B0-m%E1%BB%99t-pythonista:-thanh-ng%E1%BB%AF-python

Give thanks to those articles' author/blogger. I love those articles !
Enjoy your time reading, everyone !