Coding Blocks Podcast

Talking about the short book "How to be a Programmer", which covers a huge spectrum of important topics for developers of all levels.

Direct download: coding-blocks-episode-038.mp3
Category:programming -- posted at: 12:36am EDT

Our Favorite Developer Tools for 2015

We wrapped up 2015 with another favorites of 2015.  This go around it's the tools that we feel are invaluable as developers.  This can be anything from hardware, to software or a service that we feel is integral in our daily needs as programmers.  

If you're on mobile, you can visit the show notes page for this episode by going here:
Episode 37 Show Notes

[yop_poll id="12"]

News and Random Discussions

Are static methods a cod / code smell?

Maybe we should go full on OO and use Microtypes?
http://www.michael-snell.com/2015/03/microtyping-in-java-revisited.html

Win the other pre-worn, gently broken in, gray T-Shirt!  Just leave a comment on this episode!

Nicholas wrote back in Ep. 21 - how is the renaming with ReSharper different than the refactoring option in Visual Studio?
http://www.codingblocks.net/podcast/episode-21-our-favorite-tools/#comment-1987021142

Our Favorite Tools

Individual Picks

Number 5 - Last but not least:
Allen: Simple Mind
Description: Mind mapping tool for getting your ideas out in a somewhat organized state.

Main Site: http://www.simpleapps.eu/simplemind/
Android (free): https://play.google.com/store/apps/details?id=com.modelmakertools.simplemindfree
Android (paid): https://play.google.com/store/apps/details?id=com.modelmakertools.simplemindpro
Apple iOS (free): https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=305727658&mt=8
Apple iOS (paid): https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=378174507&mt=8

Michael:  UBlock Origin
Description: An ad-blocking plugin for various browsers that allows your web experience to be much faster and less intrusive by ad-agencies.

Main Site: https://www.ublock.org/
Chrome Plugin: https://chrome.google.com/webstore/detail/ublock-origin/cjpalhdlnbpafiamejdnhcphjbkeiagm?hl=en
Mozilla Plugin: https://addons.mozilla.org/en-us/firefox/addon/ublock-origin/
Apple iOS: https://itunes.apple.com/us/app/purify-blocker-fast-clutter/id1030156203?ls=1&mt=8

Joe: Gliphy
Description: Workflow diagrams, wireframes, mockups, etc., all online.  Integrates with Atlassian products extremely nicely for wikis, Jira tickets, etc.
Main Site: https://www.gliffy.com/

#4
Allen: Codecademy
Description: Learn how to code for FREE - Interactively!  HTML, CSS, Javascript, Ruby, Python, PHP and more.  Go there...now...

Main Site: https://www.codecademy.com/

Michael: .NET Fiddle
Description: Site that allows you to write your .NET code online in a web browser, similar to JSFiddle, execute and share your code

Main Site: https://dotnetfiddle.net/

Joe: Office 365
Description: There are several subscription options so you'd definitely want to make sure you're picking the one that's right for you.  For personal (one person) use, the cost is (currently either $69.99/year or $6.99/month and you get access to Microsoft Word, Excel, PowerPoint, OneNote, Outlook, Publisher and Access on PC / Mac plus one phone and a tablet.  For family use, you'd probably want to go with the "Home" plan as you get all the same perks as the "Personal" plan times 5 for just $9.99/month or $99.99/year.  So that means you get to install Office on up to 5 PCs or Macs, five tablets, and five phones.  And you also get 1TB of storage per user, for a total of 5TB of cloud storage.

Office 365 Personal (individual user): https://products.office.com/en-us/office-365-personal
Office 365 Home (for 5 users): https://products.office.com/en-us/office-365-home

#3
Allen: Netgear R7000 AC1900
Description: Rock solid, great performing wireless router.

Product Link: http://www.amazon.com/gp/product/B00F0DD0I6/?tag=codingblocks-20

Michael: Hours Tracker
Description: Especially useful for freelancers or consultants, this application allows you to track your hours worked with a ton of features: geofencing, tagging, switching projects, multiple rates, multiple clients.

Main Site: http://www.hourstrackerapp.com/
Apple iOS: https://itunes.apple.com/us/app/hourstracker-time-tracking/id336456412?mt=8&ign-mpt=uo%3D4
Android: https://play.google.com/store/apps/details?id=com.cribasoft.HoursTrackerFree.Android&hl=en

Joe: JQuery Injector
Description: Chrome plugin that allows you to interact programmatically with a web page - basically friendly hacking to achieve things that maybe weren't meant to be achieved.

Main Site: https://chrome.google.com/webstore/detail/jquery-injector/indebdooekgjhkncmgbkeopjebofdoid

#2
Allen: Snagit
Description: For both Mac and PC, this is an excellent utility for taking and marking up your screenshots with some easy to use tools and you can even record your screen which can be saved off in standard video formats that are easily shared.  NOTE: You cannot edit the videos as with a ScreenFlow or a Camtasia, but it's great for quick little recordings for how-to's or to demonstrate problems.

Main Site: https://www.techsmith.com/snagit.html

