Thursday, December 11, 2008

ASP.NET Chart Control, A First Look

ASPNETChartMSASPNET Several of my colleagues referred me to Scott Gu's blog entry on ASP.NET Chart Component for the .NET Framework 3.5.  I had time to take a first look tonight.  I downloaded the component, the Visual Studio 2008 tool support and the sample project.  Each package installed easily.  I copied the sample project into the IIS directory on Vista and after encountering several error messages, I set the directory to be an application.  The first look is very impressive.  I've purchased packages from Infragistics and DotNetCharting over the last four years and this free component easily meets or beats quality and quantity of charting options offered by those packages. 

Read Scott Gu's blog entry
Download ASP.NET 3.5 SP1
Download the Control
Download VS2008 Tool Support
Download the sample project

Tuesday, December 9, 2008

Reducing the size of a SQL transaction log

I used Microsoft SQL Server quite a bit and have been stuck numerous times on an ever growing transaction log.  After much pounding on the server this evening I once again found the magic commands.  The commands are executed in Query Analyzer or Management Studio after a full backup of the database.

   1:  BACKUP LOG <database_name> WITH TRUNCATE_ONLY
   2:  DBCC SHRINKFILE(<logical file name>,0)

With a command line backup:

   1:  BACKUP DATABASE <database_name> TO "<path to backup location>"
   2:  BACKUP TRAN <database_name> TO "path to backup location>"
   3:  DBCC SHRINKFILE 0, TRUNCATEONLY
   4:  BACKUP LOG <database_name> WITH TRUNCATE_ONLY
   5:  DBCC SHRINKFILE('<logical file name>',0)

You can get the actual database name and logical file names by examining the contents of the sysfiles table:

   1:  SELECT * FROM SYSFILES

Tuesday, December 2, 2008

Microsoft ArcReady

ArcReady I attended Microsoft ArcReady today in Cincinnati OH.  Although typically technical, the presentation today was focused on soft skills for software architects.  I was a fantastic presentation and reinforced a lot of career development concepts that I have learned over the years.  Highlights from the event are below:

The first presenter was Brian H. Prince, Architect Evangelist for Microsoft Blog

  • Mentors -- pick something you want to grow in and assemble mentors
    • Write down a mentor list and keep track of strategy
    • Mentors don't have to know they are your mentor
    • Discard mentorships as needed
  • "You are in charge of your career, your company is in charge of your job" -- @dmarsh
  • Be introspective
    • Review your job annually and mentally sign-up for another year
    • Check to see if you job is still aligned with your career objectives
    • Clearly define your career objectives
    • Pick something you want to be known as
  • Invest in your career: school, playing, reading, blogging, code camps
  • Book Recommendation: Who Says Elephants Can't Dance? by Lou Gerstner
  • Three steps to higher a Power Team -- not rock stars, but power team members
    • Passion
    • Learning
    • Problem Solving
  • Everything else you know today will be worthless in two years
  • Book Recommendation: Rules for Revolutionaries by Guy Kawasaki
  • Just like body building, work out different muscles (skills) each day.
  • Creativity
    • You need to practice it to strengthen it.
    • Design a system, throw out the design, do it again differently two more times to boost creativity
    • Mix it up; read a book you normally wouldn't
    • Read a book a week
  • Book Recommendation: The Elephant and the Dragon: The Rise of India and China and What it Means to All of Us by Robyn Meredith
  • Book Recommendation: Guns, Gems and Steel: The Fates of Human Societies by Jared M. Diamond
  • Tips for client interaction
    • Say "I don't know"
    • Be an active listener
    • Don't have distractions
    • Ask smart questions
    • Don't multitask in your head
    • Ask open-minded questions, not yes/no questions
    • Take notes even if to just map the conversation
    • Use metaphors or analogies to communicate
    • Don't use bad language
    • Follow through (review action items and send a follow-up email)
    • Over communicate until they bleed
    • No agenda, no attenda
    • Be prepared
    • Preception is reality
  • Objections: Feel.  Felt.  Found.
    • "I understand how you feel.  Others have felt the same way.  Others have found..."
    • Make finding a solution to the problem something we are going to work on together.
  • Don't be a plumber.  Write code that only you can write to add value to the business.
  • Do more of what works and less of what doesn't
  • Focus on helping the end-user kick a$$.
  • Architecture/Career/Life is about balance.
  • The effort is the effort and is not negotiable.  Don't merely reduce a quote, but de-scope or get more money.
  • Project manager's job is about communication. 
  • Project fail because of failed expectations or communications not because of technology.
  • Teams should play together.
  • Always hold the door.
  • Never burn a bridge behind you.  "You can't burn your way to excellence."

