Tuesday, April 2, 2013

Reddit musings: A reply about Deep Space 9 and the Prophets

I was browsing /r/startrek and came across a topic that peeked my interest. Someone had finally watched all of Deep Space 9 and enjoyed it. I've always held the notion that DS9 was one of Star Trek's best series. It dealt with the conflict between the utopian Federation and the rest of the universe. It developed characters and races further and better than any Trek prior or since. The dark overtones of the series clashed perfectly with the utopian ideals of the Federation.

In the thread, many people talked about how boring and unnecessary the Prophet episodes were to DS9, and how they seemed jammed in there with no real reason to exist. I made this reply to one person in particular.

The original post I replied to here.

The jist of his post was, "In the end, doesn't it seem like everything was predetermined by the Prophets to happen and that all the decisions by the characters meant nothing?". I disagreed.



Ever watch FlashForward? There was a scene in season 2 I think that talks about [Linchpin Theory](http://en.wikipedia.org/wiki/Intelligence_analysis#Linchpin_analysis). Thats what I believe the Prophets did, set the ball in motion with limited information (first contact with Sisko) in order to try to make sure the event happened to expand their knowledge.

This is not collaborated with anything but this is my theory:

The Prophets never interacted with the outside prior to meeting the Sisko.  They had no concept of linear time, other races or anything else but themselves. They existed only within their spacial anomaly. We know this because in the first encounter the Sisko described linear time, and the Prophets closed the wormhole because 'it damages' them. We know from later episodes people travelled through it, so why not close it then? Their only desire was to learn more about this, and thus Sisko was let go with the promise of returning.

The Prophets then decided to make sure it happened. They desperately wanted to learn about the outside universe, so using their non-linear existence set the linchpins in motion to make sure both Sisko's existence happened and that he returned due to their own lack of understanding of Linear time.

This is where I believe the Pah Wraiths come into play. They have a deep, deep hatred for all things we, the audience sees. They hate linear existence and those in it, and hate the Prophets because they want to explore this universe. In the first meeting with the Prophets, there are many more entities. Many of them are aggressive to Sisko, saying he needs to be destroyed. In subsequent visits, these angry, aggressive thoughts are no longer there. Those were the Pah Wraiths. Perhaps a 'war' of sorts happened and they were cast out, confined to Bajor's fire caves away from the Sisko's time line, or so they thought.

We know from what they've said, and how they act the Prophets are akin to the Q. Omnipresent, incredibly knowledgeable and extremely powerful beings. However since they had no concept of Linear time, they made mistakes, in the episode "The Reckoning" shows it.

There is a battle, between the Prophets and the Pah-wraiths coming. We don't when, where or how but its coming. The Bajorian equivalent of armageddon. The Pah-wraiths take their revenge on the Prophets for casting them out and not listening to them about the Sisko being dangerous.

It all comes down to that first contact. Sisko interferes with a people's way of life, and thus changes the course of history, and himself along with it. Sisko violated the Prime directive inadvertently by entering the wormhole. He interfered with the Prophets development (a secluded, and non-warp capable species) and in return, nearly brought down the entire Alpha quadrant because of it.

"*The Prime Directive is not just a set of rules. It is a philosophy, and a very correct one. History has proven again and again that whenever mankind interferes with a less developed civilization, no matter how well intentioned that interference may be, the results are invariably disastrous.*"
—Jean-Luc Picard, Symbiosis

Before DS9, the prime directive only concerned itself with less developed societies, but never before or since has it touched on what happens when mankind interferes with a more advanced one. DS9's entire story arc revolves around this.

So while boring to watch, the whole Prophet-guidance thing in DS9 was essential to DS9 and Star Trek in general. Nothing was planned by the Prophets, they just set it in motion to make sure they could learn more about the outside universe and linear time, while not understanding it.

TL;DR: The Prophets fucked with time because they had no concept of it.

Friday, March 15, 2013

Going out for the weekend, need to idle. Script + contrab to the rescue!

Just a quick update on the TF2 Idling for Linux project, I haven't done much due to real life expectations. However I whipped up a quick shell script to run idle accounts quickly. Since I'm going out for the weekend, I just setup contrab to run my accounts at specific times. Hopfully this script will be of use to others.


#!/bin/bash
# Start an idle account
clear
echo "*******************************************"
echo "* TF2 Idle Start                          *"
echo "* Valid Accounts: 1-5                     *"
echo "*                                         *"
echo "*******************************************"
case $1 in
1) rm /home/cyhawk/.steam/steam.pid && nice -n 20 sudo arkose -h --device /dev/nvidiactl --device /dev/nvidia0 "steam -login login password1 -applaunch 440 -nomouse -textmode -nosound -low -novid -nopreload -noipx -nojoy -sw +sv_lan 1 -maxplayers 2 +map itemtest" ;;
2) rm /home/cyhawk/.steam/steam.pid && nice -n 20 sudo arkose -h --device /dev/nvidiactl --device /dev/nvidia0 "steam -login login password2 -applaunch 440 -nomouse -textmode -nosound -low -novid -nopreload -noipx -nojoy -sw +sv_lan 1 -maxplayers 2 +map itemtest" ;;
3) rm /home/cyhawk/.steam/steam.pid && nice -n 20 sudo arkose -h --device /dev/nvidiactl --device /dev/nvidia0 "steam -login login password3 -applaunch 440 -nomouse -textmode -nosound -low -novid -nopreload -noipx -nojoy -sw +sv_lan 1 -maxplayers 2 +map itemtest" ;;
4) rm /home/cyhawk/.steam/steam.pid && nice -n 20 sudo arkose -h --device /dev/nvidiactl --device /dev/nvidia0 "steam -login login password4 -applaunch 440 -nomouse -textmode -nosound -low -novid -nopreload -noipx -nojoy -sw +sv_lan 1 -maxplayers 2 +map itemtest" ;;
5) rm /home/cyhawk/.steam/steam.pid && nice -n 20 sudo arkose -h --device /dev/nvidiactl --device /dev/nvidia0 "steam -login login password5 -applaunch 440 -nomouse -textmode -nosound -low -novid -nopreload -noipx -nojoy -sw +sv_lan 1 -maxplayers 2 +map itemtest" ;;
S) su -l tf2server ;;
z) exit 0 ;;
*) echo "Invalid response. Exiting";
esac

