Friday, December 14, 2012

Planetside 2 newbie guide

704
Planetside 2 is a great game, but there is no official documentation, and there were a few things that were unclear to me when I first started playing the game, so I thought I'd share my findings:

Capturing bases

Each base has capture points that you can see on the map and your display as letters (A, B, C, etc). To capture a capture point, just stand close to it until it turns your empire's color. Then a meter will show up with the enemy's color which will gradually go down, followed by one with your color which will gradually go up, and then you've captured the base. The enemy can reverse this process by recapturing the capture points.

Generators

Main bases (bio labs, tech plants, amp stations) have generators that power the shields. There is also a special unit called an SCU (Spawn Control Unit) that determines whether or not you can spawn at a base.
  • Overloading (destroying) enemy generators
    To overload an enemy base's generator, just stand near it and hold the E key when prompted. No special items or certs are required. And no, shooting at them won't do anything (common newbie mistake).
  • Repairing generators
    Once an enemy base has been captured, you can repair any destroyed generators. This must be done by an engineer using the nano armor kit (which can also be used to repair vehicles, turrets, and MAXes).

Hacking enemy terminals/turrets

Only the infiltrator class can hack enemy terminals. Hacking terminals doesn't require any special items or certs. An infiltrator can simply approach an enemy's terminal and hold the E key when prompted to hack it so that it can be used by that person's empire. The same goes for enemy turrets--pretty cool, huh? In addition, if an enemy is in a turret when you hack it, they will get kicked out once the hack is complete.

Deploying spawn beacons

If you are a squad leader, you can get the Spawn Beacon cert which will give you an extra item in your inventory (it will be the last item) that can be used to deploy a spawn beacon where your squad members can spawn.

Certs and cert points

  • Offline cert points
    Cert points will be accumulated even when you aren't playing the game. Currently about one cert point is acquired every two hours when offline, up to a current maximum of 12 cert points.
  • Auto granted certs
    Some of your certs will show up as "Auto Granted." It seems there are some certs that have a cost of 0 cert points, and you're given them automatically. My guess is maybe these certs used to cost something but they repriced them as they've been modifying the game during beta.

Spotting enemies

If you see an enemy, you can spot them out by placing your crosshairs over them and pressing the Q key (it may help to press it repeatedly). You will call out to friendly troops that an enemy has been spotted, and you may get some XP if someone from your empire kills that enemy soon afterward.

Deploying a sunderer

By default, you cannot deploy a sunderer. You must first get the Sunderer Advanced Mobile Station (S-AMS) cert, and then add the S-AMS attachment to your sunderer before spawning it. Then you can deploy the sunderer while sitting in the front seat by pressing the B key.

You cannot deploy a sunderer within 200m of another deployed friendly sunderer.

Special abilities

Most classes have special abilities that can be activated.
  • Infiltrator
    Infiltrators can temporarily become invisible by pressing the ability key (F).
  • Light assault
    Light assaults have jump-jets that can be activated by holding down the jump key (spacebar).
  • Medic
    Medics have an ability that heals people in the nearby vicinity that is activated by pressing the ability key (F).
  • Heavy Assault
    Heavy Assaults have a special shield that can be activated by pressing the ability key (F).
  • MAX
    MAXes can charge forward a short distance by pressing the ability key (F).

Third-person vehicle view

The default key for third-person view when in a vehicle is T. You may not be able to switch to third-person view immediately after spawning; wait a few seconds and try again.

Thursday, November 15, 2012

Elementary luna beta1 non PAE live CD

I booted up the elementary luna beta1 live CD today, only to be greeted by this error:

This kernel requires the following features not present on the CPU:
pae

Unable to boot - please use a kernel appropriate for your CPU.


After fumbling around for a while, I was finally able to make my own non-PAE image. I'm not sure how well it will work for others, because the installation itself seems to install a PAE kernel, but it worked fine on my machine that was giving me the above error and doesn't support PAE (at least according to cat /proc/cpuinfo | grep -i pae). Here's the link:

