<?xml version="1.0" encoding="iso-8859-1"?>
<feed xmlns="http://www.w3.org/2005/Atom"
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      xml:lang="en">
<title>Fragmented Development</title> 
<link rel="alternate" type="text/html" href="http://fragdev.com/index.php?blogId=1" /> 
	 
	<updated>2012-02-08T14:04:36-05:00</updated> 
<generator>lifetype-1.2.10_r6971</generator> 
<id>http://fragdev.com/rss.php?blogId=1&amp;profile=atom</id>
 
<rights>Copyright (c) jacob</rights> 
  
 <entry> 
 <id>tag:fragdev.com,2012-02-08:122</id>
 <title>IE Compatibility VMs Under Virtualbox</title> 
 <link rel="alternate" type="text/html" href="http://fragdev.com/index.php?op=ViewArticle&amp;articleId=122&amp;blogId=1" /> 
  
 <updated>2012-02-08T14:04:36-05:00</updated> 
 <summary type="text"> 
As a web developer, I always face the specter of how my pages will appear in  IE  browsers. We&#039;ve been able to abandon 6 recently, but 7-10 are still with us, and for some projects I need to ...</summary> 
 <author> 
  
 <name>jacob</name> 
</author> 
<dc:subject>
Linux 
Browser 
troubleshooting 
</dc:subject> 
 <content type="text" xml:lang="en" xml:base="http://fragdev.com/index.php?blogId=1"> 
  
As a web developer, I always face the specter of how my pages will appear in  IE  browsers. We've been able to abandon 6 recently, but 7-10 are still with us, and for some projects I need to test what those users will see.
 
 
As a Linux guy, installing Internet Explorer natively is not really an option. Anyone on a non-Microsoft platform hasn't been able to run IE since IE 5.5 or so. However, Microsoft has provided a way to test their browser: by downloading a  Internet Explorer Application Compatibility VPC Image .
 
 
These &quot;images&quot; are actually virtual machines running a whole Windows operating system. They require some serious horsepower and disk space &amp;emdash; downloading all the VMs comes to a whopping  14 GB  &mdash; and the trouble doesn't stop there. These images are actually set up to run under Microsoft's &quot;Windows Virtual PC&quot; software. Surprise surprise, Windows Virtual PC is restricted to... Windows.
 
 
No matter, the images they use are very basic disk images, and completely supported by Virtualbox, including the open source version included in Debian Squeeze. There was just one point of contention that I ran into: Virtualbox tried to connect the disk image to a virtual SATA controller, which caused the VM to bluescreen and reboot repeatedly.
 
 
 Once you switch your disk image to a virtual IDE controller, it seemed to work alright.  This lets me troubleshoot issues that only appear in specific IE versions, and also let me make sure people still stuck on Internet Explorer can use the pages I develop.
 
 
If you still use Internet Explorer, and aren't stuck by policy or some other reason,  consider switching to a better browser . There are better options out there &mdash; and your local web developer will love you for it.
  
</content> 
</entry> 
 
 <entry> 
 <id>tag:fragdev.com,2011-12-06:121</id>
 <title>Odd __FILE__ Behavior in PHP</title> 
 <link rel="alternate" type="text/html" href="http://fragdev.com/index.php?op=ViewArticle&amp;articleId=121&amp;blogId=1" /> 
  
 <updated>2011-12-06T10:44:19-05:00</updated> 
 <summary type="text"> 
