Friday, March 12, 2010

How to Remove a Workplace or Local Path with TFS

Posted by Scott on 2. March 2010 12:16

I had an error in Team Foundation server saying something like one of my folders were already mapped to this local path from another server.  So I looked around and couldn't find a fix for it on the internet.  I had to figure this one out my self so I thought I would share my findings.

In order to remove this mapping from TFS because maybe you deleted the folder on your desktop a long time ago.  You need to go to File -> Source Control -> Manage Workplaces. 

From there you have the option to remove any mappings you wish in TFS.  Just thought I would throw that out there.  Took a while for me to find it and thought I should share it.

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

Will the First Hacker in The Room Please Turn the Lights Back On?

Posted by Scott on 16. March 2009 05:53

Before I go into detail I must define a few things:

Hacker - is a person who heavily modifies the software or hardware of their computer system. It includes building, rebuilding, modifying and creating software (software cracking, demo scene) and electronic hardware (hardware hacking, modding) either to make it better, faster, give added features or to make it do something it was never intended to do. Hobby hacking originated around the MITS Altair.

Computer Hobbyist - A person who tinkered with computers and built new hardware, operating systems and even word processors.

What ever happened to the Computer Hobbyist?

Computer Hobbyists are still around, but they are now called Hackers. In the 60's, 70's, 80's and even in the 90's there a group of people who lived on IRC and bulletin boards.  Apple was started by them and they had an anti-IBM sentiment.  Years later most of the "old school" computer hobbyist gave up their pursuits and they complained about the big companies and big business revolution that has taken over.  The hobby was getting too expensive to keep tinkering with computers.  Things were changing every 18 months or so and that was just too rapid for most.  This was in the period of about 1985 through 1992 when you needed to buy another desktop computer every 18 months.  Most hobbyist bailed out during that time just because it was too expensive.  The reason they havn't returned to the scene was that programming was turning into a nightmare.  It would now take a full time commitment and most programming languages needed schooling as well.  So they left the scene back around 1992.  Sad time, but times; they are changing. Programming is getting easier.  Code is getting easier to write and now hackers are making modifications to hardware.  Instead of creating it, they are now modding it.

 

Hackers have now taken up the slack as the computer hobbyists have fallen off.  Its the changing of the guard.  Computer Hobbyist seemed to have turn out the lights in the room and now the lights are back on and in full swing. PC Magazine has fallen off the shelves.  They should be reinventing them selves for the new hacker sub culture thats coming into play. Hackers these days can be found deep in their cave working on the next software modification.  They work on software and on hardware.  They are thriving and making up for lost time.  These days, hackers are known to create new startups.  These start ups will be the Apple of tomorrow. Apple was once started as a hobby and now there are many companies forming around software and hardware innovation.  Hackers are now the innovators of software and hardware.  Look them up.  A large portion of them can be found on a site like Hacker News.


Photo by Yodel Anecdotal

So if your wondering where the last computer hobbyist went.  You don't have to look very far.  They are the new guard and will hopefully make the old Computer Hobbyists proud.

Posted in response to Will the last Computer Hobbyist Please turn out the lights?

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

Interview with Scott Pio on Programming

Posted by Scott on 13. March 2009 05:30

I was interviewed a while back for a paper about software engineers from Stephen.  He gave me several questions and I tried to answer them to the best of by abilities at that time.

1. What do you enjoy about your job?

My job is a little different than most Programming jobs, because I do it for the government.  I work on a special specific project that contribute to national security and even international security.  The fact that as a government contractor you have to take a large amount of security measures to make sure your software doesn’t break in front of the customer during mission capable times is something to be stressed over.  Most software these days can have several hundreds of “known” bugs, but when your a government contractor, you need to make sure your software is vetted with no “known” bugs or problems.  Testing in this environment can be large while writing the actual software it self can be small.  The problem has to be thought through before one line of code is written.  There is a famous quote that goes “80% mental, 20% execution” and programming is no different.  You don’t want to have to rewrite your code so a lot of mental thought has to go into it.

On a side note, my almost favorite thing to do is experiment.  Most programmers are required to push out a certain amount of code a week.  I don’t have any restrictions and have the ability to experiment a lot.

2. What characteristics make a great programmer?

Characteristics and values are two different and two of the same thing.  A man named Ben Rady said it best in terms of values:

