Updated Minecraft SMP

June 26th, 2011

craftbukkit Build #935
[MISC] Dynmap v0.18 – Realtime Minecraft maps [860]
[FUN] Spells and Wand v1.17 – Magic for Minecraft (+CTF!) [935]
[INFO] LoginMessage v0.6_61 [#928] – (more than just a) Custom MOTD
[MECH/FUN] MoveCraft v0.6.9 – Cars, Planes, and Boats made of blocks [860]
[ECON] iConomy 5.0.1 (Eruanna) [985]

Not updated because they are current
[INACTIVE][GEN] OChestDump v1.10 – Quickly stash, loot, or sort inventory [677]
[MECH] Stackable 0.5.1 – Control the stackability of any item [766]
[INACTIVE][TP] MyWarp v1.10.3: Basic, Social, Guiding, WarpSigns [531]
[MECH] Elevators v1.4.3 [RB 740]

Minecraft 1.6.6 and CraftBukkit

May 31st, 2011

I reset the minecraft world and installed the devel bukkit tonight.

These plugins are currently installed:

[ADMN/DEV] Permissions 3.0.6 – The Plugin of Tomorrow [803]
[MISC] Dynmap v0.17 – Realtime Minecraft maps [803]
[INACTIVE][GEN] OChestDump v1.10 – Quickly stash, loot, or sort inventory [677]
[FUN] Spells and Wand v1.12 – Magic for Minecraft [815]
[MECH] Stackable 0.5.1 – Control the stackability of any item [766]
[INACTIVE][TP] MyWarp v1.10.3: Basic, Social, Guiding, WarpSigns [531]
[MECH/FUN] MoveCraft v0.6.8 – Cars, Planes, and Boats made of blocks [531-803]
[INFO] LoginMessage v0.6_6 [#803 + #815] – Custom MOTD with online list, IP lookup, and much more!
[MECH] Elevators v1.4.3 [RB 740]

SMP Nether works!

February 10th, 2011

Through the magic of Bukkit, the nether works! It is not entirely safe to travel back and forth. It doesn’t act like portals are created on the remote side, and when I went over through one of my portals, I fell in to lava and died.

For those playing on the SMP Realm, there is a nether portal near the world spawn.

Minecraft server update

February 6th, 2011

I have installed CraftBukkit on the server with the plugins:

EekRunes

A partial port of Runecraft. So far, only the 7 below runes have been ported:

  • Secret Passages
  • Waypoints/Teleporters
  • Compass
  • Oracle
  • Freezer Rune
  • Chrono Trigger
  • Power Tool (power pick/shovel)

Elevators

1×1 to 5×5 elevators. See the link for more details.
Make a platform with stone slabs. Stand on them and type “/elev create”
Place stone buttons for up, down and an elevator call button. The buttons must already be placed when you assign them.
Type “/elev call floor name” and you can assign a floor name. The right click the call button.
Repeat the process for up and down buttons using “/elev up” and “/elev down”.

iConomy

Provides a currency for other plugins in the future. Imagine selling your cobblestone instead of storing it, and simply buying back later when you need it. Or using that money to buy another block instead.

LoginMessage

Provides a Message of the Day at login

Minecart Mania Core
Minecart Mania Autocart
Minecart Mania Station
Minecart Mania Sign Commands
Minecart Mania Admin Controls
Minecart Mania Chest Control

Minecart Mania provides MANY new Minecart blocks and abilities. See the link for more details. Block details at http://www.minecraftwiki.net/wiki/Mods/Minecart_Mania! (not all may be implemented yet)

MoveCraft

Provides the ability to move a “vehicle” made of blocks. See the link for more details.

MyHome

/home – (myhome.home.basic.home) – Takes you to your home
/home set – (myhome.home.basic.set) – Sets your home to your current position
/home delete – (myhome.home.basic.delete) – Deletes your home

MyWarp

/warp <name> – (mywarp.warp.basic.warp) – Warps to <name>
/warp create <name> – (mywarp.warp.basic.createpublic) – Create a new (generally public) warp at your current location
/warp delete <name> – (mywarp.warp.basic.delete) – Deletes your warp, <name>
/warp list (#)- (mywarp.warp.basic.list) – List all of the warps you have access to (page style)

You can have a sign warp you to one of your current warps. In order to build a warping sign, create a sign with two lines of text (it doesn’t matter what specific lines). <name> can be the name of any warp. It can also be only part of the name (so “tkell” as <name> will still take you to “tkelly’s house”) .
MyWarp
<name>

Permissions
Transparent backend group permissions

SimpleShop 1.3
DynamicMarket

Plugin to buy and sell materials. The buy and sell price are the same, so you can store and retrieve materials or convert one material to another. Basic material are 1 coin, with prices increasing based on durability. The shop is mostly raw materials.
[optional arg] <required arg>
/shop list [page #]
/shop buy <item name or id>[:how many]
example: to buy 64 cobblestone
/shop buy cobblestone:64
/shop sell <item name or id>[:how many]

Stackable

Use /stackable or /s to stack things like meat, signs and doors that normally don’t stack.

NetherGate

[FUN] NetherGate – Just Like Single Player! [282]

Persistence

[DEV] Persistence – Data-Driven Bukkit [187]

A required data plugin for NetherGate

Spells version
[FUN] Spells – Magic for exploring, building, combat and more [267]

Wand version
[FUN] Wand – Console-Free Spell Use [187]

OChestDump
[GEN] OChestDump v0.9 – Quickly stash or loot inventory [271]
To use, type “/ocd swap”, “/ocd loot”, “/ocd stash”, or “/ocd sort” in chat while looking at a chest. Typing “/ocd” in chat will bring up the help for the command.

Dynmap

[MISC] Dynmap v0.13 – Realtime Minecraft maps [450]
See a live map at http://minecraft.revantine.net  !

changelog after the break

Read the rest of this entry »

Who needs to flask and eat?

October 1st, 2010

A macro to see who needs to eat in a WoW raid:

/run nfb=”[Eat!]: “;for i=1,GetNumRaidMembers()do for b=1,40 do ua=UnitAura(‘raid’..i,b);if ua==”Well Fed”or ua==”Food”then break;elseif b==40 and ua~=”Well Fed”then nfb=nfb..UnitName(‘raid’..i)..” “;end;end;end;SendChatMessage(nfb,”raid”);

and for flask:

/run nf=”[Flask!]: “;for i=1,GetNumRaidMembers()do for b=1,41 do ufl=UnitAura(‘raid’..i,b);if ufl then if strfind(ufl,”Flask”)then break;end;elseif b==41 then nf=nf..UnitName(‘raid’..i)..” “;end;end;end;SendChatMessage(nf,”raid”);

OpenFiler 2.3, configuring a single SAN after the install

April 26th, 2010

The default login is username: openfiler, password: password

Services tab

Enable LDAP
Enable SMB/CIFS if you want sharing with Windows machines.

If you are looking for other services you should already be familiar with them (NFS or iSCSI).
One the right, Services section, click “SMB/CIFS Setup”
All of the default settings should be sufficient. Click Apply.

Accounts tab

(default) On the right, Accounts section, click “Authentication”

check “Use LDAP”
Local LDAP server: check “Use Local LDAP Server”
LDAP Security: (default) uncheck “Use TLS” (I would rather use TLS, but it is local and I got an error with it enabled)
Server: 127.0.0.1 (default)
Base DN: dc=san,dc=revantine,dc=net
Root bind DN: cn=Manager,dc=san,dc=revantine,dc=net
Root Password: (write it down somewhere)
SMB LDAP Configuration: check “Login SMB server to root DN”
User password policy: check “Allow users to set password:
Click submit.

IMPORTANT: When you submit here, it initializes the local LDAP. If you do it again later it could potentially erase changes you have made.

Click the sub-tab “Expert View”, scroll to “UID/GID Synchronization” and check “Synchronize UID/GID information to LDAP”.

You need to restart ldap. Go to the Services tab and out beside LDAP server click “Disable” wait for the refresh and click “Enable”.

On the right, Accounts section, click “Admin Password”

The default password is “password”
Type a new one (and again to confirm it) and click Submit.

On the right, Accounts section, click “Administration”

Since the cached password just changed, you need to login again.

Group Administration sub-tab, Add new group,
Group Name: Users
Override automatic GID, uncheck (default)
Click “Add Group”

User Administration sub-tab, Add new user,
Username: charles
Password: asdfgh
Retype the password
Primary Group: “500: Users”
Override automatic UID, uncheck (default)
Click “Add User”

System tab

On the right, System section, click “Network Setup”

Scroll down to “Network Access Configuration”
We are going to add networks to permit access to

Delete Name Network/Host Netmask Type
LAN 192.168.0.0 255.255.255.0 Share

Click “Update”
Scroll down to “Network Access Configuration”

Delete Name Network/Host Netmask Type
LAN 192.168.0.0 255.255.255.0 Share
VPN 192.168.1.0 255.255.255.0 Share

Click “Update”

Volumes tab

This walk through is tailored to systems using software raid. The software raid is preferable to fakeraid (if it is on a motherboard or you paid less than $150 it is probably fakeraid) and hardware raid is expensive.

On the right, Volumes section, click “Block Devices”

/dev/sda may be your system drive, if so choose /dev/sdb and continue. You can tell this by looking at the “Partitions” column and your data drives should have 0 partitions.
Edit Disk column, Click /dev/sda,
scroll to the bottom,
Mode: Primary (default)
Partition Type: RAID array member
Leave these default, Starting cylinder, Ending cylinder, Size
Click Create

You are taken to an “Edit partitions” page, click the link “Back to the list of physical storage devices”.
Edit Disk column, Click /dev/sdb
…And repeat for each storage drive…

On the right, Volumes section, click “Software RAID”

Select RAID array type, “RAID-5 (parity)”
Check mark all the devices that you just made “RAID array member” partitions on, /dev/sda1, sdb1, sdc1…
Click “Add array”

It will report back that the State is “Clean & degraded” and Synchronization is “Not started”.

There is a bug in 2.3 that prevents the Physical Volume creation from detecting software raid volumes (/dev/md0).
You can work around the issue by using ssh, login as root and run the commands below.

[root@lumpy ~]# pvcreate /dev/md0
  Physical volume "/dev/md0" successfully created
[root@lumpy ~]# pvscan
  PV /dev/md0                      lvm2 [2.73 TB]
  Total: 1 [2.73 TB] / in use: 0 [0   ] / in no VG: 1 [2.73 TB]
[root@lumpy ~]# vgcreate store /dev/md0

Volumes tab

On the right, Volumes section, click “Add Volume”

Scroll down,
Volume Name: a
Volume Description:
Required Space (MB): 514702
Filesystem / Volume type: Ext3

Shares tab

Network Shares, click the “a” (/mnt/store/a)
Folder Name: photographs
Click “Create Sub-folder”

Click the “photographs” (/mnt/store/a/photographs/)
Click “Make Share”

Edit share /mnt/store/a/photographs/
Share Access Control Mode:
select “Controlled access”
Scroll to “Group access configuration”

GID Group Name Type PG NO RO RW
500 Users LDAP * *

Click “Update”
Scroll to “Host access configuration (/mnt/store/a/photographs/)”
I have two networks that I configured earlier, LAN and VPN. I want both to be able to read and write.
In the SMB/CIFS column, check “Restart services”
LAN 192.168.0.0 put the dot under RW
VPN 192.168.1.0 put the dot under RW
Click “Update”

Expanding software raid and lvm physical volume (pv)

June 6th, 2009

I added a hard drive (well, reappropriated it from a less active server) and put it in the open bay in my file server/NAS.
First I had to find what letter the new drive got:
[root@lumpy ~]# fdisk -l

They used to be sda, sdb and sdc but one of those moved to sdd. Fortunately Linux software raid is smart and used the metadata so everything “just worked.” Next I removed the old partitions and made a new partition that took up the whole drive of type “fd”. Then I added the partition to the existing raid array.
[root@lumpy ~]# fdisk /dev/sdc
[root@lumpy ~]# mdadm --add /dev/md0 /dev/sdc1

I cat’d the /proc/mdstat and the new drive is a “S” spare. Now we tell it the md0 (zero) has four devices (3 previous plus the new one).
[root@lumpy ~]# cat /proc/mdstat
[root@lumpy ~]# mdadm --grow /dev/md0 --raid-devices=4

14 hours later…

Now that the drive is bigger, we need to resize the physical volume (pv) to include the new space.
[root@lumpy ~]# pvresize /dev/md0
Physical volume "/dev/md0" changed
1 physical volume(s) resized / 0 physical volume(s) not resized

I then used the OpenFiler web interface to expand the volume group/logical volume. If you had to do it be hand, you could look here http://tldp.org/HOWTO/LVM-HOWTO/commontask.html

Debian and MythTV to MythDora

May 26th, 2009

Since about 2003 I have used Debian for my MythTV box. We affectionately refer to it as the freevo, a pun on TiVo. Originally when I evaluated the deployment software, I used FreeVo for a brief period of time.

The hardware I have used was my desktop until I upgraded in 2003, with a few minor changes over time that were mostly due to failures. Power supply, video card, added a hard drive, etc. When we moved at the end of April 2009 I decided it was time to re-engineer my solution. I love Debian, it is lean and you can make it do exactly what you want and only that. The ability to limit ancillarary functions was great since it is only a single core 1.3GHz CPU and at one time it was encoding XVID on a single tuner Hauppauge card (about $40). Slow enough that you could not watch live tv.

The new deployment runs MythDora, a distribution tuned for MythTV and has several wizards to assist in easy setup. I am using a split backend/frontend design now with only a UPnP setup on the frontend in my livingroom. The backend was a budget off-lease system that has a dual core 3GHz CPU, a 750GB hard drive and a 1.5TB hard drive. With LVM that gives me a 10GB OS partition and almost 2.2TB of video storage. I have a Hauppauge PVR-500 dual analog tuner with MPEG2 hardware encoder and HDHomerun dual digital HD tuner with MPEG2 hardware encoder. The installs were very easy, and by selecting backend AND frontend on the server, and frontend on the client stations it went very smoothly through setup.

I have run in to a couple of minor problems. The most recent first then working backwards. I use schedulesdirect for the TV listings, and after two weeks I did not have my guide anymore. I checked, and there was not a cronjob to run mythfilldatabase. Since MythTV is running as the mythtv user, I edited /etc/crontab and added a line to run it once a day:
32 2 * * * mythtv /usr/bin/mythfilldatabase &
That means to run it every day at 2:32am (arbitrary time when I wasn’t likely to be using the system) as the mythtv user (so permissions definately will not be messed up and to maintain security). I provided the full path, and used the ampersand to tell it to run in the background.

The second problem was more insideous. MythDora uses Network Manager for the network configuration. Since this is supposed to be an appliance, and I want the backend (required) and frontend (optional) to have static IPs. To facilitate this, I modified /etc/sysconfig/network-scripts/ifcfg-eth0 and setup the IP, subnet, etc
DEVICE=eth0
HWADDR=00:17:a4:42:82:93
ONBOOT=yes
IPADDR=192.168.0.80
GATEWAY=192.168.0.1

Normally I would put GATEWAY in /etc/sysconfig/network but I opted to place it in the interface configuration since it only has one interface and I was feeling lazy. After I did this, and possibly restarted, NetworkManager emptied the /etc/resolv.conf and so dns lookups failed. Stupid NetworkManager, we will fix its wagon:
chkconfig NetworkManager off
service NetworkManager stop

And then put something useful in /etc/resolv.conf:
nameserver 192.168.0.1

Since the new house is not cabled for ethernet and MPEG2 is bandwidth intensive I bought a pair of NETGEAR Powerline A/V Ethernet Adapters, model XAVB101-100NAS. I had a pair of the 85Mb adapters and the video would stutter occasionally. The higher speed 200Mb adapters do not suffer from this problem at all. They are still limited to 100Mb on the interface, but have 200Mb on the shared network domain.

Now everything works.


I discovered on June 6 that the tv listings were empty again. I checked, and anacron isn’t running and doesn’t start on boot :P
service anacron start
chkconfig anacron on

embedded Debian – adding busybox

February 2nd, 2009

I decided to migrate to busybox on my embedded Debian to save a some space. You can either do this on the running system or you can do it while building it in the chroot environment.

apt-get install busybox
cd ~/
vi setuplinks.sh

#!/bin/bash
which busybox &>/dev/null
if [ $? != 0 ]
then

echo "Busybox is not present in the working path."
exit 1
fi
oIFS=$IFS
IFS=" ,
"
export BB=`which busybox`
for i in `cat busycmds`
do
if [ $i == "busybox" ]
then
continue
fi
which $i &>/dev/null
if [ $? == 0 ]
then
ln -f $BB `which $i`
ls -i `which $i`
else
ln $BB /usr/bin/$i
echo make $i
fi
done
IFS=$oIFS

vi busycmds

[, [[, adjtimex, ar, arping, ash, awk, basename, bunzip2,
bzcat, cal, cat, chgrp, chmod, chown, chroot, chvt, clear, cmp,
cp, cpio, cut, date, dc, dd, deallocvt, df, dirname, dmesg, dos2unix,
du, dumpkmap, dumpleases, echo, egrep, env, expr, false, fgrep,
find, fold, free, ftpget, ftpput, getopt, grep, gunzip, gzip,
head, hexdump, hostid, hostname, httpd, id, ifconfig, ip, ipaddr,
ipcalc, iplink, iproute, iptunnel, kill, killall, klogd, last,
length, ln, loadfont, loadkmap, logger, login, logname, logread,
losetup, ls, md5sum, mkdir, mkfifo, mknod, mktemp, more, mount,
mt, mv, nameif, nc, netstat, nslookup, od, openvt, patch, pidof,
ping, ping6, printf, ps, pwd, rdate, readlink, realpath, renice,
reset, rm, rmdir, route, rpm, rpm2cpio, run-parts, sed, setkeycodes,
sh, sha1sum, sleep, sort, start-stop-daemon, strings, stty, swapoff,
swapon, sync, syslogd, tail, tar, tee, telnet, telnetd, test,
tftp, time, top, touch, tr, traceroute, true, tty, udhcpc, udhcpd,
umount, uname, uncompress, uniq, unix2dos, unzip, uptime, usleep,
uudecode, uuencode, vi, watch, watchdog, wc, wget, which, who,
whoami, xargs, yes, zcat

Then:
sh ~/setuplinks.sh

Portrait Workshop

August 6th, 2008

The portrait workshop was a great success. We had 20 people with a mix of photographers and models and got some great photos. You can see pictures at http://www.mckinnisphotography.com/p101656003

If you missed this free opportunity to play with studio lighting and portrait, I encourage you to sign up for the mailing list so you can find out when we have another photo opportunity! http://www.zoegames.com/lists/?p=subscribe&id=2