Monday, September 15, 2008

Sangria

I tried to make Sangria from the El Bulli recipe. It tastes like a cross between traditional Sangria and mulled wine, and was pretty easy to make.

The wine part starts with a 5:1 mixture of wine and sugar boiled with oranges rinds, peppercorns, and bay leaves until reduced by half. Then 3 times its volume of red wine, 1/3 its volume of simple syrup, and 1/3 its volume of Curacao are added. The recipe also adds ginger and glucose but I didn't have any, I'm guessing the glucose would have helped separate the two halves of the drink.

The juice part is a 4:2:2:1 mixture of orange, tangerine, peach, and apple juices with a little lime juice added.

Sunday, August 31, 2008

Sunday, August 17, 2008

Ice so need to get out more


I tried to make clear ice cubes yesterday, after reading these and these instructions. Distilled water made clearer cubes than tap water, but re-freezing or double boiling didn't have a noticeable effect.

From left to right: tap water, distilled water, refreezed distilled, boiled distilled.

I felt a bit decadent trying to get perfect ice... and looked online for examples of the same sort of thing just before the falls of the Roman and British empires... and indeed there was concern in Rome over water quality which sort of counts and the Brits loved ice for their cocktails in India... So something big is about to happen.

Saturday, August 9, 2008

Saturday, June 28, 2008

Google Analytics w/Blogger

This blog is now hooked up to Google Analytics, which shows graphs of how many people visit it, which are the popular posts, etc. It was very easy to do and took about 10 minutes. You just put a javascript snippet at the bottom of your blogger template and a day later your results will start to appear.

It also sounds like this will be done automatically for all Blogger users by the end of the year. Google is currently in private beta with an integration of the MeasureMap tool they purchased (which does analytics) with Blogger.

Wednesday, June 25, 2008

Google, bork, bork, bork!


Marissa Mayer's speech at Google I/O mentioned how she'd added a Swedish Chef option to Google's home pages. It's great - on the home page, it's under Preferences > Interface Language.


Friday, June 20, 2008

Cambridge 8 Somerville 0

I think US soccer should be more local to be really successful. Cambridge vs Somerville would be a good game, but Foxboro's New England Revolution is too far from our communities for us to get excited about. The stadium is three-quarters sealed off, and those who do come to sit in the remaining quarter are repeatedly reminded of how the organizers are trying to make them think the show's bigger than it really is, like they're sitting in a hard sell heh heh :) I wish they'd try for a more natural and local approach to soccer.

The Women's Soccer League was really fun. They played in smaller arenas (Boston played at BU) and while the crowds might have been smaller, you'd never think it. A shame it closed.

Imagine Cambridge playing Somerville, Allston/Brighton, or Boston, or Dorchester. Even if Cambridge had a terrible team, would thousands of fans pay $20, stand in the rain, watch them lose and go home happy? Yup. Would Newton fans require extra police protection? Yup!

Sunday, June 15, 2008

Scoville Sour


I've heard that eating honey helps with hayfever as it gets the body used to the pollen that you're allergic to. Even if it doesn't work in that way, I have an appetite for sugar during hayfever season, and honey is healthier than chocolate bars or whatever.

This spring I tried to eat local honey every day during allergy season, and while I didn't notice an improvement, it was fun. Best was the Scoville Sour, a drink from No.9 Park, which has both honey and maple syrup in it. Apparently I'm allergic to Maple pollen, so this sounded like a good idea.

It's
2.5 oz Hendricks
1 oz lemon juice
1/2 oz honey simple syrup
1/2 oz maple syrup
1/4 tsp cayenne and espelette pepper mix

Friday, June 13, 2008

What's fun, personalized and hotter than watching CNN?

Saw this ad for Persian lessons while I was getting a sandwich. It goes on to say that the lessons will include phrases for playing Backgammon.

Friday, May 30, 2008

Google I/O: Flash on Android, and Wrap-Up