My end goal is to have this script setup to automate running the hlds (restarting once a week) and starting and stopping idle accounts. Or perhaps a more user friendly interface, who the hell knows at this point. I'm just happy I can finish idling up this week. Don't forget to fix the paths and add in your username/passwords. Also to run this without the sudo password, you'll have to add arkose to the sudoers file:

sudo nano /etc/sudoers
Under: # User privilege specification, add
cyhawk  ALL=NOPASSWD : /usr/bin/arkose

change your username of course. Is this secure? I doubt it, but the machine I idle on isn't very secure to begin with.



I've also noticed memory usage for TF2 in -textmode can be quite varied. I've seen as low as 240mb and as high as 1.7gb. I have no idea why this is, or what resources it could possibly want to balloon up that far. I believe the answer to this will be to run a dedicated server locally and connect to it to combat the high memory usage. The HLDS doesn't use much and if you aren't running as a server memory usage drops down to 200-500mb which is quite acceptable. This should allow scaling of multiple idle accounts much easier. We'll see how this goes (hlds is currently updating again, i'll have results sometime next week)



Tuesday, March 5, 2013

Starting a business.

I've been using eCigs for a very long time now. My first 'mod' was an old flashlight, some stripped electronic wire and some cotton I salvaged from cotton balls. That was 8 years ago and eCigarettes have come a LONG way since then.

About 6 months ago, I picked up my first modern eCig, an eGo-T and some eJuice. And I played with it for a while. Then 47 days ago, I made a large order and haven't touched an analog cig since. Hell I even converted a few friends by accident. They just couldn't keep from asking questions and they ended up switching too after seeing my chain-smoking butt fully convert over.

Move forward to two weeks ago. My best friend (He was my first convert) came to be and said, "I have the best idea, lets sell eCigs! Lets start a business!" Now, I have to admit to you, I already wanted to try this on my own, I just didn't have the capital to begin. Now heres my best friend with the exact same idea as me with the sales ability I don't and the money to back it up. Fast forward two weeks, we have a shipment coming in from China, a website (only accepting reservations for the first kit right now) and at LEAST 70 pre-orders for this product. My head is currently spinning on how fast this got up and running.

