How to reduce your Comcast bill

Being in the technology field, I tend to want to have the latest and greatest of what's available.  For example, I have to have a high speed internet connection, latest cell phone with unlimited data plan, satellite TV with a great picture and lots of channels, etc.  All these bills add up and I knew I had to start cost-cutting somewhere. Eliminate your Home Phone bill When I came across this article, I was hooked on trying to reduce my Comcast bill.  It started with getting rid of Comcast Triple Play containing VOIP. How to switch to VOIP and ditch your home phone bill forever Since I have a high speed internet connection with Comcast, this was a no-brainer.  It’s a little bit of a pain to get setup.   But I have not had any issues with it and it’s been almost 2 years since first implemented. I also installed google voice on my cell phone.  It’s really nice being able to get voice messages anywhere I am.  I can also redirect my house calls to my cell if I want.  Love it … [Read more...]

Common Practices for Software Projects

  Three typical classifications for common kinds of software projects along with their best practices. Business Systems Common Application Types: Internet and intranet sites, payroll systems, games Life-cycle models: Agile development (XP - Extreme Programming, Scrum, time box development, etc) Evolutionary prototyping.  In Evolutionary prototyping, development evolves over time as we better understand the requirements and build only those parts of the system that are well understood. Planning, management and requirements: Incremental project planning Informal change control and requirements specification Design, construction and deployment: Design and coding are combined Informal or no check-in procedure Informal deployment procedure Testing and QA: Developers test their own code Little or no testing by a separate group   Mission-Critical Systems Common Application Types: Embedded and packaged software, internet sites, web … [Read more...]

LINQ: Left Join

A left join is when each item in the first collection is returned regardless of whether it has any related items in the second collection. For instance, say you want to find out how many orders were made for each product in your store.  You also want to see the products that did not have any orders so that you could decide whether to discontinue those items.  You can achieve this by a left outer join on products to order details using the ProductID key.   Query Syntax var list = from prod in Products join od in OrderDetails on prod.ProductID equals od.ProductID into orderDetailList from odl in orderDetailList.DefaultIfEmpty() select new { id = prod.ProductID, name=prod.ProductName, quantity=odl.Quantity ?? 0 };   Lambda Expression var orders = Products .GroupJoin(OrderDetails, p => p.ProductID, d => d.ProductID, (p, od) => new {p, … [Read more...]

WordPress blog – initial setup

Setting up a blog using WordPress has been a relatively easy thing to do.  These are a few additional steps that I took after the installation. Installed Theme Although WordPress comes with some nice default themes, I wanted more control of the customization for my blog.  I researched a few recommended theme sites by John @ Elegant Themes ThemeForest Genesis Framework by Studio Press I purchased the Metric theme along with the Genesis framework, from Studio Press.  I went with this because I worked with the Genesis framework on a previous consulting project, therefore, I was able get my site up and running quickly. Installed Plugins These are the plugins that I installed. Akismet anti-spam service Jetpack Akismet is a service that runs through the comments on your blog and determines whether it's spam.  You have to set it up with an API key as it's required for this service.  The API key is free for personal blogs. Jetpack.  I installed … [Read more...]

What is circular dependency and why is it bad?

Circular dependency is when two pieces of code each depend on each other.  Circular dependency is usually considered a sign of bad design. We typically develop software by: Dividing our code into components (i.e piece of code by class, namespace, assemblies). Making sure that there are no dependency cycles between our components. Below is a standard 3-tier Layered Architecture.  As a rule, each layer should only depend on the ones beneath it. Circular dependency happens when higher layers depend on lower layers and lower layers depend on higher layers. Why circular dependencies should be avoided: It causes tight coupling between layers. Code with cross-dependencies will be harder to understand and maintain than with a clean, layered structure. They are difficult to unit test because they cannot be tested in isolation from one another. .Net projects cannot have circular references as it is impossible to build only one of them without the other.  Even … [Read more...]