Friday, April 12, 2013

My favorite .NET Tools

I have a Java friend that just asked me.  What are your favorite .NET tools?  Here they are.

Resharper. This is a must.  It makes it so easy to navigate, refactor, and run tests. 
http://www.jetbrains.com/resharper/

My favorite coverage tool:
http://www.jetbrains.com/dotcover/

My favorite profilers:
http://www.jetbrains.com/profiler/
http://www.eqatec.com/Profiler/

Incredible code translation from VB.NET to C# or C# to VB.NET
http://www.tangiblesoftwaresolutions.com/Product_Details/Instant_VB.html
http://www.tangiblesoftwaresolutions.com/Product_Details/Instant_CSharp.html

Beyond compare works great with subversion and TFS for code merging:
http://www.scootersoftware.com/

If you are using subversion, this tool is a must for Visual Studio:
http://www.visualsvn.com/

This is a great tool for creating database documentation:
http://www.dbdesc.com/

My favorite .NET regular expression editor:
http://www.ultrapico.com/Expresso.htm

My favorite Obfuscator:
http://www.deepseaobfuscator.com/

My favorite .NET Help file creator:
http://www.innovasys.com/products/dx/

My favorite Installer Creator:
http://www.installaware.com/

This is my favorite decompiler right now. 
http://ilspy.net/

My favorite training site:
http://www.pluralsight.com

If you are just getting started with .NET, this may help:
http://www.learnvisualstudio.net/

Some of my favorite quick reference sheets for .NET:
http://www.addedbytes.com/cheat-sheets/
http://refcardz.dzone.com/

Other favorites not .NET related.

My favorite notepad replacement:
http://notepad-plus-plus.org/





My favorite paint replacement.
http://download-paint-net.com/

My favorite windows explorer replacement:
http://www.gpsoft.com.au/

My favorite link checker:
http://home.snafu.de/tilman/xenulink.html

My favorite directory size tool:
http://www.jam-software.com/treesize_free/

My favorite way to run applications on my USB Flash Drive:
http://portableapps.com/

My favorite corporate wiki:
http://www.screwturn.eu/

My favorite personal wiki:
http://tiddlywiki.com/

My favorite FTP and SFTP software:
https://filezilla-project.org/

My favorite Zip Software:
http://www.7-zip.org/

My favorite PDF printer:
http://www.cutepdf.com/

My favorite ISO mounter:
http://www.slysoft.com/en/virtual-clonedrive.html

My favorite cross database editors:
http://www.razorsql.com/
http://www.sqlmaestro.com/products/anysql/maestro/

My favorite online backup:
http://www.backblaze.com/

Wednesday, December 5, 2012

Why you should work for Sogeti

During my nearly 20 years as a developer, I have worked many places.  I have been a permanent employee and also a consultant.  I have always liked consulting because it not only gives me the opportunity to stay on top of technology, but it also has the benefit of a change in scenery.  There is no perfect assignment from heaven; but with consulting you can be assured that whatever you don't like about an assignment, it will end and you will go on to something new. 

Right now, Sogeti is the best consulting company in Columbus, OH.  They have benefits that simply cannot be touched:
* Free health insurance.  It is a high deductible HSA.  If you are not sick that often, then you really make out.  The HSA is all pre-tax and it gains interest like a savings account.
* Free Vision and Dental
* 401K with 6% dollar for dollar match, plus a 5% profit sharing bonus.  Essentially if you put in 6% into your 401K you are getting 17% in.  That is just crazy awesome. 
* The 401K mutual funds to pick from are actually very good at Sogeti.  I have been at some places where the mutual fund performance is so poor, the employees put all their contributions into bonds.
* Three weeks of vacation to start plus seven paid holidays.
* Individual Bonus Program.  At other companies, I have done many technical interviews in the past, attended user groups, and trainings with not a dime coming from it.  Sogeti has a point system where activities are tracked.  Surprisingly I have only been at Sogeti since May and I am on track for getting a $2500 bonus. 
* Life Insurance equal to 2x salary
* Short Term Disability
* Long Term Disability
* Company Laptop.  It is a beefy laptop too with a Core I7 with 8GB of memory.
* $10,000 Tuition Reimbursement
* 4,000 e-courses and 20,000 e-books
* MSDN Universal Subscription (That is worth 10,000 with the Visual Studio architect that is included)

