DAT102x_NepalEarthquake.jpgDamage caused by Gokha earthquake. Image courtesy of BBC

by George Taniwaki

At the beginning of each quarter edX and Microsoft offer a one-month long course called DAT 102x, Data Science Capstone. The class consists of a single machine learning project using real-world data. The class this past April used data collected by the Nepal government after the Gorkha earthquake in 2015. The earthquake killed nearly 9,000 people and left over 100,000 homeless.

The assignment was to predict damage level for individual buildings based on building characteristics such as age, height, location, construction materials, and use type. Here’s are steps I use to solve this or any other machine learning problem.

About machine learning contests

The class project is operated as a contest. Students download training and test datasets, create a model using the training dataset, use the model to make predictions for the test dataset, submit their predictions, and see their scored results on a leaderboard.

As is common for machine learning contests, the training data consists of two files. The first file includes a large number of records (for the earthquake project, there were 10,000). Each record consists of an index and the independent variables (38 building parameters). A separate label file contains only two columns, the index and and their associated dependent variable(s) (in the earthquake project, there is only one, called damage_grade). The two files must be joined before creating a model.

The test file (10,000 more records of building indexes and parameters) has the same format as the training file. You use your model to create an output file consisting of the index and the predicted values of the dependent variable(s). You submit the file to a web service which then scores your results.

You can submit multiple predictions to be scored, adjusting your model after each submission in an attempt to improve your score. Your final score is based on the highest score achieved. To reduce the chance that competitors (students) overfit their model to the test data, the score is based on an undisclosed subset of records in the test file.

Approach to model building

The general approach to building a machine learning model is to first examine the dependent variables using univariate methods (step 1). Repeat for the independent variables (step 2). Normalize the variables (step 3). Examine correlations using multivariate methods (step 4).  Select the relevant variables, choose a model, and build it (step 5). Evaluate and test the model (step 6) and tune the parameters (step 7) to get the best fit without overfitting. Some iteration may be required.

Step 1: Univariate statistics for the dependent variable

The dependent variable, damage_grade, is labeled with an integer from 1 to 3. Higher values mean worse damage. However, the intervals between each class are not constant, so the scale is ordinal not linear. Descriptive statistics are shown in Table 1 and Figure 1 below.

Table 1. Descriptive statistics for dependent variable

Variable name Min Median Max Mean Std dev
damage_grade 1 2 3 2.25 0.61


Figure 1. Histogram of dependent variable


Step 2: Univariate statistics for the independent variables

As mentioned above, there are 38 building parameters. Details of the variables are given at Data Science Capstone. The 38 independent variables can be divided into 4 classes, interval integer, float, categorical and binary as shown in Table 2 below. Notice that the parameter count_families is defined as a float even though it only takes on integer values.

Table 2. Summary of independent variables

Variable type Quantity Examples
Binary (Boolean) 22 has_superstructure_XXXX, has_secondary_use, has_secondary_use_XXXX
Integer, interval 4 count_floors_pre_eq, height, age, area
Float 1 count_families
Categorical 11 geo_level_1_id, geo_level_2_id, geo_level_3_id, land_surface_condition, foundation type, roof_type, ground_floor_type, other_floor_type, position, plan_configuration, legal_ownership_status


The binary variables fall into three groups. First is has_superstructure_XXXX, where XXXX can be 11 possible materials used to produce the building superstructure such as adobe mud, timber, bamboo, etc. The second is has_secondary_use_XXXX, where XXXX can be 10 possible secondary uses for the building such as agriculture, hotel, school, etc. Finally, has_secondary_use indicates if any has_secondary_use_XXXX variables is true.

Whenever I have groups of binary variables, I like to create new interval integer variables based on them. In this case, they are named count_superstructure and count_secondary_use which are a count of the number of true values for each. count_superstructure can vary from 0 to 11 while count_secondary_use can vary from 0 to 10.

