Orson Tyrell

I have no idea what I'm doing.

Monday, September 26, 2016

Dropbox update activating my microphone

Dropbox needs access to my microphone?  I saw this popup today:


I'm not sure if Dropbox is trying to integrate with an OS assistant (Siri/Cortana) or are they doing their own thing?   ...maybe a coming soon feature.


Update:
Speaking of Dropbox permission issues... it'd be nice if I could log into the Dropbox forums with an alternate gmail account to ask a question (for privacy reasons I don't want to use my normal account info).  Unfortunately it's requesting management access to my calendar and contacts.




Friday, December 6, 2013

Directory junctions for dropbox

Some time ago Dropbox switched their default direction location from "My Dropbox" to just "Dropbox".  If you happen to have a lot of scripts and apps installed, switching paths will break all kinds of stuff.  There used to be a workaround by installing the old client (0.7.110), then upgrading through various releases to the latest version.  This would let you preserve the old path of "C:\My Dropbox", but that no longer works.  So, we're left with two problems....

  1. We need the old Dropbox clients (installed to "C:\My Dropbox") to work with new script\app paths ("C:\Dropbox"). 
  2. We need the new Dropbox clients (installed to "C:\Dropbox") to work with the old paths ("C:\My Dropbox"). 

How do we do this?  One way is to use symbolic links.  This will create a reference link from one directory to another... similar to a shortcut.  Here's a workaround for each scenario:

1.  The old Dropbox client is already installed at "C:\My Dropbox".  Now we need to create a symbolic link that connects "C:\Dropbox" to "C:\My Dropbox":
Make sure c:\dropbox doesn't exist.  Then from a command prompt type:
mklink /J "c:\Dropbox" "c:\My Dropbox"

2.  For systems with the new Dropbox client installed "C:\Dropbox":  
Make sure c:\my dropbox doesn't exist. Then from a command prompt type:
mklink /J "c:\My Dropbox" "c:\Dropbox"

The other way to fix this problems is to edit all your scripts with the new path change, and also reinstall/reconfigure all your broken apps.  ssssshhhhhhiiiiii


Wednesday, November 27, 2013

TRUE PowerShell command history persistence (i.e. Bash up arrow), surviving multiple sessions, syncing across multiple PCs, and a table full of fiiixins

A day of celebration is at hand.  For centuries Windows administrators have been living crippled and hellish existences.  Laughed at by some, mocked by others, and ignored by the rest.  All throughout the 19th and 20th century (as well as the entire 5th Age of Paladine), the command line history of each PowerShell session was eradicated upon exit.  Vaporized - trashed - hit over the head, tossed into a pickup truck, taken to an abandoned forest just off the highway, tossed into a pit, and burned till nothing was left but the smokey tears of sysadmins all across the world.

Sure, PowerShell had that 'hash tag + hit TAB' crap, but they've never had 'up arrow' access to the command history.  Well, not anymore...