The first company that I worked for in Columbus went bankrupt around a year after I started.  There were 120 people laid off in one day.  Ever since then I am ultra sensitive about how my employer is doing financially.  In fact they call me the Canary; as in, when the Canary gets out of the coal mine, you had better get out right now.  I can't reveal any financials for Sogeti, but I can say Sogeti is growing during the recession.  They are impressively beating the financial goals they have set.  That coupled with the fact that Sogeti is all over the world gives it inherent diversification and stability.  

There are many other things that Sogeti has going for it that makes it very attractive:
* Positive culture.  Everyone has each others back from the President down to the consultant level.
* Solution projects are favored over Staff Augmentation.  Sogeti's bread and butter is Solutions work, not Staff Augmentation.  This equals more exciting opportunities and higher bill rates.  The higher bill rate translates into higher salaries compared to other consulting companies in Columbus.
* Recognition for hard work and overcoming challenges.  Frankly I have been pleasantly surprised at the positive feedback that our team has received.  I have been on great teams before at other companies and have received no feedback.

The Canary is happy.  In fact, when recruiters from other companies call me, I say "No thanks, I am going to stay with Sogeti for the next 20 years."

Contact me at greg.finzer at us.sogeti.com if you are interested in coming on board with Sogeti 

Monday, October 8, 2012

What I don't like about Windows 8

1.  The double lock screen
To me, it is just plain silly two have two lock screens, one for a pretty picture of a flower with appointments and one to type in your password.  The flower and password screens should be combined into one showing appointments, email count, and the password too.

2.  The start menu and desktop are very disjointed.  It is all very jumpy.  I have a Windows Phone 7 and I love the device.  It flows smoothly between the start menu and applications.  The start menu on Windows Phone 7 makes sense because the phone primarily a communication and socialization device.  The desktop PC is for work; managing documents, creating code, doing research, managing photos and videos.  I think Microsoft has the idea that the desktop is the same as the phone.  It is not.  Going from the new start menu to the desktop is like coming out of the dark movie theater into a bright afternoon day.  Shockingly bad.

4.  Does not work with a Microsoft Mouse. 
I have a wireless Microsoft Mouse.  While it works, it hangs up some of the time.  It works fine under Windows 7.

5.  Modifying the pointer speed in the control panel does nothing.
I have a new Dell Core I7 Laptop and the accupoint is as slow as molasses.  Windows 8 is nearly unusable.

6.  It does not remember my browser preference.
The first program that I installed was Firefox.  When I click on a link in my email it still goes to IE.

7.  There is no red X.
Microsoft has made it nearly impossible to close an application that runs from the start menu.  You have to go to the left hand side, find the application, then right click then click close.  A far cry from the single click of an X.  Bring the red X close button back.

8.  It is nearly impossible to find out how to shut down the PC
For years, Microsoft has trained us to click the Start menu to shut down.  Now they have completely lost their minds and have buried the shut down under the settings menu.  Nothing  says Shut Down like Settings.  Really?

9.  Windows 8 didn't recognize an SSD drive. 
I was shocked at this really.  My older laptop with Windows 7 was able to recognize an SSD drive.

10.  Unless you have used a previous version of Windows you are sunk.
Control Panel cannot be found unless you actually type it into the start menu.  I have been using Control Panel for years but is not actually one of the options on the new start menu.   While the Control Panel may be found on the desktop side bar, it is not intuitive.  You basically have two areas of settings.  The settings in the new start menu and the control panel settings on the desktop.  Really they should be one.  If I am running on the desktop, I want to see all the settings.

I skipped running Vista at home because of similar issues:
* Microsoft simply renamed or buried things so badly it was nearly impossible to find. 
* Hardware incompatibilities

