Friday, April 3, 2009

w00t! 2009 World Champion Flex Bug Quasher!

So I "won" the Flex Bug Quash in Seattle last weekend.

Shouldn't Adobe fix their own bugs? Why work for free?

I don't. Adobe doesn't. I get paid to deliver engaging user experiences for our clients, and most of my development work is Flex based. I have benefitted from the great community of Flex developers and it's time to pay it forward a bit.

I use a fair bit of open source software in my work, and I think contributing to the source code base is a good thing. Plus, I also used the opportunity to fix a couple of bugs that had been causing me pain in past projects. So it was self-serving open source work?

Road Trip!

I help organize the monthly Vancouver Flash Platform Meetup with Ross Ladell. During a recent lunch, nay, drink we realized that the Bug Quash event was being hosted in Seattle, rather than in the Bay area like I had assumed. So we declared it road trip worthy, and I rented a van for the day. Well, EffectiveUI rented the van, aren't corporate cards wonderful?

A bunch of us Vancouver geeks drove down to the Adobe Seattle office to represent Canada. It was a pretty quick drive (border hassles not included) and a fun way (what a geek!) to spend a Saturday. Ross met us down there and the folks from The Active Network were also there. So about 10 of the 30-ish bodies in Seattle were from Vancouver. Nice.

I win!!! Umm ... define "win"

All of this hinges on a very loose & liberal definition of what "win" means. I submitted the most patches that day, 5 in total. So given that metric, I won.

A former boss told me to remember that "fair" and "simple" are at opposite ends of the spectrum. Simple systems usually aren't fair, and fair systems usually are complex.

So counting the number of patches submitted was the easiest thing for the Bug Quash organizers to do, they were already doing it so that we could all watch the big numbers go up as patches were submitted throughout the day.

But submitting a bunch of patches doesn't mean that I'm did a lot of work. I don't think I was the most productive quasher there. I'd much rather see a few really hard problems fixed in the SDK than have some submit a bunch of executable semi-colons.

So what did I fix?

But I really couldn't describe my contributions as huge or high visibility. I just stayed focused in one area of the SDK (DateFormatter and some related classes) and knocked out some low hanging fruit.

1) DateFormatter "HH" shows 24 not 00

SDK-16076 - This didn't even require a code change. It wasn't a bug. The "HH" pattern shows hours in 1-24, the "JJ" pattern shows hours in 0-23.

All the comments said "Not a bug. close it". So I submitted an empty patch with a comment of "then CLOSE it already!". My patch was was rejected as a bit of an abuse of patch submission system, but the bug was closed anyway. I wasn't trying to be a jerk, but there wasn't any other clear way to mark/flag the bug for review. I'm not fond of bug lists that contain a lot of noise.

Total bugs quashed: 1
Total lines of code changed: 0

2) Make DateFormatter.parseDateString() a static public method

SDK-16902 - Yup. All this involved was changing "protected" to "public". +2 for me!

Total bugs quashed: 2
Total lines of code changed: 1

3) Fixed CalendarLayoutChangeEvent ctor

SDK-18567 - I hit this bug a couple of weeks ago, while writing a custom calendar control. The constructor for the CalendarLayoutChangeEvent was ignoring some of its parameters (like the new date, ouch!) so the net effect was that you had to set the date property manually, after the event was constructed. This class was only used once inside the SDK and the flow of control through that method meant that the date property was always being set after the event was created. So the SDK was (inadvertently, I think) working around this bug.

In addition to this two line fix, I also reviewed the SDK code for all the other classes in mx.events.*, just to be sure that this pattern wasn't repeated elsewhere. Nope. That was the only gotcha I could find. Which makes sense, since the other event classes are heavily used within the framework and bugs like that would have been caught early on.

Total bugs quashed: 3
Total lines of code changed: 3

4) Fixed parsing of GMT+x date string

SDK-13650 - This one took a bit more digging, and a whole lot more thinking. The patch I submitted on BugQuash day was rightfully rejected the first time. It actually wasn't until I wrote this post that I noticed that my original patch was rejected.

The original test case was using the AdvancedDataGrid class, which is part of the closed-source data visualization library. That meant I couldn't test the fix with the 3.x branch, since there was no 3.x datavisualization.swc to link in.

So I punted and did a HailMary commit. Which broke. Ugh.

