Categories
Apache LAMP Lighttpd Linux News Programming Web Dev

Lets Encrypt on Ubuntu using Apache, Nginx, or Lighttpd Cheat Sheet

If you are using Lets Encrypt (www.letsencrypt.org) certificates on your Ubuntu servers, you may find the following information useful if you work with Apache, Nginx, or Lighttpd.

Installing Lets Encrypt on Ubuntu 14.04 (or older)

Reference: https://www.vultr.com/docs/setup-lets-encrypt-with-apache-on-ubuntu-14-04

apt-get install git
git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
/opt/letsencrypt/letsencrypt-auto

The 3rd line sets up Lets Encrypt and installs any necessary dependencies such as Python.

Ubuntu 16.04 install instructions

Reference: https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04

apt-get install letsencrypt

Note: The remaining portion of this document uses /opt/letsencrypt/letsencrypt-auto and /opt/letsencrypt/certbot-auto command line tools as found when installing on Ubuntu 14.04 or older. If you are using Ubuntu 16.04 or newer, simply run the command letsencrypt and certbot without the full path or the additional -auto from the command line.

Setup your server so you can create certificates without having to stop your web server

I will not explain aliases in detail, but essentially you need to create an alias URI for /.well-known/. It can be shared among all of your virtual hosts. Lets Encrypt uses this folder to save folders and files that are used in the confirmation process for creating new and renewing existing certificates.

Create a working folder for Lets Encrypt:

mkdir -p /var/www/letsencrypt/.well-known/

Then setup your web server to use this working folder for the .well-known URI path on your server.

Apache .well-known Example

Create a file called letsencrypt.conf with the following.

Alias "/.well-known/" "/var/www/letsencrypt/.well-known/"
<Directory "/var/www/letsencrypt/.well-known">
 AllowOverride None
 Options None
 Require all granted
</Directory>

If you place this file in the conf-enabled folder (/etc/apache2/conf-enabled/letsencrypt.conf) then simply restart your Apache web server. Otherwise you will need to make a symbolic link in your conf-enabled folder to where you saved your letsencrypt.conf file.

Do not forget when ever making configuration changes to Apache to run the following before restarting your web server.

apache2ctl configtest

Nginx .well-known Example

Create a file called letsencrypt.conf with the following.

location ~ ^/\.well-known/(.*)$ {
 alias /var/www/letsencrypt/.well-known/$1;
 # No need to log these requests
 access_log off;
 add_header "X-Zone" "letsencrypt";
}

Then in your nginx.conf file near the top of the server { } add the following line:

 include /path/to/your/letsencrypt.conf;

Do not forget when ever making configuration changes to Nginx to run the following before restarting your web server.

nginx -t

Lighttpd .well-known Example

Add the following in your lighttpd.conf file. Note the += is for adding to an existing set of alias URLs. If you have no alias.url values, then simply remove the + but leave the equal. Learn more about Lighttpd aliasing here.

alias.url += ( "/.well-known/" => "/var/www/letsencrypt/.well-known/" )

Do not forget when ever making configuration changes to Lighttpd to run the following before restarting your web server.

lighttpd -t -f /etc/lighttpd/lighttpd.conf

Creating New Lets Encrypt SSL Certificates

You can now create Lets Encrypt certificates without your server having to be shut down temporarily.

/opt/letsencrypt/letsencrypt-auto certonly --webroot --manual-public-ip-logging-ok -d example.com --agree-tos -m you@example.com --text  -w /var/www/letsencrypt/

Replace example.com and you@example.com with your email address and your host name. Remember if your host name starts with www., leave off the www. as it is not necessary, a certificate without the www. also works with the www.

Renew certs

/opt/letsencrypt/certbot-auto renew

certbot-auto uses previous settings to renew the cert in the exact same way it was created so no extra parameters are necessary

Reference: http://letsencrypt.readthedocs.io/en/latest/using.html#renewing-certificates

You can create a file in the /etc/cron.weekly/ folder to renew Lets Encrypt certificates weekly. Even though it will run weekly, Lets Encrypt is smart enough not to renew certificates until there is 30 days or less remaining. This gives you plenty of overlap in case for some reason one week failed to renew.

Example bash file /etc/cron.weekly/letsencrypt