It looks like I will be waiting for Windows 9 until these issues are fixed. 

I will write a post on the positive things later.  I will give Windows 8 one positive thing out of the gate; Windows 8, boots up much faster.  It is nearly as fast as an Amiga 2000 in boot up speed.

Saturday, October 6, 2012

Frequently Asked Questions for Windows 8

Yesterday I bought a hard drive at MicroCenter (a Seagate Momentus XT) and swapped out the hard drive in my laptop and installed Windows 8.  Here are some of the gotchas I encountered:

How do I restart in Windows 8?
Move your mouse to the upper right hand corner.  When the pop up menu appears, click settings, then click power, then click restart.

How do I shutdown in Windows 8?
Move your mouse to the upper right hand corner.  When the pop up menu appears, click settings, then click power, then click Shutdown.  By default the power button will put the computer into sleep.  To change this, go to the new start menu, type in "Power Options" and change the power button to shut down.  Then press the power button.

How do I get my desktop start bar back on Windows 8?
Don't bother with any of the reg edits on you tube, they don't work.  You will need to install a third party tool.  This is the only one that works that is not in beta:  http://classicshell.sourceforge.net/ 

How do I change the pointer or mouse speed or acceleration in Windows 8?
Believe it or not the settings in the new start menu really doesn't do much in Windows 8.  In the new start menu in Windows 8, type in Control Panel.  Click the Hardware and Sound Link and then mouse.

How do I find the programs that I have installed in Windows 8?
In the new start menu, start typing and search for your program name.

How do I switch programs in Windows 8?
The normal Alt-Tab switching is available if you have a keyboard.  Alternatively, go to the upper left hand corner with your mouse then go to the tiny tabs on the left.  Click on the program you which to switch to.

How do I close a program in Windows 8?
Go to the upper left hand corner with your mouse then go to the tiny tabs on the left. Right click on the program you wish to close and select close.

How do I get to my desktop in Windows 8?
Click the desktop icon.

How do I get back to the new start menu in Windows 8 when I am on the desktop?
Press the windows key.

If you like this FAQ please tweet and Facebook it to your friends.  If you have any more questions about Windows 8, comment to this post.

Tuesday, July 3, 2012

Why I like re-inventing the wheel

Admittedly for my business I follow the Microsoft model of taking an idea that is already out there and then improving upon it.  I can remember years ago when there were magazine ads for Word Perfect that had a picture of an open semi truck filled with boxes of Word Perfect software.  Word Perfect is a distant memory.  Microsoft came along and took that idea and made it better, Microsoft Word.  That is what I am trying to do today with my latest piece of software, Knight .NET Data Layer.

http://www.kellermansoftware.com/p-47-net-data-access-layer.aspx

I don't think developers should have to write basic database plumbing code.  Years ago, writing straight ADO.NET code was tedious.  The Microsoft Data Application Block made it a little better.  Then NHibernate came along. We used it on many projects.  Around three years ago I expressed my disgust with NHibernate.  Namely, the ugly xml mapping files, the inelegant output of the SQL, the performance of the SQL, and the overt complexity of the setup.  I remember distinctly telling Steve Harmon that I was going to write my own ORM.  He told me not to; that I should simply extend NHibernate.  Steve is a smart fellow, but I decided to write my own ORM anyway.  I received several laughs from people saying that I should call the product "Not NHibernate" 

Well years have gone by.  There is now Fluent NHibernate which does make NHibernate a little nicer.  Although I would have to say that the the convention configuration in Fluent NHibernate is about as crazy looking as creating a regular expression.  Using Fluent NHibernate also decreases the flexibility of NHibernate.  And of course Entity Framework is now on the scene.  To be honest, I would have to say that once Entity Framework came out, I thought about killing my project.  I mean the basis of my project was complete automatic mapping.  Entity Framework is close.  The only thing it does wrong is having to create the DbSet and the DbContext.  That is completely unneeded.