For the 7 numerical parameters, their minimum, median, maximum, mean, standard deviation, and histogram are shown in Table 3 and Figure 2 below. Possible outliers, which occur in all 7 numerical variables, are highlighted in red.

Table 3. Descriptive statistics for the 7 numerical variables. Red indicates possible outliers

Variable name Min Median Max Mean Std dev
count_floors_pre_eq 1 2 9 2.15 0.74
height 1 5 30 4.65 1.79
age 0 15 995 25.39 64.48
area 6 34 425 38.44 21.27
count_families 0 1 7 0.98 0.42
count_superstructure 1 1 8 1.45 0.78
count_secondary_use 0 0 2 0.11 0.32


Figure 2. Histograms for the 7 numerical variables. Red indicates possible outliers


Upon inspection of the dataset, none of the numerical variables have missing values. However, it appears that for 40 records, age has an outlier values of 995. The next highest value is 200. Further, the lowest age value is zero, which does not work well with the log transform. To clean the data, we will create a new binary variable named has_missing_age, with value = 1 if age = 995, else = 0 otherwise. We will also create a new numerical variable named adjust_age, with value = 1 if age = 0, else = 15 (the median) if age = 995, else = age otherwise.

The variable area has a wide range, but does not appear to contain any outliers.

The variables count_families, count_superstructure, and count_secondary_use do not seem to have any outliers. They also do not need to be normalized.

For the 11 categorical variables, the number of categories (enums), and the names of the enums with the largest and smallest counts are shown in Table 4 below.

Table 4. Descriptive statistics for the 11 categorical variables. Red indicates one or more enums has fewer than 10 recorded instances

Variable name Count enums Max label / count Min label / count Comments
geo_level_1_id 31 0 / 903 30 / 7 hierarchical
geo_level_2_id 1137 0 / 157 tie / 1 hierarchical
geo_level_3_id 5172 7 / 24 tie / 1 hierarchical
land_surface_condition 3 d502 / 8311 2f15 / 347
foundation type 5 337f / 8489 bb5f / 48
roof_type 3 7g76 / 7007 67f9 / 579
ground_floor_type 5 b1b4 / 8118 bb5f / 10
other_floor_type 4 f962 / 6412 67f9 / 415 correlated with ground_floor_type
position 4 3356 / 7792 bcab / 477
plan_configuration 9 a779 / 9603 cb88 / 1 lumpy distribution
legal_ownership_status 4 c8e1 / 9627 bb5f / 61 lumpy distribution


None of the categorical or binary variables have missing values. None of the enums are empty, though some of the enums (highlighted in red in Table 4 above) have fewer than 10 recorded instance, so may bias the model. Unfortunately, we do not have any information about the meaning of the enum labels, so do not have a good way to group the sparse enums into larger categories. If this were a real-world problem we should take time to investigate this issue.

Step 3: Normalize the numerical variables

As can be seen in Figure 2 above, some of the independent numerical variables are skewed toward low values and have long tails. We can normalize the distributions by creating new variables using the log transform function. The resulting variables will have names prefixed with ln_. The descriptive statistics of the normalized variables are shown in Table 5 and Figure 3 below.

Table 5. Descriptive statistics for adjusted and normalized numerical parameters

Variable name Min Median Max Mean Std dev
ln_count_floors_pre_eq 0 0.69 2.19 0.70 0.36
ln_height 0 1.61 3.40 1.46 0.40
ln_adjust_age 0 2.71 5.30 2.61 1.12
ln_area 1.79 3.53 6.05 3.54 0.46


Figure 3. Histograms of adjusted and normalized numerical parameters


This completes the first 3 steps of building a machine learning model. The remaining steps to solve this contest problem are posted at How to create a machine learning model – Part 2.




by George Taniwaki

While working toward my Microsoft Data Science Certificate (see Jul 2017 blog post), I also completed the Microsoft Excel for the Data Analyst XSeries Program sponsored by Microsoft and edX.

There are 3 classes in the program, two of which were also courses for the Microsoft Data Science Certificate.