http://uploading.com/files/get/f5cdcc7c/elementaryos-beta1-i386-nonpae.20121114.iso

If there's a better site to upload it to, let me know. I'd put it in dropbox but there's a daily bandwidth limit, and I don't want my account flagged for abuse.

Wednesday, November 14, 2012

Elementary luna beta1 is here!



Elementary linux luna beta1 is finally here!:

Hello, Luna Beta 1

Don't know what elementary is? It's linux with a crisp, clean, and consistent UI (user interface) and a unified UX (user experience). It's basically everything linux should be. Read more about it at the link above, or you can check out some of my posts on elementary:

http://bmaupin.wordpress.com/tag/elementary/

Now stop reading this and go download it!

Tuesday, November 6, 2012

OpenLDAP mdb backend ready for production

OpenLDAP's new memory-mapped backend, mdb, is ready for production. It was first introducted over a year ago, and since then, the OpenLDAP developers (Howard Chu in particular) have put quite a bit of work into getting all of the bugs worked out.

The OpenLDAP mailing lists report that several companies are deploying it in production:
http://www.openldap.org/lists/openldap-technical/201208/msg00137.html

The latest version of email/collaboration software Zimbra uses the mdb backend as well:
http://wiki.zimbra.com/wiki/OpenLDAP_Tuning_Keys_8.0#OpenLDAP_Tuning_Keys

All of this leads me to believe it's production-ready. I've been running it myself at my own job for a couple weeks now, and it's actually lived up to the hype. It really is faster, uses less memory, and is way easier to configure. You can read more about the advantages of mdb here: Coming soon: memory-mapped db for OpenLDAP

Here's a short list of what I would consider the caveats:
  • Since it's new technology, I highly recommend compiling the latest version of OpenLDAP (as of this posting 2.4.33) to get the latest bug fixes and performance improvements. I have a page of useful tips for compiling OpenLDAP to get the most out of it here: compiling OpenLDAP.

  • Write performance is still being optimized. My personal recommendation would be to continue to use hdb on the master server (properly optimized), and mdb on the replica servers.

  • I'm guessing because of the previous point, it can take quite a bit longer to do the initial database load. Using hdb it took a few hours to slapadd our database, but it's taking around 12 hours to slapadd it using mdb. It's worth the wait, though.
    (see comments)
I've updated my wiki on optimizing OpenLDAP with instructions for mdb. Instead of worrying about locks and three different levels of caches, there's just one important option which is trivial to configure:
Optimizing OpenLDAP

More information about mdb is available here:
http://highlandsun.com/hyc/mdb/

Now, if Symas would only post some updated benchmarks, I could point to just how much faster OpenLDAP is than the competition...

Wednesday, October 24, 2012

sudo -s on RHEL 6 doesn't preserve HOME

Solution:

If you're the only one using this machine, the easiest fix is to run this command as root:
visudo

and then add this line to the sudoers file:
Defaults env_keep=HOME

If this is a shared computer and you aren't at liberty to change the sudoers file, you can add this code to .bashrc in your home directory. be sure to log out and back in for it to take effect:

# hack to preserve home when using sudo -s on rhel 6
if [[ `cat /etc/*release | grep "release 6"` ]]; then
    sudo() {
        if [[ $@ == "-s" ]]; then
            sudo bash -c "HOME=$HOME; exec bash"
        else
            command sudo "$@";
        fi;
    }
fi;


Details:

In linux, if I want to become root but keep my user's environment (home, aliases, etc), I normally use sudo -s:
[user@computer ~]$ sudo -s
[root@computer ~]# echo $HOME
/home/user


and if I want to become root and use root's environment, I'll use sudo -i:
[user@computer ~]$ sudo -i
[root@computer ~]# echo $HOME
/root


The above works on Ubuntu, and all versions of RHEL up to 5 (the same probably goes for CentOS). however, I recently noticed that RHEL 6 , my home variable isn't preserved when using sudo -s:
[user@computer ~]$ sudo -s
[root@computer user]# echo $HOME
/root


