I've been working heavily in the world of HTML and browsers over the past six months and for the most part enjoy it. It's much much better than the scene six years ago when I was at KnowNow writing fairly advanced Javascript client code that was supposed to work on Netscape Navigator and Internet Explorer - what a nightmare. Today's browser world is infinitely better. Now people only complain about box models being a pixel or two off. Well, and there's that z-index bug Microsoft hasn't fixed and probably doesn't even know about, even though everyone else does...
Anyway, my most recent learning experience has been with information extraction from Web pages - essentially extracting meaningful keywords from HTML. I must say, there's a lot of room for learning to take place here. There are several research papers I've found that are really educational, especially those that talk about extraction in the absence of a large body of other documents (corpus) to measure relevance.
As I was going through some experiments I realized that doing a decent job of extracting text from HTML requires knowledge of what 'markup' is and what the particular elements of HTML are defined to mean. Extracting meaningful phrases from markup means to ignore the markup and get to the underlying text which was marked up. But then I began to notice something - in all the advanced HTML pages that use the latest CSS to accomplish 'semantic HTML' (a phrase that I've heard tossed around pretty loosely) something is going wrong. The underlying text that is marked up is becoming gibberish. This is due to the use of CSS for layout and ignoring the effect of the tags on the text. For example, when a span tag is applied to text it is considered an 'inline' element - the underlying text is not meant to be fragmented and split apart and any extraction tool (especially a naive one that I was experimenting with) should merge the text fragments before, within and after the span element with no whitespace. But often designers will add layout and margins to the span tag in order to visually separate the text - yet the underlying markup indicates the text fragments are contiguous. How annoying. There is a simple solution - tag the text as it is intended to be read and understand the difference between 'inline' and 'block' semantics for narrative text.
April 17, 2007
April 16, 2007
Inertial electrostatic fusion
I haven't heard any news recently about inertial electrostatic (confinement) fusion, so I was pleased to read a note (on the Google Research blog of all places) mentioning Robert Bussard (former Asst. Director of the AEC) talking about inertial electrostatic fusion. Apparently it's a video - I hate video. I'd rather read about it, but this should be good. I tried to get some information from EMC2 (Bussard's company) a while back, but they didn't answer emails. Hopefully this video will give some interesting info on what they've been doing.
Wow - this is very very cool. Bussard has been working for over ten years on Navy contract to research and build a spherically confined fusion reaction - and they've done it. The funding from the Navy dried up, his company has the patent and now the next step is to get funding to build a full scale prototype. After that - cheap and limitless energy for the world. Wow.
Wow - this is very very cool. Bussard has been working for over ten years on Navy contract to research and build a spherically confined fusion reaction - and they've done it. The funding from the Navy dried up, his company has the patent and now the next step is to get funding to build a full scale prototype. After that - cheap and limitless energy for the world. Wow.
DoubleClick and Google
There's been a lot of industry angst over Google's pending acquisition of DoubleClick. I'm fairly new to the game of online advertising so I don't know enough to predict the fallout.
Here are two good posts to read - the first is from Pulse360 Blog and is a sky-is-falling viewpoint. The second is better and is from Jordan's blog (the CEO of the startup I work for) and gives a good analysis of the value to Google and why they made the acquisition.
There are a lot of terms that I wasn't familiar with several months ago, so here is my cheat sheet of terms:
(more words here)
It's interesting that the space on web pages is called 'inventory' - coming from Amazon I had a different view of 'inventory'. There are a lot of recurring themes between the world of product catalogs and inventory management that I am familiar with and the new world of online advertising. Maybe it'll all make sense eventually.
Here are two good posts to read - the first is from Pulse360 Blog and is a sky-is-falling viewpoint. The second is better and is from Jordan's blog (the CEO of the startup I work for) and gives a good analysis of the value to Google and why they made the acquisition.
There are a lot of terms that I wasn't familiar with several months ago, so here is my cheat sheet of terms:
- banner advertising - wide advertisement usually at the top of a page
- inventory - this is what web page publishers have to offer, the space on their pages and the audience that will view those pages
- remnant inventory - areas of a website that are not very popular and the web page publisher cannot charge lots of money for ad placement (because there are no viewers)
- ad network - provider of ad listings
- eCPM - effective click-per-mille (which is click-per-thousand page views)
- creative - the 'creative content' that shows up in the ad listing. Google made big bucks doing just text and links and left the annoying flashing ads to others.
- AdSense network - the Google system that provides ad listings to folks publishing web pages. It's supposed to provide an ad listing that is highly relevant to the page it is injected into, but that sometimes doesn't work.
(more words here)
It's interesting that the space on web pages is called 'inventory' - coming from Amazon I had a different view of 'inventory'. There are a lot of recurring themes between the world of product catalogs and inventory management that I am familiar with and the new world of online advertising. Maybe it'll all make sense eventually.
April 13, 2007
Sinterklaas Boot
And now for something completely different...
Over on my music blog I posted about a great techno dance song called Boten Anna - but this Sinterklaas Boot video which is a spoof from Holland (those crafty Dutch!) is the real gem!
Over on my music blog I posted about a great techno dance song called Boten Anna - but this Sinterklaas Boot video which is a spoof from Holland (those crafty Dutch!) is the real gem!
April 11, 2007
Space Conference
Here's something interesting from Wired Private Launches, New Tech ... This Isn't Your Parents' Space Age
I hadn't heard about the Constellation program from NASA, but it's very exciting to see the money put into space resulting in good work.
Here are a couple space blogs with a little news Space Politics and Space Report.
This week an estimated 7,000 government officials, corporate representatives and space enthusiasts will converge at the annual National Space Symposium here to hash out the technological, cultural and political issues surrounding the next decade's push for manned exploration of space.
I hadn't heard about the Constellation program from NASA, but it's very exciting to see the money put into space resulting in good work.
Here are a couple space blogs with a little news Space Politics and Space Report.
April 08, 2007
How to (Teach how to) Write a Spelling Corrector
Through Bill de hÓra's Bzzt Questions blog post, I found this post from Peter Norvig on How to Write a Spelling Corrector. The spelling corrector post was interesting initially because I've been doing a little text processing recently and have his code echoed the simplicity of approach I needed to use to squeeze the algorithm into JavaScript for use in a widget. But it wasn't strictly the code that really struck me - it was the multi-faceted learning opportunity that the post represents. On one hand, there is the lesson that thinking well before coding is a Really Good Thing. In this case, thinking of the problem in terms of lists, sets and maps clarifies the tasks that the software should perform. On the other hand, demonstrating the simplicity and expressiveness of Python shows that the actual tool used can be important. Especially a tool that removes obstacles between theory and practice. And on the third hand, Peter Norvig's post is a great example of education. It educates readers about processing natural language in the wild, it educates programmers on how programming languages reflect the mental model of the developer, it educates designers on how theory can and should influence the practice of software development and at a higher level it educates everyone on what a real engineering looks like.
Oh, and check this out
Oh, and check this out
Fortunately, Google has released a database of word counts for sequences of up to five word sequences, gathered from a corpus of a trillion words.
April 05, 2007
Spring in the Northwest
Spring has definitely arrived here in Kirkland. One of the rhododendron and the Star Magnolia tree are in bloom, brilliant white blossoms finally brightening the yard as well as adding their perfume to the air. There is something about the warming of the forest at the beginning of the year that gives a smell of the outdoors that charges me up. I'm very lucky to be able to work from my home over the past six months and I took a break from work this afternoon to split some wood from trees that had fallen in our winter storm. (If you ever get tired of spinning your wheels and want to do something with visible results, come on over, pick up an axe and split some wood!)
Being outside is so wonderful - the sound of birds (especially the Northern Flickers), the random bumbling path of a bumble bee and even the first butterfly I've seen this year all make me grateful for the place I live. There was even a pileated woodpecker hopping around the lower part of the Doug Fir outside my office window. If my cat hadn't been asleep on my lap he would have gone nuts!
Being outside is so wonderful - the sound of birds (especially the Northern Flickers), the random bumbling path of a bumble bee and even the first butterfly I've seen this year all make me grateful for the place I live. There was even a pileated woodpecker hopping around the lower part of the Doug Fir outside my office window. If my cat hadn't been asleep on my lap he would have gone nuts!
March 24, 2007
SimpleBits
Although I spend most of my time working in and around server-side systems, once in a while I find myself designing and building client side software. Some of that work is the visual and interaction bits, which is more challenging than designing servers - at least for me. Over the past few months I've worked heavily with CSS as applied to HTML and XML. Using CSS is fantastic. Sometimes infuriatingly inconsistent, but fantastic. I have a fascination with good 'design' - the visual kind of design that I appreciate but can't quite create. One site I stumbled on recently is SimpleBits by Dan Cederholm. This seems like a good starting point for exploring the world of page design, styling, typography and user interaction.
March 19, 2007
SpaceX launching demo flight #2 today
I don't know where I've been, but I had no idea that SpaceX corporation is so far along with their technology and their business. They three configurations - light, medium and heavy. These can reach LEO, GEO and the heavy can support planetary missions! A commercial company that can reach another planet! They are broadcasting the launch also.
This video of their Falcon1 launch in late 2006 kicks so much ass over the BlueOrigin test launch - although when BlueOrigin launches that cute iPod of a rocket for real, that will be so very cool.
Update - the launch was delayed 45 minutes, but the live webcast is on. Cool! I can see vapors from the fuel topping off! "T minus 20 minutes and counting..." Wicked!
Update - AARggh! They aborted launch at T minus 1:15. Not sure why yet.
Update - The launch engineer has announced termination of the webcast, but the launch will be rescheduled for tomorrow same time.
(Check out the google maps of the Omelek Island launch site - someday we'll have live Google Earth with the 3D trajectory!)
PS - if you want to chat about this, download this Firefox sidebar and go to the SpaceX home page
This video of their Falcon1 launch in late 2006 kicks so much ass over the BlueOrigin test launch - although when BlueOrigin launches that cute iPod of a rocket for real, that will be so very cool.
Update - the launch was delayed 45 minutes, but the live webcast is on. Cool! I can see vapors from the fuel topping off! "T minus 20 minutes and counting..." Wicked!
Update - AARggh! They aborted launch at T minus 1:15. Not sure why yet.
Update - The launch engineer has announced termination of the webcast, but the launch will be rescheduled for tomorrow same time.
(Check out the google maps of the Omelek Island launch site - someday we'll have live Google Earth with the 3D trajectory!)
PS - if you want to chat about this, download this Firefox sidebar and go to the SpaceX home page
February 27, 2007
The Younger Generation
So I was sitting at my computer when my daughter walks up and asks - "What are you working on?" I told her I was reading about Web technology and happened to see a page on Wikipedia about HTTP. Since I knew she had seen Wikipedia before, I thought I'd impress her by saying that I had added a sentence to this page. So she says - "Oh yeah! I added a sentence to this page here." and she proceeded to take over the mouse and navigate to the page on Cubism where she showed me the sentence she added there - the second sentence at the top of the page. I was the one impressed! And she's not yet a teenager...
February 14, 2007
Job openings at OthersOnline
I've been busy and having a lot of fun cleaning up and building out different pieces of the OthersOnline system. So far I've fixed a few issues in the InternetExplorer toolbar, implemented the Firefox toolbar, implemented a widget for bloggers, built Web pages for profile search and browse, and variously tweaked and tuned the profile matching algorithms on the server. But now it's time to add a few more engineers. We have two job openings for an experienced software engineer and an experienced UI designer. Feel free to contact me at mike at othersonline dot com, or forward this to someone that may be interested.
Senior User Interface Designer
As a Web applications developer with OthersOnline you will define and create the user experience for all our applications that results in a highly social and interactive community of online users.
You will be responsible for operational support as well as prototyping features and brainstorming ideas. You will design, document and implement usable, enjoyable and engaging features using DHTML, Javascript, CSS, XML and Ajax and work within a Linux and Java based server environment. Candidates must be creative, flexible, self-directed, and understand how to design and write elegant, responsive and maintainable user interfaces.
Senior Software Engineer
As a software engineer with OthersOnline, you will create innovative algorithms and data services to dramatically improve search result relevance and create highly scalable, reliable Web services that extend the reach of our platform.
You will be responsible for operational support as well as brainstorming features and ideas. You will design, document and implement scalable, flexible features using Java, XML, SQL and HTTP in a Linux and Oracle environment. The ability to document technical approaches completely, correctly and concisely is required. Candidates must be creative, flexible, self-directed, and understand how to design and write high-performance, reliable and maintainable code and data models.
Senior User Interface Designer
As a Web applications developer with OthersOnline you will define and create the user experience for all our applications that results in a highly social and interactive community of online users.
You will be responsible for operational support as well as prototyping features and brainstorming ideas. You will design, document and implement usable, enjoyable and engaging features using DHTML, Javascript, CSS, XML and Ajax and work within a Linux and Java based server environment. Candidates must be creative, flexible, self-directed, and understand how to design and write elegant, responsive and maintainable user interfaces.
Senior Software Engineer
As a software engineer with OthersOnline, you will create innovative algorithms and data services to dramatically improve search result relevance and create highly scalable, reliable Web services that extend the reach of our platform.
You will be responsible for operational support as well as brainstorming features and ideas. You will design, document and implement scalable, flexible features using Java, XML, SQL and HTTP in a Linux and Oracle environment. The ability to document technical approaches completely, correctly and concisely is required. Candidates must be creative, flexible, self-directed, and understand how to design and write high-performance, reliable and maintainable code and data models.
January 21, 2007
Social Content Services and REST
This article from Leigh Dodds about Connecting Social Content Services is an extremely well written summary of several social content services, a greatly pragmatic description of REST and an extremely useful review of the service APIs from those social content services.
If you need a quick list of aspects for engineers to consider when building a ReST based system (the list is derived from Joe Gregorio's site), try this:
One comment I have on this review of RESTful services is the author mistakes "URL" for only the portion before the query terms. This results in judging these services to be less RESTful than they actually are. Use of query terms does not mean there is one 'controller' with parameters, it actually increases the number of addressable resources which is good.
If you need a quick list of aspects for engineers to consider when building a ReST based system (the list is derived from Joe Gregorio's site), try this:
This review notes that nearly all services do not use hypermedia which I think is unfortunate but understandable. I've always had a problem resolving the desire to be flexible in allowing the internal data identifiers to be used in many situations and the desire to be trivally easy for clients to access other resources by simply using links - the mashup problem. One issue I have is that the server-side software that generates the representation might not know all the possible resources made available by sibling services. Think of a US postal zip-code - if you have a service that provides weather based on zip code, should that representation also be responsible for linking to all other services - either provided by your system or some other server - that could potentially take in a zip-code? My approach is to return both direct links to known resources (tagged appropriately) as well as the short-form of the identifier, the plain zip-code for example. Microformats sort of do this, but it's a style that isn't well applied by data services.
- How does the API use URLs to identify resources?
- What HTTP methods does the API support?
- What status codes are returned?
- How are users and applications authenticated to the API?
- Are resources linked to one another (use of hypermedia)?
- What data formats does the API support?
One comment I have on this review of RESTful services is the author mistakes "URL" for only the portion before the query terms. This results in judging these services to be less RESTful than they actually are. Use of query terms does not mean there is one 'controller' with parameters, it actually increases the number of addressable resources which is good.
January 17, 2007
Funny story about a bank
Want to hear a funny story?
Okay.
So, this guy walks into a bank south of Seattle, WA.
"Hi" he says "my name is Mike Dierken".
"Here's my social security card, bank account number and Utah driver's license." He hands over a check for $5,000 and wants to withdraw $4,000.
The bank says, "Duh, okay. Sounds good to me." and hands over $4,000 in cash.
Here's the funny part…
The next day, same guy walks into a different bank.
"Hi" he says "my name is Mike Dierken".
"Here's my social security card, bank account number and Utah driver's license." He hands over a check for $5,000 and wants to withdraw $4,000.
This time the bank teller calls the other Mike Dierken who says "What the #!**?" while hearing the teller saying "Sir, please just have a seat over there. No, don't leave…"
I'll be out of the office tomorrow morning. I have a meeting with my local Bank of America branch. I must say, the teller that called me was very smooth and professional, pretending to talk to a 'signature authority' while talking to me. She made her side of the conversation sound normal while still responding to my questions. I imagine even check fraud could be frightening to a teller, as you don't know how they will respond.
Okay.
So, this guy walks into a bank south of Seattle, WA.
"Hi" he says "my name is Mike Dierken".
"Here's my social security card, bank account number and Utah driver's license." He hands over a check for $5,000 and wants to withdraw $4,000.
The bank says, "Duh, okay. Sounds good to me." and hands over $4,000 in cash.
Here's the funny part…
The next day, same guy walks into a different bank.
"Hi" he says "my name is Mike Dierken".
"Here's my social security card, bank account number and Utah driver's license." He hands over a check for $5,000 and wants to withdraw $4,000.
This time the bank teller calls the other Mike Dierken who says "What the #!**?" while hearing the teller saying "Sir, please just have a seat over there. No, don't leave…"
I'll be out of the office tomorrow morning. I have a meeting with my local Bank of America branch. I must say, the teller that called me was very smooth and professional, pretending to talk to a 'signature authority' while talking to me. She made her side of the conversation sound normal while still responding to my questions. I imagine even check fraud could be frightening to a teller, as you don't know how they will respond.
January 08, 2007
Second Life client under GPL
I've never used Second Life, but I like the idea of people creating hyper-spaces. I used to do work with 3D graphics and have always thought the multi-player online games had poor visuals - the shading (coloring of models) and lighting really need work to be realistic. I'd like to see 'scenes' with near movie quality lighting and shading that you can invite a few friends into, yet hyper-link to other spaces. I've even toyed with the idea of a 'better' markup language for 3D - less modeling and more auto-layout capability.
Anyway, I don't know what it will mean to have their client library freely available, but this post on BoingBoing had a comment that really struck me:
Anyway, I don't know what it will mean to have their client library freely available, but this post on BoingBoing had a comment that really struck me:
"Customers only ever get to love it or leave it. Citizens get to change it."
January 05, 2007
Happy Birthday Grandma!
Today is my Grandmother's 90th birthday. Happy Birthday!
She lives in Montana, by the Little Blackfoot River just a few houses down from my Uncle. It's always great to go visit. Unfortunately we didn't fly out to see her for her birthday, airline tickets were just too expensive. We'll probably drive out in the Spring - at least the snow should be gone by then!
She lives in Montana, by the Little Blackfoot River just a few houses down from my Uncle. It's always great to go visit. Unfortunately we didn't fly out to see her for her birthday, airline tickets were just too expensive. We'll probably drive out in the Spring - at least the snow should be gone by then!
December 21, 2006
Windstorm 2006
The recent windstorm here in Washington knocked down three trees in our backyard. One snapped at the base and landed on our swingset and narrowly missed our deck and hot tub. The other two tipped over, pulling up a huge rootball and landed on the edge of the yard and into the forest.
We were without power for five days, which wasn't so bad for us. Our fireplace in the basement kept us warm and we learned you can actually bake cookies on a barbecue grill (if your daughter really really wants to make cookies). Some friends dropped their kids off for a sleepover (since our house wasn't freezing) and we all had a good time playing games by candlelight.
Now it's time to finish taking the limbs off the trees and clean the yard - fun fun.
We were without power for five days, which wasn't so bad for us. Our fireplace in the basement kept us warm and we learned you can actually bake cookies on a barbecue grill (if your daughter really really wants to make cookies). Some friends dropped their kids off for a sleepover (since our house wasn't freezing) and we all had a good time playing games by candlelight.
Now it's time to finish taking the limbs off the trees and clean the yard - fun fun.
December 14, 2006
Out of Amazon
Today is my last day as an official Amazon employee. I've been on leave of absence for three months and have decided not to return at this time.
This was not an easy decision - recently I was talking with a team at Amazon about a project they have started and it's exactly the kind of thing I've been wanting to build for years - but there are some other things I'd like to work on elsewhere.
I think Amazon is great, they have smart people and are in a great position to grow the Web. I expect to continue to see great things launched by the people at Amazon and really, really look forward to the project my friends are building.
Thanks for everything!
This was not an easy decision - recently I was talking with a team at Amazon about a project they have started and it's exactly the kind of thing I've been wanting to build for years - but there are some other things I'd like to work on elsewhere.
I think Amazon is great, they have smart people and are in a great position to grow the Web. I expect to continue to see great things launched by the people at Amazon and really, really look forward to the project my friends are building.
Thanks for everything!
December 05, 2006
Happy Sinterklaas and St. Nicholas Day
Happy Sinterklaas and St. Nicholas day!
When I was little, every December 5th was the day we would wake up and find a little package or an orange in our shoes by the fireplace. This is a family tradition from my mother, who grew up in Germany and taught us about St. Nicholas.
And since my wife's family is Dutch, we also get to celebrate Sinterklaas on the 5th - today we opened a package from Sinterklaas and Zwarte Pieten (Black Pete) with my favorite ginger spice cookies and we each found a giant chocolate letter - the first letter of our name. I think there weren't any 'M' letters left, so I got an upside down W!
When I was little, every December 5th was the day we would wake up and find a little package or an orange in our shoes by the fireplace. This is a family tradition from my mother, who grew up in Germany and taught us about St. Nicholas.
And since my wife's family is Dutch, we also get to celebrate Sinterklaas on the 5th - today we opened a package from Sinterklaas and Zwarte Pieten (Black Pete) with my favorite ginger spice cookies and we each found a giant chocolate letter - the first letter of our name. I think there weren't any 'M' letters left, so I got an upside down W!
December 03, 2006
Why I like blogs
This post over at
edgeio is why I like blogs. It's real, it's about people and and it's about what people are doing. In this case, we hear a brief overview of their first rollout of real-time searching of a hundred million offer listings.
Cool stuff.
edgeio is why I like blogs. It's real, it's about people and and it's about what people are doing. In this case, we hear a brief overview of their first rollout of real-time searching of a hundred million offer listings.
Cool stuff.
November 28, 2006
Agents, toolbars and adware
Here is a thought provoking post from Brian Smith about agents, adware and toolbars on ComparisonEngines.com. I like that he presents the core value of 'adware' and phrases it in a more general context of 'agents'.
Long ago I had been very excited about agents and event driven applications but spent most of the recent past working just on messaging systems (subscriptions, notifications, etc) rather than the agents themselves. Maybe it's time to go back and revisit agents. Recently I've had this notion that an interesting paradigm for empowering people to build agents might be to use a spreadsheet with event inputs and message outputs - but I haven't even started down the road of working out what it would look like. I think general folks wouldn't understand specialized agent building languages but might be able to poke things together with a visual tool.
Long ago I had been very excited about agents and event driven applications but spent most of the recent past working just on messaging systems (subscriptions, notifications, etc) rather than the agents themselves. Maybe it's time to go back and revisit agents. Recently I've had this notion that an interesting paradigm for empowering people to build agents might be to use a spreadsheet with event inputs and message outputs - but I haven't even started down the road of working out what it would look like. I think general folks wouldn't understand specialized agent building languages but might be able to poke things together with a visual tool.
Subscribe to:
Posts (Atom)