Recent Posts

Thomas Stuart Hall

Rebuilt light fixtures

17:49 09 May in Crafts, Home Improvements by Thomas

As part of the home improvement projects in the run up to the new baby, I rebuilt 2 light fixtures for our new master bedroom. Its hard to say how old they are.  They've been in the house my entire life.  Looking for lights like them, or alternate arms for them, proved useless.  The bases I think are tin.  The arms are brass, and quite ornate.  Pictured here is one left over light.  As you'll see, the socket is inverted in this one, unlike the other two. [singlepic id=7 w=320 h=240 float=center] And as is typical in this blasted house, we see the dreaded cloth covered wire.  At least unlike some of the other fixtures in the house it doesn't have cork insulation. So, we decided to paint them, and I decided while I was at it, I was going to replace the wires and sockets.  And what we ended up with is: [singlepic id=3 w=320 h=240 float=center] I think they turned out pretty well. Originally, they had brass tassle-shapped pieces hanging from the bottoms.  But alas, only one remained (I swear I've seen the second one about the house some where...

Webmin, Linux Firewall, and China

08:00 02 May in Firewall, Linux, Security, Thomas' Toolkit by Thomas

Here was the situation. Our server got hit by multiple login attempts from China about a week ago. Our security of course keeps these attempts from being successful, but the shear volume of attempts slowed us right down. After dealing with the immediate attempts to get in, and restoring service, I had to find a more permanent way of dealing with the attacks. Since the time of the attack, I've been reviewing access logs on a daily basis.  Access attempts continue, with 5-6 machines attempting 1000's of times each to get in, guessing usernames and passwords.  Over 85% of the attempts originate from China...

jQuery Version Check: live() Vs. On()

12:34 31 January in Compatibility, JavaScript, jQuery, Thomas' Toolkit by Thomas

Recently I started work on my own jQuery plugins.  I do love that jQuery.  But, as I was working, I came to see the difference between on() and live(). I'm reading that live() is depreciated, so in order to make my plugin a bit more universal, I wrote a function to detect the jQuery version being used, and act accordingly.  Here it is: function useOn(){ var jRequired = '1.7.1'.split('.'); var jInstalled = jQuery.fn.jquery.split('.'); var on = true; for(x in jInstalled){ if(parseInt(jInstalled[x]) < parseInt(jRequired[x]) && on==true){ on = false; } } return on; } If the jQuery version is 1.7.1 or higher, this function will return true. If lower, it will return false. I call the function when I'm getting ready to set click functions on some of my objects. I couldn't find anything like it will poking around Google, so hopefully someone else finds this helpful. ...

United States JSON state list

10:28 04 February in JavaScript, JSON, Resources, Scripting, Thomas' Toolkit by Thomas

In case anyone needs it. var US = { "AL":{"count":"0","name":"Alabama","abbr":"AL"}, "AK":{"count":"1","name":"Alaska","abbr":"AK"}, "AZ":{"count":"2","name":"Arizona ","abbr":"AZ"}, "AR":{"count":"3","name":"Arkansas","abbr":"AR"}, "CA":{"count":"4","name":"California ","abbr":"CA"}, "CO":{"count":"5","name":"Colorado ","abbr":"CO"}, "CT":{"count":"6","name":"Connecticut","abbr":"CT"}, "DE":{"count":"7","name":"Delaware","abbr":"DE"}, "DC":{"count":"8","name":"District Of Columbia","abbr":"DC"}, "FL":{"count":"9","name":"Florida","abbr":"FL"}, "GA":{"count":"10","name":"Georgia","abbr":"GA"}, "HI":{"count":"11","name":"Hawaii","abbr":"HI"}, "ID":{"count":"12","name":"Idaho","abbr":"ID"}, "IL":{"count":"13","name":"Illinois","abbr":"IL"}, "IN":{"count":"14","name":"Indiana","abbr":"IN"}, "IA":{"count":"15","name":"Iowa","abbr":"IA"}, "KS":{"count":"16","name":"Kansas","abbr":"KS"}, "KY":{"count":"17","name":"Kentucky","abbr":"KY"}, "LA":{"count":"18","name":"Louisiana","abbr":"LA"}, "ME":{"count":"19","name":"Maine","abbr":"ME"}, "MD":{"count":"20","name":"Maryland","abbr":"MD"}, "MA":{"count":"21","name":"Massachusetts","abbr":"MA"}, "MI":{"count":"22","name":"Michigan","abbr":"MI"}, "MN":{"count":"23","name":"Minnesota","abbr":"MN"}, "MS":{"count":"24","name":"Mississippi","abbr":"MS"}, "MO":{"count":"25","name":"Missouri","abbr":"MO"}, "MT":{"count":"26","name":"Montana","abbr":"MT"}, "NE":{"count":"27","name":"Nebraska","abbr":"NE"}, "NV":{"count":"28","name":"Nevada","abbr":"NV"}, "NH":{"count":"29","name":"New Hampshire","abbr":"NH"}, "NJ":{"count":"30","name":"New Jersey","abbr":"NJ"}, "NM":{"count":"31","name":"New Mexico","abbr":"NM"}, "NY":{"count":"32","name":"New York","abbr":"NY"}, "NC":{"count":"33","name":"North Carolina","abbr":"NC"}, "ND":{"count":"34","name":"North Dakota","abbr":"ND"}, "OH":{"count":"35","name":"Ohio","abbr":"OH"}, "OK":{"count":"36","name":"Oklahoma","abbr":"OK"}, "OR":{"count":"37","name":"Oregon","abbr":"OR"}, "PA":{"count":"38","name":"Pennsylvania","abbr":"PA"}, "RI":{"count":"39","name":"Rhode Island","abbr":"RI"}, "SC":{"count":"40","name":"South Carolina","abbr":"SC"}, "SD":{"count":"41","name":"South Dakota","abbr":"SD"}, "TN":{"count":"42","name":"Tennessee","abbr":"TN"}, "TX":{"count":"43","name":"Texas","abbr":"TX"}, "UT":{"count":"44","name":"Utah","abbr":"UT"}, "VT":{"count":"45","name":"Vermont","abbr":"VT"}, "VA":{"count":"46","name":"Virginia ","abbr":"VA"}, "WA":{"count":"47","name":"Washington","abbr":"WA"}, "WV":{"count":"48","name":"West Virginia","abbr":"WV"}, "WI":{"count":"49","name":"Wisconsin","abbr":"WI"}, "WY":{"count":"50","name":"Wyoming","abbr":"WY"} }; [Generated using jQuery and the US Postal Service. ;) ]...

