Spincase: A simple JavaScript framework for 360 degree image rotators


Motion detection using canvas in HTML5

Todo: Post about motion detection!

+ http://live.thomasrenck.com/motion.php
+ Maybe create some sort of image set people can use as a demo so as not to use live video?
+ Write about how it works
+ Write an analysis on it’s effectiveness

Brian and Jennifer wedding video

(Watch in HD on vimeo.com!)


Here’s the highlight reel from Brian and Jennifer’s wedding. It was a beautiful September day in Pala California, at the Condor’s Nest Ranch. I shot this wedding mostly handheld with the Canon 7d and primarily used the Sigma 18-200mm OS in combination with my Canon 24-70mm 2.8.

New Website Launch – Toemat Labs

X-INfERNO.com has enjoyed a 12+ year journey through some of the most interesting times in the history of the web. It’s served different purposes along the way – software and game host, online social hub,  and project blog among other things. It’s been a great run but it’s time for a new platform and a new brand and so I’d like to introduce to you, Toemat Labs at http://toemat.com.

Toemat Labs is the spiritual successor to X-INfERNO.com and will continue on the path of documenting projects and experiments with an emphasis on useful, fun, and high quality content. I’d love for you to take a look at a couple of the first posts and let me know what you think, for example the Immersion RC Vortex Teardown or the Arduino Bubble Blaster!

Legacy X-INfERNO

I launched X-INfERNO.com sometime around 2002, at the time I was just about midway through high school. It was my first domain and my first ‘serious’ website (my very first piece of the web was at Angelfire around the year 2000, but sadly it’s lost to history).

I didn’t have a credit card, or really any money to speak of, but I was able to register x-inferno.com through a website called NameZero, where domains could be registered for free as long as you agreed to allow them to inject a big advertisement banner. Of course the first thing I did was remove the banner.

file

The first machine running X-INfERNO.com was a dual CPU 1.0GHz monster we called the Orange Box. The case was a school district throw-away full tower which I painted and cut a window into. It was connected to the world wide web by a fantastically unreliable 20kB/s DSL line. It wasn’t much but it did the job and ran 24/7 without issue for a number of years.

Originally the site was made using FrontPage (yuck), then it was Joomla (ugh), and finally WordPress.

The highlight, for me, was the X-INfERNO.com forum. An online hub for a group of real life friends to communicate and share memories. It collected thousands of posts over the years and a lot of great times are documented there. As time has moved on other services online have taken it’s place, but the forum will live on as a window into the lives of a bunch of teenage millennials trying to find their place in a world of constantly changing technology.

Thanks for reading. Here’s to a new chapter at Toemat.com 🍷

Setting up Naze32 with GPS and OSD

I’m in the process of building a tricopter for long distance exploration and decided to go with the Naze32 flight controller paired with GPS and the RCTimer MAVLink OSD (which is just a hardware variant of minimOSD). I’ve got everything up and running now and it’s an awesome combo, but to do so I had to dig through a mountain of forum posts and videos to understand how to set everything up. I’m writing this post to compile some of my ah ha! moments to hopefully help you out with your setup!

Before I start, there are a couple of videos by Mochaboy RC that were incredibly useful in this process and they are How to setup a Naze32 Acro / Funfly Flight Controller and How to Setup KV OSD MinimOSD Naze32, without these I would not have been able to get anything working!

Tricopter Part I: Building a Basic Wooden Frame

Postal box tricopter

It was about a year and a half ago that I became interested in multirotor helicopters, around that time I set out to design and build my own basic tricopter. This series of posts will explore my journey of building, crashing, modifying, learning and iterating. The process has been exciting, I’ve learned a lot, and it’s become one of my longest running projects to date! Read on if you’re interested in multirotor, building things, or if you want to know what the heck the photo above is all about!

Using OpenLRS with a Hitec Aurora 9

aurora tx module model

Recently I’ve become interested in the R/C FPV scene and all things multirotor. My ongoing project for the last few months has been a DIY tricopter multirotor that I fly FPV with. The tricopter I’ve built has been through more iterations than any other project I’ve done and has been great fun! I’m always trying to improve it’s flight characteristics and range and most recently that has meant swapping out my Hitec 2.4Ghz controls for a UHF Long Range System.

Before doing this my controls was the limiting factor on range, the 1000mW video link I use can go much further, so that started the hunt for a low cost UHF LRS I could use with my existing Hitec Aurora 9 transmitter. The lowest cost LRS I could find was the Orange RX OpenLRS combo that’s sold on HobbyKing.com. For US$50 you can get a transmitter and receiver based on the OpenLRS hardware, but unfortunitly the transmitter module is not made for Hitec and is way too big to fit.

That’s where the AutoCAD model above, and a 3d printer comes in! I created a model of my existing 2.4Ghz transmitter module so that I could remotely connect it to the OrangeRX OpenLRS transmitter from HobbyKing. This new printed module snaps in to the back of the Aurora 9.

2013-04-12 19.55.20

Here’s the module with the lid

Extend the length of PHP session time by using cookies

A look at sessions

Handling sessions in PHP can be a bit of a challenge. They like to just disappear at random, which makes it hard to set a specific time limit for user’s sessions to expire. The reason for this is that PHP stores each client session as a separate file and then occasionally picks through them and deletes the sessions that are expired. This is a common process in software called garbage collection. Every time a user starts a session on your site (basically every page request) there’s a chance that the garbage collection process with run. You can control how likely this is to happen by setting a couple of PHP options:

ini_set('session.gc_probability', 1);
ini_set('session.gc_divisor', 100);

or you can set these in a php.ini file:

session.gc_probability = 1
session.gc_divisor = 100

This works by taking the gc_probability and dividing by the gc_divisor, so in this case 1/100 is 0.01 or 1.00% chance of running garbage collection.

The other important setting for handling user sessions is session.gc_maxlifetime. This is set to the amount of seconds a session must age before it is considered expired and therefor able to be garbage collected (deleted). So you may have something like this in your php.ini file:

session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 86400