Thankfully, Alex posted a much simpler test case, one that didn't require the closed-source SWC, so I quickly fixed my fix (I had neglected to escape the plus-sign in a regular expression) and submitted a new patch.

Total bugs quashed: 4
Total lines of code changed: 4 (see the method to my madness yet?)

5) Programatic HTML markup of Labels gets lost when truncateToFit() triggers

SDK-14982 - This is a bug I hit and reported about a year ago. When I reported the bug, I also included a fix. If you've set any markup via the htmlText property and the label needs to be truncated, all the formatting gets lost. The fix still isn't 100% but it is better than before and it is not any slower in the success case.

Total bugs quashed: 5
Total lines of code changed: 19

Did I deserve to win? Don't get me wrong. I like trophies!

Oh, I'm keeping the title belt. I'm claiming the (self-assigned) title of "2009 World Champion Flex Bug Quasher", at least until someone else comes along to push me off the top of the hill, attention-whore that I am.

Thanks to all the little people!

Thanks to Adobe for putting on the event.
Thanks to all the fun folks we got to hang out with at the Seattle offices.
Thanks to the Vancouver devs for kicking ass and claiming "first blood" (way to go Myo!).
Thanks to Karl for helping me setup my dev environment so I could finally build the SDK properly.
Thanks to the US Border Patrol officers who joined in our let's-bash-MSoft-fest at the border (nice to get the lads with the sense of humor for a change).

23 comments:

Myo said...

That was fun day indeed and congratulation :)

Anonymous said...

童裝批發
童裝批發
童裝
童裝
酒店喝酒
酒店消費
暑假打工
寒假打工
酒店經紀人
酒店現領
禮服店
酒店小姐
酒店兼職
酒店上班
酒店兼職
禮服店
酒店上班
酒店打工
酒店小姐
酒店經紀
酒店兼差
假日打工
台北酒店經紀
寒暑假打工
專業酒店經紀
酒店藝名
台北酒店
酒店日保
酒店入行
台北禮服店
酒店類型
酒店午場
酒店規定
酒店行政
酒店資訊

goodeda1122 said...

自慰套,自慰器,情趣,自慰套,情趣,視訊交友,充氣娃娃,
性感丁字褲,AV,按摩棒,電動按摩棒,情趣按摩棒,

按摩棒,變頻跳蛋,跳蛋,無線跳蛋,G點,
男女,潤滑液,
SM,情趣內衣,內衣,性感內衣,

角色扮演,角色扮演服,吊帶襪,丁字褲,情趣用品,情趣用品,飛機杯,
自慰套

123 123 said...

Interesting article as for me. I'd like to read a bit more about that theme.
By the way look at the design I've made myself Russian escort

Anonymous said...

北海道スキーツアー

北海道スキー

スキーツアー

Anonymous said...

激安バッテリーならT-TEC

ガールズバー シーズバー

愛鋒頭 said...

wonderful..................................................

123 said...

Look before you leap...................................................

微笑每一天 said...

great msg for me, thanks a lot dude˙﹏˙

songsong_like said...

NewStreetFashion
Ed Hardy
stylish design
Ed Hardy Wholesale
fashion excellent quality
wholesale Ed Hardy
ED Hardy clothing bring you a super surprise!
ed hardy wholesale clothing
The quality is so good
christian audigier
if you really want it
jordan 8
jordan 9
jordan 10

hxl880 said...

tn requin

chaussures tn

chaussure requin


wall stickers

kids bedding

wedding jewelry

wedding cake

beaded lanyard

unlocked cell phones

handheld gps

travel guide

car seat cover

sexual health

wholesale lots


air max
air 90
air 95

kobeli said...

Discount Christian Louboutin
Ugg Boots
ugg boots
Christian Louboutin Shoes
discount ugg boots
discount ugg boots
Christian Louboutin Manolo Blahnik
ugg boots sale
ugg boots sale
Christian Louboutin Boots
cheap ugg boots
cheap ugg boots
Christian Louboutin Pumps
ugg winter boots
ugg winter boots
Buffalo Bills jerseys
Discount Christian Louboutin
Ugg Boots
ugg boots
Christian Louboutin Shoes
discount ugg boots
discount ugg boots
Christian Louboutin Manolo Blahnik
ugg boots sale
ugg boots sale
Christian Louboutin Boots
cheap ugg boots
cheap ugg boots
Christian Louboutin Pumps
ugg winter boots
ugg winter boots
Buffalo Bills jerseys

