Showing posts with label nerdy. Show all posts
Showing posts with label nerdy. Show all posts

Sunday, May 24, 2009

Sorry for the absence

Hi all, sorry for the long absence. It's been almost a full month since my last post.

Let's see, what is there to update you all on. The Heartless Siren and I are still getting married, so that's good. Wedding plans have been coming along. We have some test announcements coming from the printing company within the next few days, so we'll be getting those out really soon. Waldorf and Sauron put it together for us, it looks awesome.

My thesis is coming along. The data is getting close to finished, so I'll be working on the actual text of the thesis now. I am happy to say that the results seem to indicate that my work performs better than random guessing. Honestly, that's all I was hoping for. My work is in a very young field doing something that has yet to be done well using a very specific technique which has never before been applied to this field. So, getting better-than-random results is actually quite awesome. Now someone else can pick up my work and improve upon it.

We're still working on finding a place to live when we move in July. I need to call the complexes and see if they know their availability yet. I'd like to get that sorted out sooner rather than later so that we can arrange things with the moving company.

I've spent my nights this past week creating a registry website using the Django web framework built on Python. Let me just say Django/Python allows you to get an incredible amount of work done in very little time. The site looks amazing, is fully XHTML 1.0 Strict and CSS 2.1 compliant, and only needs 2 little CSS hacks to make it work in Internet Explorer.

We were using Ourregistry.com myregistry.com, but they require guests to give them an email address in order to view your registry. And harvesting email addresses from my friends and family is not OK. So, now they don't get our pageviews at all. And, I can easily turn my system into a competing product (it's already 90% there). The moral of the story is: Don't annoy a nerd with silly things when you're a website, they just might make their own to spite you.

Sorry, but since including a link here would give away our identities so blatantly I'll forgo. I would guess that with some clever Googling a smart researcher could probably find my identity and the website. So, I leave that task to the reader.

Saturday, February 07, 2009

My New Toy, or N810 Unboxing

Now that The Heartless Siren is out of the hospital and recovering I have things to post about on this blog that I haven't already posted in my personal blog. Since I spent 2 of the last 5 weeks with The Heartless Siren in the hospital I didn't have much to say about anything, and the week before that was spent taking care of her at home, and the past 2 weeks have been spent being sick with Mono and taking care of her at home again.

During those 2 weeks I found a really good deal on a new toy that I decided I needed. The Nokia N810 Internet Tablet (4 different links there). I was able to get it shipped for $210.

Here are some of the highlights about why I wanted it:
- 800x480 resolution screen with automatic brightness adjust according to ambient light
- Full web browser with Javascript and Flash 9 support (based on Mozilla)
- Open Source architecture with lots of completely free applications available and active development community
- Built off of Debian Linux = rock solid stable performance
- Includes a Xterm with download of OpenSSH (Now I can login to my servers and fix problem from almost anywhere!)
- Wireless G Network, GPS, Mic, Camera, Expandable Memory, VOIP
- This one I don't use yet, but probably when I get a new phone and plan: Bluetooth phone tethering for internet access via phone from anywhere
- Small: the device is the size of an index card and about a centimeter thick


Now, like any good nerd I documented the unboxing:







After some theme customizing, let's find The Board:





I got the N810 on Thursday and so far have very few (and very minor) complaints:

1. The main thing is that some of the built-in functionality (chat, email) I've replaced with community applications which are better designed with better options, and (thus far) I haven't found a good way of either removing the built-in apps or remapping their quick-link buttons to the 3rd party apps.
2. The bundled GPS software (Wayfinder) wants you to buy a subscription with them in order to get on-the-fly Routing and turn-by-turn navigation: 1-month: ~$14, 12-month: ~$110, 36-month: ~$120. Now, if you get the 3-year then it's like $3.33 a month, not too bad for updates on maps and lots of types of points-of-interest, but still. No navigation out-of-the-box (you do get a 7-day trial)? Sadly the really nice free app Maemo-mapper does not currently support on-the-fly routing (you can download routes into it, but can't calculate new ones on-the-fly, w/o internet connection, the above mentioned Bluetooth phone link could make this a non-issue).
3. The included car cradle is not ready-to-go, you still need to buy a mount either for your dashboard, cupholder, or windshield.

