Dec 22 2018

Eliminate Common Grammar Mistakes To Improve Your Writing… And Working On Proposals

Category: Blogging,MiscPhil @ 9:19 am

I have been doing a lot of writing during the past six months – maybe as a professional, as I was paid to write!  I worked on a number proposals for one of the big consulting firms. It was a very educational experience and I definitely learned a lot about the process. I’m obviously not a writer, but really enjoy the process. Writing provides two outlets for me, I get to be somewhat creative and it allows me to share my experiences. Working on proposals was not quite as much fun as blogging, but it did have a creative aspect to it… I think that I had as much fun developing graphics as I did writing! The two biggest challenges for me were time and perspective.

Time is an obvious problem. The government typically gives you very little time to turn around an RFP and everyone does whatever it takes to get the response completed. It was a very interesting process. It takes so many people to put one together, just image what it takes to put together a 40 to 100 page response document – we are talking serious work. Fortunately, no single person writes the response and the work was distributed by section to teams which provide the content. While this is a reasonable approach to get the work done, it can lead to the second problem, which is perspective. Sometimes you are asked to write a section and are given absolutely no context of how it will be integrated into the document. The better proposal managers will build an outline; this gives the writers a general idea of how their contributions will integrate into the overall document. This approach is a big help for the writers, but does not solve all of the problems.

Unfortunately, writing is very personal process and the appropriateness to the response is highly subjective. Proposals are fairly well structured. but each proposal manager has developed their own personal rules and approach to generating a good response.  As a content provider, you have to develop a thick skin and not be too offended by the reviewer’s comments; it was very typical for your work to get shredded. It was hard to put so much time and effort into a document, just to have someone say it was not exactly what they were looking for. My boss was very good about this; he knew it was much harder to create content, than it was to critique it. I quickly learned to develop my visuals and outline before getting too invested, this helped me communicate where I was heading and minimized my rework. Even with this approach, it did not prevent rewrites. The last proposal I worked on, I rewrote the technical approach section four different times, starting from scratch each time. I’m not sure any of them were actually wrong or bad, but they just did not fit into with how the ultimate proposal was to be assembled. Many times, I would write five or six pages, only to have a single page included in the final response, that was always kind of a drag! It was still fun, each proposal taught me something new, a better way to write or assemble my thoughts, new technologies and how to apply them to large scale government problems; what more could you ask for! (Actually, better time management would have been nice!)

One day my boss and I were talking, actually he was red-lining one of my documents and talking about the proper usage of which and that.  He was studying for his GMAT and there was a review of common grammar rules. Having been out of school for quite a few years and only taking the bare minimum writing and literature courses, I honestly do not remember even learning this rule!  I thought it was kind of interesting. Since I write to improve my writing ability, I thought it deserved a blog entry. Funny thing, this subject popped up in one of my RSS feeds today and included the exact rule that my boss and I talked about!

I did a quick Google on grammar mistakes…. the web is full of funny examples!  Let me be the first to say that I’m no expert and this blog is probably full of mistakes, hopefully not too many!  There are literally thousands of references on the web. The first link was the post that I found today that prompted me to write this. The second link was just kind of funny; I liked the graphics. The third link just made me laugh. The fourth one is serious business! I know that some of these points seem trivial, but how we write and speak says volumes about us as a person and some people actually pay attention to these small details!  I hope you will take a few minutes to refresh your memory on some of these rules They are really quick reads and might actually be helpful someday!

Another blog post sitting in my drafts for the last 7 years. I wrote it, I thought I should publish it!

https://www.beilers.com/wp-content/plugins/sociofluid/images/digg_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/reddit_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/dzone_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/delicious_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/blinklist_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/blogmarks_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/google_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/facebook_48.png


Dec 22 2018

So long Quicken and Microsoft for that Matter!

Category: FinancePhil @ 7:16 am

For about that last five years, I was keeping an old Windows XP laptop around just to do my checkbook. I have already documented my need to balance my checking account and maintain a budget. I don’t think think most people use a budget to manage their spending, I think most people just spend what they have and hope for the best!  Over the past year, I have worked for  four different companies and each one had a different pay schedule.  One company paid weekly, which was very nice and seemingly minimized the need for a budget; another company paid monthly, which made having a budget very important.