#!/bin/bash
/opt/letsencrypt/certbot-auto renew
You may want to use the > /dev/null 2>&1 trick at the end of the command line to surpress errors from coming from your cron tasks via email.

Deleting SSL Certificates

When we no longer wish to maintain SSL for a host name, we need to delete the renewal config file.
rm /etc/letsencrypt/renewal/example.com.conf
This file includes information where the SSL certs are located and the options used when the SSL cert was first created.
This is not the same as revoking an SSL certificate. This simply no longer renewing the certificate every 2-3 months.
SSL Cert files are saved in the following path by folder for each host
/etc/letsencrypt/live/
Specific SSL files are located within the host name folder
/etc/letsencrypt/live/example.com/
Important reference to the pem files:
cert = /etc/letsencrypt/live/geeknewscentral.com/cert.pem
privkey = /etc/letsencrypt/live/geeknewscentral.com/privkey.pem
chain = /etc/letsencrypt/live/geeknewscentral.com/chain.pem
fullchain = /etc/letsencrypt/live/geeknewscentral.com/fullchain.pem

Note: “chain” is specifically for Apache and the SSLCertificateChainFile  setting, which is now obsolete as of 2.4.8. This is a good thing as now Nginx and Apache use the same fullchain and privkey files. Lighttpd is still not as simple, see note below.

Though all files are saved in the pem format, other systems and platforms use different file extensions rather than filenames to identify the differnet files. Here is a quick cheatsheet in case you need to map previous files to new files.

type (explanation) - letsencrypt - other examples
cert (public key) - cert.pem - example.com.crt, example.com.public.key
privkey (private key) - privkey.pem - example.com.key, example.com.private.key
chain - (chain key) chain.pem - gd_bundle.crt, alphasslroot.crt, etc...
fullchain (concatenation of cert + chain) - fullchain.pem - fullchain.crt

Pem files and their use on Apache, Nginx, and Lighttpd

Apache 2.4.8 and newer

SSLCertificateFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/fullchain.pem

Note that there is no SSLCertificateChainFile option, it now uses the fullchain.pem which combines the cert.pem with chain.pem.

Apache 2.4.7 and older

SSLCertificateFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

Note that we are not using the fullchain.pem, instead we are linking to the cert.pem and chain.pem on 2 separate configuration lines.

Nginx

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

Lighttpd

Lighttpd Note: The cert and privkey need to be combined for Lighttpd

cd /etc/letsencrypt/live/example.com/
cat privkey.pem cert.pem > ssl.pem

Then link to the certificates in your lighttpd config settings.

ssl.pemfile = /etc/letsencrypt/live/example.com/ssl.pem
ssl.ca-file = /etc/letsencrypt/live/example.com/chain.pem

If you are automating Lighttpd renewals, you will need to add an extra step that concatenates the privkey.pem with the cert.pem before restarting/reloading Lighttpd

While searching the Internet for examples of setting up Lighttpd, I found some examples show using the ssl.ca-file using the fullchain.pem. Though this will also work, that is not technically correct as the ssl.pem already houses the cert.pem
Please feel free to leave a comment if you find an error and/or have additional notes which may be helpful for others.
Categories
PHP Programming Technology WordPress

GetID3 analyze() function new file size parameter

You can now read ID3 (media file headers) information from mp3 and other media files using GetID3 library without having the entire media file present. The new 2nd parameter to the analyze() member function allows you to detect play time duration with only a small portion of the file present.

Years ago I added this code to the versions of the getid3 library we packaged with the Blubrry PowerPress podcasting plugin. I’ve submitted this code to the getid3 project so everyone can benefit. As of GetID3 v1.9.10,  you can now pass a second optional parameter specifying the total file size. This parameter sets the file size value in the getid3 object, skipping the need for the library call the filesize() function.

This is the secret sauce that allows PowerPress to detect the file size and duration information from a media URL of any size in only a few seconds.

Requirements

The new parameter only works if the following are true:

  • Have enough of the beginning of the media file that includes all of the ID3 header information. For a typical mp3 the first 1MB should suffice, though if there is a large image within your ID3 tags then you may need more than 1MB.
  • Have the total file size in bytes.
  • The mp3 file is using a constant bit rate. This must be true for podcasting, and highly recommended if the media is to be played within web browsers. Please read this page for details regarding VBR and podcasting.