Other than those 3 minor annoyance I absolutely love it. Now I just need to go drive around and play with the GPS sometime. The bundled Wayfinder's most serious flaw, in my opinion, is address entering: In order to look up the address say: 551 N 200 W, Provo, UT You have to enter the Street field as: N 200 W, then the House Number field as 551, and then the city as Provo, and state Utah. Why can't I just type "551 N 200 W, Provo, UT"?! Maemo-mapper allows me to enter addresses in this manner. And it took me about 15 minutes to figure out how to get addresses in Utah to work properly because of that silliness. But that gripe is squarely directed at Wayfinder.

Wednesday, October 22, 2008

More Cool Google

I just discovered an added feature to Google Maps that I find rather nifty. We all know and love that you can use Google Maps to look at current traffic conditions for highways in many major population areas. Apparently Google has been storing this data and now allows you to get a predicted traffic conditions for any time of day of any day of the week. So now you can find out what the roads will be like whenever you need to be traveling. For instance; it is a very, very good idea to avoid I-15 Southbound between Orem and Springville on Fridays around 3:30, otherwise it is predicted that you will be sitting in bumper-to-bumper, stop-and-go traffic for a good chunk of that distance.

[sigh]
I love Google.

Wednesday, August 06, 2008

Why am I up?

At times like right now I wonder what compels me to stay up until after 1:00am writing code. I don't know, and I don't think I ever will. But at least I was finally successful in my endeavors. I guess technically I wasn't writing code, I was trying to craft the perfect SQL statement to get the data I needed without having to scrape through it in PHP. It took a while, but eventually worked, and I now know a fair bit more about mySQL than I did 24 hours ago.

Anyways-- time for sleep.

Wednesday, May 28, 2008

Accidental Down Time

I run three websites off of my home desktop. They sit on virtual machines running within VMWare. This makes it convenient to keep them running without interfering with my personal machine, and I can easily backup or re-locate the virtual machines without disrupting operations.

As the newest Ubuntu release came out recently (Hardy Heron 8.04) I finally decided to upgrade my desktop to the latest and greatest. I had not anticipated the fact that VMWare does not currently have a release in the Ubuntu 8.04 repositories due to kernel changes. So I accidentally brought all three websites down because VMWare was no longer running. Since it was the middle of the day and I didn't have time to fix it (and I wanted to keep the websites up for the few visitors they do get) I thought of a solution and I thought it up quick (congratulations if you caught the Grinch reference there). I rebooted into Windows (haven't done that in about 8 months) and installed VMWare server there and got one of the virtual machines running again. The other virtual machine apparently got corrupted somehow and ended needing to be replaced from a backup.

Later that evening I rebooted back to Ubuntu and found the instructions to install VMWare manually.

Ladies and Gentlemen, that is why Virtual Machines are cool. Of course, what I should have done is send the Virtual Machines over to my laptop, and update my router to forward the traffic to it while I did the upgrade on my desktop. Live and Learn.

Friday, September 14, 2007

A CS678 Narrative

