The Future of Media Players?

 23 / September / 2008 by Riley

The mix of the classic structure and modern technology.

The concept of a computer in the living room for home entertainment (or HTPC) has been developing for many years, but it’s never really taken off. There’s lots of set-top boxes, but no complete solution has materialized. There’s a few simple ways to organize the media viewing experience, and there’s always room for improvement. Current media players only allow simple linear or random playback, and lack a significant advantage over established media sources like cable TV and satellite.

For the last several years, I’ve had PCs hooked up to my television and stereo in various ways. And over time I’ve accumulated an extensive media collection. One of the unexpected problems with a large media collection is how frustrating it can be to find and switch between all the content. It can take the fun out of things when it take as long as picking a movie at the local video store. Unless random play meets your needs, there’s not a simple solution to this problem.

It can be easier to just flip through the cable TV channels, or check out the latest DVD from Netflix, rather than searching through some folders or menus. I finally got fed up with the monotony of my cable company and the Netflix issues, and canceled both accounts. Since then I’ve focused on creating my own ultimate home entertainment system. The hardware is easy, but I’ve found media player software to be the biggest limitation. Why do you have to open a menu every time you want to watch something different?

Channels have been a standard fixture in home entertainment for so long, and yet this concept has never been applied to media players in a compelling way. Why not turn a media collection into the equivalent of an À la Carte cable TV package? Easily creating and switching between custom media channels at the touch of a button would be a nice enhancement. Playlists are great, but some small improvements could make a big difference.