Programmers value:

  • Working software
  • Clean Code
  • Rich Communication – I think he meant here that you must be able to tak back and forth with another programmer.
  • Flexibility over efficiency
  • Sustainable Pace – Don’t over pace your self
  • Simplicity – Code needs to be as simple and as fast as possible.

I take those values to heart.  As a programmer you must have those in order to work in the field.  You don’t have to be ethical, but you need to start with those values.


Photo by Joi

As for characteristics:

I would base it off a list generated by Steve Riley, (he made the list and I will explain it a bit more.) 

  1. Be a great problem solver – If you think about it, software is solving most problems today in the world.  In either making life just plain easier or just solving a paper process.  Someone has thought about all these problems when they first started and most software made today just makes those problems just easier and faster.  This is a number one for me.  You must be good problem solver.
  2. Being Lazy and driven at the same time – When you are lazy, you want the fastest and easiest possible solutions.  When you are driven, you will get the job done no matter what.  If you combine the two, a programmer who is lazy and driven will both find the fastest and easiest possible solution and make sure he gets it done.
  3. Ability to understand other peoples code – A simple fact is, as a programmer you will be going over other peoples code in either examples you find or old code that has done the project your now upgrading.  To give you the best example of this.  Microsoft Excel 2003 and 2007 have completely different code bases.  The code is completely different.  The programmers need to read the old Excel code and generate their new code.  A simple but not very well known fact is that Microsoft programmers took Excels old code, Commented it OUT entirely and rewrote the code.  The commented out code is STILL in the 2007 source code because they always want to see how the programmers in the past did it.
  4. Have a passion for programming – Its going to be your life long job, I would hope you have a passion for it.
  5. Love learning for the sake of learning – If you don’t learn, you will NOT succeed in the programming world today.  Code, Frameworks and new languages come out every two years or so.  The programming art is still very young.  The community is still very young and in its infancy.  Its still growing up.  You have to realize this and keep up with the community.  It is a requirement.  You have to enjoy to keep learning.
  6. Being good at math – Now I don’t know the stats of how many programmers actually deal with real math, but I think its probably dwindling a bit.  A professor out of MIT said “A good Programmer has been programming for 2 years.  A Great programmer has been programming for 6 years OR has been programming for two years and has taken some algorithm classes.”  That quote explains it all.  Its about how high you want to go on the totem poll.
  7. Having good communication skills – You have to clearly express your thoughts to other people.  They don’t have to be socially inept, just make sure they can give a little straight talk.
  8. Extreme Optimism – It goes right along with problem solving.  You have to believe you can do it or you will never be able to get it done.  There are big problems at my company that I experience on a daily basis.  You have to make sure you believe you can get it done.

3.    In detail, what do you do in a typical day?

I can’t truly explain in detail, but for the few few minutes of my day, I look over any email that has been sent.  My email is somewhat the first notification if my software has failed.  So I see if any problems happened over night. I then catch up on any reading that is needed.  I don’t surf the internet, but I must spend a few hours a day researching and learning.  Due to programming being my full time job, I do require that I catch up on the recent news and try to learn something each day.  I don’t pick up a book, but I actually read a bunch of articles and code demos online till about 11am.  I have subscribed to about 50 or so blogs that I go through each day.  I can justify it by not having to pick up a programming book each day at work.  Instead I get the free stuff out on the internet. I would suggest every programmer do the same thing.  Its another reason why the IT book market is crashing terribly.  Everything is being learned now these days from demos and tutorials online.  There is no need for a book really these days.  At about 11 am after getting into work by 8am, I start to get into the mode of programming. I work on code for the rest of the day.  I think Microsoft expects their programmers to write about 200 lines of code a day.  I think I touch this and sometimes surpass it.  I code in ASP.NET and C#.  So does Microsoft.  These days, It is a known fact that Microsoft uses 98% C# and no C++ anymore.  C++ is starting to mellow out.  I go home at 6pm each day after a full days work and taking a few 5-10 minute breaks in between. I then start programming on my startup projects at home.

4.    Where does one look for programming careers?

Just throw your resume up on Career Builder and job listing sites.  If you have at least a years experience, its not hard to get a job these days. Even though the economy sucks, Technical recruiters are still seeing a double digit growth in recruiting for IT related jobs.  By the time recruiters salvage through career builder, you could probably get a few calls a month for programmers in your area.  Its still very easy to find a job as a programmer.  Look for job boards.  Most big bloggers these days have job boards.  They are a great place to start.  I must say, that if you can code and are in college or highschool still, don’t think about getting a job.  Think about creating a startup business.  Create a website and make a bit of money off of it.  Venture capitalists are looking to seed money into startups more than ever these days because of the economy.