I have been a loyal Quicken user since the early 90s; so loyal that I upgraded just about every year! Somewhere along the way, I abandoned Quicken and moved to Microsoft Money. Money was much more polished and worked very well. Unfortunately, Microsoft observed the same trend, recognizing that people were no longer interested in personal finance software and decided to stop supporting their Money product. I continued to use Money until Microsoft disabled my online access, forcing me to move back to Quicken.

I moved into a new place last summer and for some reason my little XP laptop did not survive the move. Since that was my only Windows machine, I had a little bit of problem.. no way to run Quicken. I researched running some Windows emulators on my Ubuntu machine, but did not go down that path. Instead, I decided to look into Linux options;  more than that, I wanted something that would be cross-platform, supporting  multiple operating systems and hopefully have some mobile or tablet support. I did quite a bit of research and decided to give Moneydance a try. Moneydance met most of my criteria and had a really nice trial option; it allows you to import or download an unlimited number of  transactions. There is only one limitation using the trial version, you can only manually enter 100 transactions. Because I was able to configure Moneydance to download transactions form most of my financial institutions, I was able to use the trial version for several months before hitting the limit.

Fortunately, I have good backup process and still had access to my Quicken files.  After jumping through  some hoops, I was able to export all of my relevant accounts to QIF files which I could then import into Moneydance. I had quite a bit of data, having over twenty years of investment transaction history.  Importing the data was a pretty trivial process as I remember.

Is Moneydance perfect? Probably not. If you are a looking at this from a Linux perspective, you will be pretty happy. The software is by no means “pretty”, but it has all of the features that I need.   I’m sure that some people might not get past the basic, no frills user experience, but it is a very solid application and I have zero stability issues.  I never thought that Quicken was very cool looking, which is why I switched to Money. After switching, I think Quicken stepped up their User Interface game and made Quicken much more attractive and user friendly.  I would say that Moneydance is far from user friendly but is still usable; I’m probably able to put aside all of my normal aesthetic requirements,  as it much more important that I can run the software on my Ubuntu box.

I think Moneydance works for me because it really works well for people that work from a budget perspective. The main screen has several components that help you manage your spending, including a calendar to show your upcoming transactions and reminders,  a snapshot of your budget’s current income to expense totals, as well as the ability to track and highlight specific budget categories. The main screen provides you everything you need to monitor your monthly spending.

I does all of the mundane transaction management activities

  • Download online transactions
  • Manage investment accounts
  • Setup and maintain a budget
  • Large variety of reports.

This has been setting in my drafts for 7 years, I guess it is time to publish it. And for what it is worth, I’m still using Moneydance!

https://www.beilers.com/wp-content/plugins/sociofluid/images/digg_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/reddit_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/dzone_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/delicious_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/blinklist_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/blogmarks_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/google_48.png https://www.beilers.com/wp-content/plugins/sociofluid/images/facebook_48.png


Feb 20 2012

Self Motivation with RunKeeper

Category: MiscPhil @ 2:13 pm

I started jogging a little over 4 years ago after seeing a story on the news. The story was about the benefits of only 20 minutes of daily exercise! My metabolism had definitely slowed down as I got older, combine that with expanding responsibilities and time demands, meant less time for to stay fit. The only exercise I got was mowing the yard! So, I started jogging every morning before I went to work and it honestly made (makes) me feel a lot better; I did lose some pounds, but more importantly, it energizes me for the day.  It gives me about 25 minutes of me time, to listen to a podcast, music, or just think. It is a really good opportunity to get your day started on the right foot.

I basically run everyday on a treadmill; bad knees prevent me from running outside. So, unless I am not able to get out of bed, I am on the treadmill by 5AM.   I was running one morning last December and I smelled something burning, I thought the house was on fire! Unfortunately, the motor burned out and put a damper on my running! I figured it would be easier to fix it, rather than figuring out how to get rid of it! I had previously replaced two circuit boards in the treadmill, so I knew a guy in Michigan who dealt in treadmill parts (I found him on eBay!). He was a pretty interesting guy; he knew exactly what I needed and even through in a new belt. After a couple hours of fun and a lot of little adjustments, I had a brand new treadmill! I wish I knew how many miles I have logged on this thing; I assume that I have at least 3000+ miles on it… I know I have been through quite a few pairs of Brooks shoes!