Just wanted to note a very bizarre bit of behavior that I noticed with some of PHP&#039;s predefined constants.
 
 
The  $_SERVER[&#039;SCRIPT_FILENAME&#039;]  variable in PHP gives you the currently ...</summary> 
 <author> 
  
 <name>jacob</name> 
</author> 
<dc:subject>
PHP 
</dc:subject> 
 <content type="text" xml:lang="en" xml:base="http://fragdev.com/index.php?blogId=1"> 
  
Just wanted to note a very bizarre bit of behavior that I noticed with some of PHP's predefined constants.
 
 
The  $_SERVER['SCRIPT_FILENAME']  variable in PHP gives you the currently executing script's file name - no surprises there. It always gives you the name of the parent script, though; so, if you include a file, and reference  $_SERVER['SCRIPT_FILENAME']  in that included file, it will give you the address of the  including  file.
 
 
For example, if we execute  test.php , and it includes  lib.php , a reference to  $_SERVER['SCRIPT_FILENAME']  in  either  file will return &quot;test.php&quot;. Here's the code:
 
 
&nbsp;
 
 
  test.php:
&lt;?php
echo $_SERVER['SCRIPT_FILENAME'], &quot;\n&quot;;
include('lib.php');
?&gt;
lib.php:
&lt;?php
echo $_SERVER['SCRIPT_FILENAME'];
?&gt;
Produces:
/var/www/test.php
/var/www/test.php
 
 
The  __FILE__  variable in PHP gives you the file name of whatever script it's called in. So, if you call it from an included file, you'll get the file name of the included file.
 
 
&nbsp;
 
 
  test.php:
&lt;?php
echo __FILE__, &quot;\n&quot;;
include('lib.php');
?&gt;
lib.php:
&lt;?php
echo __FILE__;
?&gt;
Produces:
/var/www/test.php
/var/www/lib.php
 
 
&nbsp;
 
 
The bizarre behavior comes with symlinks. On my workstation, I had a symlink for /var/www that pointed to a folder in my home directory. This caused some very bizarre behavior:
 
 
  test.php:
&lt;?php
echo __FILE__, &quot;\n&quot;,
$_SERVER['SCRIPT_FILENAME'], &quot;\n\n&quot;;
include('lib.php');
?&gt;
lib.php:
&lt;?php
echo __FILE__, &quot;\n&quot;,
$_SERVER['SCRIPT_FILENAME'], &quot;\n\n&quot;;
?&gt;
Produces:
/home/windigo/test/test.php
/var/www/test.php
/home/windigo/test/lib.php
/var/www/test.php
 
 
&nbsp;
 
 
Well, that was unexpected! Apparently the  $_SERVER  variables report the path that I would expect, where the magic constant seems to dereference (?) the symlink and point directly at the target file.
 
 
This caused some strange behavior in the pages I was working on, so I thought I should shed some light on things and write it down in case I ran into it again later. Hope this helps somebody out - otherwise, carry on. :)
 
 
Note: Formatting kinda jacked up, will work on that once I get my blog moved to newer, cooler software. 
  
</content> 
</entry> 
 
 <entry> 
 <id>tag:fragdev.com,2011-11-25:120</id>
 <title>Federation</title> 
 <link rel="alternate" type="text/html" href="http://fragdev.com/index.php?op=ViewArticle&amp;articleId=120&amp;blogId=1" /> 
  
 <updated>2011-11-25T15:42:11-05:00</updated> 
 <summary type="text"> 
After  Identi.ca  had a rash of issues shortly following the release of  Status.net  1.0, I decided that the only logical solution was to take advantage of the open source nature of Status.net, ...</summary> 
 <author> 
  
 <name>jacob</name> 
</author> 
<dc:subject>
Server 
Content 
troubleshooting 
</dc:subject> 
 <content type="text" xml:lang="en" xml:base="http://fragdev.com/index.php?blogId=1"> 
  
