troy swanson dot net
Monday, November 7, 2011
My Evening Grapple With dd-wrt
At first I thought it was a problem with someone at the apartment complex, so I did a site survey and found about 6 devices operating on channel 1. My router was operating on channel 1 as well, so I tried to change it to the most unused channel (which happened to be 14 for me). To no avail.
Next, I tried to move the router away from my plasma TV, thinking that somehow the radiation from the TV was interfering with the transmission. I also unscrewed the antennas and re-screwed them back in. Doing that obviously caused me to unplug the router and plug it back in elsewhere. Again, no luck.
Then I tried to change the security mode on the router. Partial success! When I disabled all of the wireless security features, SSID broadcast worked and it started working perfectly. Except of course, this was unencrypted data flying through the air in an apartment complex. Unacceptable. Changing the wireless security mode back to WPA2 causes the previous symptoms to reappear, so we're kind of back to square one.
At this point, I noticed that the Wireless Status page was no longer showing information in the Wireless Packet Info section. It was completely blank to the right of the Received and Transmitted text blocks. Checking with Firebug and Chrome's Developer Tools, I noticed that there was a JavaScript syntax error occurring on Status_Wireless.asp. Weird, I thought.
After that, I tried to change the the dd-wrt firmware. I was running build 13064, which was the recommended version for my router. That build was a pre-SP2 beta, but it was running amazingly stable up until now. I decided to downgrade all the way down to SP1. I uploaded the firmware through dd-wrt's control panel, choosing to retain previous data. Still not working. The weird JavaScript syntax error was still happening, too.
Feeling pretty frustrated, I decided to upgrade back to build 13064, but this time I decided to go ahead and reset the router to factory conditions. When it came back to life, I proceeded to set up the wireless security to what it was before, WPA2 Personal with AES encryption. I refreshed the wireless networks on my MacBook Air, and there was my router, lock and all, ready to be connected to.
I'm still not exactly sure what happened, but a full setting reset seemed to work. Lame fix, but now it works. I'm more interested as to how the JavaScript error cropped up completely out of the blue.
Monday, October 24, 2011
The Digital Brink
Tuesday, October 18, 2011
Contact Requests. Why Isn't This a Thing?
Both Apple and Google have had the opportunity to create a feature like this, and it seems obvious to me that they should. As everyone knows, managing a contact list of everyone you know is an immensely tedious task. Apple could easily roll out a system like this through iCloud and iOS, and Google could easily do it through Gmail and Android. A user maintains their profile and the people they're sharing it with instead of trying to manage a static contact list. Imagine asking someone for their Apple ID or their Gmail address instead of their phone number when you want to exchange contact information.
This awesome mockup was done by Cillian O'Keeffe. Thanks a ton! |
The model for this system could take inspiration from Valve. Steam has a very simple "Add a Friend" feature that lets you enter the email address of the person who you want to add. Once you do that, an alert will show up on that person's Steam account that lets them confirm the friendship. The exact same process could be done through iCloud and people's me.com address, or through Gmail.
Granted, Facebook already has something like this. The Facebook apps on iOS and Android can synchronize your Facebook friends list with your device's contact list. But it always isn't appropriate to be a Facebook friend with someone (like your boss or a client), as it gives them access to much more than just your name and phone number.
In the coming years, mobile phone plans will move away from a weird combination of gigabytes of data, voice minutes, and text messages to only data (and an unlimited amount of it), people will have the freedom to use a multitude of communication media. For now, Google and Apple need to create a system like this so that they can maintain a list of connections for when phone numbers become obsolete.
Wednesday, October 12, 2011
Begun, the Job Hunt Has
I should note right away that my college experience has been dismal at best, and a total nightmare at worst. I haven't felt like I've gone through more of a grind in my entire life, and that's a horrible thing. College should be challenging and enriching, but instead it's been mindless and dull. Trudging through class has been the bane of my existence for the last two years, and I honestly don't have much to show for it in terms of new knowledge. The vast majority of the new information that I have obtained throughout my college life has been independently and outside the scope of class.
The problem is that my overall GPA doesn't reflect the lack of challenge. Quite the contrary, in fact, it would seem from an outsider as though I struggled through, hanging on to the one lone thread of understanding from a particular course and pulling it through to obtain a barely passing grade. That is an unfortunate side effect from a curriculum that isn't engaging or enveloping. Frankly, I don't think the knowledge and experience that I have gained while on this campus is enough for me to be a worthwhile hire for a potential employer. So I've been doing other things...
I just hope those other things are evident to my potential employers when I apply for a job.
Perry Dental Health Consulting
Wednesday, October 5, 2011
AJAX, HashChange, and Twitter
I've upgraded troy swanson dot net to use the HashChange event, and converted the site to an AJAX-only experience. Now, one page is loaded, and any links that are clicked are fetched asynchronously using jQuery.
Also, I added a Twitter node in the side bar, and am working on creating a client that utilizes Twitter's Streaming API to fetch tweets in real time. Right now, I'm using the RESTful API to fetch tweets every 5 minutes.
Monday, September 5, 2011
The REST Tester
Back in March, I was experimenting with DOM and XPath stuff in my labs and created a little utility called the DOM Viewer. The DOM Viewer was a very specific utility that was only geared toward grabbing XPath values, and for that it worked like a champ. However, I found myself wanting to dig deeper into HTTP requests - adding POST values, new header fields, authentication, etc.
In the past, if I wanted to experiment with low level HTTP requests, I would code something from scratch using php and cURL and var_dump my way to victory. However, low level HTTP debugging is becoming increasingly important with the addition of so many RESTful APIs on the internet these days, so I decided to develop a new product called The REST Tester.
The REST Tester is a simple utility designed to help web developers debug RESTful API calls. The main purpose is to let web developers see what they're working with before they start cracking into the code. As of right now, you can call resources that return any kind of text data in the body of the response. I've also added support for image MIME types, so if you call a resource that returns binary image data, you should see the image in with the response.
In the works are Cookie values, custom header values, multiple HTTP Authentication methods, multiple HTTP request methods (DELETE, HEAD, etc.), and support for other content types. I also want to add some formatting to structured responses like JSON or XML. This is definitely just the beginning. If you have any suggestions or comments, please email me [at] troyswanson [dot] net.