Posted by knorby on May 5, 2010 under Android, Apple, Linux, coding, facebook, firebug, firefox, flash, google, internet, javascript, media, mozilla, rants, video |
First off, I hate flash. I use linux, and I have a netbook; I know very well how bad it can suck. For reasons beyond my comprehension, flash audio just breaks occasionally on me, including in AIR. On top of that, I have done a lot more web app development in javascript in an attempt to push browsers to their limits than I ever have flash. Aside from Sound Manager 2 (which doesn’t really count), I think the last time I did everything in flash was flash 7, so aside from some side knowledge, I know very little about flash. I really hope HTML5 is successful, but I don’t think it is a direct replacement for flash, no matter how much Steve Jobs bullshits. Here’s why:
Content Control
In the mad rush to move any web video over to flash, a serious point has been overlooked. Youtube may be able to set up backends for HTML5 video formats, but can Hulu? It is possible to save hulu apparently, probably though some strange use of rtmpdump, but from what I could see, those methods were convoluted at best. The question comes down to how something like Hulu, which must have ads on each video to survive, use something other than flash. I know from experience that ad block can stop the streaming of hulu ads, but hulu forces a longer black screen on you otherwise. I haven’t looked into the specifics of what goes on in the whole process, but it is safe to say that it is easier to restrict how content is handled on flash than the standard browser environment. The problem comes down to this: if uncompiled code is sent to clients, the client has the final control on how content is rendered. I wrote up a now broken approach to eliminating some facebook ads with simple css in firefox a while ago, but such approaches have only become more widespread. Site owners are starting to take notice of things like ad block, and some take serious offense. Facebook went as far to send a C&D to a firefox extension that modifies facebook rendering, of course they are pretty evil at this point (I am thinking of deleting my account, but that is a different story). I predict that in the near future, the question of how clients are allowed to modify the rendering of content will become a central issue to many web apps. The simple truth is that a compiled flash swf provides better code security than javascript obfuscation by several magnitude. Both on the front of audio and video and on just general content, flash provides content control that a browser just can’t match.
Standards are Slow to Adapt
If you have been following any of the debate over H.264 vs. Ogg Theora (better format vs. open), something will be apparent: content hosters have a bad deal. Which standard will prevail (probably H.264)? Is it worth doubling the number of videos to accommodate firefox? The questions go on. When flash introduced video, it was simply a matter of “run this version” on all platforms. The thing with browsers is that they are big projects. Chrome, which doesn’t even have the task of maintaining a full rendering engine, suffers from problems already as a result of being too big. I submitted a bug to Chromuim about 6 months ago for an SVG issue in the developer tools; I submitted the same bug to firebug first, and what I have seen says a lot about chromium. The firebug issue was tagged (for triage) on the same day I submitted it, and the fix was in a beta 4 months later. It took 3 months for chromium to do what it took a day for firebug to do (look at it), and all I have seen in about 6 months is a couple extra tags, and a few irrelevant comments. Mozilla is quicker with firefox bugs, but it is also safe to say that chromium has focused more on performance. These stats don’t even consider the number of developers on each, many of which professionally work on firefox and chromium, which can’t be said for firebug. I am not trying to raise questions in how open source development goes, but once HTML5 features lose focus, what will happen with bugs? What will happen when a better video standard exists? You can’t just fix standards; that’s why javascript and css are what they are. There is something to be said for keeping stuff in third party apps.
Maturity
Flash games have a special place. Traditional games don’t fill that niche; mobile games can’t fill that void; the truth is that it will take a while for javascript + canvas to substitute. It is a new technology, and one with interesting potential, but it is new, not mature. You can’t expect normal flash game developers to all of a sudden start writing stuff for the pure browser, especially when it gets harder, not easier. That doesn’t even consider SVG+javascript, which is actually a more near equivalent of flash, and even as that is more widely deployed, I will just say that it is even farther from being in a real production state. I wrote a web app on it, and I encountered, and still encounter, all sorts of weird browser bugs. To keep it short, it isn’t better to develop on an immature standard on 5 different platforms on 3+ different OSs than flash.
Conclusion
I think there are a lot of pros and cons in both directions of Flash vs. HTML5, and I hope and think that HTML5 will take over many of the uses of flash now. I think my defense of flash is rather incomplete, and my love of the browser environment is hardly expressed. Regardless, java, flash, or other plugins have served as the innovators of new approaches for a long while, and there is something to that. I hope third party methods don’t disappear, as I think the web ecosystem will suffer as a result.
I realize this post was mostly a rant, so if you have anything to add, please leave it as a comment, or send something to me.
Posted by knorby on April 1, 2010 under IM, google, internet, javascript |
A friend of mine was complaining about Empathy today, an IM client I have never much cared for. I have serious problems with gaim/pidgin too, and really, most of the reasons are the same. Of all IM clients I have used, I have been most satisfied with gmail; here’s why.
Great Chat History
Essentially any IM client at this point has chat history, but I really started using it once I started using gtalk. Why? I can search it easily, and it isn’t local to the machine I use it on; same main reasons I like gmail. It does mean that the FBI could get my chat records, but I am not too worried about that.
Reasonable Multi-client Handling
Part of using a standard chat client is having it start up after login, which usually leads to multiple logins if you use several computers, or leave one on and logged in. Pidgin or something will usually have a login per instance of the client, which really doesn’t lead to the desired behavior anywhere. With XMPP, you usually get a message everywhere on the first message, after which messages are only sent to the chosen client. Gtalk seems to only use one login, and handle a multi-client situation somewhere between broadcast and interface restriction. The instance of gmail with the most recent activity is notified with the alert, and the chat window appears in full, with the red alert color. On other clients, the window appears minimized and alerted, or not at all depending on several factors related to recent activity and what was already open. It works well. Android has its own model, but that is a different situation. It works really well. As an added bonus to this approach, status messages propagate well between clients, including to android.
Nice Balance Between Notification and Quietness
Most clients seem to work in one of two modes. Yell and scream activity, or say nothing. Aside from the ding, I think gmail is closer to the silent. If you are in gmail, you know when you get a message, and if you are in your browser, you probably notice the tab, but otherwise, it is ignorable. Most clients default to playing a loud sound a lot, and bringing up the window, in addition to more silent types of alert. If I am trying to do work, this is really, really annoying. You can usually reconfigure the client to be a little more silent, but it never works just right. I check gmail a lot anyway, so it ends up working pretty well.
Reasonable Away Message Handling
Since most people check gmail frequently, especially when not focused on something else, the away timeout tends to work pretty well. Watching a co-worker of mine, the timeout is usually accurate to about 5-10 minutes. The behavior on other clients seems to be either nothing or constant switching; plus you can get annoying status change messages!
No Setup
I don’t have to install or configure anything. I just use gmail. This is one of the more obvious reasons, but it comes in handy a lot. I just need gmail open, which I usually do.
I assume I am not really documenting anything new or interesting here for most people. My point is more that gmail or the likes of meebo are in many ways preferable to a more traditional app. Really, there is no reason a web app should be more usable than a traditional gui, but I find it is often the case. Many people use gmail for email now, but IM, especially among some techies, is only seen as a fallback, especially on the web. I believe that is simply not the case.
tl;dr gtalk in gmail is my favorite IM client
Posted by knorby on February 25, 2010 under Python, app engine, facebook, fortune, google, internet, privacy, wave |
I started writing this post while Google Wave was still pretty new, but it has been out for a while and half forgotten. It is still in closed preview, but it shouldn’t be hard to find an invite if you want to check it out. As I mentioned in my last post on wave, I wrote a quick fortune bot for wave. The bot got a decent bit of use at first, as many people played around, but now use has dropped to almost nothing. Based on my own use, I figured early on that most of the use was from 1 or 2 real people interacting with a bunch of bots. I tested and confirmed that with the data google records by default.
Google App Engine, on which all bots must be hosted, by defaults logs any request and any error. A bot can register a number of different events, which will trigger a request to the bot. In the request, the state of the wave is contained in a json format. The log files can easily be downloaded, and the json easily parsed. From that, you see everything. You see the addresses of everyone, you see what has been entered, even if it doesn’t relate to the events of the bot. As far as I am aware, no TOS or privacy agreement exists that covers the use of this data, and even if it were, the most nefarious uses still would be silent.
By putting data on any web app, you put yourself up to the same risks and invasions. The google ads in gmail are targeted at you for a reason after all. If you are using gmail though, it is a safe belief that google will be the only one other than you to see your data. A bot could be maintained by anyone. Facebook apps are a decent comparison. I have looked at the API a couple times, but my understanding is even with the permissions a user can grant or deny, apps get to see a lot. A fair bit of criticism has been made of this platform, but it is very safe to say the privacy structure in place on bots is much worse. Aside from the lack of permission controls, would you use something like facebook apps on your e-mail or google docs (to the extent that makes sense…)? I hope not.
A wave user has a somewhat unique problem here. If a bot provides a useful service to a particular use, and the wave for this use is private, should you use it? That isn’t a question anyone should have to ask. The question of “put this data in this web app or not” is one thing, but you shouldn’t have to worry about using a pivot tables tool on an online spreadsheet, which is essentially what is going on with bots here. There isn’t really way to distinguish what is a good bot vs. a bad one either. If I wanted to snoop on people on wave, I would write a useful bot, and no one, google included, would be the wiser to what I was doing with the collected data.
I don’t think there is an easy way to fix bots as they are. Anonymous search results aren’t really that anonymous, and I would guess wave data would be much worse. The problem isn’t that App Engine logs requests; the problem is what wave sends. If you consider the data in a wave in anyway private, I would recommend against using bots.
Posted by knorby on November 10, 2009 under Python, coding, doit, google, internet, wave |
Silly:
- fortune/doit – Implemented. See Wave Fortune. You can use it be adding wavefortune@appspot.com to your contacts. I mostly made this bot to satisfy my fortune lust, and to get more familiar with app engine and the wave bot api.
- wompus/adventure – Not sure I am actually going to do this one. If I do, it will be the wompus. Basically, the problem to solve is effectively storing state for such games. Wompus is tiny, and the games are short, so it wouldn’t take much thinking. Adeventure/zork would require a lot more work, and I honestly don’t care that much.
Tools:
- logging interface – It occurs to me that wave might work great in a situation where I think e-mail falls short now: data/msg dumps. I see this sort of thing at my jobs a lot. I get a log messages I generally don’t care about, and I filter them out, and as a result I sometimes miss something. A similar case is something like a bug tracker, where so many replies can be generated that the thread is easy to ignore. Centralization would help a lot I think, but again, I am not sure I care.
- RPN calculator - Nothing really to explain here. Could do save the calculator’s state in past blips, and make them editable. The end result would be a collaborative calculator of sorts. Could be interesting.
- something with jMol – Not too much thought here. When I was a student in the Computational Material Science group at ORNL, I ended up playing with jMol a bit from javascript. Some sort of gadget/bot combo could do some interesting stuff, but again, I don’t care.
I will post more about my thoughts on wave later on, as I have many mixed thoughts on it. Google has a lot to do, both on wave itself and extensions that they should provide. I am hesitant to work on large projects, as I don’t want to have google copy my work, or experience some odd situation with app engine. I don’t think anyone, google included, has any remote idea of what to expect from wave yet.
Posted by knorby on March 15, 2009 under internet, twitter |
I read an interview with Stephen Fry on the BBC, which seemed to respond nicely to a few of my problems with twitter that I posted about, at least for some. He points out that, on the whole, media really don’t like twitter that much. If he wants to make an announcement, he just does it, and people find it; he doesn’t have to go through a swarm of interviews, which is why the media hates it. I have to admit, I am a lot more interested in public figures as a result of twitter than I ever was before, and if I did care, I probably would stick to twitter rather than the more traditional infotainment channels.
I suppose if I cared more about spoken langauge, writing, etc… I could appreciate how 140 or so characters was an interesting change to language. I guess my problem is really understanding why it matters in the first place. Much bothers me about SMS (more to do with price gouging than anything else), so it might just be my distrust of anything based off of SMS.
Posted by knorby on December 1, 2008 under Python, internet |