5.    If you could go back in time to your first day on the job, what advice would you give yourself?

Don’t fret, everything will happen in time. You will learn all you need to learn and you got the job.  Now all you have to do is keep it.

6.    What are some downsides to being a programmer?

I get bored super easy at work.  There is no challenge for me.  Its all meaningless.  Its almost like getting to do busy work assigned by your teacher.  They just give It to you for you to stay busy.  Programming can be like that sometimes…

7.    What is the best thing about being a programmer and why?

This is an easy one.  If you have a big imagination, its super easy to create anything you want a computer to do.  Its one of the most gratifying things in this world.  It’s the same reason why bridge builders love to build bridges or why architects love to design.  When they see there work done and in use, its absolutely a thrill.  The programmer though has the ability to make software faster and cheap.  Bridges still need many people and could cost millions.  Software doesn’t need many.  Its very easy for a programmer to get started and have an application working and in use two months down the road.  It’s a thrill to build something and see it working.

8.    Tell me something about your self?

I got expelled out of high school for hacking.  I was the first in my high school to be caught for hacking.  It was a first for them.  When I went back the next year, I was not allowed to touch a computer at all, unless supervised.  I was surprised I got my security clearance with that on my record.  I was still underage, but at the age I got hired and the investigator to go back ten years, they could have seen that on my record.

9.    How did you acquire your job?

You know, this is an interesting topic.  My college had plenty of those college board jobs.  The job boards you get straight out of college.  Well I had a bit of technical knowledge already after working a bit in a good environment at my work study position on campus.  I went to career builder and for the next 5 weeks every weekend, I would apply for up to 75 jobs each week. After that, I got a few calls and then I nailed one.  As good as that.  The pay was low, but all I wanted was the experience to start off with and now I get calls from Microsoft that I turn down just because I don’t want to move.

By the way, for your paper, My name is Scott Pio, my domain is www.spoiledtechie.com and www.scottpio.com.  If you need more bio about me, go to spoiledtechie.com and click on the about tab.

Scott Pio


If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

The NEW ASP.NET Chart Controls (with Screen shots!)

Posted by Scott on 5. December 2008 13:53

I must say that I was a bit skeptical about what Microsoft could offer compared to Dundes Charts when they brought out their new charting controls at PDC 2008.  I was not able to attend, but I had to just go take a look at the control and I must say after seeing the sample gallery, I was BLOWN away!  I have included all screenshots that came with the sample website so that you can also see what's going on with this control. I was utterly impressed and you will be too.

I would like to ask for two more types of charts to be added.  

The Speedometer - I would like to see a speedometer type chart added.  This chart will have a radial type chart that has measurements set by the user.  Kind of like a Miles Per Hour setting.  The long stick inside of the speedometer will be calibrated by how much data there is.  Also, there should be allowance for an infinite amount of sticks to be added to one speedometer.  The Sticks should be able to change color depending on how high each item is pacing.  So to put it in terms of a car, I have a car which has 1 speedometer and it has 4 sticks inside the speedometer.  It allows me to set the MPH rating inside and each stick is for each tire spinning on the car.  The stick turns red if the stick is over a certain predefined mark. So what about it?  This chart would probably fall under the Circular charts.

The Unknown Chart Name - This chart is a bit harder to explain and can only be expressed visually, but here it goes. First off it would be radial/Circular.  It will have a status for a separate entity of a system.  When the system states all items are clear, it will show bubbles in an all green, formatted in a triangle form.  When very little of the operations are working, it will show a much small triangle formed red blimp.  I made a crude drawing of what I am talking about below.  Each entity is attached to a triangle inside the circle. When all is well, the circle should be completely green.  When the status is below level, they should start to turn red.  This allows you to look over the status of a system very fast and efficiently.  Each bubble and each triangle should allow for a drill down to see what's going on.

The next question is where can I suggest more charts? Anyone got an answer? 

All of these charts are TOO beautiful.  I want to tell Microsoft and Dundes they did a GREAT job!  Each chart allows for ToolTips, DrillDowns, Hover Over Texts and much more.

To Download: Charts are Here

Dundes Charts V.S. Microsoft .NET Charts

  Area Charts
2D100StackedArea  2DArea 2DSplineArea  2DStackedArea  3DArea  3DSplineArea