DAT205x – Introduction to Data Analysis using Excel

This basic course on data analysis using Excel covers pivot tables, using SUMIF() and SUMIFS() functions to create dashboards and year-over-year comparison tables (something that is not possible using pivot tables alone), creating reports with hierarchal data, using Power Pivot, and creating multi-table reports using the data model and the More tables… feature.

Year-over-year comparison tables can also be created using the Excel data model and time intelligence functions. These are covered in the third course, DAT 206x.

Time: Since I am already an experienced Excel user, I skipped the videos and just did the homework. I covered the 8 modules in about 6 hours

Score:  I missed 1 quiz question and no lab questions for a combined score of 99%

image     image

DAT222x – Essential Statistics for Data Analysis using Excel

[I took DAT222x in order to earn the Microsoft Data Science Certificate. This section is copied from this  Jul 2017 blog post.]

This class is comprehensive and covers all the standard statistics and probability topics including descriptive statistics, Bayes rule, random variables, central limit theorem, sampling and confidence interval, and hypothesis testing. Most analysis is conducted using the Data analysis pack add-in for Excel.

Time: I used to work in market research, so I know my statistics. However, there are 36 homework assignments and it took me over 20 hours to complete the 5 modules.

Score: I missed 9 questions on the quizzes (88%) and six in the final exam (81%) for a combined score of 86%. (Despite the time it takes to complete, homework counts very little toward the final grade)

DAT222x-Score_thumb10     DAT222x-Certificate21

DAT206x – Analyzing and Visualizing Data with Excel

Topics include importing data and using queries with Excel, the Excel data model, using the M query language and DAX query language, creating dashboards and visualizations, and using Excel with Power BI.

Within the M language, topics include using the functions in the ribbon, including filtering rows, Table.Unpivot function.

Within the DAX language, topics include using the X functions like SUMX() and the CALCULATE() function, using Calendar table and time intelligence, and customize pivot tables and pivot charts using the CUBE functions from multidimensional expressions (MDX) language. The CUBE functions can also generate a table that can be used to create chart types that Excel does not support directly from a pivot table (for instance the new treemap, sunburst, and histogram charts).

Time: I am an experienced Excel user, but some of the advanced DAX functions were new to me. 6 hours for 8 modules

Score: I got a bit sloppy. I missed 2 lab questions and 1quiz question for a combined score of 95%

DAT206x Score     DAT206x Certificate

Final Certificate

Below is my certificate of completion for the Microsoft Excel for the Data Analyst XSeries Program.

ExcelXSeries Certificate


by George Taniwaki

Big data and machine learning are all the rage now. Articles in the popular press inform us that anyone who can master the skills needed to turn giant piles of previously unexplored data into golden nuggets of business insight can write their own ticket to a fun and remunerative career (efinancialcareers May 2017).

Conversely, the press also tells us that if we don’t learn these skills a computer will take our job (USA Today Mar 2014). I will have a lot more to say about changes in employment and income during the industrial revolution in future blog posts.

But how do you learn to become a data scientist. And which software stack should one specialize in? There are many tools to choose from. Since I live in the Seattle area and do a lot of work for Microsoft, I decided to do take an online class developed and sponsored by Microsoft and edX. Completion of the course leads to a Microsoft Data Science Certificate.

The program consists of 10 courses with some choices, like conducting analysis using either Excel or Power BI, and programming using either R or Python. Other parts of the Microsoft stack you will learn include SQL Server for queries and Microsoft Azure Machine Learning (MAML) for analysis and visualization of results. The courses are priced about $99 each. You can audit them for free if you don’t care about the certificates.

I started the program in February and am about half way done. In case any clients or potential employers are interested in my credentials, my progress is shown below.

DAT101x – Data Science Orientation

If you haven’t been in college in a while or have never taken an online class, this is a good introduction to online learning. The homework consists of some simple statistics and visualization problems.

Time: 3 hours for 3 modules

