jay's old blog

this blog will be deleted soon - please visit my new blog - https://thesanguinetechtrainer.com

Repo updates – Thread and Debug

Today is a significant day for the code stuff at study nildana. I am happy to inform that our repo is now up at 55 code repositories covering a variety of concepts from c sharp. Of course, I will also be the first one to inform that man, some of those repos are entirely useless. Some though, will be pretty useful.  

As with any code written by study nildana, each repository has a 'notes' page. It will tell what each repo does. Then, as always, we believe in documentation. So each and every line has stories worth of comments. You will always know what is going on at any point of time.  

With this update, our repo now has code related to three main topics for Exam 483 – Types, Threads and Debug. That leaves only one topic to go – Data Access. Rest assured, we are working on it.  

The blog posts related to the code repository will be up shortly as well.  

You can find out repo here 

Why we are going with bitbucket and not github

Think code repositories, immediately you will think of github. In fact, until very recently I simply assumed version control equals github (although I have been familiar with visual studio online services for years) and ended my understanding at the point.  

Then, I looked at my own students at study nildana. Many of them gearing up to starting committing their own code as they are now about to start working as developers. I feared that, since github does not allow private repositories, I will have to end up shelling out money for that as well. That is when I ran into bitbucket and its free offering.  

Bitbucket allows unlimited private and public repositories for up to 5 users. I think that is a reasonable provision. As a developer, I know that there is no such thing as a free lunch but then again, a lot of work in the world of software gets done at a low cost (Linux, for example). So, as much as I am a big fan of github (I get a lot of stuff from their repositories) I am afraid, I will have to use bitbucket's offerings for now.  

I don’t envision my team to grow beyond 5 members, at least till the end of this year. So, I can start off by using the free service. In addition to this, I noticed that the paid service is a reasonable offer as well. 10 dollars (approximately 700 rupees) per month is reasonable for 25 users. Another thing which impressed me was the ability to ge the bitbucket server itself (so I can host it on my own) for a cool 10 dollars (approximately 700 rupees)  for 10 users.  

Overall, for current and future requirements, bitbucket simply seems to have an incredible offering and I am going to have to say goodbye to github for now.

Follow me on twitter, facebook and instagram for more updates. Thanks!

Version Control and Git – Part One

Despite being a developer for a long time now, I ignored version control at my own peril. That is not to say that I never felt the need for version control. In fact, even way back when I was building my own code for my final year project (It's funny that even in a big college like SJCE where I did my engineering, most of my friends were content to just pay for their final year project and just let it be. If my sources who will remain anonymous will confirm, even today this trend of buying the final year project still continues to be the norm in most engineering colleges which is straight out sad but is a story for another day) I felt the need for version control.  

Essentially, this is what I used to in my earlier days of development. Suppose I am building a simple calculator. As always, I would go ahead and design the entire project using a combination of notes and drawings. Once I am happy with my design, I will take a break and then redesign things after running it through some use case scenarios (which are once again drawings filled with flowcharts, user inputs and outputs). After the design is finalized, I will break it up into stages and then start building the software. 

Now, here is how things can go horribly wrong. Suppose I complete building the stage 1 of my calculator. Everything is working fine, and testing is complete and I am extremely happy. Then, I start work on stage 2 and then I add some new code. Boom and Kaboom, the application is no longer working. Further, I cannot remember all the changes I made. Which means, not only is stage 2 out of the window, all the good work done on Stage 1 is also gone. Essentially, I have no other way but to start from scratch.  

Now, after something like this happened a few times, I decided to do 'crude' backups. What I would do is go back to the solutions folder (or the project folder) and then compress Iit. Give it a name (usually a combination of the date and time of compression) and then proceed further development. This way, if something goes wrong, I have back up and that means, I don’t have to start from scratch.  

So, suppose my calculator projects has six stages, when the entire project is completed, there would be six compressed folders. Each of them representing a fully working 'stage' of the application. In other words, each of these compressed folders are 'versions' and I am able to control the development of the project. Control, in the sense that, if something were to go wrong (and in software development something will always go wrong), I am still in control of the project. So, we could say that is 'Version Control'. 

The whole compressed folder thing is a very crude form of version control. While it prevents complete destruction of the project, it is version control in its most basic level. It does not help me in any way to collaborate with my friends.. It does not help me keep track of changes. Also, the entire process of zipping folder is time consuming and not the most efficient way of doing things. Then, if you want your code to be safe, you will have to manually upload it a cloud storage.  

The solution to that is Git, and we will talk about that in the next post.

Follow me on twitter, facebook and instagram for more updates. Thanks!