the Little Projects of Shawn M. Jones » » web site /blog the life and times of a man in 21st Century America Sat, 06 Dec 2014 18:06:07 +0000 en-US hourly 1 http://wordpress.org/?v=4.3.1 Rebirth of a web site /blog/2011/02/21/rebirth-of-a-web-site/ /blog/2011/02/21/rebirth-of-a-web-site/#comments Tue, 22 Feb 2011 04:21:48 +0000 /blog/?p=233
Print Friendly

I just spent time giving birth to an Old Dominion University Computer Science web site at http://www.cs.odu.edu/~sjone.  It’s just one page now, with some course information, and some links back to this site.  I know, not very interesting.  Under the covers, though, is a testbed for the Semantic Web.  So far, I’ve got Dublin Core and Friend of a Friend (FOAF) implemented for that one page.  In the future, I intend to bring the lessons learned there over to this site.  Eventually, the two will begin to look more alike in both style and function.

Perhaps Web Science and Digital Libraries is really my thing. I spend an awful lot of time blogging about my own web sites.

Validation of the Creative Commons Markup

I also discovered that the Creative Commons license markup wouldn’t validate with the W3C validator. This was because my page was initially specified as XHTML, but the Creative Commons license link contains additional RDF metadata used by search engines and other software. A blog post suggested just removing the metadata, but I didn’t want to do that because I knew that metadata had been placed there by Creative Commons for a reason. That metadata is part of the RDFa standard, which is a way of embedding metadata into normal HTML and XHMTL.

It turns out that once you put that Creative Commons markup into your XHTML, it becomes XHTML + RDFa, which is a completely different document type. I felt good that I’d figured this out, and changed the page to use this instead.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">

Now it validates fine as XHTML + RDFa.

Nifty floating image trick

You may wonder how I got the image to stay on the left and in the same spot, even though the visitor can scroll the page.  It is based on the following CSS, shamelessly stolen from the W3C themselves.

body {
    background-image: url(http://www.cs.odu.edu/~sjone/images/oducs-lpx.png);
    background-repeat: no-repeat;
    background-position: top left;
    background-attachment: fixed;
   /* more CSS here */
}

That’s it. It’s quite elegant, and I spent more time making the image with Inkscape than I did actually writing the CSS to tell it to stay put.

Useful Links

I discovered the following useful sources for bringing that site to life:

]]>
/blog/2011/02/21/rebirth-of-a-web-site/feed/ 0
Copyright © is not enough /blog/2011/01/25/copyright-is-not-enough/ /blog/2011/01/25/copyright-is-not-enough/#comments Wed, 26 Jan 2011 04:25:03 +0000 /blog/?p=204
Print Friendly

Tonight’s Digital Libraries class covered Copyrights, Patents, Copylefts, and other intellectual property concepts. This is especially important in the digital libraries world because the laws surrounding intellectual property make preservation challenging.

An important take-away from tonight’s lecture was that merely placing “© 2010 Shawn M. Jones” at the bottom of my pages is not merely enough to protect it legally.  A notice must appear somewhere on the site for its content.  Several years ago, Lawrence Lessig created the Creative Commons license to allow those on the Internet to share their work while retaining their copyright to said work.

To provide a license for this blog, I’ve filled out the form on the site and followed the directions on the web site for linking to the chosen license, like so:

Creative Commons License
the Little Projects of Shawn M. Jones by Shawn M. Jones is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.

We’re quite lucky to live in an era where folks are willing to do the legal legwork necessary to make this happen. I’m happy that it’s even held up in court.

]]>
/blog/2011/01/25/copyright-is-not-enough/feed/ 0
Finding a kernel on the web /blog/2011/01/20/finding-a-kernel-on-the-web/ /blog/2011/01/20/finding-a-kernel-on-the-web/#comments Thu, 20 Jan 2011 05:02:35 +0000 /blog/?p=188
Print Friendly

One of the great agonies of a human being is searching for that little kernel of knowledge that actually answers their question. Within a traditional library, one would ask the reference librarian to lead them to the documents that, hopefully, answer their question. On the web, we use search engines as if they were reference librarians, and search engines are a poor substitute, but they are all we have for now.

Within a traditional library, the information about a book (metadata) is stored within some system (e.g. MARC), and this system is linked to some library classification (e.g. Dewey Decimal) for finding it on the shelf at a particular library. A whole profession exists for making this happen. Book metadata is chosen by professionals so that said book can be delivered to the person looking for the information within. These professionals (catalogers) are the gatekeepers of the whole system. Without them, the books might as well be strewn about.

On the web, there is no central authority. Every site is responsible for its own content. Search engines like Google use complex algorithms to try to find something that answers your question. Web site owners must take it upon themselves to not only ensure that their site stays consistent and correct, but also that it has metadata for these search engines to use to find them. Though Search Engine Optimization (SEO) is largely used to ensure potential customers find businesses, it is also important in helping users find the information they are looking for.

Now that I am aware of the importance of such metadata, I have installed a plugin for WordPress on my blog that generates Dublin Core metadata elements. These metadata elements are supposed to help others find articles like this one via search engines.