After  Identi.ca  had a rash of issues shortly following the release of  Status.net  1.0, I decided that the only logical solution was to take advantage of the open source nature of Status.net, and set up my own instance. Overall, I'd say this is a success; although there are a couple issues that could be addressed.
 
 
Dependence on the Mothership
 
 
One of the issues you run into immediately after getting Status.net and OStatus set up is that you're still extremely dependent on Identi.ca. I have over 200 subscriptions, and the vast majority of them are still on Identi.ca. When Identi.ca goes down, your instance may still be up and running - but it's not doing all that much.
 
 
Not only do you get an empty timeline, but any posts you make probably won't get through to the majority of your subscribers. The method in which posts are synchronized across instances is beyond me; but messages can be, and have been, lost.
 
 
Plugin or Bolt On?
 
 
One of the issues I encountered when I first set up my instance involved the OStatus plugin - or lack thereof. OStatus wasn't listed anywhere in the admin section, either...
 
 
A quick stop into the Status.net IRC informed me that I needed to add the plugin manually via the  config.php  file, and then run  checkSchema.php  from the command line to make sure all of the right database tables are present.
 
 
...really? It seems like this could be refined quite a bit. Enabling a plugin shouldn't require hacking in PHP and executing shell scripts.
 
 
Overall
 
 
Honestly, I've had a pretty good experience overall with my Status.net instance, Micro.FragDev.net. Most of the pain points occurred early in the setup, and the community supporting people who run their own instances has been wonderful. Whenever Identi.ca goes down, there are still a bunch of federated users having discussions in my timeline.
 
 
It seems like version 1.0 of Status.net might have better been a beta release, with a bit of more polish applied before it was thrown on a huge production system like Identi.ca.
 
 
I'll be sticking with Status.net for the time being - and look forward to further development and improvement from Evan and the team. 
  
</content> 
</entry> 
 
 <entry> 
 <id>tag:fragdev.com,2011-08-10:117</id>
 <title>Office Life</title> 
 <link rel="alternate" type="text/html" href="http://fragdev.com/index.php?op=ViewArticle&amp;articleId=117&amp;blogId=1" /> 
  
 <updated>2011-08-10T09:56:10-04:00</updated> 
 <summary type="text"> 
I don&#039;t always put people as my wallpaper. But when I do, I prefer Jezra.
 
 
   
 
 
Stay happy, my friend.
 </summary> 
 <author> 
  
 <name>jacob</name> 
</author> 
<dc:subject>
General 
</dc:subject> 
 <content type="text" xml:lang="en" xml:base="http://fragdev.com/index.php?blogId=1"> 
  
I don't always put people as my wallpaper. But when I do, I prefer Jezra.
 
 
   
 
 
Stay happy, my friend.
  
</content> 
</entry> 
 
 <entry> 
 <id>tag:fragdev.com,2011-08-08:116</id>
 <title>Sixth Sense; IPv6 Summary, Setup on Linode</title> 
 <link rel="alternate" type="text/html" href="http://fragdev.com/index.php?op=ViewArticle&amp;articleId=116&amp;blogId=1" /> 
  
 <updated>2011-08-08T15:38:54-04:00</updated> 
 <summary type="text"> 
While I&#039;m primarily a web guy now, I graduated college as a networker. I really dig networking stuff, so the fact that I didn&#039;t have anything that supported IPv6 bothered me.
 
 
If you ...</summary> 
 <author> 
  
 <name>jacob</name> 
</author> 
<dc:subject>
Linux 
Server 
</dc:subject> 
 <content type="text" xml:lang="en" xml:base="http://fragdev.com/index.php?blogId=1"> 
  
