2025/07/31

What I did in my Chicago Years - BigData

Chicago was hard but it really reconnected me to what I love. 

On one gig, I worked at a fairly new startup. My years of real time market systems mattered here. They were taking in near real time IoT data and at 1mil per minute on my starting day it was going to be entertaining.

I was working under one of the CTOs leads but I was there to troubleshoot and I loved the relationship I had with him.

Most of it was built into a multi stage pipeline and I was mostly involved with the front end ingestion and before any being passed to the analytics engine.

The Front end was based on Apache NiFi. I have no idea where that product wound up but it was designed to take everything from a UDP feed to scanning FTP sites every minute to grab more data if it already ran out. 

NiFi then would let you do decent filtering and transform. But it was designed to scale for both raw ingestion and ETL so you could shift workloads and expand capacity on demand. It had a module that would reconfigure AWS EC2 scaling to provision what it wanted vs praying AWS rules could figure it out.

It could shift resources dynamicly between Ingres and ETL because it decided where the code ran and if it needed more it would bring more cluster members online but that was not going to be available within the next minute, maybe 5.

So I worked with two teams on NiFi tuning the injestion front end and the team handing the ETL stuff. It was always bouncing between because once we found the latest bottleneck it was on to the next thing needing attention. 

Then there was the BigData team. The lead I had worked with at another gig so we had a decent friendship already and he had built a great team. So they were storing data in Cassandra and running a 2400 node 800 shard environment just for production.

It wasn't just the data, because on the same nodes were the infrastructure for Apache Spark. I forget the name of the more generic worker model but Spark was a functional programming model over something like python C++ or a few others. 

So reach into the back shelf of my mind for C++ skills, everything I had learned at the previous gig from the same man about Functional Programming and put it to use in a highly distributed a environment where your code is brought to the data rather than the data being brought to the code. 

That was a fun learning experience to structure the data that best fit the analytics patterns.

The resulting synthetics were stored in another dataset within Cassandra but on a smaller subset of nodes so we could improve the performance for the next layer downstream.

The downstream workload ran on Mesosphere which became DC/OS and it was a container scheduler like AWS ECS and all of the EC2 build details. Like NIFI it could adjust cluster size based on workload. 

I mostly was involved at different levels with each of the teams in that layer. Some were well skilled, 

2025/01/25

My journey with HomeAssistant

In the early 10's I decided to switch from having an x86 desktop to #LivinOnAPiLife. Most of my work-life has me on cloud apps anyways, a few installed apps and the command shell. I've always been a Linux geek and I abandoned Windows for the most part (Gaming/3d Printing being the other part).

I bought a bunch of the early stuff RPi2b days when this started, I tried things like Pine64 till the RPi3 became my platform for a few years and the last one was my RPi4/8g. 

But throughout the adventure speed/capability was rarely the issue. Getting a tool like FreeCad installed could be a challenge. Even when installed it was just always missing some feature that Windows would have just fine in the Linux versions.

Plus my favorite Space Sim (Elite Dangerous) kinda abandoned PS4/5 and my clan moved to PC and they've been bugging me to join them. 

So I have an HP mini running Windows 10 for that. After installing an Nvme and swapping the HDD for a SSD is got enough speed and GPU for what I need. 

When I setup my first Home Assistant rig I had an unused but decent non RPi board the PineA64. Great little device in the years between RPi2 to 3. I'm a computer geek anyway and while the convenience of using HASS and just flashing an image to the SD I decided to go the Docker Container route.

A major advantage of this and being able to just change the image name to specify what version I want to run became my saving grace in Dec 24 when HA blew the community up with some breaking changes.

I'm going to make enough changes that the OS and I are going to eventually get a divorce. So I built using DietPi (great no Gui variant with text based config tools)

Launching the container in network = host mode eliminated 90% of future issues and a bunch of annoying things. 

Other than mapping the ConBee2 USB device though in no stranger to the cli so sorting permissions, setting up container to file system, setting up backup to Nas I got down to building my first HA.

Eventually I decided that the native ZigBee (zha) didn't give me the control I desired so I decided to move to ZigBee2MQTT. I love mqtt and I thought it would be the next move. 

Moved our home and it was just easier to start over, so Next Gen was launched

I used Eclipse vs RabbitMQ for the broker. Rmq is amazing for scalability but it's config just annoys me and I don't have 100s of things connecting to it.

So I had to deploy a few more containers. I switched from a shell script with a docker run command to docker-compose and launched the other two containers. 

I quickly changed from letting the other two run in bridge mode because localhost ain't what you think it is in a bridge. 

Got z2m talking to mqtt and then paired a bulb. After that installed the mqtt integration into HA and the new light was born. I quickly discovered the power of Groups in z2m. 

You tell me where in your home you don't have 2 or more bulbs that 90% of the time you just want them in sync. Yes zha has the ability to do some Zigbee magic but it's just so much easier in z2m.

So grouped up everything, hid the individual devices but didn't disable them because in my overnight routine I shut just one of them off in places. They just don't show in cards etc by default. Made a few more tweaks for improving reporting etc and after a few weeks had the basics of our home back up and running.

At this point I started down the ESPHome approach again. Before moving I built a few gadgets including a 3speed fan controller for some box fans. So now with a windows PC I could get into some PCB design and came up with a modular board and got 30 from JLBPcb for under 10 bucks. Can do up to RGBWW stupid directly driving or control strings like the WS28xx, plus some i2c or simple sensors. Armed with a bunch of new devices I started adding new things into my HA environment.

But the whole all of services on my single node using the same IP address started to become complicated. So I did some research into how to split my containers and give them each their own IP address. So down the rabbit hole I went and returned with MacVLan. 

I created another docker-compose file to build my networks and then changed my main file to assign up addresses to each container.

This brings us to modern Day. It's time to convert off this fragile Pi (yes I have a spare if it breaks). I need a new Nas, I want a place to host Plex and Frigate and have hardware acceleration for object detection etc so I'm in the process of building a HomeLab.

Once the new gear is online I'm going to migrate those containers to run over on the HL but still keep the docker container approach.

For the HL i've decided on the HP 800 mini chassis which allows for 2x3.5, 1x2.5 drives plus two M.2 devices (short and long) plus 32gb ram on a quad core Gen 7 x86.

Each node gets 32gb Ram, 256gb Nvme, 512gb SSD 2.5 and 2x12tb HDD's. Plus a 2.5gb Nic in addition to the onboard 1g. 2 of the three get a Coral TPU in the other M.2 slot for Frigate (tho one is really just a hot spare. Frigate is confined to one of those two nodes for execution.

