Using SQLite with Railo CFML Server

Posted by Quinn Madson | Posted in | Posted on 5:56 PM

2

I've been building a web app that analyzes data from an application called Ultimate Racer used to control the race track circuit for slot car racing. Ultimate Racer conveniently keeps all of it's data in a SQLite database.

However, getting the SQLite database to work with Railo was a little problematic so, I'm documenting the process here in the event that I need to do it again or someone else is googling how to make it happen.

First, you need the SQLite JDBC driver for Railo. I ran into a bunch of dead links so, I dropbox'd the file here: http://dl.dropbox.com/u/472577/sqlite-jdbc-3.7.2.jar

Place the JAR in your Railo installation under: /PATH/TO/RAILO/lib/ext/sqlite-jdbc-3.7.2.jar

Restart Railo after copying the driver. Go into the Railo Web Administrator and go to "Datasource".

Put in the name of your datasource, for type select Other - JDBC, and click Create.


Scroll down to Class and type in: org.sqlite.JDBC
For DSN type in: jdbc:sqlite:/PATH/TO/SQL/DB/FILE



Click Create and you should be all set.





Korg Monotron Repair Mod

Posted by Quinn Madson | Posted in | Posted on 2:33 PM

1

Due to a series of unfortunate events, the surface mounted 1/8 jack was torn off of the board of this Korg Monotron analog synth. I decided to try and tie into the existing onboard speaker to allow the synth to still connect to external speakers or mixer. 

I drilled a small hole on the left side to allow wires into the enclosure.
I noted the wires so that if pulled, the solder joints won't be stressed.

I ran the new line-out red line into the existing solder joint for the onboard speaker.

I desoldered the black line to the onboard speaker. I made a joint between the new line-out black line, the  speaker black line, and a new jumper.

All soldered together and bit of heat shrink.
Connected the switch (momentary - normally off) to the original speaker black line solder joint and to the jumper from above.
All put together with the switch mounted and a lesbian adapter on the 1/8 inch male plug end.


Here is a video of the synth put back together and operating. First part of the video (~20 secs) is demoing the momentary switch activating the onboard speaker. The rest is using an external speaker system.




snippets.rb: Titanium Studio Snippets Ruble Customizations

Posted by Quinn Madson | Posted in | Posted on 8:54 AM

1

This here is just a space for holding my Titanium Studio customizations to extend or overwrite the provided ruble for snippets. Feel free to use them and let me know if you have any additions that help you code faster.

snippet 'inspectObject' do |s|
    s.trigger = "inspect"
    s.expansion = 
'Ti.API.info("Inspecting Object: " + ${1:myObject});
for (var thing in ${1:myObject}) {
  Ti.API.info("${1:myObject}." + thing + " = " + ${1:myObject}[thing]);
}'
  end
  
  snippet 'Ti.API.info qk' do |s|
    s.trigger = 'dump'
    s.expansion = 'Ti.API.info(\'[qk]:${1:variableName}\ = \' + ${1:variableName});'
  end
  
  snippet 'Alloy On Event' do |s|
    s.trigger = 'on'
    s.expansion = 
'${1:myObject}.on("${2:click}", function(e){
    
});'
  end
  
  snippet 'Ti.API.info' do |s|
    s.trigger = 'info'
    s.expansion = 'Ti.API.info("${0:log}");'
  end
  

Titanium & Usergrid

Posted by Quinn Madson | Posted in | Posted on 7:39 PM

0

I was trying to get a Titanium app up and running with a Usergrid backend and I kept getting the error:

[INFO] {"error":"web_application","timestamp":1344133939838,"duration":0,"exception":"javax.ws.rs.WebApplicationException"}

Turns out it was an issue with how the the Titanium HTTPClient serializes JSON data. (I thought the Ti API did this auto-magically but, maybe I'm mistaken.) If you run into the same problem, call JSON.stringify() manually on the JSON data that you are posting. Seems to do the trick. Here is an example:

var xhr = Ti.Network.createHTTPClient();
            
xhr.open("POST", "https://api.usergrid.com/YOUR_ORG-NAME/YOUR-APP-NAME/users");
xhr.setRequestHeader('Content-Type','application/json');

xhr.onload = function(){
    try {
        Ti.API.info(this.responseText);                
    } catch(e) {
        Ti.API.info(e);
    }
};
    
var data = {
    username: "raoul.duke",
    email: "raoul.duke@doomed.net",
    name: "Raoul Duke",
    password: "b4tc0untry!!"
};
                
xhr.send(JSON.stringify(data)); //this is the important bit