Feb 3 2022

Comparing Framework Trends

From time to time I need to compare one programming language against another, or see the popularity between multiple frameworks. When comparing between programming topics, I use Google Trends and Stack Overflow Insights to see overall trends.

In a related post, I covered the 2021 Developer Trends across multiple sources and surveys.


Feb 4 2020

Software Development Checklist

During the summer, our team usually hires an intern. We find that the interns we hire are more than capable with the technical requirements but usually need some help on process. In order to help new team members adapt our process we’ve developed a number of useful checklists of some best practices. Here are some useful checklist to go through when working on new features.

Ticket Checklist

  • Add clear and concise title and description
  • Add reproducible steps
    • Use realistic sample data
  • Add specific acceptance criteria
  • Add related tickets

Code Checklist

  • Create your own feature branch
  • Check code into your branch often
  • Merge from master often
  • Run test suites on your own branch
  • Add and update test cases
  • And and update wiki documentation
  • Add comments to ticket

New Project Checklist

  • Source
    • Git Repository
    • Dependency Management
      • Maven
    • readme.md
  • Wiki documentation
    • Design Diagram
    • API Documentation
    • Common Configuration
    • AWS Permissions
    • Technical Specifications
      • Ports
      • Hardware
    • Sample log output
    • Sample Splunk queries
  • Splunk friendly logs
    • Splunk Dashboards
    • Splunk Alerts
  • Test Cases
    • JUnit
  • Release Management
    • Bamboo Plan
    • Ansible Playbook
    • Package
      • Docker Image
      • RPM Package

Mar 2 2016

The Setup

Here is a short list of the tools, applications, and services I use most often.

  • MacBook Pro 15″ 2014
    • OS X Yosemite
    • Terminal
    • Photos
  • Chrome
    • JSONView
    • Postman 3.0
  • Parallels Desktop 10
    • Ubuntu Desktop 14.04
      • Inkscape 0.48
      • Gimp 2.8
      • MonoDevelop 4.0
    • Windows 7
  • Google Docs
  • Amazon Web Services
  • Atlassian
    • Jira
    • Confluence
    • HipChat
  • Brackets 1.4
  • Atom 1.0
  • TextWrangler 5.0
  • Komodo Edit 9.2.1
  • Eclipse Luna 4.4
  • SourceTree 2.0
  • GitHub Desktop
  • SQL Developer 4.0
  • MySQL Workbench 6.3

Jun 4 2012

JavaScript Debugging With The console Object

In the early days of JavaScript there were few options for debugging large web applications. You could have used the multiple alert notifications or possibly even calling document.write to write messages into the document. Firebug changed web developers lives, and I think how we view JavaScript, by making it incredibly easy to debug HTML, CSS, and JavaScript. Since Firebug, most current versions of web browsers include powerful debugging tools. In addition to the debugging tools browsers have made available a JavaScript console object to help write debug statements. With console, there is no need to pop up alerts to inspect the state of an object. To write a log message intended for the console, just write the following JavaScript statement in the right place.

console.log("This is a log message");
console.log("Message one", "Message two", "Message three");

To open the console, you can find it in Safari by looking for the the Web Inspector, in Chrome it’s called Developer Tools, and in Firefox you’ll find it under the Tools menu as Web Console.

The console object has a lot of useful debugging messages for errors with different severity, such as log, debug, info, warn, and error.

console.info("I'm here.");
console.warn("Do I smell smoke?");
console.error("The roof, the roof, the roof is on fire.");

In addition to logging String messages, you can log whole JavaScript objects. It may be useful to inspect a complete object and it’s state. To write out the state of an object to the console use the dir method as in the following example.

console.dir({fname:"Bill", lname:"Gates"});
console.dir(document.getElementById('SomeElementId'));

In Chrome and Safari, you can also use dirxml to display the a HTML element object in the console as HTML. In my version of Firefox, this method did not work.

console.dirxml(document.getElementById('SomeElementId'));

You can also group related log messages, no matter their severity. To group console messages surround them with a group and groupEnd. You can even nest groups inside of groups.

console.group("Server update");
console.log("calling server...");
// ... any number of console log messages.
console.groupEnd();

You can also test the performance of your JavaScript code with time and timeEnd. Both of these methods accept a String label and it needs it needs to be the same value for both methods.

console.time("Process Data");
// ... some time consuming code
console.timeEnd("Process Data");

When the timeEnd method is executed it will generate a message in the log console with the amount of time it took to run the code between the time and timeEnd method.

Chrome Developer Tools Web Console

Chrome Developer Tools Web Console


Jun 30 2011

Microsoft BizSpark

In the era of Apple fanboys and opinionated Ruby on Rails developers, it might not be cool to use Microsoft tools and products. It seems that startup will tend to use Ruby over .NET, Google Docs instead of Microsoft Office, OS X or Ubuntu in lieu of Windows. I’ve never been dogmatic about the technology I use. I’m a pragmatic programmer and the fact of the matter is that a large number of computer users still rely on Microsoft products. In the financial industry, Excel spreadsheets are traded like baseball cards. Microsoft realizes that they are not the cool kids in the block, at least amongst Silicon Valley startups, and perhaps that is why the started the Microsoft BizSpark program.

I’ve been one to always chase my customers and users, not trends and fads. That is why, I’ve been a huge fan of Microsoft DreamSpark and Microsoft BizSpark. Microsoft BizSpark is a program that allows small startups have access to many of its products, frameworks, tools, and resources for free.

Microsoft BizSpark Software Download

Microsoft BizSpark Software Download

Through BizSpark you can get access to applications such as Visual Studio 2010 Ultimate, Office for Mac 2011, Microsoft Windows 3.1 through Windows Vista, and much more for free. There is no need for your CTO to look for serial numbers for Windows Server 2008 on Google and warez sites. BizSpark gives you legit licenses to key Microsoft products.

I’m a huge fan of any company that supports startups and software developers in general. I can’t say enough nice things about Microsoft BizSpark, even if they paid me. And not, they didn’t pay me but I am a proud member. I only wish that the Microsoft BizSpark program also included hardware.


Apr 14 2011

Keep is Short and Simple

No one has time to read long rambling text. One of the great things about Twitter is that it has a 140 character limit, it forces people to be concise, precise, to the point. It is so much easier to follow someone twitter than someones blog. This is also true for corporate communication. Within a team, the best way to ask short question is through instant messages such as Skype. The one draw back to instant messaging systems is that people expect instant responses. But for quick yes or no questions this is the best approach. More detailed questions can be escalated to email. But always be short and precise in emails. Always stay on point when emailing someone. If you are making multiple points separate them to their own bullets or paragraphs. Don’t intermix different ideas in the same paragraph. Always outline and simplify key points to one line bullet points. When asking for something, be clear as to what you are requesting or asking and always outline what you have tried, research, or done prior to asking.

Effective communication is a skill. There are tools, habits, and best practices that can help maximize the results of your team communication efforts. One of my most effective tool in communicating is to keep to the Three Sentences practice. One way to successfully achieve reply within three sentences is to never answer the same question twice, to refer to existing documentation, wiki sites, and other resources.