Bar Column Charts
2DBar
  2DColumn  3D100StackedBar  3DBar  3DColumn  3DStackedBar

 Circular Charts
2DPolar  2DPolarMarker  2DRadarArea  2DRadarMarker  3DPolar  3DRadarArea

 Combination Charts
ColumnArea  LineArea  Pareto  StockArea

 Financial Charts
Bollinger1  Bollinger2  CandleStick  Forecasting  PriceIndicators  Stock

Line Charts
2DFastLine  2DLine  2DLineMarkers  2DSpline  2DStepLine  3DSpline

Pie Donut Charts
2DBeltPieChart  3DPieLegend  3DStepPie  2DDoughnut2  2DDoughnut  2DPieInsideLabels  2DPieOutsideLabels  2DSupplementalPie  3DDoughnut  3DPie2  3DPie3  3DPie  3DPieInPie

Point Charts
3DBubble  FastPoint  2DBubble  2DPoint  2DPointCustom  2DPointLabels  2DPointShapes

 Price Range Charts
2DKagi  2DPointFigure  2DRenko  2DThreeLine  3DThreeLine

Pyramid Charts
2DPyramid  3DFunnel  3DFunnelGap  3DFunnelWidth  3DPyramid  3DPyramidGap

Range Charts
2DRange  2DRangeBar  2DRangeColumn  2DSplineRange  3DRange  3DSplineRange

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

Why get bored, when you could be coding!

Posted by Scott on 23. November 2008 20:01

There are many times in life when you have nothing to do.  As a member of the civilized world, we as a people are becoming bored every day. We are a world that watches more movies everyday.  I bet if the movie industry came out, we would see the statistics of movie goers have increased over the last 20 years.  We are a world that technology has allowed to do many things that have taken us hours or even days to do before.  Our world is speeding up and everyone wants more.  They want to get done faster, finish things better and move on to the next project.  People get bored easily these days because production levels have gone through the roof with the help of technology which allows us to become lazier.  Life in it self is full of its bored moments.  People in general have less and less to do because technology has sped up our daily tasks.  I think that is one reason why more and more movies are being watched.  People want more out of life and movies give you that little action and adventure that your looking for. Movies give you the ability to stop boredom.  To some people, movies are a way of life. 

My life is no different, technology has made my life so much easier than people that have come before me.  My solution of boredom?  People need to find a hobby.  They need to find something that will keep their attention.  If they don't they will inevitably become a YouTuber.

YouTuber -A person that watches excessive amounts of YouTube to pass the time.  Not only applied to YouTube, but a person that does an excessive amount of anything to which they do just to pass the time.  This isn't a hobby, but a time waster.  

People that watch and enjoy YouTube to me are either doing it because that is their hobby or they are doing it to pass the time.  I personally code as my hobby or down time.  I not only do it as a hobby, but to make my life and everyone else's life a bit easier and a bit better.  I am like every other programmer or hacker the does it. I chip away at making life better.  I don't think I will ever be as rich as Bill Gates, but I hope to have helped as many people in my life as he has.  This is where coding/hacking comes in. When I get bored I code; when I want to do something, I code.  Due to technology, I get to do a lot of my hobby. 

If this is your first time reading, then you wouldn't know that I usually try to have around 2-4 projects going on at once.  My projects are all for making life a bit easier for me and everyone that has access to a computer and internet.  I have about 15 ideas that could be implemented currently and boredom brings my code to life.  Like I said before, I don't get bored, I code.  Right now I am even sitting with friends and watching some football.  I can keep a conversation, watch football and blog all at once.  When I get bored, I code (so I am not coding, but being productive).  

The point I was trying to get across: Stop being bored, be productive.  Find a hobby, find something.  Carpe Diem (Seize the day).  Learn something, do something and retain it. When I get bored, I code.  Life is not about being bored.  Life is about doing something.  Its about achieving something better than your self.  My something better right now in my life is coding and my great girlfriend. 

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

How to Convince your Customers they need a CMS

Posted by Scott on 20. November 2008 19:21