Example Usage

// First 1MB of episode-1.mp3 that is 32,540,576 bytes
// (approximately 32MB)
$media_first1mb = '/tmp/episode-1-partial.mp3
$media_file_size = 32540576;
$getID3 = new getID3;
$FileInfo = $getID3->analyze( $media_first1mb, $media_file_size );

You can use a HTTP/1.1 byte range request to download the first 1MB of a media file, as well as a HTTP HEAD request to get the complete file length (file byte size).

Byte range requests and HEAD requests are safe to use for podcasting. If a service does not allow HEAD requests or accepts byte range requests, then they will have bigger issues to deal with as these features are required by iTunes.

Blubrry PowerPress podcasting plugin has been using this logic to detect mp3 (audio/mpeg), m4a (audio/x-m4a), mp4 (video/mp4), m4v (video/x-m4v), oga (audio/ogg) media since 2008.

Not all media formats support this option. You should test any format not mentioned above. For example, ogg Vorbis audio works, ogg Speex audio does not.

Categories
News Podcasting Programming Technology

HTML5 audio / video and mp3 / H.264 is the future of new media but does not replace Flash

HTML5 is the future of new media (also known as downloadable media and podcasting). Anyone who has used an iPad or Google Chrome and watched a video knowing it was through an HTML5 video element knows what I’m talking about. Playback is instant, smoother and is much more responsive than via Flash. It is also very easy to develop in your web pages, removing a level of complexity that was previously much more involved and relied upon Adobe Flash.

The remainder of this post explains everything in detail, why use one format over another, what Flash is still good for, and where the media can end up.

Note: An update to this original post may be found at the bottom of this page.

What is HTML5 and what’s the deal with audio/video?

HTML5 is a new version of HTML (markup that creates web pages that you see in your web browser) that adds a number of new elements (special tags that do things in your HTML, e.g. <p> tag indicates a paragraph of text). HTML5 adds two new elements called audio and video. These new elements allow for web developers like myself to easily add an audio/video player in a web page. Without the HTML5 audio/video element, a web developer needs to implement more complicated HTML utilizing the “embed” tags to include a Flash developed player in the web page. In this case, the Flash player is required to be installed on the end user’s computer in order for the audio/video to playback.

What audio and video formats should I use?

Audio: mpeg3/MP3 (.mp3 file extension) is, for the most part, the most ideal audio format. As of current, all but Firefox have/will have support for mpeg3 audio. AAC audio (.m4a) may also work, but if you are looking for a format that will work in absolutely every situation, mp3 is the best bet.

Video: H.264 (.mp4 or .m4v file extensions) is the most ideal video format. As of current, all but Firefox have/will have support for H.264 video.

Why is MP3 and H.264 recommended for audio/video?

MP3 is the audio format of choice because it is the most widely playable audio format. Nearly every media player application, portable media player, and automobile/car stereo can play mp3 files.

The MP3 format became widespread in 1997 when the Windows application WinAmp was released. Created by Justin Frankel, WinAmp made it easy for music enthusiasts to exchange and listen to audio on computers. The small size of MP3 files enabled widespread distribution initially via file sharing applications such as Napster and on wide-area networks such as university dormitory networks. It was such a popular format that Apple included support for MP3 in it’s first release of the iPod in 2001.

H.264 is the video format of choice because it is the most widely playable video format. Though not as widespread as the mp3 format, H.264’s common denominator is that it can be played on the most popular portable media players, MAC OSX, Microsoft Windows, Internet connected TV’s and smart phones. You can thank Apple for making H.264 the standard in its portable hardware (iPod/iPhone), which has dominance in the portable media player market.

What can Flash do that HTML5 audio/video cannot?

Live streaming! Many sites such as Qik and UStream.tv provide live online content, their use of Flash will not change due to HTML5 audio/video.

The difference between “downloadable media” and “live streaming” is the “live” part. Downloadable media is not live, which has an advantage to providing the consumer the ability to save the media and play it back at their convenience. Live streaming on the other hand, is real time audio/video playback that cannot be paused/played without the help of a device to record the content. For this reason, Flash may not be as important but still has the purpose of providing a means to stream live content.

As far as downloadable media is concerned, Flash is perceived as dead, but Flash will play a key role on portable devices such as Android phones in providing live streaming content over the coming years.

