I've been using GiT, a distributed VCS, for more than a year now. I don't find it cumbersome or hard to use at all. It just need a little shift in paradigm of how a VCS works. First things first, we just need to understand its concept of local and remote repository.
When you install DVCS and initialized a repository, this is your local repo. It resides on your local machine. When you do a commit, you are actually committing locally. This has several advantages.
You dont have to be online to commit your code. What does this gives you? The ability to track your changes. But one may argue that you can compare with Local History in your IDE. Question: Can you track the whole project changes with that? I believe that you only can track only a single file at a time. :) So, DVCS allows you to track your whole changes and 'save' it as a set. You might write a prototype program and it works fine. But let say you need to refactor it and something goes wrong somewhere and you lost track of what was changed that made it broke, can you track them back using the local history? Unless you are a masochist then I believe the answer is no.
You are free to develop and implement that experimental feature without the pain of doing merging that most popular centralized VCS gives you. Not just that, you are now able to do that OFFLINE and without the pain of creating a separate workspace/project.
You totally don't need a centralized repo to sync your codes with your buddies anymore. If you and your team work locally, you can just pull from each other and review each other's codes just by sharing a folder on the network, or create a 'bundle' and email it. Or appoint someone as the build manager and let him do the usual merging and build. You can have a 'Blessed' or 'Golden' or whatever name you want to give it to a main repo and work in a 'centralized' way if that is what you want.
Minimize broken builds. Now in my past experience, this thing is undeniably the most common showstopper for developers. Countless times I've been in this situation where somebody from a different timezone 'accidentally' committed half of what they supposed to and what happened was, the whole local team unable to do anything productive for the day. Worse if the team in the other timezone is celebrating holiday the next day. Or maybe somebody refactored a piece of code that another developer did a design mistake to tightly couple his code to it.
I'm not saying the CVCS is all that bad. It is simplistic but it relies too much on the network and developers to commit their code correctly. Right now, if I am given the choice, I rather go with the DVCS instead of CVCS and I really recommend that you do too. Other than the shift in paradigm, another issue that most DVCS haters are having are just because they did not configure their client properly - this could be for so many reasons but I would say being lazy and impatient is the main issue as I never really have trouble using it. Take time to understand and I'm sure you'll like it as I do.
Showing posts with label cool tech. Show all posts
Showing posts with label cool tech. Show all posts
Thursday, December 29, 2011
Sunday, September 27, 2009
My Personal Spring AOP notes
advice - a method that is called in a Spring classic AOP process.
- MethodBeforeAdvice - must implement the method before(Method method, Object[] args, Object target) throws Throwable on the proxy object before calling the actual object's method.
- AfterReturnAdvice - must implement the method afterReturning(Object returnValue, Method method, Object[] args, Object target) throws Throwable on the proxy object after calling the actual object's method.
- ThrowingAdvice - invoked when an exception defined in the method implementation of this interface is being thrown. The interface did not declare any method but to implement this advice, the method must match either afterThrowing( e) or afterThrowing(Method method, Object[] args, Object target).
- MethodInterceptor
Wednesday, November 26, 2008
Fedora 10 released!
Time to upgrade my "development mode" OS to the new version. Currently still in download progress. Can't wait to get it installed on my machine. =)
Thursday, January 17, 2008
Ireport and non ISO-8859-1 characters
If we want to produce a report using Ireport in other language with a different character set than the standard English in PDF(Vietnamese,Chinese,Japanese, etc.) , we need to use a font that supports UTF-8 encoding (for example, Arial) if we want to make sure that the characters prints out correctly.
Let say that we need to set the PDF font to Arial. It won't be in the dropdown list if we don't copy it to Ireport's lib folder. Once done, right click on the field that we want to be displayed in the other character set and view the properties. Go to the Font tab and select Arial from the dropdown list of the PDF Font Name field. Put a tick on the PDF Embedded check box and select :y-H (Unicode with horizontal writing). Save and compile the file.
Lastly, be sure to put the font file in your application's classpath or the report will be blank as it can't find the font to embed to the PDF file.
Let say that we need to set the PDF font to Arial. It won't be in the dropdown list if we don't copy it to Ireport's lib folder. Once done, right click on the field that we want to be displayed in the other character set and view the properties. Go to the Font tab and select Arial from the dropdown list of the PDF Font Name field. Put a tick on the PDF Embedded check box and select :y-H (Unicode with horizontal writing). Save and compile the file.
Lastly, be sure to put the font file in your application's classpath or the report will be blank as it can't find the font to embed to the PDF file.
Labels:
cool tech,
Ireport pdf font,
java,
software development,
work
Monday, September 24, 2007
On MIMOS' BladeCenter
It's my third time going to MIMOS just to supervise the installation of the IBM Blade Center H.
For those who don't know, a Blade Center is categorized as high end server. My company had this contract to provide and maintain the Blade Center for MIMOS for 3 years. The total stuffs adds up to a sum of RM 3.6M. That's the most expensive machine that I've ever handled and helped to install. Each BladeCenter will have 14 blades, each blades are equipped with 2 dual core Opterons and 16GB of ECC RAM. Imagine the processing power that each of the BladeCenter have.
The 7 BladeCenters will be used in the Grid Computing project. The one me and my half time superior will be researching on. Well, I'll going to have a lot of readings on SOA (Service Oriented Architecture) to do before going to the development part. Meanwhile, at the same time, I have to deploy a test machine for the IBFM application internationalization project as we need to do some serious testing before going live and deliver it to Vietnam. Raya is around the corner now and with all that holidays, I'll have pretty limited time work on it. This will be really messy.
Ok. that's all the input for today. Gotta go or else I'll have to squeeze myself through the heavy traffic to get home.
For those who don't know, a Blade Center is categorized as high end server. My company had this contract to provide and maintain the Blade Center for MIMOS for 3 years. The total stuffs adds up to a sum of RM 3.6M. That's the most expensive machine that I've ever handled and helped to install. Each BladeCenter will have 14 blades, each blades are equipped with 2 dual core Opterons and 16GB of ECC RAM. Imagine the processing power that each of the BladeCenter have.
The 7 BladeCenters will be used in the Grid Computing project. The one me and my half time superior will be researching on. Well, I'll going to have a lot of readings on SOA (Service Oriented Architecture) to do before going to the development part. Meanwhile, at the same time, I have to deploy a test machine for the IBFM application internationalization project as we need to do some serious testing before going live and deliver it to Vietnam. Raya is around the corner now and with all that holidays, I'll have pretty limited time work on it. This will be really messy.
Ok. that's all the input for today. Gotta go or else I'll have to squeeze myself through the heavy traffic to get home.
Subscribe to:
Posts (Atom)