Bing

June 13th, 2009

I like Bing, and the commercials for it have been really clever. The thing is, most of the time I do my searches from the little box in the corner of Safari, and that box is set to Google with no way to change it. Sure, if I was using Firefox or IE that wouldn’t be a problem (Chrome’s out for obvious reasons), but I like Safari, and so do a lot of other Mac users. I think if Microsoft could buy that search bar from Apple, as well as maybe becoming the default search for firefox when it’s installed, then they’d start to see some serious headway in their search traffic growth.

World Malaria Day WTF?

April 25th, 2009

So I was looking at the Malaria No More page and I came across this friendly looking parameter in the source code:

<input type=”hidden” name=”__VIEWSTATE” id=”__VIEWSTATE” value=”/wEPDwUJOTM0NDcxNjI3DxYCHgpNb2RhbExldmVsZhYCAgMPZBYCAgEPZBYCAgMPZBYCZg9kFgICAQ9kFgICAQ9kFgJmD2QWAmYPDxYGHgRTdGVwZh4PTnVtR2l2aW5nTGV2ZWxzAgUeD0Rlc2lnbmF0aW9uSW5mb2RkFgICAg9kFhACAw8PFgIeCkhlYWRlclRleHQFO1RoZSBmb2xsb3dpbmcgZXJyb3IocykgbXVzdCBiZSBjb3JyZWN0ZWQgYmVmb3JlIGNvbnRpbnVpbmc6ZGQCBQ8PFgIeB1Zpc2libGVoZGQCBw8PFgIeBFRleHQFFERvbmF0aW9uIEluZm9ybWF0aW9uZGQCCQ9kFgQCAQ8WAh4GdmFsaWduBQN0b3AWAgIBDw8WAh8GBQdBbW91bnQ6ZGQCAw9kFgICBQ8PZBYCHgVzdHlsZQUJZGlzcGxheTo7FgRmD2QWAmYPEA8WAh8GBQVPdGhlchYEHglpdGVtSW5kZXgFAi0xHgdvbmNsaWNrBRJyZG9fT25DbGljayh0aGlzKTtkZGQCAQ9kFgYCAQ8PFgIfBgUBJGRkAgMPZBYGAgEPDxYCHgdFbmFibGVkaGRkAgMPDxYCHwtoZGQCBA8PFggeBFR5cGULKixTeXN0ZW0uV2ViLlVJLldlYkNvbnRyb2xzLlZhbGlkYXRpb25EYXRhVHlwZQQfC2geCE9wZXJhdG9yCyozU3lzdGVtLldlYi5VSS5XZWJDb250cm9scy5WYWxpZGF0aW9uQ29tcGFyZU9wZXJhdG9yAh4OVmFsdWVUb0NvbXBhcmUFATBkZAIHDw9kFgIfCAUSdmlzaWJpbGl0eTpoaWRkZW47ZAILDxYCHwVoFgRmD2QWAgIBDw8WAh8GBQxEZXNpZ25hdGlvbjpkZAIBD2QWAgIBDxAPFgIeC18hRGF0YUJvdW5kZ2QQFQIAD01hbGFyaWEgTm8gTW9yZRUCAAI0NxQrAwJnZxYBAgFkAg0PFgIfBWhkAg8PFgIfBWgWBAIBDw8WAh4PVmFsaWRhdGlvbkdyb3VwBRVQQzE0NzFfVEJfcG5sRG9uYXRpb25kZAIDD2QWAgIBD2QWAgIBDzwrAAsBAA8WCB4IRGF0YUtleXMWAB4LXyFJdGVtQ291bnQC/////w8eFV8hRGF0YVNvdXJjZUl0ZW1Db3VudAL/////Dx4JUGFnZUNvdW50ZmRkAhEPZBYYZg9kFgJmD2QWAgIBDw8WAh8GBRZBZGRpdGlvbmFsIEluZm9ybWF0aW9uZGQCAQ9kFgRmDxYCHwdkFgICAQ8PFgIfBgUKRnJlcXVlbmN5OmRkAgEPZBYCAgEPZBYCAgEPZBYEAgEPEA8WBB4MQXV0b1Bvc3RCYWNrZx8PZ2QPFgRmAgECAgIDFgQQBQhPbmUgdGltZQUIT25lIHRpbWVnEAUURGF5IDEgb2YgZXZlcnkgbW9udGgFhAU8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtMTYiPz4NCjxSZWN1cnJlbmNlSW5mb3JtYXRpb24geG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQogIDxGcmVxdWVuY3kgeG1sbnM9InVybjpibGFja2JhdWQuUkU3LlhEQVRBIj5Nb250aGx5PC9GcmVxdWVuY3k+DQogIDxQb3NpdGlvbiB4bWxucz0idXJuOmJsYWNrYmF1ZC5SRTcuWERBVEEiPkZpcnN0PC9Qb3NpdGlvbj4NCiAgPFN0YXJ0RGF0ZSB4bWxucz0idXJuOmJsYWNrYmF1ZC5SRTcuWERBVEEiIC8+DQogIDxFbmREYXRlIHhtbG5zPSJ1cm46YmxhY2tiYXVkLlJFNy5YREFUQSIgLz4NCiAgPERheU9mV2VlayB4bWxucz0idXJuOmJsYWNrYmF1ZC5SRTcuWERBVEEiPlN1bmRheTwvRGF5T2ZXZWVrPg0KICA8RGF5IHhtbG5zPSJ1cm46YmxhY2tiYXVkLlJFNy5YREFUQSI+MTwvRGF5Pg0KICA8TW9udGggeG1sbnM9InVybjpibGFja2JhdWQuUkU3LlhEQVRBIj4wPC9Nb250aD4NCiAgPFByb2Nlc3NOb3cgeG1sbnM9InVybjpibGFja2JhdWQuUkU3LlhEQVRBIj5mYWxzZTwvUHJvY2Vzc05vdz4NCjwvUmVjdXJyZW5jZUluZm9ybWF0aW9uPmcQBRtEYXkgMSBvZiBldmVyeSB0aHJlZSBtb250aHMFhgU8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtMTYiPz4NCjxSZWN1cnJlbmNlSW5mb3JtYXRpb24geG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgeG1sbnM6eHNkPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYSI+DQogIDxGcmVxdWVuY3kgeG1sbnM9InVybjpibGFja2JhdWQuUkU3LlhEQVRBIj5RdWFydGVybHk8L0ZyZXF1ZW5jeT4NCiAgPFBvc2l0aW9uIHhtbG5zPSJ1cm46YmxhY2tiYXVkLlJFNy5YREFUQSI+Rmlyc3Q8L1Bvc2l0aW9uPg0KICA8U3RhcnREYXRlIHhtbG5zPSJ1cm46YmxhY2tiYXVkLlJFNy5YREFUQSIgLz4NCiAgPEVuZERhdGUgeG1sbnM9InVybjpibGFja2JhdWQuUkU3LlhEQVRBIiAvPg0KICA8RGF5T2ZXZWVrIHhtbG5zPSJ1cm46YmxhY2tiYXVkLlJFNy5YREFUQSI+U3VuZGF5PC9EYXlPZldlZWs+DQogIDxEYXkgeG1sbnM9InVybjpibGFja2JhdWQuUkU3LlhEQVRBIj4xPC9EYXk+DQogIDxNb250aCB4bWxucz0idXJuOmJsYWNrYmF1ZC5SRTcuWERBVEEiPjA8L01vbnRoPg0KICA8UHJvY2Vzc05vdyB4bWxucz0idXJuOmJsYWNrYmF1ZC5SRTcuWERBVEEiPmZhbHNlPC9Qcm9jZXNzTm93Pg0KPC9SZWN1cnJlbmNlSW5mb3JtYXRpb24+ZxAFF0phbnVhcnkgMyBvZiBldmVyeSB5ZWFyBYUFPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTE2Ij8+DQo8UmVjdXJyZW5jZUluZm9ybWF0aW9uIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOnhzZD0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEiPg0KICA8RnJlcXVlbmN5IHhtbG5zPSJ1cm46YmxhY2tiYXVkLlJFNy5YREFUQSI+QW5udWFsbHk8L0ZyZXF1ZW5jeT4NCiAgPFBvc2l0aW9uIHhtbG5zPSJ1cm46YmxhY2tiYXVkLlJFNy5YREFUQSI+Rmlyc3Q8L1Bvc2l0aW9uPg0KICA8U3RhcnREYXRlIHhtbG5zPSJ1cm46YmxhY2tiYXVkLlJFNy5YREFUQSIgLz4NCiAgPEVuZERhdGUgeG1sbnM9InVybjpibGFja2JhdWQuUkU3LlhEQVRBIiAvPg0KICA8RGF5T2ZXZWVrIHhtbG5zPSJ1cm46YmxhY2tiYXVkLlJFNy5YREFUQSI+U3VuZGF5PC9EYXlPZldlZWs+DQogIDxEYXkgeG1sbnM9InVybjpibGFja2JhdWQuUkU3LlhEQVRBIj4zPC9EYXk+DQogIDxNb250aCB4bWxucz0idXJuOmJsYWNrYmF1ZC5SRTcuWERBVEEiPjE8L01vbnRoPg0KICA8UHJvY2Vzc05vdyB4bWxucz0idXJuOmJsYWNrYmF1ZC5SRTcuWERBVEEiPmZhbHNlPC9Qcm9jZXNzTm93Pg0KPC9SZWN1cnJlbmNlSW5mb3JtYXRpb24+ZxYBZmQCAw9kFggCAQ8WAh8FaBYCZg9kFgQCAQ8PFgIfBgUDT246ZGQCAw8QDxYCHw9nZGQWAGQCAw8WAh8FaBYCZg9kFgYCAQ8PFgIfBgUDT246ZGQCAw8QDxYCHw9nZGQWAGQCBQ8QDxYCHw9nZGQWAGQCBQ8WAh8FaBYCZg9kFggCAQ8PFgIfBgUDT246ZGQCAw8QDxYCHwYFA0RheWRkZGQCBQ8QDxYCHw9nZGQWAGQCCQ8WAh8IBQlkaXNwbGF5OjsWBAIBD2QWAgIBDxAPFgIfBgUDVGhlZGRkZAICD2QWBAIBDxAPFgIfD2dkZBYAZAIDDxAPFgIfD2dkZBYAZAIHDxYCHwVoFgJmD2QWBgIBDw8WAh8GBQlTdGFydGluZzpkZAIDDw8WAh8GBQk0LzI1LzIwMDlkZAIFDw8WAh8GBQdFbmRpbmc6ZGQCAg8WAh8FaBYEZg9kFgICAQ8PFgIfBgUKQ29ycG9yYXRlOmRkAgEPZBYCAgEPEA8WAh8GBSdUaGlzIGRvbmF0aW9uIGlzIG9uIGJlaGFsZiBvZiBhIGNvbXBhbnlkZGRkAgMPFgIfBWgWBGYPZBYCAgEPDxYCHwYFCkFub255bW91czpkZAIBD2QWAgIBDxAPFgIfBgUqSSBwcmVmZXIgdG8gbWFrZSB0aGlzIGRvbmF0aW9uIGFub255bW91c2×5ZGRkZAIEDxYCHwVoFgJmD2QWAgIBDw8WAh8GBQlDb21tZW50czpkZAIFDxYCHwVoZAIHDxYCHwVoFgRmD2QWAgIBDw8WAh8GBSBIb3cgZGlkIHlvdSBoZWFyIGFib3V0IG91ciBzaXRlOmRkAgEPZBYGAgEPEA8WAh8PZ2QQFQEAFQEAFCsDAWcWAWZkAgMPDxYCHwVoZGQCBQ8PFgIfC2hkZAIID2QWBAIBDxAPFgIfBgUYU2VuZCBhbiBlQ2FyZCAob3B0aW9uYWwpZGRkZAIDDxYCHwgFDWRpc3BsYXk6bm9uZTsWAmYPZBYeAgEPDxYCHwYFEUNob29zZSB5b3VyIGVDYXJkZGQCAw9kFgQCAQ8PFgIfBgUSQnJvd3NlIGJ5IGNhdGVnb3J5ZGQCAw8QDxYCHw9nZGQWAGQCBQ9kFgJmD2QWAgIBDxQrAAIPFgQfD2cfEgL/////D2RkZAIHDw8WAh8GBRJTZW5kZXIgaW5mb3JtYXRpb25kZAIJD2QWAgIBDzwrAA0CAA8WBB8PZx8SZmQBEBYBAgEWATwrAAUBABYCHwQFDkVtYWlsIEFkZHJlc3M6FgECBmQCCw8PFgIfBgUVUmVjaXBpZW50IGluZm9ybWF0aW9uZGQCDQ9kFgQCAQ88KwANAgAPFgQfD2cfEmZkARAWAQIBFgE8KwAFAQAWAh8EBQ5FbWFpbCBBZGRyZXNzOhYBAgZkAgMPDxYEHwYFFUFkZCBhbm90aGVyIHJlY2lwaWVudB4LTmF2aWdhdGVVcmwFTWphdmFzY3JpcHQ6QkxBQ0tCQVVELm5ldGNvbW11bml0eS5QQzE0NzFfRUNhcmRQYXJ0RGlzcGxheS5hZGRSZWNpcGllbnQodHJ1ZSk7ZGQCDw9kFgYCAQ8PFgIfBgUQUGVyc29uYWwgbWVzc2FnZWRkAgMPZBYCZg9kFgZmDxYEDxYSHgxCcmVha0VsZW1lbnQLKWZDdXRlRWRpdG9yLkJyZWFrRWxlbWVudCwgQ3V0ZUVkaXRvciwgVmVyc2lvbj02LjAuMC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPTM4NThhYTY4MDJiMTIyM2ECHhpDb252ZXJ0SFRNTFRhZ3N0b0xvd2VyY2FzZWceFEVkaXRvcld5c2l3eWdNb2RlQ3NzBRRzdHlsZXNoZWV0MC5jc3M/aWQ9MB4HSGVscFVybAVlaHR0cDovL3d3dy5ibGFja2JhdWQuY29tL3N1cHBvcnQvbmV0Y29tbXVuaXR5L25ldGNvbW01Ni9VUy9CQk5DL2luZGV4Lmh0bWw/Y29udGV4dD1IZWxwRmlsZSZ0b3BpYz0xNDUeEEF1dG9QYXJzZUNsYXNzZXNoHg9FZGl0b3JCb2R5U3R5bGVlHg1TaG93Qm90dG9tQmFyaB4VRW5hYmxlU3RyaXBTY3JpcHRUYWdzBQVGYWxzZR4RQ29uZmlndXJhdGlvblBhdGgFSX4vQ3V0ZVNvZnRfQ2xpZW50L0N1dGVFZGl0b3IvQ29uZmlndXJhdGlvbi9BdXRvY29uZmlndXJlL2JiX3NpbXBsZS5jb25maWdkZGRlZAICD2QWAmYPZBYCAgcPZBYCAgQPZBYCAgEPZBYEAgMPZBYCZg9kFgQCAQ9kFgICBw8QZGQWAGQCAw9kFgQCAQ8WAh8FaGQCBw8QZGQWAGQCBQ9kFgJmD2QWAgIBD2QWAgIBD2QWAgIBD2QWAmYPZBYCAgUPZBYCAg0PEGRkFgBkAgYPZBYCAgEPZBYCAgEPZBYEAgEPZBYCAgIPZBYCAgEPEA8WAh8PZ2RkFgBkAgcPEA8WAh8PZ2RkFgFmZAIFDw8WAh8FaGRkAhEPDxYCHwYFDFNlbmQgb3B0aW9uc2RkAhMPEA8WAh8GBQ5TZW5kIGVDYXJkIG9uOmRkZGQCFw8QDxYCHwYFHVNlbmQgbWUgYSBjb3B5IG9mIGVhY2ggZW1haWwuZGRkZAIZDxAPFgIfBgUsRG8gbm90IHNlbmQsIGFzIEkgcHJlZmVyIHRvIHByaW50IHRoZSBlQ2FyZC5kZGRkAhsPDxYCHwYFDVByZXZpZXcgZUNhcmRkZAIdD2QWAgICDw8WAh8GBQ1QcmV2aWV3IGVDYXJkZGQCHw9kFgICAg8PFgIfBgULUERGIHZlcnNpb25kZAIJD2QWHgIBDw8WAh8GBRNCaWxsaW5nIEluZm9ybWF0aW9uZGQCAw8PFgIfBgUGVGl0bGU6ZGQCBQ8QDxYCHw9nZBAVLgAHQWRtaXJhbApBbWJhc3NhZG9yCEJhcm9uZXNzB0Jyb3RoZXIFQ2FwdC4KQ2hhbmNlbGxvcgVDbWRyLgRDb2wuC0NvbmdyZXNzbWFuA0RyLgREcnMuBkZhbWlseQZGYXRoZXIHR2VuZXJhbAhHb3Zlcm5vcghILkUuIFNpcg5IaXMgRXhjZWxsZW5jeQlIb25vcmFibGUESW1hbQVKdWRnZQRMYWR5BExvcmQDTHQuBU1hZGFtBU1ham9yBk1hc3RlcgVNYXlvcghNaW5pc3RlcgRNaXNzA01yLgRNcnMuA01zLgZQYXN0b3IJUHJlc2lkZW50BlByaW5jZQhQcmluY2VzcwVQcm9mLgVSYWJiaQZSZWN0b3IIUmV2ZXJlbmQHU2VuYXRvcgNTaXIJU2lyL01hZGFtBlNpc3Rlcg1UaGUgSG9ub3JhYmxlFS4AAjIwAjIyAzQ5NQIxNAIxNgM0OTICMTgCMTkDODY1ATQCMjgEMTA5MwIxMwIyMQIyNAM1MDYEMTA5MgM1MDEDODY0ATkDNDYyAzQ5MwIxNQIyNgIxNwE2BDEyNzkDODA4ATUBMQEzATIEMTQ0MAM4NzIEMTQ4MgM1MDQBNwIxMAM3ODcCMTECMjMCMjUCMjcCMTIBOBQrAy5nZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZGQCCQ8PFgIfBgULRmlyc3QgbmFtZTpkZAIPDw8WAh8GBQpMYXN0IG5hbWU6ZGQCEw8WAh8FaBYCZg9kFgICAQ8PFgIfBgUIQ29tcGFueTpkZAIVDw8WBB4GYWRkclZHBQZQQzE0NzEeCmFkZHJmb3JtYXQLKYoBQmxhY2tiYXVkLldlYi5Db250ZW50LkNvcmUuUkU3U2VydmljZS5FQWRkcmVzc0Zvcm1hdHMsIEJsYWNrYmF1ZC5XZWIuQ29udGVudC5Db3JlLCBWZXJzaW9uPTUuNi4xMzEuNCwgQ3VsdHVyZT1uZXV0cmFsLCBQdWJsaWNLZXlUb2tlbj1udWxsAGQWFAIBDxYCHgVjbGFzcwUqQkJGaWVsZENhcHRpb24gRG9uYXRpb25DYXB0dXJlRmllbGRDYXB0aW9uFgICAQ8PFgIfBgUIQ291bnRyeTpkZAIDDxYCHyIFOXRhTGVmdCBCQkZpZWxkQ29udHJvbENlbGwgRG9uYXRpb25DYXB0dXJlRmllbGRDb250cm9sQ2VsbBYCAgEPEA8WBh8PZx4IQ3NzQ2xhc3MFKkJCRm9ybVNlbGVjdExpc3QgRG9uYXRpb25DYXB0dXJlU2VsZWN0TGlzdB4EXyFTQgICZBAVUwALQWZnaGFuaXN0YW4HQWxnZXJpYQ5BbWVyaWNhbiBTYW1vYQhBbmd1aWxsYQlBcmdlbnRpbmEFQXJ1YmEJQXVzdHJhbGlhB0F1c3RyaWEHQmFoYW1hcwhCYXJiYWRvcwdCZWxnaXVtB0Jlcm11ZGEGQnJhemlsBkJydW5laQZDYW5hZGEOQ2F5bWFuIElzbGFuZHMFQ2hpbmEIQ29sb21iaWEOQ3plY2ggUmVwdWJsaWMHRGVubWFyawdFY3VhZG9yBUVneXB0CEV0aGlvcGlhBkZyYW5jZQdHZXJtYW55BUdoYW5hDUdyZWF0IEJyaXRhaW4GR3JlZWNlCUdyZWVubGFuZAlIb25nIEtvbmcHSWNlbGFuZAVJbmRpYQlJbmRvbmVzaWEHSXJlbGFuZAZJc3JhZWwFSXRhbHkFSmFwYW4FS2VueWEFS29yZWENS29yZWEsIFJlcCBPZgZLdXdhaXQKTHV4ZW1ib3VyZwZNYWxhd2kITWFsYXlzaWEFTWFsdGEGTWV4aWNvC05ldGhlcmxhbmRzC05ldyBaZWFsYW5kEE5vcnRoIE1hcmlhbmEgSXMGTm9yd2F5CFBha2lzdGFuC1BoaWxpcHBpbmVzBlBvbGFuZAhQb3J0dWdhbAtQdWVydG8gUmljbwdSb21hbmlhElJ1c3NpYW4gRmVkZXJhdGlvbgZSd2FuZGEMU2F1ZGkgQXJhYmlhCFNjb3RsYW5kB1NlbmVnYWwJU2luZ2Fwb3JlCFNsb3Zha2lhDFNvdXRoIEFmcmljYQtTb3V0aCBLb3JlYQVTcGFpbgZTd2VkZW4LU3dpdHplcmxhbmQGVGFpd2FuCFRhbnphbmlhCFRoYWlsYW5kD1RoZSBOZXRoZXJsYW5kcxhUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMGVWdhbmRhFFVuaXRlZCBBcmFiIEVtaXJhdGVzDlVuaXRlZCBLaW5nZG9tDVVuaXRlZCBTdGF0ZXMaVVNBIE1pbm9yIE91dGx5aW5nIElzbGFuZHMJVmVuZXp1ZWxhBVdhbGVzCll1Z29zbGF2aWEGWmFtYmlhFVMAC0FmZ2hhbmlzdGFuB0FsZ2VyaWEOQW1lcmljYW4gU2Ftb2EIQW5ndWlsbGEJQXJnZW50aW5hBUFydWJhCUF1c3RyYWxpYQdBdXN0cmlhB0JhaGFtYXMIQmFyYmFkb3MHQmVsZ2l1bQdCZXJtdWRhBkJyYXppbAZCcnVuZWkGQ2FuYWRhDkNheW1hbiBJc2xhbmRzBUNoaW5hCENvbG9tYmlhDkN6ZWNoIFJlcHVibGljB0Rlbm1hcmsHRWN1YWRvcgVFZ3lwdAhFdGhpb3BpYQZGcmFuY2UHR2VybWFueQVHaGFuYQ1HcmVhdCBCcml0YWluBkdyZWVjZQlHcmVlbmxhbmQJSG9uZyBLb25nB0ljZWxhbmQFSW5kaWEJSW5kb25lc2lhB0lyZWxhbmQGSXNyYWVsBUl0YWx5BUphcGFuBUtlbnlhBUtvcmVhDUtvcmVhLCBSZXAgT2YGS3V3YWl0Ckx1eGVtYm91cmcGTWFsYXdpCE1hbGF5c2lhBU1hbHRhBk1leGljbwtOZXRoZXJsYW5kcwtOZXcgWmVhbGFuZBBOb3J0aCBNYXJpYW5hIElzBk5vcndheQhQYWtpc3RhbgtQaGlsaXBwaW5lcwZQb2xhbmQIUG9ydHVnYWwLUHVlcnRvIFJpY28HUm9tYW5pYRJSdXNzaWFuIEZlZGVyYXRpb24GUndhbmRhDFNhdWRpIEFyYWJpYQhTY290bGFuZAdTZW5lZ2FsCVNpbmdhcG9yZQhTbG92YWtpYQxTb3V0aCBBZnJpY2ELU291dGggS29yZWEFU3BhaW4GU3dlZGVuC1N3aXR6ZXJsYW5kBlRhaXdhbghUYW56YW5pYQhUaGFpbGFuZA9UaGUgTmV0aGVybGFuZHMYVHVya3MgYW5kIENhaWNvcyBJc2xhbmRzBlVnYW5kYRRVbml0ZWQgQXJhYiBFbWlyYXRlcw5Vbml0ZWQgS2luZ2RvbQ1Vbml0ZWQgU3RhdGVzGlVTQSBNaW5vciBPdXRseWluZyBJc2xhbmRzCVZlbmV6dWVsYQVXYWxlcwpZdWdvc2xhdmlhBlphbWJpYRQrA1NnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZxYBAk1kAgUPFgIfIgUqQkJGaWVsZENhcHRpb24gRG9uYXRpb25DYXB0dXJlRmllbGRDYXB0aW9uFgICAQ8PFgIfBgUOQWRkcmVzcyBsaW5lczpkZAIHDxYCHyIFOXRhTGVmdCBCQkZpZWxkQ29udHJvbENlbGwgRG9uYXRpb25DYXB0dXJlRmllbGRDb250cm9sQ2VsbBYEAgEPDxYEHyMFJkJCRm9ybVRleHRBcmVhIERvbmF0aW9uQ2FwdHVyZVRleHRBcmVhHyQCAmRkAgIPDxYCHxAFBlBDMTQ3MWRkAgkPFgIfIgU8QkJGb3JtUmVxdWlyZWRGaWVsZE1hcmtlciBEb25hdGlvbkNhcHR1cmVSZXF1aXJlZEZpZWxkTWFya2VyZAILDxYCHwVnFhICAQ8WAh8iBSpCQkZpZWxkQ2FwdGlvbiBEb25hdGlvbkNhcHR1cmVGaWVsZENhcHRpb24WAgIBDw8WAh8GBQVDaXR5OmRkAgIPFgIfIgU5dGFMZWZ0IEJCRmllbGRDb250cm9sQ2VsbCBEb25hdGlvbkNhcHR1cmVGaWVsZENvbnRyb2xDZWxsFgQCAQ8PFgQfIwUkQkJGb3JtVGV4dGJveCBEb25hdGlvbkNhcHR1cmVUZXh0Ym94HyQCAmRkAgIPDxYCHxAFBlBDMTQ3MWRkAgMPFgIfIgU8QkJGb3JtUmVxdWlyZWRGaWVsZE1hcmtlciBEb25hdGlvbkNhcHR1cmVSZXF1aXJlZEZpZWxkTWFya2VyZAIFDxYCHyIFKkJCRmllbGRDYXB0aW9uIERvbmF0aW9uQ2FwdHVyZUZpZWxkQ2FwdGlvbhYCAgEPDxYCHwYFBlN0YXRlOmRkAgYPFgIfIgU5dGFMZWZ0IEJCRmllbGRDb250cm9sQ2VsbCBEb25hdGlvbkNhcHR1cmVGaWVsZENvbnRyb2xDZWxsFgQCAQ8QDxYGHw9nHyMFKkJCRm9ybVNlbGVjdExpc3QgRG9uYXRpb25DYXB0dXJlU2VsZWN0TGlzdB8kAgJkEBVWDzxQbGVhc2UgU2VsZWN0PgNBcmkDRGlzA05ldwJBQQJBRQJBTAJBSwJBQgJBUwJBUAJBWgJBUgJCQwJDQQJDWgJDTwJDVAJERQJEQwJGTQJGTAJHQQJHVQJISQJJRAJJTAJJTgJJQQJLUwJLWQJMQQJNRQJNQgJNSAJNRAJNQQJNSQJNTgJNUwJNTwJNVAJORQJOVgJOQgJOSAJOSgJOTQJOWQJOTAJOQwJORAJNUAJOVAJOUwJOVQJPSAJPSwJPTgJPUgJQVwJQQQJQRQJQUgJRQwJSSQJTQQJTSwJTQwJTRAJUTgJUWAJVVAJWVAJWSQJWQQJXQQJXVgJXSQJXWQJZVANOU1cDUUxEA1ZJQwNUQVMDTm9uFVYCLTEDQXJpA0RpcwNOZXcCQUECQUUCQUwCQUsCQUICQVMCQVACQVoCQVICQkMCQ0ECQ1oCQ08CQ1QCREUCREMCRk0CRkwCR0ECR1UCSEkCSUQCSUwCSU4CSUECS1MCS1kCTEECTUUCTUICTUgCTUQCTUECTUkCTU4CTVMCTU8CTVQCTkUCTlYCTkICTkgCTkoCTk0CTlkCTkwCTkMCTkQCTVACTlQCTlMCTlUCT0gCT0sCT04CT1ICUFcCUEECUEUCUFICUUMCUkkCU0ECU0sCU0MCU0QCVE4CVFgCVVQCVlQCVkkCVkECV0ECV1YCV0kCV1kCWVQDTlNXA1FMRANWSUMDVEFTA05vbhQrA1ZnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2dnZ2RkAgIPDxYCHxAFBlBDMTQ3MWRkAgcPFgIfIgU8QkJGb3JtUmVxdWlyZWRGaWVsZE1hcmtlciBEb25hdGlvbkNhcHR1cmVSZXF1aXJlZEZpZWxkTWFya2VyZAIJDxYCHyIFKkJCRmllbGRDYXB0aW9uIERvbmF0aW9uQ2FwdHVyZUZpZWxkQ2FwdGlvbhYCAgEPDxYCHwYFBFpJUDpkZAIKDxYCHyIFOXRhTGVmdCBCQkZpZWxkQ29udHJvbENlbGwgRG9uYXRpb25DYXB0dXJlRmllbGRDb250cm9sQ2VsbBYEAgEPDxYEHyMFJEJCRm9ybVRleHRib3ggRG9uYXRpb25DYXB0dXJlVGV4dGJveB8kAgJkZAICDw8WAh8QBQZQQzE0NzFkZAILDxYCHyIFPEJCRm9ybVJlcXVpcmVkRmllbGRNYXJrZXIgRG9uYXRpb25DYXB0dXJlUmVxdWlyZWRGaWVsZE1hcmtlcmQCDQ9kFg4CAQ8WAh8iBSpCQkZpZWxkQ2FwdGlvbiBEb25hdGlvbkNhcHR1cmVGaWVsZENhcHRpb24WAgIBDw8WAh8GBQVDaXR5OmRkAgIPFgIfIgU5dGFMZWZ0IEJCRmllbGRDb250cm9sQ2VsbCBEb25hdGlvbkNhcHR1cmVGaWVsZENvbnRyb2xDZWxsFgQCAQ8PFgQfIwUkQkJGb3JtVGV4dGJveCBEb25hdGlvbkNhcHR1cmVUZXh0Ym94HyQCAmRkAgIPDxYCHxAFBlBDMTQ3MWRkAgMPFgIfIgU8QkJGb3JtUmVxdWlyZWRGaWVsZE1hcmtlciBEb25hdGlvbkNhcHR1cmVSZXF1aXJlZEZpZWxkTWFya2VyZAIFDxYCHyIFKkJCRmllbGRDYXB0aW9uIERvbmF0aW9uQ2FwdHVyZUZpZWxkQ2FwdGlvbhYCAgEPDxYCHwYFB0NvdW50eTpkZAIGDxYCHyIFOXRhTGVmdCBCQkZpZWxkQ29udHJvbENlbGwgRG9uYXRpb25DYXB0dXJlRmllbGRDb250cm9sQ2VsbBYCAgEPEA8WBh8PZx8jBSpCQkZvcm1TZWxlY3RMaXN0IERvbmF0aW9uQ2FwdHVyZVNlbGVjdExpc3QfJAICZGQWAGQCCA8WAh8iBSpCQkZpZWxkQ2FwdGlvbiBEb25hdGlvbkNhcHR1cmVGaWVsZENhcHRpb24WAgIBDw8WAh8GBQlQb3N0Y29kZTpkZAIJDxYCHyIFOXRhTGVmdCBCQkZpZWxkQ29udHJvbENlbGwgRG9uYXRpb25DYXB0dXJlRmllbGRDb250cm9sQ2VsbBYCAgEPDxYEHyMFJEJCRm9ybVRleHRib3ggRG9uYXRpb25DYXB0dXJlVGV4dGJveB8kAgJkZAIPD2QWEgIBDxYCHyIFKkJCRmllbGRDYXB0aW9uIERvbmF0aW9uQ2FwdHVyZUZpZWxkQ2FwdGlvbhYCAgEPDxYCHwYFBUNpdHk6ZGQCAg8WAh8iBTl0YUxlZnQgQkJGaWVsZENvbnRyb2xDZWxsIERvbmF0aW9uQ2FwdHVyZUZpZWxkQ29udHJvbENlbGwWBAIBDw8WBB8jBSRCQkZvcm1UZXh0Ym94IERvbmF0aW9uQ2FwdHVyZVRleHRib3gfJAICZGQCAg8PFgIfEAUGUEMxNDcxZGQCAw8WAh8iBTxCQkZvcm1SZXF1aXJlZEZpZWxkTWFya2VyIERvbmF0aW9uQ2FwdHVyZVJlcXVpcmVkRmllbGRNYXJrZXJkAgUPFgIfIgUqQkJGaWVsZENhcHRpb24gRG9uYXRpb25DYXB0dXJlRmllbGRDYXB0aW9uFgICAQ8PFgIfBgUJUHJvdmluY2U6ZGQCBg8WAh8iBTl0YUxlZnQgQkJGaWVsZENvbnRyb2xDZWxsIERvbmF0aW9uQ2FwdHVyZUZpZWxkQ29udHJvbENlbGwWBAIBDxAPFgYfD2cfIwUqQkJGb3JtU2VsZWN0TGlzdCBEb25hdGlvbkNhcHR1cmVTZWxlY3RMaXN0HyQCAmRkFgBkAgIPDxYCHxAFBlBDMTQ3MWRkAgcPFgIfIgU8QkJGb3JtUmVxdWlyZWRGaWVsZE1hcmtlciBEb25hdGlvbkNhcHR1cmVSZXF1aXJlZEZpZWxkTWFya2VyZAIJDxYCHyIFKkJCRmllbGRDYXB0aW9uIERvbmF0aW9uQ2FwdHVyZUZpZWxkQ2FwdGlvbhYCAgEPDxYCHwYFDFBvc3RhbCBDb2RlOmRkAgoPFgIfIgU5dGFMZWZ0IEJCRmllbGRDb250cm9sQ2VsbCBEb25hdGlvbkNhcHR1cmVGaWVsZENvbnRyb2xDZWxsFgQCAQ8PFgQfIwUkQkJGb3JtVGV4dGJveCBEb25hdGlvbkNhcHR1cmVUZXh0Ym94HyQCAmRkAgIPDxYCHxAFBlBDMTQ3MWRkAgsPFgIfIgU8QkJGb3JtUmVxdWlyZWRGaWVsZE1hcmtlciBEb25hdGlvbkNhcHR1cmVSZXF1aXJlZEZpZWxkTWFya2VyZAIRD2QWEgIBDxYCHyIFKkJCRmllbGRDYXB0aW9uIERvbmF0aW9uQ2FwdHVyZUZpZWxkQ2FwdGlvbhYCAgEPDxYCHwYFB1N1YnVyYjpkZAICDxYCHyIFOXRhTGVmdCBCQkZpZWxkQ29udHJvbENlbGwgRG9uYXRpb25DYXB0dXJlRmllbGRDb250cm9sQ2VsbBYEAgEPDxYEHyMFJEJCRm9ybVRleHRib3ggRG9uYXRpb25DYXB0dXJlVGV4dGJveB8kAgJkZAICDw8WAh8QBQZQQzE0NzFkZAIDDxYCHyIFPEJCRm9ybVJlcXVpcmVkRmllbGRNYXJrZXIgRG9uYXRpb25DYXB0dXJlUmVxdWlyZWRGaWVsZE1hcmtlcmQCBQ8WAh8iBSpCQkZpZWxkQ2FwdGlvbiBEb25hdGlvbkNhcHR1cmVGaWVsZENhcHRpb24WAgIBDw8WAh8GBQZTdGF0ZTpkZAIGDxYCHyIFOXRhTGVmdCBCQkZpZWxkQ29udHJvbENlbGwgRG9uYXRpb25DYXB0dXJlRmllbGRDb250cm9sQ2VsbBYEAgEPEA8WBh8PZx8jBSpCQkZvcm1TZWxlY3RMaXN0IERvbmF0aW9uQ2FwdHVyZVNlbGVjdExpc3QfJAICZGQWAGQCAg8PFgIfEAUGUEMxNDcxZGQCBw8WAh8iBTxCQkZvcm1SZXF1aXJlZEZpZWxkTWFya2VyIERvbmF0aW9uQ2FwdHVyZVJlcXVpcmVkRmllbGRNYXJrZXJkAgkPFgIfIgUqQkJGaWVsZENhcHRpb24gRG9uYXRpb25DYXB0dXJlRmllbGRDYXB0aW9uFgICAQ8PFgIfBgUJUG9zdGNvZGU6ZGQCCg8WAh8iBTl0YUxlZnQgQkJGaWVsZENvbnRyb2xDZWxsIERvbmF0aW9uQ2FwdHVyZUZpZWxkQ29udHJvbENlbGwWBAIBDw8WBB8jBSRCQkZvcm1UZXh0Ym94IERvbmF0aW9uQ2FwdHVyZVRleHRib3gfJAICZGQCAg8PFgIfEAUGUEMxNDcxZGQCCw8WAh8iBTxCQkZvcm1SZXF1aXJlZEZpZWxkTWFya2VyIERvbmF0aW9uQ2FwdHVyZVJlcXVpcmVkRmllbGRNYXJrZXJkAhMPZBYQAgEPFgIfIgUqQkJGaWVsZENhcHRpb24gRG9uYXRpb25DYXB0dXJlRmllbGRDYXB0aW9uFgICAQ8PFgIfBgUHU3VidXJiOmRkAgIPFgIfIgU5dGFMZWZ0IEJCRmllbGRDb250cm9sQ2VsbCBEb25hdGlvbkNhcHR1cmVGaWVsZENvbnRyb2xDZWxsFgYCAQ8QDxYGHw9nHyMFKkJCRm9ybVNlbGVjdExpc3QgRG9uYXRpb25DYXB0dXJlU2VsZWN0TGlzdB8kAgJkZBYAZAICDw8WBB8jBSRCQkZvcm1UZXh0Ym94IERvbmF0aW9uQ2FwdHVyZVRleHRib3gfJAICZGQCBA8PFgIfEAUGUEMxNDcxZGQCAw8WAh8iBTxCQkZvcm1SZXF1aXJlZEZpZWxkTWFya2VyIERvbmF0aW9uQ2FwdHVyZVJlcXVpcmVkRmllbGRNYXJrZXJkAgUPFgIfIgUqQkJGaWVsZENhcHRpb24gRG9uYXRpb25DYXB0dXJlRmllbGRDYXB0aW9uFgICAQ8PFgIfBgUFQ2l0eTpkZAIGDxYCHyIFOXRhTGVmdCBCQkZpZWxkQ29udHJvbENlbGwgRG9uYXRpb25DYXB0dXJlRmllbGRDb250cm9sQ2VsbBYEAgEPEA8WBh8PZx8jBSpCQkZvcm1TZWxlY3RMaXN0IERvbmF0aW9uQ2FwdHVyZVNlbGVjdExpc3QfJAICZGQWAGQCAg8PFgIfEAUGUEMxNDcxZGQCBw8WAh8iBTxCQkZvcm1SZXF1aXJlZEZpZWxkTWFya2VyIERvbmF0aW9uQ2FwdHVyZVJlcXVpcmVkRmllbGRNYXJrZXJkAgkPFgIfIgUqQkJGaWVsZENhcHRpb24gRG9uYXRpb25DYXB0dXJlRmllbGRDYXB0aW9uFgICAQ8PFgIfBgUKUG9zdCBDb2RlOmRkAgoPFgIfIgU5dGFMZWZ0IEJCRmllbGRDb250cm9sQ2VsbCBEb25hdGlvbkNhcHR1cmVGaWVsZENvbnRyb2xDZWxsFgICAQ8PFgQfIwUkQkJGb3JtVGV4dGJveCBEb25hdGlvbkNhcHR1cmVUZXh0Ym94HyQCAmRkAhcPDxYCHwYFBlBob25lOmRkAhsPFgIfBWhkAh0PDxYCHwYFBkVtYWlsOmRkAiMPZBYMAgEPDxYCHwYFE1BheW1lbnQgSW5mb3JtYXRpb25kZAIDDxYCHwVoFgRmD2QWAgIBDw8WAh8GBQ9QYXltZW50IE1ldGhvZDpkZAIBD2QWAgIBDxAPFgIfD2dkEBUBC0NyZWRpdCBDYXJkFQEBMBQrAwFnFgFmZAIFDxYCHwVoFgICAQ9kFgICAQ8PFgIfBgUBJGRkAgcPZBYaAgEPDxYCHwYFEkNhcmRob2xkZXIncyBOYW1lOmRkAgUPDxYCHwYFE0NyZWRpdCBDYXJkIE51bWJlcjpkZAIJDw8WAh8GBQpDYXJkIFR5cGU6ZGQCCw8QDxYCHw9nZBAVBgAKTWFzdGVyQ2FyZARWaXNhEEFtZXJpY2FuIEV4cHJlc3MIRGlzY292ZXIMRGluZXIncyBDbHViFQYAATEBMgE0ATgCMzIUKwMGZ2dnZ2dnZGQCDQ8WAh8FaBYEZg9kFgICAQ8PFgIfBgULVmFsaWQgRnJvbTpkZAIBD2QWBAIBDxAPFgIfD2dkZBYAZAIDDxAPFgIfD2dkZBYAZAIPDw8WAh8GBRBDYXJkIEV4cGlyYXRpb246ZGQCEQ8QDxYCHw9nZBAVDQADSmFuA0ZlYgNNYXIDQXByA01heQNKdW4DSnVsA0F1ZwNTZXADT2N0A05vdgNEZWMVDQABMQEyATMBNAE1ATYBNwE4ATkCMTACMTECMTIUKwMNZ2dnZ2dnZ2dnZ2dnZ2RkAhQPEA8WAh8PZ2QQFRAABDIwMDkEMjAxMAQyMDExBDIwMTIEMjAxMwQyMDE0BDIwMTUEMjAxNgQyMDE3BDIwMTgEMjAxOQQyMDIwBDIwMjEEMjAyMgQyMDIzFRAABDIwMDkEMjAxMAQyMDExBDIwMTIEMjAxMwQyMDE0BDIwMTUEMjAxNgQyMDE3BDIwMTgEMjAxOQQyMDIwBDIwMjEEMjAyMgQyMDIzFCsDEGdnZ2dnZ2dnZ2dnZ2dnZ2dkZAIWDxYCHwVoFgJmD2QWAgIBDw8WAh8GBQ1Jc3N1ZSBOdW1iZXI6ZGQCGA8PFgIfBgUTQ2FyZCBTZWN1cml0eSBDb2RlOmRkAhsPDxYCHxYFHGphdmFzY3JpcHQ6RG9uYXRpb25DU0NIZWxwKClkZAIdDxYCHwVoZAIjDw8WAh4UVmFsaWRhdGlvbkV4cHJlc3Npb24FEVx4MjAqXGR7Myw0fVx4MjAqZGQCCQ8WAh8FaBYSAgIPDxYCHwYFFkZpbmFuY2lhbCBJbnN0aXR1dGlvbjpkZAIGDw8WAh8GBQxCcmFuY2ggTmFtZTpkZAIKDw8WAh8GBQ9Sb3V0aW5nIE51bWJlcjpkZAIPDw8WAh8WBR1qYXZhc2NyaXB0OkRvbmF0aW9uQmFua0hlbHAoKWRkAhEPDxYCHwYFD0FjY291bnQgTnVtYmVyOmRkAhUPZBYEZg9kFgICAQ8PFgIfBgUNQWNjb3VudCBUeXBlOmRkAgEPZBYCAgEPEA8WAh8PZ2QQFQQACENoZWNraW5nB1NhdmluZ3MFT3RoZXIVBAABMQEyATMUKwMEZ2dnZxYBZmQCFw8PFgIfBgUWQWNjb3VudCBIb2xkZXIncyBOYW1lOmRkAhsPZBYCZg9kFgICAQ8PFgIfBgUFRGF0ZTpkZAIcD2QWAmYPZBYCAgEPDxYCHwYFF09yaWdpbmF0b3IncyBJRCBOdW1iZXI6ZGQCCw8WAh8FaBYGAgEPDxYCHwYFDUNoZWNrIE51bWJlcjpkZAIFDw8WAh8GBQtDaGVjayBEYXRlOmRkAgkPDxYGHwwLKwQDHw0LKwUGHhJFbmFibGVDbGllbnRTY3JpcHRoZGQCJQ8WAh8FaBYIAgEPDxYCHwYFDk1hdGNoaW5nIEdpZnRzZGQCAw8QDxYCHwYFHU15IGNvbXBhbnkgd2lsbCBtYXRjaCBteSBnaWZ0FgIfCgUQU2hvd01HQ29tcGFueSgpO2RkZAIFDw8WBh8WBRVqYXZhc2NyaXB0Ok1HU2VhcmNoKCkfBgULTG9vayBpdCB1cC4fBWhkZAIHD2QWAmYPZBYCAgEPDxYCHwYFCENvbXBhbnk6ZGQCJw8WAh8FaBYEAgEPDxYCHwYFE0FkZGl0aW9uYWwgU2VjdXJpdHlkZAIDDw8WAh8GBTFUaGlzIGlzIGEgc2VjdXJpdHkgbWVhc3VyZSB0byBoZWxwIHByZXZlbnQgZnJhdWQuZGQCLQ8PFgIfJQVkKCgoXChcZHszfVwpID8pfChcZHszfS0pfChcZHszfS8pKT9cZHszfS1cZHs0fXxeWzAtOSBcK1wpXChcLV0rKSgoKFt4WF18W2VFXVt4WF1bdFRdKVwuP1xzKihcZCspKSopJGRkAi4PDxYCHyUFcl5bIF0qW0EtWmEtejAtOVwtXy4nYCEjJCUmKisvPT9ee3×9fl0rQFtBLVphLXowLTldW0EtWmEtejAtOVwtXSooXC5bQS1aYS16MC05XVtBLVphLXowLTlcLV0qKSpcLltBLVphLXpdezIsNn1bIF0qJGRkAgoPFgIfBWgWDAIDDw8WAh8GZWRkAgUPZBYEZg9kFgICAQ8PFgIfBgUFVHlwZTpkZAIBD2QWAgIBDxAPFgIfD2dkZBYAZAIGD2QWAmYPZBYCAgEPDxYCHwYFBU5hbWU6ZGQCBw8WAh8FaGQCCQ8QDxYCHwYFGk1haWwgYSBsZXR0ZXIgb24gbXkgYmVoYWxmZGRkZAINDxYCHwVoFggCAQ8PFgIfBgUKRnVsbCBOYW1lOmRkAgUPZBYQAgEPZBYCAgEPDxYCHwYFCENvdW50cnk6ZGQCAw9kFgICAQ8QDxYCHw9nZGQWAGQCBQ9kFgICAQ8PFgIfBgUOQWRkcmVzcyBsaW5lczpkZAILD2QWCAIBD2QWAgIBDw8WAh8GBQVDaXR5OmRkAgUPZBYCAgEPDxYCHwYFBlN0YXRlOmRkAgYPZBYCAgEPEA8WAh8PZ2RkFgBkAgkPZBYCAgEPDxYCHwYFBFpJUDpkZAIND2QWCAIBD2QWAgIBDw8WAh8GBQVDaXR5OmRkAgUPZBYCAgEPDxYCHwYFB0NvdW50eTpkZAIGD2QWAgIBDxAPFgIfD2dkZBYAZAIID2QWAgIBDw8WAh8GBQlQb3N0Y29kZTpkZAIPD2QWCAIBD2QWAgIBDw8WAh8GBQVDaXR5OmRkAgUPZBYCAgEPDxYCHwYFCVByb3ZpbmNlOmRkAgYPZBYCAgEPEA8WAh8PZ2RkFgBkAgkPZBYCAgEPDxYCHwYFDFBvc3RhbCBDb2RlOmRkAhEPZBYIAgEPZBYCAgEPDxYCHwYFB1N1YnVyYjpkZAIFD2QWAgIBDw8WAh8GBQZTdGF0ZTpkZAIGD2QWAgIBDxAPFgIfD2dkZBYAZAIJD2QWAgIBDw8WAh8GBQlQb3N0Y29kZTpkZAITD2QWCgIBD2QWAgIBDw8WAh8GBQdTdWJ1cmI6ZGQCAg9kFgICAQ8QDxYCHw9nZGQWAGQCBQ9kFgICAQ8PFgIfBgUFQ2l0eTpkZAIGD2QWAgIBDxAPFgIfD2dkZBYAZAIJD2QWAgIBDw8WAh8GBQpQb3N0IENvZGU6ZGQCBw8PFgIfBgUGUGhvbmU6ZGQCCw8PFgIfBgUGRW1haWw6ZGQCCw8QDxYCHwYFOkkgaGF2ZSByZXZpZXdlZCB0aGlzIGRhdGEgYW5kIHZlcmlmaWVkIHRoYXQgaXQgaXMgY29ycmVjdC5kZGRkAgwPDxYCHwYFCkRvbmF0ZSBOb3dkZBgEBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WDAUQUEMxNDcxJHJkb18yMThfNQUQUEMxNDcxJHJkb18yMThfNQUQUEMxNDcxJHJkb18yMTlfNQUQUEMxNDcxJHJkb18yMTlfNQUQUEMxNDcxJHJkb18yMjBfNQUQUEMxNDcxJHJkb18yMjBfNQUQUEMxNDcxJHJkb18yMzJfNQUQUEMxNDcxJHJkb18yMzJfNQUQUEMxNDcxJHJkb18yMzNfNQUQUEMxNDcxJHJkb18yMzNfNQUPUEMxNDcxJHJkb090aGVyBQ9QQzE0NzEkcmRvT3RoZXIFFlBDMTQ3MSRndlJlY2lwaWVudEluZm8PPCsACgEIZmQFE1BDMTQ3MSRndlNlbmRlckluZm8PPCsACgEIZmQFF1BDMTQ3MSRsdkVDYXJkVGVtcGxhdGVzD2dkMvgGNSZmNGeA2MaVmWQjUrKon3k=” />