Built 3 of these plus 4 port switch for less than $1,000 with $600 of that just for the HDD's 

My lab is based on Proxmox and I decided to use the cluster replication tool Ceph to mirror the disks between hosts so not only do I have HDD protection but also if something happens to a chassis I'm good.

Going down this route also has other advantages. The first is Ceph itself is basically a block storage system that Proxmox knows how to use for images, templates and containers. 

I choose to setup a 3 node mirrored storage device pointed at the SSD's so all of my running machine storage were in sync at all times without having to play snapshot replication and when I want to move a resource to another node migration takes less than 15 seconds most of the time. 

But the second advantage is CephFS. It creates a Linux file system on top of the Ceph volumes and distributes everything from Mount points, file access etc so there is really no master but a quorum of managers. Each volume is available as a mount on each Proxmox node so exposing them to containers is trivial.

This is also where the 2.5gb network comes into play. When I set Cepf up I have all the replication traffic on that separate network to improve performance 

So with CFS I setup that volume to have as least 2 copies distributed on 2 different nodes and I get assurance that if anything happens to any one device I'm ok. Unlike All the HomeLab pics I see in a nice rack my three nodes are in different places on the property, on different circuits and if something we're to happen to one it's highly likely the other two would be affected.

I started with proxmox containers for some things like my samba node but built a container with docker so each of my containers is just running a docker container and nothing more.

Passing the GPU and TPU though to Frigate wasn't overly complicated and it's been great so far. 

Still have some more work to do and I'm thinking I'm going to switch from using docker-compose to Portainer to manage my docker fleet.

And just to add and context, I already use OpenWRT to manage my network and last year switched from a /24 mask to a /22 because between EspHome devices and containers I'm going to have about 300ips on my network in the coming year.

2021/11/19

Using SubSlicing in Python passing "Slice Spec" as a string

Python's implicit [start:end:step] notation makes slicing objects very easy.

But if you want to create a function that accepts optional params that allow you to manipulate the return then your left to create your own interface specifying how to slice the return data.

In the sample below two params are passed to tester

theList - A list object to be sliced
sliceSpec - a string specifying the python slice notation

Python provides a helper called "slice" which accepts three params (start, end, step) which are the components of an implied slice.

But given that 0 (zero) is a legitimate value for any of the arguments when an argument is skipped ":5" the missing must be represented as a "None"

Also the values passed to slice() must be integers and split() will return a list of strings

So the below example takes "sliceSpec" does the following

  1. if sliceSpec is None, then replace with an empty string
        otherwise split(":") fails
  2. Traverse the list returned by split()
    • substitute blank strings with None
    • convert any values to integers
  3. Pass the transformed results from split() into arguments passed to slice()
  4. use the slice operator to access the subList from "theList"

Example Code

def tester(theList, sliceSpec=None):

    returnList = theList[slice(*(int(i) if i != '' else None for i in (sliceSpec or str()).split(":")))]

    print(f"'{sliceSpec}' = {returnList}\n")


mylist = [ 1,2,3,4,5,6,7,8,9 ]

tester(mylist)
tester(mylist, None)
tester(mylist, "")
tester(mylist, ":5")
tester(mylist, "0:1")
tester(mylist, ":1")
tester(mylist, "1:-2")
tester(mylist, "::-1")

Results

$ python3 test

'None' = [1, 2, 3, 4, 5, 6, 7, 8, 9]

'None' = [1, 2, 3, 4, 5, 6, 7, 8, 9]

'' = [1, 2, 3, 4, 5, 6, 7, 8, 9]

':5' = [1, 2, 3, 4, 5]

'0:1' = [1]

':1' = [1]

'1:-2' = [2, 3, 4, 5, 6, 7]

'::-1' = [9, 8, 7, 6, 5, 4, 3, 2, 1]

 

 

2019/11/11

Zigbee Lighting - Sylvania 74099 4/8 button remote will not pair.


https://community.hubitat.com/t/sylvania-lightify-smart-switch-8-functions-4-buttons/10943

Update:

Ken Fraleigh from the Hubitat community pointed out that what I thought of as "Reset" (3-4) is actually the ZLL (Zigbee Light Link). This information came from the European Sylvania site where they have been discussion support for ZB 3.0 and Hue Bridge compatibility.


So I was reading through the threads above and others trying to get the Sylvania  4 button controller working with the Lightify Hub . We have a goal of keeping this cost effective, shopping for deals. Maybe Hubitat for x-mas,

Anyway while trying to get one re-paired was thinking back to another one I had and was sitting on the shelf waiting to go back. The Device has 4 buttons

12
34

The Manual and on-screen directions tell you to press 2 & 3 and hold for 2 seconds and it should pulse orange and re-pair.

So that's not working, I should have realized at this point that the 2 button isn't flashing. This is because I dropped onto the floor and it exploded like an old cell with removable battery parts going flying. Wish I had thought of this earlier, but that's ok.

So if 2-3 does something, what else exists ?

3 & 4: While held, flashes orange and then ends with red. (ZLL Pairing)
1 & 4: After a few seconds flashes green 10 times then ends with long green

1 & 4 We'll call power-on reboot. It's similar to what happens when you pull the tab keeping the battery from making contact.

3 & 4 Feels like some kind of reset, warning orange ending with Red. I was incorrect this is ZLL Pairing mode (Thanks Ken)

So back to the story, This was 1 of 2 I'd just gotten, 1 new and one as replacement for another which got paired to a system that was shipped back and couldn't get it paired to the Lightify. 

After I disassembled/reassembled the other one, and had re-paired it by pressing on the metal buttons to get it paired. If you have any question if your actually pressing 2 & 3, I'd recommend removing the face and checking out under the hood.To remove the front bezel, remove the battery cover and in the rounded corners you'll see the two plastic hook tabs holding the bezel in-place.

I unpacked the one destined to be returned and did the following:

Reboot:1 & 4
ZHA Pair:2 & 3
Reset
ZLL Pairing:
3 & 4

And look at that, it paired right up. 

Sylvania why didn't you just say that. Searched the site, Submitted tickets, Marketing-Speak back, no tech support.




2018/12/04

Mapping Private/Public Docker ports with AWS ECS and Docker Net=Bridge

I've done many searches trying to find a way to know what the public port numbers that have been assigned to my docker container are from inside the container. Docker has a way to query this information but that means exposing the Docker Daemon interface (socket or tcp) to the process running inside the container and sadly there are little security controls around that so understandably most are reluctant to expose that interface inside the container

Amazon's ECS agent has a lightweight which will expose details about the container which happens to include the Private/Public port mappings. I've included a link to the script I wrote here GitHub Gist along with the code below.