Running Flash on Android
At the Android Q&A, the developers said that the first release will have a webkit browser included but without the ability to have plugins installed. So there won't be Flash or Flash Lite on the Android platform to start. The follow-up release will be able to install plugins into the webkit browser, which will make Flash available assuming Adobe offer an open source version of the Flash plugin.

This should provide the iPhone with some competition. I haven't seen another phone-based web browser as good as the iPhone's yet, and Flash support will be one way to compete. Hopefully this will then lead to Flash on the iPhone.

Wrap-Up
It was interesting that the Android sessions always seemed to be the most packed. I think the Google Gears work had the next highest level of interest.

I found the Gears work the most likely to be used in projects where I work - eg. storing stock and mutual fund data in local databases to allow fast filtering of results.

It was a well put together conference from Google, giving you an introduction to the various areas of web development that they offer developer tools in, and showing how they can be used alone or together to create web applications.

Thursday, May 29, 2008

Introduction to Google's Ajax APIs

This session was also useful for seeing the workflow of how Google teams develop web applications and realizing that we're all pretty much doing the same thing.

Google Ajax developers use any editor to create their applications, the only important thing for Google client side teams is to have a good debugger around - i.e. Firebug. I (still, I know) use Visual Studio's debugger but when you inject script into the DOM it can't find the script to debug sometimes and I can see myself moving over to Firebug.

This Google team's development is done by first building the static HTML files, then by building in the script required, and then adding in the Google APIs. HTML returned by the Google APIs is then styled using CSS classes documented on code.google.com.

Creating an iGoogle widget out of an HTML app is straightforward, you create an XML description file with its height etc and copy it to a google server. iGoogle will render the widget inside an iframe to avoid the possibility of it modifying any other widgets in its script.

Client-Side Performance

Here's a screen shot of IBM Page Detailer, Steve Souders's preferred packet viewer to use. 80% of web response time is spent on the client, and it also shows where network object downloads get blocked by script execution.

Browsers block parallel downloading of script and CSS when a script is being run so be careful with online script placement as a web page will block downloads. Basically be aware that whenever script is reached it will block any further parallel downloading of network objects.

@import statements have the same effect on CSS as inline script with script tags, so use link tags instead.

Defer script that is not needed for the loading of a page with XHR injection. XHR is required as Firefox does not support the DEFER attribute. Use XHR to load the script and then place it in a created script element. This is the best way as it allows for parallel downloading and does not display the busy indicator in the browser which is distracting to a user.

Google I/O day two keynote

The keynote was given by Marissa Mayer, Google's VP of search products. A really interesting speech on the difficulties of search and how to fix some of the problems they ran into.
50% of the web is in English, 1% in Arabic. Google operates in 110 languages. Translation is done by international users not by machines, much more efficient that way. Mayer used the translation technology to do a Swedish Chef version of a Google page that still gets millions of hits.
Performance correlates with increased hits - a 30% increase in google maps page performance resulted in 30% more hits to the site due to speed and increased ease of learning through faster feedback.
A key point she made was that often an application's purpose is to grow underlying technology not the actual function of the site. The Taxi Finder application that showed GPS-tracked taxis in NYC was not about taxis as much as about learning how to track things via GPS and display them on the web.
Also she emphasized the importance of creativity and prototyping. She builds applications herself from time to time as it's essential to keep a sense of what can be developed. Prototypes are critical as a part of decision making. 50% of google apps started out as a project
in each developer's 20% of work time assigned to prototyping.
Her key points were:
Keep pages as simple as possible. Use split A/B testing to test ideas that come out of usability interviews as sometimes they will turn out to be misleading.
Know your metrics on how your application is operating and how people use it.
Don't let the urgent drown out the important.
Build prototypes, set aside time for prototyping and allow products to arise from developers' creativity.

First day at Google I/O

Keynote Speech
The keynote showed examples of how Google's technologies can enhance web site development. Google Gears extends the browser's capabilities for all web pages with features such as multi-file upload, a local database similar to HTML 5, file system access, and soon to include camera integration.