Cleinman Performance Partners has a new website

00:15 29 January in General by Thomas

Since my last post, which I know was some time ago, I've started a new position with a consulting firm in Upstate New York, near where I was born and raised.  When I left Upstate at the age of 18 for college, I knew I was going to be gone for a long time, but I also knew I was always going to come home.  Last year, the stars aligned, and I found a job very close to my hometown, where I could move home with my wife and 1 year old son, and give him the same life in the woods that I had growing up. This was no mean feat.  Finding a position as a developer away from an urban area is tricking, but I found Cleinman Performance Partners.  An optometrist consulting company, CPP helps medical professionals of that certain bend be more successful, and in fulfilling that task they decided to invest in me to give them an edge most companies don't have in house.  Their unique needs and drive led them to the conclusion that a mere webmaster, or web design company, wasn't enough. I've been here since September, and the challenges have been thrilling.  I have complete latitude to make all the technical determinations necessary to make this website a success, and I have been able to put out some of my finest work to date.  I hope this is a trend that continues for a long while. [caption id="attachment_63" align="aligncenter" width="400" caption="Cleinman Performance Partners"][/caption] The design is derived from what existed when I began...

HTML5: So much potential

09:00 20 July in HTML5 by Thomas

I've recently been tasked with researching HTML5 for my company.  The point of this is to generate very specific search pages for mobile devices, starting with the iPhone, iPod and iPad.  So far, thanks to the compliance level of the iOS version of Safari, its been great fun. Due to this, we now how CS5 in the office, because the new Dreamweaver has some nice improvements to make this a little easier.  As and aside, kudos to Adobe for their fine works on this version. Fortunatly for me, using HTML5 techniques on this project is going to turn out an excellent mobile search when I'm all done.  However, unfortunatly, it will be a while before I can carry ovr some of the things I'm learning here into other areas. HTML5 support in web browsers is currently spotty at best.  My best experience thus far testing new tags and attributes has been on Chrome, Safari and Opera.  I'm seeing among the daily user I encounter increasing usage of Chrome, but I know very few people who use Safari, and no one who uses Opera for general web surfing. (I'm not saying Opera is a bad browser by any means, just that its adoption rate is negligible in my personal observations.) The big browsers right now are Firefox and Internet Explorer.  Firefox is planning more support in the near future, which i guess is fine, but its IE that will be the bigger problem. Versions 7 and 8 are now widely being used by general users, and this is only because of...

General Update

07:41 21 April in General by Thomas

As busy as I am with work and fatherhood, I have a moment today where I thought I would give an update on my recent activities. Lately I've been doing more JavaScript, which has really broadened my mind.  My most recent work is this new contact page for Smarter Agent's MLS inquiries. Using JS and PHP, I built a dynamic form to send mail without loading a new window. [caption id="" align="aligncenter" width="400" caption="Smarter Agent MLS Contact Form"][/caption] JavasScript is used to validate  all of the form fields, with some form validation by PHP after the submit button is checked.  It took a good afternoon, and was lots of fun. I've been using JS to build new downloaders for Smarter Agent's Homes for Sale mobile application.  Recently I've been doing more downloaders for mobile devices, which require a broad set of considerations.  Given the variety of phones, and their differing capabilities, you can't  rely on one way of doing things.  The iPhone is a very capable device to design for, but obviously Flash is out of the question.  Android is also quite nice, but seems to lack JavaScript in application browser windows (meaning a browser window opened by an Android application.  The Android browser by itself is very capable.).  Palm is excellent as well, but older model Blackberry devices and not-so-smartphones require the most basic of codes. This week has been dedicated to more mobile oriented work than I normally do, but its been fun.  Hopefully in a few weeks time I will have every...