One of my goals this year was to actually track my running.  I decided to  give RunKeeper a try. There are numerous web site / mobile application suites like this, but I had seen some good feedback on this one. The Android application is pretty basic and did what I need it to do.  The mobile applications are much more useful if you run out side; they are GPS enabled, recording your path and mileage, pretty cool! The RunKeeper website is actually pretty nice. I don’t really use it that much. You need to be an Elite member to get access to all of the interesting graphs and reports. I would actually like this information to be integrated with my blog, but have not found a WordPress plugin that does exactly what I want.  I might actually use this as an opportunity to create a small plugin that will let me manage my data the way I want! I actually have the whole thing designed in my head, it is just a matter of prioritization!

I thought that I would share my progress today, since I ran my longest distance of the year. Sometimes, if I feel the desire or need, I will actually run again when I get home from work; those are days that you see the unusually tall lines in the graph! I unfortunately broke my daily streak in January due to an illness, but have been fairly consistent ever since. It is kind of amazing, according to the treadmill’s calculations, I have burned an extra 22,000 calories this year!

My next challenge is to make it through a P90X session… I friend loaned me his DVD series to try… Sadly, my 4+ years of running has done nothing to prepare me for those workouts. I’m not very consistent with them, but will keep trying.  The problem is, I usually cannot walk the next day, they are seriously hard! Jogging is so much easier!

https://www.beilers.com/wp-content/plugins/sociofluid/images/digg_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/reddit_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/dzone_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/delicious_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blinklist_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blogmarks_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/google_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/facebook_48.png


Feb 20 2012

Inspiration and Motivation

Category: MiscPhil @ 1:02 pm

I am so far behind in my blogging, apparently, I’m the one that needs some inspiration and motivation! I recently started a new opportunity which has given me the time and energy to be more creative and productive; I just have to start putting that extra time to good use!  I shared a really good motivational video a couple of years ago; apparently is still well received as it recently showed up again in my reading list, 4 Great Motivational Videos for 2012.   I was thinking that most people have probably given up on their New Year’s Resolutions by now or might need some encouragement or inspiration, so it seemed like a perfect time to re-share these videos… better late than never!

I have watched this video several times and it touches me every time…

This video is very clever, make sure you don’t give up on it…

Enjoy!

https://www.beilers.com/wp-content/plugins/sociofluid/images/digg_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/reddit_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/dzone_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/delicious_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blinklist_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blogmarks_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/google_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/facebook_48.png


Feb 11 2012

Buffalo LinkStation Tear-down and Rebuild

Category: Ubuntu,WindowsPhil @ 10:55 am

I have been a big fan of Buffalo Technology products for some time. I purchased a couple of their NAS storage devices and use them as my primary backup solution. After working flawlessly for years, my first LinkStation died on me; it was was the original version and only had a 160GB drive.  We had a home office setup in our barn; I moved the LinkStation out there, just in case we ever had a fire in the house. The embedded print server was a nice addition, allowing us to print from anywhere in the house. Unfortunately, I think the barn was a tad bit dirtier than the LinkStation preferred. Even though the office was in a separate room, it was next to my wood shop and must have sucked in a lot of dirt and dust. As you can see from the picture below, there was a lot of black gunk on the fan intake, which ultimately caused the fan to fail. The device would still power up, but the hard drive would spin up and then quickly shutdown. Buffalo’s built in diagnostics indicated that the internal fan had failed, and unfortunately, this prevented the NAS from working at all. What a drag!  I did a little bit of research and found the suggested replacement fan on the Buffalo forums. Amazingly, they wanted about $20 for a new fan. I thought that was a little too steep; considering that can you get a 12omm case fan for under $5! I did some more Googling and found one for for $4 with free shipping; I figured why not!

Getting the box apart was a little challenging; I did the typical man thing – did no research and just grabbed a couple of screwdrivers! I did find some good instructions, after I was done with my project! There was one primary screen in the back, that basically holds the whole thing together. Once you get the case apart, it is quite easy from there. I was pretty impressed with the clean design, the main system board and an auxiliary power board, which eliminates the need for an external power block.  To replace the fan, I just snipped the three wires and spliced in my new one. Once I remembered how to put all of the pieces back together, it was a snap. Literally, the case almost snaps together; the hard drive bracket pops into the enclosure and the only screws are to hold the system board onto the hard drive bracket. There were two small screws that secure the power board, but that is it!