While I'm primarily a web guy now, I graduated college as a networker. I really dig networking stuff, so the fact that I didn't have anything that supported IPv6 bothered me.
 
 
If you haven't heard of IPv6 before, you can go over to the  Wikipedia Page on IPv6  for all of the information you could possibly desire. If you have better things to do with your life, I'll do a brutal summary for you.
 
 
Computers identify themselves on the Internet by using something called an &quot;IP address&quot;. The current set of addresses, specified as part of IPv4, look like this:  1.2.3.4 . We have about 4 billion (4,294,967,296) of those addresses, and we just ran out of them. That's a bit of an issue. The rest is invisible, don't worry about it.
 
 
IPv6 addresses look like this:  fe80::f03c:91ff:fe93:5121 . A little bit more confusing, but you don't usually use them directly. As for the number of addresses, IPv6 has 340 septillu-frepto-blarkin (340,282,366,920,938,463,463,374,607,431,768,211,456) available, which is at  least  twice as many as we have now. Since that number is just astronomically large, let's get astronomical. Let's take the Sun - you know, shiny outside thing, middle of galaxy. The sun is about ~300,000 times the size of planet Earth.
 
 
If you chopped the Sun into cubes that weighted one gram, you would have enough addresses to give ~300,000 addresses  to each cube . That's how many addresses we're talkin' about.
 
 
IPv6 really appeals to me on a very basic geek level, because of stuff like that. So, I went about setting it up on my virtual server, hosted by the good folks at  Linode . It's a good thing the IPv6 explanation got to be a bit wordy, because this part won't.
 
 
First thing I had to do was log into Linode and click on the &quot;Enable IPv6&quot; link underneath the &quot;Remote Access&quot; tab of the  VPS  in question. This rebooted my server, which now had a brand spankin' new IPv6 address upon booting. If you buy a new VPS from them, I think it's enabled by default and you can skip this step.
 
 
After that, I logged into my registrar and added a &quot;AAAA&quot; record to point to my web server at it's new IPv6 address. Your registrar will have to support IPv6 records, but a lot of the good ones do:  Gandi.net  and  GoDaddy  both do.
 
 
Then I had to.... wait, no. That was it.  That was the only change I had to make. 
 
 
So, if you're interested in being ahead of the curve, and you have a Linode, do it up. It's easy as hell, and will give you an edge over all of the old crusty IPv4-only people out there. Next up, I'm planning on figuring out how to get a IPv6 tunnel set up so I can visit other web sites with IPv6. Stay tuned!
  
</content> 
</entry> 
 
 <entry> 
 <id>tag:fragdev.com,2011-01-12:114</id>
 <title>Not Supporting Javascript</title> 
 <link rel="alternate" type="text/html" href="http://fragdev.com/index.php?op=ViewArticle&amp;articleId=114&amp;blogId=1" /> 
  
 <updated>2011-01-12T11:32:15-05:00</updated> 
 <summary type="text"> This is a bit of a rant, but it drives me  crazy  when some sort of fancy-pants Web 2.0
web site informs me, in an obnoxious way, that &quot;Your browser does not support Javascript&quot;.  Thanks,
but ...</summary> 
 <author> 
  
 <name>jacob</name> 
</author> 
<dc:subject>
Javascript 
Content 
</dc:subject> 
 <content type="text" xml:lang="en" xml:base="http://fragdev.com/index.php?blogId=1"> 
  This is a bit of a rant, but it drives me  crazy  when some sort of fancy-pants Web 2.0
web site informs me, in an obnoxious way, that "Your browser does not support Javascript".  Thanks,
but my browser supports Javascript just fine. It's your visitor, me, that doesn't support
Javascript. If your tacky web site needs Javascript to make it's transparent chrome drop-down menu
system work, then maybe you should reconsider how you do your navigation.  As web developers,
we need to stop relying on Javascript for important parts of our web sites! If your visitors have
Javascript disabled, there's probably a good reason for it. Make sure they have a viable fallback,
and only use Javascript to progressively enhance your web site. Frameworks like jQuery make this
trivial, and there just isn't any excuse not to.  If your web site informs me that my browser
doesn't support Javascript, and I don't see a reason it should, I'll have to inform you that I
won't be visiting your site again.  
</content> 
</entry> 
 
 <entry> 
 <id>tag:fragdev.com,2010-11-20:113</id>
 <title>An Ode to Maglite</title> 
 <link rel="alternate" type="text/html" href="http://fragdev.com/index.php?op=ViewArticle&amp;articleId=113&amp;blogId=1" /> 
  
 <updated>2010-11-20T12:32:56-05:00</updated> 
 <summary type="text"> 