It requires the use of JQ which I happen to consider a fundamental tool if your going to manipulate JSON files from within bash.




2018/08/23

Testing for data types in Jinja Templates

Writing templates for Jinja is an artform all of its very own. Jinja is the Python variant of the HandleBars templater that combines Python code styling with Mustache templating from Java.

Some Background on Jinja

Jinja allows loops, conditionals and a very Unix/Shell like ability to pipe the contents of variables from function/filter to the next to evaluate and transform variables. One of the simplest forms that helps to explain the syntax is

{{ variable | default("variable had no value") }}

In the above case, the value defined by variable is piped to the default filter after the pipe. The default filter does what it's name implies, if the value passed is None or Undefined it applies the passed arg as the return.

There are many other good examples of Jinja filters and loops so I'm not going to try to cover that material here.

Testing Types in Jinja

In order to create templates that are not brittle and fail in unexpected ways testing that variables are as expected before getting into more complex code is always advisable. A simple precaution might look like

{% for value in python_list | default([]) %}
{{ value }}
{% endfor %}


As you can see from the example above and combining it with knowledge about default you can see that the loop executes and in the event python_list is undefined the for statement is protected against failure since an empty list will be substituted for the undefined.

The issue is how to protect against other data types, if python_list was a dictionary how would this behave, or any other python type.

Jinja includes some type tests, but they sometimes are simple as but the creators of the Jinja typing were apparently thinking about language independent tests when they created them. A great resource for Jinja filters is https://www.webforefront.com/django/usebuiltinjinjafilters.html which discusses the primates

'is string' (definitive)
'is mapping' (definitive)
'is number' (non-definitive)
'is iterable' (overloaded)
'is sequence' (overloaded)
'is sameas' (tests inheritance)

As a result of the non-deterministic nature of the tests described above a bit more logic must be applied to determine Python types if you want to use the Jinja filters (vs in-line python)

Below are the best conditionals I've found to type an element, tho if you were to structure it as a If/Then style case block you can simplify the tests a bit because of precedence. These are meant to be stand-alone "fully-qualified" tests.

Testing for Strings

Testing for strings is the singular simple test with Jinja without the need for any additional conditionals to be used. All string objects are 'is string' and non-strings are 'not is string'

{% if value is string %}
{{ value }} is a string
{% endif %}


The complication starts because a string "is string" also tests positive as "is sequence" and "is iterable" because a string is a list of bytes that python treats as both an array string[0] and a simple variable

What's missing from the filters are items like "is boolean" "is list" and "is dict".

Testing for a Dict

Testing for Dictionary objects is also simplified since they are the only type i'm aware of that tests true for 'is mapping'

{% if value is mapping %}
{{ value }} is a mapping
{% endif %}

Testing for a Boolean