So, the real question is, did it it work after I put it back together?  The answer is sort of!  Actually, I think it worked fine. I could connect to it through the web interface and my son’s Windows 7 computer was able to mount the file system and save files. Unfortunately, neither my Ubuntu box or MBP was able to mount those partitions. Both computers could see the box on the network, but when I clicked on the device to access the shared file systems, they both complained that nothing was exported.  I believe these old LinkStations were supposed to support all operating systems, but I honestly have not used it for so long, I cant’ remember if it ever worked with Linux. My newer LinkStation NAS works with all of the computers, with no problems at all, so it is kind of strange!

While I was doing research on the LinkStation, I found a really cool site called NAS-Central. I know I should not be surprised, but as I was disassembling the device, it struck me that it was way more than a simple NAS device, it was a just another computer.  I really never thought about the internals, I just wanted something that I could plug an Ethernet cable into and  save some data!  NAS devices are actually pretty cool, but not really that exciting! You basically just plug them it and forget about them; they are a true network appliance. Little did I know, just like people who build custom ROMs for cellphones, they do the same thing for these NAS devices… You can easily turn your LinkStation (or other NAS device) into a real Linux server, with a wide variety of additional capabilities. I have not decided what I’m going to do with my old LinkStation yet, but if I get really bored, I might have to give of of these distributions a try!  If you ever decide to purchase a NAS device, make sure you have Buffalo a look. I have several friends and family members who purchased LinkStations, and I have yet to hear about any problems! I think Buffalo makes a pretty solid product, I’m sold!

https://www.beilers.com/wp-content/plugins/sociofluid/images/digg_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/reddit_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/dzone_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/delicious_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blinklist_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blogmarks_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/google_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/facebook_48.png


Feb 04 2012

Show your car some love….

Category: CarPhil @ 12:45 pm

My neighbor Hugh Murray has a great side business, a car detailing service.  I have never had my car detailed before, but  since I did not spend the money my parents gave me for Christmas, I said why not! ! I have no problem keeping my car clean, I wash it all the time. The thing is, I hate waxing cars. I don’t know why, I just find it a painful process and don’t remember being happy with the results.  Hugh happened to be out washing his daughter’s car a couple weeks ago, so I stopped by to find out about his business. He does the whole  detailing process, but is very flexible on what you can have done; I just wanted my car waxed!

Hugh, is a pretty cool guy; he has stopped by a couple of times when I was out working on my car.  He recommended a product to help me keep my rims clean… The rims on my car are a serious pain in the behind. They get dirty so fast; the brake dust clings to the rims and makes them look terrible. He let me try the product that he uses, Meguire’s Wheel Brightener.  The product is very easy to use, just spray it on and rinse it off.  It worked so well, I decided to buy a gallon from him; it should last me quite a while!

Hugh was able to fit me into his schedule last Saturday and I could not be happier with the results.  As you can see from the picture below, he come to you with everything that he needs. His van has a generator in the back, which he uses to power all of his tools. I was really impressed with his process, which is probably why his work looks so much better than mine! First, he starts with a Clay Bar Treatment, which removes all of the contaminates from the paint surface and provides the foundation for an awesome finish. He and his buddy used a couple of heavy duty orbital polishers to apply the wax and then used some buffers to bring out the shine. They cleaned inside the trunk and door jams, and polished all of the emblems; they even cleaned my windows, inside and out (which I also hate doing too!)   The car looks just like new, not to bad considering it is almost four years old. I would post a picture, but I don’t think they would do it justice!

Yes, I could have waxed my own car, but would have never achieved the results that Hugh delivered.  I assume that most people don’t bother waxing their cars; from the looks of a many cars on the road, I don’t think they bother washing them either! So, if you what to show your car some love and give it a nice coat of wax in preparation for Spring, I highly recommend giving Hugh a call. He is a nice guy and really enjoys what he does; what more can you ask for! Also, if you happen to have a motorcycle, his buddy has a motorcycle washing service, you might want to throw him some business too!  I really don’t think you will be disappointed!

https://www.beilers.com/wp-content/plugins/sociofluid/images/digg_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/reddit_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/dzone_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/delicious_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blinklist_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blogmarks_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/google_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/facebook_48.png


Jan 10 2012

Lost Art of Balancing Your Checkbook…

Category: Family,FinancePhil @ 12:02 am

I started to write about my move to a new personal finance software package and ended up on a completely different topic. I think this is an important subject, as I have two teenage boys and neither one of them has any money management experience. Fortunately, my oldest son started his first job last year, at the age of 16; it has been a very valuable life experience.  His first paychecks seemed to last less than a day, burning right through his pockets! To curb his spending sprees, I made him start a savings account; this was to save for college or something unplanned. After about a year, I can see that his paycheck has a little more value; it actually seems to last a little longer!  Now that he is spending more of his own money, he is starting to see the need for a little planning: gas for the car,  Subway, Slurpees, and going to the movies.