Score: 100% on 3 assignments

DAT101x Score    DAT101x Certificate

DAT201x – Querying with Transact-SQL

I took a t-SQL class online at Bellevue College two years ago. Taking a class with a real teacher, even one you never meet, was a significantly better experience than a self-paced mooc. This course starts with the basics like select, subqueries, and variables. It also covers intermediate topics like programming, expressions, stored procedures, and error handling. I did my homework using both a local instance of SQL Server and on an Azure SQL database.

Time: 20 hours for 11 modules

Score: I missed one question in the homework and two in the final exam for a combined score of 94%

DAT201x Score     DAT201x Certificate

DAT207x – Analyzing and Visualizing Data with Power BI

I already have experience creating reports using Power BI. I also use Power Query (now called get and transform data) and M language and Power Pivot and DAX language, so this was an easy class.

The course covers data transforms, modeling, visualization, Power BI web service, organization packs, security and groups. It also touches on the developer API and building mobile apps.

Time: 12 hours for 9 modules

Score: I missed one lab question for a combined score of 98%

DAT207x Score     DAT207x Certificate

DAT222x – Essential Statistics for Data Analysis using Excel

This class is comprehensive and covers all the standard statistics and probability topics including descriptive statistics, Bayes rule, random variables, central limit theorem, sampling and confidence interval, and hypothesis testing. Most analysis is conducted using the Data analysis pack add-in for Excel.

Time: I used to work in market research, so I know my statistics. However, there are 36 homework assignments and it took me over 20 hours to complete the 5 modules.

Score: I missed 9 questions on the quizzes (88%) and six in the final exam (81%) for a combined score of 86%. (Despite the time it takes to complete, homework counts very little toward the final grade)

DAT222x Score     DAT222x Certificate

DAT204x – Introduction to R for Data Science

Now we are getting into the meat of the program. R is a functional language. In many ways it is similar to the M language used in Power Query. I was able to quickly learn the syntax and grasp the core concepts.

The course covers vectors, matrices, factors, lists, data frames, and simple graphics.

The lab assignments use DataCamp which has a script window where you write code and a console window that displays results. That makes it easy to debug programs as you write them.

The final exam used an unexpected format. It was timed and consisted of about 50 questions, mostly fill-in-the-blank responses that include code snippets. You are given 4 minutes per question. If you don’t answer within the time limit, it goes to the next question. I completed the test in about 70 minutes, but I ran out of time on several questions, and was exhausted at the end. I’m not convinced that a timed test is the best way to measure subject mastery by a beginning programmer. But maybe that is just rationalization on my part.

Time: 15 hours for 7 modules

Score: I got all the exercises (ungraded) and labs right and missed two questions in the quizzes. I only got 74% on the final, for a combined score of 88%

DAT204x Score     DAT204x Certificate

DAT203.1x Data Science Essentials

The first three modules in this course covered statistics and was mostly a repeat of the material introduced in DAT222x. But the rest of the course provides an excellent introduction to machine learning. You learn how to create a MAML instance, import a SQL query, manipulate it using R or Python, create a model, score it, publish it as a web service, and use the web service to append predictions as a column in Excel. I really like MAML. I will post a review of my experience in a future blog post.

The course was a little too cookbook-like for my taste. It consisted mostly of following directions to drag-drop boxes onto the canvas UI and copy-paste code snippets into the panels. However, if you want a quick introduction to machine learning without having to dig into the details of SQL, R, or Python, this is a great course.

Time: 10 hours for 6 modules

Score: 100% on the 6 labs and the final

DAT203.1x Score     DAT203.1x Certificate

I have now completed six out of the ten courses required for a certificate. I expect to finish the remaining 4 needed for a certificate by the end of the year. I will also probably take some of the other elective courses simply to learn more about Microsoft’s other machine learning and cloud services.

For my results in the remaining classes, see Microsoft Data Science Certificate-Part 2

Update: Modified the description of the final exam for DAT204x.