What on earth could such a parameter be for I wonder?

Unitter Launch!

April 24th, 2009

Unitter is Twitter for schools. Sign up to link your school email address to your twitter account and view a feed of all tweets by people from your school (or any other school). This is the first project launched by my company: Calixi!

Let Computing Be Fun

April 19th, 2009

Some say that the problem with programming today is that it is too complicated. It’s just not fun anymore they say. I offer this quote that appears at the beginning of Structure and Interpretation of Computer Programs.

I think that it’s extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don’t think we are. I think we’re responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun. Above all, I hope we don’t become missionaries. Don’t feel as if you’re Bible salesmen. The world has too many of those already. What you know about computing other people will learn. Don’t feel as if the key to successful computing is only in your hands. What’s in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.

Alan J. Perlis (April 1, 1922-February 7, 1990)

Perhaps the problem is that we are not as easily amused as we used to be. Back in the old days there was lots of low hanging fruit, and everyone was in awe whenever a computer did anything useful. This is the same problem with any technology that goes mainstream. Some bloggers complain about rails not being the cool kid on the block anymore now that everyone is using it too. People started to expect things out of computers. Now people complain when things go wrong rather than cheering when things go right. Your website seems like a waste of time unless it gets a million page views a day like it seems like everyone else is. Not to mention the fact that it seems like there are so many more famous people thanks to the massive reach and infinite boredom of the internet. The internet populous is like a global corporation only worse. People consume as much as they can and all they give back are landfills full of pictures and witty little text bites that no one will ever go back to read. There’s probably no place more self centered than the world wide web. And yes, there’s spam everywhere, not to mention viruses. Alas, the anthropomorphism of the computer has included almost as many negative characteristics as positive ones. Why could we have just been content with VisiCalc and assembly programming?

