11 December, 2012 § 2 Comments
Last week I gave a talk at TechSmith about some of the tools & processes for ensuring software quality at Mozilla.
TechSmith develops multimedia software based around various screen capture uses. Some of their most popular software is Camtasia Studio and Snagit.
Like Mozilla, they use continuous integration, unit tests, manual testing, and code reviews to maintain software quality.
The talk was recorded and I hope to get a copy of the talk to upload here and share with others. In the meantime, I’ve included a link to the slides below:
Please let me know if I made any errors or omissions.
30 January, 2012 § 4 Comments
The people working on Firefox have been spending a lot of time recently making sure that the browser is not just running with the highest performance as possible, but also running with the best perceived performance.
There are some cases where animations in the user interface may appear jerky, having large pauses or stutters while transitioning from one state to another.
One example is the transition from an open tab to a closed tab. In today’s release version of Firefox, tabs close by reducing their width to 0 pixels while also reducing their opacity to become transparent at the same time. With these two animations occurring at the same time, the tab becomes invisible much earlier than its width becomes 0 pixels. This results in a visible hole in the tab strip.
Starting in Firefox 12 (currently in the Nightly phase), the animations delay the fading of the opacity to a later time to remove this visual hole.
Finding an issue like this may be easy, but seeing at a slow speed what is happening and if a fix works better is hard. Since these animations run pretty fast, developers need to slow the animations down.
Asa Dotzler used Camtasia Studio and recorded the tab closing transitions at 60 fps (Camtasia Recorder -> Tools -> Options -> Inputs -> 60 fps) and then encoded them at 15 fps (Save and Edit -> right-click on clip -> Clip Speed -> 25%). This provided us with a slow-motion reproduction of the animation (only animates in Firefox, click on the image to see the animation):
After Asa created the animation, Dao Gottwald put together a patch that tweaked the timings of the various transitions. I put together a new recording that showed the effect of this change (click on the image to see the animation):
Recording user interface features can really help get a detailed look at how the software looks and feels. Maybe there will be an opportunity for you to use software like this in the future
8 June, 2011 § 2 Comments
This past Friday was my last day working at TechSmith in Okemos, MI. I truly loved every day that I worked there and will continue to hold my former coworkers in high esteem.
My time at TechSmith included many great technical and not-so-technical efforts. I am enormously proud of myself and the others around me that worked on making software better for users and also showing off the great culture that is enjoyed at TechSmith.
I started at TechSmith as an intern and was the first person to begin working on the LDAP-authentication for Camtasia Relay. Back then, the product was called Cayenne and our beta releases were named after other variations of spicy peppers.
After interning on the team, I accepted an offer to join the company full-time. I championed the Camtasia Relay web console’s performance, a redesign of the PC client, security issues, and many other things.
But what I’m most proud of is not the technical achievements. I am most proud of my non-technical achievements. Throughout my life I have tried to have a gung-ho/just-do-it attitude. I started a brown-bag series for employees to demo side projects as well as internal Ignite presentations.
Towards the end of my tenure, I started working with Randall Brown on a public-facing developer blog for the company. TechSmith already has a really strong internal-facing blog for the developers at the company, but not all of the posts on that blog require signing an NDA. Our goal was to give back to the community and show off what a great company TechSmith is to work for.
It is with great sadness that I announce that I no longer work at TechSmith. It was a tough and emotional decision but I feel that I am making a necessary move for me to grow as an individual.
23 May, 2011 § 1 Comment
The latest Screencast.com release included a couple speed improvements that were quietly included.
The first improvement was one requested by Kyle Mulka, of Twilk, during a visit to TechSmith. Kyle mentioned that he wished the Screencast.com short URLs would stay short after the web page was accessed. He mentioned that a lot of users like to copy and paste the URL from the address bar and use it in tweets.
I spent a bit of time researching what we would have to change to fix this issue, and in a couple of days we had the changes implemented.
This change also brings about a nice speed improvement to the loading of pages on Screencast.com. Previously, when a piece of content was visited, the server would reply with an
HTTP Status Code 302 - Found. This causes the browser to then load the page at the redirected location. This little bit of communication takes time, and with our new change we have removed this initial hurdle.
Here is a graphic showing the change in loading times:
With this improvement, we have increased the speed of viewing your Screencast.com content by 4.1% on average. If you are viewing your content from outside of North America, you can expect an even larger speedup.
Reduced page size
The second improvement that was added to Screencast.com was a new library layout. Much care has been taken to reduce the filesize of the webpages, to the point where loading up my library using the Library (beta) only uses 1/4 of the bytes yet sends more data. The Library (beta) also makes 11 less network requests than the current library. This means that your Screencast.com library is now more accessible under tighter network conditions such as 3G.
5 April, 2011 § 1 Comment
Email is the predominant form of communication in many workplaces today, including at TechSmith. It is very easy to receive about 30 pertinent emails per day, as well as another 100 or so that consist of check-in notices, bug status updates, build notifications, etc.
Finding time to respond to emails, and the priority of which emails to respond to can be a task in itself. Some of my coworkers have different approaches to organizing their emails.
I’ve seen some that are meticulous in their folder organization, and others who make sure to reply to every personal email within 24 hours.
I probably fall somewhere in between. My work email account has:
- An inbox
- An archive folder
- Filtered email folders (Changesets, Build Notifications, Sales Updates, and Off-topic)
Emails that land in my inbox are first priority. A couple times a day I will take the opportunity to sort through those emails. I don’t reply to every single one, but I try to file most. As a rough guideline, I try keep less than a screens-length of messages in my inbox at a time.
If I have read the email and replied (if necessary), then I will move the email to my Archive folder. The Archive folder exists purely for historical purposes. Once a while I will need to scan my history to find an email that someone mentions. I try never to delete an email. With hard drive storage so cheap these days, there should be no reason to delete tiny 10kb emails.
The filtered email folders get perused less often. A couple times a week I will read the changesets (aka check-ins) that have been landed on a couple projects at work that I am interested in. Build notifications almost never get read, they’re there just in case someone breaks the build (which never happens now that we are using gated builds). Sales updates and off-topic emails get read when some spare time comes along.
I find that this type of email management is simple and easy to control, and I recommend you try it out.