by George Taniwaki

SEIU_775_purple FFlogo Wa2016Yes1501

I’m a libertarian by nature. (That’s libertarian with a small L, meaning I believe in government transparency and clarity. Please don’t confuse it with Libertarian with a capital L, which I associate with mindless anarchy.) Every two year, I dutifully check for my ballot and voter pamphlet (Washington has voter by mail). The number of items seems to be getting longer, especially voter initiatives.

Here is my method of deciding how to cast my ballot on voter initiatives. First, I start skeptically. Most voter initiatives are funded by political extremists who do not consider the consequences of adopting their pet idea. But I do my online research, checking analysis produced by hopefully reputable and unbiased sources. Ultimately though, I usually vote against them.

This year in Washington, there a really bizarre ballot issue. It is Initiative Measure No. 1501. “Increased Penalties for Crimes Against Vulnerable Individuals”

This measure would increase the penalties for criminal identity theft and civil consumer fraud targeted at seniors or vulnerable individuals; and exempt certain information of vulnerable individuals and in-home caregivers from public disclosure.

Should this measure be enacted into law? Yes [ ] No [ ]

How could anyone be against this? We want to help seniors, right? Well, it’s not that simple.

A convoluted story

There is a very complex story about this initiative. It involves a union, an antiunion think tank, and the U.S. Supreme Court. Initiative 1501 is sponsored by the Service Employees International Union (SEIU) that represents healthcare workers that work in nursing homes or provide in-home care. Washington, like most states, requires certain workers, such as nurses, to have a license in order to provide services to the public. About one-third of all service workers in the U.S. require licenses. In many cases, these workers are also unionized.

Enter the Freedom Foundation. This antiunion policy group is headquartered in Olympia, Washington. It was founded by Bob Williams, who was formerly with the American Legislative Exchange Council (ALEC). You may have heard of ALEC; it is a corporate funded lobbying group that writes model legislation (which obviously is designed to further the goals of its corporate clients) which it then provides to state legislators to review. The legislators can then submit the bills for approval into law. The Freedom Foundation provides very similar services.

In 2014, the U.S. Supreme Court ruled 5-4 in Harris v. Quinn that an Illinois state law that allowed the SEIU to collect a representation fee (union dues) from in-home healthcare workers wages was unconstitutional. The reasoning was that the fee violated the First Amendment rights of the workers to not provide financial support for collective bargaining.

After the ruling, the Freedom Foundation complained that the SEIU was not doing enough to inform its members that they did not have to pay the representation fee in order to belong to the union. Though a public records act, it sued the union and the state, won, and started to send communications to members encouraging them to stop paying the fee.

Since a Supreme Court ruling covers the entire U.S., not just Illinois, the SEIU realized that it was very vulnerable to attack by the Freedom Foundation or other antiunion organizations.

Now the initiative makes sense

In Washington, the SEIU proactively sponsored Initiative 1501 as a direct attack against Freedom Foundation. The SEIU wants to avoid having to release the names, addresses, and phone numbers of its members (or having the state reveal these either). Initiative 1501 does this by saying that in-home caregivers are a protected class, like seniors or vulnerable individuals, that the state and the union cannot release personal information about.

After all that research, the story starts to make sense. This is a battle between two parties that a libertarian like me dislikes. But more transparency is better than less. So I will vote no. Sorry seniors and vulnerable individuals, you will have to rely on existing statutes to protect you.

by George Taniwaki

Did you watch the debate on Monday night? I did. But I am also very interested in the post-debate media coverage and analysis. This morning, two articles that combine big data and the debate caught my eye. Both are novel and much more interesting than the tired stories that simply show changes in polls after a debate.

First, the New York Time reports that during the presidential debate (between 9:00 and 10:30 PM EDT) there is high correlation between the Betfair prediction market for who will win the presidential election and afterhours S&P 500 futures prices (see chart 1).


Chart 1. Betfair prediction market for Mrs. Clinton compared to S&P 500 futures. Courtesy of New York Times