The most frustrating thing is that because of this, it seems like my .bashrc wasn't being called, and so I didn't have access to my aliases any more.

It seems like the cause of this is that the default in RHEL 6 is not to preserve the home variable. you can see this running this command as root:
sudo -V

If you look under the list of "Environment variables to preserve," you'll notice that in RHEL 5 HOME is listed, but in RHEL 6 it isn't.

Wednesday, October 10, 2012

uninstalling problematic rpms

if you're unable to uninstall an rpm using yum erase/remove or rpm -e because something in the rpm's uninstallation process is broken, try using rpm -e with the --noscripts --notriggers flags:

$ sudo rpm -e sblim-sfcb
/var/tmp/rpm-tmp.54035: line 7: /etc/init.d/sfcb: No such file or directory
error: %preun(sblim-sfcb-1.3.11-0.7.14.x86_64) scriptlet failed, exit status 127
$ sudo yum remove sblim-sfcb
...
Running Transaction
/var/tmp/rpm-tmp.49575: line 7: /etc/init.d/sfcb: No such file or directory

Removed:
sblim-sfcb.x86_64 0:1.3.11-0.7.14

Complete!
$ rpm -qa sblim-sfcb
sblim-sfcb-1.3.11-0.7.14
$ sudo rpm -e sblim-sfcb --noscripts --notriggers
$ rpm -qa sblim-sfcb
$

Tuesday, September 11, 2012

Export playlists from Google Play Music


After some brief googling, I was unable to find out a way to export playlists from Google Play Music, so I just figured it out for myself.

In order to do this, your Android device must be rooted, otherwise you won't have access to the music database file where the playlists are stored.

If you don't have an Android device, there's a chance you could use the android emulator from the Android SDK. You'd have to find an .apk file for the Google Play Music app, which shouldn't be too hard.

  1. First, make sure all of your tracks and playlists are synced with Google's servers:
    1. Install the Google Play Music app on the Android device. If it's already installed, open up the Google Play Store app, go to Menu --> My apps, and if it's in the list of updates, update it.

    2. Connect your Android device to the internet (data or wifi)

    3. Open the Google Play Music app

    4. This step will probably change as Google continues to update the app, but essentially you want it to show all of your music in the cloud and refresh it. The current way to do this is:

      At the top left of the app, make sure it says All music. If it says On device, tap it and change it to All music. Click Menu --> Refresh

    5. Wait for all of the tracks and playlists to sync (you should be able to see all of your playlists and music in the app)

    6. Exit the Google Play Music app by pressing the back button

  2. Next, you need to get the music database file from the Android device. The file is located at /data/data/com.google.android.music/databases/music.db. There are several ways to do this:

    • You can use a file manager app, browse to the file, copy it to your SD card, then plug the phone into your computer and copy it from there. Whichever file manager app you use, it needs root access. I'm currently using File Explorer by NextApp with the Root Add-On.

    • Using a file manager app, browse to the file and send it to yourself using whatever method is easiest for you (email, Dropbox, etc.).

    • As an Android developer, because I already have the Android SDK installed, my preferred method is to transfer the file using the Android SDK Platform Tools over the command line.

  3. Open the music.db file with your favorite SQLite database client (I prefer Sqliteman) to get the playlist data, using this query:

  4. select name as "Playlist Name", artist, title from listitems join music on listitems.musicid = music.id join lists on listitems.listid = lists.id order by "Playlist Name";

    From there you can export the data to a friendly format, such as a CSV file. To do a quick dump of the data from a Linux/Mac terminal, you can run this command:

    sqlite3 music.db 'select name as "Playlist Name", artist, title from listitems join music on listitems.musicid = music.id join lists on listitems.listid = lists.id order by "Playlist Name"' > playlists.txt

There are a lot of other columns available, such as album. to get the full list, just replace everything in the query from select to from with *, i.e. select * from listitems...

Enjoy!