The system had continued processing well past the predicted length of time needed for an answer. (Apparently those pesky constants really do make a difference when analyzing time complexity of an algorithm.) So while the massive project kept on churning away, the operators waited. The program had been in place for a long time and development had hit many demoralizing setbacks. However, The results of this experiment would be monumental, and the work continued unabated.
The first set of clunky, slow, and cumbersome behemoths had to be scrapped completely. The costs had been astronomical, overshadowed only by the catastrophic failure, of which the rotting hulks were a constant, painful reminder. No useful data was collected from this initial batch except the knowledge of a few designs that didn't work. They lacked a common API and inter-unit communication was non-existent. Once these details were understood it was no real surprise that the units seemed incapable of learning anything which could be considered particularly intelligent.
The purpose of the research had been to study multi-agent interaction in an open environment governed only by very loose goals and expectations. The explicit-communication breakdown between units had, of course, made this much less interesting. The results of the implicit-communication of studying opponent actions was more of a novelty than anything of real value. Of course there were many who found this action-orientated communication to be fascinating and an entire faction of the project broke away to pursue the idea further. Their work progressed much more quickly as they needed not spend time developing a common communications interface for the various designs. Thousands of prototypes were built and the successful ones entered full-scale production. Many of the design groups did begin adding primitive communications, but these systems never progressed much beyond basic commands like, “come”, “go”, “help”, “run away” or similar, basic phrase-concepts.
After many years of development the original group produced a prototype that had a strong grasp of a complete language for interfacing. They fittingly referred to this prototype as “Adam”. Seeing that Adam appeared to fulfill the majority of requirements set forth at the beginning of the project, full-scale production of this design began. The interaction between agents started without much excitement. The units acknowledged each others' existence and set about exploring the world.
One of the loose goals built into the systems was to increase the number of “friends” they had within their environment. In order to foster these friendships the agents began sharing information with each other about their knowledge of the world so far, saving each unit time and energy (conserving energy was another goal, and the designers linked the system's power infrastructure to the sun to make this goal more meaningful).
The first deviation from the cooperative interaction came along fairly quickly. Two agents had both obtained information about an energy source. Hoping to foster friendships they raced back to the main group to share their newly acquired knowledge. One of the systems determined that if the other returned first that it would build the friendships and the one to arrive second would have nothing of value to offer the group. Considering the value of the information and of friendships the agent decided it would be more in his interest to prevent the other agent from returning at all, lose the value of that friendship, but gain the value from sharing the energy source information with the remaining agents. The first betrayal had been made, to signify the event the betraying agent was called “Cain”. Cain continued to develop self-serving attitudes that ignored the consequences inflicted upon the other agents. Learning from this behavior the other agents became less cooperative for fear that they might be the victim of another Cain.
As more and more agents were introduced into the environment there began to be competition over the provided energy sources. It was no longer possible for the agents to all share the available supplies and some began banding together to secure a single source and protect it from non-cooperating agents. This behavior grew and eventually the factions grew too large for their energy sources. Many agents were forced away and simply ran out of energy. More sources were added into the environment and to make things more interesting existing sources were moved or removed to spark interaction. The interesting result was that when a source was removed the agents cooperating for the resource usually panicked and stopped cooperating as they searched for another source. Eventually it was determined that using the entire group to take over a smaller group would be more effective and large scale “wars” began.
Agents began developing more effective means of “battling” and types of weapons were created. This type of behavior continued for long periods of time with only short intervals of cooperation when energy sources were abundant. The operators of the system began to be very curious about the behavior of the agents, and began experimenting by providing opposing groups with different capabilities. New types of resources were added forcing groups to at least try cooperating if they wanted access to each of them.
Amazingly, the groups of agents generally refused to cooperate with each other so long as they each had control of at least some of each resource and a large enough group to maintain that control. The designers and operators repeatedly tried to provide incentives for cooperation, but progress was slow and the groups generally decided they could do better by not cooperating.
A final experiment for the system was decided on. A new weapon would be given to the groups at random. This weapon would give the controlling groups the ability to wipe out other groups in a very short amount of time. The operators waited on outcome of this ultimate test. What would happen when more than one group had this capability?
It has been 62 years since the fission bomb was introduced to the world. After two devastating uses the opposing groups decided that perhaps the weapon was too powerful and agreed to not use it, but continued to threaten each other with it. The greatest experiment in multi-agent interaction is nearing the end of its needed computation time. The operators of the system Earth will soon discover how the agent design type 'Human' will end: as a cooperative collective, or in a nuclear holocaust.

Thursday, July 12, 2007

New Phone: LG VX5300

My first (gut) impressions of my new LG VX5300 phone:

- Wow, LG is still just ripping off Samsung designs
- Amazing, they've managed to make phones BIGGER in the last two years
- This phone feels like it will shatter into a million pieces if I drop it on cement


Now, for my more lengthy review:

The last time I got a new phone was 2 years ago when my family signed up with Verizon Wireless on a family plan. The model that Verizon was giving out to everybody and their dog at that point was the Samsung SCH-A670. I'm sure you've seen them. It seems like everyone I knew had one at the time, from my friends in Connecticut to my roommates in Utah, they were everywhere. I've been a long time fan of the clam-shell type design, and the Samsung did not disappoint. It is fairly small with a color screen on the inside and outside. The outside screen displays caller ID information, (text or picture, your choice). I set it so that opening the phone picked up a call. The only likely to be useful feature that was not present was speaker phone.

Now, just so we all know where I am coming from: I am sick of everyone trying to make their phone do everything for them. I own a camera, I don't want my phone to be a crappy camera. I own an iPod, I don't want my phone to be a crappy music player. I want my phone to be a good phone. If it's not good at being a phone it shouldn't exist. Unfortunately, trying to find reviews is rather difficult if you actually want your phone to make calls. Apparently everyone else in the world wants their phone to watch tv, listen to the radio, browse the internet, play music, and take pictures-- make calls? I guess that might be useful. So, this quick review will focus on the PHONE qualities of this PHONE.

My Samsung SCH-A670 have been through a lot in the last 2 years. I've dropped it a number of times on hard (cement) surfaces. It lived (completely exposed and turned on) through the storm that killed my previous camera in Ohio. It's been up mountains, and through canyons, it's done it all and has never disappointed me. The design is nothing special, but it works. The material feels sturdy and stands up to a beating. I realize this next part may be the network, but the phone plays a part too: I often maintain service when all my friends are out of luck. So I have high expectations of this new phone.

Sadly, the LG VX5300 is larger than my Samsung. Why they ended up with a larger phone after 2 years of development, I don't know. It is slightly taller and wider, but a hair slimmer. As usual for LG it is a complete rip off of Samsung styling. In my 6+ years of cell phone usage I have yet to see an LG design that appears to be original. I guess they have the Chocolate phone now, but I can hardly bring myself to count that since it hardly focuses on being a phone, and mostly just annoys me in how obnoxious I think it would be to use as a phone.

The material used in the casing of the phone feels cheap and feels like it would be easily broken. The exterior screen functions for caller ID (text only, no picture for some reason). Picture ID shows up in the interior screen. There appears to be no option to make the phone pick up a call upon opening, instead you have to open it and then press a button (really obnoxious in my opinion).

The arrangement of the buttons makes it difficult to dial without looking directly at them-- they are separated by column, but not by row, so sliding from 1 to 4 to 7 can be hard to detect. Also, the buttons are not back lit like my Samsung meaning that dialing in the dark will be a complete pain in the butt. The green "Send" and red "End" buttons are ridiculously over-sized, and I'm beginning to get the feeling that this phone was designed for the finger-dexterity challenged population - a group that is sadly becoming the majority in America.

The headphone jack is exposed, so expect it to get gunked up over time; but I guess they're counting on you buying a more expensive bluetooth headset rather than use such antiquated means as a wired headset. For some reason it has a dedicated voice-memo button on the outside, which I guess is good if you're into that kind of thing, but I've only ever met one person that was. Below the voice-memo button is a little lightning bolt power symbol for unknown reasons, it's not near the bottom of the phone where you plug in the charger; I guess it just looks cool or something. The antenna is the external nub antenna, but does not extend at all.

Overall, I'm not very impressed, and I haven't even used it yet. A large part of me wants to wait and continue using my Samsung until it dies, or the battery life becomes intolerable. Why American consumers keep putting up with such crappy, piss-poor designs is beyond me. Who knows, maybe once I use it a few times I'll like it more, but I think for now I'm going to hang onto my Samsung.

Friday, January 19, 2007

The Nerdy Runner

I was running in the SFH yesterday and on my second lap they closed the West Annex, so instead of 5 laps to a mile I had to do 7 laps per mile. But I had already run 2 of the 5 laps. So I did the calculation in my head to determine precisely how many laps I would need to do on the small track to make my two miles.

1/7 = 0.142... (I only calculated it out to three decimal places, have you ever tried to do long division in your head while running?)

2/5 = 0.4

3/7 = 0.426

So I switched from already having run 2 laps (in fifths) to 3 laps (in sevenths), and added a partial lap to make up for the missing 0.026 miles.

Unfortunately during that time my iPod didn't play "White and Nerdy", but that would have been very appropriate.