Correlation between markets is not a new phenomena. For several decades financial analysts have measured the covariance between commodity prices, especially crude oil, and equity indices. But this is the first time I have seen an article illustrating the covariance between a “fun” market for guessing who will become president against a “real” market. Check out the two graphs above, the similarity in shape is striking, including the fact that both continue to rise for about an hour after the debate ended.

In real-time, while the debate was being broadcast, players on Betfair believed the chance Mrs. Clinton will win the election rose by 5 percent. Meanwhile, the price of S&P 500 futures rose by 0.6%, meaning investors (who may be the same speculators who play on Betfair) believed the stock market prices in November were likely to be higher than before the debates started. There was no other surprise economic news that evening, so the debate is the most likely explanation for the surge. Pretty cool.

If the two markets are perfectly correlated (they aren’t) and markets are perfectly efficient (they aren’t), then one can estimate the difference in equity futures market value between the two candidates. If a 5% decrease in likelihood of a Trump win translates to a 0.6% increase in equity futures values, then the difference between Mr. Trump or Mrs. Clinton being elected (a 100% change in probability) results in about a 12% or $1.2 trillion (the total market cap of the S&P 500 is about $10 trillion) change in market value. (Note that I assume perfect correlation between the S&P 500 futures market and the actual market for the stocks used to calculate the index.)

Further, nearly all capital assets (stocks, bonds, commodities, real estate) in the US are now highly correlated. So the total difference is about $24 trillion (assuming total assets in the US are $200 trillion). Ironically, this probably means Donald Trump would be financially better off if he were to lose the election.


The other article that caught my eye involves Google Trend data. According to the Washington Post, the phrase “registrarse para votar” was the third highest trending search term the day after the debate was broadcast. The number of searches is about four times higher than in the days prior to the debates (see chart 2). Notice the spike in searches matches a spike in Sep 2012 after the first Obama-Romney debate.

The article says that it is not clear if it was the debate itself that caused the increase or the fact that Google recently introduced Spanish-language voting guides to its automated Knowledge Box, which presumably led to more searches for “registrarse para votar”. (This is the problem with confounding events.)

After a bit of research, I discovered an even more interesting fact. The spike in searches did not stop on Sep 27. Today, on Sep 30, four days after the debates, the volume of searches is 10 times higher than on Sep 27, or a total of 40x higher than before the debate (see chart 3). The two charts are scaled to make the data comparable.


Chart 2. Searches for “registrarse para votar” past 5 years to Sep 27. Courtesy of Washington Post and Google Trends


Chart 3. Searches for “registrarse para votar” past 5 years to Sep 30. Courtesy of Google Trends

I wanted to see if the spike was due to the debate or due to the addition of Spanish voter information to the Knowledge Box. To do this, I compared “registrarse para votar” to “register to vote”. The red line in chart 4 shows Google Trend data for “register to vote” scaled so that the bump in Sept 2012 is the same height as in the charts above. I’d say the debate really had an unprecedented effect on interest in voting and the effect was probably bigger for Spanish speaking web users.


Chart 4. Searches for “register to vote” past 5 years to Sep 30. Courtesy of Google Trends

Finally, I wanted to see how the search requests were distributed geographically. The key here is that most Hispanic communities vote Democratic and many states with a large Hispanic population are already blue (such as California, Washington, New Mexico, New Jersey, and New York). The exception is Florida with a large population of Cuban immigrants who tend to vote Republican.


Chart 5. Searches for “registrarse para votar” past 5 years to Sep 30 by county. Courtesy of Google Trends

If you are a supporter of Democrats like Mrs. Clinton, the good news is that a large number of queries are coming from Arizona, and Texas, two states where changes in demographics are slowly turning voting preferences from red to blue.

In Florida, it is not clear which candidate gains from increased number of Spanish-speaking voters. However, since the increase is a result of the debate (during which it was revealed that Mr. Trump had insulted and berated a beauty pageant winner from Venezuela, calling her “miss housekeeping”), I will speculate many newly registered voters are going to be Clinton supporters.

