Sign in or Join FriendFeed
FriendFeed is the easiest way to share online. Learn more »
Matt Mastracci

Matt Mastracci

Co-founder DotSpots, dad, avid GWT/Java/JS Developer, hacker of all things electronic and not tied down
Once you figure out the chrome extension model, it becomes trivially easy to make them work. "Reload" your dev extension is so handy.
I still wish it would contain a simple JS text editor like JetPack. :) Also, when you bring up the inspector, it often has a list of every JS of every tab you have open. It would be nice if you could group those per-tab. If you write a content-script for Chrome and have 10 tabs open, you'll have 10 separate copies of your script listed in the drop down. - Ray Cromwell
BTW, can you attach OOPHM to any arbitrary chrome Tab, include those associated with extensions? e.g. the background page of an extension loads a GWT module? - Ray Cromwell
Never Let Me Forget About You [Startups] - http://pagesaresocial.com/2009...
I haven't forgotten about dotspots, still waiting on that chrome plug-in to do a review :D - Holden Page
Don't worry, it's on it's way. Had to overhaul the whole front-end first. ;) - Matt Mastracci
*taps foot.... patiently" :P - Holden Page
Ditto. I have every intention of picking up DotSpots again when the Chrome plugin's available. Let me know if you guys need us to ping Chrome team on anything. - Joel Webber
Joel- if there's a way to debug Chrome content scripts, I'd love to know it :) (the docs seem to indicate that this isn't possible right now). Running into a weird issue where everything works well up to a point, then a window reference is inexplicably set to null. - Matt Mastracci
I'm pretty sure it's not possible yet, though I'm sure they're aware it's badly needed. @kellegous has done a fair amount of Chrome extension work. Does the window reference problem sound familiar, Kelly? - Joel Webber
I've figured out what the Chrome issues were. Everything is good to go and we'll be launching this new Chrome extension very soon. - Matt Mastracci
W00t! - Joel Webber
yay - Holden Page
Researchers Neutralize Parkinson's Dopamine Killers - http://rss.slashdot.org/~r...
Chrome uses a bizarre JS parameter form for chrome.extension.connect. It tests the type of parameters for string/object to allow you to omit them entirely: http://src.chromium.org/viewvc...
Doesn't this kind of parameter sniffing make you kind of nauseous? I know that's considered "normal" in javascript, but god it gives me the willies. - Joel Webber
Yeah, I'm not really a fan of it, since it fails in mysterious ways. Most of the parameters are tested using typeof "blah" == "string" or "object". Of course, typeof null == "object", but none of the checks actually look for that. You have to use function.apply to call it from GWT to make sure you don't throw in a null. - Matt Mastracci
Here's what I basically ended up doing to support RPC from Chrome scripts: http://code.google.com/p... - Matt Mastracci
Targeted Copyright Enforcement: Deterring Many Users with a Few Lawsuits - http://www.freedom-to-tinker.com/blog...
Interesting note: seems like it would work by announcing that you are targeting "the biggest infringers" as well. - Matt Mastracci
Trying to figure out Chrome's port/messaging model. There's a raw request with a callback and a Port model (with no callback). Seems like the former is the most appropriate for sending messages that expect responses.
Oh... I missed the whole point of port. If you open a port, you can use it on the other side to send back responses. Open one port per request and you can make sure you always get a callback. Perfect - Matt Mastracci
Got another call from a "lower your interest rate" phone spammer, so I thought I'd have fun: Me: "I have 150k of debt at 20% interest" Them: "Is it past due?" Me: "Oh yeah" Them: "Ahh, we can't help you then" Me: "Oh, I was just kidding, it's not past due" Them: "Ok, let's get you set up"
Enzyme Found To Help Formation of New Axons - http://science.slashdot.org/story...
Joe Darcy: Project Coin: Anatomy of adding strings in switch to javac - http://blogs.sun.com/darcy...
Can't remember if I shared this earlier. - Matt Mastracci
RT @naval The returns to entrepreneurship: http://startupboy.com/2009...
Gene Therapy Halts Brain Disease in Two Boys - http://biosingularity.wordpress.com/2009...
Installed two of the Philips AccentLED lights. Cool to touch, vs. 3rd degree burns of neighboring halogen light. Look good so far.
Buddah's Veggie for dinner tonite. Yum. #yyc
Home Depot now stocks MR16 replacement LED bulbs. 4w vs 50w!
Replacements for halogens that is. Until now those were the only low efficiency bulbs in our house. Once these puppies are installed, all of our lighting will be low wattage. - Matt Mastracci from iPhone
Nice day in #yyc, considering we're in the run-up to the holidays now. Hopefully it'll stay around zero until 2010.
It's a perfect day for skating! (obviously indoors) - Nathalie, Dreamer of FF
Awesome, sounds like fun. Need to get some cheese-cutters for our little tyke and take him out with the chair (the winter right of passage). - Matt Mastracci
The days of server side rendering of dynamic HTML are numbered. It makes a lot more sense to shift the load to the client w/good svr APIs.
So, so true. Plus, rendering any part of your app on the server (except perhaps as a startup optimization) makes offline support damned near impossible. - Joel Webber
I haven't been following GWT lately, but my main issue with these approaches is they make the latency of first view inherently, significantly worse than simple HTML because you have to load the HTML and JS serially before doing the additional work of rendering the page/fetching the page data. That "flash" we see in all Google apps annoys me quite a bit, and annoys me more for web sites that aren't really "apps" in the Google Apps sense - Bret Taylor
FriendFeed renders stuff on the server and the client using shared code. I think that approach leads to the best user experience by far for most apps (apps like Gmail and Google Docs are probably special/different in this regard). I just think too many apps start off with this approach when it doesn't really benefit their code or use experience. - Bret Taylor
I think that the client-only approach is difficult initially because there aren't a lot of good patterns for it. With careful juggling of CSS/script load order, you can get an experience that's faster than that of most server-rendered websites (ie: Digg) without any sort of UI flash. Once you've taken that initial hit, you user experience can be so much better. I'm still working on some code in this area, but I hope to release a GWT library that automates the whole process soon. - Matt Mastracci
Without using GWT's runAsync, you definitely take a big initial runtime hit. If you hope to run all of your code dynamically, there has to be some sort of incremental load process. - Matt Mastracci
Another approach is to send the data down with the scripts. In general, GWT reduces the number of HTTP transactions compared to what people usually do by hand (it's had automatic resource bundling/spriteing for a long time). For example, you could write a servlet that bundles the first fragment of a GWT app, along with data, in the initial download, so the major overhead is generating... more... - Ray Cromwell
@Bret: I completely agree that "content" and "apps" should be treated differently, and some sites are difficult to place into one of these two pigeonholes. If your site is primarily "content" and you really are just loading one (mostly) static page after another, you're probably never going to be able to write js that outperforms the browser's progressive renderer. I also agree that if... more... - Joel Webber
But I'm also looking forward to seeing Matt's library. I think that with really aggressive code splitting, careful precaching of data, and careful rendering (a lot of work, I know), you should be able to get the best of both worlds. And avoid *my* big pet peeve, which is static pages that get into bizarre, inconsistent states because they attempt to perform some logic on the client, some on the server, and have no consistent model. - Joel Webber
I think you could also enhance server-side selection script by allowing it to combine the initial host "dynamic" HTML page and initial JS fragment in one HTTP request. They'll be no blocking or extra HTTP requests to get the page up and running, assuming you runAsync() on a point after the DOM is stable. This would avoid any flashing, limit serial HTTP requests prior to first render to... more... - Ray Cromwell
We are serving all of our big JS from a CDN, making it tougher to customize dynamically. Including the initial RPC fragments in the HTML would probably work, though I haven't experimented along those lines. - Matt Mastracci from iPhone
Edge Side Includes may or may not help. e.g. you can deploy your JS to the CDN, and use ESI to inject the JS into the HTML served from the CDN. I think it depends on how 'dynamic' your HTML is if this is a win or not. - Ray Cromwell
Our current CDN (CloudFront) doesn't support any ESI magic and has a minimum TTL of 24h, so we have to ensure everything served from there is really static. I'll probably revisit most of the choices we've made so far in the near future and put together a set of good practices for highly dynamic web applications that I can offer up for peer review. There's not a lot of public literature on this sort of webapp. - Matt Mastracci
My YouTube postal code is listed as "H0H 0H0": a Canadian inside joke.
I showed our toddler a picture of the unicode rotary phone (☎) and he said it was a phone right away. No idea where he would have seen one, but it's not entirely dead lore. Of course, he had no idea what a floppy disk was (the 5.25" was a flashlight and the 3.5" was a drawing)
Didn't know what a cassette tape was either, hah. I remember showing him an old VHS tape I dug out of a box a few months ago: he was all "WHAT IS THIS? OOOOH". - Matt Mastracci
This was after reading Anika's experience here: http://friendfeed.com/fabooma... - Matt Mastracci
That is hysterical!... I would have bet the floppy should have more staying power (File - Save). - Bill Grant
He's almost 4, but he's never really used anything with a toolbar besides a web browser. I'm trying to think of other classical tech that I still have around the house. - Matt Mastracci
My kids recognize a rotary phone for what it is, but when they see icon on a handset, they say 'cellphone'. My daughter now calls a silhouette of a bird 'Twitter', which amuses me. When my son sees 'facebook' or a font that looks like that one used, he calls it 'facetag'. - Anika
Matt - yeah, I thought about that... But then again I wouldn't expect him to see a rotary phone either. Anika - Interesting about the facebook font, there are at least 3 logos using that f - facebook, flickr and friendfeed. - Bill Grant
Bill, it's not the lowercase 'f', it's the specfic font. It can say, "rondelle" and he'll still call it 'facetag'. When I was his age, I know I identified fonts with specific items. It's weird to see him do the same thing. My daughter doesn't do that. - Anika
Anika- that Twitter/bird thing is hilarious. - Matt Mastracci
It's weird though, Matt. I'm rarely on the Twitter website, so I can only assume she's seen it when my husband pulls the site up. - Anika
Oh another odd thing, she recognizes Window icons as anything with red/blue/green/yellow in a squarish formation. She recognizes Tux, but she doesn't recognize Apple items for what they are. If she sees an Apple logo she says 'Snow White'. - Anika
Floppy disks (at 3.5" stylized ones) are still stupidly used as the "save" icon. And I still see iconography of hardline phones in Comcast advertisements. The distinctive feature of the unicode rotary phone is the receiver position, not the rotary circle on it. I think old style cell phones, the bags or bricks they were, stand out more than old style desk phones. Cell phones date movies, for example, much more. - Andy Bakun
The 12-digit dialpad is so universal now that even the old luggable cell phones are recognizable by our toddler. He can even pick out the Skype dialpad as "numbers for a telephone". You're right about cell styles dating movies. I love how those old flip Moto Star-tac phones with the red LED display used to be the "cool phone" to have. - Matt Mastracci
@Anika Oh, yeah, that is weird. - Bill Grant
@Matt I think those Startacs are pretty cool... Especially when I just need to make a call in the car and my iPhone is lagging trying to get to the contacts screen. - Bill Grant
Those Star-Tacs did have a big influence on popular culture. The "low battery" sound of every cell phone on TV still uses that iconic "bee doop" sound from that phone. - Matt Mastracci
And here's another: I held up a CD disc and they said "movie". It was a music disc. I held up a vinyl record, they said, 'music'. When I mentioned that they listen to music on CDs in the house & the car, they both said, "Oh yeah..." - Anika
YouDebug - Java programmable debugging - http://youdebug.kenai.com/index...
"Here is the problem; your program fails at a customer's site with an exception, but you can't (or don't want to) reproduce the problem on your computer, because it's too time consuming. If only you could attach the debugger and collect a few information, you can rapidly proceed on fixing the problem. But running a debugger at a customer's site is practically impossible; if the user isn't a techie, it's out of question. Even if he is, you'd still need the source code loaded up in the IDE, then you have to explain to him where he needs to set breakpoints and what to report back to you. It's just too much work." - Matt Mastracci from Bookmarklet
On swine-flu conspiracy theories - The Globe and Mail - http://www.theglobeandmail.com/news...
On swine-flu conspiracy theories - The Globe and Mail
"After all, it would arguably have been more difficult and imaginative to fake a moon landing than it was to actually land on the plain, old moon." - Matt Mastracci from Bookmarklet
via @ericajoy: Swine flu concerns close Mountain View autism program (http://www.mercurynews.com/breakin...) - Joel Webber
There's a shocker -- a population (most likely) with a lower vaccination rate ends up with a bunch of kids with swine flu. - Joel Webber
Dedicated animal crossing in Banff, Alberta. Welcome to Canada.
mime-attachment.jpeg
Emoji is the most insane use of the Unicode private use area 
Happy to hear of the health care reform success in the US. Good health care is the foundation of strong business.
Wow: "Total Google searches: 33194".
Apparently that's how many I've performed while logged in since May, 2007. - Matt Mastracci
37309 here, heh :P - mjc
I think there should be a ranking over all Google users as well. :) - Matt Mastracci
@jottos I can't believe you can buy a one and a half terabyte HDD today. I remember drooling over the thought of a gigabyte.
#unseenprequels Star Negotiations
'The book of Eli' is like a flashback to the world of Fallout 3.
'The Box' is dark. Not much more to say. #yyc
I think we'll see The Box tonite at Crowfoot, per my wife's suggestion. Richard Kelly, director of Donnie Darko (liked). #yyc
Other ways to read this feed:Feed readerFacebook