Memory Dumps in a Blog-Like Form Factor.
Reboot. Reinstall. Reinitialize.
JAN 14, 14
So, I'm a developer. My primary focus is developing software for Windows using C#. As part of my annual cycle I periodically 'Reboot' my development environment. Simply put I remove all the junk on my development machine, wipe it and recreate my environment. Turns out I did this to a machine recently, and so decided to document the collection of tools I use day-to-day to help the process. Sure there are hundreds of these lists out there, but this is my list for C#/.NET development.
- - Windows 8.1
- - Office 2013 Professional + Visio 2013
- - SkyDrive
While some people dislike the latest releases of Windows, I really like them, and yes, my primary laptop is not a tablet. Its a bog-standard Thinkpad X220. Anyone who has worked in an office knows that Microsoft Office Documents are a fact of life - especially if you are dealing with anyone primarily using Windows. As such I have Office Professional installed, as well as Visio - a tool I find invaluable for creating diagrams and mapping out how I envisage software working. The other advantage for me of using the full Microsoft software stack is that it all works really well together. Office saves to my Skydrive, which is available to me on every Windows PC I have to access regularly.
- - Visual Studio 2012 Professional
- - Visual Studio 2013 Professional
- - TFS Online Free/ TFS Server Express
- - Expression Web 4 Free
- - Expression Design 4 Free
- - Notepad++
So, since this post is primarily concerned with developing software for .NET: VS 2012/2013 are the best choices. While the express editions are great, since I have access to them, I prefer to install and use the Professional edition of these products. On top of any development system, a key concern is source-code management, bug-tracking etc. For these I tend to default to the new TFS Online service thats part of Microsoft's Visual Studio Online service. Although I also maintain a TFS Server 2013 Express Instance locally that in effect acts as a clone repository for my Online Repo, and also allows me to experiment with a locally hosted Team Foundation Server instance. Given that Paint has some limitations, and I often find myself needing to tackle some simple design tasks, I tend to keep Expression Design 4 Free around, despite it having been discontinued. I also install Expression 4 Web Free as well, as it's useful if I need to throw a website together quickly - generally these are internal websites I use to host some web-based administration or management tools. The final weapon in my core-development tools arsenal is the text-editor I used to compose this blog - Notepad++. This however is a very personal thing, and a lot of people I know prefer various other text editors. This one just happens to be my favourite and the one I am most used to using, so I stick with it.
Coursework, Linux and Virtualization.
DEC 29, 13
One of the things that has struck me as something I should talk about is the process I use to get assignments that require access to UNIX based tools complete within my very Windows-focussed setup. Although I am primarily a .NET developer, some of the time I still have to either complete assignments, or have a need to use tools which are primarily designed for, or sometimes only available built into UNIX or Linux. Given the constraints on my time, and the fact I tend to work best when I'm not at my desk, being able to carry a Linux instance around, or at least, carrying around offline access to these tools is a necessity for me.
Luckily my primary device is a more modern laptop, and as such, I have a Sandy-Bridge i5, 8GB RAM and a large HDD whereer I happen to be. By installing th Hyper-V Hypervisor ontop of windows 8.1 I gain the ability to have a Fedora (my preferred Linux distribution) installation with me wherever I happen to be. This VM has the added advantage that I am able to keep all the cruft that often forms from installing the custom software required by various courses in its own segmented space where it doesn't clutter my conventional .NET workflow. It also adds capabilities such as a real UNIX terminal into my workflow along with native GCC. What these mean is that if there is any software that doesn't run on Windows, or the Windows build has less features than a copy for Linux or a copy compiled from source - doing both of these is merely a couple of clicks away.