Michael: Briggs & Riley Verb Backpack
Description: Excellent laptop bag especially for those who travel a lot for their work.  It holds up remarkably well, comes with a Lifetime warranty and is attractive to boot.  This bag has a ton of features that are made to help expedite your trip through airports.

Product Link: http://www.amazon.com/Briggs-Riley-Advance-Backpack-Black/dp/B016JQUYMM/ref=sr_1_3?ie=UTF8&qid=1451846799&sr=8-3&keywords=briggs+and+riley+verb&tag=codingblocks-20
More Information: http://www.briggs-riley.com/shop/collections/verb/advance-backpack-1

Joe: FitBit
Description: Turn your fitness into a bit of a game to help you stay active.  If you've not heard of this company, you're probably living in a box, but Joe definitely stands behind this product as something that motivates him to get his daily activity in.

Product Link: http://www.amazon.com/Fitbit-Wireless-Activity-Sleep-Tracker/dp/B0095PZHPE/ref=sr_1_8?ie=UTF8&qid=1451847290&sr=8-8&keywords=fitbit&tag=codingblocks-20

#1 - Our top individual picks
Allen: MeteorJS
Description: An isomorphic approach to applications.  It's a full stack javascript application framework - write your Server, Client and Middleware in Javascript.  It's so quick and easy to get up and running that it's really not fair to compare it to any other "frameworks" out there.  It's done incredibly well.

Main Site: https://www.meteor.com/

Michael: WebStorm by JetBrains
Description: Web development IDE that has evolved incredibly well with the latest JavaScript frameworks.  It supports many of the latest frameworks, it's cross platform (PC, Mac and Linux), has a ton of useful development features and is relatively speedy.  Also, they've updated their buying options so it starts at $60/year for individuals and is well worth the price of entry.

Product Link: https://www.jetbrains.com/webstorm/

Joe: Spotify
Description: One of the many streaming music services around, but arguably one of the best.  They have a HUGE selection of music.  If you're a subscriber you get access to their higher bit-rate streams for the audiophiles at heart.  As a developer, is there anything more necessary than some tunes to help you tune out everything around you and make some killer progress on your task at hand?

Main Site: https://www.spotify.com/

Group Picks

Number 5: Gulp
Description: A Javascript tool made to enhance and automate your workflow.  Works by piping output to other tasks and is configured by writing simple code pipelines.  Not only that, but there is a rather large library of tasks written for Gulp that can allow you to do most of what you could possibly want.

Main Site: http://gulpjs.com/
Plugin Site: http://gulpjs.com/plugins/

Number 4: NUnit
Description: A unit testing framework for all .NET languages.  Originally a port from JUnit, but has since been rewritten specifically for the .NET framework.  Why we picked this over MSTest - simply put: parameterized tests.

Main Site: http://www.nunit.org/

Number 3: JSFiddle
Description: Similar to Michael's pick for dotnetfiddle, JSFiddle provides you a place online where you can write some Javascript in the browser and share that code with a URL that's created for you.  This is an excellent way to share examples or help others out with working examples of Javascript code.  One of the downsides of JSFiddle is the lack of ability to create multiple files which means it's difficult to show structure along with code samples.

Main Site: https://jsfiddle.net/

Number 2: The Book - Design Patterns: Elements of Reusable Object-Oriented Software 
Description: Still in its first printing, the book includes 23 of the classic design patterns with context as to what the uses are as well as clear code examples.

Product Link: http://www.codingblocks.net/get/gang-of-four-book

Our Consensus Top Pick: Slack
Description: Productivity enhancing as well as time wasting service, Slack is a means of communicating with teams of folks quickly and easily.  Not only is it a great chat platform, it has a ton of useful (and fun) plugins for enhancing your work environment.  An example would be the Visual Studio Online plugin where you can see when a particular branch of code has been updated.  

Main Site: https://slack.com

OUR Slack Channel!  https://codingblocks.slack.com/

Come Join in on the conversation!

Resources We Like

Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software
Product Link: http://amzn.to/1JtdMzR

Tips for this Episode

Allen: ProgrammableWeb.com - Well known public API's for developers
http://www.programmableweb.com/apis/directory

Michael: Find your mouse - for those with too much monitor real estate!
Mac El Capitan - Just shake your mouse around and it shows up nice and big!
PC Windows - Go into your mouse properties in the control panel, and select "Show location of pointer when pressing the control key" - doing this will allow you to locate your mouse by clicking the control key and a ring will radiate from the mouse pointer.

ApexSQL Refactor - format your SQL within Management Studio for SQL Server
http://www.apexsql.com/sql_tools_refactor.aspx

Use the FORCESEEK Luke - Index hint for SQL Server Queries
https://technet.microsoft.com/en-us/library/bb510478(v=sql.105).aspx

Use the Index Luke - SQL Tips and Tricks
http://use-the-index-luke.com/

Joe: Indigo Studio by Infragistics - Rapid prototyping tool - Wireframing on steroids!
http://www.infragistics.com/products/indigo-studio