I did a Google search on the topic and it confirmed what I was thinking – people just don’t reconcile their checkbooks anymore! I think that ATM machines started the trend; with minimal personal effort and little training, we could easily see how much money was in our account – it was too easy.  On-line banking put the final nail in the coffin for  the “monthly reconciliation” process; the on-line systems are good at instantaneously showing us our financial situation.  I started using USAA this past year for just about everything, banking, credit cards, insurance, and investing; I even quit using Quicken to track my spending. Using their web interface, I could link accounts from different institutions, pay my bills, transfer funds, categorize and track my track spending habits. It is actually very well done and supports mobile devices too.  Unfortunately, on-line banks and services like Mint.com never implement the concept of reconciliation. Big deal you say, what’s the problem… it is all done by computer and computers never mistakes… right?

I liked these little quotes that I found on some forums, they truly show how technology has changed the perspective of the younger generations. I did not actually think I was that old, but apparently, I’m very old!  I actually have a budget and balance my checkbook.  Even stranger, I always enjoyed entering all of my transactions and monitoring my spending habits. Technically, I thought it was very cool, being able to pay all of my bills on-line (long before web banking enabled it) and even connecting to my financial institutions, downloading all of the cleared transactions. I tracked my  boys’ college funds and personal retirement funds; it was so fun to see all of the money I was making…  It was even more fun to watch my Fannie Mae stock plummet from $70 a share to $0.25. Needless to say, I don’t watch the market anymore!

Even with today’s technology,  you should balance your checkbook. I hope that all of the young financial planners out there, still see value in this practice. There are numerous good reasons, I just listed a few:
  • Checkbook balancing is a method of verification
  • Both banks and merchants can make mistakes
  • Overdrawn account, bounced check fees, monthly service fees
  • On-line Banking is not always real-time
  • Help you budget your money

I like to keep an eye on the transactions, I can easily make sure that I’m not double billed or paying for some unexpected transaction fee.  A topic for another post, is the value of budgeting. I bet even fewer people actually create monthly budgets. I have always maintained a personal budget, though not always been able to live within it!  Because I tracked my spending, I always knew where the money went and how big the problem was. I am back to using personal finance software; I manage and live within my budget and reconcile my accounts every month. It takes no time at all and I always know exactly where I stand. Unfortunately, I have not been able to get my son to balance his checkbook yet, but I do have all of his statements printed out and ready to go; we just never seem get to it. I now realize, this is even more important than I originally thought.. this is a fundamental life skill that I have to share with him, before he sets off on his own.

Over the past few years, a friend of mine has ranted about this problem several times; he actually wanted to teach high school kinds some basic money management skills. Amazingly, neither the public school system nor parents are teaching this fundamental skill, it should be no different from the other fundamentals: Reading, Writing, and Arithmetic. Now, you really know how old I am!  Here is good post that illustrates the point well,  Why Can’t Johnny Balance A Checkbook?

https://www.beilers.com/wp-content/plugins/sociofluid/images/digg_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/reddit_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/dzone_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/delicious_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blinklist_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blogmarks_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/google_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/facebook_48.png


Dec 29 2011

Good Bye Code Reviews, Pair Programming is the Silver Bullet….

Category: Continuous Integration,Software DevelopmentPhil @ 12:01 am
I actually wrote this post last March, but never got a chance to publish it. That pretty much sums up my year!!! I don’t think I was ever really happy with the way it flowed or the exact point I wanted to make. However, after working with some different teams this past year, I’m even more convinced that code reviews and standards should exist and be enforced. Good topic for another post!

I might have said this in a previous post, but I believe that many developers use Agile as an excuse to avoid following institutionalized processes. They prefer to make up their own extremely lightweight methodology, doing only the activities they enjoy or believe they have time for. By adopting an Agile process, many claim they can eliminate the need for analysis, design, and even code reviews! Personally, I don’t believe this was the intention of the Agile methodology. However, given the substantial number of quality gates and sign-offs that organizations institute to ensure the elimination of mistakes, it is no wonder that Agile becomes the easiest method to subvert corporate mandates and deliver software. I completely understand the theory and goal of these mandates, but it does seem that by the time they are institutionalized, the overhead of the process is more complicated than the actual business to be solved! And before anyone corrects my association of Agile and Pair-programming, I do realize that Pair-programming is a tenant of Extreme Programming, not Agile. Unfortunately, many people seem to commingle the Extreme Programming principles with Agile; XP tends to generate negative connotations in some groups, while Agile is complete accepted.