Dealing with suppliers from China was massively overwhelming at first. The sheer number of suppliers for the same product is just insane. If I want a simple item, theres maybe 200+ companies to buy it from. All of them more than happy to email with quotes. (Also I should note, I now have a separate email address for this purpose. I once went out to play an MTG Draft and came home to 600+ emails. Oops) However one thing was constant. Everyone was incredibly friendly and more than happy to help. If I need my company's logo in 5 places they'll do it. If I want the batteries to be a specific color they're on it. My only complaint is getting a solid price from them. Whenever I search Alibaba for a basic part only a handful of suppliers provide the pricing, and even then its not correct.

I also had to setup a website, http://www.spartanvape.com in case you're wondering, and as of this post its VERY basic since we don't have any products physically in hand yet. Now 14 years ago, I started a business which failed horribly. I was young, I had $$ in my eyes and I surrounded myself with bad people. That aside setting up an eCommerce website was damned simple today compared to 14 years ago. I put maybe a total of 4 hours into the website to do what I needed it to do (just take reservations for now). Last time I did this, it took 9 weeks and 4 companies to get a website up and running. How things have changed. I ended up using Shopify. They may not be the cheapest but damn their admin interface is just... simple. I don't have to fight with anything, I love it.

My head is still spinning to the speed at which this is happening. I love it. I haven't been this excited about anything in many, many years.

Saturday, February 23, 2013

Linux TF2 Idling - Minor, scratch that major victory today!

Its 8am and I've been awake for far too long. However in my hazed state I found the missing component to getting TF2 idling working in Linux with Arkose. While reading and rereading stgrabber's blog (the developer of Arkose) I realized I may have to give the device access to the video card to properly work. So I did, and it didn't work. After some fiddling around on a whim I tried giving it access to both /dev/nvidia* devices and... it worked! I had two copies of TF2 running at the same time on two different accounts.

I can now start Steam/TF2 within an Arkose container with the following command:

sudo arkose -h --device /dev/nvidiactl --device /dev/nvidia0 "steam -login username password --applaunch 440"

and it will launch steam and TF2 in a container! Woohoo! Of course I was also having the issue of steam failing to launch again once a copy was running. While writing this it came to me that the only way for steam to know it was already running is with a simple file check. So I dove into the ~/.steam directory and found the steam.pid file. Removing that prior to launching another copy in arkose will allow steam to run again. I have no idea what the effect of removing the steam.pid file will do however, that bares some investigation.

Well, that would be the hard part done (getting multiple copies working). Next step, write a shell script to get this baby point and click! Maybe even a simple GTK application Then become famous! Well maybe not that last step...

Yup, I did it. Thats 3 copies running =)

Wednesday, February 20, 2013

Setting up Cockatrice in Ubuntu 12.10

UPDATE 3/5/2013:
Seems Hasbro has sent their ever famous legal threats to the Cockatrice team. Horrible timing I might add. However you can still download the source and setup a private server, of which I won't elaborate on here. You can find the final snapshot of the git hub tree on reddit here.

Thanks to Adrian for the information, I would of missed the reddit post due to my vacation.



I love Cockatrice. It is one of the best testing programs (without owning any cards) out there. Together with Skype and some friends this is the best testing option outside of high-end proxies. There's something to be said about testing with actual cards instead of sharpied lands.

However installing the Linux port is not as simple as apt-get install cockatrice. So lets get started. For this is a very quick tutorial and I'm going to assume you know at least some basics of Linux, specifically how to use the terminal and basic file structure. If you're really new, just open a terminal and copy/paste these commands in one at a time. Enter your admin password when asked. 

sudo apt-get install git
git clone git://github.com/mbruker/Cockatrice.git
sudo apt-get install cmake
sudo apt-get install qt4-dev-tools
sudo apt-get install libprotobuf-dev
sudo apt-get install qtmobility-dev
cd Cockatrice
mkdir build
cmake ..
sudo make install



Everything should go fine. Every package is in the Ubuntu repositories, its quite seamless. Cockatrice installs three programs needed. The first is the obvious `cockatrice` which starts the program. The second is `oracle` which downloads and setups the card images. Run this first and update your card database. The third is `servatrice` which I haven't delved into yet, but it allows you to start a private Cockatrice server. Both the main program and the Oracle database utility show up in app launcher as well!

Cockatrice running in Ubuntu 12.10 (Gnome3 desktop)

