Content-type: text/html Set-Cookie: cookiehash=D8TIX1F9GET8DML97LCWDC1UDL31CF7Q; expires=Wed, 23 Sep 2020 00:00:00 GMT; path=/; domain=.drivemeinsane.com
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
The Fifth Week
February 01, 2009 17:19
Most of the updates this week have been to the administration side and other background functions that aren't immediately obvious. I've also added a number of new sound effects for various site activities, but once again, that mostly happens over here and unless you're listening, you're not going to notice anyway.
Work continues on other projects still. I'm continuing to work on the server stub and I'm discovering that an object oriented approch would make the whole thing cleaner. I'm not likely to apply it at this point to the current projects, I've got way too much to redo if that were the case, but it's something to consider for the future.
I've got a Davis Weather Monitor II here that has nothing hooked up to it, but it can display the internal temperature. I'll need to add sensor support to lampmaster so I can feed the temperature data back to the server. I need to do this anwyay for sensor information from the critter, but I'm holding off on any additional structure changes until the server stub is complete.
I've spent some time playing with Visual Studio 2008. I've attempted to load some projects from previous versions, such as the source for Dorgem and Webcam 2k. Both of these have successfully compiled and run on previous versions, so I know the code is intact, but Microsoft's lack of backward compatibility in this regard is... annoying at best. I'm sure I've griped about it before, but this bugs me. Anyway, I'm probably going to code my own webcam server from scratch, specifically one that can make a connection to a relay server, in addition to accepting incoming connections like the typical webcam server does. I'll go ahead and integrate lampmaster functionality within it at the same time. If it's extremely easy to implement, we will likely get more cams on the site. There are plenty of people that lose interest before they're able to get one up and running. Firewalls and port forwarding is a common obstacle, and one that is difficult to diagnose and solve from the outside. With a simple software package in place, I might consider selling DMI packs, a kit including a cam and some lamp controllers of some type that can work out of the box. I will likely GPL any released project.
January 25, 2009 16:36
Well, I worked on quite a bit this week. Not anything that I really PLANNED to work on mind you, but quite a bit.
The news page and top referer page have RSS feeds now. There are a few new icons on the page, replacements for old ones that had been there since the dawn of time. I've fixed a number of annoying bugs that had persisted for a while. I also added a bunch of sound effects to other site activities, and I have a bunch more to add in the near future.
Due to the gradually increasing traffic, the overhaul of the database is becoming a top priority. Lampmaster is becoming a major bottleneck due to its socketqueue design instead of a multithreaded one. If any part of a routine blocks or hangs, it will hold up the whole program. So, getting that updated is becoming extremely important. HOWEVER, I first need to get the main serverstub complete. While all of the actions are functional, I still need to run it through some more tests, and I'd like to export as much of the functionality as possible to a library that can be easily used by all the programs, instead of copying the entire program itself and making individual modifications. That would also make changes to one program automatically update in all the others.
My concern here is that I'm trying to design a standard protocol for the passing of data between the various database programs. I want them all to use the same format for everything, from individual queries to loadbalance server updates. I want to be able to make the individual server programs as simple as possible and draw as much as possible from a standard database of functions. Since I have about 20 different new databases I need to create, to convert from various other database systems and flat files, and many more on the horizon, I want to be able to create a new server and client interface and have it operational in a matter of minutes. Therefore, the time spent up front on this is worth it, but it's not sexy, it's boring, and nobody notices the progress, so it tends to not get the effort that it requires. But it's absolutely necessary so I need to shift my focus, and soon.
So, my primary project for this week will be to get the serverstub finished and functional, and hopefully streamlined so it's as portable as possible over multiple applications. Keep adding things to the projects page, I'll pick up on a few of those when I get tired of the server programming.
January 24, 2009 16:57
Most of this goes on behind the scenes, but you might occaionally glance at a URL and wonder where the heck did I come up with the name of the page or script. Sometimes, I manage to confound even myself, but I will try to trace back the origins of some of the names you might see, and others that you don't.
Visitors. These are what I call people who VISIT the site that have accounts. Those that don't have accounts are called Anons. But why call them visitors instead of accounts. And on the page I actually refer to them as profiles, which actually makes more sense. But visitor is the standard programming reference I use everywhere. The reason for that is because several years back before anyone had accounts, I had a manually edited visitors page. One for people that had visited the house, and one for people who hadn't but sent me pics. You can view those original pages here for house visitors and here for site visitors. Anyway, as I adapted these pages to a dynamic format, the visitor name carried on.
My obsession with the DAT suffix and use in other places. dathtml and .dat specifically. .dat is, for all practical purposes, my own personal filename suffix. .txt is used for unformatted text files. .xml is used for xml formatted text files. And .dat is binary files. If I don't put the .dat suffix on it, or some other suffix, then I'm not using it in any of my programs. Anyways, with regards to dathtml (which is the Webcam Management Page), I originally stored all the webcam data in a text based file which I would manually change as I added external webcams to the site. After about 20 of these, I realized it was going to be more trouble for me to do that than it was worth, and so I created a binary format and a page to edit them. I renamed the file webcams.dat and as I needed an html editor, I called the page dathtml. That name has just stuck ever since.
In programming, most people like to use i,j, and k for counter variables, I always use x,y, and z. if I need more, I encroach upon w,u and v. s and t are always strings, except sometimes I use t for the time variable. If I need several temporary strings, I'll use s1, s2, s3 and so on. I especially do this if I'm parsing a few words out of a string. If I'm parsing a large or unknown number of words from a string, I use a array of strings called words.
There are others I'll get to eventually.
January 18, 2009 18:18
And as I wait for the minutes to tick off of the last hour of what remains of my long weekend, I shall review the last week and plan for the next. As with the week before, I didn't accomplish everything I set out to do, and I feel I didn't even accomplish as much as I had the previous week. I seriously MUST do something about all that. Anyways, here's a recap.
Nova and Amadeus are still in operation. Amadeus now has lampmaster control and I've started the process of moving files off the internal drive from Nova to Amadeus. Since I'm moving one file at a time and deleting what I don't need as I go, this is taking a little while. I suspect I will be done with it by the end of the week though. I also need to move over the other external HD that is currently hosted off of Nova. I'm probably going to need a USB hub for all of this. I HAVE a couple USB hubs, but the last time I tried using one I had issues. I'm not sure if that's a problem with the hubs or a problem with Hal, the computer I was trying to stuff an ungodly number of drives onto. I also was attempting to do all of this without the properly included power supply, so all bets are off there. I'll make a new effort this week to get that functional again.
I haven't exactly drawn up a map of all the computers on my network, but I've at least gotten them listed in a table. You can see it what I have so far here.
I've (mostly) cleaned off my desk. That's the extent of the cleaning process so far and I've made no efforts so far on electronics organization.
I've made some minor programming changes to a few of the dynamic pages. The administration page is now available to everyone who has a cam on the site, although the data is limited to just those who are watching the cam. It does provide a convienent way to respond to the viewers other than using the chatroom. I am however currently having an IE issue with the ajax code on the page and need to get that solved before I deploy it to everyone.
The critter lost a wheel. I've been debating taking the opportunity to pull off the two back motors and replace them with casters to see if the critter has better mobility. On a flat surface it won't be an issue but there could be problems climbing over the thresholds. It will also mean a reduction in power as it'll be reduced to only one motor per side instead of two.
For the next week, I'm going to try to just finish the current projects that are in the queue. I'm going to have more new ones to add shortly, but I don't want to get too far behind.
January 16, 2009 21:10
As part of this historic anniversary coverage, I'm going to discuss some things I tried or planned to try that didn't work properly or as intended, and hopefully why.
First, some thoughts on my project planning routine. In the past, I used to think of things all the time, and I would promptly tell everyone about it. Mostly I was looking for feedback, but it's nice to get a little motivating boost from people too. Some people think every idea you have is great, and others think every idea you have sucks. Very few people can actually offer any input on the idea beyond their superficial opinion. However, if I'm pursuing a project and talking about it frequently, it can have the unfortunate and unintended side effect of hyping something that might never actually come to pass. My own personal vaporware.
So long as I actually finished enough stuff in a timely manner, it wasn't a problem. However, as I got busy with things, especially the house, there came a point where it was enough just to keep the site running, and adding new toys and features just wasn't going to happen with any regularity. That didn't stop the flow of new and interesting ideas, but I found myself getting increasingly annoyed ... mostly with myself, as I would have all these great plans and I'd be accomplishing none of them. So I quit talking about the projects I was working on and my motivations and intentions for doing them. This also can have some unintended side effects.
The first example of something that didn't work as I had intended were the social maps. You'll notice this map on everyone's profile page, although most people only have a single dot. The idea is that you can establish links between yourself and another user on the site and define the nature of your relationship with that person. You define if you're related, or if you're friends, or merely aquaintances. My original intent for this project was, assuming I could amass a large enough database, would be that you could establish how you are connected to people you know online, if you only could link yourself via established offline relationships. For example, there are thousands of people on this site, and we all "know each other" to some degree or another online. However, I know fewer than a dozen people on this site that I actually met in real life as opposed to meeting them online.
Lets use a fictious example: 5 people on the site, named Bob, Mary, Greg, Joe, and Sue. All of them know of each other on the site. But in real life, Bob and Mary are friends. Mary and Greg are friends in real life, but Greg and Bob aren't aquainted. Greg knows Joe, and Joe and Sue are friends. Now, we want to know how Bob and Sue are linked. Obviously if you use the site as a common link, they know each other directly, but if you take away the site, how are they linked together. There'd be a 4 stage link from Bob to Mary to Greg to Joe and finally to Sue. I would then superimpose this social map over a geographical map and it would provide some interesting, if otherwise useless, visual effects to help establish the nature of our relationships with each other. Obviously, my goals were somewhat lofty in this regard, but that was my intention. People, however, decided to take it upon themselves to interpret things another way.
To avoid overcomplicating the issue, I referred to friends that had initially met each other in real life as "Real life friends". Friends who initially met each other online I referred to as "Online friends". Note that neither label implies that one type of friend is a "better" friend than the other. They aren't labeled as such to denote the quality of the friendship, as somehow "online" friends just arent' as good as "real life" friends. People are weird creatures when it comes to social matters though, and insisted that if they so much as met once, they're real life friends and got quite insulted that I would have the gall to imply otherwise. So instead of the useful map that clearly showed a online vs. offline relationship between people, I instead got a huge rubberband ball image where everyone is "best friends" with absolutely everyone else, despite the fact that wasn't the intended meaning anyway.
Of course, I may not have properly communicated my intent. I made the distinction between the options clear enough, but not WHY it was important. And sadly, there's the chance that people would aim to intentionally sabotage the results even if they were fully aware of the actual purpose, just because they want to sample a what-if world, applying spreadsheet mentality to the social relationships in their lives. Apparently, doing an end-run around human nature will require more deviousness on my part, or a simple acceptance of the fact that reality has little chance of making a strong impact in any experiment where people control the data or the outcome.
Of course, that is the problem with any new gadget. People will find ways to use it that you hadn't thought of or anticipated. Most of the time, such things are harmless, but sometimes they can damage or destroy what you were trying to create. It's an endless battle.
January 14, 2009 07:35
This, while perhaps not the most frequently asked question, is certainly in the top 5. I'm not sure that people are really interested in the answer, but more likely they feel compelled to ask me SOMETHING and that seems like a safe, non-offensive question with a potentially interesting answer. However, the question is extremely vague and yet they want a specific answer.
The answer I typically provide is "11 years." I base that from the point in August of 1997 when I first set up a webcam. However, a more important date would be December 22, 1998. That is the date I set up the first controllable lamp. I had the doorbell interface functional several months prior, but that wasn't interactive from the webpage like the lamp was. So the 10 year anniversary of this truely epic event has passed us by and I didn't even realize it until now. Of course, I don't tend to harp on these things, but I figured it was noteworthy enough to mention, even if it's a bit belated.
In light of this historic occasion, I'm going to spend some time discussing various events of the past 10 years, as well as feelings, motivations, and future outlook.
January 11, 2009 14:03
Well, I didn't accomplish everything I wanted to this week. Surprise.... surprise. However, I did accomplish SOME of the things I wanted to, so that's at least some small comfort.
I got the screamer working again. As I detailed earlier this week, that process was somewhat more complicated than I had been hoping, so it took more of my free time to implement. However, it's up and running now. I'm hoping over this week to migrate the storage from Nova to Amadeus and to move the firecracker over as well, along with the lampmaster interface. Once that's accomplished, Nova will no longer have any active functions and I can pull it from the cabinet and move Amadeus into its place. Nova will then be the test platform for the next computer.
I have found at least 2 HD's, one 40gb and another I think 80gb. I have no idea what's on them, likely nothing of particular interest. However they can be used as the base drives in at least 2 more servers. I'm going to want to set up one server as a test platform for my electronics projects. A system in the living room would be nice too. I have the room networked, and that's where I've been doing my system building, but I'd rather do all of that in the office. Less mess out there and all that.
I need to clean the office. Clearing all the clutter off the desks will take about an hour. No problem there. It's my workbenches that are the issue. I've made some headway with creation of the server cabinet. I have a lot more available workspace to actually WORK on, as opposed to before where the entire workbench was a multilayered horizontal storage system. I still have a lot of clutter to clear off of there and at least put on low shelves or something to get them off the tables so I have at least 6 ft on the one table and 3 ft on the other to work. Some table space will be needed for the scopes and a workstation for that location, but even those I might possibly move off onto shelves. We shall see.
To complicate that plan further, I need a long term organization plan for my electronics devices and components. Right now, at least for the larger stuff, I've resorted to stashing stuff into bins and stacking them in the closet... and other places. That works for bulk storage, but I have no idea what I have, and anytime I'm planning out a new project, I only can vaguely recall that I've purchased some components at some point in the past, but I wouldn't know where they are. I've got about 5 component storage systems available to me, I just need to organize them in a useful fashion as well as develop and maintain an inventory detailing my current quantity, location, and cost and resource to purchase more. I want something as useful as your average component shop for finding something, although I need to compress it to fit in the confines of the office and do so in a pleasing and non-cluttered way. I'll likely start a new project and documents to discuss this plan further.
As for the extra workstation in here, it won't need to be high powered, but at the moment, I'm a bit short on monitors. They don't seem to last as long as the rest of the components, but I should have a few working ones at my disposal SOMEWHERE that can at least handle a text screen, which is usually all I'll require. Marjorie has been spending more time in the office with us... usually co-opting my computer in the process to play Sims 2 or play with the website, and I'm certainly not going to discourage it. However, it's annoying because, as you would expect, people send lots of messages and ask lots of questions whenever there's a cute girl around, so I need to have another system available so I can quickly and easily respond.
I'm going to create a layout image that will show all the computers on this network, their location, their ip addresses, purposes, and other relevant information. Also how they're wired to the network. And I'll include all the other devices that are interfaced, such as the lamps and the tv-out interface for channel 90. Some people, including people that live here, have questions about it, so a nice diagram would be helpful.
I'm going to take a trip to Longview on Thursday or Friday, so that'll kill a day that I won't likely get much accomplished.
I didn't get anywhere with the critter and music control issues, so I'll plan to work on them this week. I also need to pick a schematic for a PIC programmer and plan to build one.
Yes, I've rambled a bit, so for this week, my plans are to accomplish the following:
Updates will be forthcoming. Take care
January 10, 2009 14:18
The scream machine is now up and running again. I now have a 4th server is the cabinet. As ELSD|MyUglyAdmin had recommended and I had already discovered, the CPU fan had a tremendous amount of caked dust caught under the fan blades which pretty much prevented any airflow. I carved the dust boogers out with a screwdriver and blew out the smaller bits, resulting in a pile of gunk that any belly-button lint collector would be proud of. No, I didn't save it or take a picture. My bad. I only just now thought of that. Too late.
Anyways, the cpu now hovers at a comfortable 40C so there's no more worries about overheating. Although the initial plan was to completely replace Nova, I have decided to instead have the 4th server running and I'll slowly move over all storage and functionality to the new one. Once that's done and Nova is no longer in use, I'll remove it from service and leave Amadeus (the new server) in its place. I DID design the cabinet to hold 6 servers.... well, 9 actually, but 3 of the positions are taken up by the laser printer. However, since I didn't put this contraption on wheels, I have to actually drag it to do any changes to the wiring. This is something I'll definitely have to consider for the next incarnation of the cabinet. Assuming the cabinet will be a permanant structure, and at least one side will be facing a wall, I'll still need to be able to access the back side of it. Somehow. Oh well, crisis for another day.
Doing a bit more research, what I thought was a PIC programmer wasn't a programmer, just a device that uses a PIC. However, I DO have the PIC still, so I need to build a programmer. Today, I'm going to work on some other site programming. Not sure what yet.
January 08, 2009 08:49
I'm still working on reconfiguring my old nt box to use for the Nova replacement. First off, I wanted to be sure I got everything off of it that I wanted to save. There are two HD's in there, and since I had a C drive and E drive on that computer, I mistakenly believed that the second drive was the E drive. So I cleaned off the E drive, moved everyting to the server(s) that I wanted to save, and then tried to install FC10 to the second drive, but it kept responding that the disk was only 6 gigs, which was extremely odd since I had at least 40 gigs of stuff on there. So I figure the OS must be flaky, so I try to install Redhat Enterprise 5 instead. I'm using that on the main server, so it'd be nice to have a local system that is running the same platform. It ALSO thinks the drive is only 6 gigs. Eventually I figure out that C and E were two partitions on the same drive. So I go through and make sure everything is saved off the C drive as well, and format and prepare to install FC10 (yup... bounced back), only it wouldn't initialize my network card (internal onboard) even though it recognized it. I switch back to RHEL5 and it DID recognize it, so I went ahead and completed the install. That only took 3 days.
HOWEVER. It's all installed, it's running... and the cpu temp is slowly creeping up. like 1 degree every 10 minutes or so... but it adds up and after running for a few hours, it gets up to the 90C range and starts whining about it. Eventually it shuts down. Well, that's a bummer. The CPU fan IS working... spinning at 4000+ rpms, or so says the hardware monitor, but it IS getting awfully warm, so I'm going to try to dream up a CPU fan I can use on it that might work a little better.
We've gotten several new people and cams over the last few days, so everyone check out Bombert, Marie, Polk, and Trainman45. The old guy on that last cam doesn't talk back. We've also had some old regulars return, so be sure to also check out Squeaks, jotdot, ADUK and Niek. Several people now have controllable devices too, so things are looking up.
January 05, 2009 10:50
Short update for now. I have the projects page functional again and I cleaned up (I think) all of the spam. It now REQUIRES an account that is at least 1 day old to add a new project. I'll add captchas soon, but for now, we should be in good shape. Going to sleep now. I'll see what else I can come up with later.