Leap Motion Controller + Liquid Galaxy
We’re constantly trying out new things with our Liquid Galaxy at End Point: new content types, new remote management scripts, new hardware. The good people at Leap Motion sent over one of their hand motion controllers and we couldn’t wait to get it unpacked and driving the Liquid Galaxy that sits in our office.
With access to developer tools, we were able to configure the Leap Motion and update the device firmware. Then, after a quick installation of the latest Google Earth build v 7.1.1.1550 that includes Leap Motion controller support, we were ready to test out the new device on our 7-screen Liquid Galaxy.
Watch the video and see for yourself—we think the combination is fantastic! That superhero feeling of flying around the world with a Liquid Galaxy is only enhanced that much more by now commanding the movement of the planet with subtle flexing of your fingers. (That’s Kiel in the video—personally, I think he looks like Magneto without the helmet.)
End Point continues to push the boundaries on what the Liquid Galaxy can do. We want to experiment some more and see what else might be possible with the Leap Motion controller for Google Street View, panoramic photos, videos, and …
google-earth visionport hardware
Creating Smooth Flight Paths in Google Earth with Kamelopard and Math
The major motivation for writing Kamelopard was that writing XML by hand is a pain in the neck. But there were other motivations as well. In particular we found some limitations of Google Earth’s default FlyTo behavior, and wanted to be able to address them flexibly. Version 0.0.11, just released, does exactly that.
Bezier curve, similar to a cspline
Our clients often want Google Earth’s camera to fly smoothly from one place to another, through a precisely defined set of waypoints. Earth does this with a FlyTo, one of Google’s extensions to KML. It tells Earth to move from its current camera position to a new one, following a nice path Google Earth calculates automatically. Most of the time this works just fine, but on occasion, Earth’s automatic path will run into buildings or mountains, or do other unexpected and strange things. There are a few KML tricks we’ve learned to handle those cases, but it would often be nice to have tighter control. Unfortunately getting that level of control means calculating the flight path ourselves. We’ve developed the smarts to do that, a little bit at a time.
The first version involved Catmull-Rom splines, a variant of a cubic spline (or …
google-earth kamelopard visionport open-source ruby kml
Liquid Galaxy in GSoC 2013!

Once again The Liquid Galaxy Project has been accepted as a mentoring organization for the Google Summer of Code program! The Google Summer of Code program (AKA GSoC) provides a tremendous opportunity for talented undergraduate and graduate students to work developing Open Source software guided by a mentor. Students receive $5000 stipends for successfully completing their summer projects. The past two years The Liquid Galaxy Project has had three GSoC students successfully complete their projects each year. This year we are hoping to increase this number.
Right now we are in the “would-be student participants discuss application ideas with mentoring organizations” phase of the program. Interested students should contact the project’s mentors and admins (which includes a goodly number of End Pointers) by emailing lg-gsoc@endpoint.com or by jumping into the #liquid-galaxy Freenode IRC channel. Applicants are well advised to take advantage of the opportunity to consult with project mentors in developing their applications. Student applications are being accepted starting April 22 and must be submitted by May 3. The definitive timeline for the Google Summer of Code program with the …
community visionport
Making SSL Work with Django Behind an Apache Reverse Proxy
Bouncing Admin Logins
We have a Django application that runs on Gunicorn behind an Apache reverse proxy server. I was asked to look into a strange issue with it: After a successful login to the admin interface, the browser was re-directed to the http (non-SSL) version of the interface.
After some googling and investigation I determined the issue was likely due to our specific server arrangement. Although the login requests were made over https, the requests proxied by Apache to Gunicorn used http (securely on the same host). Checking the Apache SSL error logs quickly affirmed this suspicion. I described the issue in the #django channel on freenode IRC and received some assistance from Django core developer Carl Meyer. As of Django 1.4 there was a new setting Carl had developed to handle this particular scenario.
Enter SECURE_PROXY_SSL_HEADER
The documentation for the SECURE_PROXY_SSL_HEADER variable describes how to configure it for your project. I added the following to the settings.py config file:
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
Because this setting tells Django to trust the X-Forwarded-Proto header coming from the proxy (Apache) …
sysadmin django python tls
Avoid 2:00 and 3:00 am cron jobs!
A word to the wise: Do not set any cron jobs for 2:00 am or 3:00 am on Sunday morning! Or to be safe, on other mornings besides Sunday as well, since jobs originally set to run on some particular day may eventually be changed to run on another day, or every day.
Most of the time such cron jobs will run fine, but if they run every Sunday morning, then twice per year they will run at the exact time daylight savings time (aka summer time) kicks in or ends, sometimes with very strange results.
On Linux with vixie-cron we saw two cron jobs run something like once per second between 3:00 and 3:01 when the most recent daylight savings time began. Thus they ran about 60 times, stepping all over each other and making a noisy mess in email. No serious harm was done, but that’s only because they were not tasks capable of causing serious harm.
Feel free to wish for or agitate for or fund or write a better open source job scheduler that everyone will use, one that will ensure no overlapping runs, allow specifying time limits, etc. Better tools exist, but until one of them achieves cron’s level of ubiquity, we have to live with cron at least some places and sometimes.
Alternatively, where …
devops linux sysadmin
Pounding Simplicity into Wiki
Day two of MountainWest Ruby Conference starts out with a bang! Notable developer and thought leader Ward Cunningham describes the how he is going about developing his latests ideas behind the wiki. While doing so, Cunningham teaches concepts of innovation and how creativity to help inspire ruby developers.
Promise
The promise is a basic statement of the desired outcome. Not in a way a mock-up shows the finished product, but the way in which it will affect humanity. Wikipedia gives words, depth, and meaning that ordinary people can depend on every day. The promise of this new kind of wiki is to give numbers depth and meaning that ordinary people can depend on every day.
This means data visualization intermixed with context. For example, a weather map can show you numbers on a map to tell you temperatures. A meteorologist doesn’t just see a number, he sees the actual weather, the hot and cold, the wind or the rain, etc. Data visualizations like a wind map excel at helping users to visually see the wind in region.
To accomplish this promise, Cunningham implemented a new kind of wiki. The main difference in this new wiki is that the data is federated among several different locations …
conference ruby
End Point Upgrades Liquid Galaxy at Ann Arbor Hands On Museum
End Point has assisted the Ann Arbor Hands On Museum in upgrading their Liquid Galaxy to the latest version of interactive immersive digital viewing experience. The museum has a mission to inspire children to discover the wonder of science, technology, math, art, and engineering, and to be the leader in imaginative and interactive learning experiences. The Liquid Galaxy plays a central part in that mission.
Googlers provided material support in the form of hardware and technical expertise to assemble a Liquid Galaxy based on the open source project information. Hands On Museum staffers coordinated the Exhibits, IT and Administration teams at the Museum to bring the project together in a few months. The result was an exhibit that beautifully blended Liquid Galaxy into the mission of the museum.
In December 2012 The Ann Arbor hands On Museum announced the addition of a Liquid Galaxy to their roster of exhibits. At End Point, we congratulated them, and we also offered any assistance they might need. The Museum was running into some performance issues, and asked if any upgrades or recommendations were available from End Point.
Working closely with Google, and with the great cooperation …
clients visionport
A DIY Ruby Profiler!
A simple profiler can be nice to help detect how often different parts of our code are being run by using some statistical analysis and a few threading tricks. New Relic developer Jason Clark talks about how it’s more efficient to take samples than to use ruby profiler to profile every call and then walks us through building your own profiler.
This was a very insightful talk on how to analyze the backtrace of currently active threads. You can find the code for his DIY profiler on github.
conference ruby