Fast Searching in Chrome with Custom Search Engines

May 21, 2015

For websites that you're frequently searching, here's an easy way to speed up the process.

Setting up a custom search engine takes about a minute. Afterward, you'll be able to type a keyword into your browser bar from anywhere to trigger the search.

How to add a custom search engine to Chrome
  1. Find the search box on the webpage you care about:
  2. Right click on the box and hit "Add as Search Engine". (see the section below to troubleshoot)
  3. Fill in the form — the name doesn't really matter, but the keyword determines what you'll have to type into the browser in order to activate the search engine. Make it short and one word.
  4. Save, then open a new window.
  5. Type your keyword into the browser bar...
  6. Press space (or tab).
  7. Type something to search and press enter...
  8. It's just like you typed the query into the original search box!

You can create a custom search engine for pretty much any site that has a search page, and even some that don't. For example, I have a few set up for our company intranet and Github repository to make it trivial to look up an id or search for a commit hash, or to see recent commits by a particular person.

Once your keyword is set up, it will be available across all browser windows.

Advanced
  • To edit the existing search engines, right click on the browser bar and hit "Edit search engines".
  • If you don't see "Add as Search Engine" in the menu, you can manually create a search engine by constructing a URL with %s in it, where %s is the text that you type in after the keyword (see the list of existing search engines for examples). You can also use this method for fancier searches where there is no search bar.
  • If you use Firefox, you can follow a similar process after right-clicking on the search field you care about.

Bicycaleidoscope: A Musical Art Project

December 18, 2013
The bicycaleidoscope

This quarter, Brie Bunge and I built a new musical instrument in the form of a giant musical kaleidoscope for Music 250A: Physical Interaction Design for Music. It consisted of a triangle of mirrors with two spinning bicycle wheels at one end, where one wheel controls the melody and the other the harmony. We filled the spokes of the wheels with colored gel slides.

The musical component came from an Arduino hooked up to a laptop, with magnets on the spokes providing the input via Hall effect sensors. The laptop generated notes each time a magnet passed a sensor, based on a probabilistic model. We also learned how to weld in the process! (And sanded a tremendous amount of grease off of steel pipes...) See the full writeup for more pictures, or check out the instrument in action:

Slides: Scraping the Web with Python for Beginners

January 25, 2014

Here are the slides I made for a beginner workshop on getting started fetching data off of your favorite website with Python. Web scraping is a nice way to get more familiar with Python and HTML, since it lends itself to small, fun, self-contained projects.

I put together the workshop for the 2014 HackOverflow event, a hackathon organized by the Stanford Women in Computer Science group. Loosely, the theme was "using data to make applications." The workshop was part of a series introducing people to different topics, with the idea that the students might continue to explore the topic on their own afterwards.

I particularly enjoyed talking about web scraping due to a project I had made a few years before. I wanted to have Chrome automatically open the guitar chords for whatever song was playing in iTunes, since it was awkward to type while holding a guitar. It was neat to realize that with some googling and fiddling around, I could write a short script in Python to do it. Sadly, I don't think the resulting code from that project survived the changes to the different services over time.

Programming Challenges Launch!

September 3, 2013

We launched programming challenges today at Khan Academy, a large part of what I've been working on this summer. It's tremendously exciting to launch, especially since the initial feedback from the students has been remarkably positive.

I wrote up the Khan Academy programming challenges blog post with all the details. Check it out to learn more about the project and try out a challenge yourself!

Design Guidelines for Teaching Programming on Khan Academy

August 26, 2013

As part of my summer internship at Khan Academy, I wrote a post for our Computer Science blog on our design guidelines for teaching programming talkthroughs.

It's a pretty extensive post that involves most of what I've learned about teaching over the past few years. The intuitions mostly arose from section leading for Computer Science intro classes in Stanford's excellent CS198 program. I've also learned a lot from analyzing the good and bad of current talkthroughs, and the Khan Academy content that I have made. The post will serve as an internal guide as we develop more content, as well as a great way to interact more with the teaching community. Check it out!

All set up

August 22, 2013

After taking detours involving setting up Wordpress on Heroku, exploring Dropbox-driven blog creators, writing a blog engine in Django, and other feats of over-engineering, I'm finally set up!

I've settled on Namecheap for hosting, NodeJS on Heroku with Express+Handlebars for the main site, Blogger for blogging, and Disqus for comments. Total cost? Free! (Except for the domain name.)

I spent more time on CSS than I expected, partially because I started using the new Bootstrap 3 for the first time, partially because I always spend more time on CSS than I expect. I grabbed the Cosmo Bootswatch theme because it felt cleaner, but I ended up writing a bunch of custom CSS anyway. It turned out to be particularly involved to customize Blogger to behave the way I wanted it to on both desktop and mobile. I wish the platform provided just a little more flexibility, but I'm glad for the convenience.

I started putting together a Projects page, and I'll also be working on some posts about my work so far at Khan Academy.

Edit 11/17/13: Turns out I wasn't done after all -- I decided it would be fun to write it from scratch after all, this time in Node.js. But now I'm basically all set up, I swear :)