June 28, 2009 at 10:18 AM
—
mgordon
I’ve been working for months on a Silverlight application for task management that draws from the Getting Things Done philosophy among others. I’ve created a web site to host the application at http://www.funkytools.com. If you get the chance and are so inclined, check it out.
April 23, 2008 at 7:25 AM
—
mgordon
Some time ago, I was looking for a way to set up a family calendar so we could all keep track of one another's plans and schedules. Being a typical, time challenged family of the new century we were having a hard time keeping track of all our activities. My first thought was to try to whip something up from scratch, but being the spare-time-challenged individual that I am made that a difficult proposition.
Around that time, I had listened to Scott Hanselman's HanselMinutes episode about Google Apps and Windows Live Custom Domains. I immediately went to find out all the details. The idea with both of these services is that you obtain a domain name and then configure that domain to be redirected to one of these companies' properties for services like email, productivity applications, calendaring, blogging, etc. You can check out Microsoft's offerings and Google's . I elected to sign up for Google Apps. I found the signup and setup process extremely simple though it does require that you have access to change and knowledge about the DNS entries for your domain. The instructions on the web site are easily followed, though. Initially, the URL's to the various features are quite cryptic, but Google provides a way for you to replace these paths with sub-domains, if you choose. For example, the path to my domain's GMail login was something like https://www.google.com/a/codespot.com/ServiceLogin?service=mail&passive=true&rm=false&continue=http%3A%2F%2Fmail.google.com%2Fa%2Fcodespot.com%2F<mpl=default<mplcache=2 and by taking advantage of a sub-domain, it became mail.codespot.com.
The services allow you to set up an eco-system for any group of folks that you like. You create accounts for those you wish to have access to your domain's offerings and the content you keep there can either be exclusive to the members of the group or shared with all netizens.
All my family members now have a personal calendar and any of us can choose to overlay our calendar with the events schedules on the calendar of another family member. We can choose to be notified via email or SMS of any event we choose.
With both offerings, the best feature is that it's all for free.
February 26, 2008 at 8:34 AM
—
mgordon
It's been a really busy last several weeks. We've been working to get the application I'm currently working on into production and after considerable deliberation, I've decided to leave the ranks of the contractors and accepted the offer to become a full time employee of a local telco. I'll be serving as IT manager and will be managing systems administration as well as software development. Wish me luck as I endeavour to exceed expectations.
January 30, 2008 at 6:43 AM
—
mgordon
A year ago, I purchased a Samsung Blackjack through my carrier, AT&T. I had previously been using a Cingular 3125 and had greatly enjoyed being able to voice dial with my BlueTooth headset and was very disappointed to discover that voice dialing would not work with Windows Mobile 5 and the Blackjack. At the time, I did some research and found there was a throng of Blackjack owners who were putting there hopes on an upgrade to Windows Mobile 6 that Samsung and AT&T were going to provide at some point in the future. For months, I've periodically checked around to see if an upgrade had been released. Lo and behold, I checked, yesterday, and found that an upgrade was available on Samsungs site, here. I quickly installed the upgrade, but found that Voice Command 1.6 running on Windows Mobile 6 STILL would not support voice dialing. Guess I'll have to upgrade to the Blackjack II to get that functionality back :-(
Regarding the upgrade, I found it to work as advertised and adds the ability to edit Word, Excel and Powerpoint files on the device. However, the directions instruct you to install the modem drivers (they allow your PC to talk to the phone without Activesync) and then use Activesync to back up any data from your device. After installing the drivers, connecting and disconnecting the phone - attempting to get the device to connect through Activesync slowed my PC to a crawl and required a reboot to remedy. I'd suggest you perform any backups PRIOR to installing the modem drivers to prevent this problem.
January 8, 2008 at 4:44 AM
—
mgordon
I'm currently working on a project that began in March of last year. A friend of mine is managing the project and after he brought me on, we decided to try and make things as pleasant and as fun as possible for the project team. I purchased a couple of novelties that we awarded developers when they broke the build or were deemed the most productive. We blazed through requirements and watched features get implemented swiftly. I was having a ball and it seemed the whole team was enjoying working on the project.
Around mid summer, though, something happened. Several, previously unknown, requirements were uncovered and while they were added to the project, the timeline was not adjusted. I marveled that in the space of about a week both motivation and productivity dropped noticeably. I felt my own attitude about the project begin to change and in asking myself why I identified a few things that motivated me and a few that did not.
What Motivates Me
- An opportunity to learn new technologies is always a motivator. Looking back, I've always been willing to put forth the extra effort and spend the extra time to stay as productive as possible while learning about new tools, languages or language features.
- Trust. When a task has been delegated to me and trust has been placed in me to get the task done, I've always risen tot he challenge. In fact, any gesture that communicates, "I believe in you and your abilities." is bound to motivate me.
- Organization. When a project is well managed and organized so that I can concentrate on what I do best (design and build software), I find I have more energy and apply myself better to the tasks at hand.
What Robs Me Of Motivation
- Repetitive tasks. Copy / paste, boiler plate code...yuck. Can't we automate this task and move on to something else??
- Micro-managing. I think of myself as a professional and I don't think its too much to ask to be treated that way. Ask me if I can perform a task. If I tell you I can perform it, let go of the task and give it to me. I'll give it back when it's completed. I promise.
- Surprises. Whether it's formal or not, there is always a plan. When I start a project, I may not know precisely what the finished product will look like and I may no be able to tell you precisely when it'll be finished but you can bet I have a plan. I need to know what constitutes a finished product and have some idea of how long the task will take. When the environment in which I'm working or the projects requirements are in a constant state of flux, it drains me of energy and motivation. Will the section of code I'm working on, right now, just be thrown away?
I'm sure you have your own similar experiences. What has motivated you, in the past?
December 6, 2007 at 2:31 PM
—
mgordon
For those of you drinking from the Microsoft developer firehose, there have been some significant releases, recently.
Microsoft Parallel Extensions
Parallel Extensions to the .NET Framework is a managed programming model for data parallelism, task parallelism, and coordination on parallel hardware unified by a common work scheduler. Parallel Extensions makes it easier for developers to write programs that scale to take advantage of parallel hardware by providing improved performance as the numbers of cores and processors increase without having to deal with many of the complexities of todayʼs concurrent programming models.
Volta
"Volta is an evolving research project focused on exploring ways to innovate data-intensive programming models. Volta is currently exploring a lean-programming inspired toolkit for building web-based and mobile applications by stretching the .NET programming model to cover the Cloud.
Entity Framework Beta 3
There were a number of changes to the Entity Framework between Beta 2 and Beta 3 that will require updates to existing source code. These breaking changes can be found here including the mitigation for adjusting to the new behavior, and a side by side comparison of Beta 2 code and Beta 3 code.
Xbox 360 Fall 2007 Dashboard Update
Um, did we mention DivX / XviD support? For free? Oh, we did. Well, we're still reeling. (Yep, we successfully tested both codecs using .divx and .avi files.)
38ec4edb-c811-43c3-94b4-8b9ca11756b2|0|.0
Posted in: General | .Net | Xbox
Tags:
December 4, 2007 at 4:38 AM
—
mgordon
In the developer space, it's astounding how fast new technologies are arriving. In order to stay current, a developer has to become digest the new tools and approaches, ty to get some hands-on with them and then possibly retain that new knowledge without being in a position to use it day-to-day. Contractors or consultants, especially, need to be able to keep their tool belts well stocked with the a wide assortment of tools, technologies and methodologies both because of not being able to predict which of them the next client may utilize and also because since the right tool always makes the job easier it makes sense to have as many as possible.
With all this in mind, when it comes time to hold a code review, upon what criteria will the code be judged? We all have our favorite approaches to designing software...our favorite code constructs, favorite tools, naming conventions. How does one prevent a code review from degenerating into a argument about which is correct? In my view, there is only one way.
Each team needs to spend the time, up front, to determine what standards the group will use. How are exceptions to be handled? Where is configuration information to be stored? What, if any, frameworks or external components are to be used? What unit tests and comments are to be created, minimally? By doing this, the code review becomes an opportunity to measure the code being reviewed against a known and agreed upon standard. This makes the review much more beneficial to the developer responsible for the code and offers a chance for the group to identify problems or omissions in their group standards and correct them.
November 14, 2007 at 8:20 AM
—
mgordon
I've been exploring some of the new language features that will be available in the coming version of .Net. I continue to see things that look like they have been borrowed from dynamic languages. Another to add to the list is automatic properties. In C#, you'll be able to define properties like this.
public string FirstName { get; set;}
This is functionally equivalent to the following:
private string _FirstName;
public string FirstName
{
get
{
return _FirstName;
}
set
{
_FirstName = value;
}
}
This will be a real timesaver for those not using a tool such as CodeRush where creating he above block of code is reduced to three keystrokes (ps<space>) and then typing in the name of the property.
Now, look at how the equivalent is accomplished in Ruby.
attr_accessor: FirstName
Instead of specifying get; and set;, you specify attr_writer for a write-only property and attr_reader for read-only.
November 5, 2007 at 4:20 AM
—
mgordon
So, The server is built and I've had some time to figure out how to get the system doing what I bought it to do. I do development at home and needed a database server and development server for builds and a source repository. So, the plan was to build the box out with a 64 bit OS and virtualize three machines on top of it. This is, in fact, what I did, but soon found that I was pegging out the CPU on the Virtual server I had created for my media server. I'm using Microsoft's virtual server and I tried tweaking the resource setting to try and get more cycles to the media machine. Unfortuanately, the settings allowed me to specify only the percentage of a single CPU to allocate to any one virtual server. On my particular hardware, I have 2 quad-core CPU's which means that the most of total CPU I could assign to the media machine was 12.5% of the total resource.
I had wanted to keep the host OS pristine and clean, but I decided to install TVersity on the host OS and try it from there. To my delight, this worked perfectly. The transcoding used between 15% and 20% of the total CPU on the machine, which was just beyond what I was able to allocate to a virtual server. I was still experiencing some stutter while watching video on the Xbox, though, and I resoned that this was due to bandwidth on my wireless G network. I went into the transcoder settings in TVersity and reduced the video resolution from 1024 x 768 to 640 x 480 and the stutter has gone away. I plan to try raising this resolution a bit at a time to see where the wall is.
e79a4f04-d1ef-4d08-8522-d06450a7a540|0|.0
Posted in: General | Xbox
Tags:
November 1, 2007 at 6:01 AM
—
mgordon
The Dell PowerEdge I ordered finally came in. I had ordered it without an OS installed and was eager to remedy that. I popped the install CD in and booted the beast up. Didn't take long for me to realize that Windows was not going to be able to see my hard drives until I loaded drivers for the controller and that I had no floppy drive through which to load them. Without belaboring the point, would it be so difficult to have the windows installer prompt you for a cd from which to load the drivers?
After a short panic, I started looking for solutions on the web. I read about several approaches where folks were booting from USB drives and executing a subst command to make it look like an A: drive. Seemed too risky, to me. Then I found a recommendation for nLiteOS which is a utility that allows you to modify the Windows install CD to include extra drivers, set up unattended installs, include hotfixes in your install and more. The posting I read said that success could be found by including my SAS driver in the Windows installer. Once it was added, the utility would generate an ISO image for me and I could burn a new CD from which to boot and do my install.
I followed the tutorials on the nLiteOS web site and was pleasantly surprised to find that Windows found my drives and I was on my way.
49ccc319-bc94-4714-a67f-7af5ebcffb19|0|.0
Posted in: General
Tags: general