<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>jonEbird</title>
	<atom:link href="http://www.jonebird.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonebird.com</link>
	<description>Nesting place for this bird's projects</description>
	<pubDate>Fri, 30 Dec 2011 03:05:18 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Installing emacs v24 on Fedora</title>
		<link>http://jonebird.com/2011/12/29/installing-emacs-v24-on-fedora/</link>
		<comments>http://jonebird.com/2011/12/29/installing-emacs-v24-on-fedora/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 03:05:18 +0000</pubDate>
		<dc:creator>jonEbird</dc:creator>
		
		<category><![CDATA[adminstration]]></category>

		<category><![CDATA[blogging]]></category>

		<category><![CDATA[emacs]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://jonebird.com/?p=251</guid>
		<description><![CDATA[I&#8217;ve been reading about other people giving the yet to be release version 24 of emacs for some time now. When I decided to upgrade my systems to use v24, I was a bit surprised to not find anything about configuring a Fedora system to use v24 of emacs. Guess I gotta do it myself&#8230;
This [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been reading about other people giving the yet to be release version 24 of emacs for some time now. When I decided to upgrade my systems to use v24, I was a bit surprised to not find anything about configuring a Fedora system to use v24 of emacs. Guess I gotta do it myself&#8230;</p>
<p>This tutorial is part editorial and part instructional. I thought it would be helpful to include some of the techniques I used to get emacs up and running quickly without needing to pull my hair for other&#8217;s edification. </p>
<p>After realizing I wasn&#8217;t going to be able to just grab a pre-built binary, I went looking for the official sources. I ended up finding the <a href="http://alpha.gnu.org/gnu/emacs/pretest/">pretest</a> download location. First step first, let&#8217;s pull down the latest emacs-24 tarball and extract it.</p>
<pre class="prettyprint lang-shell">
PRETEST_URL="http://alpha.gnu.org/gnu/emacs/pretest/"
FILENAME=$(curl -s ${PRETEST_URL} | sed -n 's/^.*a href="\(emacs-24.[0-9\.]*tar.gz\)".*$/\1/p' )
curl -o ${FILENAME} ${PRETEST_URL}${FILENAME}
tar -xzof $FILENAME
cd ${FILENAME%.tar.gz}
</pre>
<p>If that worked, you are now sitting in the extracted directory of the latest emacs-24 pretest source. Now for some instructional information. Any significantly large project will need a decent amount of development packages installed for a successful compile and that can be a pain to identify. Earlier I claimed that I didn&#8217;t pull my hair out which means I cheated. I grabbed the latest Fedora source rpm. I didn&#8217;t actually want to install the src.rpm but rather extract the emacs.spec file which will act like a blueprint for my build. I&#8217;m going to give you the answer later but if you&#8217;d like to know how to extract the specfile, try this:<br />
<strong>Note</strong>: <em>You do not need to do this step. Instructional only.</em></p>
<pre class="prettyprint lang-shell">
SRCRPM=~/Download/emacs-23.3-7.fc16.src.rpm
# Your SRCRPM may differ depending on what you end up downloading.
mkdir tmp &#038;&#038; cd tmp
rpm2cpio $SRCRPM | cpio -ivd
sed -n -e 's/,/ /g' -e 's/^BuildRequires: //p' emacs.spec | xargs sudo yum -y install
</pre>
<p>Note the last command in that section was a command to install the necessary development packages for our build. Since I&#8221;m not requiring you to do that above, here is the command for you:</p>
<pre class="prettyprint lang-shell">
sudo yum -y install atk-devel cairo-devel freetype-devel \
  fontconfig-devel dbus-devel giflib-devel glibc-devel gtk2-devel \
  libpng-devel libjpeg-devel libtiff-devel libX11-devel libXau-devel \
  libXdmcp-devel libXrender-devel libXt-devel libXpm-devel \
  ncurses-devel xorg-x11-proto-devel zlib-devel librsvg2-devel \
  m17n-lib-devel libotf-devel autoconf automake bzip2 cairo texinfo \
  gzip GConf2-devel alsa-lib-devel desktop-file-utils python2-devel \
  python3-devel util-linux
</pre>
<p>The other part of the specfile you&#8217;ll typically want to look at, if you&#8217;re cheating like me, is the %build section. That is where you&#8217;ll find the actual commands used to configure and build the binaries. There I found the configure switches used so I don&#8217;t have to pick out which ones I&#8217;ll need. Again, just like figuring out the development packages, figuring out configure options can also be a chore. Let&#8217;s get to configuring, building and installing it now. </p>
<pre class="prettyprint lang-shell">
./configure --prefix=/usr/local/emacs24 --with-dbus --with-gif --with-jpeg --with-png \
  --with-rsvg --with-tiff --with-xft --with-xpm --with-x-toolkit=gtk
make
./src/emacs --version # Look good? The INSTALL doc suggests testing: ./src/emacs -Q
sudo make install
</pre>
<p>Well, that worked for me and hopefully it worked for you too. If you noticed, I used the  <code>--prefix=/usr/local/emac24</code> option above on my configure line which means everything got cleanly installed down it&#8217;s own separate base directory of /usr/local/emacs24. Since you won&#8217;t want to use that path explicitly each time you launch emacs, we&#8217;ll have to inform Fedora of our new <i>altenative</i>. </p>
<pre class="prettyprint lang-shell">
sudo alternatives --install /usr/bin/emacs emacs /usr/local/emacs24/bin/emacs 20000
sudo alternatives --install /usr/bin/emacsclient emacsclient /usr/local/emacs24/bin/emacsclient 20000
</pre>
<p>And there, we&#8217;re done. Congratulations. You have installed emacs version 24 on your Fedora system. Let me know if you&#8217;ve had any problems or have a better recommendation.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonebird.com/2011/12/29/installing-emacs-v24-on-fedora/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Installing Pithos on Fedora within a Virtualenv</title>
		<link>http://jonebird.com/2011/12/23/installing-pithos-on-fedora-within-a-virtualenv/</link>
		<comments>http://jonebird.com/2011/12/23/installing-pithos-on-fedora-within-a-virtualenv/#comments</comments>
		<pubDate>Fri, 23 Dec 2011 17:40:55 +0000</pubDate>
		<dc:creator>jonEbird</dc:creator>
		
		<category><![CDATA[adminstration]]></category>

		<category><![CDATA[blogging]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[python]]></category>

		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://jonebird.com/?p=241</guid>
		<description><![CDATA[I listen to a lot of music while at home. I am a Pandora user and have been very happy with my Pandora One subscription now for over two years. The machine used for playing my music is what I call my &#8220;media PC&#8221;. It is called that because this machine sits in my entertainment [...]]]></description>
			<content:encoded><![CDATA[<p>I listen to a lot of music while at home. I am a Pandora user and have been very happy with my <a href="http://www.pandora.com/pandora_one">Pandora One</a> subscription now for over two years. The machine used for playing my music is what I call my &#8220;media PC&#8221;. It is called that because this machine sits in my entertainment stand and is connected to my Sony receiver via HDMI making the multimedia experience as good as I can get. If you put those two facts together, you can see that I am staring at my desktop a lot and I thought it would be nice to integrate my TV into rest of the decor of the house. I primarily do that by being very selective in finding desktop pictures and generally clearing off the desktop of any clutter. Think of the large 47&#8243; LCD television as one big painting for the living room.</p>
<p>Which leads me to my one, sole problem with Pandora: <strong>I like to look up and read the Artist and Title of the track being played but I don&#8217;t want the browser to also consume my visual space</strong>. (I also don&#8217;t want to mess around with Adobe Air for the desktop version of Pandora) Enter <a href="http://kevinmehall.net/p/pithos/">Pithos</a>. By this point, I should point out that my media PC is running Fedora Core 15 and I&#8217;m a Gnome user (let&#8217;s not talk about Gnome3). That is important because Pithos was written for gnome users.</p>
<p><a href="http://kevinmehall.net/p/pithos/">Pithos</a> is great. It&#8217;s a simple UI design, still allows for normal Pandora song control, easy drop-down for my stations, can still star (thumb&#8217;s up) songs all the while being small and unobtrusive. And now we are to the subject of this blog post: Installing Pithos on a Fedora Core machine. </p>
<p>This installation guide will follow my other guides in the same &#8220;copy &#038; paste&#8221; format. That is, below you should be able to simply open a shell, copy the block of shell code and paste it into your terminal and be ready to launch Pithos. The one configurable item I left in there is whether or not you&#8217;d like to install Pithos within a <a href="http://pypi.python.org/pypi/virtualenv">virtualenv</a> or not. I won&#8217;t go into detail about what virtualenv is for this discussion, but suffice to say that you&#8217;d choose it if you want to install Pithos in a alternative path that you own instead of /usr/local/bin/. Below, when you copy &#038; paste the instructions to install Pithos, you can simply leave out the variable <code>"I_LOVE_VIRTUALENV"</code> or change the value from anything but &#8220;yes&#8221; to install the &#8220;normal&#8221; way. I choose to install via virtualenv to 1. keep my system site-packages clean and 2. also keep /usr/local uncluttered. When I do this, I <em>mostly</em> only have to worry about backing up my home directory between rebuilds. </p>
<p><b>Again</b>: If you&#8217;d like to use <a href="http://pypi.python.org/pypi/virtualenv">virtualenv</a>, keep the <code>"I_LOVE_VIRTUALENV"</code> variable set to &#8220;yes&#8221;.<br />
Furthermore, using virtualenv you can control the env path via setting the <code>VIRTUALENV</code> variable. Some people have a separate directory for their virtualenv&#8217;s. E.g. <code>VIRTUALENV=virtualenvs/pithos</code><br />
(<em>Copy and paste away!</em>)</p>
<pre class="prettyprint lang-shell">
# Keep this variable to install within a virtualenv.
#   otherwise, skip this line or change from "yes" to anything else.
I_LIKE_VIRTUALENV="yes"
VIRTUALENV="" # Set this to control where your virtualenv is created
# --- Rest is pure copy &#038; paste gold ---
sudo yum -y install python pyxdg pygobject2 \
  gstreamer-python notify-python pygtk2 dbus-python \
  gstreamer-plugins-good gstreamer-plugins-bad \
  bzr python-virtualenv
# FYI, those last two are not direct requirements but tools to complete this
cd; bzr branch lp:pithos pithos
if [ "${I_LIKE_VIRTUALENV}" == "yes" ]; then
  virtualenv ${VIRTUALENV:-pithos_venv}
  source ${VIRTUALENV:-pithos_venv}/bin/activate
  # The money shot... finger's crossed
  cd pithos; python setup.py install
else
  cd pithos; sudo python setup.py install --prefix=/usr/local
fi
</pre>
<p>And there you have it. A clean, aesthetically pleasing music experience. Enjoy.<br />
<a href="http://jonebird.com/images/pithos_screenshot.jpg"><img src="http://jonebird.com/images/pithos_screenshot-thumb.jpg" alt="Desktop Shot with Pithos" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://jonebird.com/2011/12/23/installing-pithos-on-fedora-within-a-virtualenv/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Customize Gnome Terminal in Gnome 3</title>
		<link>http://jonebird.com/2011/10/03/customize-gnome-terminal-in-gnome-3/</link>
		<comments>http://jonebird.com/2011/10/03/customize-gnome-terminal-in-gnome-3/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 00:56:58 +0000</pubDate>
		<dc:creator>jonEbird</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://jonebird.com/?p=238</guid>
		<description><![CDATA[I recently upgraded to Fedora 15 on both the laptop and the home server and I&#8217;m still getting used to Gnome 3. Through each frustrating change, I have decided to stick with it and try to learn the new ways to do things but I have been tempted more than a few times to just [...]]]></description>
			<content:encoded><![CDATA[<p>I recently upgraded to Fedora 15 on both the laptop and the home server and I&#8217;m still getting used to Gnome 3. Through each frustrating change, I have decided to stick with it and try to learn the new ways to do things but I have been tempted more than a few times to just switch to using <a href="http://www.xfce.org/">XFCE</a>. Today&#8217;s challenge: Customizing gnome-terminal.</p>
<p>In the <em>old</em> days, the customizations I would do all involved edits that could be done by updating the default profile (Menu->Edit->Profiles). The main things I would update is setting my background to a certain percentage of transparency, disable scroll bar (because we&#8217;re all using <a href="http://en.wikipedia.org/wiki/GNU_Screen">GNU screen</a>, right?), and disable the menubar by toggling &#8220;show menubar by default in new terminals&#8221; (alt-f is reserved for emacs forward-word and not File menu). The remaining item to update is the default geometry or size of the terminal when it&#8217;s launched. </p>
<p>Perhaps I should blog more because I found a much easier solution than I expected. When I decided to figure this out tonight I started by finding a <a href="http://blog.fpmurphy.com/2011/03/customizing-the-gnome-3-shell.html">nice tutorial for updating gnome configurations</a> and I thought I was going to end up recommending the following command:<br />
<code>gsettings set org.gnome.desktop.default-applications.terminal exec-arg "'--geometry=120x35'"</code><br />
Instead, while writing the previous paragraph I realized that within the profile settings there is an option now to &#8220;Use custom default terminal size&#8221;. I feel stupid but I think I&#8217;m just stubborn in my ways after using Gnome for over a decade.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonebird.com/2011/10/03/customize-gnome-terminal-in-gnome-3/feed/</wfw:commentRss>
		</item>
		<item>
		<title>64bit Google Chrome with Flash on Fedora - Take2</title>
		<link>http://jonebird.com/2011/07/10/64bit-google-chrome-with-flash-on-fedora-take2/</link>
		<comments>http://jonebird.com/2011/07/10/64bit-google-chrome-with-flash-on-fedora-take2/#comments</comments>
		<pubDate>Sun, 10 Jul 2011 15:08:30 +0000</pubDate>
		<dc:creator>jonEbird</dc:creator>
		
		<category><![CDATA[adminstration]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://jonebird.com/?p=225</guid>
		<description><![CDATA[Early last year I wrote up my procedure on getting Chrome setup with Flash on a 64bit Fedora Core 13 build. It is now dated and I hope people are not still using it. However, if you like the copy &#038; paste style of my direct installation guidelines, I thought I&#8217;d give an updated post [...]]]></description>
			<content:encoded><![CDATA[<p>Early last year I wrote up my procedure on getting <a href="http://jonebird.com/2010/02/24/64bit-google-chrome-with-flash-on-fedora/">Chrome setup with Flash on a 64bit Fedora Core 13</a> build. It is now dated and I hope people are not still using it. However, if you like the copy &#038; paste style of my direct installation guidelines, I thought I&#8217;d give an updated post after a recent <a href="http://fedoraproject.org/wiki/Releases/15/FeatureList">Fedora Core 15</a> install. </p>
<p>First things first, we still need to create new Yum repositories like we did last time. The biggest difference between last time is I would no longer recommend installing the beta build of Chrome and Adobe has moved the 64bit flash player out of a lab project to an official release. The fine folks working on the Fedora project have lend their help in instructing people on <a href="http://fedoraproject.org/wiki/Flash">how to setup Flash</a> as well and you may want to check that page for a more detailed explanation on what we&#8217;re doing. In particular, I&#8217;ll be using a repository which is being hosted by Fedora member <a href="http://leigh123linux.fedorapeople.org/">leigh123linux</a>. </p>
<p>Here is the final copy &#038; paste version: (<i>Like last time, if you are already root, take out the &#8220;sudo&#8221;</i>)</p>
<pre class="prettyprint lang-shell">
# Creating the Google repo
cat <<\EOF | sudo tee /etc/yum.repos.d/google.repo
[google64]
name=Google - x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
EOF
# Slip this guy in here... who doesn't want the gchat plugin?
cat <<\EOF | sudo tee /etc/yum.repos.d/google-talkplugin.repo
[google-talkplugin]
name=google-talkplugin
baseurl=http://dl.google.com/linux/talkplugin/rpm/stable/x86_64
enabled=1
gpgcheck=1
EOF
# Now to install the latest flash release yum repo from "leigh123linux"
leighURL="http://www.linux-ati-drivers.homecall.co.uk/flashplayer.x86_64/"
latest_release=$(wget -qO- $leighURL |\
sed -n '/flash-release/s/^&lt;LI&gt;&lt;A HREF="\([^"]*\)".*$/\1/p' | sort -n | tail -1)
sudo yum -y localinstall --nogpgcheck ${leighURL}${latest_release}
# Actually installing Chrome and the Flash player
sudo yum -y install google-chrome-stable google-talkplugin flash-plugin
# Creating a plugins directory
[ ! -d /opt/google/chrome/plugins ] &#038;&#038; sudo mkdir /opt/google/chrome/plugins
sudo ln -s /usr/lib64/flash-plugin/libflashplayer.so /opt/google/chrome/plugins/
</pre>
<p>If you noticed, I slipped in the Google chat plugin. That is the necessary RPM for enabling video chat. If you really didn&#8217;t want it installed, simply run &#8220;<code>sudo yum erase flash-plugin</code>&#8220;. Enjoy your surfing.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonebird.com/2011/07/10/64bit-google-chrome-with-flash-on-fedora-take2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Custom Dropbox Directory</title>
		<link>http://jonebird.com/2011/05/28/custom-dropbox-directory/</link>
		<comments>http://jonebird.com/2011/05/28/custom-dropbox-directory/#comments</comments>
		<pubDate>Sat, 28 May 2011 15:38:38 +0000</pubDate>
		<dc:creator>jonEbird</dc:creator>
		
		<category><![CDATA[blogging]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://jonebird.com/?p=215</guid>
		<description><![CDATA[Ever since I rebuilt my laptop I&#8217;ve keep a file called &#8220;rebuild.txt&#8221; where I detail every little customization I&#8217;ve done. The  requirement is that everything that I do has to be completely command line oriented where a block copy-and-paste would redo the same customization. So far I have things documented like setting up my [...]]]></description>
			<content:encoded><![CDATA[<p>Ever since I rebuilt my laptop I&#8217;ve keep a file called &#8220;rebuild.txt&#8221; where I detail every little customization I&#8217;ve done. The  requirement is that everything that I do has to be completely command line oriented where a block copy-and-paste would redo the same customization. So far I have things documented like setting up my local email routing, autologin to the laptop, additional RPMs w/ extra repositories, iptables rules,  GTK configs, etc. The latest customization I&#8217;ve performed is when I finally decided to setup <a href="http://www.dropbox.com/">Dropbox</a>. </p>
<p>I like Dropbox for it&#8217;s simplicity and the fact it integrates well with Linux. My only problem was that the directory I really wanted to have synchronized was my ~/projects/ directory. I actually didn&#8217;t do any google searches on how to change it before diving into figuring it out. I figured Dropbox would create a dot-file directory to stuff configuration and found that at ~/.dropbox/ and after that it didn&#8217;t take too much work to reverse engineer the setup. </p>
<p>So, here is my addition to my &#8220;rebuild.txt&#8221; file for how I would redo my Dropbox setup:<br />
(<em>Note: I&#8217;m running Fedora 13 but that fact really only applies to how I was installing Dropbox</em>)</p>
<pre class="prettyprint lang-shell">

cat <<\EOF | sudo tee /etc/yum.repos.d/dropbox.repo
[Dropbox]
name=Dropbox Repository
baseurl=http://linux.dropbox.com/fedora/$releasever/
gpgkey=http://linux.dropbox.com/fedora/rpm-public-key.asc
EOF

# Now install
sudo yum -y install nautilus-dropbox
# After installing, I did launch dropbox and setup an account.

# Stop dropbox
pkill dropbox

# Modify the default location?
cp -p ~/.dropbox/config.db{,.orig}
echo "update config set value = '/home/jon/projects' where key = 'dropbox_path';" |\
sqlite3 ~/.dropbox/config.db
rsync -av ~/Dropbox/ ~/projects/

# now start dropbox again
~/.dropbox-dist/dropboxd
</pre>
<p>After setting it up, I finally realized I could have google&#8217;d this and I did for curiosity sake. A common technique I saw was around using symlinks, but I found it fun to reverse engineer their configuration and was pleasantly amused that they didn&#8217;t try to obfuscate the config. At this point I should probably stop poking around because I can see that the client is written in Python and I&#8217;m now finding other interesting things about the client.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonebird.com/2011/05/28/custom-dropbox-directory/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Socket Option Defaults</title>
		<link>http://jonebird.com/2010/11/15/socket-option-defaults/</link>
		<comments>http://jonebird.com/2010/11/15/socket-option-defaults/#comments</comments>
		<pubDate>Tue, 16 Nov 2010 03:02:19 +0000</pubDate>
		<dc:creator>jonEbird</dc:creator>
		
		<category><![CDATA[linux]]></category>

		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://jonebird.com/?p=205</guid>
		<description><![CDATA[Working closely with the operating system, as an engineer or administrator, you often get odd questions about what particular OS settings were used. Often times, the oddest questions come from application owners which don&#8217;t have a solid handle on their app and are looking for excuses for why their application is misbehaving. Naturally their knowledge [...]]]></description>
			<content:encoded><![CDATA[<p>Working closely with the operating system, as an engineer or administrator, you often get odd questions about what particular OS settings were used. Often times, the oddest questions come from application owners which don&#8217;t have a solid handle on their app and are looking for excuses for why their application is misbehaving. Naturally their knowledge of the operating system is equally lacking if not more so. </p>
<p>Today&#8217;s question: What is the default OS setting for the SO_LINGER socket option? </p>
<p>I started off by explaining that there were no operating system configuration files where you go and adjust default socket option values and that if they were concerned with how the specific SO_LINGER option was being used that they need to keep their focus on the application. Should they be concerned with particular values being set, it&#8217;s going to be the application applying that setting via the <code>setsockopt()</code> system call. Their application is Java based running on top of a application server, so there are several layers of abstraction involved here. I do not mean to piss off any Java developers here, but more times than not they are not intimate with the lower level interactions of their JVMs within the OS. </p>
<p>Having adequately quelled that line of questioning, in terms of troubleshooting their application, I started to think why not go ahead and produce the values for all of the socket options? How about a python script for the answer?</p>
<pre class="prettyprint lang-python">
#!/usr/bin/env python

import socket

s = socket.socket()
socket_options = [ (getattr(socket, opt), opt) for opt in dir(socket) if opt.startswith('SO_') ]
socket_options.sort()
for num, opt in socket_options:
    try:
        val = s.getsockopt(socket.SOL_SOCKET, num)
        print '%s(%d) defaults to %d' % (opt, num, val)
    except (socket.error), e:
        print '%s(%d) can\'t help you out there: %s' % (opt, num, str(e))
</pre>
<p>Running that on my Fedora Core 13 build, I get:</p>
<pre>
$ ./getsockopt.py
SO_DEBUG(1) defaults to 0
SO_REUSEADDR(2) defaults to 0
SO_TYPE(3) defaults to 1
SO_ERROR(4) defaults to 0
SO_DONTROUTE(5) defaults to 0
SO_BROADCAST(6) defaults to 0
SO_SNDBUF(7) defaults to 16384
SO_RCVBUF(8) defaults to 87380
SO_KEEPALIVE(9) defaults to 0
SO_OOBINLINE(10) defaults to 0
SO_NO_CHECK(11) defaults to 0
SO_PRIORITY(12) defaults to 0
SO_LINGER(13) defaults to 0
SO_BSDCOMPAT(14) defaults to 0
SO_PASSCRED(16) defaults to 0
SO_PEERCRED(17) defaults to 0
SO_RCVLOWAT(18) defaults to 1
SO_SNDLOWAT(19) defaults to 1
SO_RCVTIMEO(20) defaults to 0
SO_SNDTIMEO(21) defaults to 0
SO_SECURITY_AUTHENTICATION(22) can't help you out there: [Errno 92] Protocol not available
SO_SECURITY_ENCRYPTION_TRANSPORT(23) can't help you out there: [Errno 92] Protocol not available
SO_SECURITY_ENCRYPTION_NETWORK(24) can't help you out there: [Errno 92] Protocol not available
SO_BINDTODEVICE(25) can't help you out there: [Errno 92] Protocol not available
SO_ATTACH_FILTER(26) can't help you out there: [Errno 92] Protocol not available
SO_DETACH_FILTER(27) can't help you out there: [Errno 92] Protocol not available
SO_PEERNAME(28) can't help you out there: [Errno 107] Transport endpoint is not connected
SO_TIMESTAMP(29) defaults to 0
SO_ACCEPTCONN(30) defaults to 0
SO_PEERSEC(31) can't help you out there: [Errno 34] Numerical result out of range
SO_SNDBUFFORCE(32) can't help you out there: [Errno 92] Protocol not available
SO_RCVBUFFORCE(33) can't help you out there: [Errno 92] Protocol not available
SO_PASSSEC(34) defaults to 0
SO_TIMESTAMPNS(35) defaults to 0
</pre>
<p>And I like to show the actual system calls being performed since I didn&#8217;t write the program in C. </p>
<pre>
$ strace -vall -f ./getsockopt.py 2>&#038;1 | egrep '^(socket|getsock|setsock)'
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 3
getsockopt(3, SOL_SOCKET, SO_DEBUG, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_REUSEADDR, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_TYPE, [1], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_DONTROUTE, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_BROADCAST, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_SNDBUF, [16384], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_RCVBUF, [87380], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_KEEPALIVE, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_OOBINLINE, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_NO_CHECK, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_PRIORITY, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_LINGER, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_BSDCOMPAT, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_PASSCRED, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_PEERCRED, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_RCVLOWAT, [1], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_SNDLOWAT, [1], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_RCVTIMEO, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_SNDTIMEO, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_SECURITY_AUTHENTICATION, 0xbfd0fb0c, 0xbfd0fb08) = -1 ENOPROTOOPT (Protocol not available)
getsockopt(3, SOL_SOCKET, SO_SECURITY_ENCRYPTION_TRANSPORT, 0xbfd0fb0c, 0xbfd0fb08) = -1 ENOPROTOOPT (Protocol not available)
getsockopt(3, SOL_SOCKET, SO_SECURITY_ENCRYPTION_NETWORK, 0xbfd0fb0c, 0xbfd0fb08) = -1 ENOPROTOOPT (Protocol not available)
getsockopt(3, SOL_SOCKET, SO_BINDTODEVICE, 0xbfd0fb0c, 0xbfd0fb08) = -1 ENOPROTOOPT (Protocol not available)
getsockopt(3, SOL_SOCKET, SO_ATTACH_FILTER, 0xbfd0fb0c, 0xbfd0fb08) = -1 ENOPROTOOPT (Protocol not available)
getsockopt(3, SOL_SOCKET, SO_DETACH_FILTER, 0xbfd0fb0c, 0xbfd0fb08) = -1 ENOPROTOOPT (Protocol not available)
getsockopt(3, SOL_SOCKET, SO_PEERNAME, 0xbfd0fb0c, 0xbfd0fb08) = -1 ENOTCONN (Transport endpoint is not connected)
getsockopt(3, SOL_SOCKET, SO_TIMESTAMP, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_ACCEPTCONN, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, SO_PEERSEC, 0xbfd0fb0c, 0xbfd0fb08) = -1 ERANGE (Numerical result out of range)
getsockopt(3, SOL_SOCKET, 0x20 /* SO_??? */, 0xbfd0fb0c, 0xbfd0fb08) = -1 ENOPROTOOPT (Protocol not available)
getsockopt(3, SOL_SOCKET, 0x21 /* SO_??? */, 0xbfd0fb0c, 0xbfd0fb08) = -1 ENOPROTOOPT (Protocol not available)
getsockopt(3, SOL_SOCKET, 0x22 /* SO_??? */, [0], [4]) = 0
getsockopt(3, SOL_SOCKET, 0x23 /* SO_??? */, [0], [4]) = 0
</pre>
<p>That&#8217;s a whole lot of answers when I just needed to say, the operating system doesn&#8217;t automatically apply a <code>SO_LINGER</code> value by default on your newly created sockets but it was fun.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonebird.com/2010/11/15/socket-option-defaults/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Book Review: Influence: The Psychology of Persuasion</title>
		<link>http://jonebird.com/2010/11/08/book-review-influence-the-psychology-of-persuasion/</link>
		<comments>http://jonebird.com/2010/11/08/book-review-influence-the-psychology-of-persuasion/#comments</comments>
		<pubDate>Tue, 09 Nov 2010 01:36:19 +0000</pubDate>
		<dc:creator>jonEbird</dc:creator>
		
		<category><![CDATA[blogging]]></category>

		<category><![CDATA[opinion]]></category>

		<guid isPermaLink="false">http://jonebird.com/?p=201</guid>
		<description><![CDATA[I just finished &#8220;Influence: The Psychology of Persuasion&#8221; by Robert b. Cialdini. I thought it was a very entertaining and educational read. It has a decidedly business / salesman focus in respect to the psychology of sales techniques but I would say the lessons are applicable to other areas of life. In fact, in each [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished &#8220;<a href="http://www.amazon.com/Influence-Psychology-Persuasion-Robert-Cialdini/dp/0688128165">Influence: The Psychology of Persuasion</a>&#8221; by Robert b. Cialdini. I thought it was a very entertaining and educational read. It has a decidedly business / salesman focus in respect to the psychology of sales techniques but I would say the lessons are applicable to other areas of life. In fact, in each chapter Robert provides suggestions in how to resist the very potent sales techniques people often employ. </p>
<p>Here is quote from the epilogue which serves as a nice encapsulation of the book, </p>
<blockquote><p>We have been exploring several of the most popular of the single pieces of information that we use to prompt our compliance decisions. They are the most popular prompts precisely because they are the most reliable ones, those that normally point us toward the correct choice. That is why we employ the factors of reciprocation, consistency, social proof, liking, authority, and scarcity so often and so automatically in making our compliance decisions. Each, by itself, provides a highly reliable cue as to when we will be better off saying yes than no.. </p></blockquote>
<p>I now plan to skim back through the chapters to review the content and internalize the content. I wish to use the knowledge of psychological influence to help improve my effectiveness in &#8220;getting work done through others&#8221;. If you work in a substantially large enough company, chances are your performance evaluations have touched on this subject before. </p>
<p>Robert Cialdini urges a strong rebuttal against people using the techniques, covered in the book, in a deceitful manner. I definitely do not wish to use deceitful techniques. I think a good example of using a technique covered in the book for getting work done through others is the principle of reciprocity. In fact, I&#8217;ve used this technique myself before having read the book. It&#8217;s quite simple. You go and do a favor for someone else, perhaps show them something new to better their work condition, and then they are more obligated to reciprocate the favor in return. If properly administered you can even get them to sidestep change control. (Just kidding, change controls are good.)</p>
]]></content:encoded>
			<wfw:commentRss>http://jonebird.com/2010/11/08/book-review-influence-the-psychology-of-persuasion/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Happy Belated Birthday to Me</title>
		<link>http://jonebird.com/2010/05/19/happy-belated-birthday-to-me/</link>
		<comments>http://jonebird.com/2010/05/19/happy-belated-birthday-to-me/#comments</comments>
		<pubDate>Thu, 20 May 2010 02:34:46 +0000</pubDate>
		<dc:creator>jonEbird</dc:creator>
		
		<category><![CDATA[adminstration]]></category>

		<category><![CDATA[architecture]]></category>

		<category><![CDATA[blogging]]></category>

		<guid isPermaLink="false">http://jonebird.com/?p=193</guid>
		<description><![CDATA[A little play on blog titles going on here. Today I enter a new chapter in my career as I accept the Linux and Unix Architect role at Nationwide. I originally applied for the position back in February and I had hoped to land the position on my birthday in April, but the process was [...]]]></description>
			<content:encoded><![CDATA[<p>A little play on blog titles going on here. Today I enter a new chapter in my career as I accept the Linux and Unix Architect role at Nationwide. I originally applied for the position back in February and I had hoped to land the position on my birthday in April, but the process was delayed for uncontrollable reasons. I like to be able work towards a work promotion as a birthday present for myself. In recognition for all the hard work just like four years ago when I <a href="http://jonebird.com/2006/04/21/happy-birthday-to-myself/">congratulated myself in achieving Senior Systems Administrator</a>. </p>
<p>I have been preparing for this position for the last few years and yet in some respects it feels like I don&#8217;t know what I&#8217;m entering. That might terrify some people but it is this very fact that most energizes me. The last time I felt this way I was transitioning from a purely development role into Administration. At the time, my high school friend <a href="http://www.linkedin.com/pub/corey-sanders/2/453/247">Cory Sanders</a> encouraged me in saying, &#8220;You&#8217;ll do fine.&#8221; I&#8217;ve received the same kind of encouragement recently and I appreciate the support. I&#8217;m energized about this opportunity because I will be learning so much. When I switched over to System Administration I spend hours studying admin books while my wife (then girlfriend) was working at Tim Horton&#8217;s. Fueled by coffee and donuts I climbed the learning curve as fast as I could. </p>
<p>My best description of a Architect is someone who leverages their broad technical experience in helping the business make decisions in what to pursue, where to invest and ultimately where to focus further development. I have always had a great deal of success in influencing people outside of my control but I plan to study that art in the book <a href="http://www.amazon.com/Influence-Psychology-Persuasion-Robert-Cialdini/dp/0688128165">Influence: The Psychology of Persuasion</a>. I am currently learning about personalties via <a href="http://www.amazon.com/Personality-Plus-Understand-Understanding-Yourself/dp/080075445X/">Personality Plus</a>. Somewhere in the middle of those books, I&#8217;ve already borrowed <a href="http://www.amazon.com/Rational-Manager-Charles-Higgins-Kepner/dp/0971562717/">The New Rational Manager</a> where I hope to gain a better systematic approach to problem resolution. I already consider my troubleshooting skills to be very good but I was impressed in how, now fellow, Architects were able to keep a room full of people technicians focused on the resolution in such a organized manor. </p>
<p>Beyond the academic focus, this new position is largely about building relationships. I need to devote time with teams and individuals at lunch, over coffee and in the hallways. They need to be comfortable coming to me with their problems and I need them to be receptive to directions I set for them. This will be the &#8220;easy&#8221; part of the job. As a person of a <a href="http://www.oneishy.com/personality/phlegmatic_strengths.php">Peaceful Phlegmatic</a> personality disposition building relationships is naturally easy.</p>
<p>Finally, I hope to largely increase my business acumen as the next Linux and Unix Architect. I am looking forward to having strategic conversations with our business partners such as RedHat, HP, <del datetime="2010-05-20T01:53:21+00:00">Sun</del> Oracle, Novell, IBM, Veritas and many more. I expect to be working closer with existing management on budgetary decisions. Frankly, I am struggling to enumerate further business categories for which I should be focusing on which underscores my ignorance in the field. I have had a subscription to <a href="http://www.entrepreneur.com/">Entrepreneur Magazine</a> for nearly a year, watch <a href="http://ecorner.stanford.edu/authorMaterialInfo.html?mid=437">business videos online from Stanford University</a> and try to participate in local <a href="http://www.meetup.com/techlifecolumbus/">TechColumbus</a> networking and business related activities. I will look for any further opportunities that present themselves to me and take it from there.</p>
<p>When I started mentoring with our previous Architect, I told him my goal was to take his job, &#8220;&#8230;but don&#8217;t worry, I want you to move on to bigger and better work first.&#8221; I need those kind of goals to keep me motivated. This next goal will be quite lofty and I have no idea how or when I might achieve it, but the next position I am setting my sights on is CTO. I have a feeling it&#8217;s going to be longer than four years from now that I&#8217;ll be able to write that blog post.</p>
]]></content:encoded>
			<wfw:commentRss>http://jonebird.com/2010/05/19/happy-belated-birthday-to-me/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sun&#8217;s Future under Oracle</title>
		<link>http://jonebird.com/2010/05/15/suns-future-under-oracle/</link>
		<comments>http://jonebird.com/2010/05/15/suns-future-under-oracle/#comments</comments>
		<pubDate>Sat, 15 May 2010 13:34:43 +0000</pubDate>
		<dc:creator>jonEbird</dc:creator>
		
		<category><![CDATA[blogging]]></category>

		<category><![CDATA[opinion]]></category>

		<guid isPermaLink="false">http://jonebird.com/?p=189</guid>
		<description><![CDATA[Nice insight into the transformation of Sun under Oracle&#8217;s helm. They talk about Exadata 2, the appliance which is using their newly acquired sparc hardware.

The machine costs more than $1 million, stands over 6 feet tall, is two feet wide and weighs a full ton. It is capable of storing vast quantities of data, allowing [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.reuters.com/article/idUSTRE64B5YX20100512">Nice insight into the transformation of Sun under Oracle&#8217;s helm</a>. They talk about Exadata 2, the appliance which is using their newly acquired sparc hardware.</p>
<blockquote><p>
The machine costs more than $1 million, stands over 6 feet tall, is two feet wide and weighs a full ton. It is capable of storing vast quantities of data, allowing businesses to analyze information at lightening fast speeds or instantly process commercial transactions.
</p></blockquote>
<p>The part I don&#8217;t like about that statement is the fact that they&#8217;re trying to build both a data warehousing solution as well as a OLTP in the same machine. Sounds horribly inefficient. What I&#8217;ve taken from the article is that Larry seems to be a very savvy businessman but it&#8217;s interesting that they&#8217;ve failed in developing new software for a decade and their revenue increases came from acquisitions. </p>
<p>He plans on continuing to buy up more companies, in the hardware space, but once he&#8217;s done he&#8217;ll have to produce products and that is where I question their ability to deliver. It&#8217;s nice to see that he&#8217;s stopped the bleeding within Sun but now you&#8217;ve got a bruised and battered, over the hill player recovering from fractured ribs and a couple concussions available to you on the bench. It just seems like they&#8217;re taking Brett Favre and using him to coach rugby. I guess that could work?</p>
]]></content:encoded>
			<wfw:commentRss>http://jonebird.com/2010/05/15/suns-future-under-oracle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>64bit Google Chrome with Flash on Fedora</title>
		<link>http://jonebird.com/2010/02/24/64bit-google-chrome-with-flash-on-fedora/</link>
		<comments>http://jonebird.com/2010/02/24/64bit-google-chrome-with-flash-on-fedora/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 02:22:52 +0000</pubDate>
		<dc:creator>jonEbird</dc:creator>
		
		<category><![CDATA[blogging]]></category>

		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://jonebird.com/?p=178</guid>
		<description><![CDATA[[ UPDATE as of 2011-07-10 This post is no longer advisable. Please see my updated post on setting up 64bit Chrome with Flash player for recent Fedora releases. ]
This is a quick howto on getting a 64bit Flash working with your 64bit Google Chrome browser on Fedora. The unfortunate part is that I feel obligated [...]]]></description>
			<content:encoded><![CDATA[<p>[ <strong>UPDATE as of 2011-07-10</strong> <i>This post is no longer advisable. Please see my <a href="http://jonebird.com/2011/07/10/64bit-google-chrome-with-flash-on-fedora-take2/">updated post on setting up 64bit Chrome with Flash</a> player for recent Fedora releases. </i>]</p>
<p>This is a quick howto on getting a 64bit Flash working with your 64bit Google Chrome browser on Fedora. The unfortunate part is that I feel obligated in writing this down for people but it&#8217;s really not that complicated <i>after</i> you figure out a few details.</p>
<p>First things first, you need to get Chrome installed. I find it funny that the top hit on google for &quot;<a href="http://www.google.com/search?q=chrome+yum+repo">chrome yum repo</a>&quot; suggests a yum repo which points to a web server containing only a <a href="http://spot.fedorapeople.org/chromium/README.txt">Readme</a> that states it&#8217;s not serving chrome RPMs due to &#8220;legal concerns&#8221;? Google&#8217;s top hit <i>should</i> be it&#8217;s own page for <a href="http://www.google.com/linuxrepositories/yum.html">Google Yum Repository</a>. There you will find a block of text for your Yum repository which I personally put in <code>/etc/yum.repos.d/google.repo</code>.</p>
<p>Currently, the rpm does not create a plugins directory so we have to create one at <code>/opt/google/chrome/plugins/</code>. Once you have done that, you can visit <a href="http://labs.adobe.com/downloads/flashplayer10_64bit.html">Adobe&#8217;s 64bit Flash</a> page where you can download the compressed tarball. Inside that tarball will be a single <code>libflashplayer.so</code> library which you will now want to either sym link to in the plugins directory or just copy it there.</p>
<p>With all that in place, you are ready to fire up Chrome and tell it about your manually installed plugin. Do that via &quot;<code>google-chrome --enable-plugins</code>&quot;. All should be well and instead of testing it on youtube.com, let&#8217;s go to <a href="http://broadcaster.pandora.com/t?r=927&#038;c=0&#038;l=37961&#038;ctl=178DD08:E47BEA1C1219F1A09EC1BCE00163BAFF&#038;">pandora.com</a> instead and listen to &#8220;<a href="http://broadcaster.pandora.com/t?r=927&#038;c=0&#038;l=37961&#038;ctl=178DD08:E47BEA1C1219F1A09EC1BCE00163BAFF&#038;">M.I.A.</a>&#8221; channel. That funky channel seems appropriate for this procedure.</p>
<p>Here is the copy &amp; paste version: (<i>remove the &quot;sudo&quot; if you are root</i>)</p>
<pre class="prettyprint lang-shell">
# Creating the repo
cat &lt;&lt;EOF | sudo tee /etc/yum.repos.d/google.repo
[google64]
name=Google - x86_64
baseurl=http://dl.google.com/linux/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
EOF
# Actually installing Chrome
sudo yum install google-chrome-beta.x86_64
# Creating a plugins directory
[ ! -d /opt/google/chrome/plugins ] &#038;&#038; sudo mkdir /opt/google/chrome/plugins
# Grabbing Adobe's 64 bit Flash player
wget -qO /tmp/flash.html http://labs.adobe.com/downloads/flashplayer10_64bit.html
DLURL=$(sed -n '/^.*a href.*libflashplayer.*tar.gz/s/^.*&lt;a href="\([^"]*\)".*/\1/p' /tmp/flash.html)
wget -qO- $DLURL | sudo tar -C /opt/google/chrome/plugins/ -xzvof -
# fireup chrome with new plugin
google-chrome --enable-plugins
</pre>
<p>And because I&#8217;ve been playing around with the combination of desktop background, Chrome theme and a <a href="http://broadcaster.pandora.com/t?r=927&#038;c=0&#038;l=37961&#038;ctl=184E736:E47BEA1C1219F1A09EC1BCE00163BAFF&#038;">Pandora</a> skin in a nice, aesthetic color scheme, I&#8217;ll share a desktop screenshot of my 64bit Chrome playing some tunes.</p>
<p><a href="/desktop_colorful.png"><img src="/desktop_colorful.png" alt="" height="50%" width="50%"/></a></p>
]]></content:encoded>
			<wfw:commentRss>http://jonebird.com/2010/02/24/64bit-google-chrome-with-flash-on-fedora/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

