Programming. Electronics. Open-source. Pseudo-random opinions.

Website Update

It’s been quite a long time coming, but I’ve finally rebuilt my personal website (which has the blog on it that you are reading now). It’s less “blog” and more organized into categories, though of course all of the old entries are still there. You can see the home page at sectorfej.net.

I’ve split it up into three main sections: Programming, Electronics, and Personal. The Personal category is further divided into subcategories for Politics and School. The Programming and Electronics sections are lists of projects that I’ve worked (or am working) on, though there are also menu items for the respective general blog post archives as well. The site is now using a modified and customized version of the Xero WordPress Theme, which I must say I’m quite impressed with. The home page is particularly tweaked from the official code, but in general, it’s the same thing. I’m not 100% complete—I still want to make a few changes to the project pages to show related chronological blog post excerpts. Basically though, it’s ready for public consumption.

…by all five of my readers. Six, maybe.

Anyway, I figured one of the best ways to introduce the update is to summarize the projects, many of which have been mentioned here and there in different posts over the last few months, but some of which are new. I’ve found myself getting back into electronics a bit instead of sticking only to programming, since the Arduino platform has provided such an excellent bridge between the two. So here you have it: programming first, then electronics.

Cambridgify is a little website that I put together for fun after I read the garbled block of text about Cambridge University research—you know, the one wehre all the wrdos are mxeid up. The concept described in the text seemed to work well enough for the example they used, but I wondered how well it would work in the real world. So, the Cambridgify website takes any web page URL and processes the text according to the same rules. It’s truly random, so you can expect a different result every time even if you go to the same page. It has a few limitations, but overall it works pretty well. Try it and see!

Phej is a lightweight, extensible PHP5 MVC framework designed for simplicity and convenience. The main framework code is contained in a single PHP file, and for basic operation you only need a custom index.php file and .htaccess file. Any other features are added as desired using standardized plugins. Plugins can provide their own models, views, and controllers if necessary. The framework handles code errors as cleanly as possible, providing context-sensitive error reporting. There is no public code just yet because of further development and testing, but it should be available soon.

Application Markup Language, or AML, is a simple XML-based language that allows you to easily build a clean, functional, native application for your mobile device. The AML library implementation is open-source, and doesn’t require any imports from your package to work. AML doesn’t require you to know the details of how the mobile device builds its views. It doesn’t depend on some extra plugin installed on your device, and it doesn’t run your app code through another service. The library still needs a lot of work, but the concept works and there is some usable code for Android. Visit amlcode.com for more info.

Think of MailRex as a cross between Daytum and OhLife. You define stuff you want to keep track of and how often you want to enter data for each item, and we’ll send you email reminders asking for the data. You simply reply to the email with the data supplied in the pre-formed response areas, and MailRex takes care of the rest. If this sounds intriguing, check out the fledgling beta sign-up site to let me know. There is no usable interface yet, but it will hopefully come soon. I’ve been testing the reliability of the back end for a while now with great success, so the concept is good at least.

Feechr is a project design and management tool that is built to be as intuitive as Basecamp, but as customizable as you might reasonably want. The most similar service to what I envision is GoPlan (an excellent service, which I do use), but it doesn’t place enough emphasis on design and individual item progress and review to satisfy my perfect idea. I have a working structure in place built on the Phej Framework, but further development has been on hold for a while due to other duties.

RabbitMon is an effort to create a very simple, very modular monitoring framework. I have worked with Nagios and found it to be very powerful, but not always the best solution, especially for integrating with other systems. I have currently deployed a complex Nagios monitoring system in a work-related situation, and the way we are using it is only utilizing a very small portion of its capability. RabbitMon, as the name suggests, is a small and light tool that is built for passive agent reporting and remote configuration. Agents report data over HTTP/S in XML or JSON format, which means the “server” component can be a single PHP script tied to a MySQL database, or something similar. This is still under active development.

PDOQuery is my new database abstraction library. It’s modeled to a limited extent after jQuery syntax, though obviously not all the same kinds of functionality apply, and the base language is different. The query language is built in a similar fashion, only PDOQuery selects and manipulates a database instead of DOM elements. Query modifications are built to return a PDOQuery object, just like jQuery, so you can link modifications together or apply a new selector to an existing object. The library takes full advantage of PHP to provide powerful object integration, making it extremely simple (and mostly automatic) to create a PHP class that directly represents a database table row. View the unfinished project website at pdoquery.com, and play with a selector demo here.

oMotive is my attempt at an OSHW version of the FitBit—a small, ingenious device for recording and analyzing body motion. The FitBit seems to be really great at what it does, and I’m not trying to steal market share, but I wanted to see if I could replicate the functionality in a completely open way. My current design uses an ATTiny2313 controller, ADXL345 3-axis accelerometer, RTC module, microSD-based OpenLog module, Bluetooth serial module, and lithium polymer battery. The approach is simple, but I’m not sure I can get the ATTiny2313 to properly interact with all those parts. We’ll see.

The AirSensor is a very basic Arduino-powered wireless sensor device based on the Anarduino board from AnalyticTools and the cheap transmitter/receiver modules from SparkFun. I had a lot of fun experimenting with it, and I even had some grandiose plans for selling kits, but then I found out that my vision was already implemented (and perfected!) by the JeeNode, which is amazingly cool. It was still a great learning experience though!

The Keyglove is a portable Arduino/Atmel-powered glove that uses touch combinations (for keys) and an accelerometer (for the mouse) to generate keyboard and mouse control codes using only one hand. Once learned, the glove can easily be used without looking, making it perfect for embedded/wearable environments. The glove is thin and light, built to allow other activities (such as writing) without being in the way. Currently, the Keyglove is in the prototype stage, but you can track its progress and find many details at the project website at keyglove.net.

So, that’s everything going on right now. These projects are in various stages of completion, and I’m usually working on at least one of them in my spare time on any given day, if I don’t have other pressing obligations. This post won’t be updated as progress continues—it’s just a snapshot of what is happening at this moment. For up-to-date info, always check out the home page or full blog archive, or of course you can subscribe to the RSS feed.