We all usually have multiple work machines. A personal laptop, an employer provided desktop and laptop, a client provided desktop and/or laptop. We also want to share our work across these machines. However doing that without using version control is a risk as a goof up will be expensive both in terms of time and effort. In order to share and control the changes to your work content systematically, you can use Mercurial. Obviously that implies you need a remote machine where you host your mercurial repositories that you can then access from your different machines. It is also important at the same time that you be able to decide who can access these repositories and from which machines. Mercurial provides these options to publish a repository. Of these I found SharedSSH to be the one that meets such needs as creating multiple repositories, and allowing multiple users with fine grained access. Again mercurial-server is a good enough option to implement shared ssh. Thus if you decide to host multiple repositories on a remote machine and access them with SSH, here are the steps you can follow to achieve this. Create an administrator account on UbuntuJust use the adduser command to add the admin user. Do not forget to add this user to sudoers list. Ensure that the admin user name is same as the account on your machine. Choose a machine that you own. For example, my primary machine is a Mac. So if ’jay’ is the user account that I use on Mac, ’jay’ is the admin user account that I will create on Ubuntu. You can find the details to add user here and to add user to sudoers list here. Install mercurial and mercurial-serverMercurial-Server’s deb package is available only on Lucid. So if you are on an older Ubuntu server, add the repository to your sources list. Then install Mercurial, Mercurial-Server. You can find the details here. Also install mercurial on your client. You can download the binaries for mercurial based on your client OS from here. Accessing from Mac OS X 10.6Mac comes bundled with the ssh utility. You can use the terminal to create a private/public key pair for the admin user you created earlier. Export the public key for this user to Mercurial-Server so that mercurial-server knows that this is the admin/root user for managing repositories. You can find all the details of creating ssh keys here and adding it as root/admin to mercurial-server here. With this step, you as administrator will be able to create, read, write to multiple repositories hosted on Ubuntu from your Mac client machine. Now we are left with updating the configuration so that you can access these repositories from your other work machines. Say you have a client provided Mac laptop from which you need to access these remote shared repositories. Adding another userOn the client provided Mac laptop, use the ssh utility to generate a private public key pair. Now share this public key so that it is available on your machine that you use as administrator machine. Login with the admin account on your client admin machine, use the ’hgadmin’ mercurial-server provided mercurial repository to add the client provided Mac laptop user. Now you can access the remote repositories from the client machine as well! All details to add user can be found here and to manage access rights here. Problem with hgadminI faced this problem with hgadmin. I do not know if my installation was not perfect. However the hgadmin repository was not having the .hg folder. As such when I tried to clone it, I got a repository not found error. I fixed this as follows: Delete the hgadmin folder from /etc/mercurial-server/repos on the host. On my adminstrator machine, I created a hgadmin dir, initialized it as a mercurial repository and cloned it back to the remote host. Then I followed the steps to add user as described in mercurial-server documentation. All was working then! SummarySo to summarize the steps are:
0 Comments
Till the fifth grade, I read much less by myself, listened more, asked questions, and learnt along the way. So when I entered the fifth grade, my father advised me to attempt to read by myself. That was a smart way to inititiate me into reading instead of harping about how to read, why you should self-read etc? My initiation was very tough and no wonder that I remember it vividly. We tend to remember our hardships over the happier times! Over the course of time through school and college, I learnt a few things about reading that I would like to share here. Most of these I think I have learnt without being mentioned explicitly. The most important lesson I have learnt is that reading is a long term activity. It is not something that should happen in isolated, disconnected sessions; which is the way most of us read even without realizing it. What it means if you are reading in this manner, is that you do not link/connect what you are reading currently to what you have read earlier. If you do not make these links, then you really are not improving your knowledge. I do not intend to say here that we do not form any links whatsoever, but that we do not form links conciously by thinking through what ideas and facts we have been exposed to by our reading. If you treat reading as compartmentalized activity, a task among many of your regular tasks, then what you can end up with at the most is storing facts in your brain. But the links between these will be missing. Then when someone who makes these links comes up with those insights which are often strange and suprising, you think ”Why the hell could I not think of it”? The answer is simple. You did not make those links. Let me give a very simple example of making the links. I have read 2 books by M.K.Gandhi: ”The Story of my experiments with Truth” and ”The Gospel of Selfless Action”. If I read without making the links conciously, then I will not be able to see how The Gita influenced Gandhi. It is very interesting to find out how Gandhi was influenced by an instruction or a recommendation from the Gita. For example, The Gita does not recommend renunciation of activities; but the reunciation of ’crass materialism / selfishness’. Which is very evident in the way Gandhi led an exteremly simple life and led the freedom struggle. This technique of making links is true for every subject. Now can you make these links if you read fast? Obviously no. Here I come to the second most important lesson; read slowly. The advice that you often hear ’read with concentration’ I think is a fake one. I believe that concentration is always a byproduct. If you are focused on making the links, then the concentration part will automatically be taken care of. When you tend to stop making the links, it could be either because of fatigue (you have been reading too long) which could be good or because you are reading fast which is bad. [1] If you read slowly and treat it a continous activity, you will begin to enjoy it more. As I mentioned earlier, you have to keep making links. . Whenever you are involved in some task deeply; a few breaks or pauses are important. The risk here is if you do nothing in the break, you may lose the rythm. Hence while reading I do take small breaks to make these links thereby making them productive. Finally when I am tried I just bail out, making a note of where I left off. This note is just a few lines describing my understanding till the point where I have read and it allows a smooth resumption of my reading when I come back to it later. While reading I always imagine as if I am having a one-to-one conversation with the author. It is like the ’author is reading out the material to me’. I do think it could also be because I had been read out to a lot as a child, but I have never tried to verify by asking others if that is the case with them as well. I also find that matter written in conversational style is enjoyed by more people on the whole. This is the first technique that I also use to pick good material to read. Converstation style is not a filter to finalize, but a filter to pick to decide if I should read. The next technique is to go through some extract of the material you intend to read and try to see how many links you can make? The higher chance is that it is a good pick if it is making you form a lot more links than less. Remember that good picks are those that will extend your links; but even more intereseting (and better) are those that will challenge your current ones. For example; a book that will cause me to think that Gandhi was not ’heavily’ influenced by the Gita; whereas after reading those two books I had made that link. I now think it would be even better to find material that opposes your current links. Of course here the underlying assumption is that you are not starting off wtih an entirely new subject matter. [2] But if you are, then (and even otherwise) as a helping aid, I find the online book reviews useful while picking books to read. A pattern that I have seen is that ’hard books’ not because of the writing style but due to the difficulty of the subject itself have fewer review comments. Anyways read the reviews and see what the reviewers say. But note that let this only be something that assists you in making a decision; it should not be the primary reason. Finally, another great help are the recommendations about books and material to read made by those people whose judgements you trust where reading is concerned. Finally if you can make the links, it may not be a good idea to just store it in your head. This is what I do. I just annotate everything within the physical copy of the book itself. The big risk here is what if you lose the copy? You will lose all your precious notes. As such I take a zerox of the book and store it away after I completely read it and sometimes I read more than once, so each time I take a zerox. You can as well scan the book you have finished reading it. [3] Thus overall I think it is more important to form the links between the facts and ideas you come across while reading; so that you can not only enhance your knowledge but also draw valuable inferences. I think that is possible only if you treat reading as a continous activity, read slowly and know how to pick the right material to read. This I think is the essence of critical reading. [1] Reading slowly may not be prudent for aptitude exams, which suck most of the times. So if at all you learn all those reading tricks, just be a smart alec and trash them away after you are done with your exam; just the way a child learns and forgets the stupid magic tricks.
[2] Hence I like bookstores which care about this apsect by providing chairs where you can sit down and go through a book. Makes for a lot of business sense. Alternatively, the online libraries are also a great asset where a subscription allows you access to either a full library or a limited number of books on your virtual bookshelf. Such online libraries can be used to read extracts of a book before deciding to buy it. [3] As such ebook readers with a stylus that allows one to make notes that get stored along with the electronic copy of the book could be real replacements for physical copies, assuming that there is an electronic version of every book. Apple IPad (as is with Apple products) provides the most compelling reading experience, which forces you to overlook the fact that it does not use the e-ink technology which is lighter on the eyes. |
MeI am a 3D graphics software engineer. Archives
December 2011
Categories
All
|