Oct 29

Well, I've been busy playing with Lisp, and I've created the beginnings of a full-featured blog, written entirely in Lisp using the Kpax web framework. Currently, it allows you to post and delete blog entries, you can also view individual blog entries. It's around 170 lines of (probably horrible) Lisp code including comments. I intend to continue development on it, and also write a kpax-cgi interface library, so you can write kpax applications and use them on standard Lisp CGI hosts (like Nearly Free Speech). You can see the blog in action here and you can download the code here.

 

                             Peace and chow,

                                 Ranok

Oct 25

After playing Tremulous for a few weeks, and administering two servers, I've gleaned some knowledge that other may find useful if they're running their own server. Here is basically a dump of what I've learned, in no order:

  • If you're trying to add new maps, download the .pk3 files and put them in the same directory as the other maps. You can then add the name of the map to maprotation.cfg, but make sure that you don't forget whatever comes after the name (i.e. procyon-beta3 rather than procyon). Also you need to make sure the variable sv_pure is set to 0.
  • If you want to enable cheating (/give funds x) you need to choose the map using the command /rcon <rconpassword> devmap <map-name>.
  • To make a team evolve, type /rcon <rconpassword> set g_<human|alien>stage <0-2> (regardless of whether there are cheats enabled or not).
  • When all the buildpoints go away, it's not a bug, it's sudden death mode kicking in, which can be disabled by setting g_suddendeathtime to 0
  • The dedicated variable tells the server whether or not to ping the master server so it'll show up when people list Internet servers. If you want to keep your server private (though people will be able to connect to it if they have the IP/hostname) set it to 1, otherwise 2.
  • To color your username, prefix your name with ^(0-9)
    1. 0 - Black
    2. 1– Red
    3. 2 - Green
    4. 3 - Yellow
    5. 4 - Blue
    6. 5 - Cyan
    7. 6 - Pink
    8. 7 - White
    9. 8 - Black
    10. 9 - Red

Hope this helped.

 

                 Peace and chow,

                           Ranok
 

Oct 24

After this gets posted, there will be no doubt, I'm an evil computer science student, I loathe annoyances as they remind me of seg faults and core dumps, I can't stand spam like I can't stand useless log entries to dmesg, I am heartless. But, now that everything is out in the open, I will share some of my dirty little pleasures that I derive so much fun from:

  1. After a certain professor used 'clearly' to show how simple some things are (sometimes, they are about as clear as mud), I've decided to use clearly, followed by a bogus fact or proof, as no one would refute a 'clearly'.
  2. This one is for those distant relatives who have your email, but nothing important to send you, so they just forward jokes that got forwarded to them. My favorite response is to start forwarding spam I get to them, so they can feel as special, and as loved I feel when I get pictures of dogs in funny hats or chain letters Innocent.

On a completely different note, I've fallen completely in love with Lisp, sorry, but now it seemes that everything in the world is just a list waiting to be LOOPed through, car'd or cdr'd. It's just like the XKCD comic, last night I was drifting through parenthesises and recursion, free of syntax and compiler restrictions.

For a COSI project, I'm thinking of playing with Ubuntu and thinclients, perhaps I could make an Ubuntu build that could be managed easily, and stay up to date.

 

                 Peace and chow,

                                      Ranok

Oct 18

After getting frustrated with the dumbing down of Gnome to make it easier for the new user (but more frustrating for the more experienced one), I've left Gnome, and along with it, Compiz. I've moved to XFCE, and couldn't be happier, it loads quicker, looks cleaner, and works better with my GNUStep applications (GNUMail, Cyntiune, ProjectCenter). I've moved away from the more mainstream applications (Thunderbird, Openoffice, etc…) to the less known programs. I've done this for two reasons, one, they generally cater to to the more experienced users who know what they want, and how t make it that way, and I feel that I should be able to make a choice about the software that runs on my computer. Also, it lets me determine what I like about different programs.

    So far, the following applications I've found seem to be better (IMHO) than their mainstream counterparts:

  • GNUMail - Replaces Thunderbird, has some cool features that allow for mail to handled by external programs, and displays messages like GMail with threads.
  • ProjectCenter - Lets me use Objective-C and the GNUStep libraries, andis much less bloated than Eclipse.
  • Cythiune - Replaces your favorite media player, includes builtin support for MusicBrainz, which lets you correct the ID3 tags in your collection.

Well, there you have it, if you've found a lesser-known application that deserves it's share of the lime-light, please comment and share it with me.

 

              Peace and chow,

                          Ranok
 

Oct 15

    Today is blog action day, which a kind of study to see how much of an impact the unified front of bloggers can make. This year's topic is the environment, which is a very important issue in my mind.

     The current state of the environment is not looking good, this is mostly because of the lack of centralized push for newer standards. The problems lie with the big corporations that control the government and are afraid of changing the status quo. They claim that cleaning up their act will hurt the economy, but the companies that do inovate, and use less energy in a more efficient ways tend to do very well. I know as a consumer, if a company is green, I will pay a premium for their services or products. For example, if there was a second food service provider on campus besides Aramark that charged a little more, but offered locally grown (organic?) food, that wasn't served in styro-foam, I'd gladly pay extra, and feel good about it (as would my GI tract).

    Since the government is doing nothing but wasting money and causing problems, the change needs to come from the business owners, don't be afriad to change the status quo, the consumers are waiting for you, be brave, and you will reap the benefits (and feel all warn and fuzzy too).

 

              Peace and chow,

                    ranok
 

