Source control is something that every project needs. I do not care whether it is simple Hello World app or next Office. If you don’t have it under source control, you are doing it wrong.
For a while now I have been advocate of Mercurial. Nice distributed source control with acceptable UI under Windows and with lot of options for online storage (BitBucket being most popular choice). And it integrates nicely in Visual Studio (VisualHg plugin).
If your work completely revolves around Visual Studio, there was always option of using Team Foundation Server. It is good centralized source control system deeply integrated into Visual Studio. As a bonus it also offers quite a good deal of bug ticket management and scrum planning. It tries to be one solution for all project needs, and it is rather successful in that.
Downside is infrastructure. Installing Team Foundation Server is not too difficult but it does require separate server, setting up backup plans and at least though about access. This is not too difficult when dealing with local team but if you have someone outside of your network everything gets painful and expensive pretty soon. Not a problem for organization but usually unscalable obstacle for someone setting it up at home.
Things change a bit with new Team Foundation Service. Sales department boost it as “cloud-powered source code management” but developers can really just look at it as Team Foundation Server on Internet. That means that most difficult part of work is done for us. Server is up, somewhere where everybody can reach it and someone else takes care of backup.
Features include centralized source code management model that is really easy to use and almost anything any scrum team would need for managing project. Yes, that includes tasks, backlogs and all that beautiful stuff. Of course, bug management comes out-of-box too. Really no difference to standalone Team Foundation Server.
Thing that I like the most is fact that it is free for up to 5 users without any additional limit on number of projects. That makes it really viable for hobby project done by single person or even really small teams. Paid plans will be announced in 2013. Before that time even huge teams can get some of a free action.
Yes, BitBucket offers same amount of free users and you can get free scrum and bug management systems also. However, Team Foundation Service really shines in level of integration. I am not aware of any other solution that offers all this and that is so easy to setup.
If your development world is rooted in Visual Studio, life can hardly be better.
As my kid started with school I felt more and more pressure to get a printer. Since I am here temporary and carrying printer across ocean is not my sport, only choice was cheap inkjet. Few twenties later I had my Brother MFC-J435W. Nice multi-functional device with separate ink cartridge for each color (CMYK).
With inkjets one always needs to be aware of ink level since those things can drink a lot. Therefore almost all have some sort of warning when ink gets low. Brother moves that to completely new level.
Already at 50% it starts complaining about ink getting too low. Since this is probably time to get a new cartridge, simple notice is probably in order. But this annoying window just keeps on popping at every boot, at every print, and few times for no apparent reason. And all that while I am still at 50% capacity. WTF?
Yes, I do expect printer to warn me once it is low. But being at 50% is nowhere low. And aggressiveness of these warnings can lead me only to conclusion that someone was on speed while writing this code. I propose getting him into rehab and forcing him to use printer with all these popups.
Frankly, this printer could do without this warning completely. It has nice display just above paper output and there (when ink is low) you can see warning too. And it is big yellow exclamation mark that is hard to miss. Perfect and unobtrusive solution. I am not sure who needs this software solution at all.
And this is not only beef I have with this printer. I went ahead and upgraded its firmware few nights ago. During WHOLE procedure printer kept beeping few times a second. Not because of error but because some smartass though it to be nice touch.
Quite often software actually works better if you skip a “feature” or two.
One feature that was survived unchanged through versions and versions of QText was search. You could search only within current tab and that’s all you could do. Even when folders got added search was still limited to single file.
Well, not anymore. Finally you can search across all folders and files. Or you can limit search to current folder only. Choice is yours. Only real limit is searching through encrypted files which is not supported for security reasons. For them search will work only when you have them currently open (and thus decrypted).
If there is need to iterate through ListView items, I often see following code:
foreach(var item in listView1.Items){var itemX =(ListViewItem)item;//do something with itemX}
Unfortunately C# compiler is not smart enough to notice that item is actually ListViewItem so it keeps it as Object. And thus we need to cast it to our desired type.
Well, actually there is no need to do this. One just needs to remember live before implicit typing with var came:
foreach(ListViewItem item in listView1.Items){//do something with item}
As I did forced reinstall of my development environment I decided to move all my SQL Server databases to virtual disk. It seemed like a good choice, especially since I formatted virtual disk as exFAT. Since I have dual boot that means that I can use same database from both machines without dealing with all that pesky security.
Well, I was wrong. First message that greeted me was dreadful Access Denied. SQL Server would not attach, create or otherwise do anything with anything on that drive.
I’ll skip some debugging and head smacking and present you only with result: In services find SQL Server instance and change Log on as property to Local System account instead default of Network Service. That will allow it access your attached virtual disk.
Security-wise Network Service is much better account for hosting SQL Server. And in production I would definitely go with either it or separate account only for SQL Server. However, having SQL Server running as Local Service is convenient and good enough for development environment.
P.S. Once you attach database, you can switch back to Network Service account. It seems that error appears only on initial attach.