Currently, I am dealing with one of my current clients.  They control a multi-national non-profit organization.  In the past they have used basic html to do the work for them in the web side of things.  They came to me through a person I knew and asked me to do very minor things for their web site. I agreed and started working with them.  There last request was to accept payment through the website and I told them to look at PayPal.  I thought it was the best bang for their buck.  Banks can charge an arm and a leg to manually enter things in while PayPal does it just fine. Most of the time, PayPal is much cheaper than what banks charge too. So I built them a PayPal system straight from Rick Strahls site. The next thing they started asking was a bunch of questions as in what can I do next, what can they do next and what can be done to improve apon this? Now they aren't very big, with a membership only in the thousands and much of the money is spent through the year.  So I decided to write them an email explaining what could be done with this organizations site. I decided to post it to show others why there is a need to have a Content Management System and hope it helps any other programmer trying to convince their customer to buy into a CMS.

I would like to title it "How to Convince you Customers they need a CMS"

Here is the deal.  I decided to go with the cheapest hosting possible when I purchased the space for $60.00 because of your budget.  It is another server hosted by GoDaddy.  Since its PayPal we are talking about. You are not required to have another server from another Service Provider to use PayPal, but for me to work using my programming languages ASP.NET, C# and SQL I needed another type of server other than what the company you were using had to offer.  Basically, since you wanted my work I needed to use GoDaddy (which is the cheapest hosting so far). PayPal doesn't have  restrictions as to what it uses as a server, but the application I build for you and the programming I do for you does have the restriction.  The $60.00 will be an annual expense once a year on or around the same date of this past week.

The way I look at it is that we are in the very early stages of development on what is formally known as a Content Management System(CMS). The best place to loosely define it would be Wikipedia at http://en.wikipedia.org/wiki/Content_management_system. If we look at your organization at the base level.  We can see the organization requires most if not all of the following:

Required:

  • A membership database.
  • An event calendar and scheduling feature for the calendar.
  • A money management system.
  • A payment system. 

Extra/Additional:

  • A place to hold all your images and review them in a photo gallery.
  • A place to hold all your official documents.
  • A place to publicly display all your public information (Website).
  • A place to download any and all forms or documents relating to events and organizations.
  • A place to write and read all the news of your organization.
  • A place to create newsletters that can be emailed out to all your members once completed.
  • A blog for your organization.
  • A place to email all your members on a regular basis.
  • A place to host a forum which would allow all your members to communicate and chat amongst each other.
Above and Beyond:
  • Because your organization has several other organizations below it in a tiered approach, you could also host webpages for those different organizations.  It could have something like a main page for each and every member in your organization or team.  This can be seen for example in another online application such as facebook.com or linkedin.com.  This of course is above and beyond, but it is available.
Overall it would be a place to store all your information and data about your organization.  It would not only be a time capsule, but an evolving time capsule.  The software will belong to you.  If I disappear with no word, you will be able to higher another person with my same skill set that could help you develop more.  As for having the ability to update the application/webpages I create for you online would be difficult for a person in your shoes.  What do I mean by that?

ASP.NET and C# is not regular HTML that you might be used to.  It is an entirely new platform for developing web applications.  When I say new, I must say that’s it has been around for about nine years and is owned by Microsoft, so I do not see it going anywhere soon.

You will get all this with the $60.00 a year hosting through GoDaddy and along with my working costs.  You can achieve this with your other hosting company, but it would not be through me.  I am sorry to say, but I do believe the other languages that are used to develop applications like this could not compare with what could be built with ASP.NET and C#.

I hope that clears things up for you.

P.S. As an organization, I must imagine you do have a membership management system in place along with some sort of news letter system.  Both those systems could/would cease to exist once I built this for you.

Side note: All this information is completely dynamic. Once I build a “component” for your application, it will then pull data dynamically from the database.  This means that you can have an extensively large amount of information on a webpage without very many things to develop or need a programmer for.

I hope this all makes sense.
If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

What Gives? Microsofts Code Generation Tool

Posted by Scott on 17. November 2008 21:48

In a world of Microsoft and third party applications, out comes t4.  t4 is a code generation tool that can compete with CodeSmith, but its FREE and built right into Visual Studio. It has been years since the first edition with very little publication of the actual application. t4 is a free code generation engine from Microsoft that underpins the Domain Specific Languages and Software Factory toolkits.  t4 is a rich code generation and has the ability to stand up against and compete with CodeSmith.  I have used both Codesmith and MyGeneration a lot in the past few years, so I have seen the competition.  What is nice about this old/non publicized tool is that it is built directly into Visual Studio 2008.

t4 is being spear headed into the open source market for free templates by Oleg Sych.  It brings a long a toolbox which can also be download with extra templates along with a GREAT T4 Editor which of course is also free.  There is not more need to spend money on CodeSmith, when Microsoft will do it right out of the box with Visual Studio.