Some needed improvements in playlist functionality:

  • quickly switch between playlists (one button)
  • save and return to the last file played (in multiple playlists after reboot)
  • save playback options independently to each playlist
  • simple interface to bring it all together
  • Here’s a quick UI mockup for editing these features:

    Playlist Switching Settings
    name playlist save place
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10


    Add hotkey assignments for “channel up” and “channel down”, and hotkeys for switching to each channel directly. Also, have the OSD show the channel number and name every time it’s changed. A grid menu, like a Channel Guide, for viewing and switching would be a nice addition as well. The ability to return to the last file played in multiple playlists (even after closing the application or reboot) should be a requirement for every media player. This would allow for seamless playback and content switching with little setup time.

    Channel Guide
    Simpsons 1×01 Simpsons 1×02 Simpsons 1×03 Simpsons 1×04 Simpsons 1×05
    Star Trek TNG 5×01 Star Trek TNG 5×02 Star Trek
    Batman Begins (2005) The Dark
    Zoe (1994) Pulp Fiction (1994)
    Futurama 2×03 Futurama 2×04 Futurama 2×05 Futurama 2×06 Futurama 2×07
    The Lord of the Rings: The Return of the King (2003)
    Family Guy 3×5 Family Guy 3×6 Family Guy 3×7 Family Guy 3×8 Family Guy 3×9
    Dark City (1998) The Matrix (1999)


    The addition of saving playlist state data could be incorporated with other enhancements, like play counts and ratings. Playlist editors have been improving, but it would be great to see more advanced features and better tools for playlist creation and sorting. Intelligent random play algorithms are nice, but not a complete solution. Also, having the option to save unique video (aspect ratio, color, subtitles) and audio (volume, EQ, outputs) settings to a playlist would allow many more possibilities for power users.

    These features could be integrated with other non-local sources to create a more comprehensive media portal. Assigning online media sources (live streams, podcasts, etc…) to channels would be the next step. Many media players interact with various APIs, but there’s definitely room for improvement in the ease of use and flexibility. Most media players barely think in two dimensions. A unified matrix interface for media sources would allow more control with a simple front-end.

    Of course this will require more than just the user interface, but it’s all well within the capability of a competent programmer. Why hasn’t this been implemented yet?

    Continue reading The Future of Media Players? >>



    Find and Share Places with Google Maps

     07 / April / 2007 by Riley

    Google Maps has recently added the My Maps interface to their map software. You can create your own custom maps and save them with markers, routes, tags and other info. Each map created has it’s own unique URL that can be shared with others.

    Ongopongo.com is a website where you can share your maps and vote on other maps submitted to the site. The purpose of the site is to create a database of map links that can be organized and searched using a variety of methods.

    I think it would be great to easily search for interesting places on a spontaneous road trip. Hopefully this will take off. It could be a powerful tool if enough people submit maps containing their personal knowledge of areas around the world.

    Check out the site and share your Google My Maps so I can find new places on my next trip.

    Continue reading Find and Share Places with Google Maps >>



    How to configure OpenVPN

     29 / January / 2006 by Riley

    OpenVPN is a tried and true VPN solution. It is totally secure and infinitely configurable. You can install and run this software without relying on a third party. The fact that it’s open source and free really makes it stand out though. OpenVPN can be a little daunting to configure the first time you jump into it, but once you get your configuration worked out, it’s a pleasure to use. Once you have the software running on your network, it’s possible to seamlessly perform a great number of tasks. One of the most popular and practical uses for OpenVPN is to enable secure surfing and home network access when out travelling or on an open wifi access point. It can also be used to connect separate remote networks together into one large network that is fully routable. There’s really no limit to what you can do with OpenVPN.

    For the purposes of this article I am going to demonstrate how to set up OpenVPN on a typical home network. The below configuration will give your client PCs a secure internet access anywhere, as well as full access to your home network. The info contained in this tutorial will be aimed at Windows users with a router that has capabilities similiar to the Linksys WRT54G.

    OpenVPN Installation:

    First, download the install file from http://openvpn.se/download.html (openvpn-2.0.5-gui-1.0.3-install.exe). This is the GUI version of OpenVPN. It’s basically good ole OpenVPN with a minimal graphic interface that is accessible from the system tray.

    Install it on the computer that is going to be your OpenVPN server first. This computer is going to need to be turned on and running OpenVPN at all times that you wish to have your virtual network accessible.

    If you have any previous versions of OpenVPN installed, then shut down any running instance of it before running the install file.

    Run the install program. During the installation you can choose if the GUI program will be started automatically at system startup. The default is yes. I recommend leaving all of the options on the default. All the instructions below assume that you have installed the program in the default directory. At the end of the install you will need to reboot the machine.

    Creating certificates:

    After rebooting you are going to need to configure the OpenVPN files on your server using the command prompt and a text editor like Notepad.

    Go to Start - Run - and type cmd to open the command prompt.

    Then enter the command below to move to the correct directory:

    cd C:\Program Files\OpenVPN\easy-rsa

    Then type this command to run the batch file that will copy the configuration files into place:

    init-config

    Now open the file vars.bat in a text editor. It should be located here: C:\Program Files\OpenVPN\easy-rsa\ You should change the values of the following variables at the bottom of the file KEY_COUNTRY, KEY_PROVINCE, KEY_CITY, KEY_ORG, and KEY_EMAIL. Don’t leave any of these parameters blank.

    Back at the command prompt you are going to enter the following commands in order:

    vars
    clean-all
    build-ca

    When you run build-ca you will be prompted for several entries. You can simply hit Enter to accept the default values taken from the vars.bat file you customized. The only parameter that must be explicitly entered is the Common Name. Enter the name of your VPN for this entry. An example would be MyVPN.

    Next enter the following command to generate a certificate and private key for the server:

    build-key-server server

    Make sure you enter server for the Common Name. The rest of the settings can be left on the defaults. You can leave the challenge password and optional company name blank if you like. Type y for yes at the last two queries, “Sign the certificate? [y/n]” and “1 out of 1 certificate requests certified, commit? [y/n]”.

    Now enter the following command one at a time changing the name for each:

    build-key client1
    build-key client2
    build-key client3
    build-key client4

    and so on…

    You will be prompted to enter data just like when you built the server key. Make sure if you typed the command build-key client1 that you enter client1 for the Common Name. These entries much match up.

    Run the above commands for as many clients as you would like to have on your VPN. I suggest you create more than you think you will need now because it will save you the hassle of having to do it at a later time. Always use a unique common name for each client.

    If you would like to password-protect your client keys, substitute build-key-pass for build-key

    The final step in this process is to generate Diffie Hellman parameters for the OpenVPN server.

    Enter this command to begin the process:

    build-dh

    This might take a long time.

    Note: You only need to do the certificate process listed above on the server.

    Example network:

    The below config files and settings are configured for the following network scenerio:

    Your home router’s IP address is 192.168.1.1 and its subnet mask is 255.255.255.0

    Your OpenVPN server attached to that router has its network interface manually set to the IP address of 192.168.1.150 with the subnet mask 255.255.255.0 and a default gateway of 192.168.1.1

    The router is configured to port forward port 1194 to the server’s IP address of 192.168.1.150

    Note: 1194 is the default port for OpenVPN. It’s probably a good idea to change every instance of the port number 1194 to another port number for better security. Just make sure the router and all the config files are set to the same number.

    If any aspect of your network is different, you will need to take that into consideration when following the rest of this guide.

    Continue reading How to configure OpenVPN >>



    Hamachi VPN Solution

     17 / January / 2006 by Riley

    Hamachi is a great program that enables you to easily set up an encrypted private network between remote computers over the open internet. It’s a simple elegant solution without much fuss. It does have some limitations, but it’s definitely an easy and secure way to access your shared folders, enable remote network gaming, and control your machines via Remote Desktop or VNC type programs. The following tutorial will show you how to configure Hamachi to run and automatically connect in Windows 2000, XP, and 2003.

    Installation:

    To install Hamachi, simply download and run the install file from the Hamachi website: http://hamachi.cc/download Version 0.9.9.9 was the version I used for all of my testing. I recommend installing Hamachi in the default folder and not having it run automatically, especially if you would like to have it run as a service, like I describe below. After the installation you will need to reboot the computer.

    After rebooting the machine start up Hamachi from the newly created shortcut. It will give you instructions to set up your account. Basically, you pick a nickname and it phones home to the Hamachi server to obtain your unique 5.X.X.X IP address. You might want to do this step at the same time on all your computers you plan to access with Hamachi. That way they will all get IP addresses close to one another. You then click “create new network” and enter a network name and password. I recommend using a site like https://www.grc.com/password to obtain a secure password.

    Once you have installed Hamachi on all the computers you plan on using, you will need to click the button to “Join existing network” on all the other PCs. Enter your network name and password and click “Join”. Once it detects the the other computers it will place a green dot next to their entry in the list. You should then be able to access network shares and remote desktop or VNC into the computers. Use the assigned 5.X.X.X IP address to access each computer. One limitation of Hamachi is that you cannot currently use the program to securely surf the net from a remote location without using some kind of remote control app. Another program called OpenVPN is much better suited for that and other advanced routing tasks. I will cover OpenVPN in another article.

    Running Hamachi as a Windows service:

    I highly recommend running Hamachi as a Windows service. It takes a little more effort, but here’s how you do it.

    You need two utilities - instsrv.exe and srvany.exe. Both can be found in the Windows Server Resource Kits. You can find the Windows 2003 Server Resource Kit here. But it is rather large and won’t install on Pre-XP Windows machines. So you might be better off doing a Google search for a site like this.

    Once you have these utiltites, copy them into your Hamachi directory. (I’m going to assume that you used the default directory from here on out.)

    Go to Start - Run - and type cmd to open the Command Prompt

    Type these commands in order and hit enter after each:

    cd C:\Program Files\Hamachi\
    instsrv AutoHamachi “c:\program files\hamachi\srvany.exe”

    This will add Hamachi as an available service in Windows.

    Continue reading Hamachi VPN Solution >>



           older posts >>