The Flash Video Secret

Though most know that Flash is used to play audio mp3 files, many web developers are not aware that Flash can play H.264 video. Since Flash version 9 released in the Winter of 2007, Flash has the ability to play .mp4/.m4v video. Before Flash 9, Flash could only play Flash video (.flv file extension) files.

As far as video is concerned, this solidifies the H.264 format as the most widely playable video format. It allows a web developer to alternatively allow its web visitors the ability to play H.264 video in the event the browser itself cannot play the HTML5 video format.

Google Chrome / Apple Safari

Both Google Chrome and Apple Safari web browsers support mpeg3 (.mp3) and H.264 (.mp4/.m4v). Safari has one glitch though, it will auto download the media files linked in the audio/video tags, which does bring up a challenge for web developers to deal with.

Internet Explorer

Currently, Internet Explorer (IE) does not support HTML5, but the signs back in Fall of 2009 were obvious that they were planning on supporting it in the future. With the recent blog post announcement for support for H.264 video in IE9 and past blog post announcing MP3/AAC audio support, it looks like the next version of IE is on its way of being HTML5 audio/video friendly. There is only one problem though, IE9 will only be available for Windows 7 and Vista, Windows XP will not have IE9 as an upgrade option.

Firefox and the OGG format

Firefox supports a niche audio and video format called OGG. The reason for this is simple, it doesn’t cost Firefox anything to support OGG formats. Since Firefox is essentially a free foundation and not a real company selling products/services, it does not have the money or resources to purchase licenses to include support for the H.264 video format. From the last post I read about the subject, Firefox would have to pay a 5 million dollar license fee in order to use the H.264 video format and it would still be limited to which versions of Firefox could include H.264 (source based compiled versions distributed through different versions of Linux would not be included in the license for example). It is a bit more complicated than this, but you get the idea why Firefox doesn’t support H.264. Read why Firefox does not support H.264.

The OGG format is a combination of a number of formats, two of which are supported by Firefox. The OGG audio format, also referred to as Vorbis (.ogg or .oga file extensions) is a truly open source audio format. The OGG video format, also referred to as Theora (.ogg or .ogv file extensions), is a free video format based upon a patent by On2 Technologies. As of current the patent behind Vorbis is not enforced, allowing the format to be used with out paying any royalty or fees. Example of a potential Theora problem.

I should point out that both Google Chrome and Apple Safari support the two OGG audio and video formats mentioned above. Internet Explorer, Apple iPod/iPhone/iPad/TV and most other portable media / TV hardware most likely do not support OGG, limiting this format’s reach in the market.

Firefox, H.264 and MP3

Firefox will most likely not support H.264 without help from Apple/Microsoft/Google. I predict by years end one of those companies will sponsor Firefox’s H.264 five million dollar license to include H.264 support in Firefox. There could also be a plugin for Firefox that provides H.264 functionality. More interestingly, Apple/Microsoft and Google hold patents related to H.264 so it is possible they could come together and influence MPEG LA (folks who enforce the H.264 licenses) to give the Mozilla Foundation (Firefox) a special license for using H.264. Who knows what will really happen, but it is definitely to Google’s best interest with it’s YouTube property that all web browsers can play back its video content.

I have no idea why Firefox does not support mp3. Mp3 and Ogg video are identical as far as having patents that are not enforced (no one is asking for royalties for using these formats). As far as audio is concerned, I think it is hypocritical of Firefox not to support mpeg3 but support OGG Theora.

Apple iPod/iPhone/iPad/TV

All of Apple’s products/hardware support both MP3 audio and H.264 video formats.

Android/Blackberry/Palm WebOS

The other remaining popular smart phone platforms support both mp3 audio and H.264 video formats.

Other Internet Connected TV Hardware

Other Internet Connected TV hardware (also referred to as OTT TV/Over The Top TV, Set-Top boxes, and IPTV) such as the Roku add the icing to the cake as far as picking audio/video standards are concerned. All of the Internet Connected hardware devices that are planned or that are already available support MP3 audio (.mp3) and H.264 video (.mp4/.m4v).

Conclusion