hxl said...

chaussure requin
chaussures tn
tn requin
air max
air 90
air bw
air

max

air 90
air

chaussures

bottes ugg
ugg classic
bottes

ugg

ugg classic
moncler
doudoune moncler

d123daddy said...

Origins of the hookah come from India along the border of around 1500 Years ago. These hookahs were simple, primitive, and rugged in design, usually made from a coconut shell base and tube with a head attached. hookah

office said...

The Tax Return Crack-Up<4>
Realizing he might have dug himself in there,Microsoft Office 2010the general emphasized that Office 2010he had spent some time as a junior Office 2007officer working "very closely Microsoft Officewith the Israeli air force" and that heMicrosoft Office 2007had found that "more cosmopolitan,Office 2007 key liberal version of the Israeli population" Office 2007 downloadto be just chock full Office 2007 Professionalof that sort of "goodwill" necessary Windows 7to give a bunch of land back Microsoft outlook 2010to the Palestinians.

buy online generic viagra said...

This is very interesting stuff.I like your article.Keep posting and sharing!!

sac lv bag news said...

it is fun day indeed and congratulation sac louis vuitton pas cher,
sac louis vuitton femmes,
sac louis vuitton soldes,
gucci portefeuille femmes
converse Double layer bag shoulder good day

王詩婷 said...

真愛旅舍視頻聊天室
真愛旅舍視頻聊天室
真愛旅舍視頻聊天室
主播聊天室
同城聊天室
視頻聊
情色電影全集
真人裸體視頻
裸體視頻網址
女人赤身裸體視頻
中國裸體視頻網址
視頻網址大全
視頻網址
低調視頻庫網址
做一個愛視頻網址
視頻網址解析
視頻製作網址
真人女裸體視頻
真人裸體聊天視頻
真人裸體網站
真人表演視頻網站
真人秀多人視頻
真人裸體視頻網站
真人裸體電影
視頻真人秀網站
真人在線網頁遊戲
大島優子裸體
視頻網站排行
在線視頻網站你懂的
視頻下載網站
免費視頻聊天網
國外視頻網站
台灣甜心辣妹視訊
台灣免費視訊
聊天室VIP破解版
日本視訊聊天室
視訊聊天下載
怎麼下載視頻
視頻下載網站免費
免費視頻裸聊
免費視頻找女人聊天
台灣辣妹視訊網
台灣辣妹視訊網
歡樂吧視頻聊天室-真人秀視頻聊天室
哪個視頻聊天室最開放-熟女倫理性愛自拍圖片論壇
CF視頻聊天室-成熟女人做愛成人交友網
179視頻聊天室-女性異性按摩視頻
比較開放的視頻聊天室-九聊語音視頻聊天
28聊視頻聊天室-玫瑰情人網同城聊天室
真人秀視頻-同城視頻約炮聊天室
色聊天室網站-一夜情言情小說-聊性的貼吧
色聊聊天室-女子學院1夜情視頻
色聊女的QQ-夜色伊甸園交友網-秀色直播間
色聊網-寂寞同城e夜情交友網-三色午夜秀聊天室
愛聊視頻聊天室-彩虹視頻聊天室下載
寂寞男生的聊天室-彩虹視頻社區聊天室
寂寞同城聊天室破解版-彩虹視頻聊天室
夜裡寂寞視頻聊天室-秀色直播下載
寂寞視頻聊天室-可以聊性的女孩QQ
五色聊天室網站-聊吧秀舞直播間
日本視頻社區聊天室-同城寂寞男女約會
免費寂寞聊天室-晚上寂寞的女人的qq群
免費同城聊天室網站-美女午夜視頻聊天

Unknown said...