Testing for a Boolean is a bit more complex, since technically a Boolean is also a number (and Boolean's test truthy for 'is number'). It turns out that any Boolean will test 'is sameas' for its own state so:

{% if value is sameas true or value is sameas false %}
{{ value }} is a boolean
{% endif %}


Satisfies the test for a boolean

Testing for a Number

Testing for a Number should be straight-forward 'is number' but since as discussed above since Boolean's test true for 'is number' the true test of a number is expressed as "is number and not is boolean"

{% if value is number and value is not sameas true and value is not sameas false %}
{{ value }} is a boolean
{% endif %}


Satisfies the test for a number

Testing for a List

Lastly, testing for a list is a compound conditional since lists are both sequences and iterable but are not mappings or strings. So to test for a list the proper representation looks like



{% if value is sequence and value is not mapping and value is not string %}
{{ value }} is a list
{% endif %}

Summary and Example Code

Below is python code demonstrating the above principles in an easy to replicate manner. OrderedDict is used to produce results in a repeatable manner, it was not necessary.


import yaml
from collections import OrderedDict
from jinja2 import Template as Jinja_Template

sample_data = """
  a: 1
  b: one
  c: "2"
  d: "three"
  e:
    - 1
    - 2
    - 3
  f:
    one: test
    two: further testing
    3: even more testing
  g: True
  h: False
"""

sample_template = """
Testing Jinja Types
{%- for key,value in sample_data.items() %}
  Processing {{key}}={{value}}
  {% if value is sameas true %} is True{% endif -%} 
  {% if value is sameas false %} is False{% endif -%} 
  {% if value is number %} is number{% endif -%} 
  {% if value is mapping %} is mapping{% endif -%} 
  {% if value is sequence %} is sequence{% endif -%} 
  {% if value is iterable %} is iterable{% endif -%} 
  {% if value is string %} is string{% endif -%} 
{% endfor %}

Testing Python Types
{%- for key,value in sample_data.items() %}
  Processing {{key}}={{value}}
  {% if value is string %} its a String{% endif -%}
  {% if value is mapping %} its a Dict{% endif -%}
  {% if value is sameas true or value is sameas false %} its a Boolean{% endif -%}
  {% if value is number and value is not sameas true and value is not sameas false%} its a Number{% endif -%}
  {% if value is sequence and value is not mapping and value is not string %} its a List{% endif -%}
{% endfor %}
"""

sample_data = yaml.load(sample_data)
print(yaml.dump(sample_data, default_flow_style=False))

sample_data = OrderedDict( sorted(sample_data.items(), key=lambda x: x[0]) )
templater = Jinja_Template(sample_template)
print(templater.render(sample_data=sample_data))

Output from the above:

Testing Jinja Types
  Processing a=1
    is number
  Processing b=one
    is sequence is iterable is string
  Processing c=2
    is sequence is iterable is string
  Processing d=three
    is sequence is iterable is string
  Processing e=[1, 2, 3]
    is sequence is iterable
  Processing f={3: 'even more testing', 'two': 'further testing', 'one': 'test'}
    is mapping is sequence is iterable
  Processing g=True
    is True is number
  Processing h=False
    is False is number

Testing Python Types
  Processing a=1
    its a Number
  Processing b=one
    its a String
  Processing c=2
    its a String
  Processing d=three
    its a String
  Processing e=[1, 2, 3]
    its a List
  Processing f={3: 'even more testing', 'two': 'further testing', 'one': 'test'}
    its a Dict
  Processing g=True
    its a Boolean
  Processing h=False
    its a Boolean

2018/08/19

Every thing you every wanted to know about Linux networking.

Think about your home router, it's able to have a connection to the internet, manage translating addresses and ports. It has the ability to map services for gaming, telephony, and streaming video. Also support for different providers and things like pppoe and other insane upstream connections types is in there. Yeah that's not "router code" that Linksys, DLink or the others wrote, your seeing Linux in action

All that capability to run routing protocols, packet translation, Port mapping and almost everything you can thing of it's just part of the Linux kernel and companion utilities like DnsMasQ. Companies such as Linksys created the market but their software simply configures the kernel with the what to do as config files. The ability to translate ports on video streams in real time can't afford to suffer packet duplication so it has to stay in the kennel or risk the time delay in packet handling restricting bandwidth

So what can the Linux kernel do. Take a look around cause these guys are doing this with 20$ hardware. It's not speciality hardware is doing all the heavy lifting like a $2,000 Cisco router. A Raspberry pi has disadvantage of Ethernet attached via usb vs. the router vendors making the nic bound tighter to the chip with some minor hardware acceleration. But I use Pi's for many reasons including routers. I have a PineBook as my personal laptop.

The "router" web pages configures the files for the underlying kernel filters and other network tools which are also part of Linux just running in user space (like the routeD process), they don't need throughout/performance like kernel modules they need OS support as an app like memory management

So the kernel has got all that and the hardware side of the kernel trys to support every feature vendors throw at them and work together to support features like AWS VPC Enhanced Networking which configures the hardware to build a tighter data path from itself to your VM kernel space. All this is on the path to zero copy networking. That's the best we can hope for in routing

So realize there is a lot underneath a VPC network interface in your kernel, under that is where it gets fun

2018/01/05

Git Tricks .. fsck

This week I was working on sorting out an issue and once I had wrapped it up I went to push all of my changes upsteam. Due to frustration, lazyness and something I'd done over the holiday's when I was done I checked our upstream repo and discovered that the work to sort the issue was not pushed.

In addition, locally my commit's had also vanished from "git log" and I could not find them anywhere. After a few minutes of bashing my head against the wall I turned to google and it took a few moments to craft the right search but I found an article that led me to "git fsck --lost-found"

As soon as I read the statement the words "fsck" and "lost-found" lightened my mood.

The output of the command shared a list of git commit's that had become detached from any branch and I was then able to checkout the orphaned commit, found my files and merged it back to my working branch.

There are many articles out there describing how this works and you can search yourself but here is the "official man page"


2016/06/15

Comcast and the X1 Platform

A few months ago got switched to the X1 platform and its had it's up's and down's. We had to have at least a dozen visits before we made any progress and most of the solutions came from us doing our research online and telling the technicians what needed to be done.

When it works its an amazing platform, but when it doesn't you want to go running back to over-the-air TV and scream at the top of your lungs. I wanted to document a few things here to help others.

Your DVR Service is not available at the moment:

The X1 creates a house wide network between the DVR's to allow you to watch a show recorded in one room on any other devices. They also have X1 Mini's, which are tunerless player devices that use the tuners in another X1 box to watch live TV.

Under the covers this is using a technology known as MoCA (Multimedia over Coax Alliance). In short this is an Ethernet like network similar to the Power-Line Extenders that you can use to extend a LAN from one part of your house to another. MoCA. This network uses the Coax to create a network in a frequency range above what the cable company can use (1.1ghz) because it does not transmit very far.

But inside your home this is great unless you happen to live in an apartment complex where the guys who installed your cable didn't think "someday it might be important for the connection in the bedroom to talk to the livingroom". In our case all of the Livingroom's (4 Story building) were connected in a daisy-chain and the bedrooms were on a separate chain. The common spot was at the distribution amplifier and the two devices were separated by several splitters/amps that the MoCA network existed but was a very poor connection.

Once we got a technician to re-wire the feed into the apartment so the two connections terminated on the same splitter everything worked great. When I went out to look at what he had done, I also found a filter connected in-line with the input to the splitter. Its a low-pass filter allowing everything below 1ghz through, but blocks the MoCA traffic on our coax from being passed onto the neighbors.

Error Messages RDK-03032 and RDK-03033:

These messages seem to occur mostly during prime-time but in the last few weeks we've been getting them at all hours of the night. Anytime you press any button on the remote, including play/pause the message can appear. The most frustrating is when you are watching a show from your own DVR buffer (not on-demand) and you try pausing playback and you get the pop-up and the show keeps playing.

If your a technologist its even worse, your left thinking how can the program be playing but "it can't connect to the X1 platform". After allot of reading it seems many people have reported this in many parts of the country. My best guess is they are trying to store the current playback position of the show to their servers and when it can't instead of ignoring the update lets throw an error. I'm also sure that Neilson or some other data collection firm is sponsoring this functionality to understand consumer behavior.

"Battery Low":

This one stumped me in a serious way for a few weeks. When you press the Xfinity button, next to the time/temp there was a gauge that would show one bar and in the color red. So many posts about changing the batteries in the remote (they are now LoPAN RF4CE wireless, which is how the nice voice feature works).

While debugging the 3033 messages I ran across a post that suggested going to Xfinity / Settings (Gear) / Comcast Labs / Cable Signal Strength and check if the signal strength is good. Well look at the other option on that screen that says "Low Signal Indicator: ON" and point to the item and look at that. It says "Display an indicator by time/temp when your cable signal is low".

So a Battery Low isn't a Battery Low at all. Its trying to tell you the cable signal isn't good.

Getting to the diagnostics menu

Press and hold the Exit Button for a few seconds, then press Down twice followed by the Number 2

I haven't seen anything that can cause damage, but items of interest are the MoCA stats, which shows a matrix of Device ID's (not useful for knowing which is which) and the Mb/second the connection is managing. Anything below 225mb/sec is troublesome and we are getting around 245mb/sec now and have no problems.

There are other screens that show power levels, but its only for currently watched channels so you don't have an idea how its receiving across the spectrum.

So how did I fix the problems ?

Armed with the knowledge there was actually a signal problem, yet I couldn't see anything in the Diagnostics that looked wrong I started looking more at our Cable Modem/Router status. Under Gateway / Connection / Xfinity network you can see stats for each of the download/upload channels. Power levels were between -0.5 to about +1.1dbm which seemed reasonable to me (techs kept quoting -6 to +6, which has been an answer for many years and felt correct)

DOCSIS 3.0 (Cable modem standards) can achieve the stunning speeds we've gotten used to by using several channels in a bonded configuration (think M-PPP if you remember what ISDN is) and we were bonded across 5 channels for download. Upload was just a single channel and it didn't make me think twice about it (upload is a much bigger issue to maintain). But one thing that kept annoying me was that single upload channel was listed a 5m/symbols per second yet wasn't I paying for 10mb upload. Symbol Rate is like Western Digital saying I have a 1TB harddrive with 920MB.

Also the number of correctable and uncorrectable errors was very low compared to received so the error rate was very low. Still nothing other than the "Battery Low :) warning" so whats up.

In Comcast's attempts to make us happy they kept shipping us new modems, dvr's etc. How likely is it that both DVR and cable modem is bad so what else. I know the installers changed splitters, cables and everything but the color of the paint on the walls in my place, but at the bottom of the box of things that had been shipped to me was another 2 way cable splitter. Sure why not give it a try I am seeing a warning about low signal.

Swap the splitter for the new one, reboot everything and login to the router. Well now I have 4 upload channels, power levels are up between 4 and 6db across the board and the DVR seems very happy. I check the X1 diag screens and power levels there are up almost 8db, now between +3db and +9db.

Sadly in all of the work, they wound up using a splitter that was defective and since the tech's still think -6 to +6db is acceptable they were all happy. But the X1 box was trying to tell us something different with its little red power level that would come and go.

How has this improved the connection you ask ?

Just before writing this I decided to goto speedtest.net to see what the changes were. In the past I was seeing 10-30mb down and 1-5mb up. I don't expect anyone to deliver what they advertise and I honestly forget what i'm supposed to be getting (soo many freebies thrown at us during this)

You ask what are the new numbers. 91Mb/sec down and 12Mb/sec up.

Ok, that is HIGH SPEED internet !!!!

2016/06/12

So why do they make CGI characters look like actors

I've never really thought much about why they try to make CGI characters look like the actor, but I've always liked the result. But I think I understand the science behind it and it's fairly kool.

But first I have to switch gears. I've been re-reading one of my favorite books that has helped me out with the results of a spinal cord injury almost 10 years ago. Actually I've been listening on Audible on the drive to/from work but the way my mind works I'm kinda reading but that's another story. The book it's called The Body has a Mind of its Own by Sarah Blakeslee (btw Audible supporting "send to" in Android could have made this much more attractive, take a lesson from Slack on embedding links). It talks about the science behind how your senses/nervous system connect to your brain and why many things happen like phantom leg syndrome which kinda fits what I deal with. It explains things like when you put your hand in front of one eye and look through a tube with the other you see a hole in your hand (I'm pretty sure it's this book, I'm only about half way through again). There is a link at the bottom, and it's a referral link to Audible so be warned. If you use it I get credit and you get the book free.

