• Introducing Resonance Using computational thinking to teach mechanical vibrations

    Introduction to Mechanical Vibrations is a 30+ year old upper level elective in the mechanical engineering curriculum at the University of California, Davis. It is a classic mechanical engineering course that stems from the courses and books of Timoshenko and Den Hartog from the early 20th century. The course advances students' understanding of vibrating mechanical systems, that has a foundation is the theory of small periodic motions resulting from the mathematical analysis of linear differential equations derived from Newton's Second Law of Motion. These foundational concepts provide insight into the design of machines to both minimize undesired vibrations and exploit desired vibrations.


    Animation of a car vibration model created with resonance; an example of the type of systems students analyze and design in the course.

    Most mechanical vibration courses have been presented primarily from a theoretical perspective which was tied to the early analytic tools. There have also been some courses with accompanying laboratories to experiment with real vibrating systems, but those are fewer and far between. Also, since the late 80s, mechanical vibrations courses have often been enhanced with computational tools, such as Matlab, to solve problems that are difficult or unwieldy to solve by hand.

    These courses typically have the standard engineering course format, i.e. the professor lectures in class by deriving mathematical theory on the board and does example problems to accompany the theory, the students are assigned homework problems each week for practice at applying and understanding the theory, and exams are given that are similar to homework problems to assess student learning.

    This format has served the engineering profession well for a century or more, but there are a number of reasons to believe that this course could be changed to both improve learning and provide students with skills that are more relevant to their future work.

  • Teaching Modeling and Simulation with Python A SciPy 2017 Birds of a Feather

    Many instructors that teach modeling and simulation topics in a variety of domains are turning to computational thinking and active learning in their classrooms. In particular, the Jupyter Notebook platform is being rapidly adopted by instructors worldwide to deliver interactive instructional content to students. The Jupyter Notebook arose from the scientific python community and at this year's SciPy conference we lead a "Birds of Feather" session to connect instructors at the conference to discuss their successes and struggles using these new teaching strategies and tools. Below are the notes that were written by Kenneth Lyons and collaboratively edited by the session's attendees. We hope these will be helpful to the broader community.

  • In Defense of the NSF let the scientists be the judge

    In 2009, Mont Hubbard, Ronald A. Hess, Dale L. Peterson, and I were awarded $300K for a two year grant from the National Science Foundation (NSF) to study how people are able to balance on bicycles. We completed the work in September 2012 after an additional one year no-cost extension. This resulted in numerous research products that have been well cited since the completion of the work.

    In 2011, US Senator Tom Coburn (R-OK) released a report entitled "The National Science Foundation: Under the Microscope" with the intention to expose wasteful spending of US tax dollars by the NSF. The grant we were awarded was listed as one of the examples of "silly research". This received a fair amount of media attention and we were interviewed for a number of publications to comment on this report, e.g. in IEEE Spectrum.

  • Freeport Boulevard Road Diet not nearly as safe as it could be


    Photo from the Sacramento Bee article.

    The Sacramento Bee published an article today showing off the city's work in making Freeport Boulevard safer for pedestrians and bicyclists. This makeover for the road was spurred by a locally viral video created by a McClatchy high school student years ago showing how dangerous it was for her to get to school by bicycle. Unfortunately, the primary photo they used for the article shows a scenario that does not look that safe by most bicyclist and pedestrian standards.

  • NeverEnding Tandem Falkor flies again


    Falkor the Luck Dragon Tandem

    Yumi and I have two great friends, Aubrey and Kent, and they got hitched in mid May. Kent is a bike minister and when he saw the tandem I'd recently acquired he asked if Aubrey and he could ride it as part of their wedding. I was happy to oblige but I quickly realized that the tandem in its current state was not worthy of the wedding it would participate in. Yumi and I brainstormed turning it into a horse or unicorn but during our search for other bicycles that had been transformed into four legged creatures we came across an image of a Falkor-shaped bicycle. The image of Kent and Aubrey astride a Falkor tandem was too amazing to turn away so we started figuring out how to make the dream come true. This post details how we built Falkor over two days and some weekday evenings with the help of several friends: Johnny, Antonia, and Charlie.

  • Introducing the UCD MAE Solar Regatta Team sun-boating


    Two of our mechanical engineering students laying up the "poor man's fiberglass" on one of their catamaran hulls.

    A team of our mechanical engineering students are going to be racing their custom designed boat in the Northern California Solar Regatta on May 14th at the Rancho Seco Recreational Area. They will be racing against other universities and colleges from Northern California. This is the first year a team from the University of California, Davis will be competing. There will also be camping, fishing, hiking, swimming, and picnicking activities along with the competition and the location is just south of Sacramento making for a nice day trip. Come out and support them!

  • Teaching Git to 100 CS Undergrads or bad jokes in the etherpad

    Last week I taught an introduction to version control with Git to the UCD computer science capstone design course. There were about 100 students and I took them through the Software Carpentry Git lesson in just over 1.5 hours. From the feedback, I think it went really well. But there were some interesting tidbits that I learned teaching this to undergraduates instead of the typical group of graduate students.

  • Which topic should launch the UCD Hacker Within? scientific computing and data tech at UCD

    I've been yearning for some kind of scientific computing meetup group at UC Davis and the spent last quarter searching for some like minded folks that would like to help me organize such a group. It finally came together after meeting Richard Feltstykket, Genome Center Sys Admin and Physics Student, and connecting with Duncan Temple Lang, UCD Data Science Initiative Lead and Stats Professor. Katy Huff then quickly helped us by setting up the Hacker Within satellite group infrastructure:


    We are trying to come up with an attractive first tutorial topic. I really want the group to be programming language and tool agnostic so I'd like to keep the first topic neutral on that front, but I'd be willing to give that up for a super attractive first topic. What do you think would be the best topic to launch this with?

  • Doing Math with Python Review it's good!


    I had the pleasure of reviewing Amit Saha's book "Doing Math with Python" over the Christmas break and this post contains the email I sent to Amit.

  • Teaching Mechanical Design a first attempt

    My first quarter as a lecturer at UCD ended this past Friday with my final exam for my mechanical design course. I think the quarter went really well and that my students developed some solid design skills. Mike Hill, a veteran Prof. in our department, hit the nail on the head when he described the quarters as like being on a treadmill. It definitely felt like that, even though I was only teaching one new course. But I thrive in environments where others are expecting a lot from me and had a lot of fun developing and leading the course, among the other things that I've been working on. This post will cover the educational aspects of this course, what I tried, and what I learned.

  • Where to go in the Netherlands my tourist recommendations

    I lived in the Netherlands from August 2008 to August 2009 and many of my friends that have visited or moved there since then have asked for my recommendations on what to do and see. This post gives a rundown of what I thought was the most interesting things there. This is all circa 2008/9 so things may not exist anymore. I'll update this as I remember more.

  • Building energy efficiency journal club next quarter at UCD

    Jonathan Woolley and Vinad Narayanan are hosting a building energy efficieny journal club next quarter.

    Hi folks,

    Vinod Narayanan and I are hosting a small graduate level journal review course for Winter quarter - it should be an interesting forum for discussion on a range of current issues surrounding energy efficiency in buildings.

    Please share the attached syllabus as appropriate.

    Namasté, Jonathan

    Here is a flyer for the course.

  • Summary of FYEE 2015 my first education conference

    I recently attended the First-Year Engineering Education Conference in Roanoke, VA (FYEE). I decided to go so I could immerse myself in the engineering education community for both inspiration and preparation for my new lecturer position at UC Davis. The conference was also very close to my hometown so I got to visit my family for a few days too. I was worried that the conference may not be any good because I heard about it from a random email solicitation, but it ended up being worth the trip out. This post summarizes my notes on the conference.

  • My first data paper Is it worth it?

    I have been working on a gait control identification project since I started as a post doc at Cleveland State University in July 2013. Last night the first publication from this effort was published in PeerJ. The paper is unconventional in that it is solely about the data we collected and does not include any research findings concluded from the data. We published this data set for a number of reasons, many explained in the paper, but I'd like to share one reason that isn't in the paper.

  • Vectorized Matrix Evaluation using SymPy code generators

    I'm working on using direct collocation and nonlinear programming for system/parameter identification. This requires evaluating a vector of constraint equations and it's sparse Jacobian. When there are thousands of collocation nodes and a fair number of model states the equations need to be evaluated on the order of a million times at each optimization step. I've been generating the constraints equations and non-sparse Jacobian entries with SymPy and then generating code to evaluate the equations.

  • NCSRR Visiting Scholar Wrap Up or woodpecker in the window

    This is my last day here at Stanford's Neuromuscular Biomechanics Lab for the NCSRR visiting scholar program. This blog post summarizes what I've done while being here over the last five weeks.

  • PyCon 2014 Notes scribblings from Montreal

    PyCon 2014 in Montreal was a fabulous conference. I'm blown away by the Python community everytime I go to the various flavors of Python conferences. They are just plain fun. The talks are superb. I learns tons. The people are inspiring. I love the fact that the last half of the conference is dedicated to people working together on common projects. Never have I seen something like that at any academic conference. If only I can figure out how to bring that kind of community spirit to the academic world...

  • PyDy ODE Code Generation how fast can it get?

    I've been working on implementing a walking simulation model that is based on and compatible with a model developed by my PI, Ton van den Bogert, in http://dx.doi.org/10.1016/j.jbiomech.2009.12.012. Ton provided me with source code that that derives the equations of motion for the 2D walker, which I will be making publicly available soon. His tool chain is primarily based on closed proprietary software, i.e. Autolev and Matlab. I didn't have it in me to use those tools since we've spent so much time and effort developing a workflow for these kinds of problems with PyDy, so I did what any idealistic young scientist would do and rewrote Ton's model with an open source tool chain. In the process, I needed to improve the code generation capabilities we were relying on for the PyDy workflow and have a small step in improvements on that front.

  • Academic Job Search Session Notes intimidating

    I went to a well attended and well put together panel discussion at Case today entitled "Behind the Scenes with the Search Committee: The Academic Application Process". It was actually intimidating and made me realize that my game needs to be improved if I want to have a shot at a prof job at a decent university. It also made me wonder if I'm really still up for the game and if I made the best decision coming to CSU instead of going to a better school for my post doc. Coming here likely puts me at a disadvantage. But the one positive thing was that networking plays a strong role at getting you where you want to be, and I think I'm decent at that. So maybe I can keep hanging on. I've also been so caught up in the open science world that it was a small smack in the face to realize how much emphasis is still put on publication counts for these tenure track positions. They also put a ton of emphasis on being first author on a paper, even if it has a bunch of authors. There are so many problems with showing who contributed what in a body of work. All of this is really frustrating.

    Here are the notes from this first session:

  • PyCon 2014 Walking Proposal just a little too late

    I wrote up a last minute PyCon 2014 proposal last night at 11:30 and pressed save at 24:00...which was too late. Here are the details so I can save it for another time. I did manage to submit a tutorial on PyDy, but I think that has a much lower probability to be accepted.

  • Campus District Assessment How's the bicycling and walking?

    I participated in a Cleveland Campus District bicycle and pedestrian assessment last Tuesday. Here is a copy of the thoughts I sent to the organizing groups:

  • Copyright at Engineering Conferences why is it such a pain?

    Three of my papers got accepted to BMD 2013 (two oral presentations and one poster). I'm very elated about this as I only got a poster presentation at the first BMD conference in 2010 and I will finally get to talk about my dissertation work in front of my peers. My intention was to submit papers that are reflections/enhancements of work presented in my dissertation. The paper titles are:

  • Being New notes on starting up at CSU

    I started my new job as a Research Associate/Fellow at Cleveland State University Monday. I had to fill out some standard paperwork the first morning over in HR. Turns out Ohio state employees don't pay into Social Security because of the pension system in place, so I had to sign a paper forfeiting my social security payments. The other papers were tax forms, ethics and fraud reporting, Viking card (employee card), direct deposit for payroll, personal data, etc. This took less than an hour and the folks were nice.

  • What's your inertia? Body segment parameters with Python


    I recently attended SciPy 2013 where I gave a couple of talks. The second talk was our first public showing of Yeadon, our Python package which implements Fred Yeadon's popular method of estimating the body segment parameters (mass, center of mass, and inertia) of a human. Chris visited our lab as an intern in the summer of 2011 and spent part of his time writing this package which I then used to estimate the inertia of a bicycle rider in my dissertation work. Over the past couple of years we've worked on the software here and there and now have a really nice little package. We released the 1.0 version just in time for the conference.

    The video of the conference talk is below:

  • Fixin' photo timestamps don't forget the travel setting

    Yumi and I just got back from a month long bicycle tour of Japan. We took two cameras with us. My Panasonic Lumix stopped autofocusing the first day of the trip, so we used her Canon Powershot for all the photographing. We dropped the Canon twice on the trip and now it makes a nasty noise when opening and closing, but it at least still takes photos.

    We forgot to set the travel time on the camera so all 700+ of our photos had timestamps from Pacific Standard Time while under daylight saving time (Japan does not use DST). I wanted to correct the timestamps before uploading them to the web so I wrote a little Python script and used Yorba's Gexiv2 and the PyTZ package to sort things out.

  • Hindawi borderline scam journal

    I just received an email from Hindawi Publishers inviting me to submit an open access journal article for a topic I no nothing about. The email was from fluids@journals.hindawi.com. I've heard that Hindawi is legit but these kind of practices make them seem like scammers. Here is the email:

  • Ohio City Bicycle Co-op a visit to bicycle repair in the cold


    I was at a job interview in Cleveland this week for a professor position at Cleveland State University. The first thing Yumi and I did was to get a rental bicycle for her as I had my new folding bicycle with me. Cleveland has a 12 year old bicycle co-op and they rented bicycles. So that was definitely the place to go. Jim Sheehan responded to my email and said he'd have a rental bicycle ready for us. We walked a couple miles from the hotel to get down to the river bottom where their shop is. The shop was in an old manufacturing plant and was huge. Jim unfortunately didn't have much time to talk with me but here are a few things I picked up:

  • Dynamics with Python balancing the five link pendulum


    We've been working on a conference paper to demonstrate the ability to do multibody dynamics with Python. We've been calling this work flow PyDy, short for Python Dynamics. Several pieces of the puzzle have come together lately to really demonstrate the power of the scientific python software packages to handle complex dynamic and controls problems (i.e. IPython notebooks, matplotlib animations, python-control, and our software package mechanics which is a part of SymPy). After writing the draft of our paper, which uses a general n-link pendulum as it's main example, I came across this blog post by Wolfram demonstrating their ability to symbolically derive the equations of motion for the n-link pendulum and stabilize it with an LQR controller. It inspired me to replicate the example as I realized that it was relatively easy to do with all free and open source software!

  • Drive5 submision for Apps for Vehicles Challenge

    My good friend, Tai Stillwater, studied driver feedback for his PhD work and now as a post doc at the UCD Institute for Transportation Studies. He's got some good ideas and data to back up that people will change their energy use behavior in their vehicle if provided the right kind of feedback, even the most unlikely folks.

    He's roped me into helping him develop an app for the US Governments new Apps For Vehicles Challenge. We worked on the presentation this past weekend of a simple but potentially effective app that will help game-ify fuel economy and give the driver of any vehicle feedback that will help them improve their fuel economy. It has a simple visualization of the underlying data so that end-users find it fun and easy to use.

    Checkout the screencast below showing how the app will work.

  • PST2Gmail missin my old email

    I must have started my emailing career sometime in high school. I remember having the address jive@gamewood.net from our local internet provider around Danville, VA. I must have erased all of that email during one of the many Windows 95 reformats I did to clean out all the computer crustiness. But once I got to college in the Fall of 2000, I started curating all of my email from my university address jmoor024@odu.edu with Microsoft Outlook. I switched to Gmail in May of 2005 and backed up all of my previous email in Outlook to a .pst file on July 16, 2005. This file has been sitting on a backup CD since that day. I've occasionally wished I could search for emails from those years to dig up old contacts and such, but never did anything about it.

  • A new website is born and it's not crying

    I've been meaning to catch up on many long lost years of the developments in web technologies. This paired with the fact that I need a space to flush my digital life to was the impetus and my looming job search spurred me to make a new website. I finally have found some time to create a new personal website. My old one has served its purpose and is starting to get antiquated, especially since I never update it (it's not that fun to update mainly due it being built with a ten year old version of DreamWeaver).