I am sure this post will upset some folks (Flash developers, Linux/open source enthusiasts, etc…) and I apologize. I love Linux and open source, but I’m sorry to say OGG is not going to become the standard for media. As for Flash, there is still a lot of cool stuff you can do with Flash including live streams, but Flash as far as downloadable media (new media/podcasting) is concerned, Flash is dead.

Update on March 25, 2011:

It appears my prediction may have been wrong about H.264 being sponsored by another vendor for inclusion into Firefox. Over the past year, Google has acquired On2 Technologies (OGG Video) and has launched a new project called WebM which is completely royalty free. This is a game changer both for the WebM video format, but also for OGG Vorbis audio. It also means that Flash is not dead in the short term for downloadable media and can be used to fill in the gap for when a specific audio/video format is not supported in a given browser.

WebM the Game Changer

WebM is significant for a number of reasons. First, it’s important to note one of On2’s past clients, Adobe. One of On2’s older video codex is used for Flash video (.flv). With the launch of WebM video format (.webm), Adobe has promised to include WebM support in future versions of Flash, and seeing it’s past relationship with On2, I don’t see how there would be a problem. In addition, Opera, Firefox and Google Chrome web browsers also support WebM playback. Ogg Theora is essentially replaced by WebM, though the OGG Vorbis audio format that is packaged with OGG Theora and WebM may be the other winner in this HTML5 media tug-of-war.

Also important to note that anything Google related will include WebM support, this means future versions of Android, YouTube and the new Google TV video platform.

Google removes H.264 from Chrome, adds WebM and Launches Google TV

Since the Google acquisition of On2, Google has decided to no longer include H.264 (.mp4) support with the Google Chrome browser, opting instead to include WebM as the supported HTML5 video format. Four significant changes have occurred, which warrant noting:

  • Chrome browser can no longer play H.264 video
  • Chrome browser can no longer play AAC (.m4a) audio
  • Chrome browser can now play WebM video
  • Chrome browser can now play OGG Virbis Audio

Along with Firefox and Opera, this now means that 3 of the 5 major web browsers require WebM for video and OGG Vorbis/Mpeg3 for audio. Also important to note Firefox 4 still does not support Mpeg3 (.mp3) audio, which I think is a major letdown.

With this new WebM format, we can assume that the older OGG Theora video format is no longer a player in the HTML5 video wars. OGG audio on the other hand, is another story.

What will be significant is if future versions of Google TV (also packaged in Sony high end TV’s and Blu-ray players) will be WebM exclusive. If this happens, along with adoption on Android based phones may have enough impact that WebM could quickly become an important video format.

M4a Audio growth stalled, OGG Vorbis Audio growth continues

With the HTML5 Video Wars between WebM and H.264, it means that the AAC (.m4a) Audio format growth is now stalled. Looking at AAC last year, I would have thought by now almost every device and hardware out there would support the format. Important to note video hardware vendors include AAC support mainly because it is required for  H.264. As devices come to market that do not have H.264, it is only natural for those devices will also not support AAC (.m4a). AAC almost had the capability to play almost everywhere, but now it seems the Mpeg3 (.mp3) format will continue to still have wider distribution.

Flash will continue to Bridge the Gap

Many of the TV devices like Boxee rely upon Flash for audio and video playback. These devices may be the winner as things play out since Flash can play mpeg3 (.mp3), H.264 (.mp4), AAC (.m4a via the video player) and WebM (.webm). I also suspect that once WebM support is added, it would only be natural for Flash to then also be capable of playing OGG Vorbis (.ogg/.oga) via the WebM player.

What I recommend as of March, 2011

For Video, I recommend creating H.264 (.mp4) and WebM versions of your video. This way you are able to harness HTML5 video on all five web browsers as well as support nearly every video playing device whether it includes one format or the other.

For Audio, I recommend Mpeg3 (.mp3), it still plays on devices and in applications. Though AAC (.m4a) is a close second, if your not using any of the Audiobook features found in m4a (which by the way only work on Apple hardware and software), there’s no real significant advantage to using m4a over mp3.

Categories
Programming Technology

Firefox Extensions I Use

I’m often asked what Firefox extensions I use in my web browser. For those who ask, here you go.

Basic plugins that anyone may like:

  • Gmail Manager – check and manage multiple Gmail accounts
  • History block – prevent some sites from crowding your web browser history
  • Echofon – Twitter client (formally known as TwitterFox)
    • I’m looking for a better Firefox Twitter client, please comment if you know of one.
  • PDF Download – Decide whether you rather download or view PDF
  • Tabs Open Relative – Open new tabs to the right of your current tab

