Related News
Enrollment Now Open at Hack U

Yahoo! Search is hitting the road and hacking at a university near you. Our University Hack Day tour, Hack U, offers interested students the opportunity to partake in a week of learning and hacking with tech talks, hacking tips and lessons, and hands-on coding workshops. From now till October 25th, we're heading to six schools across the country and giving students access to APIs and tools in the Yahoo! Developer Network, including SearchMonkey and Yahoo! Search BOSS (at Stanford and Berkeley only). We kicked things off at the University of Illinois at Urbana-Champaign this week, where 40 students joined us for a day of monkeying with Yahoo! Search. We've already seen a bunch of great ideas from the UIUC students. Here's a few photos from the SearchMonkey Brain Jam event on Tuesday. We'll be sure to share some of our favorite hacks after the Hack U tour wraps up.

At Hack U, you can win prizes, a spot in the Yahoo! Search Gallery and a chance to represent your school at the University Hack Showdown in California in next spring. If you're interested in participating or want more information on where we're heading and when, check out the sign-up page. Past University Hacks are here as well.Graham MuddYahoo! Search
Announcing the BOSS Mashable Challenge

Today at Open Hack 2008, we'll be announcing a new developer challenge we're hosting with Mashable. Since Yahoo! Search BOSS is all about openness and innovation, we figured the BOSS Mashable Challenge should be too; so there are almost no restrictions on what you can submit. Have an idea for a better way to search on the iPhone? Always wanted a search engine to help you find info on your hobby? Think you could design a better UI than 10 blue links? Now is your chance to build a mashup or prototype, win some cash and show the world your hack. As long as you use a BOSS API and submit it to the Challenge, your idea can win.The Challenge starts today and the deadline for submission is September 28. Mashable and Yahoo! will then pick the top submission and open it up to Mashable readers for voting. The winner will receive $2000, a nod on Mashable and loads of street (or geek) cred.Those of you who've already built mashups using BOSS are of course eligible as well. Just make sure to submit it to the Challenge. And if you're coming to Open Hack 2008, don't forget to stop by the BOSS session at 3:00 this afternoon.Graham MuddBOSS Team
Functional Style Regex Engine in C#
Wesner Moise's recent post Hard Problems, Simple Solutions speculates about implementing regular expression matching using a functional style. He points to a regular expression engine in 14 lines of Python and suggests this could be ported to C# using iterators and anonymous functions. Wesner writes that the regular expression would be composed functionally through a string:re = Sequence( term1, Plus( term2, Alternate( term3, term4 )), term 5)and the results would be returned as a collection by applying the regular expression to the list to be searched:results = re( list_to_search )I thought I would attempt a port of the Python code to learn a bit more about iterators and anonymous functions and came up with the class Rgx below (non-generic for strings only to make the code easier to read). This allows the sample from the Python code to be written like this:// c(a|d)+rRgx.Expr e = Rgx.Seq(Rgx.Char('c'), Rgx.Seq(Rgx.Plus(Rgx.Alt(Rgx.Char('a'), Rgx.Char('d'))), Rgx.Char('r')));foreach (string r in e("cdar")) Console.WriteLine("Match with remainder: {0}", r);The lack of global functions in C# makes the code uglier Wesner's suggested code above (btw why no global functions in C#? I believe the CLR supports them) and because the yield statement cannot be used inside anonymous method blocks it is necessary create the separate iterators SeqIterator and CharIterator. Note that like the Python code this class doesn't do anything useful; think of it as a proof of concept. class Rgx{ public delegate IEnumerable Expr(string s); static IEnumerable IconCat(IEnumerable xs, IEnumerable ys) { foreach (string x in xs) yield return x; foreach (string y in ys) yield return y; } static public IEnumerable Nil(string s) { yield return s; } static public Expr Seq(Expr l, Expr r) { return delegate(string s) { return SeqIterator(s, l, r); }; } static IEnumerable SeqIterator(string s, Expr l, Expr r) { foreach (string sl in l(s)) foreach (string sr in r(sl)) yield return sr; } static public Expr Alt(Expr l, Expr r) { return delegate(string s) { return IconCat(l(s), r(s)); }; } static public Expr Star(Expr e) { return delegate(string s) { return IconCat(Nil(s), Seq(e, Star(e))(s)); }; } static public Expr Plus(Expr e) { return Seq(e, Star(e)); } static public Expr Char(char c) { return delegate(string s) { return CharIterator(s, c); }; } static IEnumerable CharIterator(string s, char c) { if (s.Length > 0 && s[0] == c) { yield return (s.Substring(1)); } }}
Building with BOSS — New Products to Share
It's been two months since we began "opening up" the Yahoo! Search infrastructure with the launch of Yahoo! Search BOSS and we've already seen some great products created. We shared a handful with you last month, and we're excited to see that the creativity hasn't slowed down. From new vertical search engines to a personalized search platform, developers are using BOSS to come up with a range of new products. As we promised, below are a few more examples of the interesting products that have been built using BOSS. 123People.com: Currently focused on the European market, 123People.com delivers comprehensive and centralized profiles including images, videos, phone numbers, email addresses, social networking, and Wikipedia profiles related to an individual. The site uses the XML BOSS interface to query Yahoo! Search's image and web search index in real-time. Based on the geographic location of the user and semantic analysis, 123people applies ranking algorithms and presents results tailor-made to people search.

askBOSS: One of our very own, Saurabh Sahni, explored the use of natural language processing in image search, which has historically been limited to text search. His mashup, askBOSS, is an extension of Vik Singh's QNA mashup and works by using the Mashup Framework to predict the answer to a user's question and then queries the BOSS image search API for corresponding images.

BuildaSearch: Using the BOSS Web Search API to generate customizable search results, BuildaSearch takes all the complexities out of building a search engine and allows you to control the name, look and feel of your search engine. For example, one of our team members designed a search engine to look for dog friendly activities in the bay area in just a few minutes. Engines built using BuildaSearch can be hosted on either their site or elsewhere on the web using an API provided by BuildaSearch.

Remember, if you're building mashups, make sure to tag them with "bossmashup" on Delicious so we can discover them. We'll continue to share new products that we come across. Hopefully, these examples will help to get your wheels turning. Happy building!If you're feeling inspired to start building today, sign-up for Yahoo!'s Open Hack 2008 and join your fellow developers. Please mark your registration with "Yahoo! Search" so we can save you a space. The BOSS team
Next Firefox Update To Feature Dramatic Speed Boost (NewsFactor)
NewsFactor - The Mozilla Foundation is on the verge of adopting a new software-programming technique that promises to dramatically improve the speeds at which browsers interact with the Web. The first step, the nonprofit organization said, will be to optimize the way that JavaScript runs in Firefox 3.1 -- the next incremental update to Mozilla's popular open-source browser.