Open Yale university has got some good free offerings which you can download and listen/watch with your IPod. PHYS200 is one of them.

Technorati Tags: ,

Note to myself…

http://www.clonezilla.org/ It is a bootable cd (if you donwload the ISO) used for cloning the harddisks. It works like Norton Ghost or Partition Image.

Technorati Tags:

Note to myself…

 

Study http://sharparchitecture.net/. It is a Visual Studio project type to build maintainable MVC web applications.

 

Technorati Tags: ,

This is a follow up to my other entry

Before you begin, tidy up your system and personal data to reduce the size and time of the backup. Here is a list of recommendations:

  1. Empty your temp files, cookies, browsing cache (for each browser you use), recycle bin (for all users).
  2. Remove unnecessary programs from "Programs and Features".
  3. Remove all unnecessary shareware and trial games with their data.
  4. Tidy up your personal files, delete unnecessary ones, categorize them.
  5. Clean up your MSN history and downloaded files.
  6. Turn off all unnecessary system tray applications.
  7. Shrink your SQL Server database files.
  8. Delete created but never used SQL Server database files.
  9. Clean up old e-mails.
  10. Compact your Outlook PST file.
  11. Delete old videos downloaded from ten.com.au and expired.
  12. Check each and every folder for remaining things which are not removed by the un-installations.
  13. Remove MS Office cache sitting on C drive.
  14. Think before you delete a file, leave it if you are unsure.
  15. Empty the Recycle Bin again.
  16. Turn of unnecessary services for now like "IIS Manager", "SQL Server" etc. (for developers).
  17. Ask to your wife to clean up unnecessary files, she will probably leave everything as it was before but worth to try.

If you think you have a clean and better system now we can proceed with the second step. We need to do a thorough check disk and a defrag to keep the computer running smoothly. This will ensure in some way that the backup will be as healthy as possible.

After Defrag, make sure computer reboots and rest of the applications are working normal.

By now, you have a faster computer I believe. Have a look at the size of your personal data and how much of the HD space you use. We need to make sure that the storage device for backup will have enough space to contain that much of data. Do a comparison (size of personal data + size of entire system <= your storage size).

Choosing your Backup Software

Amongst the trilllions of commercial and open source options you can either pay some money and get something like Acronis True Image or you can go DIY with a solution like RSync. There are pros and cons and differences in style. Whichever you choose, you have one basic requirement and that is the Continuation of the BAU.

As I am getting older with the increased responsibilities, I don't want to spend valuable time of my life on installing Vista/Linux etc again and again. So the recovery should be quick and the business as usual should continue as normal. We have 2 backup options:

  1. Backing up only personal data.
  2. Backing up the full HD as an image in case of a catastrophic failure.

In the times of Blu-Ray disks you can have the full HD backup on a bootable Blu-Ray but the recovery process should be tested. Where as the personal files can be backed up to either a DVD or an external HD or USB keys etc. The key point is having a copy somewhere out of where your computers are (aunties house, bank safe, internet cloud etc) so that if a meteor hits or a disaster happens to be passing by on top of your house you will at least have the photoes of your last trip to Europe.

If you are a mainly Windows family, you can also use inbuilt MS Windows backup features and shadow copy options. If you have a rogue son who uses Linux and daughter who uses MAC, wife using Windows and you using an archaic Unix version... well good luck :-).

I am using ReadyNAS NV+ on our Windows/Linux hybrid network at home with RSync and Windows inbuilt backup software. A couple of batch files are fired up when there is a specific network connection available on the Windows Task Scheduler. And full HD backups are done once a week. ReadyNas is also backing up my blog accessing it via FTP and copying only the changed files. I need to backup my SQL Server databases on GoDaddy manually before. The only problem is I do not have an off-the-site backup of important files but I will get to that soon. ReadyNas has also Subversion installed and projects are on it.

I love open source and use it as much as I can at home, and try to contribute. Maturity levels of these open source products getting to a point that government agencies are now considering to revise their policies to use them more. Recently Australian Taxation Office published a revised policy on Free and Open Source Software (FOSS). Of course there is an endorsement and approval process behind it as usual but it is good that open source is getting some recognition from the large government organisations.