Has support for different resolutions so you can see how your app behaves.Also has really nice support for behaviors, swiping here navigates, or double clicking changes the page. Much better than getting psd! Also has a timeline so it’s easier to see the relationship between frames automatically
Alternatives:
http://www.justinmind.com/
http://www.axure.com/

Direct download: coding-blocks-episode-037.mp3
Category:tools -- posted at: 5:44pm EDT

Welcome back to the dramatic conclusion of our discussion on the 12 factor app. This time we're talking dev/prod parity, logs, and admin processes. Oh, and Call of Duty!

Direct download: coding-blocks-episode-36.mp3
Category:programming -- posted at: 1:41pm EDT

It's time for more DevOps fun as we continue learning about the Twelve-Factor app. This week we dive into the next three chapters: port binding, concurrency, and disposability.

Direct download: coding-blocks-episode-35.mp3
Category:general -- posted at: 11:57pm EDT

The holidays are coming sooner than we realized, so we gotta get our wish lists together. After all, no one wants to sit around the Festivus Pole without their favorite dev toys. This week we discuss some of the toys we love, as well as the ones we drool over, and even the ones we're not so crazy about.

Direct download: coding-blocks-episode-34.mp3
Category:general -- posted at: 9:39pm EDT

The Twelve-Factor App: Backing Services, Building and Releasing, Stateless Processes

 

Surveys – Wow we forget about them and ramble...sorry guys!

 

Mark Tinsley – PHP Composer – thanks for the tip!
https://getcomposer.org/

 

Joe made a game in Javascript (using dozens of libraries):

Box Pusher! (game name of the year)
https://github.com/THEjoezack/BoxPusher

 

Allen's cry for writing black-boxed, encapsulated code...
Episode on Encapsulation: http://www.codingblocks.net/episode23

Episode on SOLID Design: http://www.codingblocks.net/episode7

 

Probably want to listen to the first three parts of the 12 Factor App if you missed it:

http://www.codingblocks.net/episode32


IV. Backing Services

  • Any resource consumed over the network: databases, mail servers, cloud services, etc.

  • Anything external to your app (but could be local to your environment)

  • Should not have to change any code to redeploy – should be config changes if anything

  • Clearly Tech – Importance Rating: High

 

We've mentioned Splunk, and if you're not familiar, it's an enterprise piece of software that will aggregate logs from multiple sources (servers, computers, etc):
http://www.splunk.com/en_us/products/splunk-enterprise.html

 

Bug in Visual Studio that cost one person $6,500 in a few hours:

https://www.humankode.com/security/how-a-bug-in-visual-studio-2015-exposed-my-source-code-on-github-and-cost-me-6500-in-a-few-hours

 

V. Build, Release, Run

  • Build stage – transform which converts the code repo into an executable bundle

  • Release stage – combines the build with the required config and deposits it somewhere

  • Run – runs the app in the execution environment (development, staging, production, other)

  • Rolling back may be more complicated when you start talking about database schemas / data changes

  • Clearly Tech – Importance Rating: Conceptual???

 

Version numbers? What do you prefer? Version numbers with major and minor revisions? Or do you prefer timestamps?

 

 

VI. Processes

  • Stateless and Share Nothing

    • No local session

    • Make sure saving files go to an available repository

  • Clearly Tech – Importance Rating: High (Joe wants higher than high)

 

Resources We Like

Tips

 

Allen: Find problematic queries that are killing your SQL Server...replace 123 with the spid from sp_who2.

 

sp_who2 'active'

DBCC INPUTBUFFER(123)

 

If you want to be mean....replace 123 with the spid from sp_who2

KILL 123

 

Additionally, if there's high CPU and low I/O, it's likely either a missing or a fragmented index.

 

Joe: Tortoise Git

https://tortoisegit.org/

 

Mike: Tip of the week is the Pseudocode podcast
http://pseudocode.fm/

 

And...don't be lazy. We can't seem to get off our tails and get a business card made!

 

 


The Twelve-Factor App: Codebase, Dependencies, and Config

Dipping our toes into the DevOps waters with the Twelve-Factor App. How important is depedency management, and how fired would you be if you accidently leaked your company's source code?

Direct download: coding-blocks-episode-32.mp3
Category:Software Development -- posted at: 1:19pm EDT

Javascript Promises and Beyond

In this episode we dive into Javascript Promises.  If you’re used to the olden way of doing an async call with a callback, you’ll definitely want to give this episode a listen as you could improve your mental sanity 10 fold by learning how to use promises in your application!

Direct download: Episode-031-Javascript-Promises-and-Beyond.mp3
Category:Javascript -- posted at: 11:37am EDT

Part 4 of our design patterns series, this time up it's Adapters, Facades, and Mementos. Oh, an which tech luminary would make the best head of state!

Direct download: coding-blocks-episode-030.mp3
Category:general -- posted at: 8:24pm EDT

This week we answer a question, Allen registers for school, Joe reads some numbers, Michael breaks out the survey results, and Joe cringes at the thought of bidets. It's time for episode 29! And we thought, what better to talk about than to continue our discussion on hierarchical data solutions.

Direct download: coding-blocks-episode-29.mp3
Category:general -- posted at: 12:05pm EDT