I have known about standing desks for a number of years now. But the longest period, up until now, of ditching a traditional chair involved using an exercise exercise ball as my primary chair at work.
However for the past month this has been my set up at work:
I've got nothing but good things to say about it. I have an anti-fatigue mat, a step stool, a foot roller, and a chair (like a bar stool). Standing for eight hours comes with its own problems. But short walks around building during the day, alternating between sitting and standing every couple of hours, and using the stools and roller to vary my stance, makes for a great balance.
10 Accessories Every Standing Desk Owner Should Have
Friday, June 26, 2015
Podcast Recommendation: TalentGrow
I recently posted a 5 star review of the TalentGrow podcast on iTunes. I want to share that review here, and recommend the show to everyone: IT VPs, Directors, Managers, Product Owners, Product Managers, Developers, and QAs. Whether you are a leader or not, whether you just want to be a great team member, or if you just want to be a happier, more successful person there is much Halelly Azulay has to offer.
From the first episode, I was hooked. Halelly is a rare combination of light (almost bubbly), smart, and driven. Seven episodes in and she has consistently had on great guests, leaders in their respective domains, and asked good questions. I'm not sure how someone who has just started is such a great interviewer; allowing her guests to comfortably share their stories, while keeping them on point, and her listeners engaged. The first six episodes have ranged over a variety of topics: avoiding being overworked, goal setting, focus, creativity, and performance. But through them all there is Halelly, her love of learning, and her personal desire to improve every day -- while helping others to do the same. Give the show a try, you won’t be disappointed.The TalentGrow podcast is available on iTunes and Sticher.
Agile
Having been on Agile teams that were mostly Agile, and Agile teams that were mostly not Agile. I agree with these two posts by Nathan over at Design, Code, Release
: Agile is... and Agile methodologies are just tools.
As with most things, the people who know the least about a subject are usually the most dogmatic about it, and those who know the most rarely talk about it. This most certainly applies to the different Agile shops I've been in. The most Agile development shops involve a lot of team communication, support, and respect--respect of the company for the team, respect of the team members for each other and respect of the team members for the company.
On these great teams, we talked, we helped, we supported, we did stand ups, we did sprints and sprint plannings, and backlogs, and retrospectives, and demos. We adapted, and were given almost complete control over what we did, how we did it, and most of the time when we delivered, Agile was our tool. Great carpenters rarely talk about hammers and screw drivers. The find the best, they learn how to use them, and then go about doing what needs to be done: one has tools to build, one does not build in order to talk about tools.
Nothing in Agile is set in stone. The purpose of Agile is to allow for communication, adapt to ceaseless changes from the business, and to build great products.
As with most things, the people who know the least about a subject are usually the most dogmatic about it, and those who know the most rarely talk about it. This most certainly applies to the different Agile shops I've been in. The most Agile development shops involve a lot of team communication, support, and respect--respect of the company for the team, respect of the team members for each other and respect of the team members for the company.
On these great teams, we talked, we helped, we supported, we did stand ups, we did sprints and sprint plannings, and backlogs, and retrospectives, and demos. We adapted, and were given almost complete control over what we did, how we did it, and most of the time when we delivered, Agile was our tool. Great carpenters rarely talk about hammers and screw drivers. The find the best, they learn how to use them, and then go about doing what needs to be done: one has tools to build, one does not build in order to talk about tools.
Nothing in Agile is set in stone. The purpose of Agile is to allow for communication, adapt to ceaseless changes from the business, and to build great products.
Wednesday, June 24, 2015
SQL Injection
Troy Hunt has a free recorded webinar on Pluralsight: Why SQL Injection Remains the #1 Web Security Risk Today
Tuesday, June 23, 2015
Monday, June 22, 2015
A Thousand Times, Yes!
Organizational Skills Beat Algorithmic Wizardry
Totally agree. Great stuff!
When it comes to writing code, the number one most important skill is how to keep a tangle of features from collapsing under the weight of its own complexity.I came across the above, here: The most important skill in software development
Totally agree. Great stuff!
NDC Oslo 2015 Goodness
With NDC Oslo 2015 wrapped up, lots of great goodness in the form of blog posts and videos to come.
Via @bryan_hunter, I've mostly been following the functional programming tract. However, there is so much more and I'm looking forward to digging in.
Today's post over at The Morning Brew features a post from Dyan Beattie with lots of front-end, WebApi, and RESTfully goodness: Slides and code from NDC Oslo 2015
And finally if you do not know about all of the goodness that NDC Oslo has to offer, take a week or two off from work and go here:
https://vimeo.com/ndcconferences/videos
Via @bryan_hunter, I've mostly been following the functional programming tract. However, there is so much more and I'm looking forward to digging in.
Today's post over at The Morning Brew features a post from Dyan Beattie with lots of front-end, WebApi, and RESTfully goodness: Slides and code from NDC Oslo 2015
And finally if you do not know about all of the goodness that NDC Oslo has to offer, take a week or two off from work and go here:
https://vimeo.com/ndcconferences/videos
Saturday, June 20, 2015
Jasmine
I'm about to start my first AngularJs project in almost a year. The two biggest flaws with that last project were 1) I was on a development team of one, ME, with a three-month project timeline, and I allowed a complex form validation scheme to be part of the first release. You think I would have learned from past failures!!! 2) The more detrimental mistake -- to my sanity and my having to spend two glorious summer months, working inside, 60 to 80 hour weeks -- I made was not doing front end testing.
Although, the project did launch, albeit a few weeks late, I committed myself to never do another website release without both a suite of JavaScript unit tests, and Selenium integration tests. The Web Api projects I have delivered (successfully and early) this year have come with suites of integration and unit tests, but now that I am doing a front end project again, its time to look at Jasmine. There are of course other tools, and I will explore them as this project progresses, but Jasmine seems like a great place to start.
After searching the web, and watching a couple of PluralSight videos, I want to recommend this series on YouTube. Excellent presentation of the material.
Although, the project did launch, albeit a few weeks late, I committed myself to never do another website release without both a suite of JavaScript unit tests, and Selenium integration tests. The Web Api projects I have delivered (successfully and early) this year have come with suites of integration and unit tests, but now that I am doing a front end project again, its time to look at Jasmine. There are of course other tools, and I will explore them as this project progresses, but Jasmine seems like a great place to start.
After searching the web, and watching a couple of PluralSight videos, I want to recommend this series on YouTube. Excellent presentation of the material.
A History of Functional Programming
An informative historical look at function programming.
Joe Armstrong, NDC 2014
Functional Programming the Long Road to Enlightenment: a Historical and Personal Narrative
Joe Armstrong, NDC 2014
Functional Programming the Long Road to Enlightenment: a Historical and Personal Narrative
Friday, June 19, 2015
Interviews: The Factory Pattern
After a recent failed job interview, it happens--even for someone like me who never has a problem getting the next job, I've been refreshing my understanding of the basics. This is always one of the struggles of interviewing, when working day-to-day, year-to-year at a job, the "interview vocabulary" is not fresh in your mind. Even though you might be working with factories, types, and encapsulation on a regular basis, you aren't talking about it, you are doing it. One of the values I see in doing this blog, being more active on twitter, and hopefully finding other outlets like StackOverflow and local user groups, I can be more ready for ad hoc interviews, and not just the end of job interviews that I have to time to prep for.
Now the actual feedback I received from the interviewers was not that I didn't ready have good answers to the technical questions, but that I was defensive about (or with) my answers. Unfortunately, given the situation, I was not able to get follow-up feedback on what that meant. So although I don't have details to report on this aspect yet, I do have a plan for working on my natural tendency of being defensive in stressful situations.
Rant: God, do I hate group interviews! As an introvert, give me eight one-on-one's in a row, take up four to five hours of my day, but do make me sit in a room with two managers, an architect, and three developers. Ugh! I've never gotten those jobs, but ALWAYS get the job where I do a series of one-on-one interviews.
One of the question and answers that stand out to me, was the one on the factory pattern. When asked about it, I basically gave that standard descriptor: the factory pattern is a construction, a creation, pattern. I went into little to no detail, and drew a blank after I said I used them on my latest project. After leaving the interview I remember the awesome factory I create for creating Excel Reports. <sigh>
We had a dozen different individual Excel reports that needed to be generated. All the reports had the same styles, header, and footer. But the data being displayed in each report was quite different. So I created a a shared interface and a factory for generating the different Excel reports.
What's interesting to me, and this was something I did based on my gut, and not a reasoned approach, is that after several refactorings I moved from the factory pattern to the facade pattern. It would be an interesting an assignment for myself to re-approach my Excel code and see if I would make the same decisions to move to the facade pattern. I know the primary thought I had when making the facade was that I did it during my last week on my job when my team members were on vacation. The choice I had was to make the code as readable as possible or to write documentation. I am a developer, so I of course chose rewriting my code. :-)
In an earlier post, I recommend Derek Banas' YouTube series on Design Patterns. Based on what I just wrote I am going to re-watch Derek's videos on the factory pattern and the facade pattern.
Now the actual feedback I received from the interviewers was not that I didn't ready have good answers to the technical questions, but that I was defensive about (or with) my answers. Unfortunately, given the situation, I was not able to get follow-up feedback on what that meant. So although I don't have details to report on this aspect yet, I do have a plan for working on my natural tendency of being defensive in stressful situations.
Rant: God, do I hate group interviews! As an introvert, give me eight one-on-one's in a row, take up four to five hours of my day, but do make me sit in a room with two managers, an architect, and three developers. Ugh! I've never gotten those jobs, but ALWAYS get the job where I do a series of one-on-one interviews.
One of the question and answers that stand out to me, was the one on the factory pattern. When asked about it, I basically gave that standard descriptor: the factory pattern is a construction, a creation, pattern. I went into little to no detail, and drew a blank after I said I used them on my latest project. After leaving the interview I remember the awesome factory I create for creating Excel Reports. <sigh>
We had a dozen different individual Excel reports that needed to be generated. All the reports had the same styles, header, and footer. But the data being displayed in each report was quite different. So I created a a shared interface and a factory for generating the different Excel reports.
What's interesting to me, and this was something I did based on my gut, and not a reasoned approach, is that after several refactorings I moved from the factory pattern to the facade pattern. It would be an interesting an assignment for myself to re-approach my Excel code and see if I would make the same decisions to move to the facade pattern. I know the primary thought I had when making the facade was that I did it during my last week on my job when my team members were on vacation. The choice I had was to make the code as readable as possible or to write documentation. I am a developer, so I of course chose rewriting my code. :-)
In an earlier post, I recommend Derek Banas' YouTube series on Design Patterns. Based on what I just wrote I am going to re-watch Derek's videos on the factory pattern and the facade pattern.
Thursday, June 18, 2015
Stackify
Stackify: one solution for monitoring, performance, errors, and logging. Worth considering for your next project.
Featured on a recent episode of .Net Rocks: Instrumenting using Stackify
Wednesday, June 17, 2015
Agile, You keep Using That Word
John Sonmez's latest post made me think of Inigo's sage observation. :-)
I like to say that my position was on the most Agile team I had worked on. But even we did not fully get the demo, feedback, revise, demo loop.
Truer words have never...
"Hire good people, and leave them alone" #agileaus pic.twitter.com/jSJ1fDtHxr
— Andrew Thorpe (@awthorpe) June 17, 2015
"Leaving alone" means being there for support, guidance, coaching, setting goals and direction, and most importantly keeping outside demands and interference to a minimum. Nothing less than this, and little more. Hire doers and let them do.
Tuesday, June 16, 2015
NCrunch: A Must Have
I cannot say enough good things about NCrunch. If you are interested in unit test testing, if you are committed to TDD, not buying and using NCrunch is like seeing the value in strength training and not doing High Intensity Training. Don't understand the analogy? That's okay, buy Doug's book, buy NCrunch, use them, and see your productivity and efficiency sore.
I am not an advocate of doing everything in your life, ever single project, to its utmost. But I am an advocate of doing a few things in your life to the fullest--plus one. To pushing your limits, to always improving, to taking every opportunity to see how much you have in the tank, and to doing hard things. There is just something about forcing all Visual Studio warnings to be errors, to getting as close to 100% code coverage as possible, to not allowing any method to be more than eight lines, to using the CQRS pattern every where you can, to not repeating yourself ever, ever, EVER.
NCrunch will encourage you to do all these things, while holding your hand, encourage you to do better one day at a time, while not screaming bloody murder at you because you just started.
NCrunch PluralSight Training
I am not an advocate of doing everything in your life, ever single project, to its utmost. But I am an advocate of doing a few things in your life to the fullest--plus one. To pushing your limits, to always improving, to taking every opportunity to see how much you have in the tank, and to doing hard things. There is just something about forcing all Visual Studio warnings to be errors, to getting as close to 100% code coverage as possible, to not allowing any method to be more than eight lines, to using the CQRS pattern every where you can, to not repeating yourself ever, ever, EVER.
NCrunch will encourage you to do all these things, while holding your hand, encourage you to do better one day at a time, while not screaming bloody murder at you because you just started.
NCrunch PluralSight Training
Type Drive Development
I came across the concept of Type Driven Development this morning. Placing this here for future reference.
Why type-first development matters
Type-Driven Development
More Typing, Less Testing: TDD with Static Types, Part 1
More Typing, Less Testing: TDD with Static Types, Part 2
Why type-first development matters
Type-Driven Development
More Typing, Less Testing: TDD with Static Types, Part 1
More Typing, Less Testing: TDD with Static Types, Part 2
Monday, June 15, 2015
Uncle Bob on Mocks
This is the clearest and most thorough presentation on the various types of test doubles and their relationships to one another I've seen:
Test Double, dummies, stubs, spies, mocks, and fakes.
Friday, June 12, 2015
Structure and Interpretation of Computer Programs
Structure and Interpretation of Computer Programs by Gerald Jay Sussman and Hal Abelson is recommended by Robert C Martin in hist NDC 2014 lecture Functional Programming; What? Why? When?
Unlcle Bob also recommend the MIT lectures by Sussman and Abelson.
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/
I am currently watch "Functional Programming; What? Why? When?" and am adding the above links for future reference.
Unlcle Bob also recommend the MIT lectures by Sussman and Abelson.
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-001-structure-and-interpretation-of-computer-programs-spring-2005/video-lectures/
I am currently watch "Functional Programming; What? Why? When?" and am adding the above links for future reference.
Mark Rendle's Worst Programming Language Ever
Mark's talk at 15th December 2014 in London at The Skills Matter eXchange
https://skillsmatter.com/skillscasts/6088-the-worst-programming-language-ever
https://skillsmatter.com/skillscasts/6088-the-worst-programming-language-ever
Monday, June 8, 2015
Friday, June 5, 2015
Architecture: Food for Thought
Software Architecture vs. Code by Simon Brown
I've been thinking a lot of about architecture a lot over the past year, and just loved this presentation. Many thought provoking ideas:
One of my favorite ideas here is that for all the good unit testing provides, there is much baggage it comes with, and some "problems" it causes. As computers are getting faster, and as it because easier to spin up VM instances, we have so many more options.
I love the idea of relying on integration tests more than unit tests. Integration tests that run just as fast and easily as unit tests. I love the idea of component architecture. I love Uncle Bob's idea of screaming architecture and The Clean Architecture, not being implementations (MVC, SQL Server, AnjularJs, etc), but conceptual (Employees, Accounts, Payments, Users, etc): Architecture, Use Cases, and High Level Design
Lots of wonderfulness and efficiency here, if we can learn from the past (tight coupling and spaghetti code) while not over-architecting and over-layering for the sake of our tools.
I've been thinking a lot of about architecture a lot over the past year, and just loved this presentation. Many thought provoking ideas:
One of my favorite ideas here is that for all the good unit testing provides, there is much baggage it comes with, and some "problems" it causes. As computers are getting faster, and as it because easier to spin up VM instances, we have so many more options.
I love the idea of relying on integration tests more than unit tests. Integration tests that run just as fast and easily as unit tests. I love the idea of component architecture. I love Uncle Bob's idea of screaming architecture and The Clean Architecture, not being implementations (MVC, SQL Server, AnjularJs, etc), but conceptual (Employees, Accounts, Payments, Users, etc): Architecture, Use Cases, and High Level Design
Lots of wonderfulness and efficiency here, if we can learn from the past (tight coupling and spaghetti code) while not over-architecting and over-layering for the sake of our tools.
Monday, June 1, 2015
Debugger Tips and Tricks
The irony, while waiting for my dentist appointment, I'm watching this:
Debugger Tips and Tricks for .NET Developers with Visual Studio 2015
Subscribe to:
Posts (Atom)