We have lost our way. Computers are more amazing than ever before, and they are only getting better. If you take a minute to think about all the wonderful things they do in your life each day maybe you could keep from throwing your shoe through your screen next time you see a “stack overflow”. And of course, a stack overflow is just another fun challenge begging for you to solve it. Remember that first time when you “got” programming? Remember the first time you made a webpage? Remember the first time you created a GUI with a little button that said hello world? This little essay is a rallying cry for programmers, designers, and everyone who uses computers (who doesn’t these days?) to appreciate the elegance embodied in that little plastic box on your desk and remember that we can keep the fun in computing. We keep the fun in computing every time that we make a hard problem easier rather than a simple problem more complicated. We keep the fun in computing every time we make an ugly mess of data into a useful repository of knowledge. We keep the fun in computing every time we make a boring task more interesting, a tedious task more efficient, a painful task more bearable. We keep the fun in computing every time we document code and share our discoveries so that it won’t take the next person three days of banging their head against the wall to find out the same thing.

There’s no need to worry. Computers are an incredible tool, and they’re not going to stop being fun any time soon if you will only let them.

Twitter’s Over Capacity!

April 19th, 2009

Oh no! I was going to tweet about the downtime but realized that I couldn’t!
picture-1

What I’ve Learned Working on ReadeAvenue.com