So yesterday the section was talking about how your brain can re-intergrate things. From teaching monkeys how to use a rake, to how you hear better when you see the person's mouth move. Yea we all know people that can read lips, but there is apparently a deeper connection in the language center that processes both the audio and visual data and improves one by using the other. Then the author made a specific point this is why we perceive the audio in a movie come from the screen when we all understand the speakers are not behind the screen.

Our brains expect audio to come out of the actors mouth and when we hear something that should match we connect the dots and the audio is clearly coming out of the person's mouth.

And sound systems are stunning now how they can read a room and optimize. Short of the extraordinary device in my hand that I'm writing this post on which I had to wait 40 years to get the idea that a speaker (or amp) can do acoustical analysis and adjust so to remove feedback, noise and make it sound right without hours of playing with the settings. But that's only half the story, because when the audio and video are out of sync we dislike it on a fundamental level.

Ok back to topic. I'm watching a movie The Book of Life, and it's a movie where making some of the characters look like the actors would take away from the movie. Hector Elizondo plays Carlos Sanchez, but I don't see Hector in the character. It felt wrong when the character was introduced and throughout the movie it bothered me cause really like Hector he has genuine talent. In contrast to something like Audible where I know the voices and from book to book I recognize the same talent but I've never seen them, I have no expectations on a visual all I can connect the voice to the image I already have for the character. When the character can look like the actor because most on-screen voices in movies are people we've seen on tv/movie so we already made an audio/video connection.

Maybe I'm seeing more than is really there or maybe everyone will say yea we knew that. A few weeks ago I stumbled on a whole universe of alternative trek (see my previous post) and as I've asked others about was I the last to be clued in I've been finding maybe 1 in 8 had heard of it and half I asked are now fans.

Let me know what you think, I'd love to hear so feedback.

Here is the link:
The Body has a Mind of its Own

I'm sure there is an AD below for Audible.

Peace

2016/05/09

OK, how did I miss this .. Star Trek FAN movies and a Series

Last month my other half asks me if i've seen Star Trek Horizons and I look at him like what are you talking about. He points me at a youtube link to find a 90 minute movie done in someone's basement and backyard. It was low budget, bad acting and silly special effects but I was hooked. Watch it here

After spending some time poking around I found a bunch of stuff on youtube, most of it is recorded gameplay that centers around the new game Star Trek Iconians and it's not bad material to watch but then I found my new favorite series.

Star Trek New Voyages (aka Star Trek: Phase II) is a series that started in 2004(3) and has been producing about an episode a year (up to ten episodes now) which can be thought of as Season 4 of ST-ToS with a new cast. It still takes place during the original 5 year mission and includes well constructed cameo's from George Takei, Walter Koenig and a few others from the original series. Watch it here

Production quality is exactly what you'd expect from a fan film, but the special effects are studio quality. It seems that some of the earlier episodes are fairly compressed and suffer lossy compression, but stick with it as it feels like the old television series. By the time I watched the two part Ep 4 & 5 the quality was HD Broadcast quality and the actors really started to shine without losing that "Shatner" style to the Kirk Character.

In addition to the above, i've found a few more projects worth checking out

Star Trek Renegades - YouTube - WikiPedia

Star Trek: Of Gods and Men - YouTube - Wikipedia

And there are more, check out the wikipedia page for all of the projects - here

Live Longer and Far better Entertained

2012/01/08

My android phone just got molested, Police say nothing they can do

I updated all my apps the other night and yesterday I get a notification that an "Improved Android Market" is now available. I've been waiting for Google to make some updates and clicked on the notification.

Lucky, I don't have a default browser on my phone so I got a popup and noticed the url didn't make any sense. After some digging I discovered its a new "Ad" model. Worse yet according to PRWeek "Airpush Named Finalist in Two Mobile Industry Awards.

So developers now can load an API and not only put ad's in their APP (I've never had a problem with an Ad in my app), but this is gone WAY too far. Now they can put notifications into the top bar even when the app isn't visible misleading people.

Its a real shame, the culprit was one of my favorite apps (MySettings), but its gone now (along with 3 other apps from the same developer).

My real problem is companies like AirPush will succeed but foolish and struggling developers (Like MySettings) will pay the price. I hoped that this was something that happened in the last few days, but reading comments on marketplace it seems that they started including AirPush over a month ago, I just noticed because I just updated.