As a developer I use things like NUnit, Rhino Mocks, NHibernate, Subversion etc for my home projects as supportive enablers so that I can speed up the development process and have some process improvement overall. I also installed Linux for my old laptop used by my wife (she doesn't like it though). Open Source is good for me because of the cost benefits and I have no actual commercial benefits out of my home projects anyway.  It is also good when I see my articles referenced. For example my article about the Cruise Control installation linked from Wikipedia.

On another angle; I wonder how things like GnuCash; a free accounting software can get endorsement from government bodies to be used by people who don't want to spend money on MYOB or Quicken. This sort of endorsement requires a bit more research and resources and converting the GnuCash based on Australian laws and tax legislations (also updating it when the legislations change). Maybe a group of volunteers can do this in the sense of open source and get approval. Luckily there is a software distributed to keep records called e-Record which does the same sort of job as GnuCash.

As a conclusion, I think we will see more open source software used by government agencies in the future as the OS project's maturity and support level increases.I'd love to use some of the above applications at my day job which pays bills.

Here is my Great Firewall. I don't think any bad guys can get pass Qui-Gon and ObeVan

Firewall1 Firewall2

Today we are solving business problems by developing software applications based on customer requirements. But how much time in a project goes to the way of actually solving business problems? Are we still fiddling with the unending setup, environmental, infrastructure, management etc issues that hold us writing usefull code and solving actual customer problems?

Everybody knows that time is money,  and yet I have seen examples around that some basic things in the name of automation hasn't been done. There are easy ways to save time and money by implementing some of the things before thand. Here is my list:
1- Source Code Control
I don't think that there is software development company out there who is not using a for of source control system. Be it Subversion, Team Foundation Server, GIT or a project on Sourceforge.net everyone uses it. Even the toy projects that we develop at home are kept on our own source control servers.
2- Unit Testing and coverage
Unit testing is required what ever the language you are using, but unit test alone is not enough; the coverage should also be good. Karl Seguin on www.codebetter.com explained it well on Chapter 5 of his free book "Foundations of Programming":
Unit Tests aren't only about mitigating high-risk changes. In my programming life, I've been responsible for major bugs caused from seemingly low-risk changes as well. The point is that I can make a fundamental or minor change to our system, right click the solution, select "Run Tests" and within 2 minutes know where we stand.
3- Continues Integration and monitoring
If you do not compile at least every night and run unit tests to see where you are; you are in deep s**t. To perfect world would be to compile at every check-in and pin point the scapegoat but it may not be applicable if you are short of computing resources.
4- Documentation
At least a database design doco and a requirements specification should be a must have for a poject. The API documentation can be generated out of the code if it is properly commented. An automatised database design process or a project wiki should give enough information for the exisiting and new starter developers. Designing the system with a UML tool and producing the requirements documentation out of these would be preferable.
5- Bug reporting and change requests management procedures
Once released a product out to the wild, the issues and bugs will rain like cats and dogs. Having a good bug reporting system may save you some dollars. Managing them should also be automatised with notification systems. Change requests might be prioritised automatically into releases.
6-  Bug fix and source control integration
Some changes to the source code may need to be attached to a bug or issue so that PM can what bug is resolved with what piece of code.
7- Logging software errors
Having a system ready to use to log the errors in the software may save you some time. As this is a system that needs to be built, it can be inherited from a previous project. If you are building this for the first time, make sure that its reusability is high and the API is well documented.
8- Implementing database and its changes fast and automated
One area that code generators and latest ORM wave is trying to solve for you. Are you utilising any of these to manage your databases and their change requests? Well, you should. Also having your database design on a tool like Erwin or using the latest Visual Studio DBDude mightt help you to manage the database easily.
9- Test, UAT, release procedures
Internal regression tests, user acceptance tests and release procedures are also another area. During the development of your project, you might have a wiki for developers to spell out the test scenarios and later use these for regression tests, or give them to UAT people to execute. Releases should also be inline with these test scenarios and with every release (major or minor) a new version of test scenarios should be distributed to the parties. If you automate this into your compile-unit test-package-release cycle, you will be the king.
10- Communication procedures
Communication is the most important thing in a project team but too much of it will bore you. A translater between the customer and developers and also another translater between the developers and project manager might be necessary. Short meetings and outcomes of items above may be used for reporting and scheduling tasks. I am not telling to isolate developers totaly, they are free to talk with any stakeholder of the project. Those interfaces are realy time savers when it comes to sign-off' of requirements documentation or change requests approval.

So what do you think? What else can be automatised to speed up the development process?

I didn't think that I will be scoring this much. I guess some things just never disguised easily. I didn't even get this much scores in high school (may be because of Galactica).

NerdTests.com says I'm a Highly Dorky Nerd King.  What are you?  Click here!

So what is yours?

When my external HD blown up taken down all my son's and our pictures and realized that I have deleted original copies from my hard drive just to install Windows 2003 Server, I have then understood the importance of taking regular backups and not deleting the originals.

I am still on the look out for the best practice for my own purposes but at least manage to get enough WAF to spend dollars on a ReadyNas NV+ and get a solid storage device first. You may get an HD enclosure and a new HD (please please please do not use old HDs for backup, that is what I did and lost, learn from my lesson) or burn the data on DVDs depending on the size of data. Even a USB stick with enough size to keep your personal data will do. Keep one of these outside in a bank safe or at your parents place.

First thing first, HDs have around 20.000 hours or around 5 years of life time. Check these specifications with the manufacturer and set a reminder at rememberthemilk.com to buy new hard drives. Most HDs with SMART capability will tell you how many hours they were on the power.

Once you have a solid storage device, now you need a means of backing up your data onto this device regularly and safely. Luckily most network attached storage devices provide a solution like one touch backup, Rsync, file or folder sync etc. Or you can go ballistic and buy Norton Ghost and set it and forget it. Or maybe you can use Windows Backup Services to do the job, or a scheduled batch file to copy over the files even will do the job.

Restore At Least Once

One thing for sure; you need to at least try to restore once to see if it is actually working. Trying this as important as taking backups. If it is not restoring properly, what is the point of taking backups. After you take a full backup, try restoring it for the love of God, and see all your personal data in one place still accessible and visible. Do a head count for your files, open some of them and make sure they are not corrupt or ghost files. Once you pass this step you can be sure that your backups are valid.

Regularity

You may schedule your backup scripts, or take a backup when there is change in the watched folders and files. It totally depends on how you use your computer and what kind of data you have. You can take it every night, every week, every hour; you decide. Once you make a decision, don't stick with it, keep it running for a while and ask the question: if something go bad, how many hours/days/weeks of data I will be loosing and change your strategy immediately. Continues improvement is necessary on the basis of your backup strategy.

First Backups are Always Painfull

First time backups (depending on the size of your data) are always painfull. Runs longer, looks like nothing is happening, makes you irritating that you can not use your computer to accept some of the game requests on Facebook... Stick with it and have patience. This is your life, important data has to be backed up and you didn't do this because it takes time and your wife is angry with you that you are putting this task off for a while. Get a cup of tea and some magazines and watch the data flowing down to your storage device. You will be doing this for the first time; of course it will take time but the second run will be easier.

On my next entry, I will be explaining what I am doing for my family backup strategy.

Search



About me

Hi, my name is Gurkan Yeniceri. I am a software engineer with 8 years of experience in both public and private sectors. I have been generally writing about software engineering and Microsoft technologies since March 2005 on this site.
View Gurkan Yeniceri's profile on LinkedIn

Contact

If you would like to contact with me you can use the contact page here. I will try to respond it in a timely manner (I will try my best). You can also contact with me via Microsoft Live Messenger with the address gyeniceri {AT} hotmail {DOT} com.
If you are one of my Turkish readers, you may want to visit my Turkish blog here.

If you would like to read my site with an RSS reader like RSS Bandit, you may want to use to subscribe.

RSS 2.0

Advertisement


Bookmark this site

del.icio.us digg NewsVine YahooMyWeb Reddit Spurl TailRank BlinkList Furl Shadows blogmarks
    www.flickr.com
    This is a Flickr badge showing public photos from gurkanyeniceri. Make your own badge here.
    There are 133 posts and 88 comments on this site. Other sites also linked it 7 times.

    Advertisement