Some have speculated, why hasn't Microsoft published this tool to a greater extent.  We can only think that it has to do with being a Gold Partner.  Microsoft doesn't like to lose Gold Partners and therefore hasn't truly publicized this tool.  The next question you have to ask your self is what can be generated?

  • Site Maps.
  • Database schemas.
  • Session Variables. 
  • Store Procedures.
  • Text Documents.

As of October 2008, t4 Editor has been officially placed as a plug in to Visual Studio 2010, which will boost the ability to generate t4 code through other means besides CodeSmith.

Demos and Other information can be found below.

Point of concern: If your company currently uses CodeSmith, wouldn't it be nice to tell your boss what you found could save the company a few hundred dollars by using something that is already built into Visual Studio? So why not give it a try and save a little money doing it?

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

Get Drunk and Code

Posted by Scott on 4. November 2008 22:34

Have you ever reached the pinnacle of the programmers peak when working on a piece of code while drunk?  Have you ever thought: now that's a brilliant piece of code, what the hell did I do last night?  From time to time, all programmers will eventually experience the peak.  Its called the "Ballmer Peak". Its the moment that your a few beers in with the Blood Alcohol level of .13%-.14% where you just start to write the magical code.

Last night I was writing some good code for customers on one of my pet projects.  It involved web services and a bit of Javascript.  I was working great until I was a few beers in, when I was truly able to focus anymore.  I was talking to one of my fellow peers today at work, and he explained it was the "Ballmer Peak".  I guess there is a theory for everything.

Its the theory that computer programmers can obtain a superhuman coding ability with the blood alcohol level between .129% and .138%.  It was discovered with Steve Ballmer and coined at the web comic XKCDThe theory came about referencing Steve Ballmer and his crazy acting pretty much what looks like a drunk when ever he is on stage.  The theory though is more than what meets the eye.  It might actually be somewhat correct in assumption.  Have you ever had those nights where you just hacking away at code while having a few beers and you wrote brilliantly?  Only to wake up the next morning not able to compile the code you wrote!  I have been there many a times and put this theory to the test.

 

 

Point of concern that throws this whole theory out the window is that Steve Ballmer never wrote any production code while at Microsoft.  He has a background in business and is known for being able to solve difficult math calculations mentally, but not code.

This is one of those theories I don't mind trying over and over again.  Someone needs to take the initiative and insert it into Wikipedia.

Programmer's Paradox, which is the lag in creativity behind skill on the inebriation scale.

 

kick it on DotNetKicks.com

If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

What class of programmer are you?

Posted by Scott on 27. October 2008 14:29

"People can be divided into two classes: those who go ahead and do something, and those who sit still and inquire." - Oliver Wendell Holmes

What kind of programmer are you? In today's world of programming, the average programmer does not sit on the bleeding edge nor do they sit on the back burner waiting for the coils to get hot enough to jump ship.  You have to change and evolve.  You have to keep moving forward.

Programmers generally move forward to a new product every few years, but also sit complacent when they don't feel threatened.  Like one of the Militaries favorite quotes, "If it ain't broken, don't fix it." The military is a reactionary force along with the average programmer.  The programmer that moves ahead in the world is not the average programmer.  They are a programmer who moves forward, who thrives for the best.  Who sees a problem and fixes it.  They do not wait for the problem to come about and then go about fixing it.  They are ahead of the crowd, the first kind of programmers are your Bill Gates, Steve Wozniaks, Scott Guthries, Paul Allens, Steve Capps, Justin Frankels and Jarkko Oikarinens. The first type of programmer wants to innovate, move around and make things that help humanity.  These are the programmers I look up to.  As of recently these types of programmers have gone into hiding at Microsoft, but not Google or Apple.  Why is it that most of Microsoft's programmers (Microsoft employees) fit into the second class of people.  These days, Google is the innovator.  Google's employees fit into the first class of people.  They are now the company to beat in the programming world.  They are the ones that everyone else is trying to play catch up with. Microsoft has lost a lot of its innovative programmers and they have moved to Google or decided to venture into their own startups.

If Microsoft wants to compete in Google's world, it has to accomplish a few great things. The first thing to do would see how Google works.  See what they do to make great software.  If Microsoft fails at this, they will not be a company in the next twenty years. Microsoft has to go back to the basics.