So my Hat's off to AirPush for finally breaking the Android development community. God Help me for saying this.. But I guess I need to consider an apple product now

2011/07/21

Is Audible Good or Evil

I've been a customer of Audible for several years now. In terms of the number of books I read I have over 138 items in my library and that translates to about 75 books.

Audible splits books into chunks of about 8 hrs each, so a book can be 1,2,3 or more downloads (tho I've never seen more than 3).

95% of the time I think Audible is a great service, and I spend on average $250 per year with them on material.

Audible is owned by Amazon, but they are not integrated into Amazon nor do they have any way to integrate themselves into social media (such as this blog).

I love the site, but I have no way to share that with friends / family nor participate in any referral programs. How do they expect to expand their market-share if they are missing out on the biggest marketing opportunity.

What most concerns me about Audible is the DRM on the files. I'm not complaining because I want to pirate the audio, there are many ways to do that if that's what I wanted.

If I were to close my Audible account would I still be able to listen to my books?

If I were to "upgrade" my Audible login to my Amazon login would I have to re-download all of my books ?

If Audible were to be closed down what happens to my purchases ?

I've spent more than $700 with Audible in the last few years and I'm taking it on faith that my purchases are secure for the rest of my life. That spawns another question.

If I purchase a book I can pass it down to my heir's but what about my electronic purchases. Just who's lifetime counts ?

Is it My Lifetime, Audible's lifetime or my Estate's Lifetime ?

I realize most of the Questions around DRM are not just Audible, but Audible is quite closed mouth on this topic. Last year I called and asked these questions and I was told "of course your purchases are safe" but I have no proof of this.

I want an Audible that I know what my recourse is, one that I can profit from by helping them to expand marketshare and one I can talk about and share links without having to cut/paste every link.

2010/11/02

Android Phones

About 3 months ago I took the plunge and abandoned my rusty and rarely trusty Palm Treo 680 for a brand spankin new HTC EVO 4g. Ironically my biggest hesitation about investing in a new phone platform was the adoption curve for the phone in the marketplace and between the time I ordered the phone and its arrival Oracle (aka Sun) decided to launch a lawsuit against Google with a cease and desist order for violating the Terms of Service for Java.

I'll not rant too much about that topic, but back when Sun bought MySql, Innotek (VirtualBox) and a few other open source projects I was fairly vocal about the murky water that could evolve from that. I think this Java debate is just the first round of Oracle trying to own all things.

Back to the phone. For those of you who haven't yet had the chance to play with an Android based device you'll be in for a treat. The interface is similar to the iPhone from the other evil Empire who believes in Open Source only when they get to define the words "Open", "Source" and "Independent Thought". If your willing to be an iClone go pick up an Apple product and leave your brain at the Genius Bar.

The Con's

My biggest gripe is really the lack of a physical keyboard. I've found lots of ways around the problem, the most interesting being the voice to text feature. Whenever the keyboard appears there is a microphone button and you can then say what you want to type and it does a damm good job of decoding it. That being said there is a catch. It seems that the voice recognition works so well is because the phone uploads the audio clip (I'm assuming to Google) and then the translation comes back to the phone. Don't try to use this feature when you don't have at least a 3g connection, it will just fail with a network error.

Being an "Open" platform I found a replacement keyboard app which asked for permission to read my existing SMS's, Email's, etc so that it could learn my vocabulary, style of writing and it did a great job of predicting what I wanted to say. Typically I was typing 1-2 characters of a word and then could hit space (word completion) and move to the next word.

Between the voice recognizer and the predictive keyboard I had several of my friends begging me to "stop texting them" since for every 3 words they sent me I was responding with paragraphs of comments, questions, answers. You get the idea !

Unfortunately that keyboard replacement was a beta and one day I was greeted with an "Upgrade" which proceeded to remove my free beta, download the crapware demo with a 7 day limit and somehow the product actually got worse between beta and production. Even tho they only wanted 7$ for the new version, between the "Improvements" no one liked and the kick in the rump I got after helping them beta test (Beta Testers had to agree to upload data about hit ratio's, replacement words, etc) I wasn't even offered a discount on the final product.

Lastly while the device itself is amazing I now surf from power cord to power cord. I don't measure battery life in hours till dead but in feet to power.

Please don't take my comments so far as the Death of Android, I just wanted to get my gripes out of the way first.

The Pro's

Physically the EVO is a full color, 4.3" LCD touch screen, weighs about the same as my old Treo 680, has a 8MP rear camera, a 1MP front facing camera for video conferencing, a regular headphone/headset jack, one of those annoying "New" USB ports (gota start buying new cables) and the highly touted "Kickstand".

Yea, its got a little flip out foot that helps it stand up when its in landscape mode so you can watch movies on it. Not 100% stable, but I'm using it far more than I'd expect.

Besides the connectors I've described so far its got one more connection on the bottom about the size of the USB port. Its MAYBE 3/8" by 1/4" in size but damm if it's not a "Micro HDMI" port. This thing will output 720 progressive (1280x720) video and it looks sharp on my 42" LCD in the livingroom. That was a bonus extra I was not expecting.

Internally its got 1GB of flash plus a Micro SD slot and came with an 8GB card. I haven't even had a chance to see how big of a device I can get for it. Most of the media I have loaded are audio and video podcast's and the App I use for my RSS feeds has some utilities for purging podcasts that have already been watched, auto download new, etc. etc. The program is BeyondPod and cost me 6$ (My most expensive purchase to date) and its got some bugs, but i've watched/listened to over 200hours of content since I got the phone.

HTC did a nice job on the user interface and had they included one feature in the desktop manager/launcher (HTC Sense) I would not have discovered the world of alternative launchers. Strangely none of the Sense interface panels auto-rotate to landscape mode and I found using the phone in the car awkward since landscape is the best suited for the Navigation App, but I was having to look sideways at the menu's which was not good for driving.

I found a replacement launcher called LauncherPro and it does about 99% of what HTC Sense does. The most significant way that Android and the iClone is about widgets. I'll be the first to admit that I've spent less than 1 hour with any apple product in the last 10 years so maybe I've just never never discovered the world of iPhone widgets but this seems to be the defining difference between the products.

Like the Google Desktop Widgets that most people have a love/hate relationship with in Windows, Widgets are one of those things that make the Android unique in my mind. It's not just about Dynamic Icons, with widgets if the app supports it you can use various portions of the screen to display toolbars, calendar entries, etc etc, just about anything you can think of.

On my phone, main screen across the top is a 5 button widget showing status of the Brighness, Wifi Radio, BlueTooth Radio, GPS Radio and if AutoSync is enabled. Touching the portion of the icon changes the state of the device and I can customize which buttons appear in the bar.

Also on the front screen I have a widget showing battery charge, time to dead or time till charged and the widget is also a conventional icon. I tap it and it launches the battery minder (an add-on called JuicePlotter).

There is another one called 3G WatchDog which keeps track of my data plan usage. I told it what my monthly allotment is and when my contract monthly renewal is and it shows me if I'm going to go over my allotment. It will even disable the 3G Radio if I want at a preset limit.

This only scratches the surface of what I can do with this phone but it has one amazing feature that my Treo could never do reliably. I can ACTUALLY make and receive phone calls on the device. Yes amazing but true its actually a phone. Every time my Treo would ring it was like playing a bad Vegas Slot Machine. Would it answer, lockup, reboot, you never really knew !!

I've had a few difficulties with the Evo and phonecall's but that's mostly related to my being a long time user of GrandCentral aka GoogleVoice.. There is excellent integration with GV on the phone, voicemail's automatically download to the phone and can be listened to even when your out of a service area.

My frustration's are related to the operation of GoogleVoice in general more than the phone itself. For the first month every time I got a Text I'd get two copies of the text, then a text from myself to myself telling me I was not available to respond to the text and then another text telling me I had messages waiting.

Ok, enough for my first post on the phone. I promise I'll continue the posts on the phone if people are interested. Please use the poll on the right side to tell me if this is something of interest.

Rick

2009/10/20

Formatting a good Resume

I found a great article by Zack Grossbart which details his adventures in assembling a resume. Besides selecting which content to provide, he goes into depth about formatting of a resume.

While I personally believe he is on the right track that format is as important as content when it comes to a resume, as we all know when dealing with recruiters they insist on a "word formatted document" so they can fit it to their personal style. This has frustrated me for years, I have tried providing cut/paste locked PDF, faxes, etc and this has never really worked. I had several people re-type my resume for me so that they could put it in their format.

Of all the times my resume was reformatted "for me", only one reformatting ever appealed to me in terms of an improvement (IMHO). Remember there are two goals of your resume a) getting you an interview & b) as a reference document during the interview for notes and prompting questions.

