It’s Our Code

Background I’m sure what I’m about to talk about here doesn’t just relate to programming–it relates to any team-based project where everyone works on a small portion of the big picture. My experiences are primarily geared toward writing code in teams, so try to find parallels in your own work/experiences if you’re not a programmer. Anyway, enough of that. When someone puts a lot of effort into something, they’ll often take great pride in the finished product. Of course, it’s great that they do! They’ve slaved away at something at work for days, weeks, or months, and it’s finally working/implemented. Other people are using it and it’s doing its job as expected. Awesome! What kinds of things could possibly go sour here? If you have experience working in teams to complete a project, you might have some ideas. Ownership You…

1 Comment

Cookie Cutters For Projects

Background When you're starting work on a new project or organizing a team to accomplish a goal, there's often a foundation that needs to be established: How is your team structured? What software should we use to help us? How do we set goals? How do we measure our progress ... the list goes on. It's a common challenge that's met by anyone organizing a team or setting off to work on something. So do you copy what worked for someone else by using a cookie cutter approach, or do you wing it and see what happens? My approach when faced with two extremes is usually to aim somewhere in the middle.   Cookie Cutters Being a copy-cat and using cookie cutters has some benefits. If something worked for some all-star teams at big successful companies, then why re-invent the…

0 Comments

Listen First: The Human Sounding Board

Background In the company I work at, Magnet Forensics, I've gotten myself into a leadership role. I wasn't hired for this position (I'm a programmer at heart) but I've managed to stumble my way into it! As a young leader, I think one thing is really obvious for me in my daily leadership tasks: I don't have all of the answers. Hell, I don't even have a lot of the answers! So what keeps me from being entirely useless as a leader then? I know who has the answers. My team. The most important leadership lesson that I've learned (and I'm glad I learned it early) is to listen. The benefits to listening, and I mean actually listening, can be beneficial to the person asking as well as yourself as the leader. How Can Listening Help Me? Let's be honest…

1 Comment

Simple Way To Structure Threads For Control

BackgroundI've previously discussed the differences between the BackgroundWorker and Thread classes, but I figured it would be useful to touch on some code. I'd like to share the pattern I commonly use when creating threads in C# and discuss some of the highlights.The Single ThreadI like to use this design when I have a single thread I need to run and in the context of my object responsible for running the thread, I do mean having a single thread. Of course, you could have your object in control of multiple threads as long as you repeat this design pattern for each of them.Here's the interface that I'll be using for all of the examples: internal interface IThreadRunner { #region Exposed Members void Start(); void Stop(); #endregion }Behold! internal class SingleThreadRunner : IThreadRunner { #region Fields private readonly object _threadLock; private…

0 Comments

Git + Google Code + Windows

Just a quick one here because I'm hoping it will benefit a person or two. I'd like to start by stating I've always been a Windows user. I don't like using Macs and I don't like using *nix. Why? It's just my preference, and I'll leave it at that (I don't have an emotional attachment to Microsoft or anything, I'm just well versed with Windows). Anyway... I was recently trying to get a Google Code page setup for one of the postings I wrote. However, being a Windows user made things pretty difficult. Here's how I solved my problem: Install GitExtensions (I already had this installed, because I use this for everything) Created my google code account and created my project. Changed my google code account permissions to allow my GMail credentials when pushing. You can do that here. Navigate…

0 Comments

Thread vs BackgroundWorker

Background There are two classes available in the .NET framework that sometimes have some confusion around them: The Thread and the BackgroundWorker. They're both used to do some heavy lifting for you on a separate thread of execution (so you can keep on keepin' on), so why do we have two different things to accomplish the same end result   Enter The Thread Class The Thread class is available in the System.Threading namespace. Surprising, right? It's the basic unit for spawning off work to be done. Threads let you provide them with a name, which could be one advantage to using them. A thread can either operate as "background" which means it will be killed when the application exists, or not as background, which will actually keep the application alive until the thread is killed off. An instance of the…

0 Comments

How and Why to Avoid Excessive Nesting

Background This probably sounds really nit-picky or OCD, but I think it's an issue worth addressing. Excessive nesting of logic within code can make things nightmarish to read. Even a few of years ago I never thought anything of this. I mean, how much could it really affect someone reading it? He/she must be a complete newb to not be able to read my logic. Fast forward to a co-op placement where this was more closely moderated by my managers, and I began to pay more attention to it... Why? Alright, so all that you know so far about my opinion on this is that excessive nesting bothers me. So far, my mission is accomplished. Everything else is just extra. The first issue with excessive nesting is that it actually makes logic hard to follow. If you're doing code reviews…

0 Comments

End of content

No more pages to load