Quickie Custom ‘Speak’ Protocol

I mentioned on Facebook I was thinking about adding the second protocol I did and also about changing this to a more tech related blog… Well, here’s the “Speak” protocol and I’m still debating on if/when I may do the blog changes.

If you came directly to this post, read the previous one to get an idea about Custom Web Protocols and an idea of what’s going on.

*Required Software*
For starters, this protocol uses some freeware called NirCmd (by NirSoft) which can be downloaded from the bottom of this page. Make sure to download the correct 32bit/64bit version and after you extract it, copy NirCmd.exe to your Windows\System32 directory either manually or by running NirCmd (it offers a button to copy it there automatically).


If you still have the *.reg file from the “Sublime Protocol” you can make a copy of that file and do some simple changes to create this, or if you’re starting from scratch open “Sublime Text” (or your favorite text editor… yes, even Notepad works) and copy/paste the following into your document. Don’t forget to save it with the *.reg extension.

Registry File
Warning:
Modifying the Windows Registry can be hazardous to your computer and cause data corruption, data loss, or just outright kill your system, therefore proceed at your own risk and I will not be held responsible for any damage you may/may not cause. This registry file has been tested and deemed safe on both Windows 7 and Windows 8 but has not been tested on XP or Vista.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\speak]
"URL Protocol"=""
@="URL:SpeakText"

[HKEY_CLASSES_ROOT\speak\DefaultIcon]
@="C:\\Windows\\System32\\shell32.dll,282"

[HKEY_CLASSES_ROOT\speak\shell]

[HKEY_CLASSES_ROOT\speak\shell\open]

[HKEY_CLASSES_ROOT\speak\shell\open\command]
@="C:\\Windows\\System32\\cmd.exe /K nirSpeak.cmd \"%1\""

Notes:

  • If you change the trigger for the protocol (speak) it needs all five references changed.
  • The double \ in the file paths are required.

The last line needs to be altered if you change the name of the Command/Batch file or you get a security error for running the Command Prompt (see previous post for info on this and how to fix it).

Batch File
Taking the name from the registry file, in this case “nirSpeak.cmd”, we create a new empty document with that name and copy the below code into it.

@ECHO OFF
TITLE Archigos NirSpeak
for /F "tokens=1,2* delims=/" %%a in ("%~1") do set protocol=%%a&set str=%%b
nircmd speak text "%str%"
exit