Saturday, February 16, 2013

Getting MTGO to work in VMWare

I'm no stranger to virtual machines. However this minor issue had me up in arms for a while.

Since moving over to Linux full time, I realized the one piece of software I really need is MTGO. (Magic the Gathering: Online). It sadly does not run in wine as it once did. So, I go to my universal backup plan Virtual machines!

So I install a fresh copy of WinXP Pro, disable a couple of services to speed up operation and proceed to install MTGO ('Classic' now that the beta is open). Everything goes fine until I start up, it crashes.

Eh? Some googling revealed others with the same issues, mostly mac users with fusion (I suppose the Linux crowd doesn't really play MTG) but no solutions. Diving into the error codes with other games, I figured out the issue. Actually two issues.

.Net 2.0 is required. It seems the version the MTGO installer installs for you is incorrect. So I downloaded .net 2.0's installer (which oddly claimed to be the SDK, whatever floats its boat) and ran it.

DirectX 9c is required: Another odd one, since I ran windows update as soon as I installed WinXP, and directX did get installed. So I downloaded it again and reinstalled it from Microsoft's website here.

Once both of those were in, mtgo loaded up flawlessly. No restart required.

TL;DR:

.net 2.0 from here.
DirectX From here.
Install both, will work.

I think I'll support Wizard's new client more now simply because the guys who have the contract now are idiots.

Also I should mention Unity mode does not work unless you start MTGO in Unity mode. MTGO will claim the number of monitors has changed (yeah right, like it supports multiple monitors) and force closes. Now if they could just release a native client for Linux....

Friday, February 15, 2013

Ubuntu 12.10 - Steps backwards

With the release of Steam for Linux and the decline of my own video game playing (I seriously haven't touched a game in almost 5 months now) I decided to switch to Linux for my primary everyday desktop. This isn't a new thing for me, I've used Linux/Ubuntu/Debian for many years now. However today marks the day I make the final switch for my primary desktop. Games have always held me back, Steam for Linux solves this. Since I primarily watch Twitch/TV and play MTGO (already in a VM I might add) I really have no more uses for Windows.

To date I haven't really used Ubuntu since the great Unity fiasco. My laptop will continue to use 10.04 until it dies since the damned thing works. I've toyed with it in VMs for specific purposes and a server runs 12.04 with Unity for a friend but I hardly ever go into the GUI in that machine.

So I happily install Ubuntu deleting my now useless Windows 7 Partition.

First problem: Install failed. The hell? Just clicked next on the first screen and it froze. Ok, odd, since I couldn't get it to restart (tried killing all processes, restarting X, etc) I rebooted and tried again. This time it worked.

Second Problem: Grub installed to the wrong drive. In my nearly 20 years of BSD/Linux I have never run into this before from a major distro. Luckily I know how to install grub in other ways.

Third Problem: nvidia-current broke Unity. SERIOUSLY?!? Do you people not test these things? All I did was update the system, installed nvidia-current, rebooted and.... No unity. I.. I.. I have no words for this. This is just damned sloppy. I expect this from some student project distro not THE major Linux distro for the masses. Googling this issue has brought up a plethora of issues from everyone, including ATI users reporting the same issue. Every fix requires manually installing Linux headers. Why aren't these things now included in the main install by now? I swear Ubuntu has been the only distro to consistently not include the headers. With a new influx of Linux users coming specifically for Steam this seems like a pretty damned important thing to have working.

Fourth Problem: Multi-Monitor support still flawed. While it has been getting better, there are some minor things I've gotten acustomed to from Windows. The lack of duplicating the start bar/Unity Bar on every display (I have 9 displays.. eve player.. I don't need to see it 9 times). Even dropping down to 3 displays yields the same annoyance. I also watch twitch/VLC a lot in a secondary monitor, yet It can't remain full screen if I want to do something else? Shit, Microsoft added this in Windows XP SP1. You'd think people would use multiple monitors by now in the FOSS world by now. Googling for fixes yields HEX EDITING!?? Well, guess I'll watch all my videos in a VM.

Fifth Problem: Steam doesn't install from the software Center with an unknown error. *facepalm* Just *facepalm*

Props to both Spotify and Chrome. Both installs were flawless and my two primarily used programs. Love you guys, don't change.

I haven't had this many problems with a fresh install of Linux in years. Oh and Unity is ugly.