I have a Maglite flashlight (the AA model, not one of those also-used-as-a-blunt-weapon models), and I&#039;ve had it for years. The things are damn near indestructible, which is probably how it ...</summary> 
 <author> 
  
 <name>jacob</name> 
</author> 
<dc:subject>
General 
</dc:subject> 
 <content type="text" xml:lang="en" xml:base="http://fragdev.com/index.php?blogId=1"> 
  
I have a Maglite flashlight (the AA model, not one of those also-used-as-a-blunt-weapon models), and I've had it for years. The things are damn near indestructible, which is probably how it survived my teenage years.
 
 
However, the bulb was not so lucky. I set it aside for years, and recently came upon it yesterday. After a little fiddling, I found that the light bulb was just a fancy LED, and could be swapped with other ones. I played around with my red, green, and amber versions of the Maglite for a little while, but decided I'd really be happier with a replacement bulb. The thing was built to last, and the miscellaneous LEDs I tried just didn't do it justice.
 
 
I quickly hopped over to the Maglite web site, entered the model of my flashlight, and was presented with a quick flash tour of the ins and outs of the little guy sitting in front of me. While I kinda rolled my eyes at being taught about my own flashlight, I clicked through anyways.
 
 
The third item in the tour politely informed me that I have had a spare bulb in the little end cap of my flashlight the whole time. Incredulous, I screwed off the cap and looked past the battery spring - and I'll be damned, there was a little replacement LED there the whole time. I pulled off the spring, swapped the LEDs, and had a working flashlight in moments.
 
 
I'm not one for brand loyalty, but if I ever need another portable light-emitting device, you can bet your ass it's going to be from Maglite. Putting this kind of thought and quality design into their products mean that they're not just looking to make a buck; they actually care what they're selling. That company will get my money every time.
 
 
Disclaimer: This is my honest opinion of the Maglite flashlight I own, and I have no connection to Mag Instruments. Although, if they wanted a new web site, I would give them a very competitive rate. :D
  
</content> 
</entry> 
 
 <entry> 
 <id>tag:fragdev.com,2010-11-07:112</id>
 <title>FragDev: Now with CSS 3!</title> 
 <link rel="alternate" type="text/html" href="http://fragdev.com/index.php?op=ViewArticle&amp;articleId=112&amp;blogId=1" /> 
  
 <updated>2010-11-07T11:48:55-05:00</updated> 
 <summary type="text"> 
Finally updated the site with a new layout that I&#039;ve been working on. The new site is better, because of the following:
 
 
	 Less offensively orange 
	 Less HTML code to maintain 
	 Much ...</summary> 
 <author> 
  
 <name>jacob</name> 
</author> 
<dc:subject>
General 
CSS 
HTML 
Content 
</dc:subject> 
 <content type="text" xml:lang="en" xml:base="http://fragdev.com/index.php?blogId=1"> 
  
Finally updated the site with a new layout that I've been working on. The new site is better, because of the following:
 
 
	 Less offensively orange 
	 Less HTML code to maintain 
	 Much lighter layout; the whole front page weighs in at 16 KB! 
	 Works on older browsers, thanks to progressive enhancement 
	 Merges my web site and blog, making everything much easier to maintain 
 
 
Also, I'm releasing the whole layout (sans-picture) under the GPL v3, so you can use it if you like. Now, I've got some side work to get back to...
  
</content> 
</entry> 
 
 <entry> 
 <id>tag:fragdev.com,2010-10-29:111</id>
 <title>Default Browser in Linux, Revisited</title> 
 <link rel="alternate" type="text/html" href="http://fragdev.com/index.php?op=ViewArticle&amp;articleId=111&amp;blogId=1" /> 
  
 <updated>2010-10-29T13:43:51-04:00</updated> 
 <summary type="text"> 
