Kirsle.net

Welcome to Kirsle.net! This is my personal homepage where I upload my software projects and other creative works, and it's where my web blog lives.

The site used to be on Cuvou.com but as of September 28 '09 I've decided to move it to kirsle.net -- all the old links on cuvou.com will redirect to their new locations here.

[ Older ]

Charter Breeze

Posted on Friday, March 12 2010 @ 6:47:27 PM by Kirsle
I've recently put together a web design for a friend's business, Charter Breeze - it's a transportation company based in Los Angeles. It's the first web design I made for somebody else that actually went on to become a full website. And it's running the same content management code I wrote for Kirsle.net. :)

Here's a screenshot from the homepage:

Charter Breeze - Los Angeles Bus Rental

Categories: Design

[ 0 Comments | Leave a comment | Permalink ]

KAGE: Multiple Heroes and Maps

Posted on Friday, March 05 2010 @ 9:06:56 PM by Kirsle
Progress update on Kirsle's Adventure Game Engine (KAGE):

Blue-haired Hero
Spiky blue-haired hero...

Red-haired Villain
Spiky red-haired villain! And the debug-mode actor selector window.

I made some new character sprites (the ones pictured are temporary. I created a template spriteset and then hurriedly threw these guys together so I wouldn't have to show naked sprites in the screenshots).

The engine supports multiple heroes now (the blue and red haired guys are the singleton heroes), and multiple maps (each of the singleton heroes are on different maps), and it keeps track of what's happening on each map at all times.

Next on the to-do list: teleporting between maps (and when a singleton is the last one to leave a map, the map gets purged from memory and non-singletons left on it are forgotten about and reset if the map gets reloaded in the future), and animations.

After that: on-screen text and dialogs. Then shortly thereafter there will be a public alpha release of it that you can mess around with.

See other blog posts about my game engine: KAGE.

Categories: KAGE

[ 0 Comments | Leave a comment | Permalink ]

Linux S-Video Nightmares

Posted on Saturday, February 27 2010 @ 2:43:32 PM by Kirsle
Several months ago I decided to convert my old Acer Aspire 5050 laptop into a media center PC, because it's the only computer in the apartment that has an S-video port, and that's the only input my TV will accept.

The laptop has an ATI Radeon Xpress 1100 (a.k.a. Xpress 200M), and it seems that just months after I bought this laptop a couple years ago, ATI obsoleted that card. So, I've been using just Windows XP on the laptop since converting it to a media center PC, because getting the S-video to work in Linux with the obsolete/unsupported drivers was a nightmare.

Windows, however, annoys me. I'm using the VLC Player for my DVD-playing needs, because it's pretty much the only program I can get to actually play DVD's. But it's annoying, and half the time when I start up Windows and tell VLC to play my DVD, VLC starts crashing the whole system really hard and forcing a reboot. I'd much rather have Linux around for situations like this.

Today I installed Ubuntu 9.10 on the laptop. I would've installed Fedora 12, but I don't have any LiveCD's handy at the moment. I installed it in a dual-boot way so that Windows XP is still there if things blow up.

So far, I'm pretty sure I'm using the default drivers Ubuntu picked for my video card, unless me installing "atitvout" accidentally pulled in the fglrx drivers or something. So it's either radeon or fglrx right now; I dunno which.

Anyway, the S-video port doesn't detect the TV at all without some manual fscking around with it. I eventually found a collection of xrandr commands I can run to force it to detect the S-video port and add an 800x600 mode to it and a couple other things.

I wound up writing this small shell script, so after I log on to the desktop I run this in the terminal and pray that the TV will get a signal from the laptop, and display a second desktop on it without it being all scrambled:

#!/bin/bash

xrandr
xrandr --output S-video --set load_detection 1
xrandr --output S-video --set tv_standard ntsc
xrandr --addmode S-video 800x600
xrandr --output S-video --right-of LVDS --mode 800x600
Here, LVDS is the built-in LCD screen on the laptop. Line 2 forces xrandr to detect S-video, line 3 sets it to use NTSC standards (PAL for outside the US), line 4 adds an 800x600 mode to it (which is pretty much standard for dinosaur TV's like the one I have), and line 5... might actually activate the second monitor and extend my desktop to it.

The last line there is hit-or-miss. It seems to have an 80% chance of showing a scrambled output on my TV, a 10% chance of sending no signal at all (TV goes to a black screen), and finally a 10% chance of doing what I want it to do: actually show my extended desktop clearly.

So, I copied that very last line into a separate shell script called "tv-retry.sh", so after running "tv-out.sh" (the first script) I run this second one for however many times it takes for my TV to show a clear picture.

Here's my terminal output from the last time I got the TV to work:

kirsle@ubuntu:~$ sh tv-out.sh
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 2560 x 800
VGA-0 disconnected (normal left inverted right x axis y axis)
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 304mm x 190mm
   1280x800       59.9*+
   1280x720       59.9  
   1152x768       59.8  
   1024x768       59.9  
   800x600        59.9  
   640x480        59.4  
S-video disconnected (normal left inverted right x axis y axis)
xrandr: cannot find mode 800x600
kirsle@ubuntu:~$ sh tv-out.sh
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 2560 x 800
VGA-0 disconnected (normal left inverted right x axis y axis)
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 304mm x 190mm
   1280x800       59.9*+
   1280x720       59.9  
   1152x768       59.8  
   1024x768       59.9  
   800x600        59.9  
   640x480        59.4  
S-video disconnected (normal left inverted right x axis y axis)
kirsle@ubuntu:~$ 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
xrandr: cannot find mode 800x600
kirsle@ubuntu:~$ sh tv-retry.sh 
xrandr: cannot find mode 800x600
kirsle@ubuntu:~$ sh tv-retry.sh 
xrandr: cannot find mode 800x600
kirsle@ubuntu:~$ sh tv-out.sh
Screen 0: minimum 320 x 200, current 1280 x 800, maximum 2560 x 800
VGA-0 disconnected (normal left inverted right x axis y axis)
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 304mm x 190mm
   1280x800       59.9*+
   1280x720       59.9  
   1152x768       59.8  
   1024x768       59.9  
   800x600        59.9  
   640x480        59.4  
S-video disconnected (normal left inverted right x axis y axis)
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-out.sh
Screen 0: minimum 320 x 200, current 2080 x 800, maximum 2560 x 800
VGA-0 disconnected (normal left inverted right x axis y axis)
LVDS connected 1280x800+0+0 (normal left inverted right x axis y axis) 304mm x 190mm
   1280x800       59.9*+
   1280x720       59.9  
   1152x768       59.8  
   1024x768       59.9  
   800x600        59.9  
   640x480        59.4  
S-video connected 800x600+1280+0 (normal left inverted right x axis y axis) 0mm x 0mm
   800x600        59.9*+   59.9* 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh 
kirsle@ubuntu:~$ sh tv-retry.sh
It would've been much easier if this video card wasn't made obsolete right after I bought this laptop. Stupid ATI! This is why I like Nvidia more, just in case you were wondering; Nvidia works better in Linux, and they at least support their old unsupported cards (or somebody does, at least).

Categories: Linux

[ 0 Comments | Leave a comment | Permalink ]

"Sudo" for Fedora GUI Admin Apps

Posted on Monday, February 22 2010 @ 2:56:52 PM by Kirsle
In Ubuntu Linux, all the graphical administrative applications (for example, user and group management) prompt you for your user password and not the root password. But in Fedora and many other Linux distributions, these apps always prompt for the root password.

Ubuntu by default follows some good security practices such as locking out the root password so that you can't log in directly as root (short of using sudo -i), but in Fedora systems if you lock out the root password, you can't use any of the graphical admin apps anymore since they ask for the root password.

So, here's how to set up Fedora to ask for the user password for graphical admin apps:

There are scripts in /etc/security/console.apps/ for most of the graphical admin apps, for example /etc/security/console.apps/system-config-users for the user & groups app. The general syntax for these files is like this:

USER=root
PROGRAM=/usr/share/system-config-users/system-config-users
SESSION=true
The general idea how to change it to ask for the user password is to add a line that says "UGROUPS=wheel" (where "wheel" is the name of a built-in group commonly used to give sysadmin capabilities to regular users). Then, any user who belongs to the "wheel" group will be asked to give their user password; all other users have to give the root password. Make sure your user belongs to the "wheel" group and you're all set.

On my Fedora 12 system though, all these scripts include /etc/security/console.apps/config-util first. So, my system-config-users script just said this:

. config-util
PROGRAM=/usr/share/system-config-users/system-config-users
SESSION=true
And my config-util file just said USER=root. So, I just added "UGROUPS=wheel" to config-util and now all my graphical admin apps ask me for my user password now, since all these files included config-util.

Categories: Linux

[ 0 Comments | Leave a comment | Permalink ]

Some progress on KAGE

Posted on Friday, February 19 2010 @ 6:36:04 PM by Kirsle
KAGE is what I've decided to call my 2D game engine that I'm developing in Perl. It stands for " Kirsle's Adventure Game Engine."

After my first blog post about it, I've already made a lot of progress. Here's a (very alpha) screenshot I took today:

Actor Selector

What you're seeing here is a debug mode "actor selector" window. This is a screenshot on Linux so the actor window looks ugly as sin (it'd look nicer on Windows) -- but this is only available when the game's run in debug mode so you'll never see it as an end user. The game window itself looks the same on every platform.

The interactive bits of the game revolve around actors (things that do stuff, including the hero character and in-game NPC's). There are singleton actors that exist exactly once in the entire game world (this includes the hero(s) of the game), and the other actors may exist multiple times.

In the screenshot there is one singleton actor named "hero", and two dummy hero actors who aren't singletons but use the same sprites as the hero (simply because I didn't feel like making additional sprites yet).

The debug window there just lets you choose which actor you want to control, out of the list which shows every actor on every loaded map. And it works, and you can walk around as any of the three clones there.

I'm a day or two's work away from programming an event scripting system, which will make the game become more interactive than just walking around, and then I'll start trying to make an actual game with this engine. The rest of the details (weather effects and other nifty features like that) will come later, since I want to create a game and not just make an engine.

BTW, the graphics aren't going to suck as badly as in that screenshot. I'm using stock RPG Maker graphics just for development and will be replacing those, and programming an auto-tiling system so that the tiles will blend better and not be so square.

Categories: KAGE

[ 0 Comments | Leave a comment | Permalink ]

[ Older ]

Kirsle
Channels
¤ General (34)
¤ Linux (23)
¤ Perl (20)
¤ Software (15)
¤ HTML (7)
¤ RiveScript (5)
¤ Design (5)
¤ Windows (5)
¤ Tk (4)
¤ Reviews (4)
¤ KAGE (3)
¤ DOS (3)
¤ Photos (3)
Creativity
Software
Web Tools
Subdomains
Fan Club
» Log In
» Sign Up

Statistics
Total Hits:
773 today, and
6164 altogether
Unique Visitors:
384 today, and
4809 altogether
¤ Traffic Stats
¤ Web Browsers & OS's
¤ HTTP Referrers