March 31st, 2009

Since January I’ve been working on a student art gallery for my university that goes by the name ReadeAvenue. Initially the project was conceived by Brian Salmon and the Taylor University SIFE team. I joined the “TechTeam” division of the SIFE club at Taylor, and became the lead developer for the actual construction of ReadeAvenue in January when the project kicked off.

1. You can be the lead developer of a project even if you have not used the technology before. This was my first rails project. Prior to ReadeAvenue I had developed several medium scale web applications using Django, but this was my first encounter with rails. At first I was just as clueless as the other developer and designer working on the project, but I noticed that my learning curve went up at a much higher rate than the others on the project and I was soon able to confidently answer questions that the others on the team had.

2. Non-nerds have no clue what you do. For the first couple of days Brian came down to the “dungeon” (the computer science department) to work with us. He quickly realized, as I had warned him, that there was nothing for him to do while we were coding the site. In fact, if anything it was probably counter productive for him to be there since less interruptions means more programming.

3. Things will go wrong out of your control. The site was ready to launch on the 19th, which was the day alumni relations was sending out a promotional for the site to 5000 alumni, except for one little thing: we couldn’t process payments yet. Due to a bug in our credit card processing company’s software we were not able to accept payments for an entire week after the mailing went out. I was livid when I had to explain what happened to a customer who had attempted to make a purchase before we found the bug. Fortunately, we have another 5000 person mailing going out this week.