There are more ORMs out there than you can shake a stick at.  When I started creating the competition chart for how my ORM stacks up against all others, the list was daunting.  Clearly there are a lot of other people and companies out there that have spent thousands of hours and dollars to try to solve the ORM problem.  If NHibernate or Entity Framework are the bomb, why would they create another ORM?  Because those companies must also consider the problem to be unsolved, otherwise they would not even have tried. 

http://www.kellermansoftware.com/download/DotNetTools/Knight-Data-Access-Layer-Competition.xls

In believe that I have solved the ORM problem.  Knight .NET Data Access Layer is better than NHibernate, better than Entity Framework, better than anything out there that interacts with a database.  Here is why:

  • ORM without any mapping files, attributes, or convention configuration.  Similar to Entity Framework except no DbSet or DbContext.  Flexible that you can override default behaviors with attributes, code, or xml mapping files.  You choose.
  • Automatic mapping of straight SQL and stored procedure output to objects without any mapping files.
  • LINQ to SQL Server, LINQ to Oracle, LINQ to MySQL, LINQ to VistaDB, LINQ to Sqlite, LINQ to MS Access, and LINQ to Firebird
  • Wrapper for ADO.NET to perform standard operations such as executing sprocs.
  • Generate databases from namespaces.  
  • Synchronize namespaces to a database.
  • Generate classes from tables.
  • Standard patterns built in that we all love.  Session factory, unit of work, active record.
 Let me know what you think about Knight Data Access Layer.
  

Tuesday, December 20, 2011

How do you retain great developers?

There is a difference between an average developer and a great developer. The difference is easy to see. A great developer learns extra on the side by attending conferences, user groups, and has side projects to learn new technologies. Average developers clock out at five and don't touch the computer again until the next morning. Great developers are better than average developers because their knowledge can improve an organization's competitiveness in the marketplace and increase efficiencies for processes which reduce costs.

In my opinion here are the top three motivations of a great developer to make them stay:

1. Challenge with new technology = growth and marketability.
I met a cashier at a local grocery store. I was shocked to find out he was a former COBOL programmer. He told me he was making 25% of what he had made as a developer and that he couldn't find a job. Since then it is always in the back of my mind that I need to not only learn, but get experience in cutting edge technology or I might become a cashier at a grocery store. Everyone knows that five years from now, companies will be asking for five years experience in whatever technology just came out. If your organization or a consulting assignment is stuck with old technology and there is no plan to move to new technology, your good developers will leave. I have seen this over and over again where consultants are placed on an ancient technology assignment and they leave their consulting company. I have seen entire development departments leave because management made a decision that it was too costly to move to a newer technology. I have seen businesses go under because all of their technical knowledge went out the door.

2. Treated Fairly.
Everyone wants to be treated fairly. This can be broken down into three areas:
2a. A developer has the tools necessary to do his job. A PC that is no more than two years old and 8GB of memory, a comfortable chair, a comfortable temperature, two monitors so he can look at requirements on one, and code on the other, and Re-sharper.
2b. Performance reviews that are fair. It is not only about having a cost of living increase. Developers need to feel that they are making a difference. If your review process, is 100 metrics with "meets expectations" wording; it is flawed. The problem with a lot of metrics is that great developers will be reviewed as being average. The problem with "meets expectations" wording is the same. Managers can say things like, well I expected you to do great so you just meet expectations. Great developers will be treated unfairly as average developers.
2c. Benefits that are fair. Companies that take away benefits or salary that have been earned by developers through years of service or position in order to save money to look better to stock holders will see an arterial bleed of developers leaving. If there is comp time, it should be one to one; or more than one to one if it is a holiday.

3. Management that can be trusted.
I love John Maxwell's book on Leadership. Trust is like earning and spending pocket change. Good decisions earn trust for a manager, bad decisions spend trust for a manager. At some point the last bad decision is made, and the manager is out of pocket change. If the manager is not fired, the great developers simply leave the organization.

Are you a developer? What motivates you to stay at a company?

Monday, November 28, 2011

Ninja .NET Database Pro Version 2 Released

Ninja .NET Database Pro Version 2 has been released by Kellerman Software. New features include caching, triggers, increased performance and more.

.NET Database