Plugins specific to web development:

Categories
Podcasting Programming

Subscribe to RSS, Atom, Twitter, iTunes, and Google Reader links for WordPress

I’ve created a WordPress plugin called Subscribe Sidebar!

If your familiar with my blog, you’ve seen my Subscribe sidebar in the past. Now it’s available as a plugin for WordPress. I got tired of copying/pasting the HTML from theme to theme and folks requested the same links for the Blubrry Podcasting blog I decided it was time to develop it into an easy to install WordPress plugin.

The plugin may be added to the sidebar by either utilizing the dynamic widgets sidebar feature or adding a few lines of code to your theme’s sidebar template. Options include links for RSS 2.0, Atom, podcast Feed, add to Google Reader/Homepage, add to My Yahoo, add to iTunes, add to Zune and follow on Twitter. I constantly get a steady stream of people asking for my twitter name, so now it’s under my subscribe links in my blog, I can now refer folks to my blog. 🙂

Categories
Home PodCamp Podcasting Programming Technology

Columbus Social Media Cafe – Central Ohio Bloggers, Podcasters and Social Networking

Anyone in the Central Ohio area who is a blogger, podcaster or social networking enthusiast/expert should be aware that there is a potential meetup group organizing called the Columbus Social Media Cafe. Yesterday was the 4th SMC meetup and I gathered that they are just now working on defining what the goals are of the group and plan on forming a mission statement. You can read more about the last meetup at Elephants on Bicycles and This Woman’s Work blogs.

When I arrived, I found myself briefly explaining what PodCamp and PodCamp Ohio is. I was not prepared to make any sort of presentation at the meetup but I did my best. This was a learning experience for myself, as I found myself speaking to a crowd of bloggers who are aware that podcasting should be included in their space but don’t exactly have a grasp on what exactly podcasting is. I also mentioned briefly some of the viral networking techniques that PodCamp Ohio is using in order to market the event to bloggers, podcasters and social networking enthusiasts.

I learned a lot from the meetup. What I found the most interesting was what they are envisioning; a social networking web site that pulls in feeds of blogs and podcasts and provides social networking features such as tags and comments. The group would be the perfect customer for the RawVoice Generator, which does pretty much what they want. One of the organizers mentioned someone who is in the process of developing such a tool that the group could use, so I didn’t quite feel comfortable mentioning that my company already has such a product on the market for more than 2 years now. The process they are undertaking made me feel vindicated that the past 3 years of my life that I’ve spent developing such tools is of real importance, not just globally but also for the local community. There is real potential for blogging and podcasting to connect with its local communities, and I for sure want to be involved in helping that happen here in Central Ohio.

I hope they can create a brand/logo soon and put in place a scheduled meeting time using not just meeting spaces in the public but also utilizing those social media tools that are so important such as TalkShoe/BlogTalkRadio for on-line recorded phone meetings and Google Group public mailing lists. At the moment the only way anyone can participate is by attending the public meetings, which may limit the audience size of participants. The more opportunity to let someone be herd, the more opportunities that will be used by those with the means. I’m pretty confident they will pick up on these other tools soon.

I am a little concerned that some of the founders organizing the Columbus SMC group found PodCamp Ohio somewhat threatening. I hope they did not get that impression cause it is definitely not something meant to compete with other groups with similar goals. PodCamp is a social event with the primary goal to bring bloggers and podcasters together to share knowledge and network with each other. I hope the Columbus SMC organizers don’t feel threatened by the event, that’s certainly not the events goal and I am confident that’s not what Chris Brogan or Christopher Penn intended when they created PodCamp.

Categories
Home Programming Technology

A Good Keyboard is Important