"Competition always creates an environment for innovation."

Microsoft tried to compete with Google over two years ago today.  They started a service that could have created such a competitive environment, but they fell complacent. Therefore they fit in the second class of programmer. 

What was this service? Live Labs. Google has launched over 30 innovative products from their labs, so why has Microsoft launched only six in the passed two years?  Microsoft has become complacent. This post is not to slam Microsoft on their shortcomings.  It gives you a difference between what the first class of programmer looks like compared to the second class.  Microsoft is neck deep in the second class of programmers with only a few truly innovating, while Google is up to its knees in the second class of programmers.

I would like to hope since your reading this, that you are not falling complacent.  That you have an innovative environment around you.  That you are pushing the thresh hold of your very fabric. I hope that you are not like Live Labs, but actually like Google Labs. Always creating, always innovating. The average programmer sticks with Live Labs, but the first class programmer is Google Labs. Be Google Labs. Become better than you are.

Microsoft launches its Google Labs - Here is an article from January 06 that had hopes of Live Labs competing with Google Labs.  Microsoft wonders why people are flocking towards Google.

"The country needs and, unless I mistake its temper, the country demands bold, persistent experimentation. It is common sense to take a method and try it. If it fails, admit it frankly and try another. But above all, try something." - Franklin D. Roosevelt - 1932

Don't just stand there.  Go ahead and do something! The world is waiting for you to experiment. Be the first class of programmer!

kick it on DotNetKicks.com


If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark

Whats up with Stored Procedures these days?

Posted by Scott on 20. October 2008 16:22

When life throws you hard balls, you can either step back and take a swing or bunt the hell out of it.  I just recently went to an information session on T-SQL, Stored Procedures and now LINQ.  These folks discussed stored procedures and why they are so important in the world today.

 

They stated ideas such as:

  1. Stored Procedures optimize queries.
  2. They stop SQL Injection attacks.
  3. Stored procedures are concrete and cannot be changed.
 
I wanted to briefly state a counter argument against stored procedures and for T-SQL and LINQ:
 
  1. Stored procedures do not optimize queries.
    • A SP is not an optimized query, it does not save time.  SP’s used to save time and have been faster in the past, but more and more RAD development has been done without SP’s.  The development has caught up with SP’s and dynamic SQL has now caught up  and in some cases surpassed SP’s.  These days parameterized queries are now cached just like SP’swhich put them on an even playing field.
    • Microsoft LINQ and ADO teams both admit that SP’s are not faster than dynamic SQL.
    • Benchmarks have also been completed which explicitly show SP's are slower over small queries and tie dynamic queries over larger ones.
  2. Stored procedures do stop injection attacks, but you can also do it with parameterized queries. 
    • SP’s are good at this, but it can also be done with parameters.  Putting a value into a parameter means that it will not be a part SQL query string at all.
  3. Stored procedures are very concrete and are hard to change as a developer with a DBA.  This is the problem.
    • As a developer when you push a product out the door, you want to be fast at this.  Developers don’t want to learn two languages in order for their product to be pushed out the door and then go back to the database every time code needs to be changed.  They want dynamic abilities.  When SP’s are hard to change, it might be a bit harder and take longer when you have a DBA.  The inability for SP’s to be changed or created fast is the issue with this kind of development.
  4. SP’s mangle the three tier architecture designed for apps.
    • Instead of having a structure which separates logic from storage, you have storage and logic on the same tier.  This will cause potential problems down the road.
  5. Business logic in a SP does not scale.  Business logic should be in code and not in the storage center.
    • When you have multiple database servers, it is more difficult to keep the triggers and SP’s synced.
  6. There is no Version Control for SP’s.
    • In a place that can be disastrous if you screw up, it should have something.  This is one big reason why people like to avoid SP’s like the plague.  They run away and never move back into town.
 
If you see the new technologies coming out of Microsoft now, there will be no need for SP’s in the future.  LINQ is taking care of most of this by allowing for a data layer cheaply and efficiently with very little effort by the developer. LINQ handles all these problems and if you truly like a confirmation on all the things I said, just search the internet for Stored Procedures v.s. Dynamic SQL.
 
The debate these days has two sides. Not “Republican or Democrat”, but “Progressive and Non-Progressive”.  The Progressive folks are not using Stored Procedures these days.
 
kick it on DotNetKicks.com
If you liked this post, please be sure to subscribe to my RSS Feed.

Share/Save/Bookmark