If the Google search trend continues, it may be driven by new reports that Mr. Trump may have violated the US sanctions forbidding business transactions in Cuba. Cuban-Americans searching for information on voter registration after hearing this story are more likely to favor Mrs. Clinton.

by George Taniwaki


Moon pies for cheap. Photo by George Taniwaki

I love moon pies (apparently, I was a southerner in a past life). Surprisingly, they are big in South Korea too (who knew, for history see Wikipedia).

Incidentally, don’t confuse moon pies with moon cakes which are another Asian sweet (which I usually don’t like because of the salty egg flavor).

Anyway, today, I found a really cheap source of my favorite confection. Lotte brand is $3.50 for 335g or 29 cents a pie. Mysteriously, they are hidden next to weird spices in the international food aisle, not prominently displayed with the other cookies in the snack aisle. Perhaps it’s a form of American food protectionism by US cookie makers, Asian segregationist policy or redlining by the store, or the result of some other nativist conspiracy plot.

It’s crazy that a South Korean company can import all the ingredients, process them, ship them back to the U.S., and still be cheaper than US-made cookies. But I don’t care as long as I get my fix of graham cracker, marshmallow, and sugary goodness.

by George Taniwaki

I just returned from a short trip to New York. I have been to the city many times, but not recently. So I took time to go to places that are new since my last visit in 2009.

Cooper Hewitt Smithsonian Design Museum


Immersion room, courtesy Cooper Hewitt Smithsonian Design Museum

As a software program manager, the Cooper Hewitt is one of my favorite museums. It recently completed a major renovation (Press Release, Dec 2014). I was looking forward to seeing the redesigned design museum and was not disappointed.

Upon entering the museum, each visitor is given a stylus and a code number. The stylus is a bit bulky but is rugged. The pointed end can be used with large touchscreen monitors (probably Microsoft PixelSense devices since the newer Surface Hub wasn’t released until after the museum opened) scattered around some rooms. Visitors can select images, write text, and draw images on the touchscreens. Visitors can tap the other end of the stylus to the touchscreens to save their work. They can also tap on exhibit signs to save them and get more information for later.

On the second floor is a cubical Immersion Room that contains another large touchscreen monitor. On this one, visitors can select wallcovering patterns from the Cooper Hewitt collection or design their own using the pen. They can save their patterns and project them on the walls of the room. It is a very enjoyable experience to see your pattern fill the room (see photo above).

After your visit, you can go to the Cooper Hewitt website, create an account, enter your code, and review your visit and further explore exhibits that interested you. If you are a developer or tinkerer, check out the Toys section to use the API and to access anonymized visitor data.

Museum of Modern Art


Crossroads (promotional still) 1976, Courtesy Connor Family Trust

The Museum of Modern Art is not new yet. However, since my last visit, MoMA has announced a major expansion. An increase of 4,600 sq. m (50,000 sq. ft) will add about 17%  of new space the the already large museum. Construction has started, though it hasn’t caused any closure of the current space for now.

The addition is expected to be well integrated with the existing museum. Construction will take over four years to complete (Curbed New York, Jan 2016).

I saw a special exhibit on Bruce Conner (1933-2008) an avant garde painter, sculptor, photographer, and film maker (see photo). The show was organized by the San Francisco Museum of Modern Art. In an ironic twist, I was unable to visit the newly remodeled SFMoMA while I was in SF in April since it was still closed for renovation (see SF Gate, May 2016).

The expansion of MoMA required the demolition of the American Folk Art Museum, which was a lovely bronze-clad building next door to it. (I saw a wonderful special exhibit on quilts during my last visit to New York.) The building is already gone and is now just a hole in the ground. The museum has moved to Columbus Avenue between 65th and 66th Streets.  I didn’t have time to visit it.

9/11 Memorial & Museum