This plugin takes the existing metadata I was already supplying for each post, and places it in the header of the HTML at the top of the page, like so:

<meta name="DC.publisher" content="the Little Projects of Shawn M. Jones" />
<meta name="DC.publisher.url" content="/blog/" />
<meta name="DC.title" content="Finding a kernel on the web" />
<meta name="DC.identifier" content="/blog/?p=188" />
<meta name="DC.date.created" scheme="WTN8601" content="2011-01-19T23:52:11" />
<meta name="DC.created" scheme="WTN8601" content="2011-01-19T23:52:11" />
<meta name="DC.date" scheme="WTN8601" content="2011-01-19T23:52:11" />
<meta name="DC.creator.name" content="Shawn M. Jones" />
<meta name="DC.creator" content="Shawn M. Jones" />
<meta name="DC.rights.rightsHolder" content="Shawn M. Jones" />
<meta name="DC.language" content="en-US" scheme="rfc1766" />

I don’t really expect the search engine rankings to go up, but the real win here is that I’m helping others index my site in case I’ve actually provided exactly the information someone is looking for.  In a way, this is a form of SEO, but it gets back to that cataloging spirit originally found in the library.  There is no common list of tags or subjects for the web that we all must adhere to, but little steps like this bring us closer to finding the information we are looking for.

Take a look at the source for some of your favorite news sites, you’ll probably see the same metadata in their headers too.

For futher reading:

Metadata: The Foundations of Resource Description

]]>
/blog/2011/01/20/finding-a-kernel-on-the-web/feed/ 0
This site is a blog /blog/2011/01/10/this-site-is-a-blog/ /blog/2011/01/10/this-site-is-a-blog/#comments Mon, 10 Jan 2011 04:33:20 +0000 /blog/?p=128
Print Friendly

I’ve resolved that what I’m really looking for in a web site is a blog.

I wanted the site to do the following things:

  • allow me to publish blog posts, which I was already doing with WordPress
  • allow me to publish the occasional article, which I seem to have little time or inclination to do, so I ditched Drupal
  • allow me to publish photos, for which I’m currently using Picasa Web Albums

I’m maintaining my own site on my own server for the following reasons:

  • Blogger was too slow to load on many of the networks I experimented with
  • WordPress has more features than Blogger.
  • WordPress is open source, and I can learn about this nifty piece of software by running it myself.
  • I had already moved my mail services off of Gmail and onto my rented server, and wanted to consolidate my web services there as well.
  • I love messing with a Linux server in my spare time.

We’ll see how far this Intel Celeron 2.53 GHz machine with 1GB of RAM will get me.

]]>
/blog/2011/01/10/this-site-is-a-blog/feed/ 0
Yet another site change /blog/2010/02/18/yet-another-site-change/ /blog/2010/02/18/yet-another-site-change/#comments Thu, 18 Feb 2010 00:21:16 +0000 /blog/?p=77
Print Friendly

I’ve been spending the last few days updating this site to something more useful, or so I hope.

I have a desire to share what little I learn from day to day, yet I don’t have an interest in maintaining a lively conversation about it.  I like writing articles, but not blog posts so much.  I also needed a place to point folks to when they asked for a resume or anything about me.

For years, I maintained multiple web sites, littleprojects.com and littleprojects.org.  The org site was for my personal endeavors and the com site was to be more professional.

Now Facebook takes care of my personal needs and I can focus on just keeping this site up to date with articles and the occasional blog post.  My hope is to have a place I can point to for my writing should prospective employers, colleagues, and others want to see what I can do.

]]>
/blog/2010/02/18/yet-another-site-change/feed/ 0
Problem solved: WordPress install generates a blank screen /blog/2009/04/05/problem-solved-wordpress-install-generates-a-blank-screen/ /blog/2009/04/05/problem-solved-wordpress-install-generates-a-blank-screen/#comments Mon, 06 Apr 2009 02:24:00 +0000 http://wwwnew.littleprojects.org/?p=46
Print Friendly

I smacked my head on this one, seeing as one of my previous posts had the same solution.

CentOS 5 does not install php-mysql by default. When the WordPress installation runs, it disables error reporting for certain functions, presumably so that they can be dealt with later.

Unfortunately, this error reporting doesn’t get dealt with correctly, and instead the end user is presented with a blank page instead of a message telling them that the mysql functions don’t exist.

I’ve got a patch ready for the WordPress folks, but I’m still waiting for my login to their bug reporting system so I can submit it.

I hope this helps someone else.

In short, if you see a blank screen after putting in your database information during install, make sure that the php-mysql package is installed on CentOS. I spent hours trying to figure out why this wasn’t working right.

]]>
/blog/2009/04/05/problem-solved-wordpress-install-generates-a-blank-screen/feed/ 0
Web site technology brainstorming /blog/2008/10/11/web-site-technology-brainstorming/ /blog/2008/10/11/web-site-technology-brainstorming/#comments Sat, 11 Oct 2008 21:55:00 +0000 http://wwwnew.littleprojects.org/?p=29
Print Friendly