As often is the case with Linux, there are many more ways than I originally thought to set your default browser in Linux.  gomerx  alerted me to a couple more methods, so I&#039;m going to collect ...</summary> 
 <author> 
  
 <name>jacob</name> 
</author> 
<dc:subject>
Linux 
Browser 
</dc:subject> 
 <content type="text" xml:lang="en" xml:base="http://fragdev.com/index.php?blogId=1"> 
  
As often is the case with Linux, there are many more ways than I originally thought to set your default browser in Linux.  gomerx  alerted me to a couple more methods, so I'm going to collect them here in hopes that they help someone else.
 
 
The following methods allow you to change your default browser, and ties it all to the x-www-browser method to make updating simple (Last Updated: 2010-11-08):
 
 
	 Running  update-alternatives --verbose --config x-www-browser  with root/sudo privileges 
	 Adding  export BROWSER=/usr/bin/x-www-browser  to your  .bashrc  file 
	 Selecting a default browser/URL handler in &quot;Preferred Applications&quot; in Gnome (or your  DE 's equivalent)
	 
		 
		 
		In Gnome, you can also use the  cli  tool,  gconftool-2 , with the following lines:
		 
		 
		 gconftool-2 -t string -s /desktop/gnome/url-handlers/http/command 'x-www-browser %s' 
		 
		 
		 gconftool-2 -t string -s /desktop/gnome/url-handlers/https/command 'x-www-browser %s' 
		 
		 
		 gconftool-2 -t string -s /desktop/gnome/applications/browser/exec &quot;x-www-browser %s&quot; 
		 
		 
	 
	 
 
 
It seems like each application chooses which way it would like to open a URL, which is why there's so much variety and you never really know where a web site will open. There might be a way to use some bash-scriptery to get everything to use a uniform value, but if there is, I haven't quite seen it just yet.
 
 
If I can figure out how to get everything to use a single setting, I'll post how. Until then, I hope this helps. Any additional methods are more than welcome - add them as a comment, and I'll update the list!
  
</content> 
</entry> 
 
 <entry> 
 <id>tag:fragdev.com,2010-10-13:110</id>
 <title>Change of Platform?</title> 
 <link rel="alternate" type="text/html" href="http://fragdev.com/index.php?op=ViewArticle&amp;articleId=110&amp;blogId=1" /> 
  
 <updated>2010-10-13T19:40:58-04:00</updated> 
 <summary type="text"> 
I&#039;ve been thinking, and I&#039;m not quite sure I&#039;m comfortable with  Lifetype  as a blogging platform. They don&#039;t update too often, and their admin section doesn&#039;t work in Chromium - so, probably ...</summary> 
 <author> 
  
 <name>jacob</name> 
</author> 
<dc:subject>
Content 
Personal 
</dc:subject> 
 <content type="text" xml:lang="en" xml:base="http://fragdev.com/index.php?blogId=1"> 
  
I've been thinking, and I'm not quite sure I'm comfortable with  Lifetype  as a blogging platform. They don't update too often, and their admin section doesn't work in Chromium - so, probably not in many Webkit browsers.
 
 
This leads me to wonder... what should I switch to? I've had a look at the  Habari Project , which looks cool, but I've mostly started there because of their connection to the infamous  JibbyBot  of  Linux Outlaws   IRC  fame. I don't know much about it, besides that it looks cool.
 
 
So, anyone have any recommendations? I have a few random criteria:
 
 
	 Must be skinnable, preferrably easily 
	 Must generate standardized code - no tag soup 
	 Cannot be Wordpress* 
	 FLOSS, Preferrably GPL licenced, if at all possible 
	 Allow me to write posts in plain HTML 
 
 
Any recommendations?
 
 
*Nothing against Wordpress, I just have another project lined up that should give me a good introduction to it. Plus, what fun is there in going mainstream?
  
</content> 
</entry> 
 
</feed>