To get started, you'll need three things:
  1. A script to backup and restore your command history each time you start/exit a PowerShell instance.  (don't worry, the execution time is negligible)
  2. This backup/restore script will require the PSReadLine module.
  3. The easiest way to get the PSReadLine module is to install PsGet.

Let's do this in reverse...

Step 1:  Install PsGet here: http://psget.net/.  For the security conscious people, alternate methods of installation are available, OR you take the security-lite approach and download/inspect the files before execution.
(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex

Step 2:  Install/Import the PSReadLine module.
install-module PSReadline

Step 3:  Add a script to your profile that loads/saves your command history.  Be sure to have the path ready (HistoryDirPath).  For me, I like to put his into a dropbox location and share it amongst my other workstations.  Or if you want to have some level of separation, change the file name (HistoryFileName)
$MaximumHistoryCount = 31KB
$ImportedHistoryCount = 0
$HistoryDirPath = "c:\dropbox\powershell\history\"
$HistoryFileName = "history.clixml"
 
if (!(Test-Path $HistoryDirPath -PathType Container))
    {   New-Item $HistoryDirPath -ItemType Directory }
 
Register-EngineEvent PowerShell.Exiting –Action {           
        $TotalHistoryCount = 0
        Get-History | ? {$TotalHistoryCount++;$true}
        $RecentHistoryCount = $TotalHistoryCount - $ImportedHistoryCount
        $RecentHistory = Get-History -Count $RecentHistoryCount 
        if (!(Test-path ($HistoryDirPath + $HistoryFileName)))
        {   
            Get-History | Export-Clixml ($HistoryDirPath + $HistoryFileName)
        }else
        {
            $OldHistory = Import-Clixml ($HistoryDirPath + $HistoryFileName) 
            $NewHistory = @($OldHistory + $RecentHistory)
            $NewHistory | Export-Clixml ($HistoryDirPath + $HistoryFileName)
        }
    }
 
if (Test-path ($HistoryDirPath + $HistoryFileName))
    {   
        Import-Clixml ($HistoryDirPath + $HistoryFileName) | ? {$count++;$true} |Add-History 
     Write-Host -Fore Green "`nLoaded $count history item(s).`n"
     $ImportedHistoryCount = $count
    }

# Importing PSReadline must come AFTER you load your command history
if ($host.Name -eq 'ConsoleHost')
    {
        Import-Module PSReadline
    }

# if you don't already have this configured...
Set-PSReadlineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadlineKeyHandler -Key DownArrow -Function HistorySearchForward 

Your profile location will be something like:
C:\Users\username\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 

Now for the fiiixins...

Redirect your default profile to your tricked-out profile.
http://orsontyrell.blogspot.com/2013/11/saurons-powershell-profile-in-3-easy.html

Since you're putting your command history and profile on dropbox, don't forget to add your modules as well!

Setup a command line installer like Scoop or Chocolatey.
https://github.com/lukesampson/scoop/
http://chocolatey.org/

With one of these installer you're one line away from all sorts of cool tools, stuff like:  7zip, curl, grep, nano, git, openssh, vim, wget.  With Chocolately you can install goodies like Notepad++, Chrome, VLC, etc.


bunch of sources:
http://psget.net/
https://github.com/lzybkr/PSReadLine
http://stackoverflow.com/questions/17862618/loading-powershell-history
http://blog.clintarmstrong.net/2011/05/powershell-history-persistence.html
http://rkeithhill.wordpress.com/2013/10/18/psreadline-a-better-line-editing-experience-for-the-powershell-console/


Sauron's PowerShell profile in 3 easy steps.


Wouldn't it be nice to share the same PowerShell profile at each of your workstations?  Sharing your influence all throughout Middle-DataCenter...  It's not very tricky, here's how:

1.  Get your cloud syncing app up and running (let Dropbox be the ring-bearer).
2.  Create a location for your one-ring profile, some place like: c:\dropbox\powershell\hobbiton.ps1
3.  Edit your default PowerShell profile to point to the one-ring profile.  So, from the PS command prompt, type:
notepad $profile
   This opens your default profile in notepad... now add this one-liner for the redirection:
. "c:\dropbox\powershell\hobbiton.ps1"
From now on, each workstation can reference the same hobbiton.ps1 profile.  Now your influence can now be felt all across the world.  What sort of influence? say ye fellow traveler...

How about a colored prompt?  BAM:
function Prompt
{
    $promptString = "PS " + $(Get-Location) + ">"
 
    # Custom color for Windows console
    if ( $Host.Name -eq "ConsoleHost" )
    {
        Write-Host $promptString -NoNewline -ForegroundColor Cyan
    }
    # Default color for the rest
    else
    {
        Write-Host $promptString -NoNewline
    }
 
    return " "
}
Sprinkle some of this code magic into your hobbiton.ps1 profile, then set out for an adventure on each of your workstations.



Sources:
http://choorucode.com/2011/09/03/powershell-change-the-color-of-the-prompt/
http://www.asciiworld.com/-Lord-of-the-Rings-.html






Sunday, November 10, 2013

AirPlay to an Arch Linux Raspberry Pi via Shairport

Here's a list of the components:

  • Raspberry Pi - Model B (512 MB / Revision 2)
  • Arch Linux 3.6.11-18-ARCH+
  • some iOS devices (iPhone, iPad, etc)
  • an audio receiver with AUX in


The path of the music:

iOS device -> wifi -> router -> Pi -> 3.5mm output -> receiver input -> speakers -> my living room -> my ears


Here's a few of my notes for getting this up and running... 

Most of this is a modified version of the steps here:
http://engineer.john-whittington.co.uk/2013/05/airpi-diy-airplay-speakers-using-shairport-and-a-raspberry-pi-updated/
I wouldn't say this is an 'updated' version, because I don't know what the hell I'm doing... keep that in mind.

The first few steps are the same:
pacman -Syu
pacman -S kernel26-headers file base-devel abs
pacman -S git
pacman -S avahi libao openssl perl-crypt-openssl-rsa perl-io-socket-inet6 perl-libwww
pacman -S wget
wget https://aur.archlinux.org/packages/pe/perl-net-sdp/perl-net-sdp.tar.gz
tar -zxvf perl-net-sdp.tar.gz

The directory name is different, so...
cd perl-net-sdp
makepkg -s

And the package name is different, so...
pacman -U perl-net-sdp-0.07-1-any.pkg.tar.xz
pacman -S alsa-utils alsa-firmware alsa-lib alsa-plugins
amixer cset numid=3 1
shutdown -r now

After the Pi reboots...
mkdir shairport


The Shairport repo has moved, so use this location:
git clone https://github.com/abrasive/shairport.git shairport
cd shairport
make

Here's where things start to get a little fuzzy.
pacman -S avahi nss-mdns
systemctl restart dbus.service
systemctl |grep avahi-daemon.service

Getting avahi installed and loaded required a little more work.  While trying to start the service it would enter a failed state.  You can check the status with:

systemctl
or more specifically:
systemctl |grep avahi

It wasn't until I found this post:
that said to edit avahi-daemon.conf and change "disallow-other-stacks" from no to yes. 
vim /etc/avahi/avahi-daemon.conf

Find "disallow-other-stacks=no" and change it to yes.  Then try to restart the service:

systemctl restart avahi-daemon
check the status:
systemctl status avahi-daemon

After that, change to the Shairport directory and start it up.  From iOS you should see the new AirPlay device.
./shairport -a AirPi



A little more troubleshooting...

I needed to play around with some of the mixer settings...
pacman -S alsa-utils
alsamixer

Make sure it's unmuted and audio is going out the 3.5mm port:
amixer sset Master unmute
amixer cset numid=3 1


The final step... configure Shairport to run at startup.

following along from the blog post above....

Create the service file for shairport:
vi /etc/systemd/system/shairport.service

Add this text to the file.  If you have shairport in a different location, adjust the ExecStart path accordingly:

[Unit]
Description=Startup ShairPort (Apple AirPlay)
After=network.target
After=avahi-daemon.service

[Service]
Type=oneshot
ExecStart=/usr/local/bin/shairport -a AirPi 
ExecStop=/usr/bin/killall shairport
RemainAfterExit=yes

[Install]

WantedBy=multi-user.target

After that, give it a reboot and see if the service starts up ok.  Check the service with:
systemctl












Thursday, August 15, 2013

Updated Amazon Cloud Player app for IOS - now with more Social!

Amazon's Cloud Player app for IOS has been updated... have a look:

The Facebook icon is a nice touch, especially for someone who doesn't want it.  It's great how it just sits there.... doing nothing.... with no options to remove it.  What a fantastic feature!  Better yet, let's make a suggestion to Amazon.  We can start a new campaign, "Socialize it!":

Nice, subtle, refined..... but we can do better:






Wednesday, July 17, 2013

A better Windows Command Line

Scott Hanselman has an interesting post about the Windows Command Line, including many apps I haven't seen before.  My current favorite is ConsoleZ.  I like the clean interface, the screen splitting feature, and also tabs if needed. Once you combine that with Dropbox + PortableApps, you get all kinds of goodies, such as VIM, Brief the editor, MPX a console music player, Lynx web browser, etc.


Tabs at the bottom...

Lynx, a great web browser if you want to get straight to the text..



Friday, July 5, 2013

Amazon's desktop Cloud Player

Amazon's desktop Cloud Player is out, and the quality is surprisingly good.  No hiccups yet.  There aren't a lot of options (adjusting cache size, exporting to WMP, auto-download), but for simply playing music in my Amazon library, it's nice.


Looking at the process strings are interesting.... aside from the floral pattern, there's references to Adobe ImageReady, QT, openssl, Inkscape, and various certificate authority thumbprints - include DigiNotar!





Saturday, May 18, 2013

Building the perfect typewriter

I should be writing more.

I've come to the realization that I may be spending too much time building the perfect typewriter.  For me, my current "typewriter" includes, but not limited to, the following:

  • Dropbox to keep all files in sync
  • A writing folder inside Dropbox for all my projects
  • Console2 app for working in the Windows console (provides tabs and split screens)
  • PortableApps inside Dropbox (gives me apps like VIM...  among other things)
  • VIM portable (custom vimrc for Brief controls... easier for me to write)  Does a command line word processor exist these days for a modern OS?  WordStar, WordPerfect 5.1, the DOS Word.
  • Homebrew PowerShell scripts for:
    • Tracking changes to text files (short stories, novels, ideas, blog stuff)
    • Recording word count information to a log files
    • Displaying activity of various writing projects

I usually work in a split pane view.  After starting up my config, I usually fire up a VIM session on the left pane and start writing.  On the right pane I usually have one of the following:

Below is how things look today:  


I'd like to think this setup will make writing easier (the same config on all my machines, thanks to Dropbox), and also provide an inspirational dashboard, but part of me thinks "that's B.S., just write something already, quit fidgeting!"  I'm hoping that my dashboard will show a level of progress in various projects and cheer me on.  The programmer in me loves to play around with this stuff.  For example the dashboard has some interesting features:
  • Some quick shortcut keys at the top (no big whoop)
  • Project tracking for text files or Word docs (I have some custom macros to record word count info to log files).  The project tracker displays the following info:
    • Change in word count
    • Date of the change
    • Bar graph of the word change (in relation to the displayed dates, not the entire log... which is completely adjustable)
    • Bar graph for the overall word count progress (again, completely adjustable.. number of dates(rows) to display, width, color, etc)
  • And at the bottom is a small list of files that have recently changed in my writing directory.



Tuesday, May 11, 2010

Moving from Firefox to Chrome - keywords and search engines

Searching from the address bar is one of my favorite features of any browser. For example, if I want to search Wikipedia for Bill Gates, I enter the following string into the address bar: w Bill Gates

Or if I'm searching for a movie: m Star Wars

These shortcuts can work with multiple search engines and multiple browsers. You can add search engines to Firefox by looking through their addon library. You can add them to Chrome manually. Here's my top four Chrome search engines, listed by keyword, search engine name, and search engine URL string:

y
YouTube
http://www.youtube.com/results?search_query=%s&search_type=&aq=1&oq=lady+

m
IMDB
http://www.imdb.com/find?q=%s

d
Merriam-Webster
http://www.merriam-webster.com/dictionary/%s

w
Wiki
http://en.wikipedia.org/wiki/Special:Search?search=%s

Monday, February 15, 2010

Script for bulk encoding videos to H.264 with Handbrake

I'm writing this because I needed a simple way to drop a batch file onto a computer, let it run for a few days, and when I come back all my files have been magically converted to H.264. So before we begin, I'm going to assume you have some knowledge of computers, scripts, and video encoding (Windows, Mac, or Linux). Be careful with the word wraps on this post, the command lines being executed are quite long!

Why H.264?
Much like MPEG2 for DVD video or MP3 for audio, H.264 is a flexible video standard for all sorts of media, such as Blu-ray Discs, web streaming, and portable video devices (iPod Touch or iPhone). Here's a little background information for H.264 and x264:
H.264 is a form of video compression - http://en.wikipedia.org/wiki/H264
x264 is a method(software) for encoding video into H.264 - http://en.wikipedia.org/wiki/X264

One of the things I like so much about H.264 is that it's very flexible. You can encode videos into very high quality HD videos, or something low resolution for use with a phone. The x264 software allows us to make these these adjustments very easily. We'll be using the command line version of Handbrake to do all our encoding. http://handbrake.fr It's free, available for Windows, Mac, and Linux. I'll assume you have the latest version installed at this location: "C:\Program Files (x86)\Handbrake\Handbrake.exe"

Bulk encoding
There's more than a few ways to do this. If you're on a Windows PC probably the simplest way is to use a batch file. If you're like most people, your videos are stored in a particular location. For example, you may have a directory structure like this:
c:\videos
c:\videos\video1\video1.mpeg
c:\videos\video2\video2.avi
c:\videos\video3\video3.xvid
We'll use a batch file to start at the base directory (c:\videos) and work ourselves down through all the subdirectories and encode the video files into H.264. Here's an example batch file that can traverse subdirectories and do something along the way, convert.bat:
@for /r %%F in (*.filetype) do (
 some command here
 some command here
 some command here)

Encoding methods
Handbrake is quite flexible when it comes to importing various file types. I've been able to import DivX, XviD, wmv, etc. One of the most important components of video encoding is the quality. With Handbrake you can handle this three ways:
- setting an average bitrate (1500 kbps for example)
- setting a target file size (Handbrake will adjust the bit rate to fit the requested size)
- setting a constant quality
For our encoding process we'll be using the constant quality method. The first two methods work well if all your videos are from the same source, the same resolution, and using the same codec, but if you have a mixed bag of videos then constant quality is easier to work with.

What quality level should we use?
I'd suggest running a few tests first. Find a video file (the shorter the better, such as a movie trailer), and lets encode it with various levels of quality. In Handbrake, 100% quality is an extreme amount and you'll probably never use something this high. So we'll start with 40%, 50%, 60%, and 70%. After the encoding process is complete, take a look at the file sizes and the level of quality. It may be that you'll need to adjust the level to 65%, or 55%.

I'm encoding my videos for playback on Apple TV, iPhone and iPod Touch. The iPhone\Touch can playback video with a resolution up to 640 x 480 (even though the displayed video is only 480 x 320). You can adjust these settings as well. For example you may want to encode video to 720p or 1080p, to do so just read up on Handbrake's command line switches for -X -Y -w -l, more info here: http://trac.handbrake.fr/wiki/CLIGuide I'm also limiting the audio to 64kbps. You can bump this up as well using the -B switch, something like -B 128.

OK, so you've found a video that you'd like to test. A short video, correct? Place the video in a directory all by itself. Create a new batch with this code in the same directory. Start up a command line windows, navigate to the directory, and run the batch file. Depending on your hardware, this encoding process may take a few minutes, or a few hours if you're using a long video (I told you to use a short video).
@for /r %%F in (*.avi,*.mov,*.wmv,*.mpg,*.mpeg,*.divx) do (
"C:\Program Files (x86)\HandBrake\HandBrakeCLI.exe" -i "%%F" -o "%%~pnF-x40.mp4" -f mp4 -2 -I -O -X 640 -Y 480 -e x264 -q .40 -a 1 -E faac -6 auto -R Auto -B 64 -D 0.0 -m -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=400:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subq=6:8x8dct=0:trellis=0:weightb=0:mixed-refs=0 -v 1
"C:\Program Files (x86)\HandBrake\HandBrakeCLI.exe" -i "%%F" -o "%%~pnF-x50.mp4" -f mp4 -2 -I -O -X 640 -Y 480 -e x264 -q .50 -a 1 -E faac -6 auto -R Auto -B 64 -D 0.0 -m -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=500:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subq=6:8x8dct=0:trellis=0:weightb=0:mixed-refs=0 -v 1
"C:\Program Files (x86)\HandBrake\HandBrakeCLI.exe" -i "%%F" -o "%%~pnF-x60.mp4" -f mp4 -2 -I -O -X 640 -Y 480 -e x264 -q .60 -a 1 -E faac -6 auto -R Auto -B 64 -D 0.0 -m -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=700:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subq=6:8x8dct=0:trellis=0:weightb=0:mixed-refs=0 -v 1
"C:\Program Files (x86)\HandBrake\HandBrakeCLI.exe" -i "%%F" -o "%%~pnF-x70.mp4" -f mp4 -2 -I -O -X 640 -Y 480 -e x264 -q .70 -a 1 -E faac -6 auto -R Auto -B 64 -D 0.0 -m -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=900:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subq=6:8x8dct=0:trellis=0:weightb=0:mixed-refs=0 -v 1)

After this batch file runs you should have 4 new videos, each at a different levels of quality. If you'd like to tweak your quality level, you can adjust the -q value up or down, such as -q .55 or -q .65 and you can also adjust the maximum bitrate with the vbv-maxrate=somevalue_kbps.

For my videos, I'm going with these settings:
-2 [two-pass encode]
-T [make the first pass go turbo!]
-O [optimize for web streaming, YAAA]
-I [for 5.5G ipods]
-X 640 [maximum width]
-Y 480 [maximum height]
-q .60 [not bad, not great, good file size]
-B 64 [64kbps is enough for me]

In the batch file, we'll be looking to convert any avi file, divx file, wmv, etc. Place this file in your base video directory (such as c:\videos) and let it run (it may take a while to complete). It will crawl through all your subdirectories looking for video files to convert. We'll also dump our progress to a log file so you can see what video is currently being encoded. And when you put all this together with the other settings, here's what it looks like... aka, the TL;DR section:
@for /r %%F in (*.avi,*.mov,*.wmv,*.mpg,*.mpeg,*.divx) do (
@echo "- starting %%F"  >> convert.log
"C:\Program Files (x86)\HandBrake\HandBrakeCLI.exe" -i "%%F" -o "%%~pnF-x60.mp4" -f mp4 -2 -T -I -O -X 640 -Y 480 -e x264 -q .60 -a 1 -E faac -6 auto -R Auto -B 64 -D 0.0 -m -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=700:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subq=6:8x8dct=0:trellis=0:weightb=0:mixed-refs=0 -v 1
@echo "- completed %%~pnF-x60.mp4"  >> convert.log)

If you want date & time in the log file:
@for /r %%F in (*.avi,*.mov,*.wmv,*.mpg,*.mpeg,*.divx) do (
@echo - starting %%F >> convert.log
date /t >> convert.log
time /t >> convert.log
"C:\Program Files (x86)\HandBrake\HandBrakeCLI.exe" -i "%%F" -o "%%~pnF-x60.mp4" -f mp4 -2 -T -I -O -X 640 -Y 480 -e x264 -q .60 -a 1 -E faac -6 auto -R Auto -B 64 -D 0.0 -m -x level=30:bframes=0:cabac=0:ref=1:vbv-maxrate=700:vbv-bufsize=2000:analyse=all:me=umh:no-fast-pskip=1:psy-rd=0,0:subq=6:8x8dct=0:trellis=0:weightb=0:mixed-refs=0 -v 1
@echo - completed %%~pnF-x60.mp4 >> convert.log
date /t >> convert.log
time /t >> convert.log)

Other utilities
MediaInfo is an informative little app. And with it's context menu it's very handy. It's good at finding video codec information, audio codec, resolution, bit rate, etc - http://mediainfo.sourceforge.net/en
 

Monday, January 11, 2010

Better performance with Compiz Fusion in a VirtualBox VM on Windows 7

First some background.... my previous entries about VMware and VirtualBox:

Compiz Fusion and VMware Workstation 7 not playing nice:
http://orsontyrell.blogspot.com/2009/11/compiz-fusion-and-vmware-workstation-7.html

Compiz Fusion and Virtual Box 3.10 playing together:
http://orsontyrell.blogspot.com/2009/11/compiz-fusion-and-virtual-box-310.html

Today I'm seeing some great performance improvements with the latest version of VirtualBox, version 3.1.2.  Specifically I'm now satisfied with the performance of Compiz Fusion running in a VM on Windows 7.  Previous I'd see delays in the menuing system or delays when typing in a terminal window, but now the windowing performance is fine. 

After upgrading to VirtualBox 3.1.2, I upgraded the VirtualBox Guest Additions on an existing VM, and I also tested a new VM.  In both instances (an Ubuntu VM and a Linux Mint VM) I saw the same performance improvements.

Thursday, January 7, 2010

Halo Reach: this is not the media you're looking for, move along.

The CES 2010 Keynote Address is available online. Great, except it's not.  At around the 1 hour mark, Microsoft's President of Entertainment and Devices Division Robbie Bach mentions the latest episode in the Halo saga.  Instead of showing the video presented at CES, the viewer is greated with the screenshot below:



Why not show the video?
or Why not just cut the video out all together?
Why leave it on the screen to linger for over two minutes, all the while playing crappy elevator music? 

Oh and sure, when the video feed returns, we're greeted with the audiance's applause of what they just saw...  thanks Bungie.

[UPDATE]
uggh... and they do it again with Microsoft's own Gameroom Arcade...


Monday, January 4, 2010

MP3 to M4B: free, quick, and easy audiobook coversion for your iPhone

Quick?
Maybe, maybe not.  Depends on your hardware.

Why M4B?
MP3 is nice for songs, but if you have a long audio book in MP3 form, it may be 10, 20, 30+ individual MP3 files.  M4B lumps them all in one.  M4A is similar to M4B, but it doesn't offer bookmarking(remembering playback location) which is a necessity when listening to a long audiobook.  Sure, in some instances an app will remember the playback location of both MP3 and M4A, but as the file size increase so does the chance loosing your location.   http://en.wikipedia.org/wiki/M4b

So why not just throw everything in iTunes and use a playlist?
In my experience, the iPod app for the iPhone sucks.  Plan and simple.  Everytime I charge my iPhone via the computer's USB port, the iPhone looses it current playback location.  I've run into similar instances when syncinging.  So what the solution?  I've found an audiobook player app with some good features, and most importantly it doesn't loose it's playback location.  The app even supports background playback (the only non-Apple app I've come accross that does this).  The app is called Bookmark http://bookmarkapp.com/ , Bookmark Blog http://bookmarkapp.wordpress.com/

And now let's start with some apps that I've tried, but for one reason or another haven't had much success:
  • Audiobook Maker version 0.1b for Mac OSX - http://audiobookmaker.sourceforge.net/ - A free MP3 to AAC app.  For me, this app is hit and miss.  Sometimes it works, sometimes it crashes, and sometimes I just get the spinning beachball.  The good news is it's open source if anyone wants to pick it up, unfortunately the app was last updated Dec 03, 2005 (http://sourceforge.net/projects/audiobookmaker/files/).  Maybe it's incompatibilities with Snow Leopard, I don't know.
  • MP3 to iPod Audio Book Converter version 0.18 for Windows - http://freeipodsoftware.com/ - Another free all-in-one type app.  And again, it's hit and miss with conversions.  I tend to have better success when running it on XP, unfortunately most of my PCs have moved to Windows 7.  When running under Win 7 I tend to run into a Java error at the start of the conversion process. 
A successful 3-step process:
  1. MP3 files to M4A files - using Format Factory version 2.20 - http://www.formatoz.com/ - This free app converts all kinds kinds of media.  If you have a large number of files to convert it has a great queuing system.  Just drop them in the queue and let it crank away.  Out comes the M4A files.
  2. M4A files to a single chaptered M4B - using Chapter and Verse version 1.3.3.5 - http://lodensoftware.com/chapter-and-verse/ - Another free app.  Creating the M4B is rather simple, just add the M4A files, make any necessary meta data changes (Author, Title, Album Art, etc), then click the Build Audiobook button.  Individual files are converted to chapter breaks in the single M4B file, but with the Bookmark app this isn't really neccessary.  
  3. Drop the M4B into iTunes and BAM!  your done.  If you don't want to use iTunes, you can use CopyTrans Manager http://www.copytrans.net/

Friday, December 25, 2009

Flash 10.1 beta 2, Mac and Linux now available

Adobe has released an update to their beta Flash (GPU accelerated Flash).  They're up to Flash 10.1 beta 2.  Binaries are available for Windows, Mac, and Linux:
http://labs.adobe.com/technologies/flashplayer10/

With the latest nvidia drivers (on Windows 7) I saw quite a performance improvement with Flash 10.1 beta 1.  http://orsontyrell.blogspot.com/2009/11/flash-101-gpu-acceleration-non.html
Now that binaries are available for the Mac (Flash 10.1 beta 2) I'm able to do some similar tests.  I ran these tests on a MBPro that has an integrated GeForce 8600M GT.

Flash 10.0.42.34


Flash 10.1 beta 2, 10.1.51.66

 
Unfortunately I'm not seeing any gains in performance.  Playback of the 2012 HD trailer (http://www.youtube.com/watch?v=Hz86TsGx3fc) runs the CPU to around 45% with both Flash 10 and Flash 10.1 beta 2.

So what's the problem?  I suspect it's the nvidia drivers that are released by Apple.  I can't remember the last time I've seen a graphics driver update for OSX.  On the Windows side it seems there's an update every other month.  In my previous test of Windows Flash 10.1 beta, the drivers are what made the difference.  Upgrading from Flash 10 to Flash 10.1 didn't show any improvements, but after I upgraded the graphics drivers to the latest WHQL, I saw a huge improvement.  I'm hoping for an update to the OSX graphic drivers, but I'm not holding my breath.  In the meantime, this just gives us another reason to use bootcamp. 

Friday, December 18, 2009

Microsoft Surface + Dungeons and Dragons

This is probably years away, and something we'd only see at a convention or a game shop, but wow.... geek worlds are about to collide.


SurfaceScapes Gameplay Session from Surfacescapes on Vimeo.

The demo shows some really cool mechanics:
  • fog of war
  • combat calculations
  • character selection
  • spell lists
  • inventory
  • movement calculations
More info here:
part 1:
http://blogs.msdn.com/surface/archive/2009/12/08/bringing-d-d-to-microsoft-surface.aspx
part 2:
http://blogs.msdn.com/surface/archive/2009/12/16/new-gameplay-video-with-d-d-on-surface.aspx

    Saturday, December 12, 2009

    TWiT video is available on the web, h264 HQ and LQ

    On Demand TWiT has been around for a while with ODTV.me, but it's a low quality flash capture from fans.  Today we can get HQ and LQ video from several shows, produced from the TWiT crew.  Once an RSS feed is available I'm sure BoxeeHQ's TWiT plugin will get an update.  It looks like the video is h264 854x480 and 640x368.  I'm seeing video on Windows Weekly, TWiT, and Mac Break Weekly.

    Windows Weekly:
    http://dts.podtrac.com/redirect.mp4/twit.cachefly.net/video/ww/ww0134/ww0134_h264b_864x480_500.mp4

    TWiT
    http://dts.podtrac.com/redirect.mp4/twit.cachefly.net/video/twit/twit0224/twit0224_h264b_864x480_500.mp4

    Mac Break Weekly
    http://dts.podtrac.com/redirect.mp4/twit.cachefly.net/video/mbw/mbw0170/mbw0170_h264b_864x480_500.mp4

    Tuesday, December 8, 2009

    Google's search results show twitter feeds

    Perhaps I'm late to the game but I just noticed this....
    If you do a Google search for a twitter user and the word "twitter" you'll see a new display section of the user's recent tweets.  As time goes by the section will be populated with new posts and you'll get a scroll bar to move up and down the posts.  If you click the "Latest results" link you'll see a list of the last dozen or posts.  As new posts comes in the list is updated in real time.  After the twitter section you'll see the normal Google results.


    Monday, December 7, 2009

    Boxee Beta details, now with DXVA (DirectX Video Acceleration)

    A recent blog post from Boxee gives details about the new public beta release due Jan 7th (they're still in alpha).  The most important detail in the announcement... support for DXVA.  What's so cool about that?  If your processor has problems displaying High Def video (720p, 1080p) then you may see some performance improvements with the CPU offloading video decoding to the GPU (your graphics card).  For example, if you have a blu-ray rip that's encoded 1080p your CPU alone may not be able to handle decoding, especially since Boxee's decoder doesn't take advanage of dual/quad CPUs, neither does VideoLan's VLC media player.  Instead of using Boxee/VLC you'd need to use something like ffmpeg's multi-core codec with Media Player Classic.  And for those of you with an ION based computer (netbook, HTPC, etc) you should see some benefits as well.  

    Video from their announcement is here:
    http://livestream.com/boxee

    Sign up for the beta here:
    http://bit.ly/boxeebetaea
     

    Saturday, December 5, 2009

    DNS benchmark showdown: Google DNS, Open DNS, Comcast, and more. Using Google's new DNS tool

    Google is providing a new DNS benchmarking tool for free.  Available in .dmg, .exe, .tgz.
    http://code.google.com/p/namebench/

    I ran the test a few times against my default ISP settings for DNS (Comcast).  Some example results are below.  I was hoping for better performance from Google's DNS, but perhaps I'll try again at a later time.  In my tests so far, my ISP's DNS usually comes in first or second (second to UU Cache-4).  At times Sprint and OnRamp will make it to the top.

    Then again speed is not be everything.  OpenDNS has tons of cool features.  And as a side note, I'm using dd-wrt on a linksys router (default DNS settings) running the tests from a MBpro.