The second speaker was Michael Wood, SDS.  Blog.  He spoke onOrganizational Dynamics.

  • Four areas: Responsbility, Authority, Power, Influence.
  • Economics in one line:  Profit = Revenue - Cost
  • "I need to add value to the business"
  • Director: "I need to get the right people on the right projects"
  • Manager: "I need to make sure everyone is happy."  Authority but no power.
  • Architects: Influence and responsbility, but little Power and Authority.
  • Co-worker: "I want to work on cool technology with people that carry their weight."
  • Yor agenda: "I need to choose technologies with a future."
  • Focus on adding business value and project success not necessarily efficiency.
  • Agile: plotted backlog of items that can add business value fast.
  • Survival Tips:
    • Dress + 1, one level better than the audience.  First impressions matter.
    • Plug into companies information pipeline
    • Learn the art of small talk
    • Be prepared to have the hard conversations.
    • Learn to read the room.
    • Seek out a mentor.
    • Don't be a lemming -- think critically.
    • Evangelize
    • Learn the art of public speaking -- Toastmasters
    • Build a network of like minded people
    • Build coalitions -- move on individuals agendas and company agenda
    • Decisions should not be made but announcedat meetings.
    • Keep an eye on the sharks
    • Learn the right way to gripe. Not 30 minutes of griping, but 5 minutes of griping and 25 minutes of suggesting solutions.
  • Political tools
    1. Compromise (win-win)
    2. Arbitration (independent third part)
    3. Escalation
    • Arguing hurts the business value
    • Accept decisions and move on
    • There is always a different point of view
    • Always maintain your composure.  It ruins you credibility if you don't.
    • Know your boundaries and limitations (constraints)
  • Be a leader.  Get things done.  Be a Mentor.  Add business value.
  • Architects are the bridge between business and technology.
  • Book Recommendation: Systems Thinking, Second Edition: Managing Chaos and Complexity: A Platform for Designing Business Architecture by Jamshid Gharajedaghi
  • Book Recommendation: What the CEO Wants You to Know : How Your Company Really Works by Ram Charan
  • Book Recommendation: CIO Wisdom: Best Practices from Silicon Valley by Dean Lane

Freshbooks

FreshBooks I launched an effort earlier this year to take accounting for my consultancy to completely paperless.  Although I wouldn't say it is perfectly paperless now, I would say that I'm very close, say 98%.  The bulk of the heavy lifting is done with Freshbooks.  It is a fantastic SaaS online tool that lets me keep my finger on the accounting from any where that has an Internet connection.  May favorite features include automated billing with tried and true "set it and forget it" functionality.  They also interface with my payment gateway, PayPal, and Amazon Payments as well as allowing me to receive paper checks (remember that 2% remaining) and process them manually.  Recurring invoices can be automatically emailed or postal mailed monthly.  Estimates can be created, emailed to the client, accepted by the client online for tracking and converted to an invoice.  Reporting is extensive enough to for accounts receiveable enterprise-wide or per client.  I highly recommend Freshbooks for paperless, automated, efficiently accounts receivable accounting.  Click the logo to sign-up.