<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Clint Berry</title><link>https://clintberry.com/</link><description>Recent content on Clint Berry</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Wed, 15 Jan 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://clintberry.com/index.xml" rel="self" type="application/rss+xml"/><item><title>Why You Need a Director of Developer Experience</title><link>https://clintberry.com/director-of-developer-experience/</link><pubDate>Wed, 15 Jan 2020 00:00:00 +0000</pubDate><guid>https://clintberry.com/director-of-developer-experience/</guid><description>In a previous post I talked about what a CTO does and how at Weave I kept the ownership of the overall engineering culture at Weave. As we have grown (now to over 60 engineers) it gets harder and harder to manage the communication and operational culture of the department. In some ways, things have to change (you just can&amp;rsquo;t operate the same way as you did with 10 engineers) but there are other cultural values that you do not want to change&amp;hellip; ever.</description></item><item><title>2019 Reading List</title><link>https://clintberry.com/2019/q4-reading-list/</link><pubDate>Sat, 28 Dec 2019 00:00:00 +0000</pubDate><guid>https://clintberry.com/2019/q4-reading-list/</guid><description>Here are some of the highlights from my 2019 reading:
The Infinite Game, by Simon Sinek You have to have an &amp;ldquo;infinite mindset&amp;rdquo; to build the best companies. Short-term focus will never build a resilient and inspiring company. I love this book and would recommend it to anyone helping build a growing business. More Info
Accelerate, by Nicole Forsgren, Jez Humble, and Gene Kim This came out in 2018, but it had a big enough impact I wanted to make sure to put it down on the this first list.</description></item><item><title>Measuring your Engineering Culture</title><link>https://clintberry.com/measuring-your-engineering-culture/</link><pubDate>Tue, 19 Mar 2019 00:00:00 +0000</pubDate><guid>https://clintberry.com/measuring-your-engineering-culture/</guid><description>Creating the right operational culture for your engineering team is critical to having a high performing team. More than ever building the right products and having a very fast time-to-market is what will separate winners from losers. Without a good culture, your teams will never perform well enough to keep up.
But how do you measure your culture? Let me share with you three methods we use at Weave to make sure we have a healthy and happy engineering culture:</description></item><item><title>Engineering Compensation - The Pursuit of Fairness</title><link>https://clintberry.com/engineering-compensation-fair/</link><pubDate>Sun, 03 Feb 2019 00:00:00 +0000</pubDate><guid>https://clintberry.com/engineering-compensation-fair/</guid><description>In the product development department at Weave, our motto is Never Satisfied. We are constantly trying to improve how we work, including experimenting with changes to department processes and organization as a whole.
One of the ways we have improved over the last couple of years is how we determine engineering compensation. Historically it has been hard to determine pay structure and ultimately those who could negotiate best had an advantage.</description></item><item><title>What Does a CTO Do?</title><link>https://clintberry.com/what-does-a-cto-do/</link><pubDate>Mon, 07 Jan 2019 00:00:00 +0000</pubDate><guid>https://clintberry.com/what-does-a-cto-do/</guid><description>I get asked this question a lot: What does a CTO do? As a &amp;ldquo;rookie CTO&amp;rdquo; and co-founder of a software company, I even have to ask myself that question from time to time, especially as the company has grown and I have had to adapt. So I have spent some time researching the role, and interviewing several CTOs to get an idea of their responsibilities and day-to-day workflow. Here is what I have found:</description></item><item><title>JavaScript and the Brackets Shell Environment</title><link>https://clintberry.com/2013/native-desktop-javascript/</link><pubDate>Mon, 22 Jul 2013 00:00:00 +0000</pubDate><guid>https://clintberry.com/2013/native-desktop-javascript/</guid><description>This is the second post in my series on using the amazing bracket-shell project for building native desktop applications with HTML and JavaScript.
Post 1 – Build Native Desktop Apps with Brackets Shell Post 2 – JavaScript and the Brackets Shell Environment At this point you should have brackets-shell compiling/building with your own HTML app bundled inside of it. In this post I want to teach you how to interact with the shell via JavaScript.</description></item><item><title>Build Desktop Apps With HTML Using Brackets Shell</title><link>https://clintberry.com/2013/html5-desktop-apps-with-brackets-shell/</link><pubDate>Tue, 25 Jun 2013 00:00:00 +0000</pubDate><guid>https://clintberry.com/2013/html5-desktop-apps-with-brackets-shell/</guid><description>I recently posted on the state of native desktop apps in HTML5 and mentioned that at my company we chose to use Brackets-Shell as our native app solution. I want to go more in-depth into what brackets is and why we chose it as our solution. This will be the first of a series of posts dedicated to brackets-shell and customizing it for your native HTML desktop applications.
UPDATE: I Posted part 2 of the series: JavaScript and the Brackets Shell Environment</description></item><item><title>HTML5 Apps on the Desktop in 2013</title><link>https://clintberry.com/2013/html5-apps-desktop-2013/</link><pubDate>Sat, 11 May 2013 00:00:00 +0000</pubDate><guid>https://clintberry.com/2013/html5-apps-desktop-2013/</guid><description>&lt;p>&lt;a href="http://clintberry.com/images/html-apps-on-desktop.jpg">&lt;img src="http://clintberry.com/images/html-apps-on-desktop.jpg" alt="html-apps-on-desktop" width="379" height="286" class="alignleft size-full wp-image-923" />&lt;/a>&lt;/p>
&lt;p>No doubt we are in the middle of the mobile revolution. The mobile-first mentality is prevalent. I feel like I see these types of posts every day lately:&lt;/p>
&lt;p>&lt;img src="https://clintberry.com/images/Screen-Shot-2013-04-22-at-10.34.21-PM.png" alt="Screen Shot 2013-04-22 at 10.34.21 PM">&lt;/p>
&lt;p>&lt;img src="https://clintberry.com/images/Screen-Shot-2013-04-22-at-10.35.34-PM.png" alt="Screen Shot 2013-04-22 at 10.35.34 PM">&lt;/p>
&lt;p>While there is an obvious trent towards mobile in the consumer world, there is one place desktop is king: &lt;strong>Business.&lt;/strong>&lt;/p></description></item><item><title>Modular AngularJS App Design</title><link>https://clintberry.com/2013/modular-angularjs-application-design/</link><pubDate>Mon, 29 Apr 2013 00:00:00 +0000</pubDate><guid>https://clintberry.com/2013/modular-angularjs-application-design/</guid><description>&lt;p>&lt;img src="http://clintberry.com/images/angular-module1.png" alt="angular module" width="225" height="200" class="alignleft size-full wp-image-836" />&lt;/p>
&lt;p>I am a sucker for modules. Something about bundling a set of functionality and display logic into a module that can be easily redistributed for many apps makes my skin tingle. So when I saw that “modules” were a big part of the AngularJS methodology, I was super excited to try it out. I quickly realized however, that most of the examples online used one module for the entire application, which didn’t seem all that modular to me.&lt;/p></description></item><item><title>About</title><link>https://clintberry.com/about/</link><pubDate>Sun, 28 Apr 2013 00:00:00 +0000</pubDate><guid>https://clintberry.com/about/</guid><description>I am the co-founder and CTO of Weave and a winter 2014 Y-combinator alumni.
Passions I love my wife I love my children I love wakeboarding I love snow skiing I love reading I love ping-pong (if I don&amp;rsquo;t call it table tennis it doesn&amp;rsquo;t mean I suck) I love start-up companies I love open source I love real-time communication A Brief Timeline of my Early Technical History 1988 – I am 6 years old and my mother gets a home computer from her employer (JCPenney).</description></item><item><title>AngularJS WebSocket Service Example</title><link>https://clintberry.com/2013/angular-js-websocket-service/</link><pubDate>Tue, 23 Apr 2013 00:00:00 +0000</pubDate><guid>https://clintberry.com/2013/angular-js-websocket-service/</guid><description>&lt;p>&lt;img src="http://clintberry.com/images/angular_logofull.png" alt="angular_logofull" title="angular_logofull" width="382" height="99" class="alignnone size-full wp-image-787" />&lt;/p>
&lt;p>At my curent company we are using Angular.js for a new desktop application (yes, a desktop application, but I won’t get into that). Our app gets its data and events from a web service via a WebSocket connection. Angular comes bundled with some great tools to connect to REST servers, but it doesn’t come with anything to help you with real-time data (and it probably shouldn’t).&lt;/p>
&lt;p>Here is an example of an Angular service (factory) that uses WebSockets to get data:&lt;/p></description></item><item><title>Backbone.js apps with Authentication Tutorial</title><link>https://clintberry.com/2012/backbone-js-apps-authentication-tutorial/</link><pubDate>Sat, 01 Sep 2012 00:00:00 +0000</pubDate><guid>https://clintberry.com/2012/backbone-js-apps-authentication-tutorial/</guid><description>&lt;p>&lt;img src="https://clintberry.com/images/backbonelocked.png" alt="backbonelocked" title="backbonelocked" width="568" height="111" class="alignnone size-full wp-image-670" />&lt;/p>
&lt;p>At my current company I am working on my first large-scale production backbone.js app and I couldn’t be happier. After using backbone.js for a few months I have caught the vision and I am becoming more and more proficient. But every once and a while I still run into problems I would consider basic, but I can’t seem to find much help on the interwebs. Authentication with backbone.js apps was one of those problems. So I am posting the solution I came up with in hopes it will benefit someone else, and hopefully will garner some feedback or potentially better ways to solve authentication with Backbone.js.&lt;/p></description></item><item><title>Phing For PHP Deployment</title><link>https://clintberry.com/2012/phing-php-deployment/</link><pubDate>Tue, 10 Apr 2012 00:00:00 +0000</pubDate><guid>https://clintberry.com/2012/phing-php-deployment/</guid><description>I recently did a presentation at the Utah PHP Users group on Phing for deploying PHP applications. Here are the slides:
http://clintberry.com/slides/phing</description></item><item><title>Sublime Text 2 for PHP &amp; WordPress Development</title><link>https://clintberry.com/2012/sublime-text-2-php-symfony-development/</link><pubDate>Thu, 02 Feb 2012 00:00:00 +0000</pubDate><guid>https://clintberry.com/2012/sublime-text-2-php-symfony-development/</guid><description>&lt;p>Sublime Text 2 is an amazing code editor that I started using on the recommendation of a friend. I fell in love and haven’t looked back. Here are some recomendations for setting up Sublime Text 2 for PHP and WordPress development.&lt;/p></description></item><item><title>Custom User Providers in Symfony2</title><link>https://clintberry.com/2011/custom-user-providers-symfony2/</link><pubDate>Wed, 21 Dec 2011 00:00:00 +0000</pubDate><guid>https://clintberry.com/2011/custom-user-providers-symfony2/</guid><description>&lt;h4 id="why-custom-user-providers">Why Custom User Providers?&lt;/h4>
&lt;p>At my current job all the database systems are managed by DB admins and the developers have to connect to the database via web services. We do not connect to the databases directly. This allows for better &lt;a title="Separation of Concerns" href="http://en.wikipedia.org/wiki/Separation_of_concerns" target="_blank">separation of concerns&lt;/a> and allows experts to focus on their respective specialties. But if you are programming a Symfony2 app, that means you don’t get to use Doctrine or any other ORM, which in turn means you create your own models/entities.&lt;/p>
&lt;p>When you want to develop the authentication parts of your new app you will quickly find that there is plenty of documentation for Doctrine/ORM based apps, but if you are using your own custom models then you run into pages &lt;del datetime="2012-01-20T21:30:13+00:00">&lt;a href="http://symfony.com/doc/current/cookbook/security/custom_provider.html" target="_blank">like this one&lt;/a>&lt;/del>.  &lt;del datetime="2012-01-20T21:30:13+00:00">(when I finish this post I will submit an article to the docs and see if they approve it)&lt;/del> &lt;strong>UPDATE: Someone beat me to it, there is now a good tutorial in the Symfony docs for custom user providers.&lt;/strong>&lt;/p></description></item><item><title>Why I Switched to Symfony 2 Framework</title><link>https://clintberry.com/2011/switched-symfony-2-framework/</link><pubDate>Thu, 10 Nov 2011 00:00:00 +0000</pubDate><guid>https://clintberry.com/2011/switched-symfony-2-framework/</guid><description>&lt;p>I have been working with the Zend Framework for the last 3 years. I like it. It is flexible, heavily object oriented, and organized. However, one thing that has always bothered me is that modules in ZF have been &lt;a title="Zend Framework Modules" href="http://weierophinney.net/matthew/archives/234-Module-Bootstraps-in-Zend-Framework-Dos-and-Donts.html" target="_blank">second-class citizens&lt;/a>. Granted, in Zend Framework 2 this is not the case, but I needed to start a project right away, and since ZF2 is still in beta, I decided to go checkout some other frameworks again.&lt;/p></description></item><item><title>Siege Testing Your Site Behind a Login</title><link>https://clintberry.com/2011/siege-testing-site-login/</link><pubDate>Sat, 05 Nov 2011 00:00:00 +0000</pubDate><guid>https://clintberry.com/2011/siege-testing-site-login/</guid><description>&lt;p>I use &lt;a href="http://www.joedog.org/index/siege-home" target="_blank">Siege&lt;/a> to test my web applications and get an idea of how much traffic they can sustain. It is a great tool and I suggest you read more about it &lt;a href="http://www.joedog.org/index/siege-home" target="_blank">here&lt;/a>.&lt;/p>
&lt;p>A few days ago, I needed to test a part of my application that was behind a login. I hit up UPHPU user group on IRC, and &lt;a href="http://www.justincarmony.com/" target="_blank">Carmony&lt;/a> (a master website optimizer) suggested logging in on my browser and then hijacking the session in siege by setting header values. That is a great idea, but seems overly difficult. I doubted that I was the only one that ever wanted to do this. Isn’t there an easier way?&lt;/p></description></item><item><title>Getting Started With Plivo</title><link>https://clintberry.com/2011/getting-started-with-plivo/</link><pubDate>Wed, 24 Aug 2011 00:00:00 +0000</pubDate><guid>https://clintberry.com/2011/getting-started-with-plivo/</guid><description>&lt;p>The open-source telephony development world has been changing drastically over the last 2 years. Projects like FreeSWITCH allow you to create simple phone applications with XML files, but until recently, advanced applications required a solid knowledge of the Erlang language. Then enters &lt;a title="Twilio" href="http://www.twilio.com/" target="_blank">Twilio&lt;/a>— which allows any web developer to make advanced telephony apps in the web language of their choice. But with Twilio’s pricing structure, you are looking at anywhere from 2 to 4 cents per minute &lt;strong>IN ADDITION&lt;/strong> to your VOIP service while also being locked-in to their cloud. &lt;strong>Must I learn Erlang if I want to make cool telephony apps for free?&lt;/strong>&lt;/p></description></item><item><title>Speed Up Your WordPress Development Cycle With Git</title><link>https://clintberry.com/2011/speed-up-your-wordpress-development-cycle-with-git/</link><pubDate>Sat, 30 Jul 2011 00:00:00 +0000</pubDate><guid>https://clintberry.com/2011/speed-up-your-wordpress-development-cycle-with-git/</guid><description>&lt;p>If you have developed WordPress sites for clients this process might sound familiar to you:&lt;/p>
&lt;ul>
&lt;li>Get a new client that wants a wordpress site&lt;/li>
&lt;li>Download the most recent wordpress&lt;/li>
&lt;li>Find a good current blank wordpress theme to start implementing the design&lt;/li>
&lt;li>Upload to a staging server to for client to see&lt;/li>
&lt;li>Client requests changes&lt;/li>
&lt;li>You make changes on local server, then upload to staging server&lt;/li>
&lt;li>Repeat last three steps until finished and then you deploy the site to live&lt;/li>
&lt;/ul>
&lt;p>After lots of trial and error, I have come up with a process that is more efficient, and allows rapid development of wordpress sites. I use Git, Git Submodules, and WordPress child themes to get going quicker and keep code up to date with minimal effort. (If your not using a &lt;a href="http://en.wikipedia.org/wiki/Revision_control" target="_blank">revision control &lt;/a>system like &lt;a href="http://git-scm.com/" target="_blank">Git&lt;/a> or &lt;a href="http://subversion.tigris.org/" target="_blank">SVN&lt;/a> for development, then check out &lt;del datetime="2012-04-22T20:33:39+00:00">&lt;a href="http://stackoverflow.com/questions/132520/good-excuses-not-to-use-version-control" target="_blank">this funny question and answer session on Stack Overflow&lt;/a>&lt;/del> &lt;strong>Update:&lt;/strong> Stack Overflow moderators removed the question… bummer. Check out the funny-ness in the &lt;a href="http://web.archive.org/web/20100722082534/http://stackoverflow.com/questions/132520/good-excuses-not-to-use-version-control" title="Why to use version control" target="_blank">wayback machine internet archiver&lt;/a> instead)&lt;/p></description></item><item><title>Wildcard Sub-Domains on OSX, Web Development on Localhost</title><link>https://clintberry.com/2011/wildcard-sub-domains-on-osx-web-development-on-localhost/</link><pubDate>Mon, 30 May 2011 00:00:00 +0000</pubDate><guid>https://clintberry.com/2011/wildcard-sub-domains-on-osx-web-development-on-localhost/</guid><description>&lt;p>Today’s post will be on setting up wildcard subdomains in OSX. This allows you to map folders in your web root to sub-domains on your local box. Why would you want to do this? It is nice to be able to type use &lt;em>&lt;a href="http://myproject.clint.dev">http://myproject.clint.dev&lt;/a>&lt;/em> for the URL and have it map to the ‘myproject’ folder on your local box. No need to add a line to the etc/hosts file, and no need to add a virtual host in apache for each sub-domain. The method I will be outlining here will allow you to map x.yourdevdomain.dev to any folder ‘x’ using Bind and a wildcard virtual host in apache. This tutorial assumes you already have Apache setup on your local box.&lt;/p></description></item><item><title>Zend Studio and Git(Hub)</title><link>https://clintberry.com/2011/zend-studio-and-github/</link><pubDate>Sat, 26 Feb 2011 00:00:00 +0000</pubDate><guid>https://clintberry.com/2011/zend-studio-and-github/</guid><description>&lt;p>I have been using Zend Studio as my IDE for years, and for version control I have always used SVN. Zend Studio Eclipse plays very nicely with SVN out of the box, but lately it seems Git has gained a lot of momentum so I thought I would look into it. It turns out Git is awesome and is much better suited for many of the things I do. (See: &lt;a href="http://stackoverflow.com/questions/871/why-is-git-better-than-subversion">Why Git?&lt;/a>)&lt;/p>
&lt;p>&lt;strong>But will Git play nicely with Zend Studio 8?&lt;/strong>&lt;/p>
&lt;p>Thanks to eclipse plugins, you bet it will!&lt;/p></description></item><item><title>MongoDB Base Model for Zend Framework</title><link>https://clintberry.com/2010/mongodb-base-model-for-zend-framework/</link><pubDate>Thu, 11 Nov 2010 00:00:00 +0000</pubDate><guid>https://clintberry.com/2010/mongodb-base-model-for-zend-framework/</guid><description>&lt;p>I came accross &lt;a href="http://mongodb.org">MongoDB&lt;/a> a few months ago and it seemed like a perfect fit for many of the projects I am working. Extremely fast inserts, map-reduce for complex queries, and most importantly, scaling is a breeze.&lt;/p>
&lt;p>Since I am a Zend Framework guy I created a simple base model class for MongoDB. It is a very simple wrapper, but is effective for what I need. I usually create model classes for each “Collection” just like I would create models for each table in MySQL. Each model class extends from the new MongoDB base class and allows a low level “active directory” type access to MongoDB documents.&lt;/p></description></item><item><title>Contact</title><link>https://clintberry.com/contact/</link><pubDate>Thu, 05 Aug 2010 00:00:00 +0000</pubDate><guid>https://clintberry.com/contact/</guid><description>Twitter Follow @clinton_berry
LinkedIn http://www.linkedin.com/in/clintonberry
Email clint@system-11.com</description></item><item><title>Zend Framework Code Generator With Scaffolding &amp;#8211; ZFcodo</title><link>https://clintberry.com/2010/zend-framework-code-generator-with-scaffolding/</link><pubDate>Thu, 05 Aug 2010 00:00:00 +0000</pubDate><guid>https://clintberry.com/2010/zend-framework-code-generator-with-scaffolding/</guid><description>&lt;p>&lt;strong>Update:&lt;/strong> This project is now hosted at my &lt;a href="https://github.com/clintberry/zf-codo">GitHub account&lt;/a>.&lt;/p>
&lt;p>While I am a huge fan of Zend Framework, I miss having the code generation that is bundled with other frameworks I use. Since my favorite codegen/ORM is from the Qcubed project, I decided to take the Qcubed code generator and customize it for Zend Framework.&lt;/p></description></item><item><title>Custom Fonts with Google WebFont Loader</title><link>https://clintberry.com/2010/custom-fonts-with-google-webfont-loader/</link><pubDate>Wed, 14 Jul 2010 00:00:00 +0000</pubDate><guid>https://clintberry.com/2010/custom-fonts-with-google-webfont-loader/</guid><description>&lt;p>I have recently been working on adding local fonts to my customized version of svg-edit. The idea is to have a font selector with several fonts from my local system. I have been using the recently released &lt;a href="http://code.google.com/apis/webfonts/docs/webfont_loader.html">Google WebFont Loader API&lt;/a> to load font files from my local server into the website. Google has made it easier than ever. (note: Google will collect stats from your website if you use this API, just like they do if you use any of their services.)&lt;/p></description></item><item><title>Custom Error Messages on Zend Form Validators</title><link>https://clintberry.com/2010/zend-form-email-validator-customizing-error-messages/</link><pubDate>Thu, 08 Jul 2010 00:00:00 +0000</pubDate><guid>https://clintberry.com/2010/zend-form-email-validator-customizing-error-messages/</guid><description>&lt;p>Zend Form is extremely powerful, and I love most of the built in validators. But some of the validators are overkill for many projects. Take the EmailAddress validator for instance. I have never worked on a web-form where I wanted 3 error messages to appear if the Email address entered was invalid. (To see what I mean, just type in “a@a” for your email address and see what Zend_Validate_EmailAddress displays). I have seen several questions and complaints about this problem (&lt;a href="http://framework.zend.com/issues/browse/ZF-2224">Example 1&lt;/a> or &lt;a href="http://www.zfforums.com/zend-framework-general-discussions-1/general-q-zend-framework-2/how-can-i-get-just-1-error-message-emailaddress-validator-instead-multiple-2582.html">Example 2&lt;/a>) and thought I would offer up my fix.&lt;/p></description></item><item><title>Installing Magento on OS X</title><link>https://clintberry.com/2010/installing-magento-on-os-x/</link><pubDate>Thu, 25 Feb 2010 00:00:00 +0000</pubDate><guid>https://clintberry.com/2010/installing-magento-on-os-x/</guid><description>Mark Hopwood has created a great post on installing Magento stand-alone on OS X. I know there have been several posts in the Magento forums with questions on this. Just remember if you are installing Magento on OS X with Zend Server, you need to open your TCP/IP sockets in the mysql.conf file so that Mysql can be connected to using localhost or the local IP address.</description></item><item><title>Zend Server CE on OS X</title><link>https://clintberry.com/2010/zend-server-ce/</link><pubDate>Tue, 09 Feb 2010 00:00:00 +0000</pubDate><guid>https://clintberry.com/2010/zend-server-ce/</guid><description>&lt;p>I finally did it. I bought a mac. And after navigating around OS X for ten minutes using the multi-touch pad, I can honestly tell you I don’t think I’ll ever go back. As I use it more I am curious to see if developing on my new, sleek, aluminum toy will continue to bring the feelings of ecstasy.&lt;/p>
&lt;p>The first thing I did was install Zend Server CE to develop and test locally on my machine. Here are my notes on the Zend Server CE installation for the OS X, which didn’t seem as user friendly as it’s Windows Installer counterpart. But I am such a noob with Macs it is probably just me. This is for all you windows developers making the switch.&lt;/p></description></item></channel></rss>