Last summer, I purchased a new computer, right away I had to swap the new keyboard that came with it (HP Pavilion) with my previous worn down IBM keyboard. Well in October, the keyboard wasn’t working so well so I hunted through the house till I found a keyboard I could live with. Oddly, it’s a HP corporate keyboard from about 10 years ago. It works ok, I am typing on it as we speak, but a couple keys aren’t as reliable as they should be. So last week I went to Microcenter and purchased a $30 Microsoft Keyboard. It was the cheapest keyboard that had a normal keyboard layout with the 2 key wide backspace key. It also had the normal 6 keys between the mail keys and the numeric pad. Many keyboards are starting to re-engineer the 6 keys (insert, home, page up, delete, end and page down) in non standard ways. If you’re a programmer like me, that completely sucks. Some of the keyboards have a 2 key sized delete key and have removed the insert button completely. I don’t know what keyboard designers are thinking lately!

I used to always buy IBM brand keyboards but since they left the desktop/laptop computer market, they no longer sell keyboards. Oh how does that suck! In my opinion, IBM made the best keyboards.

So I’ve been trying out a Microsoft keyboard out for about 5 days and quickly came to hate it. I finally disconnected it and plan on returning it. It did have softer key action, which was keeping my wrists from getting tired. Now I am using this old HP keyboard, my wrists feel like someone stuffed rocks in them.

Dell USB Multimedia KeyboardSo the last keyboard I used that I really liked was the Dell Multimedia Keyboard pictured. This and its non multimedia variant were pretty well designed keyboards, the keys were where they should be and the space in front of the keyboard allowed you to add your own wrist pad.

There’s a few other little things about this keyboard I like. First, the mute button is on the right hand side. The Microsoft keyboard had the mute button on the left, which doesn’t help me at all. The volume control is an actual dial on the Dell, which doesn’t matter for me because I usually use the windows controls for that anyway. It makes a nice holder for my wedding ring when I feel the need to take the ring off while working.

So today, I ordered a new Dell USB Multimedia Keyboard. With shipping it was about $33.

What kind of keyboard are you using? Are you as picky as me as far as key placement?

Categories
News Programming Technology

RawVoice Podcast Statistics Released

Over the past couple of months I’ve been working on a podcast statistics system for the RawVoice communities Blubrry, PodcasterNews band TechPodcasts. The system can also be completely re-branded for companies who want to use the media download statistics for their podcasts.

Podcast Statistics are a very important part of the Podcasting business. The download numbers are very important, not only as a way for the producer to gain insight of their audience size, but they are also used as a means of making money. Most podcast advertising today is based on allotments of 1,000 downloads, referred to as CPM. If someone offers you $5 CPM and you have 10,000 downloads of your podcasts, you would make $50. The CPM in this example is just that, an example. Actual CPM rates range based on the popularity of your show, the content it targets and the demographics the advertisement targets.

We were fortunate to work with download statistics for a very popular podcast, one of the top 10 on iTunes. This podcast alone has an audience size of roughly 1/2 million per episode. Having this data, I was able to truly test and optimize the database and programming logic in order to quickly create the reports. The first version of the system took 15 minutes to update. The updates now take between 60 to 90 seconds and include the totals for country demographics, software clients and operating system platforms.

If you want to see what I have been working on over the past couple months, check out the Blubrry Podcast Statistics page.

I am pretty excited by the outcome of the Statistics system. I have many people to thank, especially my wife for her help and support.

Categories
Home News Programming Technology

The house is wired!

I’m done, I finished wiring the house 2 nights ago and it feels great. Actually I am not finished, I still have 4 more open ports in the patch panel and the whole first floor. :-p

Here’s a picture of my patch panel:
Patch Panel

A picture of my desk somewhat clean. This is a rare sighting!
Command central

Categories
News Programming Technology

Wiring Up the house

I’ve been slowly wiring the house with Ethernet Cat5e and Coax RG-6 cabling. The evening of the 4th I finally ran cabling up to the attic and dropped the wires into the bedrooms. All the rooms now have coax cable ports. I’ve punched down 4 Ethernet in two of the important bedrooms. Sometime this weekend I’ll finish the other 2 bedrooms.

Wall Ports

I think putting 2 ports in each room was a smart thing to do. I color coded them so each room has both a blue and a green port. If we ever decide to get a home ‘lan’ phone, we now have the option of putting Ethernet phones in every bedroom.

I had to pull one of the cables off the patch panel. I still don’t know what the standard practice is for re-using a port in a patch panel that was previously used. I assume I can re-use the port but I haven’t found a blog post or web site to say either way. If anyone knows one way or the other, please leave a comment.

I didn’t wire everything on my own, as you can see Ty helped out!

Wiring Expert