4. Saying yes feels good, but saying no is better. Quite a few times Brian would come up to me with ideas for little features he would want in the site, and I would have an instant temptation to say “Of course we can do that; that’s easy!”, and promptly have added several hours of work to my plate, or someone else’s. I hate having to say no because it feels like defeat. In the end, it’s smarter to keep things simple, get something working and go back to add all the goodies later when your plate is empty (chances are that will be almost never).

Who knows if ReadeAvenue.com will be successful in the end. For me, ReadeAvenue has already been a big success in terms of experience. I can now list lead developer on my resume, not bad for someone who hasn’t graduated from college yet. And most of all, I realized that it is a rush to log into google analytics and see that people are actually using the site. Making something people want is not only good business, it feels good too.

Having trouble importing into gems into a ruby script?

February 17th, 2009

Make sure you require ‘rubygems’ before the gem you’re trying to import.

For example I spent about an hour trying to figure out why I could run the ruby repl and require ’sqlite3′ but when I tried to run a script with the same code it would say “in `require’: no such file to load — sqlite3 (LoadError)”. Changing the code to
require ‘rubygems’
require ’sqlite3′
made the magic happen!

The Kite Runner and Kabobs in Indianapolis

February 15th, 2009

I recently read The Kite Runner, and watched the movie afterwards. Maybe I don’t read enough fiction, but I can honestly say that I can’t remember a book that brought me closer to tears in several years. I would highly recommend the book, and the movie is good as well although there is far more depth in the book. The movie also takes out some of the saddest parts of the book, most likely to tame it for the screen and avoid an R rating. If you are interested in a look at Afghanistan that goes beyond what you see on TV this seems like a great place to start.

I also got a craving to learn more about Afghanistan’s history and culture after reading the books. I went to the only Afghan restaurant I could find in Indianapolis, Kabob Korner afterwards to check out what the food was like. The shop was in the back of a strip mall and offered very plain decorations and place settings (all plastic). It was also completely except for the man I presume was the owner and a coupe of his friends. I ordered lamb qorma, and was greeted by a large dish of rice with lamb in a somewhat spicy sauce. I should have taken a picture, although it really wasn’t much to look at. Nonetheless, I found it tasty and filling, and would like to find a nicer Afghan experience sometime in the future. I found that there are not very many Afghan restaurants in the US, but one of the better ones was just a few blocks from the house I lived at in Seattle two summers ago!

Who Killed the Electric Car

February 15th, 2009

I recently read that Ford is planning to create new hybrids and electric cars as part of its attempt to reinvent itself and survive the economic downturn. Who knows if things will actually pan out this time.

One of the recent Netflix documentaries that I have watched is Who Killed the Electric Car? The answer is basically everyone but battery makers. Consumers didn’t want to buy them (well some people REALLY wanted them, but most people didn’t give a hoot), companies didn’t want to make them, oil companies didn’t want to lose their revenue, and the government caved to pressure from everyone else. Myths got started that battery technology wasn’t good enough to give the electric car a long enough charge for most people’s liking, but these rumors weren’t true, car companies were just using older and presumably cheaper batteries and didn’t want the electric cars to catch on.

I found the documentary to be informative and a great piece of history, and it definitely made me a little bit angry! Let’s hope that we can get our act together in the near future and kick our oil addiction before the economy recovers and gas prices shoot up again.

The Greatest Game Ever Played (2005)

December 28th, 2008

Based on a book by Mark Frost (the screenplay was written by the author), The Greatest Game Ever Played is probably the best golf story you’ll ever see.

I won’t spoil the plot details although they are not hard to guess. The suspense of the movie will still get to you even if you know how things end, and the characters are likeable, especially the 10 year old caddy who steals the show. There are a lot of clichés as in all “underdog” sports flicks, but if you don’t find that sort of thing too cheesy to bear you’ll enjoy this film. While I won’t say it was the best movie I’ve seen over break (see Slumdog Millionaire), I definitely liked it.

What can I say though, I’ve always enjoyed a good round of golf even though I’m not that good at it.