Not so recently, a coworker sent me a question, wondering if I thought that Pair-programming eliminated the need for code reviews. I have actually heard this claim by several Agile teams in the past, using pair programming as an approach to avoid the code review process. There are several reasons that developers are quick to forgo code reviews, I believe the two most prevalent reasons are:
  1. Code reviews are done as an SDLC requirement; not because the development team actually desires to conduct them or finds value in them.
  2. The vast majority of code reviews are completely ineffective; there is no preparation, no structured process, and no follow through on findings.

There is actually a lot of Internet discussion on this subject; I have included a few links at the bottom of this post which I found interesting. None of them changed my personal views, in that code reviews cannot (should not) be eliminated from the process. One point that I would concede, is that pair-programming could make the code review process easier, assuming that fewer issues will be discovered during the review.

I believe that code reviews should be a “continuous process” during the entire development cycle; whereas most people consider the code review to be a process point. Some believe that the review is something that happens at the end of development, after the code is completed, after it has been tested; typically when it too late in the process to make corrections. I feel that code reviews are a never ending cycle of four basic activities, all contributing to the overall quality of the code base.

  1. The easiest and cheapest process is through automation. There are two basic solutions, the IDE and a Continuous Integration Server. Your IDE can be one of the most effective tools. Eclipse can be configured to share coding standards and validations across the development team, eliminating numerous bad practices at their point origin. Tools such as Checkstyle, PMD, and FindBugs can easily be incorporated into your IDE. These same validations (rules) can also be utilized by your Continuous Integration server, providing the final conformance checks. Automation eliminates almost all of the soft issues from the review process and even promotes better coding practices.
  2. Pair-programming is a very valuable technique and I enjoy the collaboration and education that happens during the process. However, I’m not sure that pair-programming works on all teams, there needs to be a real sense of openness and cooperation for the pairing to be effective. And there lies the real issue, if the pair is very cohesive in their approach, you have the problem of “group think”. If everyone is thinking the same way, it will be much harder to discover issues outside of their common perspective. I believe that code reviews can be more effective when conducted by people who are not wed to the design and/or implementation; an external perspective is always valuable to the process. Another small problem is related to traceability, without the review, there are no review artifacts or documentation to support the process. Next you have the practicality of the schedule. Assuming that you can eliminate the code review process by requiring pair-programming, how do you mandate or assure that it happens? Was all of the code written together by the pair? I find it really hard to believe that 100% of the code will be written completely by the pair. Given all of the demands placed on people, with meetings, vacations, kids, etc; it would not leave many shared hours for pair to write code. It does not seem practical to mandate that no code will be written outside of the paring. So do you only review the code that was not written by the pair? Sounds complicated! All that we accomplished was removing a “learning opportunity” from everyone on the team, including the developer that wrote the code!
  3. I’m not sure that “Continuous Review” is an officially documented concept, but it is a technique that I have used successfully over the years. Continuous Review is fairly simple, but is potentially time-consuming and highly prone to apathy. The process is extremely trivial; before accepting changes from your teammates, simply review the change set in your IDE. It can be quickly accomplished using the Team View found within Eclipse. You can walk through each commit and its associated files before updating your work area. By spending this small amount of time throughout the development process (each day), you can help ensure that everyone is on the same page; even ensuring that the code is in sync with the design. You get a very good sense of the overall heath and progress of the project, just by watching the commit stream. Unfortunately, not many developers seem to adopt this role, as it takes a serious commitment and can also cause tension, when the team is not as cohesive as it should be (some developers might feel like they are being monitored).
  4. The final and most common piece of the review process is the traditional “code review”. It has been my experience that this type of review is generally the most ineffective. Even with years of published guidelines, which could actually make the process effective, they are typically tossed out due to the lack of time and management guidance. I have blogged on this subject in the past. These reviews turn out to be more of a code presentation rather than a review. This will unfortunately be the first time that many of the participants will have actually seen the code!  No time is allocated for participant preparation. Worse yet, no time is ever allocated for the correction of discovered issues. The reviews are always performed late in the development cycle or during the testing cycle, simply to satisfy an SDLC deliverable. I believe many developers have been conditioned into disrespecting code reviews, simply because they become just another meeting, which produces very little value.

