Categories
Git

How Git is Saving My Project

Introduction

If you have been following me, I’ve mentioned numerous time about this software called Git.
You’ll find more information about what it is on their web page mentioned above or perhaps, you can checkout its Wikipedia article, if you prefer. Simply put, Git is distributed version control system.
From mid-2008, I have been using Git to manage my work related data. I’m being sole user of the repository I use and manage, but even with that application, I find this very useful.

Why Git is So Cool?

It’s Fast!

I have been using Git to manage anything ranging from 1KB of text data to couple-hundred megabytes of submitted video game build files, and it has been very reliable and fast. Subversion somewhat did this right, but this wasn’t scalable for my use (I will explain about its scalability later), and Mercurial just didn’t work very well when it comes to large file introduced on the repository. (at least on Windows.) Git would allow me to check in any of those files with ease.

It’s Reliable and Scalable!

I started using Git on a single machine, then eventually cloned repository for backup, then I also cloned it for off-site backup. With Git (and many of distributed version control system) one repository is not superior to other repository. If you clone the repository, the entire history of that repository will be copied locally as well. It just involves simple command and securely done over SSH as well. This is real beauty of distributed version control system, crash on any system participating is non-event. If I have to replace, say hard drive on one machine, I’d just replace the hard drive, clone from one of existing machine, and I’m back to to business. Because I work at home as well, I have at least four copies of repositories are available anytime, in which two are acting as “hub” repository, which makes it very reliable. (Not only data on four machines have to be destroyed, all backup of those repository, which is created routinely on each hub repository, need to be destroyed to me to lose data under this system.) Git also provides me high reliability in terms of data integrity. If data contained in repository is corrupted, I will know immediately as any data contained in the repository would be checked against SHA1. This characteristic, just like many version control systems, also helps save bandwidth, as anything that needs to be updated will be transferred.

Branches

Because I deal with different kind of data coming in from a lot of different places, I put each of those into its own branch. With this system, anything submitted externally are placed on its own branch, then merged to my personal branch. This way, I can keep healthy separation of my history and others. Since a lot of files are deal are binaries, merging rarely happens with me. But being able to deal with branch very casually (with many of other systems I’ve tried, including Subversion and CVS, branch is very messy process that I didn’t want to deal with…) makes me to organize great deal of information with ease. Today, I dealt with three different branches for example. Gitk program that comes with Git displays really nice and satisfying tree of my project, too. (it displays the graph resembling subway map; it is in the way, the subway map, leading to the same destination — each commit being the station.

And…

Well, so those are my rhetoric to Git, and for any one I’m looking for some solution to version control, I’d highly recommend Git. Even if you’d be sole user of the repository like me, it will be still useful. I have been losing quite a bit of data every time I have had problem and had to reinstall the OS, but since I have started using Git, I lost none of my work data across reconstruction of my working environment. It’s because Git makes checking into other machines (hence making backup) simple and flexible. (Recovery goes very quick, too; even with 5 months of mass data, it’s about 2.8GB — it is also possible to “shallow-copy” the repository, if quick access is needed.)

Categories
GnuPG

Fun with Anonymous Recipient

GNU Privacy Guard, or GnuPG has interesting feature called anonymous recipient.
If you know OpenPGP message format enough, you know that the message contains user ID of recipient. So when you receive such message and try to decrypt using your own private key, OpenPGP implementations know which key to use.
This also allows traffic analysis, as perpetrator can skim through the message. He or she may not have any idea what’s included in the message, but it is possible to figure out where the message is intended to.
Anonymous recipient basically masks key ID with 0×0000000. Consequently, recipient will have to try to decrypt message using all the key he or she has, and there’s even possibility that the message is not addressed to that person at all! You’d never know.
You can use anonymous recipient with the following command:

gpg -R keyID1 -ea

Make sure you use upper case R option to specify, instead of lower case. You can mix upper case and lower case option so some of them will have their keyIDs included in the message.
This is useful in the case you want accomplish same type of effect like in E-mail’s BCC feature. Only difference is that you cannot hide the fact that the message is addressed to someone else as well, as you can with E-mail BCC. (BCC addressees are hidden in their headers.)
Only problem with this system is that commercial PGP solutions do not this support, and not sure if it’ll be ever supported. (PGP will treat as if the message is addressed to keyID called 0×00000000, you probably wouldn’t have in your keyring…)
There are some message floating around in my note sometimes using this technique. If I know you use OpenPGP, it may or may not be addressed to you…

Categories
Happening in Japan Hatsune Miku Kagamine Rin/Len Vocaloid Vocaloid2

Battle over satire song by Vocaloids

Multiple sources including Slashdot.jp reports that Crypton Future Media, the company who has produced voice synthesizing software, Hatsune Miku (初音ミク) and others requested Niko Niko Douga (ニコニコ動画) to take down parody song with satire, coinciding with arrest of Japanese actress Noriko Sakai (酒井法子). The song, in question is a parody of Noriko Sakai’s famous song Aoi Usagi (碧いうさぎ, Blue Rabbit), was named Shiroi Kusuri (白いクスリ, White Drug) with lyric replaced with satire about her arrest from use of illegal drugs.

According to Crypton Future Media, on their official blog, the reason they have requested this taken down is:

  • Product created by (Crypton Future Media) is being used to create the work that is potentially illegal activity civil and criminal, that constitutes to be defamation, and the work is being distributed over the internet.
  • The fact above is being publicized over major internet news websites, and is being known to people who do not know the products created by (Crypton Future Media).
  • The above may result in negative and inaccurate image about creative work using the voice generation technology including products created by (Crypton Future Media) to general public.

Thus (Crypton Future Media) requested Niwango on August 11th to remove video in question due to potential loss of sales and reputation.

In most of these taken down notice, story ends here.

However, as J-cast reports, Niko Niko Douga’s operator, Niwango overturned its early decision of complying take down, citing that request by Crypton Future Media does not have legal standing, thus putting back the video taken down earlier, however with the message to poster that the license holder of the software used to produce the work is requesting taken down.

Now, there are interesting questions come up.
First, does Crypton Future Media has legal standing to request for the work to be taken down? What if you used Les Paul to play satire song, can Gibson ask you to stop it?

Second, only binding contract between established regarding use of Vocaloid software is between Crypton Future Media and user, in the form of EULA. I think Niwango’s decision is heavily based on this fact. By people putting up their work on Niko Niko Douga, it is users who are violating EULA, and they are merely requesting to solve the problem between parties in contract. While the work may be violating copyright law, Crypton Future Media is not a copyright holder, thus is not authorized to issue take down notice from this reason.

Third, if Crypton Future Media claims rights to have “inappropriate work” removed, then potentially, Crypton Future Media itself may be liable in future arising from damages created by users of their product. Is Crypton Future Media ready to respond to such claim?

I don’t know if the particular work will be ultimately taken down or not, but it may be that both Niko Niko Douga and Crypton Future Media may have opened up a can of worms.