*Using*
There’s one large difference between this and the previous protocol (other than the obvious usage) in which this does NOT encode/decode the information sent which changes a few things with the usage. With the Sublime Protocol for example, if a filename contained a space, that would be converted to %20 and back again where required, but the Speak Protocol would actually say “percent two zero” if you tried to manually encode it. The easiest way to create speech is to create a variable with the entire string you want and than just putting the variable into the URI (which also prevents certain errors due to spaces like speak://multiple words would. It wouldn’t cause a PHP error, but NirCmd would most likely error out or only say the first word).

A great example of how you may want to use this would be to greet your user after they log into your site.

$username = $_POST['username]';
$greeting = "Greetings ".$username;

And then you’d use a JavaScript function or similar to invoke it (in this case: speak://$greeting) on page load or whatever. You could also use buttons or inputs in a similar fashion, like the button I use on one of my sites that reads the stats to the user.

echo "<div class='speaker'><button onclick=\"location.href='speak://$greeting'\">Totals</button></div>";

*Final Thoughts*
Obviously both this and the Sublime Protocol could benefit from hiding the Command Window that is spawn but I wanted to write these using as little third party software as I could to make it easier on the reader. Oh and for those that want to play around with the speech function there’s a bunch of information on NirSoft’s website, but for the lazy, open a command prompt and type nircmd speak text "Hello World" and it will say whatever is between the quotation marks.

Development Integration, Custom Web Protocols, and other stuff

*Development Integration*
I’ve been slowly altering my development environments on both my laptop and my main server over the last week so that when I get around to doing the full re-install (which they both need) I can have more of a set game plan on which pieces of software I’ll use, their configurations, etc. mainly because there’s a lot of stray files lingering from apps that I installed and decided they either didn’t fit my style or they just sucked. The point being is that I’ve been using Sublime Text for a long time now and was looking into ways that would integrate it a little more into my flow. On a Mac, you can install a plug in for Sublime (or it might be installed with it by default) where you can open documents directly in Sublime using their custom protocol. Similar to how iTunes will open if you click on a link to an iPhone/iPad app on a webpage.
I did some research to see if it could be done on Windows and let’s just say, my searches didn’t garner promising results. Most of the sites either gave directions of how to activate/use it on a Mac or whatever, with the only reference to Windows is that people claimed it would work or third party apps I have no need for were required. So, I did my usual and got pissed, then decided I would just do it myself, so I’ve managed to get ‘most’ of the same functionality they have on the Mac.

*Custom Web Protocol*
Most people have at least some knowledge of web protocols whether they know it or not. For example, when you type an address into your web browser to visit Google, some users still have a tendency to fully write out http://www.google.com, but even if you don’t, when you click up there, you’ll notice it appended the http:// to it anyway and that’s the part we’re interested in for now. Some other common ones that people have probably heard of would be FTP (ftp://), POP and SMTP for email use, etc.
When I mentioned iTunes above, that’s an example of a custom protocol and is similar to what we’ll be creating for Sublime on Windows (tested on Windows 7 and Windows 8). But some may ask, “What’s the point of all of this?” or “Why would this be useful?” and a great example of this are people that want to implement Custom Error Control into their development so that when something does go wrong, not only do you have some usable information about the problem, but you could just click a link and the source file that contains the error would be opened automatically.


Basic Error in Chrome

Custom Error Control

If you click the second image, you should see near the top middle it says “Open: C:\inetpub\wwwroot\test1\index.php” and that’s the link we’ll be manipulating. Here’s where the platforms are slightly divided, on a Mac, the URI will end up being in the following format: subl://open?url=file://<filename>&line=<number> where ‘<filename>‘ would be the source file with the error and the <number> would take you directly to where the error is located. On the PC side, I haven’t been able to figure out how to utilize the actual line number so I’ve removed it from this, but will make sure to update this post with it if I ever figure it out. Along with the line number, I’ve also removed the starting part of the protocol (open/?url=file://) which leaves you with the following syntax: subl://<filename>. [In both cases, the filename is URLEncoded and has to be decoded for use].

*Now the fun begins*
We have the format of how we’ll set this up, so now we need to create a small Registry file and a single batch file that will handle calling Sublime and passing the required file to it. The actual protocol is subl:// and if you decided to change that, you’ll need to make a few changes to the Registry file (the batch file will stay the same).

Warning:
Modifying the Windows Registry can be hazardous to your computer and cause data corruption, data loss, or just outright kill your system, therefore proceed at your own risk and I will not be held responsible for any damage you may/may not cause. This registry file has been tested and deemed safe on both Windows 7 and Windows 8 but has not been tested on XP or Vista.

Registry File

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\subl]
"URL Protocol"=""
@="URL:SublimeText"

[HKEY_CLASSES_ROOT\subl\DefaultIcon]
@="C:\\Program Files\\Sublime Text 2\\sublime_text.exe"

[HKEY_CLASSES_ROOT\subl\shell]

[HKEY_CLASSES_ROOT\subl\shell\open]

[HKEY_CLASSES_ROOT\subl\shell\open\command]
@="C:\\Windows\\System32\\cmd.exe /K SublimeProtocol.cmd \"%1\""

Notes:

  • If you change the trigger for the protocol (subl) it needs all five references changed.
  • The double \ in the file paths are required.
  • From what I can tell, the icon is not shown anywhere, but still needs to be a valid path.

The command on the last line is going to call a Command/Batch script which we will be doing next, however I wanted to point out, due to security settings on some systems, you may have to make a copy of cmd.exe and call that instead, if that’s the case, just make sure whatever you name the copy is also in your System Path and you change that above as well. The %1 at the end of the command line is what allows us to pass the file through this command, all the \ and ” are just escape characters the Registry needs when writing the “*.reg” file. Copy the above code, and paste it into a new blank document (either in Sublime, or even Notepad) but make sure to save it with the extension “.reg” (for example sublime-protocol.reg) but don’t run it just yet (it wont hurt anything if you do).

Batch File
Taking the name from the registry file, in this case “SublimeProtocol.cmd”, we create a new empty document with that name and copy the below code into it.

@ECHO OFF
TITLE Sublime Protocol Parser
for /F "tokens=1,2,3* delims=/" %%a in ("%~1") do set protocol=%%a&set str=%%b
for /f %%a in ('php -r "echo urldecode('%str%');";') do ( set file=%%a )
START "C:\Program Files\Sublime Text 2\sublime_text.exe" %file%
exit

The protocol sends the entire string (including the protocol itself) to the batch file, so the third line takes that input and strips it down to what we need and the fourth line, with the help of PHP (which I assume you have installed on your development system) takes the URL Encoded Filename and decodes it back into a usable Windows File Path. The entire process would look something like this:
You click a link that looks like this: subl://C%3A%5Cinetpub%5Cwwwroot%5Ctest1%5Cindex.php
The protocol passes that entire string to the batch file, where line three splits it to subl:// and C%3A%5Cinetpub%5Cwwwroot%5Ctest1%5Cindex.php and throws away the first part, now line four takes that and converts it into C:\inetpub\wwwroot\test1\index.php which is now valid to send to Sublime Text (the file replaces %file% dynamically above). Once you have the registry and batch files saved in your Windows Path, double click the registry file in Windows Explorer and it will ask about merging it into the Registry, tell it yes and you should be set.

*Testing*
To test that it works we’ll need to create a simple four line PHP script that creates a subl:// link for us. Open Sublime and create a new file somewhere that is accessible on your server, in my case I’ve been using C:\inetpub\wwwroot\test1\index.php throughout this post. For Microsoft IIS Users, it’d be C:\inetpub\wwwroot\ and for Apache users, the location depends on which package you have installed (Apache, XAMPP, WAMP, etc.) but will normally be inside an htdocs directory.

<?php
$filename = urlencode(__FILE__);
echo "<a href='subl://$filename'>Sublime Test</a>";
?>

With the above file created, make sure to close the file, than close Sublime. Sadly there’s an issue (at least in Windows 8) where clicking the link will not open the file if Sublime is already running. If I find a fix, I’ll update this post with the information. Open a new tab on your web browser and navigate to where you saved that file (ex. http://localhost/test1/index.php) and you should be presented with a page that looks similar to this:

Clicking that link will spawn a Command Prompt Window with the title “Sublime Protocol Parser” for a brief second, close, and than Sublime should open with the correct file loaded. If it doesn’t, most likely you’re experiencing the security issue I mentioned above. (See the bottom for a more detailed way to correct it.)

*Practical Use*
With my current development environment, I use a modified version of Whoops to handle most of my Error Control and a snippet in Sublime that not only throws the required code into my file as needed, but automatically activates it so I can verify it’s working, at which point I delete a single line than get to coding. The screenshot on the right in the above table gives you a rough idea of how it looks.

Whoops has built-in functionality to allow default code editors and Sublime is already one of them, but if we just set it up to use that, it will give us the links in the wrong format, so this snippet will adjust for that as well. Start by opening Sublime Text and going up to “Tools” => “New Snippet…” and you should be presented with the following code:

<snippet>
  <content><![CDATA[
Hello, ${1:this} is a ${2:snippet}.
]]></content>
  <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
  <!-- <tabTrigger>hello</tabTrigger> -->
  <!-- Optional: Set a scope to limit where the snippet will trigger -->
  <!-- <scope>source.python</scope> -->
</snippet>

We need to modify the highlighted lines by replacing the code on line 3 with our code and uncommenting lines 6 and 8 to set up the tag trigger and set the scope to PHP:

<snippet>
  <content><![CDATA[

]]></content>
  <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
  <tabTrigger>whoops</tabTrigger>
  <!-- Optional: Set a scope to limit where the snippet will trigger -->
  <scope>source.php</scope>
</snippet>

Make sure that you leave the <![CDATA[ and ]]> in-tact and you can rename the tab trigger to anything you want, I used ‘whoops’ for the example. Now comes the code to make this snippet worth anything. However, you have to make a small decision (or write two snippets):

  • Are you creating this solely for personal sites or sites that you will run on your system(s) in which you can verify Whoops will be available at all times?
  • Are you creating a site that is meant to be distributed, like an Open Source Web App where you can’t be sure of the environment this will be run on?

If you answered yes to the first question, your snippet can be a lot smaller since you would already know what’s available and what isn’t, however if you answered yes for the second question, you can go about this in two ways:

  • Do the same as you would have answering Yes to question one and remembering to delete or comment out all references before distribution.
  • Write a little extra code so that it only runs on your system and not the end users, leaving it all intact for when you do updates.

The Quickie Version: (From Question 1)

<snippet>
  <content><![CDATA[
  require \$_SERVER['DOCUMENT_ROOT']."/whoops/vendor/autoload.php";
  \$whoops = new Whoops\Run();
  \$errorPg  = new Whoops\Handler\PrettyPageHandler();
  \$errorPg->setEditor(function(\$file) { return "subl://%file"; } );
  \$whoops->pushHandler(\$errorPg);
  \$whoops->pushHandler(\$handler);
  \$whoops->register();

  // Test to verify it works with project, comment out or erase when done
  throw new RuntimeException("Whoops works, you can delete this line now...");

$0
]]></content>
  <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
  <tabTrigger>whoops</tabTrigger>
  <!-- Optional: Set a scope to limit where the snippet will trigger -->
  <scope>source.php</scope>
</snippet>

Extended Version: (From Question 2)

<snippet>
  <content><![CDATA[
  if(\$_SERVER['COMPUTERNAME'] == "YOURSYSTEMNAME") {
    require \$_SERVER['DOCUMENT_ROOT']."/whoops/vendor/autoload.php";
    \$whoops = new Whoops\Run();
    \$errorPg = new Whoops\Handler\PrettyPageHandler();
    \$handler = new Whoops\Handler\JsonResponseHandler();
    \$handler->onlyForAjaxRequests(true);
    \$errorPg->setEditor(function(\$file) { return "subl://%file"; } );
    \$whoops->pushHandler(\$errorPg);
    \$whoops->pushHandler(\$handler);
    \$whoops->register();
  }
  // Test to verify it works with project, comment out or erase when done
  throw new RuntimeException("Whoops works, you can delete this line now...");

$0
]]></content>
  <!-- Optional: Set a tabTrigger to define how to trigger the snippet -->
  <tabTrigger>whoops</tabTrigger>
  <!-- Optional: Set a scope to limit where the snippet will trigger -->
  <scope>source.php</scope>
</snippet>

In both cases, you have to verify the ‘require’ path is correct and in the second example change “YOURSYSTEMNAME” to the proper name (you can echo it in the test file if unsure what to use).


*Troubleshooting*
Scenario 1: No Command Prompt flash
If you don’t see the command prompt window pop up for a second than most likely the issue is with the registry not being able to forward the info to the batch file. You can open the registry by running “regedit” from the command prompt or run dialog and drill down in the left menu to HKEY_CLASSES_ROOT\subl\ and you should see two folders inside subl (DefaultIcon and shell) and the file paths from the *.reg file will be converted to single “\”. If this is not the case, you can either edit these directly or delete the ‘subl’ key and edit your *.reg file and re-import it.

Scenario 2: Command Prompt opens but doesn’t work
Open your batch file and add “pause” on line above the first for statement. Close Sublime and try your test again, this time, hopefully you should see the command prompt open with the correct title.
One of two things most likely happened, the title showed which suggests you have a typo somewhere else so double check the code you used (again) in each phase… or the title didn’t match which implies there is probably a security issue similar to the one I experienced on one of my systems.
If this is the case, you’ll have to do a little modification to your *.reg file and a single command from the prompt.
Open a command prompt and type:

cd C:\Windows\System32
copy cmd.exe customCMD.exe

Re-open your *.reg and change the last line to @="C:\\Windows\\System32\\customCMD.exe /K SublimeProtocol.cmd \"%1\"" and re-importing that should resolve the problem.

If you need any more explanation or something still doesn’t work you can feel free to comment below, but please note, comments are moderated and wont automatically appear.

Couple Small Updates…

*What I’m Watching or Listening to Now*

Random Marathon O’ Shit… *rolls eyes*

*Random Question* OR *Random Quote*

I’ve been working on a few projects again recently where the developers are from all over the world, so English comes in a variety of ‘good’, ‘bad’, ‘broken’, and ‘what the fuck did he say?’… Anyway, the ‘question of the day’ has nothing to do with working/dealing with foreign speakers or even about how they view Americans. Instead, the question is why does America have such an endless supply of morons that make us all look bad to the rest of the world? Here’s an example… I was at the McDonald’s drive-thru a few days ago and could hear the woman in the vehicle ahead of me order.

Customer: “Do you have a pen?”
Employee: “Do you need a pen ma’am?”
C: “No, it’s for you, I have a really big order and you better not screw it up.”
E: “Don’t worry about that ma’am, the register takes care of all that when I enter it in.”
C: “Fine, I have a coupon for the Whopper… it’s a buy one get one free, but before you ring that up …”
E: {interrupts} “We don’t serve the Whopper, did you mean a Big Mac?”
C: “I don’t care what you call it, I have a coupon. Now, as I was saying, before you ring up the first one, I want that free one to be my second order
before I have another coupon that’s buy one get one free and so that first one is going to be my free one from the second coupon.”
E: “Ma’am, it doesn’t work that way…”
C: {interrupts} “Don’t tell me how it works, I pay your salary with my taxes you little punk” {Note: the guy sounded like he was in his 30’s}
E: “Ma’am, is there any way you could come into the lobby and we can figure this out?”
C: “I will not come in, I’m in line already because I’m in a hurry.”
E: “Sorry about that ma’am, please pull around to your second window and I’ll have a Manager waiting to speak to you.”

The woman pulled around and I was finally able to order. After pulling around myself I noticed she was still parked in front of the window yelling at the manager because they wouldn’t take her coupons. At one point she just screamed “Give me my g*d damn Whopper” and the employee said “Then go to Burger King where your coupons are for a whopper, we have the Big Mac here… She pulled away from the window towards the road so I moved ahead, got my food, and had to sit there because the stupid bitch still hadn’t pulled out of the parking lot and there wasn’t enough room to leave. 馃檨 All in all, I felt bad for the employee and probably wasted about 20-25 minutes of all of our lives because she wasn’t even at the right place.

P.S. I think I got food poisoning that night as well.

*Actual updates*

As I stated above, I’ve been working on some projects lately (directly and some indirectly) that I’m rather excited about. Below are just a few that I can share, in no specific order:

NextGen Portal

This project has changed so much since originally being introduced somewhere around a year ago. It’s changed hands a bit, it’s been fully rewritten from scratch multiple times… pretty much everything is different, except it’s core purpose. As the first part of the name suggests, this project takes the original “HTPC Portal” to the next generation.

History:

Technically it all started with the ‘basics’ (SickBeard, CouchPotato, Headphones, and a few others) which spawned both MediaFrontPage and Maraschino. XBMC Forum user “hernandito” created a ‘wrapper’ for Maraschino that had a slight resemblance to MFP (don’t remember if that was intentional) in purpose. Not long after its initial creation, I took over the lead of “HTPC Portal”, while continuing to work with hernandito I rewrote his version in PHP and started adding a few things here and there. The project kind of fizzled after a few active months, mostly due to my medical issues, but since most of the site worked properly and there weren’t really any ‘death bugs’ I kind of lost interest. Fast forward to the end of the year and I decided to silently start working on it again (haven’t updated anything on GitHub yet). I’ve written the entire thing from scratch adding a whole pile of new features and should be ready for some beta testers soon.

New Features:

  • Entire Framework Built Specifically with HTPC related features
  • Quick Switching between HTPC Apps (SB, CP, Sab, etc.)
  • Image ‘Checker’ (for now, scans your media sources and allows you to monitor for missing ‘folder.jpg’, ‘fanart.jpg’, ‘logo.png’, etc.)
  • Simple Editing/Updating of certain XBMC Database fields (Hopefully more can/will be added) : No MySQL support, internal database only at this time
  • Other stuff I can’t think of right now…

HTML Generator

I’m not attached to this project.
In under a month since the first public release, the author DeadSix has taken a wonderful app for HTPC enthusiasts to show off their media collection to friends and family and made it even better. A few days after initial release DeadSix and I started talking, I mainly was giving bug reports, some feature suggestions, and beta testing. When he introduced the ability to select a theme to the generated output I wrote two themes that are included with the app and plan on updating these as needed for future versions and possibly adding more of them later.

Some Select Features:

List based on latest version at time of writing (6.2)

  • Auto (or Manual) scan of your XBMC Database (MySQL Support coming soon*)
  • View both poster and fanart (optional) image for each show/movie (if available)
    • Click either of these images to bring up fancybox (per video)
  • MediaInfo (Codec) scanning of media details
  • Ability to sort your TV/Movies (by name, date released, last played, XBMC ID, File Size, Resolution)
  • Auto Generation (start program with ‘/auto’ switch)
  • Ability to show/hide pretty much anything
    • Trailers (plays inline from YouTube)
    • Generated On
    • Last Played
    • File Size
    • Release Date
    • Episode Count
    • Studio
    • Rating
    • Info Link (Displays IMDB/TVDB/AniDB link for media)

*Listed as an upcoming feature on first post of thread
More information available about “HTML Generator” on its XBMC Forum Thread.
htmlgen

So Far Unnamed Project

A new C# project I was contracted for in regards to network management… Once I finish it I’ll talk to them about maybe releasing it (in whole or in parts). I’ve always been more akin to the web development side of programming so this is my first C# application, but as DeadSix seems to say, “All programming is the same, you know one, you know them all” and I have to say that I’ve learned a lot so far with this app and Dead’s right in the sense that I’m picking it up quicker than I had originally thought. Granted there are a few things that take some getting used to but if I realized they were this close I probably would have made the jump years ago and been able to make some ‘real’ money on a more regular basis.

The Rest

I have two other projects I’m working on, the first should be done by this weekend and the other one is just one of those “doing it for myself” kind of things that I’ll get done some time… or more likely never. But I’ve been working on this post on and off for hours (TV is distracting) and it’s after 5am so I’m going to bed and I’ll try to start posting more often again. Well, one last thing, speaking of posting more often, part of the reason I haven’t been posting to often for the last six months or so is I got back into using Facebook (mainly to get certain friends to stop hounding me about it) but now I’m back to the “Fuck Facebook” mentality, so I’ll try writing here instead.

Category: Misc.

HTPC Community

About 12 hours ago or so I made a post on the XBMC Forums in regards to my current status in the HTPC Community. So far there have been no replies after my message so I was unsure if anyone bothered to read it (or care) however after doing some things on my laptop that required a restart, when Windows 8 booted back up I noticed above average hits to my blog from yesterday and although I haven’t actually checked where the hits came from yet, I’m going to assume at least a chunk of them were in regards to that post.

For those of you confused about the above, the jist of it is as follows: I’ve been part of the HTPC Community (mainly for XBMC) for a number of years and have always tried to help out where I can… I was one of the co-creators of the original XBMC BlackMarket (back in the days when XBMC was on the original Microsoft Xbox), I’ve hosted numerous forums/wiki’s dedicated to some of the third party applications/services used in conjunction with XBMC and lately I have (with permission from the developer) created a forum dedicated to “XBMC Constellation” (created by Dawid of FSS.cc) and have provided a majority of their tech support via the XBMC and Constellation Forums. All of this… past and present has been done in my spare time with me eating any costs that has incurred for these activities.

Pretty much everyone (regular blog readers and even members that frequent the XBMC Constellation specific threads) knows that I have had a lot of medical issues for the past few years and because of this, I don’t have a job, therefore I’m on a very limited income with disability… Sadly, the main computer I used for my HTPC, as well as the debug/test system for a lot of the tech support I provide decided to die and I have yet to figure out the cause of it. Partly because of the ‘holiday season’ just getting over and mainly because disability doesn’t pay much of anything, I can’t afford to outright replace the computer (as far as I know, all the hard drives did survive, at least I hope they did) and since I don’t have a system to run XBMC, any of the third party apps/services, or to house any of my media I have decided to temporarily leave the HTPC scene and concentrate on my health. I believe this option is best since I wouldn’t feel right about giving out tech support/advice when I’m forced to guess most of what I’m telling the user to do because I can’t check my system to look up the exact procedure they’d need to fix their issue.

A friend and fellow HTPC enthusiast that I talked with briefly before writing the XBMC Post stated I shouldn’t feel bad about asking the community for help, especially with all I’ve given back when I can and he recommended setting up a donation which I will provide the link at the bottom of this post.

Before I post the donation link I wanted to explain exactly where all the money would be going, how it’s determined, etc. so I don’t have users thinking this is some form of scam or “Hey, I didn’t give you money for that…” type of things.

The first important thing I want to point out… Yes, the donations are going to ME personally, not some group, not some company… after PayPal (the ones processing the donations) take any of their applicable fees, 100% of the remaining donations will be going towards me building a new HTPC/Server. If I get enough donations to cover the cost of building the new system, any money left over will be going solely to help cover my medical costs… I will NOT be ‘blowing the money’ on stupid stuff, I wont waste it on random things… it will be going either in my gas tank for my trips to/from doctors, or go towards paying my medical bills. Once the Server is paid (by myself and/or donations) I will update the post with that information and let people know that if they continue to donate via the link it will be going solely to medical at that point and no longer towards hardware (again so I don’t piss people off or make them think they are donating for the wrong thing).

Anyway, it’s 1:34am here and I have to be awake kind of early in the morning so I’ll make another post sometime over the weekend if I can.

Read above for more information on this donate button before clicking:

I also wanted to thank everyone ahead of time that is willing and able enough to donate, I really don’t want to leave the HTPC Community, I just can’t foresee the ability to do this on my own any time soon.

Category: Misc.

First night… Happy Hanukkah

讛谞专讜转 讛诇诇讜 讗谞讞谞讜 诪讚诇讬拽讬诐 注诇 讛谞住讬诐 讜注诇 讛谞驻诇讗讜转 讜注诇 讛转砖讜讗讜转 讜注诇 讛诪诇讞诪讜转 砖注砖讬转 诇讗讘讜转讬谞讜 讘讬诪讬诐 讛讛诐, 讘讝诪谉 讛讝讛 注诇 讬讚讬 讻讛谞讬讱 讛拽讚讜砖讬诐.
讜讻诇 砖诪讜谞转 讬诪讬 讞谞讜讻讛 讛谞专讜转 讛诇诇讜 拽讜讚砖 讛诐, 讜讗讬谉 诇谞讜 专砖讜转 诇讛砖转诪砖 讘讛诐 讗诇讗 诇讛讗讬专 讗讜转诐 讘诇讘讚 讻讚讬 诇讛讜讚讜转 讜诇讛诇诇 诇砖诪讱 讛讙讚讜诇 注诇 谞住讬讱 讜注诇 谞驻诇讗讜转讬讱 讜注诇 讬砖讜讗讜转讬讱.

The above is a traditional Hanukkah prayer… and below is the Translation for people.

We light these lights for the miracles and the wonders, for the redemption and the battles that you made for our forefathers, in those days at this season, through your holy priests. During all eight days of Hanukkah these lights are sacred, and we are not permitted to make ordinary use of them except for to look at them in order to express thanks and praise to Your great Name for Your miracles, Your wonders and Your salvation.


Sadly, I broke my dreidel… stepped on it while I was cleaning, but I’m sure if I keep looking later tonight or tomorrow I’ll find another one (I think I had three total)
Oh, last thing… saw an ‘old friend’ today and she gave me some Hanukkah Gelt which I thought was cool… Interestingly I didn’t know she was Jewish.

Category: Misc.