I might sound like I’m against code reviews, far from it. I am against the traditional code process that focuses on developer selected code, typically presented during a meeting. I recently reviewed the Crucible tool from Atlassian. The tool is far from perfect, but is ideal for managing asynchronous, distributed code reviews. Automated tools provide a variety of methods for selecting the code to be included in the review process, such as querying by user id or change ticket number.  The selected changes are then assigned to a collection of developers and the process begins. Each developer is notified via email that they have been assigned a collection of code to review.  When convenient for the reviewer, they log into the tool and are presented the files to review. Crucible actually tracks your progress through each file, giving progress feedback to the review coordinator, indicating that progress is underway.  The developer is presented the change sets and can add comments directly into the code. Each comment can be categorized as an issue or suggestion. I think Crucible is an great tool, but provides absolutely no reporting capabilities. I have talked with Atlassian and they seem to have absolutely no interest in generating meaningful reports. Even the simplest report, which would show all of the issues found during the review is not possible to produce. I’m a huge Atlassian fan, but this lack of functionality completely boggles my brain.  In today’s evidence driven SDLC world, the documentation from the code review is actually more important the code review itself!

Obviously, I don’t think code reviews should ever be eliminated from the process. I also believe it is possible to achieve real value from them, with very little overhead. Hopefully someday, I will actually be able to prove it!

https://www.beilers.com/wp-content/plugins/sociofluid/images/digg_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/reddit_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/dzone_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/delicious_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blinklist_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blogmarks_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/google_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/facebook_48.png


Dec 28 2011

Bluetooth Rocks with Home Phone Integration!

Category: Misc,VOIPPhil @ 12:02 am

I’m not sure how many normal people take advantage of Bluetooth technology, but I’m absolutely hooked. I run two and a half miles every morning using my Motorola S9 headphones. They are great for running, I can’t recommend them enough. I’m on my second pair; they unfortunately have an unreplaceable battery and would not hold a charge after a year or so.  My car has hands-free Bluetooth, which I must say that is pretty cool!  And now, my cordless phones are Bluetooth enabled too!

After the purchase of my OBi110, I needed to buy a real phone for the house, I honestly did not have one! I had researched Bluetooth / land-line phone integration solutions several years ago, but they always seemed rather “iffy”. I could never determine how well they really worked. They were always a little pricey, so I never took the risk.  I happen to see that Panasonic  had a line of phones with what they called a “Link-to-Cell” feature.  The phone seemed to get good reviews and was pretty reasonably priced; I picked them up for $57 from Walmart!  I have purchased Panasonic phones in the past and was always happy with them. These phone seem to be well made and comfortable to hold. I have not used the answering machine feature, since Google Voice provides that function for me; but did notice the “Voice Mail” indicator works on the phone! Think about that Integration – Google Voice services tell the OBiTalk network that I have voice mail, and then OBiTalk sends the message to my OBi adapter, which ultimately lights up the indicator on my cordless phone… Pretty crazy!

The Bluetooth integration is pretty slick. You can pair two different cell phones with the unit and assign different rings to each cell phone. You can also download your cell phone’s phone-book to the handsets. The phones even include “talking caller-id”, announcing the phone number or name of the person that called. My cell phone seems to pair instantly with the base unit when I walk into the house, no fuss at all.  The call quality seems no better or worse than using my old Jawbone Bluetooth headset. I think the sound quality is actually very good and have had no problems carrying on a conversation. You can easily make outbound phone calls with your cell phone, just dial the phone number and press the cell button.

I have only had the phones for a couple of weeks, but have been very happy with them. The convenience of being able to pickup a real phone is kind of nice, plus I don’t have to worry about where laid my cell phone down!

OK, back to the more traditional blogs starting tomorrow!  I just really wanted to share how well this inexpensive combination of technology really worked, linking together your cellular service, VOIP (Google Voice), and a traditional home phone into an unbelievably simple and convenient package!

https://www.beilers.com/wp-content/plugins/sociofluid/images/digg_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/reddit_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/dzone_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/delicious_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blinklist_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blogmarks_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/google_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/facebook_48.png


Dec 27 2011

Google Voice Finally Useful…

