tag:blogger.com,1999:blog-21609217367697201242024-02-19T02:41:27.035-05:00Absolutely!maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.comBlogger299125tag:blogger.com,1999:blog-2160921736769720124.post-33138987796998255212018-07-13T19:32:00.002-04:002018-07-20T11:55:05.245-04:00How to compile Redis Desktop Manager on Ubuntu 18.04<div style="line-height: 150%; margin-bottom: 1em;">
Unlike most open source applications, Redis Desktop Manager can be tricky to get installed on open source platforms. The developer has monetized his application by providing pre-compiled packages for Linux platforms and OSX for a fee. Instructions on the website are misleading, and <a href="https://github.com/uglide/RedisDesktopManager/issues/3638">attempts to get the developer to either fix them or remove</a> them have been responded to harshly.</div>
<div style="line-height: 150%; margin-bottom: 1em;">
I have no issue with the developer looking to monetizing his work, and appreciate that he makes the source code available under a free license, but I'd still like to be able to compile the application myself and had some trouble getting it to work. After some Googling around I finally got it installed. Here are the instructions that worked for me.</div>
<div style="background: #000; color: #cccccc; display: block; font-family: monospace; margin-bottom: 1em; padding: 5px; width: 100%;">
git clone --recursive https://github.com/uglide/RedisDesktopManager.git -b 0.9 rdm<br />
cd ./rdm/src<br />
./configure<br />
qmake<br />
make<br />
sudo make install<br />
sudo mv /opt/redis-desktop-manager/qt.conf /opt/redis-desktop-manager/qt.backup
</div>
<div style="line-height: 150%; margin-bottom: 1em;">
If you came here from a failed attempt to install rdm, you may run into the following error.
</div>
<blockquote class="tr_bq">
collect2: error: ld returned 1 exit status</blockquote>
<div style="line-height: 150%; margin-bottom: 1em;">
This can be resolved by removing the old libssh2.a file.
</div>
<div style="background: #000; color: #cccccc; display: block; font-family: monospace; margin-bottom: 1em; padding: 5px; width: 100%;">
sudo rm /usr/local/lib/libssh2.a
</div>
<div style="line-height: 150%; margin-bottom: 1em;">
I also saw some people on the Internet ran into this error.
</div>
<blockquote class="tr_bq">
This application failed to start because it could not find or load the Qt platform plugin "xcb".
</blockquote>
<div style="line-height: 150%; margin-bottom: 1em;">
That just means you failed to run the following command.
</div>
<div style="background: #000; color: #cccccc; display: block; font-family: monospace; margin-bottom: 1em; padding: 5px; width: 100%;">
sudo mv /opt/redis-desktop-manager/qt.conf /opt/redis-desktop-manager/qt.backup
</div>
<div style="line-height: 150%; margin-bottom: 1em;">
Update: I submitted a <a href="https://github.com/uglide/RedisDesktopManager/pull/4167">pull request</a>, which has been accepted. The main rdm site now contains these same instructions</div>
maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-47430777230393499922016-01-13T20:09:00.002-05:002016-01-13T20:09:56.468-05:00The Sower and the Seeds<b>The Sower and the Seeds</b><br />
And when a great crowd gathered around him, he told them a parable. "A farmer went out to saw his seed. As he sowed some fell along the path, and some dick cam along and troded on it. Another dick came and devoured it." And one of his disciples said, "Yeah, but the farmer was being careless and throwing it on the street. He probably got some in the rocks and in the thorns too. Wasn't the guy kind of asking for it?" As he said this, he called out, "No, just don't be a dick. It's pretty simple. There's just no excuse."<br />
<br />
<b>The Pharisee and the Publican</b><br />
He also told them the parable, "Two men went in the temple to pray, a Pharisee and a tax collector. The Pharisee stood praying, "Thank you God that I'm not like these other low life's. They are ugly, and stink." The tax collector said, "God have mercy on me, I've been a dick." Then Jesus' said, if you are a dick, recognize it and ask for forgiveness. What a dick that pharisee is.<br />
<br />
<b>Paying Taxes</b><br />
Then the Pharisee said, "Teacher, we know you are a man of integrity. Should I pay taxes or not?" And Jesus replied, "You have a nice house. Your wife and kids are well fed, wear nice clothes, and all have iPhones. Don't be a dick about it and just pay your taxes." "But what if they go to someone who is just going to buy drugs with it or waste it on booze.", they replied. "Yeah, that's not ideal, butit represents such a small amount of the taxes you pay. Stop being a dick."maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-68768130254429209962015-12-14T22:23:00.003-05:002016-06-01T08:45:45.415-04:00Compiling Mame on Ubuntu 14.04 Trusty Tahr<span style="font-family: inherit;">This is an update from <a href="http://maxolasersquad.blogspot.com/2010/12/how-to-compile-mame-in-ubuntu-1004.html">How to compile mame in Ubuntu 10.04 Lucid Lynx</a>.
Using the following instructions you should be able to compile Mame on Ubuntu 14.04 Trusty Tahr, though it should also work in most any other version of Ubuntu too.</span><br />
<ol>
<li><span style="font-family: inherit;">Install dependencies.</span><br class="Apple-interchange-newline" /><span style="font-family: "courier new" , "courier" , monospace;">sudo apt-get install git build-essential libgtk2.0-dev libgnome2-dev libsdl1.2-dev libsdl-ttf2.0-dev libsdl2-ttf-dev libqt4-*</span></li>
<li><span style="font-family: inherit;">The version of gcc and g++ that comes with Ubuntu 14.04 will not compile the latest Mame code. Fortunately, there is a PPA to get a newer version. This step is not needed on versions of Ubuntu beyond 14.04 as they come with versions 4.9 or above of gcc and g++.</span><br /><span style="font-family: "courier new" , "courier" , monospace;">sudo add-apt-repository ppa:ubuntu-toolchain-r/test<br />sudo apt-get update<br />sudo apt-get install gcc-4.9 g++-4.9</span><span style="font-family: "courier new" , "courier" , monospace;">sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 50</span><br />
</li>
<li><span style="font-family: inherit;">Get the latest code from <a href="https://github.com/mamedev/mame">github</a>.</span><br /><span style="font-family: "courier new" , "courier" , monospace;">git clone https://github.com/mamedev/mame.git</span></li>
<li><span style="font-family: inherit;">Finally, lets get to building it. This will take a very long time, perhaps even hours. This may be a good time to take a nap, watch some Star Trek, or visit the park with the family you've been neglecting trying to get all of this to work.</span><br /><span style="font-family: "courier new" , "courier" , monospace;">cd mame</span><br /><span style="font-family: "courier new" , "courier" , monospace;">make</span></li>
<li><span style="font-family: inherit;">On 32-bit systems the resulting binary file will be called mame and on 64-bit systems it will be mame64. We want to make this binary executable by everyone on the system so we need to put it in the correct directly.</span><br /><span style="font-family: "courier new" , "courier" , monospace;">sudo cp mame64 /usr/local/bin/mame<br />sudo chown root:root /usr/local/bin/mame<br />sudo chmod 755 /usr/local/bin/mame</span></li>
<li><span style="font-family: inherit;">Mame has a hierarchy of places it will look for a config file. The easiest, and best route is to place it in our home folder.</span><br /><span style="font-family: "courier new" , "courier" , monospace;">mkdir ~/.mame<br />cd ~/.mame<br />mame -createconfig</span></li>
<li><span style="font-family: inherit;">Let's setup a rom folder and get some roms.</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">mkdir roms</span><br /><span style="font-family: "courier new" , "courier" , monospace;">cd roms</span><br /><span class="Apple-style-span" style="font-family: "courier new" , "courier" , monospace;">wget http://mamedev.org/roms/sidetrac/sidetrac.zip --user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"</span><br />
</li>
<li>Now that we have legally obtained an arcade ROM, let's play it!<br /><span style="font-family: "courier new" , "courier" , monospace;">mame sidetrac</span><br />
</li>
</ol>
There is a reasonably good chance that some unnecessary libraries are installed via this guide, and if someone knows of a library that can be safely omitted, please let ma know below in the comments.<br />
<br />
There are several points of possible confusion when trying to run an arcade rom.<br />
<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">mame -showusage</span> will output what we would normally expect with a --help switch.</li>
<li>A rom must be in the proper rom folder as defined in mame ini file. If you have the rom dkong.zip in the current folder and run <span style="font-family: "courier new" , "courier" , monospace;">mame dkong.zip</span>, mame will not look at the file in the present directory and try to load it. If dkong.zip is in the rom directory, and you run <span style="font-family: "courier new" , "courier" , monospace;">mame dkong</span> then it will be able to run the rom. Mame is sensitive to the name of the zip file. If you rename the file DonkeyKong.zip then Mame will not know where to find the rom and will give you an error.</li>
<li>Unlike most emulators, mame has specific code to support each rom. It doesn't just arbitrarily run rom code. The format of many roms has evolved over time. Many roms found on the Internet are in an old format and are missing files that Mame needs to accurately emulate the game. Trying to execute these roms will result in an error about missing files. Since Mame developers actively discourage the use of Mame for the purpose of piracy they will be very unsympathetic to your plight and will not help you.</li>
<li>Some roms are a "clone" over another rom and require its parent rom to run. Which roms these are, and what parent rom they need is not well documented (that I know of) and will looks just like an old rom that is missing files required by the latest Mame.</li>
<li>Just running the Mame binary will provide you with an interface that will list all available roms in your collection. It is not necessary to specify the rom to load when executing Mame.</li>
<li>I am not very sympathetic to copyright owners that do not provide meaningful ways to legally obtain their copyrighted materials. I would very much like a way to purchase roms that will play on Mame from the companies that own the IP. However, I will not provide you with any help or resources on obtaining roms illegally. You are on your own.</li>
</ul>
More information on Mame roms can be found at <a href="http://wiki.mamedev.org/index.php/FAQ:ROMs">http://wiki.mamedev.org/index.php/FAQ:ROMs</a><br />
<br />
Once you know what libraries to install, compiling Mame from source is quite easy in Ubuntu. Drop me a line in the comments if this is helpful, or if you run into any problems or have any suggestions.maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-67543990557853331312015-10-27T10:37:00.001-04:002015-10-27T10:37:16.569-04:00So You Want to Develop Web Apps?- "I want to develop web applications. Where should I start?"<br />
First learn HTML<br />
<br />
- "Ok, I got that, but my web pages look very bland. What am I missing?"<br />
Now you need to learn CSS.<br />
<br />
- "Now my pages look great, but they don't do anything."<br />
You need to learn Javascript to be able to program your web page. Make sure to read Douglas Crawford's book to learn how to avoid the many pitfalls of Javascript.<br />
<br />
- "Now I know HTML, CSS, and Javascript. What else do I need?"<br />
To make applications you need server-side code. You could learn Java, C#, Python, Ruby, PHP or a host of other languages. I would recommend Python.<br />
<br />
- "Now how do I wire up my Python code to my web page."<br />
Oh, you need a framework to do that. Again, there are many to pick from. Try Django.<br />
<br />
- "Ok, I have Django down. Am I ready?"<br />
You will need to learn databases to be able to persist data between visits to your page. Mysql is a free and powerful database. Don't forget to understand how to normalize your database into third-normal form, but also how and when to denormalize your database for performance.<br />
<br />
- "Now that I understand databases, how do I tie it into my application?"<br />
Django has a powerful ORM that will map your Python objects to database tables. Oh, you did learn Object Oriented Programming when learning Python, right?<br />
<br />
- "I have learned object-oriented programming, and Django's ORM. I'm ready to build web applications now, right."<br />
Well, you want to do it right I presume. Now you need to learn how to do asset management, how to write RESTful APIs, and how to use virtualenv to manage your Python libraries.<br />
<br />
- "Fine, I can manager all of my application resources effectively and write APIs. Am I ready now?"<br />
All that code needs to run somewhere. You can't serve it up from your development machine using the dev tools. You need to learn Linux. I prefer Ubuntu. You will need to learn how to install software with apt, write bash scripts, and generally get around using the command line. This will include using a terminal-based text editor like vim.<br />
You will need a production-ready web server software like nginx. You will need to know how to install, configure, and maintain it.<br />
<br />
- "Certainly I'm ready now."<br />
You need to learn jQuery to make your Javascript easier. Also, since you started HTML5 has come out, which contains addition to not only HTML, but also to CSS and Javascript. ECMA Script 6 is also on the horizon. You will want to read up on that, and use something like Babel to convert it for you. You also need to learn node and NPM to help better maintain your Javascript libraries. You need to know React so that your front-end code doesn't require a complete page reload after every click, and also so that you don't need a bunch of complicated listeners to refresh every element whenever something happens. Web sockets will allow you to push changes from the server to your web page without having to make expensive polls every few seconds.<br />
<br />
- "Okay, okay, okay. I've got all of that down. I'm ready to start building."<br />
You can't just write code. You need something to maintain that code. You now need to learn git so that you can keep versions of your code and share it with anyone else working with you. It's important that you can fork, commit, branch, stash, and rebase.<br />
<br />
- "Okay. I'm ready for whatever insanity you still have to throw at me."<br />
One last thing. Since you don't have a computer science degree or any professional experience, you now have to convince someone to hire you based only on your interviewing skills. You do know how to sell yourself, right.maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-58813165427226833762015-10-02T00:30:00.000-04:002015-10-03T00:33:07.115-04:00Installing Kill Bill on Ubuntu 14.04 with Tomcat 7.<div style="text-align: justify;">
I'm not a Java guy, and the guides out there seem to assume knowledge of deploying Java apps, so this took me a some time to get right, so I'm going to document the steps I took here.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">sudo apt-get install mysql-server mysql-client default-jdk tomcat7 tomcat7-common tomcat7-admin libmysql-java</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Kill Bill uses odd minor numbers for developing new features and even minor numbers for production releases. The download page <a href="http://killbill.io/downloads/">http://killbill.io/downloads/</a>. Hold off downloading anything until the instructions call for it.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
First we need to initialize the mysql database. We need a user and database for the killbill application. The following assumes that the root mysql user's password is foobar, that the database will be named killbill, and that the username and password for the application will be killbill:killbill. All of these are fine defaults with the exception of the passwords. Change as needed.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">mysql -u root -pfoobar</span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">mysql> create database killbill;</span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">mysql> create user 'killbill'@'localhost' identified by 'killbill';</span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">mysql> grant all on killbill.* to 'killbill'@'localhost';</span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">mysql> exit</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Now we need to initialize the database with the tables. At the download page, download the corresponding ddl.sql for your version of Kill Bill.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">wget http://docs.killbill.io/0.14/ddl.sql</span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">mysql -u root -pfoobar --database=killbill < ddl.sql</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Now that our database is setup we can configure Tomcat. First we need to setup credentials for the admin page. As root, open <span style="font-family: Courier New, Courier, monospace;">/etc/tomcat7/tomcat-users.xml</span> and replace the contents to look like this, replacing the username and password fields with what you want to use.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;"></span><br />
<span style="font-family: Courier New, Courier, monospace;"><tomcat-users></span><br />
<span style="font-family: Courier New, Courier, monospace;"> <role rolename="manager-gui"/></span><br />
<span style="font-family: Courier New, Courier, monospace;"> <role rolename="tomcat"/></span><br />
<span style="font-family: Courier New, Courier, monospace;"> <user password="tomcat" roles="tomcat,manager-gui" username="tomcat"/></span><br />
<span style="font-family: Courier New, Courier, monospace;"></tomcat-users></span></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;"></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Next, we need to set the maximum upload to a sane value that will be sufficient for uploading the WAR file. As root, open up /usr/share/tomcat7-admin/manager/WEB-INF/web.xml and find the key max-file-size. Set the lines as follows.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;"> <multipart-config></span><br />
<span style="font-family: Courier New, Courier, monospace;"> <max-file-size>524288000</max-file-size></span><br />
<span style="font-family: Courier New, Courier, monospace;"> <max-request-size>524288000</max-request-size></span><br />
<span style="font-family: Courier New, Courier, monospace;"> <file-size-threshold>0</file-size-threshold></span><br />
<span style="font-family: Courier New, Courier, monospace;"> </multipart-config></span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Finally we need to configure Tomcat to connect to the killbill database. As root, open up /etc/tomcat7/catalina.properties and append the following to the end of the file, changing any values as appropriate for your setup.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<div>
<span style="font-family: Courier New, Courier, monospace;"># Kill Bill properties</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">org.killbill.dao.url=jdbc:mysql://127.0.0.1:3306/killbill</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">org.killbill.dao.user=killbill</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">org.killbill.dao.password=killbill</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">ANTLR_USE_DIRECT_CLASS_LOADING=true</span></div>
</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Now that everything is configured we need to restart tomcat.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<span style="font-family: Courier New, Courier, monospace;">sudo service tomcat7 restart</span></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
On your local machine download the WAR file from the download page and save it somewhere so we can upload it to the server in the next step.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
On port 8080 of your server running tomcat browse to /manager/html/ In the section labeled "WAR file to deploy" click the "Choose File" button, select the WAR file you downloaded and then click the "Deploy" button.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
When the upload is complete the page will refresh and you should see it listed in the Applications section. Finally, click the Start button next to the killbill application and you should be in business.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
If the application will not start go over this guide to make sure you followed all the steps correctly. You can also look at the log files in /var/log/tomcat7/ to troubleshoot.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
As of Ubuntu 15.04 the tomcat8 and openjdk-8 packages are available to install. Both of these packages <i>should</i> be more performant, but it is up to you to try them out if you so desire.</div>
maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-38469633172253598642014-08-17T22:59:00.001-04:002016-01-08T22:09:28.322-05:00New Ubuntu Install Essentials<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">This is a live document I am keeping for myself of everything I need to do when I setup a new machine with Ubuntu. It is not intended to necessarily be useful for anyone else.</span><br />
<br />
<h2 style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight: bolder; margin: 0.75em 0px; padding: 0px; position: relative; text-align: justify; transition: none !important;">
PPAs</h2>
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: inherit; font-size: 14px; line-height: 19.6000003814697px; text-align: justify; transition: none !important;"><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;">ppa:libreoffice/ppa</span></span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: inherit; font-size: 14px; line-height: 19.6000003814697px; text-align: justify; transition: none !important;"><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;">ppa:git-core/ppa</span></span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: inherit; font-size: 14px; line-height: 19.6000003814697px; text-align: justify; transition: none !important;"><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;">ppa:jtaylor/keepass</span></span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: inherit; font-size: 14px; line-height: 19.6000003814697px; text-align: justify; transition: none !important;"><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;">ppa:byobu/ppa</span></span><br />
ppa:dlech/keepass2-plugins<br />
<br />
<br />
<br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;"><span style="animation-iteration-count: 0 !important; font-family: Courier New, Courier, monospace; line-height: 18px; transition: none !important;">sudo add-apt-repository ppa:libreoffice/ppa</span></span><br />
<br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;"><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;">sudo add-apt-repository </span><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;">ppa:git-core/ppa</span></span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;"><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;">sudo add-apt-repository </span><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;">ppa:jtaylor/keepass</span></span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;"><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;">sudo add-apt-repository </span><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;">ppa:byobu/ppa</span></span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; line-height: 18px; text-align: justify; transition: none !important;">sudo add-apt-repository </span><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; line-height: 18px; text-align: justify; transition: none !important;">ppa:dlech/keepass2-plugins</span><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;"><span style="animation-iteration-count: 0 !important; line-height: 18px; transition: none !important;"></span></span><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;"><span style="animation-iteration-count: 0 !important; font-family: Courier New, Courier, monospace; line-height: 18px; transition: none !important;">sudo add-apt-repository ppa:openjdk-r/ppa</span></span><br />
<h2 style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight: bolder; margin: 0.75em 0px; padding: 0px; position: relative; text-align: justify; transition: none !important;">
Programs To Install</h2>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">zsh</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">oh-my-zsh</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">byobu</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">Google Chrome</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">keepass2</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">git</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">gitg</span><span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">ssh</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">unity-webapps-gmail</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">unity-webapps-googlecalendar</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">unity-webapps-googleplus</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">unity-webapps-pandora</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">unity-webapps-youtube</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">Owncloud</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">keepass2-plugin-application-indicator</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">keepass2-plugin-application-menu</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">keepass2-plugin-keepasshttp</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">gnucash</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">openjdk-8-jre</span><br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify;">wine</span><br />
<br style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify; transition: none !important;" />
<span style="font-family: Courier New, Courier, monospace;"><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">sudo apt-get install zsh byobu keepass2 git gitk gitg ssh </span><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">unity-webapps-gmail unity-webapps-googlecalendar unity-webapps-googleplus unity-webapps-pandora unity-webapps-youtube keepass2-plugin-application-indicator </span><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">keepass2-plugin-application-menu </span><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">keepass2-plugin-keepasshttp gnucash openjdk-8-jre wine</span></span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">sudo dpkg -i </span><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">google-chrome-stable_current_amd64.deb</span></span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">rm </span><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">google-chrome-stable_current_amd64.deb</span></span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">sudo sh -c "echo 'deb http://download.opensuse.org/repositories/isv:/ownCloud:/desktop/xUbuntu_14.04/ /' >> /etc/apt/sources.list.d/owncloud-client.list"</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">wget http://download.opensuse.org/repositories/isv:ownCloud:desktop/xUbuntu_14.04/Release.key</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;"></span><br style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; text-align: justify; transition: none !important;" /></span>
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">sudo apt-key add - < Release.key</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">rm Release.key</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">sudo apt-get update</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">sudo apt-get install owncloud-client</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">ssh-keygen -t rsa -C "maxolasersquad@gmail.com"</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;"># This then needs to be added to https://github.com/settings/ssh</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">wget --no-check-certificate http://install.ohmyz.sh -O - | sh</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">cd ~/.oh-my-zsh/</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">git remote add maxolasersquad git@github.com:maxolasersquad/oh-my-zsh.git</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">git pull maxolasersquad master</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">git push maxolasersquad master</span><br />
<span style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small; text-align: justify; transition: none !important;">byobu-enable</span><br />
<h2 style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-weight: bolder; margin: 0.75em 0px; padding: 0px; position: relative; text-align: justify; transition: none !important;">
Firefox Plugins</h2>
<div style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; margin: 0px; outline: none; padding: 0px; text-align: justify; transition: none !important;">
https://addons.mozilla.org/en-us/firefox/addon/uacontrol/</div>
<div style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; margin: 0px; outline: none; padding: 0px; text-align: justify; transition: none !important;">
This needs to be configured as follows.</div>
<div style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; margin: 0px; outline: none; padding: 0px; text-align: justify; transition: none !important;">
Site: www.netflix.com</div>
<div style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; margin: 0px; outline: none; padding: 0px; text-align: justify; transition: none !important;">
Custom: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/31.0<br />
<h2 style="animation-iteration-count: 0 !important; font-weight: bolder; margin: 0.75em 0px; padding: 0px; position: relative; transition: none !important;">
Weather Indicator</h2>
</div>
<div style="animation-iteration-count: 0 !important; background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19.6000003814697px; margin: 0px; outline: none; padding: 0px; text-align: justify; transition: none !important;">
<span style="animation-iteration-count: 0 !important; font-family: 'Courier New', Courier, monospace; font-size: xx-small; transition: none !important;">sudo add-apt-repository ppa:pywapi-devel/ppa</span><br />
<span style="animation-iteration-count: 0 !important; font-family: 'Courier New', Courier, monospace; font-size: xx-small; transition: none !important;">sudo add-apt-repository ppa:weather-indicator-team/ppa</span><br />
<br style="animation-iteration-count: 0 !important; transition: none !important;" />
Next, these entries need to be changed from 'trusty' to 'saucy'.<br />
<br style="animation-iteration-count: 0 !important; transition: none !important;" />
<span style="animation-iteration-count: 0 !important; font-family: 'Courier New', Courier, monospace; font-size: xx-small; transition: none !important;">sudo apt-get update</span><br />
<span style="animation-iteration-count: 0 !important; font-family: 'Courier New', Courier, monospace; font-size: xx-small; transition: none !important;">sudo apt-get install indicator-weather</span></div>
maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-10632043416066310382014-08-12T01:16:00.000-04:002014-08-12T12:06:12.090-04:00Facebook Messenger Controversy Explained<div style="text-align: justify;">
I have seen a number of people on Facebook reposting a "news" articles explaining the privacy violations of Facebook's Messenger application. A number of people have declared that they have uninstalled Facebook from their phone completely. Even the reviews featured on the <a href="https://play.google.com/store/apps/details?id=com.facebook.orca" target="_blank">application's page on the Google Play Store</a> are all complaining about the privacy invasion.</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizeUu6UeKLMaHUunidxBBdniTTUvrnsotfcHQHshyphenhyphenPtObZQFlZuMyUNsJAWyXmebUOSjkPF3ZuB1pnJ91DLMHADdnFCZQYt6XBdroAOr5WyVKpJe7lrROYGVFsttT4LH1i1nlTpFcaBCM/s1600/messenger_comments.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizeUu6UeKLMaHUunidxBBdniTTUvrnsotfcHQHshyphenhyphenPtObZQFlZuMyUNsJAWyXmebUOSjkPF3ZuB1pnJ91DLMHADdnFCZQYt6XBdroAOr5WyVKpJe7lrROYGVFsttT4LH1i1nlTpFcaBCM/s1600/messenger_comments.png" height="125" width="640" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The article, which I am not linking to here (you can Google it), set off a lot of red flags. I have never written an application for Android, though I have followed their developer's tutorials a few times. I'm not an expert on Android development, but I have a rough understanding of the basics.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
When writing applications for a desktop computer (PC, Mac, etc.) applications have a lot of access to the computer hardware. Mobile devices are much more restrictive. Android locks out key functionality of the hardware from the applications that are installed. Before an application can have access to these parts of the system the application must first "request" permission. This is done by declaring in a file what permissions you need for your application. This includes permission to make and receive calls, access to the contact list, use the microphone, GPS, etc. This allows users to review and approve an application's access before installing it.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
However, if an application needs any access to one of these resources it can either always have access to that resource or never have access. This can make some applications look more scary than they are. For example, an application that shows you the weather based on the city you are in will need access to your GPS and the Internet. Granting these permission <i>could</i> allow this application to surreptitiously spy on you without your knowledge and report that back to some database, but it does not necessarily follow that it is actually spying on you.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
This is how the Messenger scare is working. For example, there is a feature that allows you to record an audio clip and then send it to a friend to listen to whenever they have the chance. To provide this functionality the application has to require access to the microphone. With this access the application <i>could</i> be listening in on you. However, the mere fact of the application having this permission is very, very different than <i>proof</i> that it is spying on you. In fact, it is not evidence at all. Fortunately it actually is possible to know if the application is using this permission for these purposes, but I'll get to that later.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
There is a great deal of irony in seeing people complain on Facebook about the privacy implications of their messenger application. It is hard to imagine how the privacy concerns of Facebook itself can be acceptable, but the possible implications of the Messenger applications are not. There are much better ways to protect your privacy than uninstalling a single application.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
One way I protect myself is by running an aftermarket version of Android called <a href="http://www.cyanogenmod.org/" target="_blank">Cyanogenmod</a>. It is based on the Android Open Source Project and is fully open source. The version of Android that carriers ship contain a lot of proprietary code that they have written to customize the experience. In the past some carriers have been shown to spy on their users in ways that where very embarrassing to the companies, and they where forced to remove it. However, there is no guarantee that many devices are not reporting on their users in ways that users would not agree with. In a post Snowden-world this is more than paranoia, but actually very likely.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
A nice feature of Cyanogenmod is that it provides much more fine-grained control over an applications privacy settings. Usually if you do not trust an application to have a permission it is requesting, your only recourse is to not install the application at all. Privacy guard allows the users to turn off any feature, or put it on "always ask." It also reports how often an application has used a permission and when it did it last. This allows us to peer into what an application is actually doing with the access it is requesting.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
What follows is a very long list of all of Messenger's permissions and reports on its use.</div>
<div style="text-align: justify;">
<br /></div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhno6XbYGh4vR8qVgTYDy3n_CP7QPldVI8cAeAr58x601u4ysKPZbwsQHLXYhIz1-9sbdMo8noUfIBVifaI7EMYxhbTz62kMJ_vI8cx4rlT_n6W-7WokjlBqUkMkqh-lwXReIilKhIoonM/s1600/facebook_permissions.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhno6XbYGh4vR8qVgTYDy3n_CP7QPldVI8cAeAr58x601u4ysKPZbwsQHLXYhIz1-9sbdMo8noUfIBVifaI7EMYxhbTz62kMJ_vI8cx4rlT_n6W-7WokjlBqUkMkqh-lwXReIilKhIoonM/s1600/facebook_permissions.png" height="320" width="63" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Click to enlarge</td></tr>
</tbody></table>
<div style="text-align: justify;">
So let's talk a little about what is going on here. As you can see, Messenger has to ask me before it can know my location. The only time it ever actually does that is when I message somebody. and that's only because I checked the "New messages include your location by default" box in Settings. It has never attempted to read my call log, calendar, SMS (text message) database or send or a text message, record audio, or make a phone call. In fact almost everything in here is looking pretty legit. Almost.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
You may notice the "Read Contacts" section. I have it set to Deny. Why? Look at the subtext. "Allowed 1854 times, denied 429 times." I had set this to Ask for a little while. I noticed that whenever I made or received a phone call or text message that the Messenger app was trying to read my contacts. I can imagine some semi-legitimate reasons why it might be doing this. For example, it may be trying to gauge who are the friends I contact the most so that it can then prioritize their posts on Facebook.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
However, this is too creepy. I do not want Facebook knowing this level of detail about my life. I do not want them knowing every time I send or receive a phone call or text message and who I was communicating with. I think that there is an actual new story behind this and would be worth someone's time to grill Facebook on and educate the public.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
And that's the real point. There are legitimate privacy implications of these portable computing devices we are carrying around in our pocket. People need to be more informed on what those implications are and have the education necessary to make informed decisions on how to manage these privacy concerns. Yellow-journalism articles that spread half-truths, getting people riled up about nothing-much are more hurtful than they are good.</div>
maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-58299581673561872242014-01-17T13:22:00.003-05:002014-01-17T13:22:54.553-05:00It May Be Time to Abandon Artificial SweetenersI have never been a fan of artificially sweetened food products. At first I just wanted things that are delicious, but as I get older I am thinking more and more about my health, and so these decisions are becoming more important. However, I feel that if I am going to put trash in my body, it should at least be delicious.<br />
<br />
I find artificial sweeteners to be disgusting. I can pick them out too. When my wife buys something artificially sweetened, sometime on accident, I notice the flavor immediately. Many people claim that they cannot tell the difference in the taste, but I can definitely tell the difference. The worst part, for me, is the horrible aftertaste that artificial sweeteners leave on my tongue.<br />
<br />
So when I want to be healthy I consume things that are both healthy and delicious. I can enjoy a glass of water, a plate of broccoli, or use a carrot as a snack with no problem. A lot of more recent research, though, is suggesting that choosing food products sweetened with real sugar may be more healthy than their low-calorie, artificially sweetened counterparts.<br />
<br />
In <a href="http://www.cell.com/trends/endocrinology-metabolism/abstract/S1043-2760(13)00087-8" target="_blank"><i>Trends in Endocrinology & Metabolism</i></a>, researcher Susan Swithers publishes "<a href="http://www.cell.com/trends/endocrinology-metabolism/abstract/S1043-2760(13)00087-8" target="_blank">Artificial sweeteners produce the counterintuitive effect of inducing metabolic derangements</a>" findings that show artificial sweeteners may be messing up our body's ability to properly process real sugar, which she discussed on NPR's <a href="http://sciencefriday.com/segment/07/12/2013/not-so-sweet-side-effects-of-artificial-sweeteners.html" target="_blank">Science Friday</a>.<br />
<br />
According to Swithers, when our brain detects sugar from smell or taste it tells your digestion system to get ready to start processing the sugar very soon. As most of us know, our bodies ability to properly process sugar is vital to our health. When it cannot process sugar right it can lead to diabetes. When we train our bodies that the sensation of sweet does not equate to the consumption of sugar, our bodies gets tired of your nose and tongue crying wolf and stops directing our digestion system appropriately. When we really do consume sugar our bodies stop processing sugar like it should and, according to Swithers, could be leading to an increased risk of diabetes.<br />
<br />
There is also evidence found by <a href="http://www.jhsph.edu/news/news-releases/2014/diet-beverages-not-the-solution-for-weight-loss" target="_blank">researchers at John Hopkins University</a> that those who consume foods using artificial sweeteners may also be making up for the lost calories by consuming them in higher quantities in other foods. There are many reasons why this may be true, but the overall result may not be quite what dieters are looking for.<br />
<br />
At the end of the day, if we want to be healthy we need to stop consuming unhealthy foods and switch to more healthy foods. Tea and coffee can be healthy zero-calorie drinks in moderation, for those who simply find moving to drinking more water to be too hard.maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-45959907556658182092013-10-03T21:59:00.005-04:002013-11-27T00:36:20.920-05:00Install KeePassHTTP on UbuntuFirst, of course, we need keepass, and we'll grab git while we are at it. Git is optional here, it just allows for easier updating.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo apt-get install keepass2 git-core</span></blockquote>
Where to put KeePass plugins is non-obvious, but fortunately some Googling reveals it to be at /usr/lib/keepass/plugins. Lets go there and create a directory for KeePassHTTP.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">cd /usr/lib/keepass2/</span><br />
<span style="font-family: Courier New, Courier, monospace;">sudo mkdir plugins</span><br />
<span style="font-family: Courier New, Courier, monospace;">cd plugins</span></blockquote>
Great, now we just need to download the plugin. As I alluded to at the beginning we can grab the plugin via git for easier updating. The project is maintained at <a href="https://github.com/pfn/keepasshttp">https://github.com/pfn/keepasshttp</a>, but we can just grab the one plugin file we need. In fact, if we checkout the entire repository then KeePass will throw some errors as the plugin is there twice in two different formats and it can only load the plugin one time.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo git clone -n https://github.com/pfn/keepasshttp.git --depth 1</span><br />
<span style="font-family: Courier New, Courier, monospace;">cd keepasshttp</span><br />
<span style="font-family: Courier New, Courier, monospace;">sudo git checkout HEAD KeePassHttp.plgx</span></blockquote>
Now you can update the plugin at any time by running the following from the /usr/lib/keepass/plugins/keepasshttp directory.
<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">git pull</span></blockquote>
If you are only interested in downloading the file once and not worrying about updates you can simply download the extension file.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">wget https://raw.github.com/pfn/keepasshttp/master/KeePassHttp.plgx</span></blockquote>
Now you can restart KeePass2 and the plugin will be loaded.maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-32200391392247461782013-10-03T00:44:00.001-04:002013-10-03T00:48:42.819-04:00Congress Shall Make No LawIt seems that a lot of people are very confused about the Bill of Rights and what it legally affords the citizens of the United States. I'm not referring to confusions what the right to bear arms mean, or what speech is free speech. I am referring to who the Bill of Rights is designed to protect citizens from. This misunderstanding became prominent in both the Chick-Fil-A brouhaha over marriage equality, and Starbucks and their policies about guns in their stores.<br />
<br />
So in these debates people are referencing the constitution to make it known what their rights are, accusing those who disagree with them of denying them their rights. This would be laughably wrong if the accusations where not so widespread, large in numbers, and coming from every side of the issue.<br />
<br />
Here is what the Constitution says about your rights in these situations. If I own a business, and it is truly MY business, I can use the money made from that business and spend it on any political, social, or ethical type of causes within the limits of the laws that govern such things.<br />
<br />
So I have the right to do that with my business. But it is a two-way street, consumers can choose to not shop at my store for any reason they want. It could be the color or fashion of my tie. It could be my race, gender, ethnicity, socio-economic upbringing. Oh yeah, it can also be for my politics or the way I use the profits generated from my business. And in response I can do nothing, pretend to do something, or actually change my practices. That is my right. But the constitution does not restrict how I can run my business, and it does not say that anyone has to ever purchase my products, ever. This is how things work in a free society. In fact, this is how capitalism is supposed to work. People boycotting CFA over the gay rights issue is capitalism in action. CFA can change their behavior in response to the boycotts, do nothing, or choose any other option they want.<br />
<br />
So this takes us to Starbucks where the coin is flipped over a little bit. Gun rights activists took Starbucks establishments by storm in states that have open-carry laws, buying coffee at Starbucks while carrying a weapon on their person. Shortly after Starbucks changed their policy to "ask" customers carrying a weapon in an open-carry state to leave their weapon in their car. Customers where still allowed to actually carry a weapon on them, the new policy just stated that they would be asked not to. This got gun-rights activists upset so they started boycotting Starbucks. To be clear there where some very uncivil responses leaving some Starbucks cafes with smashed windows. However, the boycott alone is just capitalism at work in a free society. It is the right of Starbucks to have whatever policy they want regarding weapons in their store, and it is the right of open-carry supporter to note buy a Starbucks. Neither the policy nor the boycott are a violation of anyone's rights.<br />
<br />
I ran into this same issue again when someone on Facebook posted "Will someone just take one for the team already and shoot Obama???" I decided to take this person to task on their remark and received the response "Freedom of speech. If you don't like it delete me" Putting aside the issue of whether or not saying someone should be murdered really is freedom of speech, there is a more important issue here. If I disagree with something you say, that is not a violation of your freedom of speech. It is in fact a dialogue. It seems that many believe anything outside of an echo chamber is a violation of their freedom of speech.<br />
<br />
We need to stop muddying the waters of freedom. You don't get to do and say anything you like and expect nobody to respond with dissent. Dissent is how we get stuff done. It is how we grow us both individuals and collectively as a society. We disagree, we make our disagreements known, we work them out with those that we are disagreeing with. We move on and grow. People need to get over themselves and their opinions and realize if you have something you care about there is someone out there who is going to disagree with them. Get over it. If you can't think of a better argument than hiding behind rights you don't have then it may be a good time to reexamine your values.<br />
<br />
The freedoms granted to us in the constitution, freedom of speech and religion, "the right of the people to keep and bear Arms", etc. are there to keep congress from passing laws infringing on those rights. They are not there to keep other citizens from disagreeing with you, and taking actions against your point of view.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJQP6k1ja-TTG-eKglJ_MCEAta7ynERTbkhcxZm6jb1vHkS39RH3QukmoNPWzXBw26e6NLDFNxJCY4GWsKaqNp-KT6GXd_ZOQUJioGAgSixRef41DDMV-xPrPzMRRS_tUgIa1cl96SIW0/s1600/Do-not-think-it-means.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="276" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJQP6k1ja-TTG-eKglJ_MCEAta7ynERTbkhcxZm6jb1vHkS39RH3QukmoNPWzXBw26e6NLDFNxJCY4GWsKaqNp-KT6GXd_ZOQUJioGAgSixRef41DDMV-xPrPzMRRS_tUgIa1cl96SIW0/s320/Do-not-think-it-means.jpeg" width="320" /></a></div>
<br />maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-56361690927216237012013-09-29T22:07:00.001-04:002016-01-08T22:10:35.374-05:00Compiling Snes9x on UbuntuAfter looking into the various SNES emulators available for Linux it looks like Snes9x is the only one that is of high quality and currently maintained. ZSNES seems to work pretty well, but it won't compile on 64-bit, giving you a very old emulator running as a 32-bit binary for the foreseeable future.<br />
<br />
I used these instructions on a 64-bit Ubuntu 12.04 machine and a 32-bit Ubuntu 13.10 machine. There are two sets of instructions here. One is for compiling the Unix version of Snes9x and the other is for install the GTK3 version. Theses instructions worked perfectly on 12.04 but on 13.10 the GTK3 version segfaults. I don't know if the issue is with 13.10 or perhaps an incompatibility with my laptop's hardware and Snes9x GTK.<br />
<br />
The currently maintained codebase of Snes9x is hosted up on <a href="https://github.com/snes9xgit/snes9x" target="_blank">github</a> so we will need to install git. We'll get all the tools required to build the source code while we are at it.<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">sudo apt-get install git build-essential</span></blockquote>
Now we can check out the codebase.<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">git clone https://github.com/snes9xgit/snes9x.git<br />cd snes9x</span></blockquote>
<div>
<br /></div>
<b>Part 1 - Building the Unix version of Snes9x</b><br />
The Unix version does not contain any sort of interface save for the running game itself. It supports a number of command-line switches. Unfortunately it does not seem to provide any way of running in fullscreen mode.<br />
<br />
First we need the dependent libraries.<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">sudo apt-get install zlib1g-dev libpng12-dev xorg-dev</span></blockquote>
Now we can compile.<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">cd unix</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">autoconf</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">./configure --enable-netplay</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">make</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo cp snes9x /usr/bin/</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo chown root:root /usr/bin/snes9x</span></blockquote>
Now we have an executable binary named snes9x. You can go ahead and execute it passing in a SNES rom as the first argument or with no arguments for a list of acceptable options.<br />
<br />
To create an entry in our desktop menu create the following file and save it as /usr/share/applications/snes9x.desktop<br />
<blockquote class="tr_bq">
[Desktop Entry]<br />
Version=1.0<br />
Name=Snes9x<br />
Comment=A portable, freeware Super Nintendo Entertainment System (SNES) emulator.<br />
GenericName=Snes9x<br />
Keywords=Games<br />
Exec=snes9x<br />
Terminal=false<br />
X-MultipleArgs=false<br />
Type=Application<br />
Icon=/usr/share/pixmaps/snes9x.png<br />
Categories=Game<br />
StartupWMClass=Snes9x<br />
StartupNotify=true</blockquote>
Finally, find an icon you want to use and save it as /usr/share/pixmaps/snes9x.png You can get a good icon to use <a href="http://maxolasersquad.com/snes9x.png" target="_blank">here</a>.<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">sudo wget <a href="http://maxolasersquad.com/snes9x.png">http://maxolasersquad.com/snes9x.png</a> -O /usr/share/pixmaps/snes9x.png</span></blockquote>
<br />
<b>Part 2 - Building the GTK3 version of Snes9x</b><br />
The GTK3 version includes a nice GTK interface with all sorts of configurable options, including fullscreen.<br />
<br />
First we need to get the dependent libraries.<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">sudo apt-get install intltool autoconf automake libglib2.0-dev gawk libgtk-3-dev libxml2-dev libxv-dev libsdl1.2-dev libpulse-dev libportaudio-dev </span></blockquote>
As of Ubuntu 15.10, instead of <span style="font-family: "Courier New",Courier,monospace;">libportaudio-dev</span> you need to install <span style="font-family: "Courier New",Courier,monospace;">portaudio19-dev</span>. <br />
If you want a GTK2 build then install libgtk2.0-dev and you can leave out libgtk-3-dev.<br />
Now we can generate the install scripts and compile.<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">cd gtk<br />./autogen.sh<br />./configure --with-gtk3<br />make</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo cp snes9x-gtk /usr/bin/</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo chown root:root /usr/bin/snes9x-gtk</span></blockquote>
You can leave out --with-gtk3 if you want a gtk2 build instead.<br />
<br />
Now we have an executable binary named snes9x-gtk.<br />
<br />
To create an entry in our desktop menu create the following file and save it as /usr/share/applications/snes9x.desktop<br />
<blockquote class="tr_bq">
[Desktop Entry]<br />
Version=1.0<br />
Name=Snes9x GTK<br />
Comment=A portable, freeware Super Nintendo Entertainment System (SNES) emulator.<br />
GenericName=Snes9x GTK<br />
Keywords=Games<br />
Exec=snes9x-gtk<br />
Terminal=false<br />
X-MultipleArgs=false<br />
Type=Application<br />
Icon=/usr/share/pixmaps/snes9x.png<br />
Categories=Game<br />
StartupWMClass=Snes9x<br />
StartupNotify=true</blockquote>
Finally, find an icon you want to use and save it as /usr/share/pixmaps/snes9x.png You can get a good icon to use <a href="http://maxolasersquad.com/snes9x.png" target="_blank">here</a>.<br />
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">sudo wget <a href="http://maxolasersquad.com/snes9x.png">http://maxolasersquad.com/snes9x.png</a> -O /usr/share/pixmaps/snes9x.png</span></blockquote>
maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com7tag:blogger.com,1999:blog-2160921736769720124.post-91694476597760682952013-09-05T09:01:00.001-04:002013-09-05T09:17:45.072-04:00How to flush your swap on Unix machinesAfter your computer has been running for some time you may find that some memory is stuck living in swap while your RAM has space readily available. The data in your swap will be accessed much slower than if it was living in proper RAM space and it may be to your advantage to force it to RAM. I use the following to clean out the swap on my Ubuntu 12.04 workstation.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo swapoff -a && sudo swapon -a</span></blockquote>
Of course, if you are running as root you can omit <span style="font-family: Courier New, Courier, monospace;">sudo</span> from the above command.<br />
<br />
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkthBlvLzWxBFb3dObWBvBd8ZmeXKrKcXJpQu9T3v-itfX0RxdIPDqy9TMEjEfxQ3p2IBPYojXjIRe1jZIndxg3zrAVuKAchU5jOw2fJt0Mpnh_to73Jg5zOSlJatcRawYk6Yr2JVPEjI/s1600/swap1.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkthBlvLzWxBFb3dObWBvBd8ZmeXKrKcXJpQu9T3v-itfX0RxdIPDqy9TMEjEfxQ3p2IBPYojXjIRe1jZIndxg3zrAVuKAchU5jOw2fJt0Mpnh_to73Jg5zOSlJatcRawYk6Yr2JVPEjI/s320/swap1.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Plenty of room to move the swap in to.</td></tr>
</tbody></table>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="clear: right; margin-bottom: 1em; margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrJSe2fs7q02i4MrZHHeoonGqs7I199WQSlfTC36bI6cqFZJrG2c5C4AOXsQnz1HR-9bmJ3twOkwpbShU6AmtI8Jv5oOxz07LLJurrucvZ-lxJu1DRNI6jXm3Ad-2BMWN9CBwrC-mCyuY/s1600/swap2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgrJSe2fs7q02i4MrZHHeoonGqs7I199WQSlfTC36bI6cqFZJrG2c5C4AOXsQnz1HR-9bmJ3twOkwpbShU6AmtI8Jv5oOxz07LLJurrucvZ-lxJu1DRNI6jXm3Ad-2BMWN9CBwrC-mCyuY/s320/swap2.png" width="320" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;">Swap has been flushed to RAM.</td></tr>
</tbody></table>
</div>
maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-58956466387693402852013-08-18T23:28:00.000-04:002013-08-19T12:00:08.930-04:00Using Rom Collection Browser to play NES games on XBMC 12 with UbuntuXBMC is by far my favorite IPTV software. I run it in my living room and use it to play my music collection and easily watch my entire DVD collection without ever needing to pop in CDs or DVDs. All my media is stored in a hard drive on my home server.<br />
<br />
I had toyed around with using the Rom Collection Browser plugin to play Nintendo games, but getting it working right is not a trivial task. After a lot of messing around I finally have it working right. These instructions are using XBMC 12 on Ubuntu 13.10 and fceux for the emulator.<br />
<br />
First things first. Never run with the version of XBMC packaged for Ubuntu. Team XBMC keeps an up to date version in their ppa at <a href="https://launchpad.net/~team-xbmc/+archive/ppa">https://launchpad.net/~team-xbmc/+archive/ppa</a>. You can set it up with the following commands.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo add-apt-repository ppa:team-xbmc/ppa<br />sudo apt-get update<br />sudo apt-get install xbmc</span></blockquote>
Next we need fceux to act as our NES emulator. You could install fceux with the following command.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo apt-get install fceux</span></blockquote>
However, I wanted to have the latest version of fceux. Since a ppa does not seem to be available I figured out how to compile it from source. It is not very hard and I have full instructions <a href="http://maxolasersquad.blogspot.com/2013/08/compiling-fceux-on-ubuntu.html" target="_blank">here</a>. Whether you choose to use the version from apt or compile it should not affect it working with the following instructions. If you do install it from apt and have issues let me know in the comment section and I will look in to it for you.<br />
<br />
Now that our system is setup we need to fire up XBMC. Choose Programs from the strip and then "Get More..." select "Rom Collection Browser and install it.<br />
<br />
The first time you launch it you will get a menu asking you to create a config file. Choose Yes. Next choose "Scrape game info and artwork online." For the platform select NES.<br />
<br />
Now it needs to know where the emulator is located at. Select "Root filesystem". Next choose the usr directory, followed by the bin directory. In here scroll down until you find fceux. Select it and click OK.<br />
<br />
Your emulator params should be as follows.<br />
<blockquote class="tr_bq">
-f 1 -x 1440 -y 900 "%ROM%"</blockquote>
You will need to change the 1440 and 900 to match your screen resolution. It can be any resolution your monitor/TV supports. The best way to get it is to either go to the Displays section in the Ubuntu Settings screen, or in XBMC under SYSTEM→Settings→System→Video output→Resolution.<br />
<br />
Finally it ask you to tell it where you save your game roms. Usually it will be somewhere in your home folder so select "Home Folder" and browse down from there. When asked for the file mask type use <span style="font-family: Courier New, Courier, monospace;">*.nes</span>, unless you keep all of your roms in a zip file, in which case choose <span style="font-family: Courier New, Courier, monospace;">*.zip</span>. Theoretically you could use <span style="font-family: Courier New, Courier, monospace;">*.zip, *.nes</span> but I had problems getting this to work. YMMV. I choose to just keep all my roms uncompressed since they are so small anyways.<br />
<br />
The next question asks you about where to store artwork. You can create a separate directory for the artwork if you like. I chose the same directory as the roms. It creates subdirectories to store the art anyways. How you want to handle this is up to you.<br />
<br />
Lastly, answer No when asked if we want to add another rom collection.<br />
<br />
With all of our parameters setup click the Import Games button leaving all the settings in tact. Depending on the size of your rom collection this could take a while as it looks up each rom and downloads the metadata for each rom.<br />
<br />
There is one last setting we need to make for convenience. Go to the main XBMC page and navigate to System→Settings→Appearance→Skin→Settings→Add-on. Under <span style="font-family: Courier New, Courier, monospace;">Home Page Programs Submenu</span> choose <span style="font-family: Courier New, Courier, monospace;">Add-on 1</span> and then select <span style="font-family: Courier New, Courier, monospace;">Rom Collection Browser</span>. Now the rom list can be loaded from the home screen.<br />
<br />
Now you should be ready to play your favorite Nintendo games straight in XBMC. There are a few gotchas you should be aware of.<br />
<br />
The default fceux keys are as follows.<br />
Start: Enter<br />
Select: s<br />
A: f<br />
B: d<br />
Reset: F11<br />
<br />
The next one that bit me is that fceux doesn't seem to support batteries so game saves are lost after you exit. Instead use F5 to save your game and F7 to restore from the save.<br />
<br />
The delete key shuts down the emulator and takes you back to XBMC.<br />
<br />
It is a good idea to log into the regular Ubuntu desktop and play with the fceux settings directly in fceux. My personal favorite is to go under Options→Video Config and set the special scalar to hq3x. This plays with the 8-bit graphics to make them look less blocky. You can also configure a gamepad, set hotkey bindings, etc. The changes you make here will be reflected when it is ran from XBMC.maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-90147369653448971032013-08-18T09:56:00.000-04:002016-01-17T17:57:39.859-05:00Compiling fceux on Ubuntu<div class="tr_bq">
The following instructions are what I used to install fceux 2.2.1 on Ubuntu 13.10.</div>
<br />
First you need to download the source. You can get it from <a href="http://www.fceux.com/web/download.html">http://www.fceux.com/web/download.html</a>. Download the FCEUX src.<br />
<br />
The rest of the instructions will assume that you are at the command line in the directory where you downloaded the file. Replace the file name in the instructions with the name of the file, which will be different if you downloaded a version different from 2.2.1.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo apt-get install libsdl1.2-dev scons libgtk-3-dev liblua5.1-0-dev libgd-dev<br />tar xzvf fceux-2.2.1.src.tar.gz<br />cd fceux-2.2.1</span></blockquote>
At this point you will need to open the file named SConstruct<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">vi SConstruct</span></blockquote>
Change lines 27 and 28 to look like this.<br />
<blockquote class="tr_bq">
BoolVariable('GTK', 'Enable GTK2 GUI (SDL only)', 0),<br />
BoolVariable('GTK3', 'Enable GTK3 GUI (SDL only)', 1),</blockquote>
This will give us a modern GTK3 interface instead of using the now outdated GTK2 toolkit. Feel free to change any of the other settings if you wish. I turned off the debug symbols. Now we are ready to compile our binary.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">scons</span></blockquote>
This took about 10 - 15 minutes on my Dell 1420. Once it is done we can install it to the system.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo scons --prefix=/usr install</span></blockquote>
The last step is optional but provides a little more desktop integration. You can get a better fceux icon <a href="http://maxolasersquad.com/fceux.png" target="_blank">here</a>.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace;">sudo cp fceux.desktop /usr/share/applications<br />sudo cp fceux.png /usr/share/pixmaps</span></blockquote>
If you use Unity for your desktop you can change the contents of fceux.desktop in the /usr/share/applications directory to append the following to get some additional benefits when you right-click on the launcher icon.<br />
<blockquote>
Actions=Fullscreen;DefaultConfig;<br />
[Desktop Action Fullscreen]<br />
Name=Open in Fullscreen<br />
Exec=fceux -f 1<br />
OnlyShowIn=Unity<br />
[Desktop Action DefaultConfig]<br />
Name=Start With the Default Configuration<br />
Exec=fceux --no-config 1<br />
OnlyShowIn=Unity</blockquote>
maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-79813402184209755882013-07-01T12:08:00.001-04:002014-11-08T22:02:20.208-05:00Installing Minecraft 1.6 on UbuntuI had previously blogged about <a href="http://maxolasersquad.blogspot.com/2013/01/installing-minecraft-on-ubuntu.html" target="_blank">Installing Minecraft on Ubuntu</a>. As of Minecraft version 1.6 these instructions no longer work because of a newly introduced launcher. The following is updates instructions for version of Minecraft 1.6 and above.<br />
<br />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">First we need to install Java. The website claims it needs Oracle Java, but the open source Java in the Ubuntu repos works just fine in my experience.</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">sudo apt-get install openjdk-7-jre</span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">Now we need the launcher</span><br />
<blockquote class="tr_bq" style="background-color: white; text-align: justify;">
<span style="color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; line-height: 19px;">sudo wget </span><span style="color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="line-height: 19px;">https://s3.amazonaws.com/Minecraft.Download/launcher/Minecraft.jar</span></span><span style="color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"> -O </span><span style="color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small;">/usr/games/Minecraft.jar</span><br />
<span style="color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="line-height: 19px;">sudo chown root:games /usr/games/Minecraft.jar</span></span><br />
<span style="color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="line-height: 19px;">sudo chmod 755 /usr/games/Minecraft.jar</span></span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">Change the vi part in the next section to gedit if you want a graphical text editor.</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">sudo vi /usr/games/minecraft</span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">The file contents should be as follows.</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">#!/bin/bash<br />java -jar /usr/games/Minecraft.jar</span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">And then set the proper permissions on the file</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">sudo chown root:games /usr/games/minecraft<br />sudo chmod 755 /usr/games/minecraft</span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">Again, change vi with something else if that is easier for you.</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">sudo vi /usr/share/applications/minecraft.desktop</span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">And put this in the file.</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">[Desktop Entry]</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">Name=Minecraft</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">Comment=Build your own world</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">Exec=minecraft</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">Icon=minecraft</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">Terminal=false</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">Type=Application</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">Categories=GNOME;Applications;Game</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">Keywords=minecraft;Game</span><br />
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">StartupNotify=true</span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">The last piece we need is an icon. There are many good Minecraft icons at </span><a href="http://www.rw-designer.com/icon-detail/5547" style="-webkit-transition: color 0.3s; background-color: white; color: #009eb8; display: inline; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; outline: none; text-align: justify; text-decoration: none; transition: color 0.3s;">http://www.rw-designer.com/icon-detail/5547</a><span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;"> I like </span><a href="http://www.rw-designer.com/icon-image/5547-256x256x32.png" style="-webkit-transition: color 0.3s; background-color: white; color: #009eb8; display: inline; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; outline: none; text-align: justify; text-decoration: none; transition: color 0.3s;">http://www.rw-designer.com/icon-image/5547-256x256x32.png</a><span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;"> as it gives us the highest resolution available. Replace the URL of the icon you prefer to use in the following command.</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">sudo wget http://www.rw-designer.com/icon-image/5547-256x256x32.png -O /usr/share/pixmaps/minecraft.png</span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">Now you should be able to play Minecraft by simply typing minecraft in the command-line, in the Unity dash, the KDE prompt, or by browsing to the games menu in the applications menu in your desktop environment of choice. It is also available to all users of your desktop.</span><br />
<br style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;" />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">You also do not need to do anything to update. Minecraft updates itself each time you start it.</span><br />
<br style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;" />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">BONUS</span><br />
<br style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;" />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">I've got one more neat trick up my sleeve. If a CraftBuntu spin sounds good to you, here's how you can setup Ubuntu to just run Minecraft when you sign in. It assumes you have already done the above.</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">sudo cp /usr/share/applications/minecraft.desktop /usr/share/xsessions/</span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">Now Minecraft is an available option when you select your desktop environment. This works best if you set Fullscreen in the Minecraft options.</span><br />
<br style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;" />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">You could do a number of things with this setup. You could setup a minimal Ubuntu installation that has no desktop environment, or other desktop-related software installed. You could also allow guests to play Minecraft without touching any of your stuff by them selecting the Ubuntu guest account and setting Minecraft for the login. I have even found that on my struggling laptop this setup allows Minecraft to run more smoothly as there is no other desktop cruft running in the background.</span><br />
<br style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;" />
<br style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;" />
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">UPGRADING FROM 1.5</span><br />
<div>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;"><br /></span></div>
<div>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">If you had already followed my instructions back in the days before 1.6, the following will get you updated to 1.6</span></div>
<div>
<blockquote class="tr_bq" style="background-color: white; text-align: justify;">
<span style="color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small; line-height: 19px;">sudo rm /usr/games/minecraft.jar<br />sudo wget </span><span style="color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="line-height: 19px;">https://s3.amazonaws.com/Minecraft.Download/launcher/Minecraft.jar</span></span><span style="color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small;"> -O </span><span style="color: #333333; font-family: 'Courier New', Courier, monospace; font-size: xx-small;">/usr/games/Minecraft.jar</span><br />
<span style="color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="line-height: 19px;">sudo chown root:games /usr/games/Minecraft.jar</span></span><br />
<span style="color: #333333; font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="line-height: 19px;">sudo chmod 755 /usr/games/Minecraft.jar</span></span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">Change the vi part in the next section to gedit if you want a graphical text editor.</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">sudo vi /usr/games/minecraft</span></blockquote>
<span style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;"><br class="Apple-interchange-newline" />The file contents should be as follows.</span><br />
<blockquote class="tr_bq" style="background-color: white; color: #333333; font-family: 'Helvetica Neue Light', HelveticaNeue-Light, 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 19px; text-align: justify;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: xx-small;">#!/bin/bash<br />java -jar /usr/games/Minecraft.jar</span></blockquote>
</div>
maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-86476463618279433892013-06-17T12:00:00.000-04:002014-04-07T23:18:01.354-04:00Summer Vacation 2013 - Day 3The day started out warm, a sign of things to come. This morning breakfast was scheduled for some simple Rice Crispies. Athena declared she didn't like Rice Crispies and was in fact not hungry anyways. Realizing<br />
<br />
(Unfortunately this is all I have of that day's log.)maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-463530879298484542013-06-16T12:00:00.000-04:002014-04-07T23:17:05.374-04:00Summer Vacation 2013 - Day 2Our second day of vacation happens to fall on Father's Day. For this reason we had planned that we would not be on the road, but would stay in Charleston and do fun family things. As Kim says, we get to do whatever I want to do.<br /><br />I was awoken by Aurora and Athena saying "Happy Fathers Day!" in unison, which they had apparently planned the night before. The camp was holding a Father's Day Pancake breakfast so when we all got up and reasonably ready we headed off to breakfast. The breakfast was frozen sausage patties cooked on a griddle and pancakes from a box mix. The kids readily noticed the difference between this breakfast and one we where likely to make from home with real sausage and pancakes from scratch. Nonetheless we where all happy to have a hot cooked breakfast that did not include any cleaning up from our part.<br />After breakfast we took showers, brushed out teeth, and took care of all the other morning business before heading out.<br /><br />Our first order of business was finding a place to paddle on some water. We discovered that the park we are staying in has kayak and paddle-boat rentals. We took out a one hour rental on a single kayak for Aurora and two double kayaks. Athena paddled with me while Arianna rode with Kim. The lake provided a barely adequate kayaking experience. The water is a mud brown and did not look very appealing. On our trip we kayaked next to dogs having balls thrown in the water by their owners to retrieve and RC sail boats that where participating in a local RC sail boat race. With little shade on the water and a river that didn't match the Wakulla River we are used to enjoying we found ourselves back on shore ten minutes earlier than necessary. After driving around the grounds a little we headed back to camp for lunch.<br /><br />At camp we discussed our next destination. The park has a climbing wall that Aurora was very interested in and a water park that Athena was wanting to visit. With Arianna as the tie-breaker she kept switching from wanting to go to the water park to not having an opinion. Kim and I both concluded that the climbing wall would probably leave Arianna out and that the water park would be best for making sure everyone was able to participate. With Aurora making her objections well known we went to the water park.<br /><br />We knew that after 3:00 the tickets where about half priced and we had a little under an hour before we could get the discount so we headed over to a fishing and crabbing dock listed on the park map.<br /><br />As a teenager docks where always a favourite place to hangout when camping. I clearly remember my brothers and sister spending hours on the docks of the various campgrounds we visit. At the dock we could watch people fish, be surprised by jumping fish, see boats pass by, meet strangers, and generally just relax and talk away from the eyes of our parents. I have always enjoyed the company that a dock has to offer. At this dock I quickly found my serenity. A man was using chicken to catch crabs in a trap. A few other people had brought their fishing poles and the kids enjoyed watching the people cast their lines out and reel them back in. I found a place by the water to enjoy the scenery of the marshes and swamps that filled the far expanse of the water system.<br /><br />Kim, as it turns out, just found herself getting hot and uncomfortable, so we only ended up at the dock for about thirty minutes. We purchased water park tickets at the campground HQ as they where cheaper purchased there by registered guests, giving us a slight additional discount.<br /><br />At the park Athena and Aurora buddied up, Arianna and I buddied up, and Kim was given a rare chance to relax doing whatever she wanted alone. The two big sisters quickly found the two water slides and started making their rounds going up the steps, down the chutes, and then back up for more fun. Arianna and I drifted from the pool, to the kiddie water playground and back. Eventually I was able to coax Arianna in to trying the water slides with the promise of smores at night. Her confidence waxed and waned as we made our way up the steps, but she found the courage to finally go down with me. At the bottom she was giddy with excitement at the thrill of riding a tube down a water slide. I thought she would definitely make another go of it, but she was content at first and guided me back to the pool area.<br /><br />Next I got her to take the lazy river with me. She did not let it be so lazy for me. She demanded we go this way, or that way, and laughed as the waterfalls and water sprays doused us as we passed through. One go through the lazy river and she was done. It wasn't long before she guided me back to the slides where we tried both the original open-air white slide and the enclosed green slide. We kept switching back and forth and then Kim got my phone to snap a picture of us coming down. As we reached the end, instead of grabbing Arianna and making sure she was secure with me I raised a hand in the air for a pose. While it did make for a nice picture that Kim caught very well, it also left us vulnerable as I lost my balance when we hit the water and our raft flipped, leaving Arianna in the water.<br /><br />One very nice thing about this water parked is that they are fully staffed with attentive life guards. Before I had a chance the life guard at the bottom pulled Arianna out of the pool. The experience shook her up very good and she was done with the slides. So Arianna and I found ourselves back in the pool for a while. A little while later Aurora and Athena where having a hard time agreeing about what to do so Kim took Athena and left Aurora to her own will.<br /><br />About an hour before closing Arianna got her nerve back up for the slides where we spent almost the rest of the time. Arianna had which slides we would do down in advanced, with a plan on which slide we where going to do now, and what the next three slides we where going to do already scheduled. This gave her great fun, and a few times she went down with Aurora and let me take some solo trips.<br /><br />At the end even Aurora agreed that this was a better idea than a climbing wall. If nothing else, the cool water made us feel like the otherwise hot day was actually cool. It wasn't until we where back at camp and our bodies had time to readjust that we came back to realizing the heat the day was providing.<br /><br />Afterwards we found a local Bi-Lo. Aurora and I went in and purchased goods for making smores and I even treated everyone with a drink. A Coca-Cola for Kim and I to share, a Mountain Dew for Aurora, a Dr. Pepper for Athena, and a lemonade Gatorade for Arianna. This was the first time we had anything but water since leaving our house.<br /><br />For dinner I cooked chicken breasts, new potatoes, and corn. Aurora cut up the potatoes and wrapped them in tin foil. Athena and Arianna shucked the corn and Kim wrapped it up in tin foil. I started the fire, which took me longer than usual, and cooked it all over the grill. The corn turned out the best of all. It was very sweet and juicy. We all ate our fill and had some left over.<br /><br />Our second night camping proved to be a little on the warm side and it took a while before the night brought the cool air necessary to make us comfortable. Even with our tent being in a wooded area shaded from sunlight, it was no escape from the muggy summer swamp air.<br /><br />All-in-all a very good Father's Day even though we where far away from home with little leeway for where to go and what to do.maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-24778498153149489582013-06-15T12:00:00.000-04:002014-04-07T23:14:56.317-04:00Summer Vacation 2013 - Day 1Kim and I spent most of Thursday and Friday afternoon getting everything packed and loaded into the car so we would be ready to go Saturday morning. We left the house a little after 9 o'clock and dropped off the dogs. Kim had already dropped of the cat with Katie earlier that morning. We where on the Interstate a little after 10.<br />
<br />
We quickly discovered that the electric outlets in the car where not working. This was not good as Kim's phone was dead, and we where relying on the GPS on our phones to get us to our destination. I was also hoping to let the kids tether to my phone's Internet for entertainment along the way. In town we made a few stops to find a replacement fuse, and also stopped at the truck stop in Lloyd, but didn't find any. At the truck stop I remembered I might have bought fuses and put them in the glove compartment box, which is where we did in fact find replacement fuses.<br />
<br />
I drove the first stretch until we stopped a little after noon at a rest stop and ate sandwiches. The girls did a great job running around the grassy area and playing with each other while Kim and I rested and enjoyed some time at the picnic table.<br />
<br />
Kim drove after lunch and we only stopped for the occasional bathroom break. As I sat passenger the kids where good enough that I was able to take a nap that I wasn't expecting I needed. After Kim manned the helm for a few more hours on the road I took over driving the final part of the trip.<br />
<br />
As Kim's luck would have it, the kids where very needy while I was driving. Arianna was especially needy as she wanted to do crossword puzzles and use these little sewing kits that Kim bought, but found she needed a lot of help that Kim was unable to provide from the passenger's seat, so Arianna through her share of fits and cried a lot.<br />
<br />
By the time we where nearing Charleston the kids where very ready to be at our destination. After we exited the Interstate we still had over an hour of driving ahead of us before we where actually in Charleston. The trip consisted of lots of swamps, rivers, marshes, and wooded areas that where very pretty and was almost relaxing over the constant "are we there yet?"s.<br />
<br />
Our destination in Charleston is John Island Park, which is a very large park. It has a full water park, climbing wall, camp grounds, primitive camping, conference halls, fishing dock, kayaking river, and more. We had reserved a spot in the primitive camping grounds.<br />
<br />
As soon as we arrived I began scoping out a spot for us to camp, leaving the rest of the family in the car and AC. The primitive camping grounds is a large open grassy area surrounded by trees. I noticed one tent had taken advantage of a little clearing in the trees and soon I found another clearing in the trees where we could have 24-hour shade. I quickly went back to the car and retrieved Aurora to stand in the area to prevent anyone else from grabbing our spot.<br />
<br />
We made quick work of unloaded our van. On the last trip back Kim locked up the car and we began setting up camp. It did not take long before we realized we didn't know where the keys are. I had left them in the care when I left so everyone could stay cool, and Kim did not see them anywhere when she was emptying out the care. After a little inspection I found them sitting in the ignition. This was a little odd as the car is programmed to not let the doors lock if the keys are in the ignition and any of the doors are open. None-the-less, there they where locked in the van in the ignition and with the headlights on. We have AAA so Kim called them and put is in the queue to get our car open.<br />
<br />
After the trip driving here, having the keys locked in the car put me on edge. It took a lot of will to stay pleasant with Kim as I was very annoyed, but I understood that it was also frustrating for her and it was an accident.<br />
<br />
While we a waited on AAA I set up the tent and Kim prepared dinner. Dinner was sauteed zucchini and squash with Ramen noodles. As Kim and I stayed very quiet with each other, the girls ran around, played, and generally had a good time. AAA finally came and got our care open and jumped, as by this time the headlights had rendered the battery dead. Athena and I took a twenty minute drive around the park while Kim and the other two girls got everything set up for bed.<br />
<br />
When we where back at the camp we got everything else washed, put away, and organized. Arianna was too scared to sleep with her sisters in the complete dark, so Kim traded places with her so I was sleeping with Arianna and Kim with the other two girls.<br />
<br />
Always on the look-out for a chance to do some cartography for OpenStreetMap, I took to mapping the park on my laptop, using my phone's Internet. The existing map was very incomplete, not even connecting the mapped roads in the park to anything, so the roads where completely inaccessible according to the map. I got most of the main roads mapped out as well as the road in the campground and then yielding the laptop to Kim so she could do her blogging. While Kim wrote I fell asleep with Arianna snuggling up against me.maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-35460804779919142722013-04-28T14:42:00.002-04:002013-04-28T14:44:34.674-04:00No Easy Day<br />
<div style="text-align: justify;">
I'm presently reading No Easy Day by Mark Owen and Kevin Maurer. It is written by one of the Navy Seals that was involved in the raid that killed Osama Bin Laden.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I find the following really inspiring.</div>
<br />
<ol>
<li style="text-align: justify;">He is part of the DEVGRU group within the Navy Seals. The Navy Seals are widely respected as the best-of-the-best in the US military. The DEVGRU group is the best of the Navy Seals. The non-ending life devotion to be the best at your craft, and even be the elite group within that best-of-the-best is very inspiring.</li>
<li style="text-align: justify;">To direct that goal of perfection in a manner that is completely selfless. The use of your skills to better your tribe is something that seems very sadly lost in today's society. If you are only working for yourself you are working for nobody and your life is pointless. PERIOD.</li>
</ol>
<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Here's two things I could never do.</div>
<br />
<ol>
<li style="text-align: justify;">Devote myself to killing others. The goal of bettering society by killing those deemed needing to die is a snake eating itself. This has continued to bring impermanent peace, but it is never sustaining. It also necessarily means many innocents will die in your goal.</li>
<li style="text-align: justify;">The inability to say no. I'm not interested in being a tool to be used at the whim of someone else. I could never completely give myself up, my body, life, and actions to someone else. If I can't say "No" then I'm not a human. I am a puppet. That doesn't interest me. In fact, I find it absolutely abhorrent.</li>
</ol>
<div style="text-align: justify;">
It would be nice if there where other organizations that worked like the Navy Seals, but accomplished the betterment of society through other means.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
In my its own way my current job does provide some of that. I work as a government contractor writing applications for the state. I feel very strongly that what I do is building a better state government. I believe that I bring real value to the tax payers in the state of Florida. Given how completely backwards the government can be in its implementation of technology I feel our group is relatively progressive. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
However, there is absolutely no feeling of being part of the best. And I am certainly not the best of the best even in my group of mostly average coders.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Most of my self-betterment is done in my limited spare time. My free time is often directionless and shifts too fast for me to ever actually get really good at any one thing.</div>
<br />maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-54365898842835791002013-01-17T00:13:00.003-05:002013-07-01T12:11:32.208-04:00Installing Minecraft on UbuntuUPDATE: As of Minecraft 1.6 these instructions no longer work. I have posted updated instructions at <a href="http://maxolasersquad.blogspot.com/2013/07/installing-minecraft-16-on-ubuntu.html" target="_blank">Installing Minecraft 1.6 on Ubuntu</a>.<br />
<br />
This post is for anyone who wants to install Minecraft on Ubuntu and have it feel like any other game installed via the Ubuntu Software Center. It assumes you have already purchased Minecraft and provides full Unity integration, though Unity is not needed for this to work. In fact, I suspect it should work for any Linux distribution that has a desktop environment.<br />
<br />
We are going to do this via the command-line because copy-and-pasting commands from this tutorial is easier and more fool-proof than following a long list of screen shots. It's also easier for me to write it that way as there are fewer steps.<br />
<br />
First we need to install Java. The website claims it needs Sun Java, but the open source Java in the Ubuntu repos works just fine in my experience.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">sudo apt-get install openjdk-7-jre</span></blockquote>
Now we need the actual game<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">sudo wget https://s3.amazonaws.com/MinecraftDownload/launcher/minecraft.jar -o </span><span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;">/usr/games/minecraft.jar</span><span style="font-family: Courier New, Courier, monospace; font-size: x-small;"><br />sudo chown root:games /usr/games/minecraft.jar<br />sudo chmod 755 /usr/games/minecraft.jar</span></blockquote>
Change the vi part in the next section to gedit if you want a graphical text editor.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">sudo vi /usr/games/minecraft</span></blockquote>
The file contents should be as follows.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">java -Xmx1024M -Xms512M -cp /usr/games/minecraft.jar net.minecraft.LauncherFrame</span></blockquote>
And then set the proper permissions on the file<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">sudo chown root:games /usr/games/minecraft<br />sudo chmod 755 minecraft</span></blockquote>
Again, change vi with something else if that is easier for you.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">sudo vi /usr/share/applications/minecraft.desktop</span></blockquote>
And put this in the file.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">[Desktop Entry]</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Name=Minecraft</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Comment=Build your own world</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Exec=minecraft</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Icon=minecraft</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Terminal=false</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Type=Application</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Categories=GNOME;Applications;Game</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">Keywords=minecraft;Game</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">StartupNotify=true</span></blockquote>
The last piece we need is an icon. There are many good Minecraft icons at <a href="http://www.rw-designer.com/icon-detail/5547">http://www.rw-designer.com/icon-detail/5547</a> I like <a href="http://www.rw-designer.com/icon-image/5547-256x256x32.png">http://www.rw-designer.com/icon-image/5547-256x256x32.png</a> as it gives us the highest resolution available. Replace the URL of the icon you prefer to use in the following command.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">sudo wget http://www.rw-designer.com/icon-image/5547-256x256x32.png -o /usr/share/pixmaps/minecraft.png</span></blockquote>
Now you should be able to play Minecraft by simply typing minecraft in the command-line, in the Unity dash, the KDE prompt, or by browsing to the games menu in the applications menu in your desktop environment of choice. It is also available to all users of your desktop.<br />
<br />
You also do not need to do anything to update. Minecraft updates itself each time you start it.<br />
<br />
BONUS<br />
<br />
I've got one more neat trick up my sleeve. If a CraftBuntu spin sounds good to you, here's how you can setup Ubuntu to just run Minecraft when you sign in. It assumes you have already done the above.<br />
<blockquote class="tr_bq">
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">sudo cp /usr/share/applications/minecraft.desktop /usr/share/xsessions/</span></blockquote>
Now Minecraft is an available option when you select your desktop environment. This works best if you set Fullscreen in the Minecraft options.<br />
<br />
You could do a number of things with this setup. You could setup a minimal Ubuntu installation that has no desktop environment, or other desktop-related software installed. You could also allow guests to play Minecraft without touching any of your stuff by them selecting the Ubuntu guest account and setting Minecraft for the login. I have even found that on my struggling laptop this setup allows Minecraft to run more smoothly as there is no other desktop cruft running in the background.maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com4tag:blogger.com,1999:blog-2160921736769720124.post-4580665155203138222012-05-29T23:32:00.000-04:002012-05-29T23:32:20.839-04:00ssdownloaderI recently purchased some electronic media from Simon & Schuster.<br />
<br />
Apparently the technology guys at Simon & Schuster believe in "Java Over Functionality." Unlike most companies that sell DRM-free digital media, I was not given a link to download zip file containing the contents of my purchase.<br />
<br />
Instead, I was given a <a href="http://en.wikipedia.org/wiki/Java_Web_Start" target="_blank">JNLP file</a>, which is nothing more than an XML file. A little Googling revealed that these files should be openable by javaws, a Java Web Starter application. After getting the file to successfully run, I was greeted with a custom download manager. This is great because why offer a simple download that will be managed with my browser's download manager when I can have some half-rate, custom download manager to fudge things up?<br />
<br />
So the download manager asked me where I would like to save the file, downloaded each file individually for about twenty minutes, and then told me it was done. There was a big problem, my files where not in the location I specified. In fact, a hard drive search revealed they didn't exist anywhere on my machine.<br />
<br />
I tried again, no dice.<br />
<br />
So, if Mother Necessity if the driver of invention, then welcome her new baby, <a href="https://github.com/maxolasersquad/ssdownloader" target="_blank">ssdownloader</a>. I wrote this Python app up in a little over an hour. It was a good chance to strengthen my weak command of Python, and to actually get the stuff I paid for.<br />
<br />
It simply parses the JNLP file to find the other XML file that defines where the actual downloads are. It then loops through that file, grabbing each file and saving it locally. If anyone out there gets frustrated trying to make good on their Simon & Schuster purchases, feel free to use this to make your life happy.maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com22716 Juncture Dr, Tallahassee, FL 32305, USA30.302903 -84.23401330.3011895 -84.2364805 30.3046165 -84.23154550000001tag:blogger.com,1999:blog-2160921736769720124.post-177197757512326342012-05-01T13:03:00.000-04:002012-05-01T13:03:15.329-04:00500-Mile May<div style="text-align: justify;">
This month I'm going to try to really push myself physically and travel 500-hundred miles on foot or bicycle. To accomplish this goal I will need to travel an average of 16.13 miles per day.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
A bicycle ride to work gets me 10 miles each way, giving me a potential 20 mile each workday. Except, on Fridays I go to Bread and Roses after work, which is a 6 mile ride. This gives me 19 non-Friday weekdays, and 4 Fridays, so 19 * 20 + 4 * 16 = 444 miles on bicycle.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
That gives me only 56 miles to find elsewhere. In my one-hour lunch-break I can fit a 2-mile walk or a 4-mile run. In practice, presently, I can only run about 2 miles. With 23 work-days, that comes out to 46. 444 + 46 = 490 miles. Now I've only got 10 miles left to make up. This can be done over the weekend, or by walking the dogs after work.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
As always, a big factor here is the reality of life. Last weekend Kim came down with a surprise case of appendicitis. That has put the task of transporting the kids before and after work on me for now. So today, the first day of my challenge, I did not ride to work and will not be riding home. I did get a 2.17 mile run in, but that's a far cry from the 16.13 miles I need each day, and not a good start.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I've also got a conference with Athena's teacher on May 8<sup>th</sup>, so I will not be riding to work that day, but can still ride home. May 10<sup>th</sup> I will be participating in Aurora's field trip to Saint Augustine. The walking may make up some of those miles though.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I can only assume other life-events will show up, and will have to take them as they come. As strange as it may seem, I don't believe I will actually be able to make my goal. However, I'm going to give it my all and see how it goes.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I will be keeping my activities updated at <a href="http://www.google.com/fusiontables/DataSource?snapid=S478383Gdyj" target="_blank">http://www.google.com/fusiontables/DataSource?snapid=S478383Gdyj</a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
You can also see all of my recorded activities on Runkeeper at <a href="http://runkeeper.com/user/maxolasersquad/activity/" target="_blank">http://runkeeper.com/user/maxolasersquad/activity/</a></div>
<div style="text-align: justify;">
<br />
<br /></div>maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com2tag:blogger.com,1999:blog-2160921736769720124.post-49685786320160128122012-04-16T10:30:00.000-04:002012-04-16T10:31:34.614-04:00GPS navigation with Osmand+<br />
<br />
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;"><span class="Apple-style-span" style="font-size: 14px; line-height: 20px;"></span></span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;">On Friday I went down to Deland, Fl to get my grandfather who was on a fishing trip down there.</span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;">When I was first asked about going down there to get him I viewed the map in OpenStreetMap and made some corrections to the fish camp he was staying at there, and made all the appropriate tags.</span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;">In the past I have tried to use Osmand+ to route me places and have found it to be all but useless for getting directions. Since I didn't have any time frame I needed to make it down there I decided I would try the latest version to see how it would perform.</span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;">Everything seemed to go very smoothly, thought I am very sure that the route it took me was not the best. It had me get off after Gainseville, drive east of town, and then head South. I took its advice since I like taking back-roads when I'm not pressed for time.</span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;">About two miles from my destination it tried to take me down a road that ran into a private government area that was blocked off by a fence. I tried Google Maps and it was doing the exact same thing.</span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;">I drove just a few hundred feet past that wrong turn and it rerouted me the correct way.</span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;">At my destination I fixed the OSM mapping and filed a bug with Google Maps. I also walked around the fish camp and made updates based off of observations that could not be easily made from satellite imagery.</span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;"><br /></span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif;">I was very happy with the capabilities of Osmand's offline routing mode. The most recent version of the offline maps for Florida did not have the fixes I had made for the fish camp the previous week, but that was alright as prioprietary maps can take years to have updates and receiving the updates can be costly.</span></div>
<br />
<br />maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com04030 Esplanade Way, Tallahassee, FL 32399, USA30.391238 -84.23247830.389526 -84.2349455 30.392950000000003 -84.2300105tag:blogger.com,1999:blog-2160921736769720124.post-81675352333712475212012-03-26T15:45:00.001-04:002012-03-26T15:45:18.121-04:00Beginning NE Tallahassee<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 14px; line-height: 20px;">I have reviewed and/or mapped, in Tallahassee, all roads east of Monroe Street, North & West of Capital Circle Southeast, and south of Tennessee Street. Last weekend I began moving north of Tennessee Street, where I will focus on everything South and West of Capital Circle, and East of Monroe Street.</span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 14px; line-height: 20px;"><br /></span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 14px; line-height: 20px;">My ultimate goal is to have all streets within the Capital Circle cup and South of the Interstate reviewed and mapped. The idea is that within Tallahassee, the maps should by 99.999% reliable. Once this area has been mapped I'll begin seriously moving outside of that circle and getting areas like Buck Head and Killearn. I will also begin an attempt at getting all buildings and POIs marked within the circle.</span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 14px; line-height: 20px;"><br /></span></div>
<div style="text-align: justify;">
<span class="Apple-style-span" style="color: #222222; font-family: 'Helvetica Neue', Arial, sans-serif; font-size: 14px; line-height: 20px;">I've added some building and businesses in areas I frequent, such as around Apalachee Parkway.</span></div>maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com0tag:blogger.com,1999:blog-2160921736769720124.post-68805527011843044072012-01-10T11:58:00.000-05:002012-11-16T10:52:00.179-05:00Copy and paste from the system clipboard with vim<div style="text-align: justify;">
Often, when using vim, highlighting text in the terminal to copy-and-paste it around is plausible. This is definitely true when on a true terminal. I use the rnu option so that I have relative line numbers on each line. So copying multiple lines with the mouse grabs the line number with unwanted indentation. When I need to move code around it is annoying to have to manually remove the numbers.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
To understand how to get vim's clipboard to match your system's you need to understand vim registers. On a computer we usually only get one clipboard. Every time we ctrl-c, the contents of the clipboard are discarded and replaced with whatever is highlighted. We don't have any option to copy multiple objects and then paste them around. However vim has multiple "registers" where text can be copied and pasted from. To see the registers type :reg in command mode.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
The register that we are interested in is register +. To test it out, copy some text from another application then run :reg and see the contents displayed in register +.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
So now we just need to know how to access the contents of register +. Register access is done with ". To paste from they keyboard we type "+p To copy, for example an entire line, into the system clipboard we type "+yy To delete the current line and store it in the system clipboard we type "+dd</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
We can also use registers with visual mode. If we wanted to copy the line underneath the cursor we would type V"+y We could copy the next three lines into the system clipboard by typing Vjj"+y</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
To sum it up, to use the system clipboard to copy and paste in vim simply do what you would usually do in vim, then prepend "+ to your y (yank) or p (paste) command.<br />
<br />
<b>Update:</b><br />
Depending on the version of vim you are using, the register for the clipboard may work differently. In some cases the * and + registers are the same register. If you want to find out which register is for your system clipboard, simply copy some text from anywhere into your clipboard, then run :reg. Whichever register has the text you copied is the register that holds the contents of your clipboard.</div>
maxolasersquadhttp://www.blogger.com/profile/05885203204831537402noreply@blogger.com3