GWT allows Java to provide a more sane interface to DHTML development, with one Google client side veteran saying she would not be hand-coding again after using it for Google Health.

Android is an OS for mobiles like Windows Mobile that should appear on some new phones shortly. It offers a universal platform for developing Java applications for mobiles by abstracting out the hardware differences of each phone. Another way to develop for Android is to develop sites that will run on its WebKit browser, which will also then run on the iPhone's browse too. We were shown Pacman running on an Android phone as well as a version of Street View that auto rotates the street view as you move your phone around by taking advantage of the phone's built-in compass. This was very cool.

Some sample web page enhancement APIs were shown that run as Javascript pulled in via script tags from google. They allow easy blog integration onto other sites, and easy integration of youtube content. They join the existing APIs offered by Google to the client to jazz up web sites with little work.

Finally, Google is now also offering free application deployment space on its servers for web applications. It's free for the first 5 million page views per year.

Demonstrations
After the keynote, I went to the area where Google's APIs were being demonstrated. The data visualization API is separate from the charting API and can take data from XML or google spreesdsheets and render charts. One advantage of a DHTML based chart is that it'll run on the iPhone.

Google analytics can be used on Blogger. I'll try this out when I get back on this blog.

The evolution of new features on the web

Alex Russell, one of Dojo's developers, gave a really interesting speech on what the most hopeful ways for the web to evolve might be. He focused on the multiplier effects of an open development system - allowing new developers to learn the web quickly and making code sharing and maintenance easier. Google's Gears was an example of an app along these lines, whereas GWT, despite its great helpfulness to Java developers, removed too much of what is good about the web to be on this track.

Alex's talk was the reason you go to conferences. Often if you mention that there are cases where tables are better than CSS for layout, or how the web standards movement sometimes holds the web back, people look at you funny and say that you're against code standardization and progress and should be sent to the salt mines.

Emilio and Ashish

What is a sheet turndown service?

Saturday, May 24, 2008

Cheap liquor

In Cambridge, the cheapest place to buy liquor is... the Wine and Cheese Cask. Actually it's probably in Somerville isn't it...

The graph was done with OpenOffice - I've been using it for a week. It's free. If you don't use word processors etc much and think Microsoft Office is too expensive, it's worth downloading.

Saturday, May 17, 2008

Restaurant safety inspection reports

Just stumbled upon the City of Cambridge's restaurant inspection reports online. It's hard not to read. It was interesting that Burger King seemed to have the fewest violations of the restaurants I looked at, while restaurants I liked seemed to have the most except for the Green St Grill which had no violations for the last few years.

Sunday, May 11, 2008

The easiest way to put a short video on a web page

The absolute easiest way is to use YouTube, or a site like it. But if you host the video yourself, the video quality will be better and you can control the look of your movie player.

I've found that the easiest way to add a video hosted on your own web server is with Adobe's free Flash Video player. It makes adding a video to a web page as easy as adding an image. Flash video is the most common video format on the web today, used by sites like YouTube and MySpace, and Adobe's player is only 15K in size and very easy to use and customize.

To get started, save your video in Flash Video format. This usually means saving it with the .flv extension. There are many video programs that can convert movies into Flash Video format, including the Flash Video Encoder program that comes with Adobe Flash.

Once you have your video in FLV format, download the Flash Video player from Adobe Labs. Unzip the files, run any of the example web pages, and you'll see the player playing a sample video. Now replace this sample video with your own video. To do this, view the web page's HTML and change the reference to the sample video's filename with your own movie's filename. The sample page should now be playing your video file.

At this point you should be done and can cut and paste the sample web page's HTML code into your web page. More detailed instructions are in the documentation that comes with the unzipped Adobe Flash Video player.

Friday, May 9, 2008

Two Minute Guide to Middle East Peace

