| Date: | 2007-12-06 21:57 |
| Subject: | Gmail is Cool! |
| Security: | Public |
Integrating google calendars with mail:
It saw that there was a meeting on Monday and automatically offered Monday December 10 and a topic! Sweet.
| Random Rambles 20 most recent entries |
Integrating google calendars with mail:
This feels so weird... making a new post and all...
Coincidences of coincidences: my ID finally arrived and on my 21st birthday. Too bad I don't really have any friends that drink, so a bar crawl is sort of pointless anyway. I'm just amused by the timing. post a comment
Last weekend a SUNY Potsdam CS alumn donated a few old servers to our ACM chapter. A few Dell servers and a Sun Enterprise 3000. Fortunately, as far as hardware goes the sun server was mostly working from the start. We didnt' have a Sun monitor or keyboard, so it was a bit hit and miss at first getting GtkTerm to connect to it properly over the serial port, but we eventually got it. We then found out that half the memory on one of the CPU modules was incompatible. Removing that we were finally able to boot. The solaris installer was a real nightmare. I had to redo it a few times. By sunday afternoon, though, I had a working system running. Since then I've been installing software such as Apache2, MySQL, and PHP 5. My original plan was to make this a web server that CS students could experiment with. The campus provides web space, but you can't use any scripting of any kind. This way people could use PHP and cgi as they wish. I didn't find out until the other night, though, that it only has 512 MB of RAM. That's really not enough for MySQL and PHP, so the whole thing is really not anything more than a toy.
I was just reading my most recent post (from Jan 3) and realized an update is in order!
I hate the bus trip from Maine to Potsdam. I left on Monday at 6:45 PM and got into Potsdam at 8:00 PM last night. Fortunately we made a stop at Borders before my bus left, so I had some stuff to read. I got Wintersmith, a new Terry Pratchett book. I love these books about Tiffany Aching, she ranks right up with Rincewind and Death as my favorite Discworld characters. I wish it had been a much longer book though - it only lasted 7 hours out of my 25 hour trip. The absolute worse part about the bus trip is the 7 hour layover in Boston. It's not long enough to warrant getting a hotel room (which would be quite expensive anyway in my opinion anyway) but it's nearly impossible to get any sleep at the bus terminal. I tried using my big duffel bag as a bed, which worked on one trip, but didn't this time. So I usually end up spending the next day sleeping on the bus. It's not a very good sleep, and I've been sick with a cold so I'm still exhausted and feel like I could sleep for a week (if I could breathe, of course). I woke up a lot last night too, though, because of my stuffed up nose and exploding sinuses.
Building the interface for my herb database proved to be much more difficult than creating the actual database. I've completed it though (well, I don't think there's anything else I want to do with it...) and am happy with the result: http://beam.to/hotaru/herbarium.php. post a comment
I thought I'd work up a nice AJAX driven interface for the herb database I created for my Discworld MUD website. The first problem I ran into was a poorly formed SQL query which gave me a cryptic error message from PHP. That was easily fixed after just a bit of web searching. I've been wracking my brain over this ajax problem for a couple of hours now. It simply doesn't update. I don't understand at all because I used a test php script that just echoed the variable sent to it and it worked perfectly. I have no idea what the problem is now, but I'm going to leave it for a bit and come back later. post a comment
I was reviewing the functional dependencies of the merit badge schedule database I created yesterday and I realized I had a mistake:
For a while now I've desired to know how to design a relational database for a number of different things. Databases are simply a very important part of IT and are used in so many ways on both small and large scales, it seems it would be very valuable to have some understanding of them. Earlier this year I installed PostgreSQL on my laptop and played around a bit. I didn't succeed in doing much more than wrap my head around the idea of a table, though. I also played with the database module of OpenOffice.org in an attempt to create a new database to manage the merit badge schedules at Camp Roosevelt[1]. # Poisonous herbs of the Discworld MUD CREATE TABLE `Solvents` ( `solvent` VARCHAR( 30 ) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL PRIMARY KEY ) ENGINE = InnoDB; CREATE TABLE `Herbs` ( `herb` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL PRIMARY KEY, `solvent` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT 'water', `effect` VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `desc` VARCHAR(300) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, FOREIGN KEY (`solvent`) REFERENCES `Solvents` (`solvent`) ) ENGINE = InnoDB; CREATE TABLE `HerbSources` ( `source` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `herb` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, FOREIGN KEY (`herb`) REFERENCES `Herbs` (`herb`), PRIMARY KEY (source, herb) ) ENGINE = InnoDB; I used MySQL for this since that's what's available from my web host, but there are a number off annoying things I've found about MySQL. First, to use the REFERENCES predicate you must select the InnoDB engine for the table (default is MyISAM). With the default engine MySQL silently ignores the REFERENCES predicate. The next thing I found was that even though (to my knowledge anyway) foo REFERENCES bar is valid SQL, MySQL will only support it using the syntax FOREIGN KEY (foo) REFERENCES bar. Perhaps I wouldn't be as irritated by this if I had known about foreign keys better, but this proves that Joe Celko's book is a bit out-dated (1995) since foreign keys weren't mentioned at all but REFERENCES was. A more important database, of course, would be the merit badge schedule for Camp Roosevelt. I worked on that this evening, starting by drawing a E-R diagram to get a sense of what tables I would need and how they were related. I'm learning that how you want to display and retrieve information isn't necessarily the best representation of how to store it in the database (I'm sure that sounds incredibly obvious to anyone who has designed a database before, but it was the hardest concept for me to understand). # Camp Roosevelt Merit Badge Schedule CREATE TABLE `Troops` ( `number` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `weekAttended` TINYINT NOT NULL, `leader` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `town` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`number`, `weekAttended`) ) ENGINE = InnoDB; CREATE TABLE `Scouts` ( `lastName` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `firstName` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `rank` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `troop` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, FOREIGN KEY (`troop`) REFERENCES `Troops` (`number`), PRIMARY KEY (`lastName`, `firstName`), UNIQUE (`lastName`, `firstName`, `troop`) ) ENGINE = InnoDB; CREATE TABLE `ProgramAreas` ( `area` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `director` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, PRIMARY KEY (`area`) ) ENGINE = InnoDB; CREATE TABLE `Sessions` ( `badge` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `time` TIME NOT NULL, `section` TINYINT(1) NOT NULL, `programArea` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, # Other possible rows may include ``maxSize`, instructor`, and/or `duration` PRIMARY KEY (`badge`, `time`, `section`), FOREIGN KEY (`programArea`) REFERENCES `ProgramAreas` (`area`) ) ENGINE = InnoDB; CREATE TABLE `Schedule` ( `lastName` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `firstName` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `badge` VARCHAR(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL, `time` TIME NOT NULL, `section` TINYINT(1) NOT NULL, FOREIGN KEY (`lastName`, `firstName`) REFERENCES `Scouts` (`lastName`, `firstName`), FOREIGN KEY (`badge`, `time`, `section`) REFERENCES `Sessions` (`badge`, `time`, `section`), PRIMARY KEY (`lastName`, `firstName`, `badge`) ) ENGINE = InnoDB; As you can see, this is a slightly larger and more complex database than the herbal one. I'm fairly happy with it for now, although I've realized I may have to alter it a bit. For example, if a merit badge section is removed from the Sessions table I would like all references in the Schedule table to be removed as well. Same with a troop and its scouts in the Troops and Scouts tables respectively. I am concerned, however, with how I've handled the problem of different schedules each week (each troop generally visits camp one week out of 4, so each week we have a different group of troops attending). I don't believe that including week information in the Sessions table will make my SELECT queries any simpler, although I haven't given it that much thought yet. My next step will be to start writing some PHP interfaces for these databases. This part should be fun and I think I might incorportate some AJAX to make it that much cooler. On the whole I'm feeling rather proud of how much I've learned over the past few days, even if it may appear meagre to outside eyes. [1] Camp Roosevelt is a Boy Scout camp I work at. For the past 6 years I've worked at the Nature Lodge but starting next summer I'll be working as a Program Director for the entire camp. This is very exciting for me since the camp feels like a second home to me and I'm very passionate about the experiences we provide. [2] I like the idea of a "smarties" book better than a "dummies" book, although in this case "dummy" would probably have been more applicable for me :) Note that the edition linked to is current (2005) but I have the 1995 edition. 3 comments | post a comment
I'm a little upset with my parents right now. Last Friday I added some minutes to my Tracfone after about a week of not being able to use it and I found I had a voicemail from my Grandparents. Apparently they had stopped in Potsdam on their way from Wisconsin to Maine. Since no one told me they were coming, though, I had no idea they would be around. So I'm a little upset I missed seeing them.
I think I've finally found the right major. Our first programming assignment for CS II was due this past Friday. I had finished it the weekend before and worked on the extra credit portion this past week. I made my final submission on Friday, then immediately searched the Classes directory of the computer science server for the next assignment (it hadn't been posted online yet). I didn't start working on it until about 3:00 AM Saturday, but I had it very nearly finished by 5:00 AM. Anything that can get me to stay up until 5:00 AM is a good thing. 1 comment | post a comment
I'm feeling a bit more "moved-in" after a couple of days cleaning various parts of the apartment. I have to admit that it wasn't a very pleasant smelling place when I got here, but it's a lot better now that I've cleaned the kitchen and bathroom - oh, and removed the dead bat. It's been a pretty uneventful weekend besides that.
After seeing graphics on my iBook again I got really excited and started putting it back together. I got the top shield put back on and decided to test it again, just to be sure. And did it work? Of course not. After some asking around I've found out it's most likely a components called the reed switch/inverter which connects from the motherboard to the screen somehow (I can only see the long grey part of it). Sure enough, I wiggled it around just a little bit and the screen doesn't show anything again. This is really depressing. I'm determined not to spend any money on this machine since it's getting pretty old, and while taking the top and bottom cases off wasn't too bad, I don't think I want to deal with repairing the display assembly. So, though you've been a great tool, it's time to say "so long", iBook. post a comment
A couple of weeks ago I finished working at camp, went home, relaxed. When I tried to use my iBook however, the graphics went all wonky on me then went kaput (yes, highly technical terms there, I know). This made me very said because when I booted the iBook again I got absolutely no graphics - the fans ran, the hard drive spun, and I even produced sounds once the OS booted, but no picture. I was hoping this computer, while old it may be, would at least last me a few more years.
So this past Saturday I hopped on a bus and came back here to Potsdam. The plan is to work full time and take classes part time so I can establish residency and actually be able to afford to go here full time and earn a degree. I just found out that the job I thought I was going to get is actually not going to be offered (I was going to replace a guy who's leaving the IT department on campus) and the best I can do there is work part time as a student assistant.
None of my options are very good (in my opinion) but I'll have to take what I can get I guess. post a comment
On Sunday my mom, sister, a friend of hers, and I went to Bangor to see The Da Vinci Code. I read the book earlier this year and really liked it, but I made a point of not reading it again just before seeing the movie. I did that with The Two Towers and it totally ruined the movie for me (they hardly followed the book for that movie). I'm extremely impressed, though, with how closely this movie follows the book.
An intelligent conversation on (wizards). I attribute it to Elanor being absent.
My parents are pulling the plug on my internet connection [1] so if you sense my disappearance that's why. I've blown another semester and apparently this will fix the problem. I might be able to make an appearance every now and then, but I doubt it.
YAAAAAAAAY! WEEKEND-WEEKEND-WEEKEND-WEEKEND! |
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||