Oct 8

Well, after playing around with Gutsy for a little while, I started looking into AppArmor, a software restriction tool. It's quite similar to SELinux, though easier to use (and faster according to their site). AppArmor lets you specify which files/folders an application can access while running, so if it is comprimised, it can only access files that it should (i.e. Apache looking at /etc/passwd). There are a few pre-made profiles for that can be installed by typing:

    sudo apt-get install apparmor-profiles

From there, you can view the status of AppArmor using the command:

    sudo apparmor_status

Which should return somethin like this: 

apparmor module is loaded.
15 profiles are loaded.
9 profiles are in enforce mode.
   /usr/sbin/ntpd
   …
   /usr/sbin/named
   /usr/sbin/avahi-daemon
6 profiles are in complain mode.
   /sbin/klogd
   ..
   /bin/ping
5 processes have profiles defined.
3 processes are in enforce mode :
   /usr/sbin/avahi-daemon (4958)
   /usr/sbin/cupsd (4595)
   /usr/sbin/avahi-daemon (4957)
2 processes are in complain mode.
   /sbin/klogd (4397)
   /sbin/syslogd (4345)
0 processes are unconfined but have a profile defined.

    The difference between enforce and complain is what AppArmor will do when a profile violation occurs. In complain mode, it will log the offense, but let it occur, in enforce mode, it will deny access to that file (and log it). To switch modes for a profile, use the aa-enforce <binname> and aa-complain <binname> commands as root.

     You should probably keep things set to complain mode until you use logprof to update the profiles. Speaking of which, logprof parses the logs for AppArmor violations and asks you what to do about them, allow them or deny. It will also let you widen access using globs, to make it more generic (rather than /proc/17238/foo /proc/*/foo). Once you are done, you are given the option to save your changes. Once you've used to program's full functionality (i.e. Firefox downloads and flash/applets), and finished the profile, you can switch it in into enforce mode. Congratulations! You've added another link onto your computer fence.

    What about adding more programs to be watched? Glad you asked for that there is genprof, simply run as root with the path to the executable you'd like to add, it will see what libraries it requires, and make a simple profile and put it in complain mode. Now rn the program, and use it how you normally would, making sure to test all the features that might access files. Now, go back to genprof, and hit 's', it will show you all the files it tried to access, just like logprof. After adjusting the profile, you are good to go. If you think you did a good job, you can set it into enforce mode, or keep it in complain mode for a while longer to make sure you got all the needed files.

 

    Congratulations! You're now an AppArmor pro! If you'd like more information, check out AppArmor Geeks or the Ubuntu Docs. As an interesting sidenote, I found that Firefox looks at /etc/passwd, though if I block it, it still works fine. While I'm sure there is a reason, as Firefox is open source, still makes you think.

 

                                               Peace and chow,

 

                                             ranok

Oct 8

    Well, in preparation for Ubuntu 7.10 (Gutsy) to arrive, I did what I normaly do, I installed Tribe 5 on my backup machine (Compaq Presario V2000), just to test for any glaring bugs or upgrade problems, and if all goes well, I upgrade on my main machine (IBM T60). I do this, so when the final release comes out, I have less to download when the servers are slow.

    So, the upgrade to Gusty on my Compaq was a breeze, no hitches, everything works fine. It's pretty neat being an early adopter and watching the new version take shape with every update you do. So after a few weeks, once the update were less dramatic, I plugged in my T60, and did the upgrade. I was a little suspicious with it, as it seemed that Metacity was messed up while the update was in progress, however, I assumed that it would right itself after a reboot. After the update had completed, and I had restarted my computer, things started off badly. As it would start booting, it would reach a stage, an then print out endless '[xxxxxxxx] Device Mapper: dm-linear: Device lookup failed'. After looking around the internet for a few minutes, I determined that this is related to LVM, which I didn't use (I had a similar error when upgrading to Feisty with mdadm). I hit CTRL-ALT-DEL, and it continued to boot as normal. The fix I did to make things work properly was to 'apt-get remove evms'. After fixing that and rebooting, I had X11 issues, where it would try to launch gdm, fail, then try again, so it was tough getting to a virtual terminal to fix the problem (there were two Display 1's with different resolutions), however, the tool to change these settings is much nicer now, and can help setup external monitors, which previously needed to happen through a xorg.conf edit.

    So, life is good now,  Compiz is working great (though I can't get it to use the cube setting), as is the new Thunderbird. There are still some bugs to be worked out, (my sshd crashed, along with a number of gnome applets), but I think that this release will really help push Linux out onto the desktop market.

 

                                          Peace and chow,

                                            ranok
 

Oct 1

Hello avid readers Wink,

     Today I got a very rough proof of concept regenerative distributed hash table (DHT) working. It's a peer-to-peer setup. When the client makes a request, it queries the master server (version two will make it true p2p) and gets an address of where the data corresponding to the hash key is. If that server is down, or the server doesn't respond, the client returns to the master and gets the next host that has a copy of that key slice. If that host is up, the client downloads the entire keyslice, and tells the master server that it's now replacing the down host. If there are enough clients making requests, the downed servers should be replaced fast enough to keep the data intact.

    Currently, it will only allow users to query and regenerate, I haven't added any logic to allow for updates or additions, but I'm going to keep plugging away at it. I also want to add some logic into the master server to be able to split up the entire DHT once it's redundant enough, that way each server has reduced strain.

 

                         Peace and chow,

                                ranok