One technique I've used to navigate the job-hunt process is to bring the resume I want to the interview and provide it to the person who your talking to. If your asked why your presenting a different resume the answer is simple and very honest. Typically I'll say "well you know how recruiting firms are, I want to make sure what your reading is what I wanted you to read not someone else's version of my experience"

In case you've never interviewed someone else let me describe a typical session from the other side of the desk. In some cases you know about the interview in advance, but more often 10 min before someone comes into your office and says "you have 20 min to interview someone for me". Even if you had the resume in your hand before the person is seated in-front of you, it's unlikely you've decided on the questions you want to ask.

Ever sit in-front of someone, they introduce themselves and then say "give me a minute to review your resume". This is the magic moment where they will highlight / circle / underline the things they will spend the next 15 minutes talking to you about. It's not about content now, its about formatting. The harder it is for them to scan over and identify the high points the less they are going to talk about specifics and it will become a general "what do you think you can do for us" style of interview. That or the dreaded 20 questions, that might lead down the wrong road and create the wrong impression.

The resume that is in the hand's of the interviewer at the time of the interview will be your last "first-impression". Therefore, format is as important as content at this moment. Also showing to an interview without your own copies of your resume is a poor impression, and also consumes valuable time while the interviewer tracks down a copy.

Hopefully, you'll walk in and the interviewer will dive right into a conversational style interview (I find these are the most successful), but if it becomes 20 questions think about it, do you want to have any control over the topics of the questions or not.