I was in need of a break from work, so I finally got around to implementing DOIT of the Day on twitter! For those not familiar with DOIT jokes, they are a set of jokes from USENET, or even before that. A while ago, I started maintaining a fortune database, which I wrote about here. I haven’t gotten around to packaging it up for various Linux distros yet, but I will eventually. So, you can now get your daily fill of DOIT jokes from twitter. Non-twitters can DOIT with RSS.
I wrote a couple of python script/libraries to auto-follow followers (CPAN was having some problems, so I didn’t use a perl script someone else had already written) and a fortune->twitter script. I will clean those up at some point soon and put them up somewhere.
Posted by knorby on November 26, 2008 under Python, google, internet |
After reading the comments on a story on reddit on IQs, I became curious about how IQs are reported on the internet. A few people were saying that when they see someone mention their IQ on the internet, it is usually above 130. The explanations given were along the lines of people lying, biased online tests, and segmentation in where people browse. I was curious what sort of frequencies the different IQs are mentioned, so I wrote up a little python to get the google search results for IQs 50-199 (I would have included lower values after seeing the result, but I choose to go the scraping route rather than gdata, which ends up getting you blocked by google, something I didn’t know). I ran the number with the word “iq”; I think there may be better queries, but simple seemed good enough. Here are the results, plotted with matplotlib:

I found these kind of surprising. Most of the result counts were around 6 million, but there were a few sharp drops. I was especially surprised by 100 and 130, since, if memory serves, 100 is the 50th-percentile for IQs and 130 is the 99th; I would expect a greater count on these two, since more sites would include those numbers while explaining the scale; instead, there are large drops. Weird. I don’t think there is any connection between these results and anything proposed on reddit either.
Posted by knorby on under internet, personal |

I had the great privilege of being the first buyer of today’s woot shirt (called the “first sucker” on woot). It took me all from the time they posted it for me to see it and then buy it. It is just that awesome. You can see the honer on the shirt’s discussion page. Woot!