The north fountain with white rose. Photo by George Taniwaki

The National September 11 Memorial opened in 2014. It honors the victims killed in New York, Washington, DC, and Pennsylvania during of the awful attacks in September, 2001 as well as the people killed in the earlier attack on the World Trade Center in February, 1993.

The memorial consists of two square fountains, each encompassing the footprint of one of the towers. The fountains are surrounded by bronze panels with the names of each victim cut into them. A white rose is placed by each name on that person’s birthday (see photo). Water falls about 10 m (30 ft) into a reflecting pool. From there, it falls into a square hole so deep you cannot see the bottom. The sound of rushing water is emitted from the hole. The scale of the fountains is moving. Even on a busy summer weekend when thousands of tourists are viewing the memorial, there is plenty of space to stand and contemplate.


View from the balcony entering the museum. Photo by George Taniwaki


View of quote from stairs entering the museum. Photo by George Taniwaki

The 9/11 museum is also enormous and also within the footprint of the towers. The main floor is under the fountain about 18m (60ft) below ground. From the balcony you can see the slurry wall that holds back the Hudson River and a giant remnant of a column from the World Trade Center marked with spray paint (see photo).

An escalator takes you past a quote translated from Virgil’s Aeneid, “No day shall erase you from the memory of time” (see photo). The quote is surrounded by 2,983 watercolor paintings, one for each victim, by Spencer Finch recalling the shade of blue of the sky on the morning of 9/11.

Overall, the museum does a good job of explaining the events leading to the attack and the recovery effort afterwards. One can imagine the difficult task of presenting an evenhanded account in the face of enormous pressure from victim families, first responders, government agencies, donors, and politicians. Nearly every artifact and photo is heavily researched and annotated, which is somewhat chilling. One gets a sense of how invested the survivors are in preserving the memories of the loved ones lost in the attacks.

As a side note, when viewed in context, the use of the Virgil quote above is rather controversial. The “you” refers to the attackers, not the victims, giving it a very different meaning than what was intended (NY Times, Apr 2011). Yet the alternate interpretation is also true. Because of the horror they caused, we will not forget the attackers either.

The Cloisters


A garden in the Cloisters. Courtesy of Metropolitan Museum of Art


Panoramic view of the Hudson River and New Jersey. Photo by George Taniwaki

The Cloisters is part of the Metropolitan Museum of Art. It houses artwork and architectural fragments from twelfth to fifteenth century Europe. The building is shaped like a medieval cloister and is located at the top of a hill in Fort Tryon Park in northern Manhattan (see photos).

I’m not a big fan of art from this era, so have never bothered to go all the way up to the Cloisters. But after visiting Florence a few years ago I decided I should make the journey. It was well worth it. I took the subway and walked up the hill. The building is imposing.  The gardens are tranquil and beautiful. And seeing the historical transition in painting from flat to perspective is fascinating.

Dyckman Farmhouse Museum


Irises in bloom. Courtesy of Dyckman Farmhouse Museum

On my way to the Cloisters, I accidentally missed my stop. Rather than wait for a train the other direction, I decided to walk back. On a busy street filled with businesses I suddenly passed by a small garden and walked in. It turns out it was part of the Dyckman Farmhouse Museum. Opened in 1916, the museum is not very large, but is well maintained and reveals some of the history of Manhattan beginning with the Revolutionary War.

Final Notes

When visiting a city, I rarely buy City Pass tickets or their equivalents. The list of venues is fixed and limited. Instead, I just buy tickets in advance directly from each museum I visit. In fact, I just go to each museum first, checked out how long the line is, and if it is too long, then use my phone to buy tickets online. Museums with long lines and that lack online ticket sales don’t get my business.

To get around a strange town, I need more than a map. I need info on the best ways to get around by walking, biking, using public transit, or hailing Uber. Also, I want to compare estimated travel times and costs for each option. I have found two excellent apps to help. They are CityMapper and Transit, both available for iPhone and Android.