Monday, December 29, 2014

Parenting Month 50: A-T-A yaaa! enrichment and assertiveness

Carnegie museum of natural history
We're reading instructions for mommy at the Carnegie Science Center.  This is the next step.

We have finally caved in to the suburban parenting pattern of enrichment classes.  In our case we focused on the one thing that we do not provide: lessons in assertiveness.  And the vehicle we chose was a local taekwondo studio that had started out around two years ago.  We are not particularly interested in mastery, although if T wants this to be his sport for his growing up years, we would not be particularly disappointed. But we want him to relate to other adults (or at least older people) who are authority figures and can give instruction for him to follow and command respect.

Actually, we are more interested in that he can build confidence in action outside the safe harbor that we provide when we teach him things.  When we first went, they were telling us about how martial arts classes in pre-schoolers helps in the case of pre-schoolers who need to burn off energy and bounce of the walls at home. As we have a child whose worst episodes of acting up are probably laughable to most parents of pre-schoolers, we replied that was not the problem. But what we are worried about is that he grow in confidence in action.

He is an introvert, and the son of two introverts, who are fully aware that much of the world is organized and evaluated with extroverts in mind.  And we see that in his daycare. He was part of a trio of introverted boys. They have separated on their fourth birthdays to another daycare, the pre-K at our daycare, and the second pre-K class. And the one in the other pre-K class is worried of him being lost in the shuffle (it is large, the size is at the room physical limit.  While on academic and artistic levels he is expressive (he is in a small class), when it comes to crowds (they merge in the afternoon) he still withdraws amidst the hurly burly of 20+ preschoolers running around.

The first sessions were what would be expected. As the class does their warmups, exercises, and yells, he withdraws.  But, in a credit for this school (and the fact that there are few beginners at any point in time) he got some personal assistance from the school owner.  So the first few session, he essentially had private classes, and now he takes his place with the rest of the (small) class.  Progress!, and kudos for the school!

In other areas, he is enjoying his small, pre-K class. There are only around 8 students, and reports are that he is active talker in the group activities; circle time, singing, etc.  Arts are slow, as he is very deliberate so projects take much longer than others, but he does them.  He reverts to form when the classes merge in the afternoon (the extra space for the second pre-K class has another purpose in the afternoon).

He is increasing his academic abilities.  With LEGO we went through the City Advent Calendar, which required that he take a small number of blocks and figure out how to make the object based on an iso-picture, as the month progressed, he was getting noticeably better at the spatial awareness, and doing the Christmas presents was much better at figuring out instructions by himself. He is also getting better at working with random pieces, as we build things and make up story lines to go with them.

He enjoys reading, especially as he is much more competent at phonics. He will pick out new books, and while he may ask us to read it, by 3-4 pages in he is doing most of the reading. We find it especially amusing when we he reads books to his little sister, because he does it using a teacher voice (as much as a four year old can imitate a teacher).

Lighttable at Carnegie museum of Natural History
Making patterns with shapes on a light table

A is becoming a sneaky little baby girl. She has started manipulative play, taking toys and waving them around. She can move things to her mouth, such as a toy, or more useful, her pacifier (funny event, sometimes when she wants to cry, she will use her hand to move the pacifier over so she can cry more effectively).  Our other big observation was that she is now mobile.  She can scoot. At the beginning of the month, we were not sure, because she does not move that fast.  But give her a few minutes, she will have noticeably scooted on the playmat towards a desired goal.  Our funny moment was when T was trying to play with A's toys (on the pretext of teaching A how to play with them), and she scooted over a couple feet and picked up one of his completed LEGO sets.  We see a lot of that in the future.

Friday, December 26, 2014

The Way Into Chaos by Harry Connolly: Book Review

The Way Into Chaos (The Great Way #1)The Way Into Chaos by Harry Connolly
My rating: 5 of 5 stars

Harry Connelly has made an incredible world. The Way into Chaos is named because it has its protagonists surviving in a world that has fallen from order into chaos. The heroes and other characters are complex, each with a range of motivations. There are those like one of the protagonists who think of things like honor, loyalty to the empire he has sworn an oath to, and devotion to a cause. Others may have had such thoughts, but have looked around them and believed that the empire that they were loyal to has fallen. Others were never loyal to the empire, and made choices on what they thought was best as order fell around them, and a new threat entered there land.

The diversity and depth of the characters is what draws you in. In the first chapter, you are introduced to many characters and their backgrounds, only to have most of them gone by the end of the second chapter. As the book goes on, there are several rounds of this, parties form around the protagonists on their missions, only to break up and go their separate ways in the course of events. These are not handpicked heroes chosen for a special mission. These are individuals who made there way out of disaster into a dangerous world, trying to make their way within their limits. And that keeps my attention as I went page after page. I'm looking forward to working through the rest of this trilogy.

View all my reviews

Thursday, December 18, 2014

Thinking with Data by Max Shron: Book Review

Thinking with DataThinking with Data by Max Shron
My rating: 4 of 5 stars

Thinking with data focuses, not on how to do data analysis, but on the questions that one should be asking. It does so in two ways, first through providing an overall framework to looking at situations, then working through a series of topics using examples to serve as plausible paths of decision making. In a fairly short book, it covers the framework, determining purpose, threats to validity, experimental design, and a few extended examples that illustrates both concepts and deviations. It is a useful quick big picture book that is useful for those whose focus has been on the methods of data analysis or for those who do not have a quantitative background but are faced with data questions and need to be able to work with data analysts.

The first part is probably the most rewarding. Max gives a framework of how to frame a data problem. Context (who is interested in the problem, what are their overall goals and why, what is the goal of the project), Need (the specific need that could be solved through the use of the data model), Vision (an understanding of what the results of data analysis would be like), and Outcome (an understanding of how the data analysis results would be used). The end of this framework would be a story that you can tell

Next is a discussion of how the details of the problem could be fleshed out. The content is probably familiar to anyone who has had to work with stakeholders. The valuable portion here are the vignettes of working through this process on projects. In particular the fact that the vignettes are not projects that necessarily go smoothly, so it does not have the idealized feel that many published vignettes do.

Next is a discussion of presenting the results. The focus here is that the results are not the output of the data analysis, but the use of the data analytics methods to construct and argument. And that argument is going to be presented to people who have backgrounds, prior beliefs, prejudices, and sometimes reasons to argue against your findings.

How to address these disputes is through conducting experiments and testing alternative hypothesis. So a section of the book is on defining causality and designing experiments (interventions) to handle different types of alternative hypotheses.

What makes this useful is the framework and the vignettes. It is good for a quick introduction to this area. As others have noted, it is not tightly organized, so after the first chapter with the framework, it is not useful as a reference, but it helps in focusing how to think.

I teach classes on working with data, and one area that is difficult to get across is the concept that there is a unified whole in the topic, not only a bunch of separated techniques. I plan on using much of what is in this book to help provide that unified whole my classes.

Disclaimer: I received a free electronic version of this book as part of the OReilly Bloggers program.

View all my reviews

Saturday, November 29, 2014

Parenting Month 49: An introvert in an extrovert's world

Earlier this month, one of T's teachers decided to give him his assessment a bit early, since he was going to a new class and new teacher soon (moving from the 3s room to Pre-K (everyone from 4 years until moving into kindergarden).  He pretty much maxed out the academics, meaning he covered everything that was expected from the 3s room and everything that the Pre-K had been doing (from the description, we figure she ran out of available assessment material, and probably was also beginning to reach the extent of T's patience). This is not the usual outcome of an assessment for T, the normal outcome is that he is quiet and does not give answers to things that we are all quite certain he knows so he assesses as generally age appropriate, maybe a bit ahead.  The difference is that it was done in the course of daily activity and the teacher was one he knows well as opposed to a new teacher (he takes 2-3 months to warm up to new staff).

The underlying issue is that he is an introvert, and pre-elementary assessments are designed based on an outgoing child who will actually present the knowledge he/she has to the assessor.  But, while the majority of preschoolers in any grouping (say, a daycare or preschool) are wild and rambunctious, T had always been the quiet one who stayed in one place.  As a 2 and 3 year old his play at day care or in group settings was marked by him staying in one place as the other kids would swarm from play area to play area around him. And the kids realized this too. His most common playmates were also the quiet ones who did not swarm as fast as the others (e.g. girlfriend from the 2year old room was also a shy one, and there are three boys that the staff have marked as hanging around together instead of participating in the usually rowdyness of preschool boys.)

The question is what do we do as someday he will be assessed, and there will be an outcome of the assessment. And that, especially in the pre-elementary and elementary stages, the assessment will be done in a way that greatly favors the extrovert (est 75% of the U.S. population).  Some things that we have been trying include playing piano (he plays happily at home, but in any other location, he maintains excitement until he gets close to the piano in question, then he freezes.), activities in busy areas (the regular museum visits offer many opportunities to interact, in fact it is hard to avoid the other kids, but he clams up as he gets close to interacting with anyone, even after watching us do so many times in many contexts.), play dates (we have not had that many, most of the neighborhood is older, there is one neighbor only 2 years older who really likes playing with T, but she is very much the extrovert and it does not help whne movin to a new setting.  There is one sense that it does not matter, that T will learn enough how to function in an extroverted world in time for it to matter, but another thought is that time may not be that far into the future.

In other developments, A has become quite the talker. In addition, she has developed a sense of will where there are times where she can decide to want something, and make deliberate and sustained efforts to get it.  And as part of that, the first stage of mobility, she can roll both clockwise and counterclockwise at will.

T's main development was moving up to Pre-K from the 3s room. This actually was an issue as the Pre-K in our daycare had maxed out the capacity of the room. We were part of a minor rebellion threatening to leave enmasse until they created a new class of Pre-K. There is an issue as the additional class starts out the day using a room that is also used by an afterschool program, so they need to move back into the regular Pre-K/3s room before the public school kids (kindergarden is halfday in W Pa.) return. So it is a lot of moving around, but at least T spends time with older kids again.

USS REQUIN at the Carnegie Science Center - Pittsburgh
Turning the wheel of the USS Requin (SS-481)

USS REQUIN at the Carnegie Science Center - Pittsburgh
These beds are small

Tuesday, November 25, 2014

Using blogs and news articles as class mini-cases - How discrete-event simulation can help project prison populations

How discrete-event simulation can help project prison populations (SAS Subconscious Musings)

My experiment this semester is more intensive use of news articles as subjects for in-class discussion of examples of applications of what we are learning.  While I have done this in the past, this semester I made it a deliberate plan to discuss one article a week in each class.  So far this semester in my simulation and decision models classes, I have covered reactions to the W. Africa Ebola outbreak, Game 7 of the 2014 World Series, Gamergate, flu vaccinations, commercial manned space transport, pulling a goalie in hockey, cargo shipping, business expansion, business divestiture, automation of manufacturing, health care system operations, among other things.

I identify articles through the use of RSS feed aggregators. My news feed includes a number of feeds from a range of business school professors focusing on supply chain and operations management issues.  I follow the CDC MMWR as well as the journal Health Affairs to get health care related articles.  And the New York Times front page and Google News are good for a lot of different stories.  The key is finding an article where the reporter was good enough to discuss the various options that were available and enough details that you can figure out the values of various actors involved.

The key a good class case article is that there are potentially reasonable alternatives to discuss.  In the decision models course, the discussion revolves around identifying the courses of action available, the sequence in which decisions need to be made and information becomes available, assessing the attributes (values) of the people involved, then assessing how they may assess probabilities of various events.

For the simulation course, the focus on case discussions is on understanding how a decision maker in the article may use the simulation, then we do a whiteboard exercise where we draw out an event graph diagram to model that system, focusing on what needs to be included (states, events) based on the decision maker needs. The goal is to discuss modeling in a specific context, so we can talk about what needs to be included, and what does NOT need to be included in the model to fit the particular purpose.  The contrast is to the textbook homework problems, which generally provide a very specific context and set of details which have be included in the model to answer the homework problems.  Textbook problems generally do not include thinking about modeling in such a way to determine what is the right question and how to simplify the model to address the question.

Last week we looked at the decisions made by the North Carolina Sentencing commission.  Unlike most cases, in this case we happen to know for a fact that a simulation was used in the decision making process.

Our discussion began with purpose: why would the North Carolina Sentencing Commission be interested in a simulation of prison population. We came up with the need to plan prison space, make arrangements with neighboring states to house NC prisoners, and to allocate resources to monitor parolees.

Next, a discussion of what would the simulation need to track to fulfill the purpose of the NCSC. This would include the number of prisoners and the number of parolees. And the time remaining for each prisoners sentences. Then, we have the state of the system being the prisoners and parolees, and the terms of sentencing. (we decided not to discuss the size of the prison, since that is something that was being determined).

The last part of the discussion was where the typical homework or exam problem started, diagramming the events tracked by the system, how each events changes the system state, and then how to generate delays in the simulation.

The purpose of the exercise was to discuss modeling. Not in terms of how you build a model from a system description, but to think through how to model and make modeling trade-offs given the decision that needs to be made about a specific system.  The cost of this discussion is time, doing this results in us not completing a semester syllabus of a class that is quite analytical. But, as textbooks usually begin modeling examples with a system description and a purpose, I think it adds to the course and I think the compromise is worth it.

Thanks to Natalia, Jeff, and Leo from SAS for our conversations about this particular SAS case at the INFORMS conference. It enriched the class discussion to know what was happening behind the scenes of the Subconscious musings blog article.

Sunday, November 16, 2014

Testing in pairs: The Global Day of Coderetreat

Global day of Coderetreat: a day to celebrate passion and software craftsmanship

A Coderetreat is like a master class for computer programmers. It is a chance to view programming as a craft that can be practiced and honed.  And like other crafts, the way you develop skill and creativity is to create limits, then use your creativity to accomplish the goal while working around the limits.

As an engineer, I am not primarily a programmer, although I have some level of skill, so this is not the typical view of programming, which is viewed more as a tool and a necessary evil. The effect is that improved competency is not valued, which leads to  inability to deal with dirty data, models that cannot be implemented, and results that cannot be reproduced.

Code retreat is build around the four principles of simple design, due to Kent Beck

  1. Runs all the tests
  2. Expresses every idea that we need to express
  3. Says everything once and only once
  4. Has no superfluous parts
The structure of the Coderetreat is six sessions where we work with Conway's Game of Life. For each session, we pair with a different partner. In addition, in each session we are to begin from scratch, and there is a twist to the rules.  The goal was never to actually implement the Game of Life (although in two cases we actually had all of the parts working and tested), but to spend time working with someone else on code.


1.  Pair programming.  This was my favorite aspect of the Coderetreat, pairing with six different people.  I figure there were two where I was generally more skilled, two where I was generally less skilled, and two where we were pretty much even. In every case our end solutions had very different designs as it was a combination of our different ways of looking at things and our experiences of having tried different designs in previous sessions, and the skill levels of the people involved.  When I worked with students, we would occasionally have a session where we worked together to solve a problem, and some of my students have commented that they found those sessions to be invaluable because they had a chance to watch how I worked and saw how I dealt with different types of problems.  But this time I did pair programming on people on a much more even footing and I get to experience it as well.  It showed in how we used different tools (although I was experimenting with a new IDE), how we solved problems in code and how we solved logic problems. 

2.  Test driven development (TDD). I've heard of the concept before, and I have even contributed to a unit test framework, but I've never really done it.  What TDD did was to encourage more modular code. It also forced us to put more thought into our design, as we had to consider what information was required an in what format to do what we needed.  In one session, one member of the pair would write tests and the other would write the code, and the two were not allowed to communicate. As the one writing the tests, since we could not otherwise communicate, I realized that in writing the tests I was forcing a set of data structures and a design in my tests.

3.  Throwing away dsigns.  We started each session with a clean code base. What it meant was that we did each session using the lessons from what went before.  The first two sessions we did not get much progress, but the third was the one where we made the most progress, as we basically learned from the combined mistakes made over the first two sessions and designed the tests with the past problems faced in mind, and the solution was fairly easy after that.  That was good because the next three sessions were the ones with the wierder twists.

4.  New languages.  Python is by far my strongest language, but I did one session in Clojure and one session with Java.  In both cases I learned a lot about how people set up their tools and the idioms they used, which were different than what you see in standard texts.

5.  Dealing with constraints. There were three weird twists. One was mute pairs, one was limitations on the size of methods, one was no use of conditional statements.  Mute pairs forced the design to be simple and clear (especially difficult because we did it in Clojure, which I barely can say I know without the aid of a book in front of me), the size of methods led us to generate very ugly method/class hierarchy to deal with the extreme restrictions, no conditionals lead to a range of creative hacks.  This has an effect similar to a lot of exercises done in the creative arts, adding constraints is one way of encouraging more creativity.

This was a valuable experience. Most of the people there had computer science backgrounds, and pairing with them taught me a lot.  And I was somewhat glad to know I could add to people's knowledge base as well.

Thanks to Code & Supply (@codeandsupply) and Think Through Math (@ThinkThroughMath) for making this event possible and for helping to keep it free, and to IBM for hosting.

Pittsburgh Code & Supply Logo

Think Through Math logo

Saturday, November 01, 2014

Parenting month 48: Now that we are four

Before T was born, we thought that the first few years did not really matter, that we would not really start trying to teach T anything before he was four. Because we did not think we had any strong opinions on what needed to be done before that.

(I'll pause and wait for everyone to stop laughing. But the real reason for this was that we promised not to stress over any differences in parenting style between us and both pairs of grandparents by deciding ahead of time that it really did not matter, and I think we did pull that off.)

And now, surprise, he is four. So time to take stock of where we are.

1.  Our engaged with parents but not with others has turned into a talker. He plays with many of the other kids now (and he does like being one of the older ones in his room). While he would not be considered an extrovert by preschooler standards, he is a long way from the one who took three months before he would get comfortable with daycare/preschool staff.

I am playing the drums
Drums at the Mattress Factory

2.  He likes being competent. Today's trick was building a LEGO set for his birthday reading the instructions himself (I only helped when the issue was finger strength). Granted, it was a set that was designed so young children could make it, (aimed at 4-7 years), but he was happy to say he did it. We've been consciously trying to get him to feel good about being competent and accomplishing things, whether it is building something, playing music, working with the garden, building things with tools, or anything else that preschoolers can do.
These are parsley roots from my garden
These are parsley roots from my garden

3.  He can read simple books. For a while we thought he was  just memorizing books, but we have caught him figuring out new words through phonics.

The American Academy of Pediatrics says you should read to newborns.
Reading for my little sister
4.  He has always had empathy in the sense of responding to our feelings, but now it expresses itself in a new way as he is the big brother who cares for his little sister.

But now that he is four, and we obviously did not let things ride for the first few years of life, what does it mean to be thinking deliberately about his growth?  We are watching the progression to kindergarden, as the cutoff point for school has been moving earlier over the years (parents have been holding their children back for fear that they were not developmentally ready), and now T is on the other side of it, so we are worried that based on the public school cutoff points, he will have to wait and double up a year in preschool at some point before he is eligible for kindergarden/first grade, and that will be boring.  So we are thinking of ways for him to get into the school system despite the cutoff date.

Some favorites from the year:

Song: Let it go from Frozen, like the majority of preschoolers around the world. And he gets it in both english and mandarin.

Books: The Scholastic, DK, and Random House Readers series.

Museum: Carnegie Museum of Natural History

Playground: The yellow and gold playground by the swimming pool in North Park

Toy:  LEGO  (actually, I think parents are the true favorite toy)

Movie:  The LEGO Movie

On the other end, A is a full on babbler. She can play with things put into her crib, and she likes putting things in her mouth (T always tested things before putting them in). Latest trick is turning over. She can kick and swing enough to go from back to front. Of course she does not know what to do after that so the sense of accomplishment quickly gets replaced by frustration.

Friday, October 10, 2014

Flask Web Development by Grinberg: Book Review

Flask Web Development: Developing Web Applications with PythonFlask Web Development: Developing Web Applications with Python by Miguel Grinberg
My rating: 4 of 5 stars

I'm not a web developer, but Flask has always had an appeal of potentially being a potential front end to a database based application. But I've never gotten very far as tutorials generally look at only the main application, and I'm pretty sure I need some extensions but I have not been able to assess the quality of the many plugins available. Flask Web Development is that tutorial that shows Flask and selects quality extensions to introduce.

Flask Web Development is written as a tutorial, not a reference. As such Grinberg can decide on what is important. It starts like many other Flask tutorials in looking at the basic application structure, templates and web forms. But then it looks at databases along with a set of extensions for database management built around SQLAlchemy: Flask-SQLAlchemy, Flask-migrate. (and email, which I don't do)

He brings it all together with walking you through a blogging application. What gives the tutorial an over-the-shoulder feel to it is an innovative use of the github repository that goes with the book. Instead of having source files in the repository, the repository uses tags to incrementally build source files, so it is really like working alongside someone who knows what they are doing as they build the application. One tag will have a basic working version of functionality, and checking out subsequent tags builds out more features.

Flask Web Development covers many aspects of web programming, well beyond what most Flask tutorials will cover. I appreciate the deep dives into database management with SQLAlchemy, and the sections on testing and profiling which have applications beyond web development.

Disclaimer: I received a free electronic copy of Flask Web Development as part of the Oreilly Blogger programming.

View all my reviews

Sunday, September 28, 2014

Parenting Month 47: What class should I take?

Over the past month, as we have been preparing for T's fourth birthday, we've been finding out that a number of his peers have started attending various enrichment classes. This being American upper-middle class suburbia, this includes various sports, dance, art, music, and other subjects.

Drawing on the chalkboard
Drawing on a chalkboard at the Carnegie Museum of Natural History
We are aware of some options. At various points over the past few years we have thought about things like swimming, kung fu, or ballet, but in the end we have not done anything about it.  Our tiger mom/dad credentials are in jeopardy! So we started to think about it.

Realistically, we are looking at the weekends, as noone is silly enough to try to do anything with pre-schoolers at night. So that means Saturday/Sunday morning/afternoon.

Next, look at what we do now. Saturday mornings Grandparents get A, S teaches, L takes T and does one of two schedules  (1) go to a museum followed by lunch (museum often includes running around a nearby park or the sports zone (if the science center) or (2) Home Depot/Lowes project plus park/playground/Barnes and Noble.  Saturday afternoon is a nap, then play in the afternoon (which often includes things like drawing or piano)  Sunday morning/afternoon has church then grandparents take T for nap and play. A is with us in the afternoon and goes with L when S teaches.

So we have really three time slots to use. Sat morning is when L currently takes T out. Sat afternoons are naptime and when S gets to play with T. Sun afternoon is a naptime.  

Now, someday, Sun afternoons will be taken by chinese school, but right now that is not going to work since T is too tired. Next question is what would the current schedule be replaced with.

There is a piano hanging in the sky. What a strange place to put it.
There is a piano hanging in the sky. I can't play it because there is no bench to sit at.
A class for a preschooler is generally 1/2 hour.  Figure 45 min~hour to get to whereever it is (including any packing/prep to go), and the same amount on the way back.  So a class occupies a 2+ hour time slot.  Currently a Sat morning museum trip is 45 min each way, 1 1/2 hours there, 1/2 hour for lunch.

Realistically, a class would be replacing the Sat morning trip, or Sat afternoon. (Sun afternoon is being reserved for a future chinese school, as all the chinese families in the Pittsburgh metro area have seemed to have decided to coordinate their schedules that way) i.e. it either replaces the core of daddy school or eats into mommy school. So what would that tradeoff look like?

Currently, daddy school bounces between the Natural History Museum, Art Museum, Science Center for science and culture, Home Depot and Lowes for hands on woodworking projects, and leavened with playground or walking in the woods time (with a bookstore being the backup). Mommy school currently consists of piano and working through a workbook.  Grandma/grandpa school focuses on drawing and going to the park/playground/swimming.

But while a class would focus on learning skills and doing things with others, we are probably getting more than just learning skills. We get a chance to learn and push T in the things we do with him. In museum trips we get to be a safe harbor for helping him interact with the museum staff and others. In the various stations we get to push him to do the things that are just a little harder than what he can do (and does at preschool), and we get to celebrate when he gets it done. At Home Depot and Lowes we can push him to do things harder, and he can see some of the other parents doing almost the entire project so he can tell that this is different. And we can link what he does without outside the house to inside the house, where he enjoys putting things together.

In the end though, we are going to do what we are doing for now, and the real reason is practicality, we think that signing up for a class and committing our schedules (we take advantage of the flexibility to change from week to week) is too much hassle over what we do now.  And we somewhat think that the time we spend with them is something we both enjoy, and we may actually know something about what we hope T is learning.

Look at all of the birds in the lights
Let's count how many birds are up in the lights.

In other news, the "I can't do it" period for T seems to be subsiding. We've been fighting the recent introduction of that phrase by encouraging and celebrating competency, in anything and everything. And he gets a kick out of doing things like playing piano (he has two songs down), drawing (every now and then it looks like something), LEGO (he is starting to be able to figure out the instructions himself), and tools (we (well I) have started letting him use a knife and scissors in the garden and to prepare food. And he is astonished at it, when he is done it is almost like he is thinking "did I just do that?!"

We are starting to think that T is actually reading. We have always figured that when he was reading, he actually just memorized the book in question or is making up a story to go with the pictures. But these past two months we have observed him figuring out words to books that were new to him, and at the museum reading out animal names that are compound and figuring them out (e.g. ground hog).  Also using phonics (i.e. sounding out the letters in a word, then realizing that this is close to a word he knows).

T has become a lot more talkative in the past month, both at home and at school. One reason is that he is now one of the older kids in his class, and he has been more comfortably talking around the younger kids (he likes to play teacher and explain things to them). Another is that he is just a lot more social, probably just a part of growing up. And there is a girl a few doors down that he plays with, and she has been a non-stop talker upon getting home since she has started kindergarden.

A is also a babbler. She likes to babble when she is happy, and she also has the big eyes that like to look around like T did when he was a baby. But we also see the benefit of not having colic. A got to the looking around at the world and babbling around earlier than T did. Generally, no colic leads to a very happy and easy to care for baby (grandpa is very happy, at this time, he was pretty sure T did not like him).  We also think A is being sneaky. She clearly is figuring out different people are better for different things. It is most obvious with grandma and grandpa.  Grandpa is better for carrying. Grandma is better for playing and sleeping.  And A is not shy about making preferences known.

Next stages.  Mommy and daddy school is starting to get more directed. Mommy has several workbooks and curricula.  Daddy is going to introduce drawing across all the museums that we go to.

Sunday, August 31, 2014

Parenting month 46: Pop culture, preschoolers, and competencies

There was a time we were thinking of keeping pop culture mostly out of our kids lives.  And since we are not real big TV or movie people, we thought it would not be too hard.  But then reality tended to get in the way.  The first thing was that children's clothes (especially bargains) tended to be branded.  My wife once came home with Star Wars Clone Trooper shoes for T without realizing the origin. Of course, T's pre-school classmates could recognize it for what it was. Ninjago also entered the household through bargain clothes. At daycare, it is completely evident who was the kid who introduced everyone to superheros. And it would seem that noone in the world who has regular contact with pre-school to pre-teen kids could avoid Dsiney's Frozen last year.  The various learn-to-read books are also saturated (as most vendors of such books have learned that tagging along on pop culture gets their books purchased and read).

LEGO Research Institute
LEGO Research Institute set
So the next question, what do we think about it? And what do we want our children to learn? Answer that, and we can think about what we let in.  First, the classic raising a child answer about allowing fantasy (which is what the problematic pop culture all represents) is that it allows conversations about right and wrong in a safe context (there is no standard correct answer the child has to try to remember and no danger from the point of the view of the child of getting blamed or punished for something when you are talking about people and situations clearly divorced from the real world which is usually the case when they get involved in those kinds of conversations)

Another goal is most strongly made from the superhero genre. Fantasy play provides those who usually have no power (children) an experience where they have agency, the ability for their choices and actions to have an impact on their world. And as there are clear boundaries that authority figures have put into the lives of pre-schoolers, being able to identify with an actor in a fantasy world allows them to think and play where their boundaries and capabilities are much greater than reality. (Disney's Frozen really is blatant about this in the song "Let it go")

So there are two things that I want when my son interacts with pop culture fantasy. First, that it is a vehicle for talking about what is right or wrong and promoting empathy, second that it teaches agency and competence.

For the first, we can follow the standard good guy-bad guy play of boys. And as he plays, we can interject with questions about why a character in his play did what they did. What is good and bad, nice and not-nice.  And we can steer his play through our questions.  So one day, when a bad LEGO character was part of the play and we thought about how everyone reacts, he had all of the good LEGO minifigs got together to push the bad guy away (he knows about super heroes, but I don't think he has gotten the idea that super heroes are anything special, so he needs to use numbers to be on the good guys side).  Playing with Star Wars space ships turned into them being fire-fighting space ships.

LEGO Star Wars Brickmaster Ice Speeder, assembled by T

For agency, there are two aspects. First, we encourage the characters in his play to do things. Firefighters fight fire. Medics get people who are injured, Doctors heal sick people. Police chase and catch crooks. People hike, cook, kayak, run, etc.  The second part of agency is that he has to create. At this time the major entries of pop culture in our house are as toys is in the form of LEGO and in woodworking projects from Home Depot and Lowe's, so he was part of making all of it, either through assembling or through use of hammer, nails, and glue. Right now, it is a big deal for him that we have a LEGO Star Wars vehicle where he is the one who made it by reading and following the instructions. Because it is the most complex thing he has made without any adult helping him. And we want him to be proud of being competent at things, whether it is making toys, or reading, playing music, helping around the house, or physical play.

Major development news for T.  He has started learning piano. So far, he is learning the standard Mary had a little lamb, but added to that is Old Macdonald had a farm.  There are a couple of other songs in the queue that all have the characteristic that they can be played on white keys without moving the fingers.  That means that playing the piano is reduced to hitting the right note and keeping time (which are conveniently whole increments) Which is within the realm of a pre-schooler.

Studying butterfly wings at the Carnegie Museum of Natural History, Pittsburgh.
Studying butterfly wings under a microscope a the Carnegie Museum

Mommy and daddy school is moving up another notch. We have started working through a Kumon workbook, and there is one that is supposed to done over the course of the year and comes complete with stars for completing lessons, and certificates for completing week-long sequences. The certificates are finding their way onto our walls as he progresses.

Socialization has improved greatly. He is now quite talkative at day care, chatting and playing with other kids. We have even observed him instigating play with other kids when we come in to pick him up in the afternoon. Maybe our socially withdrawn kid is breaking out into the world. Of course, this means the other kids have influence on him. So he is now starting to think about birthday parties, as in when does he have one.

At a slightly different point along the way, AY is a full on babbler. She is getting much practice making sounds, and even alternating with whoever is the current conversation partner. It is amusing as she is still expanding the range of sounds she can make. And she is very amused when a new sound comes out of her mouth (you also see her thinking "did I just do that?")  She is also a good smiler, both in terms of the big grin, and the fully body-shaking-smile that happy babies can do.  She is also learning to explore. She is in the beginning stages of being able to manipulate things with fingers, and we can see that, unlike T, she likes putting things in her mouth (T better keep track of the LEGO)
Mommy, someone behind you is taking a picture
Hi there!

Next, school has started for both parents. T is going to 5-day a week daycare while A stays with grandparents. This will be a challenge to T for further growth the socialization department.

Friday, August 29, 2014

Clojure for Machine Learning by Wali: Book review

Clojure for Machine LearningClojure for Machine Learning by Akhil Wali
My rating: 3 of 5 stars

For a book that is about [programming language] for [computational task], there are two approaches. One is to assume basic competence in the language and teach the task, the other is to assume that the reader has basic competence in the task and teach how to do it in a language. This book assumes knowledge of Clojure and tries to teach machine learning. But I find that it does just enough to be dangerous. It has a series of methods but does not provide discussion on why you would choose once class of method over another, and it completely skips model evaluation. What this creates is someone who has a good idea of the mathematics and implementation of methods, but not when to use it or if it actually did what was intended.

This makes me slightly different than the ideal audience of this book. I am learning Clojure and have only started using it for data analysis in real life. However, I have used Python and R for data analysis for several years now, and I have use both of them (and trained students to help me using both) for different machine learning projects (and I use R for teaching a course in data science).

Each chapter in Clojure for Machine Learning takes a look of a class of machine learning algorithms and takes several looks at it. Generally, Wali looks at the mathematics and theory of the algorithm, then a simple implementation in Clojure, then some examples of using existing library implementations on a problem. The mathematical treatment seems nice, but it would not compare to an actual text on machine learning/data mining. And while seeing an implementation in Clojure has some value, I would have liked to have seen more humility in doing so (i.e. some recognition that there are limitations of an implementation that can actually fit into a book of this size with everything else that needs to be done).

Two things that bother me about this after I finished was realizing that for each class of algorithms, the book only covers one or two methods. Which is fine, but it does not even acknowledge that there is a greater world. And as there is no discussion on how to perform model evaluation, an enthusiastic reader may reach the conclusion that they know what they are doing when implementing them against a data set and problem. Essentially, the enthusiastic reader knows enough to be dangerous and does not know what he does not know. If I were to suggest this book to someone, it would have to go with a severe caveat that what you know after this is how to set up a machine learning problem. More research has to be done to determine what actually needs to be done (the libraries used are much broader than what is covered) and then, learn from somewhere else how to evaluate or tune the methods used.

In the end, I would treat this as a book of examples or cases of Clojure being used in machine learning. There is room in the world for a book on Clojure for machine learning, but this is not it.

View all my reviews

Tuesday, August 19, 2014

Clojure Data Analysis Cookbook by Eric Rochester

Clojure Data Analysis CookbookClojure Data Analysis Cookbook by Eric Rochester
My rating: 5 of 5 stars

This book is a good tutorial on data science using Clojure. It starts with working with data (access and cleaning up), then the various chapters cover a range of tasks from focusing on numeric computing (performance, parallel processing), statistics (Incanter and other numerical libraries), working with other numerical software (Mathematica and R), graphics, and the web. The topics are actually a fairly complete look at data science, so it feels more like a tutorial than a cookbook.

I found this to be a great text on working with data in Clojure. My background is in technical computing, mostly R and Python although I also use C, Java, and Fortran as needed. I've been dabbling in Clojure, but I had not made the jump from doing tutorials and exercises in Clojure to doing something for real. Working through this book has improved my skills in setting Clojure up and using it for real tasks. The book code also provides a nice example of good programming style (I think) that I can see myself trying to emulate.

A book on data science is necessarily about the practical details of implementation, not about mathematical and statistical methods. Presumably, the reader has another source about the details of various statistical and machine learning methods that they can use to figure out what to do, then the Clojure and Incanter API documents tell you how to do it, and this book is about how to do the 80% of data science that is not about implementing the algorithm, but about how to manage the data, then work to communicate the results of the algorithm in understandable ways. This book is probably what brings me from dabbling in Clojure to being able to use Clojure for real tasks. Well done.

View all my reviews

Saturday, August 09, 2014

Functional Thinking by Neal Ford: Book review

Functional ThinkingFunctional Thinking by Neal Ford
My rating: 4 of 5 stars

Functional programming can often sound like magic, in its promises of greatly improved productivity and near guarantees of accuracy and expressiveness. But one problem is that the examples usually given are those in an unfamiliar form, using languages very different than the procedural and object oriented languages most of us are used to. And the advantages are not apparent when presented. What Ford does in Functional thinking is to present the advantages of functional programming within the context of an object oriented language that can support this, then move to more appropriate languages to show how the advantages can be more clear when the language supports it more directly. It does not stand alone, you will not learn functional programming from this book, but it does offer a more clear argument for why functional programming can useful and better in some circumstances.

The setting that I have seen functional programming explained and taught has always been in the context of demonstrating a functional programming language, such as a Lisp (Lisp, Scheme, Clojure). Or sometimes, a language that has some functional features (R, Python). But I always had to take the commentators word at why this was good. Ford using Java 8 (as it adds some functional features), Groovy, Scala, and Clojure provides a progression from functional features in an object-oriented language (Java), to functional features in multi-paradigm language (Groovy and Scala), to it look in a language that is clearly functional (Clojure). This provides a good look at its qualities by showing how these features improves upon an object-oriented solution, then how it is more expressive and closer to the problem when presented in the cleaner form (i.e. in Groovy, then Clojure). I probably would not have caught the lessons of this if this was my first exposure, and I stopped after the first chapter to watch one of Ford's talks on YouTube so I could get an overview of the book before I finished. But the reward is that it gives context for my learning of Clojure (and functional programming in general).

Not for learning a programming language, but for learning how to think about problems in new ways, enabled by functional programming.

Note: I received a free electronic copy of this for review as part of the O'Reilly Press Blogger program.

View all my reviews I review for the O'Reilly Reader Review Program

Sunday, July 27, 2014

Parenting Month 45: Visitors and limits

Cousins working together on a Blue construct
Cousins playing at the Carnegie Science Center Blue exhibit

This month was marked by my family visiting.  My parents came for a month, and my sisters and nephew came for a week.

The highlight, of course, was grandparents spending time with a new grandchild.  The other highlight was the cousins recurring time with each other. As T and J get older, their interaction becomes richer as both grow in their abilities to deal with other people.

Grandma and grandson at the Carnegie Museum of Natural History

AY has been notable in her responsiveness. As she is the second, we cannot help making comparisons to the only baseline we know. At this time, T was in the midst of colic. In comparison, AY is very responsive, trying out a range of facial expressions when we are talking to her, and vocalizing in call and response fashion. We are also entertained by her kicking and reaching out to things.

Baby looking out from lamb blanket
T is still the very good big brother. He likes to tell everyone that AY talks, sleeps, poops, and cries. He also still read and talk to his little sister, and helps with bath and diaper changing time.  However, the novelty is wearing off, and he is not always as excited to help out as he was.

We have noticed that while T is more outgoing and social (talks and plays at pre-school, tells short stories at home), he is regressing in other areas. We have noted that he used to have a relatively long attention span, focusing on one activity longer than others his age before switching. But it has gotten shorter. This is observable when reading books or when making things (Lego or woodworking).  Another not so good trend is that he is becoming more self-conscious of his limitations. Things that he used to try (and do fairly well) are now approached with a statement of "I can't do it".  While he is still a very well behaved and happy child, we do see some of the not so welcome traits that are probably quite prevalent in preschoolers, some that we are hoping that he skips the worst of. Part of this may come with paying attention more to others his age, and taking on their habits, playing, and capabilities. Some of these are fairly innocuous, like growing a liking for superheroes (and yes, there is one kid in his class that bears most of the responsibility for teaching everyone about superheroes) and the fact that he picks up pop culture (everyone knows Frozen, but Star Wars, TMNT, and others are common. I consider it part of my duty to try to get a step ahead of what he learns from his classmates :-) )  But he has also picked up increased instances of the use of the word 'no' and occasionally trying out tantrums to try to get his way. At this point, we are still pretty successful at working our way around 'no' through humor, and we're trying to teach him that tantrums don't work nearly as well as other things (like reminding him of some of the things we can do with him because we are not worried about tantrums at all)

Hi, I love mei-mei

One more month of summer, then both academic parents go back into a full work schedule, but for now, we are thankful that a relatively relaxed summer lets us have this level of interaction with our kids.

Monday, July 21, 2014

Java Cookbook by Ian Darwin: Book review

Java CookbookJava Cookbook by Ian F. Darwin
My rating: 4 of 5 stars

What you want from a programming language cookbook is instruction on the basic tasks that are needed to form the scaffolding that you build around your application. Language teaching and references can teach you syntax and good practices. Topical books can demonstrate how to tasks in the large. But the cookbook is for the small but necessary tasks. And for me, who does not spend much time in the JavaVM ecosystem, the Java Cookbook is a very welcome addition to my bookshelf.

I spend most of my time doing scientific programming in Python and R, but I am starting to return to the JVM because of the need to deploy what I develop. But while other languages like Jython, Groovy, Scala, and Clojure exist on the JVM, to use them well means you need grounding in Java, certainly most of the instructional material assumes more than passing understanding of the JVM and the Java standard library.

I've been building a prototype application using Java as my means of re-learning Java. Where this cookbook has helped me already is in understanding better how to configure projects, more effective use of the Java data structures and I/O, and some utilities. While I know what I need to do through my experiences in other languages, and Java tutorials and references can identify the libraries and functions that I need, the Java Cookbook provides well written examples that I can use to guide me through the JVM.

There are some warts. This book (like most JVM books) seems to be written with the understanding that the readers are web programmers and I think that the discussion of the options available are filtered with that in mind. But this is a very good reference for those times when you know what you need to do, and it is not the type of thing that gets put into a tutorial.

Disclaimer: I received a free electronic copy of this book through the OReilly Blogger program

View all my Goodreads reviews

I review for the O'Reilly Reader Review Program

Thursday, July 10, 2014

Me and My Big Mouse by Ethan Long: Book Review

Me and My Big MouseMe and My Big Mouse by Ethan Long
My rating: 3 of 5 stars

This is a fun book about a boy who has a pet mouse who he has to take everywhere, but the pet mouse is often very annoying. It is notable in that it has a message, that even something we find endearing can be very annoying. My three-year old son has caught onto the idea that something you like can also do something bad (make messes, break things) and be annoying. He does not quite catch on to the idea that this can be an analogy to a younger sibling (has a newborn sister), so he may be a bit young for this.

The discrepancy between word and picture may be hard to understand at this point, as irony is not yet part of his mental makeup. The pictures are cute, and get the point across of so this book is one that he occasionally asks for. And maybe as he gets older, we can reference it when he does reach the point he regards his little sister as annoying. :-)

View all my reviews

High Performance Python By Micha Gorelick, Ian Ozsvald: Book review

For someone like me who is a technical programmer but did not study CS, I've seen hints on how to speed up Python numerical code, but I only had a vague understanding of the principles and application.  This Early Release version of High Performance Python has examples that demonstrate why certain data structures are faster than others in particular situations, and how to use the various data structures provided.

But what may be unique is the chapter on the ways of speeding up Python through compiled code. There are many ways of using compiled code through Python, C and FORTRAN extensions, Cython and PyPy, and more recently Numba. But this book explains the strengths and limitations for each, along with a number of other ways of using compiled code along with Python that I had not heard of before. There are many references for each of these, but no general overview of this group of resources.

This is still an Early Release stage, so there are some warts. Many of the code examples are raw, and you have to know what you are doing to fill them in and get them to work. A website or Git repository with the source code examples would be very helpful.

Disclaimer: I received a free electronic copy of the Early Release edition of this book as part of the O'Reilly Press Blogger Program.

I review for the O'Reilly Reader Review Program

Sunday, June 29, 2014

Parenting month 44: 2 adults and 2 kids

Two parents and two carriers
There are four of us

This month was notable for a slightly uncoordinated grandparent shift change, so there was a two week period where no grandparents were around, and we became the classic two parents, two kids nuclear family.  And we were in the midst of a traditional one-month confinement, so we had to figure out how to do things and keep the three year old from tearing up the house (as active three year olds who stay indoors will do naturally).  One week of full time day care helped, and T joined daddy on a few father-son outings.  One of those outings was participating in a Red Cross shelter operations training exercise, where he got lots of praise for being a very well behaved three year old; including following daddy from station to station, listening to instructions, role playing a three year old shelter resident, generally entertaining himself during most of the practicums, and taking an active role in the shelter setup station.

T is generally a well behaved three year old. Preschool reports he follows instructions, and now he plays and talks with the other kids and the staff.  His name also is showing up as part of the estimation game (the teachers show the kids in the jar, and some of the kids call out their guesses as to how many things there are which the teachers record, I think between 1/3~1/2 of the kids make guesses).  And of course, he likes going on outings with parents, but he tends to freeze when interacting with others in public. We think that it is a feeling of security issue, if he is secure with us, he will interact, but in different or more exposed environments he gets scared and closes up/freezes.

AY is in her second month. Given that we only have one other child to compare her to, we think that she is quite active.  Her eyes seem to track, arms and legs are being experimented with, and arms seem to go in the same general direction as the eyes. And she has a range of facial expressions. T likes to announce when AY smiles at him.  She has also figured out that when she is in a rocker/bounce seat, kicking makes the whole thing rock. She has the same expression on her face when taking a bath, if she kicks hard enough, the water splashes out of the tub (and usually onto whoever is giving her the bath). Her first experiences of being able to manipulate her environment :-)

Recent research says you should read to newborns.
Recently published research says we should read to newborns.
The other thing with reaching a second month is that there is now a difference between the normal discomfort of being out in the world and specific discomfort.  So AY now has a proper infant cry when she is hungry (which is different than a dirty diaper or sleepy), and she has a very good pair of lungs, just like her brother (proper as a progeny of parents who have run marathons).  And like her older brother, we have noticed the coming of rashes. But this time we know it is diet so the next phase is to see if we can do better than the first one in limiting the suffering (all around).

Next months big thing, the whole family is here!

Saturday, June 21, 2014

First try at gardening: seedlings

Planting parsley and oregano
Adding soil for seeds

This was my first time trying to garden.  The real motivation for doing this was to give my son something to watch grow over the summer. Which means we start in winter/spring. Since I did not care too much about how successful this was, we started from seeds.

First sprout of a marigold
First seedlings
Lesson 1: Using egg shells really does not gives seeds much room to start.

I started seeds in egg shells.  First mistake was not filling them to the top with soil.  In hindsight, the soil in the egg shells gives the seeds room for roots and also protects the seeds from shock.  About 2-3 weeks into it, just as the first seeds started germinating, they got moved outside to be shocked in preparation for transplant, which pretty much killed my entire first batch of seeds :-(

When I finally got some ready for transplant, the problem was that the roots did not have much room to grow in the shell, so I was essentially transplanting a bare plant and roots.  So I probably lost a pretty large portion of these.  One thing that worked better was transplant into a small container that had a few inches of depth, then plant them.  One other thing I would do next time is to put 2-3 seeds per shell, under the understanding that 1 will survive the transplant process.  More than that gets crowded.

Lesson 2: if using egg cartons (or anything else that gets transplanted into the new container, punch holes in the bottom and sides to give water and roots room to a way to get out of the container.

When things got transplanted to small containers (mason jars or something else) they started to grow fast. In particular, the mason jars that I transplanted into (usually 3 egg shells each) quickly got overcrowded, and I ended up pulling out about half of them to transplant outside.

The main destination for these various herbs (basil, parsley, oregano, rosemary and marigolds for variety) was to go in a container garden in the backyard. My containers were built around a tomato, some pepper, and a strawberry plant. Each got an assortment of seedlings that were grown from eggshells.  So at this point, they are all established.  The ones with the tomato are suffering because the tomato is growing very well (and sucking up water and light).  I probably have the pepper container a little crowded (I've been pulling oregano out to make more room.)  And there are a few things that I've been planting in our unused front, just to see how they survive.  And there are a few herbs that we are growing inside, just so they are easier to look at (and we are starting to harvest from these)

Tomato and peppers in containers.  Peppers are newly staked using bamboo.
Tomato and pepper containers

Tuesday, June 03, 2014

Parenting month 43: And now there are two

Are you my brother?
Are you my brother? Are you my sister?
The big new development of the month was the arrival of a sibling. As the ge-ge (big brother), T has been a very good helper. Enthusiastically getting diaper and breastfeeding supplies and disposing of the results as needed. Reading books to mei-mei (little sister), taking pictures, even playing the violin.

Of course there are other developments over the past month. T has gotten much more verbal and social at pre-school and at home. Part of this is normal development (it was going to happen eventually as he got more comfortable), and part of this is having to compete for attention at home. You can hear and feel it when T is in the house. Being more verbal has lead to a marked improvement in his assessment at preschool. It may not be as much as he is more capable (well, he is somewhat), but he know can let the staff know that he knows things like his numbers, letters, and can express them. In addition, he interacts more with the other preschoolers. When I go pick him up he is playing dolls or dress up or building things with the others. And, of course, there are still things to build and measure around the house.

Measuring the finished folding workbench
Measuring the work table

AY is settling into her new home.  She is doing the traditional newborn responsibilities of eat, poop, sleep, and cry ably.  She also has her time of quiet wakefulness, noted by continuous motion of arms and legs when she is awake and content.  Other than the standard newborn issues of thrush and reflux, all is well.

Grandma meets granddaughter
Grandma meets granddaughter

Next thing up is a grandparent shift change.  Mom is taking the traditional one month of confinement, but lau-lau and yeh-yeh have returned to China for a brief period.  Khun Bu and Khun Yaa are on their way, but it will be a couple of weeks without them, so we will be the two parent - two child household for a while.  Good thing that both academics are on a lighter schedule for the summer.

Monday, May 26, 2014

Kids Are Icebound by ‘Frozen’ Fervor - New York Times

Kids Are Icebound by ‘Frozen’ Fervor Disney’s Animated Film ‘Frozen’ Has Some Children Obsessed By JOANNA COHENMAY 16, 2014

Like a very large portion of the population with children of preschool age, we were caught up in the Frozen craze.  The movie came and went without much notice, but by the time that the singalong version came out in the theater, T's entire daycare was singing it.  He had even started to learn the words to 'Let it Go', and we felt compelled to find the video so he could at least learn it properly. We saw multiple videos of it, T somehow finds everything about Frozen, even a video series of styling hair according to  the main characters.  And we put it in our Netflix queue so that when it came out we got it and watched it a few times.  But with all that saturation, I still think it is a very good movie.

1.  The Let It Go video is a great level up sequence. In addition to the song being an anthem to independence, the music video is a great sequence of a character growing in capability. The character of Elsa is shown creating ice and snow figures in increasing complexity as the song progresses, which is how people learn skills in real life.

2.  The characterization is meant for good role playing. I found myself thinking of the characters as Fate core, Fate Acceleated, or Risus characters, with strengths, weaknesses, troubles, character traits that get compelled and applied in many ways.  And the way the characters act is basically a superhero team-up story line, with the main characters learning how to work together as they go.

3. The characters have strengths, weaknesses, and character traits that help and hinder them (a plainer way of stating 2).  The things that makes each character strong and compelling are also the things that gets them into trouble. No Mary Sue or damsel in distress characters. Even the bad guys have strong characterizations (which is why it is hard to recognize the bad guy)

4. Even the ditzy one has strength of character, to include strength in the physical world, not just amorphous inner strength.

5. A female lead has as part of her characterization "likes math" (specifically geometry).  Math, physics and chemistry matter in this world.

6.  Relationships are not just about romance. The tendency of people to think that relationships are only about romanced is addressed by the problems it causes and the fact that the key plot point is that the characters make this assumption and forget that the prophecy could be referring to other types of love.

Now, we still think that other sources of songs such as Sound of Music and Les Misarables are more welcome than Frozen, but for a film that is a source of influence, Frozen is not all that bad.  And, to answer the question in The Motherlode (NYTimes) article on the subject (Parents respond to the 'Frozen' frenzy), we are of the opinion that the Idina Menzel version of 'Let It Go' over the Demi Lovato version.