A year ago, after much consideration of differing tools, I looked at all of the open source Content Management Solutions and came to the conclusion that nothing solved every one of my needs well.

I needed the following:

  1. A blog
  2. A photo gallery
  3. A web mail program

I tried quite a few solutions and came down to the following solutions that seemed to do their respective jobs best:

Then I ran into the following problems:

  • No common authentication scheme for these three tools. In essence I had to log into each of them separately. This is a common problem to using multiple tools.
  • A strange Out Of Memory error that occurs on my Apache web server when it runs too long. I don’t know if it’s B2 Evolution or Gallery 2 doing that. Currently the web server restarts its process every hour to avoid this (not really an optimal solution, don’t visit at the top of the hour)
  • Squirrelmail has many of the features I want, but the interface is lacking.
  • No way of tying the information together. I can not use the same categories for blog entries, photos, and email messages together. This was not an original requirement but became more apparent over time as I began using other tools, like Agendus on my PDA.
  • PHP seems to have quite a few security holes, requiring a lot of patching/restarts of the web server.

So, with the hubris that most developers have, I decided it would be better to just write my own tools to do this.

I have looked at the following programming environments:

  • Ruby on Rails – A Ruby Application Server for web development
  • Zope – Like Ruby on Rails, but in Python
  • J2EE – A web programming environment for Java

Each has its own pros and cons. Both Zope and Ruby on Rails appear to be very much tied to database design and relationships. J2EE is looking like a good choice for complete abstraction, but with that power comes a lot of work.

Then, there is the research needed to make certain aspects of blogs and photo galleries work.

In order to understand the implementation of Trackbacks and other Blog-related concepts, I’ll end up diving into B2Evolution’s code. In order to find out how caching is handled for photos, I’ll end up diving into Gallery 2’s code.

At that point, I might as well force those tools to do what I want.

]]>
/blog/2008/10/11/web-site-technology-brainstorming/feed/ 0
Lil’ bit: favicon.ico for your web site /blog/2008/06/26/lil-bit-faviconico-for-your-web-site/ /blog/2008/06/26/lil-bit-faviconico-for-your-web-site/#comments Thu, 26 Jun 2008 22:51:00 +0000 http://wwwnew.littleprojects.org/?p=25
Print Friendly

Note my favicon:
favicon for this site

I had been meaning to add a favicon (note the icon next to my address in the address bar on your browser) for quite some time, but hadn’t gotten around to it. The last time I tried to create something in the .ico format, I needed a special tool.

But then again, times change. I used the GIMP to make the .ico file and posted it to the root of my webserver directory.

Nothing happened when I refreshed the page.

Then I found out that I needed to tell Apache about .ico files, so I put the following in my /etc/httpd/conf/httpd.conf file:

AddType image/x-icon .ico

Make sure that the favicon.ico file has the executable bit set for everyone:

chmod a+x

and now it will show up.

You might need to clean out your cache and restart your browser to see it. Evidently this feature "sticks" to web pages.

]]>
/blog/2008/06/26/lil-bit-faviconico-for-your-web-site/feed/ 0
Problem solved: Tikiwiki install generates a blank screen /blog/2008/06/10/problem-solved-tikiwiki-install-generates-a-blank-screen/ /blog/2008/06/10/problem-solved-tikiwiki-install-generates-a-blank-screen/#comments Wed, 11 Jun 2008 02:19:00 +0000 http://wwwnew.littleprojects.org/?p=23
Print Friendly

If the Tikiwiki install generates a blank screen, it could be (it was for me) because you don’t have the php-mysql package installed.

CentOS 5 does not install the php-mysql package by default.

This is required by Tikiwiki if you are using mysql (obviously).

]]>
/blog/2008/06/10/problem-solved-tikiwiki-install-generates-a-blank-screen/feed/ 0
Lil’ bit: Setting up user directories for Apache (i.e. ~user) on CentOS 5 /blog/2008/06/09/lil-bit-setting-up-user-directories-for-apache-ie-user-on-centos-5/ /blog/2008/06/09/lil-bit-setting-up-user-directories-for-apache-ie-user-on-centos-5/#comments Mon, 09 Jun 2008 22:10:00 +0000 http://wwwnew.littleprojects.org/?p=22
Print Friendly

Setting up user directories for Apache (i.e. ~user) on CentOS 5:

  1. Change the /etc/httpd/conf/httpd.conf and comment out:
    UserDir disable

    and un-comment:

    UserDir public_html
  2. Restart Apache.
  3. Create a public_html directory in the user’s home directory.
  4. Make sure it has permissions 0755.
  5. Make sure their home directory has permission 0711.
  6. Make sure that public_html directory has SELinux context:
    user_u:object_r:httpd_sys_content_t
  7. Make sure that the SELinux boolean
    httpd_enable_homedirs

    is set to "on".

]]>
/blog/2008/06/09/lil-bit-setting-up-user-directories-for-apache-ie-user-on-centos-5/feed/ 0