Category: Android,VOIPPhil @ 12:01 am

Not my typical post, but I have been so impressed with my new toy(s), that I just had to blog about them! Over the years, I have tried every way possible to avoid paying Verizon for my phone service, there is nothing worse than paying for a home line, plus multiple cell phone lines! Yes, I have tried VOIP services in the past with limited success. I used ViaTalk for a couple of years and really liked their service; I unfortunately did not have access to real broadband, so their service was not really that great. VOIP services can definitely be cheaper than traditional copper land-lines, but still seem expensive for what you get; even Vonage is about $30 a month. Apparently, I don’t put a reasonable value on having home phone service!

Enter Google Voice. I have been a Google Voice user for a long time, even before Google purchased and rebranded it as Voice. I never achieved any great value from their service, but the integration with my Android phones was extremely nice. I mainly use it for the transcription of my voice mails. For the last year, I have used GV as my primary home phone, making most of my calls from the computer, using the Google Voice/Talk combination and a USB headset. This works pretty well, but sometime I miss talking on a real phone!

A couple of months ago, I happened to read about a free VOIP service, using an inexpensive hardware device from a company called Obihai. Their ObiTalk service provides both SIP-based VoIP and Google Voice integration.  ObiTalk provides a great amount of flexibility, including a Softphone solution, as well as applications for both iOS and Android based mobile devices.  To be honest, I really did not care about any of their advanced features, I just wanted the Google Voice integration.  I would have purchased the OBI100, but it was out of stock; so I ordered the OBI110.  Somehow, I happen to catch a deal, and picked it up for $45 from Amazon.

As you would hope, the OBi device takes no time at all to get working after you unbox it.  The first step is to create a ObiTalk account and register your device. The process is trivial, you just need to connect the device to your router and plug-in your phone. Next, click the add device button and follow the on-screen directions.  Simply dial the magic number provided by the site and your device will be connected to your account. I only encountered one surprise, the device unexpectedly rebooted a couple of times.  This behavior was actually expected, as the device has the ability to update itself from the central server. After a couple of auto-reboots, the device as been rock solid.

I have been using the service for about a month now and it has worked amazingly well. I’m not currently a fan of Google Voice’s call quality using my cell phone; I always blamed it on my Verizon service! Most of my calls seem to have a lot of strange echoes and delays, which you would assumed to be a GV server problem, not a Verizon issue.   However, the Google Voice call quality using the ObiTalk device is exceptional; I don’t think you would have any clue that the call was using a VOIP service.  The phone works as you would expect; you just pick it up and listen to that traditional dial tone, just like it always has been! I was also able to keep my Verizon phone number; the process to port  a land-line to Google is a little painful, but easily accomplished.  Because Google cannot port a land line, I had to first convert it to a wireless number, setting up a month-to-month contract. Once it was converted, Google quickly ported it over to their service, for a small $20 fee.

So, what is the downside? Today, nothing. Tomorrow, who knows! The future is the biggest concern; we have all seen numerous technologies quickly come and go over the years.  Google has not actually been very attentive to their GV user base, as enhancements to their service have been non-existent for years. Fortunately, the service continues to roll along and fundamentally works well enough for what it costs. The bigger question is how will Obihai survive?  Where do they get their funding to keep the ObiTalk service running? I’m sure they make a little money on their devices, but it hardly seems enough to fund the company in the long-term.  They provide exceptional service and a quality integration with Google, surely they will have to start charging for their service at some point. I could justify a nominal monthly fee, but if it is too steep, it would be easier to just give the money back to Verizon and user their VOIP package. Ideally, if Google has any long-term vision for Voice, they should seriously consider buying Obihai. It would give Google another open platform that would allow other SIP provides to integrate into their GV network.  It would also create a more economical and conventional solution for the typical, non-technical consumer to take advantage of VOIP technology and further expand the adoption and usage of the Voice product. I just hope that Voice does not end up like other recent Google technology victims…

One last point, Obihai does not seem to be slowing down. They are planning to release a new version of their hardware, the OBi 202. You can actually find quite a bit of information on that site related to Google Voice and the OBi services. You will have to read my next blog to find out what my other toy is!

https://www.beilers.com/wp-content/plugins/sociofluid/images/digg_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/reddit_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/dzone_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/delicious_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blinklist_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/blogmarks_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/google_48.png
https://www.beilers.com/wp-content/plugins/sociofluid/images/facebook_48.png


Next Page »