Next time your on a bus, subway, train lean over and glance at the newspaper, book, etc that the person is reading (I'm not suggesting reading confidential documents). Pay attention to which style of print you can read from a distance, which fonts can be scanned more easily while moving in front of you, etc. Formatting is to thank for the easy or difficultly in which you can glance at something from a distance.

Oh and the corollary to this, print all email's, confidential information, etc in that wonderful Arial font, or even better Arial Narrow. Print it out, set it on your desk and try and casually glace at the document to get some information. Not easy is it..

2009/04/27

Windpower - Fad or Fashion

So a friend asked me some advice on putting a windmill on their roof to reduce their electric bill. I had always viewed this as a $5k-$10k venture with a 20 year payback.

But then I sat down and did some research on DIY windpower and I was really impressed. There are alot of people out there building 500 watt systems for under $2,000. If you willing to play a little loose with some regulations I've seen some systems even cheaper.

If there is enough interest in the topic I'm going to create an entire thread to this topic but this is something I need a few fellow authors for. Shoot me an email if you have some interest and would be willing to contribute at least once a month.

Rick

2009/03/12

Woot inspired idea for getting the message accross for Missing Children

OK, this story is totally off the tech trail ( well 99% ) and it really got my attention tonight. A family member of a woot employee was kidnapped last month and woot was quick to get a picture up on their site to get the word out. For those that don't know woot is an e-commerce site that sells one thing a day.

Anyway, they have a T-Shirt section and have been using user created art for designs that are sold online. One bright member suggested printing shirts with the picture of the missing children as part of the rotation and profits from that shirt goto the foundation that runs the missing children center

2008/09/12

DVI - Don't Video Infuriate you

Can I have my ole fashipned DB-9 CGA video connector back please !!!. What 24 lines of 80 characters is not enough for you people.

Seriously, as a result of my wanting to replace my tivo with myth tv (see my other post), i've made the mistake of wanting to plug my fancy PC into my fancy TV and thats where the defecation hit the rotary oscillator.

The first thing to understand is that DVI was meant to be a end-all connector and as such tries to be many things to many people. Every wonder why some cards work with the DVI to VGA adapter and some don't. Well its because not all DVI is created equal.

DVI is actually two standards DVI-A (Analog) and DVI-D (Digital). In the -A standard there are 4 pins that are off to the right with a metal tab between them (ground) which carry the analog signal. The -D uses the pins to the right to carry the signals (see below for more information). The designation of DVI-I is really a DVI-DA or DVI-AD connector. All it means is that the device supports both digital and analog formats.

See the following picture for more information

http://www.lyberty.com/encyc/articles/tech/img/all-DVI-types.jpg


Looking at the Digital connector (or the -I [-AD] version) you see that there is something called Single Link and Dual Link. Dual Link uses more pins than Single Link and basically its a second data bus for the connection (like PCIe 1x vs PCIe 2x)

Dual Link exists so that when there is more data to send to the monitor than one set of wires can handle the data stream can be split increasing the bandwidth. Initially most video card vendors used this as a way to support dual monitors, they would give you a Y cable which was a Dual-Link Male with 2 Single-Link Female's. This limited the combinations of what you could do (only 1 Analog, had to be a specific connector, etc) so they started putting two connectors on the card

But lets explore the limits of Single Link and why you might want Dual Link

DVI signal link supports up to 165MHz of bandwidth (165,000,000/pixels/second) or 3.96 Gbit/s if the reading I've done is correct

1600*1200 at 60 fps = 115Mhz (115,200,000 pixels/second)
1920*1080 at 60 fps = 124.4Mhz (124,416,000 pixels/second)
1920*1200 at 60 fps = 138.2Mhz (138,240,000 pixels/second)

1920*1440 at 60 fps = 165.8Mhz (165,888,000 pixels/second) which is too fast for the single rate, which means that 1920*1200@60fps is the practical limit for SingleLink

DVI dual link supports up to 165MHz of bandwidth (165,000,000/pixels/second) but extends the data range to 7.92 Gbit/s if the reading I've done is correct

As long as the monitor understands that the data is sliced accross two different wires this effectivly increases the bandwidth to 330MHz, but lets call is 2x165MHZ

From Wikipedia:

Example display modes (single link):
HDTV (1920 × 1080) @ 60 Hz with CVT-RB blanking (139 MHz)
UXGA (1600 × 1200) @ 60 Hz with GTF blanking (161 MHz)
WUXGA (1920 × 1200) @ 60 Hz with CVT-RB blanking (154 MHz)
SXGA (1280 × 1024) @ 85 Hz with GTF blanking (159 MHz)
WXGA+ (1440 x 900) @ 60 Hz (107 MHz)
WQUXGA (3840 × 2400) @ 17 Hz (164 MHz)


Example display modes (dual link):
QXGA (2048 × 1536) @ 75 Hz with GTF blanking (2×170 MHz)
HDTV (1920 × 1080) @ 85 Hz with GTF blanking (2×126 MHz)
WQXGA (2560 × 1600) @ 60 Hz with GTF blanking (2x174 MHz) (30" Apple, Dell, Gateway, HP, NEC, Quinux, and Samsung LCDs)
WQXGA (2560 × 1600) @ 60 Hz with CVT-RB blanking (2x135 MHz) (30" Apple, Dell, Gateway, HP, NEC, Quinux, and Samsung LCDs)
WQUXGA (3840 × 2400) @ 33 Hz with GTF blanking (2x159 MHz)


Further Reading on DVI:
http://en.wikipedia.org/wiki/Digital_Visual_Interface

Further Reading on HDMI:
http://www.datapro.net/techinfo/hdmi_info.html

2008/09/04

Replace your Tivo

[QUOTE]
OK, lets start with the fact I LOVE TIVO. I think i've had one in my house from Tivo Year 0 and its a fantastic product. That being said the features have not stayed up to date with modern life.

On my list of what tivo does wrong/does not have include: No Keyboard, No Email, Lack of browser, no weather, PC connection SW SUCKS (might I say SUCKS). Digital DRM interferes with kool features such as TivoToGo, transferring content, One "Tivo" many devices (i.e. each tivo has its own database of preferences, recording schedule, etc)

What Tivo does right: Wishlists, Profiling my shows, annoying me with commercials that link to tivo features.

So why is this blog about replacing Tivo with something else. Well it has to do with the fact that Primetime viewing means I want to record shows on 4 channels at once, I want to watch something in the livingroom, but pause and move to the bedroom when i'm tired without having to plan ahead.

MythTV is one of the many open source DVR projects out there and it gets alot of things right. While not obvious as to the pieces of the product, there are three main components.

MythFrontend is the display subsystem that allows you to navigate menu's, watch content on the harddrive, download from the internet and schedule recordings. What is does not do/have is record shows.

MythBackend is the subsystem that uses capture cards to record content to the harddrive and decide which backend will record what show. That is the magic of MythTV, there can be more than one backend and a backend can have more than 1 tuner. While this is complicated when you try to have more than 1 tuner / backend or more than one backend, when its setup its very powerful.

The third piece is less obvious, but one backend is the "master backend" and that is the node that runs MySql and maintains the global recording schedule, downloaded guide data and co-ordinates the platform (yes you can run MySql on a independent server, but lets pretend)

Last year I bought a mid-priced motherboard, a good capture card and downloaded MythDora. It seemed to be the right collection and installed rather easily. As soon as I wanted to install another backend so I could record on two machines (was going to have 2 pc's both running FrontEnd/BackEnd) it got complicated. When I started using the ATSC capture and wanted to watch TV at 1680x1050 (my display max) the Fedora base did not include the OpenGL nvidia drivers. So I installed the compiler tools, downloaded the nvidia drivers and installed. Video performance went up, but now the ALSA sound drivers for the advanced soundchip (HiDef) on the motherboard stopped loading. Download and compile those and now the remote control stuff stopped loading. Ok BOATANCHOR time, and it went on a shelf.

This weekend I dusted off the machine and downloaded MythBuntu. Ok I am a RedHat admin through and through so this is not easy for me. Well installed and there were a few shocks. A nice GUI that helps install other tools and configure Front/Back ends properly. a "nvidia" install tool and other tuning tools.

Have I gotten it all setup and several machines online yet, the answer is no. But its been running for 4 days without a lock-up and the picture is great. Sound works as well and this weekend I will move it to the media cabinet and connect it to my plazma TV. Will keep everyone posted on the progress

[/QUOTE]

2008/03/25

Way Kool KVM (not) .. 2 PC's, 1 Keyboard

Ok, all that and a bag of chips.

So I sit at home with my laptop and anytime I want to put something up on the mediaPC in my house to show others I need to VNC into the machine, then use my Laptop's keyboard and mouse to control the machine.

This little tool allows you to create a "virtual desktop" accross machines and OS's. One machine is the "server" which means thats the active keyboard and mouse. Load a client on the other PC and then create a config that says client is to the right of server and server is to the left of client. Now drag your mouse off the right side of the server and you are now on the client.

Confused ? its ok, actually when setting it up I screwed up a few times myself. Interesting little side note, you can make your own pc a neighbor to itself (ok, explain that one). My machine is named goofy, in synergy goofy is to the left of goofy, goofy is to the right of goofy, goofy is above goofy and of course goofy is below goofy. How goofy am I now, well drag the cursor off the top and it shows up on the bottom. Yep go off the left and it pops on the right. Cute trick huh ?

But back to the main reason it exists. Now I can have 2 pc's and 2 monitors on my desk without needing 2 mice and 2 keyboards or some silly KVM.

Rick