寂寞激情視頻-大色堂快播電影-夜色閣
寂寞激情直播間-寂寞女免費視頻交友-夜色閣影院
MM裸聊QQ號碼-視頻演藝聊天室-日本快播A片
k歌娛樂平台-美女視頻同城交友-快播色AV性愛影片
視頻裸聊直播-成人私聊-日本成人之美影院
性感美女一件也不穿-聊性的QQ-天海翼成人電影網
5230性感美女圖片-qq聊天找情人-魯大媽綜合網
真人化妝視頻-BT色情動漫-網上裸聊QQ
5230性感美女不穿衣-寂寞女交友-開放女QQ號
全屏秀性感美女圖片-女人寂寞m視頻-成人動漫BT區
穿越火線性感美女禁圖-女人寂寞m直播間
90後性感美女動態壁紙-九妹成人影院-哪個網站裸聊
2013性感美女熱舞DJ-美國視頻聊天網站-激情同城約會
性感美女6.0全屏大圖-同城視頻聊天一夜情
性感美女鄉村嗩吶視頻-夜寂寞聊天圖片-九妹成人社區
歡樂吧視頻聊天室-夜寂寞聊天直播間-九妹情色社區
歡樂吧下載-成人寂寞一夜情網-九妹成人娛樂網
歡樂吧視頻聊天室下載-PF聊天室-九妹情色中文網
歡樂吧怎麼看片-專業陪聊網-九妹成人影院
歡樂吧聊天室下載-免費的現場裸聊-一級爽歪歪電影網站
歡樂吧多人視頻聊天-中國城多人視頻聊天
歡樂吧VIP破解-888言情小說-新農夫成人導航
歡樂吧聊天室-呱呱找情人-33網址導航
唱吧電腦版-網聊寂寞視頻-33成人導航大全
唱吧電腦版下載-網聊寂寞直播間-零零六色導航
歐美模特兒寫真-酷我唱吧-百姓交友網-寫真集在線播放視頻
王朝聊天室破解-最新女優視頻-語音視頻聊天網站
hi5影片播放-霪霪網視頻-成人視頻交友網-日本女優寫真大全
一夜情裸聊-愛查吧圖片網-色中色西門慶成人導航
楊波裸聊網-情人緣同城交友網-AV動漫番號大全
hi5-色女生的qq-查群網-妞妞在線電影-qq查群網
好聊視頻聊天室-ONS交友俱樂部qq群-快播第七情色影院
好聊視頻聊天室下載-視頻跳舞的女人-貴族色情網站
好聊聊天室下載-農夫綜合網-貴族情SE網-哪個YY直播裸聊
nk4色文學小說-好聊多人視頻聊天下載-貴族色情網小說
好聊多人視頻聊天-哥也色中文娛樂網站-悠悠成人色情網
日本免費視訊網-179視頻聊天室-YOYO色情網
日本免費視訊-179視頻聊天室VIP破解-俺去也午夜影院
179視頻聊天室下載-摸逼網-午夜成人之美網站
179視頻聊天室房間-愛聊北京交友貼吧-俺去擼色午夜
179聊天室-拉拉聊天室-激情電影網-LES聊天室
179聊天室下載-拉拉社區聊天室-色老妹影院
動感之星179妖精視頻-色聊天室網站-色老姐影院
動感小站妖精179視頻-緣來客情人網-老色驢綜合影院
寂寞同城交友vip破解-金瓶梅全集在線觀看-三級電影播放

柯云 said...

2016-06-08keyun
polo outlet
coach outlet store online
fitflop sandals
adidas factory outlet
gucci bags
discount jordans
true religion outlet store
fitflop clearance
michael kors handbags
nfl jerseys
lebron james shoes 13
nike air max uk
tods sale
pandora charms
jordan shoes
ghd hair straighteners
coach outlet
coach outlet clearance
toms shoes
michael kors outlet clearance
burberry handbags
coach outlet store online clearances
coach outlet online
michael kors outlet
hollister clothing store
rolex watches
ray ban sunglasses outlet
michael kors handbags
christian louboutin wedges
coach factory outlet
true religion jeans
michael kors purses
louis vuitton purses
longchamp handbags
michael kors outlet
cheap ray ban sunglasses
louis vuitton outlet
coach outlet clearance

isabella jarosz said...

I found the blog some what interesting in its content wise and easier to understand what they had said. I love if you publish the blogs often.
Title Loans
Title Loans in Alabama
Title Loans in Mississipi
Title Loans in South Carolina

kristina young said...

Thanks for spending your valuable time in delivering the most valuable content here.I loved the way you write and suggest my friends too for getting aware of your blogs.
Thanks,
Quik Pawn Shop

kristina young said...

I found the blog some what interesting in its content wise and easier to understand what they had said. I love if you publish the blogs often.
Pawn Shops in Alabama
Pawn Brokers
Pawn Loans
Pawn Loans in Alabama
Pawn Shops near me