Palestine During World Wars 1 and 2
A hundred years ago, the Ottoman Empire ruled Palestine, which was then a large area including present-day Jordan, Lebanon and Israel. After the Ottoman Empire was defeated in World War 1 by the Allies, Great Britain was given stewardship of Palestine by the League of Nations. Britain gradually gave the region of Palestine south of the river Jordan more and more autonomy, and it became known as Transjordan. Only the area to the north of the river was now called Palestine.

Between World Wars 1 and 2, Jewish immigration to Palestine increased because of persecution in Europe. At the end of World War 2, 30% of Palestinians were Jews, and 10% of Palestinian land had become owned by Jews.

This increase angered the Palestinian Arabs, who during WW2 had successfully pressured the British government to limit Jewish immigration into Palestine, even from Axis countries. The Jews in turn were pressuring the British to allow more immigration, and Jewish terrorists attacked many government and military institutions, including assassinating the British Governor Lord Moyne in 1948. In 1947, Britain decided it could not control the region, and asked the United Nations to decide what should happen.

The Creation Of Israel
In 1947, a United Nations committee of neutral countries decided that Palestine should be split into a Palestinian and a Jewish state, except for Jerusalem which was to be governed by the UN as an open city. The Jewish community and leaders accepted this, but the Arabs did not. Indeed, Arab representatives refused to discuss plans for Palestine with the UN. The Palestinian Arabs couldn't understand why half their country should be taken away from them to solve a problem that Europeans had created for themselves through their persecution of the Jews.

Once the U.N. committee's decision was public and had successfully passed a vote in the UN General Assembly, the Arab countries tried to appeal to the International Court of Human Rights, but they did not get enough votes for their case to be heard.

The proposed borders gave the Jewish state 55% of Palestinian land - a generous allocation as only 30% of the Palestinian population was Jewish. The UN committee deciding the borders was initially tending towards recommending a unified Palestinian state, but was impressed by how well existing Jews were already using their Palestinian land.

As the British handover neared, clashes between Arabs and Jews in Palestine escalated and hundreds of people died on both sides. All of the countries neighboring Palestine publicly declared that they would resist the creation of an Israeli state, and it became clear that Israel should expect to be attacked as soon as the British completed their withdrawal.

To make their new country easier to defend, Israeli military forces and gangs attacked Israel's Palestinians to scare them out of their new state's borders, and most Palestinians living in Israel fled to the surrounding areas and Jordan. Hundreds were killed in artillery attacks on their homes and 700,000 were forced to flee. As soon as the British officially completed their pullout in May of 1948, all Arabic countries surrounding Israel attacked it.

The 1948 War
Israel won the war, holding off Egypt, Syria, Jordan, Lebanon, and Iraq. It lost 1% of its 500,000 population as casualties. It grew its UN-determined borders by 20% as a result of the war and also seized Jerusalem. The remainder of Palestine was seized by Egypt (the Gaza Strip) and Jordan (the West Bank).

The Six-Day War and Yom Kippur War
In 1967 and 1973, Israel's Arab neighbors again attacked it in two separate attacks. Israel won both these wars as well. After the Six-Day War it again increased its borders by seizing the Gaza Strip from Egypt, the West Bank from Jordan, and the Golan Heights from Syria. 

Today
Today the 700,000 Palestinian refugees displaced out of Israel in 1948 have grown to 4 million in number. They still want to return to their land and houses in Israeli territory.

Arab countries have started to recognize the legitimacy of Israel, including Egypt in the 1980s and the PLO in the Oslo accords. Yet this is a controversial act in the Arab world, leading to the assassination of Sadat and dissatisfaction with the PLO.

Current peace efforts are concentrating on the creation of an Arab Palestinian state from the West Bank, Gaza Strip, and some of the Israeli territory. Many Arab Palestinians see this as just the first step towards regaining all the land that they use to own.

Israel too wants a separate Palestinian state, because a merged state would lead to the Arab population growing to outnumber the Jewish population over time. But it does not want to give up much of its land that it either won in war or has built settlements on.

The UN's original 1947 plan for division is not acceptable to either side. Both sides want Jerusalem, as well as much more land than the other side is prepared to give.