Monday, November 6, 2023

RTSP Security Camera Viewer

Working on an app to live stream four MJPEG preview streams from security cameras. Going to use WinForms on .Net Core.

Links to save for ideas about the app.

Really real full screen apps:


Accord-Net looked really cool, but doesn’t actually decode the video streams

Didn’t want a VLC dependency (though it could be worse)


Sunday, March 28, 2021

Tossing an Outlook 2016 for Mac Profile

I'm archiving this here for my own benefit. I didn't come up with this originally. Credit due to @ajkgordon on (original link) for the original. To delete the Outlook profile, go to Finder > Applications > right-click / CTRL-click on Outlook > Show Package Contents > Contents > SharedSupport > Outlook Profile Manager > Select profile > Click the minus sign to remove. Then empty trash. After this, the user can launch Outlook and setup their profile as if it was first being setup. In case you're looking for PC instructions, here the are from memory. Open Control Panel (the legacy control panel, not the new Windows 10 settings) Open the Mail control panel Select Show Profiles Remove the profile Restart Outlook and setup the profile again.

Tuesday, July 31, 2018

Fun with Lipsum and Google Translate

Feed the "Lorem Ipsim" text into google translate for interesting results. You can find out more about the history of the latin-like "Lorem Ipsum" or "Lipsum" text and its origins with Cicero at

Original Text:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis egestas mattis massa ut tristique. Nunc euismod malesuada blandit. Praesent lacinia consequat gravida. Praesent rhoncus nunc ut odio pulvinar in suscipit enim vestibulum. Vivamus non justo pellentesque risus elementum interdum. Vestibulum ornare sapien in nisl feugiat pellentesque. Phasellus ut mi urna. Ut sit amet metus augue. In posuere pellentesque mattis. Curabitur ullamcorper placerat lectus sagittis aliquet. Morbi faucibus sem id diam mattis non auctor tortor adipiscing. Proin a massa congue lectus elementum accumsan ac ut sem. Curabitur blandit augue eu turpis tempus eu lobortis eros consequat. Donec sed tempus est.

Nulla interdum, lectus quis posuere ultrices, metus erat fringilla elit, vitae sollicitudin dolor ante vel risus. Donec tempus pulvinar venenatis. Nam ac eleifend erat. Praesent bibendum purus vel neque tempor quis tincidunt elit cursus. Etiam id eros urna, sit amet volutpat elit. Nullam non metus orci, eu adipiscing turpis. Nunc gravida lobortis quam ut adipiscing. Aliquam ultrices, purus sed sollicitudin malesuada, nibh lacus lacinia elit, eu euismod nisi felis at ligula. Integer eu lectus sed nisl tristique cursus. Mauris lectus massa, rhoncus et dignissim a, tempor vel quam. In tortor nisl, dictum id consequat at, cursus sit amet dolor. Vivamus ac massa at odio aliquam venenatis ac vel leo.

Google Translate Automatically "Translated" from Latin in Chrome 67 on Windows 10 with the Google Translate Extension installed. I'm still trying to figure out what exactly is the Latin word for CNN:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mass poverty lot of homework to be sad. Performance now malesuada afternoon. Present skirt photography pregnant. CNN now present in order to receive the hated volleyball court. Live element, not just kids smile sometimes. Sapien eu football players betting on nutrition. Boat as my pot. To carrots fear propaganda. Put kids in real estate. Chat ullamcorper real estate arrows and bananas. Soccer team salad diam real estate is the author of macro customer. Planning graduated from the microwave mass element layer and the salad. Chat sit propaganda football high school football season carton peanut products. But until it is too late.

No protein, graduated one basketball set, fears of ecological cleaning, care of the pain and laughter. Until the time of volleyball blockage. In fact, it was ac Vestibulum. Chili drink or not present at any game and running. It also is reality urn, carrots methods. Does not meet the Nullam orci, eu adipiscing turpis. How to get pregnant now carton customer. The latest basketball, chili and care expected, nibh skirt competition, but football Performance at gas networks. An entire football players graduated, but the sad cycle. Graduated largest mass, grilled and soccer from, or how long. The temperature of Medicine, said that development at the cycle of products. And a poisonous hatred and mass live at or refrigerator.

And now I'm curious if someone out there runs this same test if they get a different result set.

Tuesday, June 2, 2015

I'm Still Around

It's been silent around here for too long.

Here's a few of the things I've been working on for the last two years:

  • SCCM 2012
  • MDT 2013
  • Windows Image Creation and Deployment using MDT and SCCM and without those two using DISM/ImageX/GImageX
  • Mac OS X image creation and deployment using DeployStudio
  • Active Directory and Exchange Administration
  • Exchange 2010 -> 2013 on-premises upgrade
  • Sharepoint 2013 farm installation
  • Database migration to SQL Server 2012
  • XMPP-based IM server installation and maintenance
  • Virtualization with Hyper-V
  • High performance storage design, installation, configuration and operation (Dell|Equallogic, Lenovo, EMC)
  • iPad deployment using Apple's DEP
  • Enterprise Chromebook/Chrome OS Deployment
  • Scripts and Tools to manage Chromebook deployments
  • Network Management (Cisco, Ruckus, Meraki)
And much more.

I plan to get back to blogging on this site with insighes

Sunday, January 27, 2013

Setting up WordPress 3.5.1 on 1and1 Windows/MSSQL Hosting Plan

This article gives a great breakdown on setting up WordPress on IIS with Microsoft's SQL server. I'm not sure if this is specific to 1and1's hosting setup but I did find a quirk when using version WordPress 3.5.1 version 1.1.4 of the WordPress Database Abstraction plugin.

You're likely to run into an error similar to the following.
Call to undefined function mysql_free_result() in E:\kunden\homepages\19\<your user id>\www\mysite\wp-includes\wp-db.php on line 1126
Edit the file wordpress-root-dir\wp-includes\wp-db.php look for the following code block:
if ( is_resource( $this->result ) )
  mysql_free_result( $this->result );
Comment both lines out otherwise mysql_free_result will always return an error:
//if ( is_resource( $this->result ) )
  //mysql_free_result( $this->result );
Leave everything else in the function as is, including the closing curly brace "}" on the line below.

If you encountered this error while running install.php you will need to login to the MSSQL admin panel,  delete the tables that were created by the WordPress install.php script and re-run install.php.

Wednesday, March 14, 2012

Configuring Google NoSSLSearch for Windows DNS Servers

Create a new Primary DNS Zone on your DNS server for
Add a single CNAME record with a blank alias name and “” for the FQDN for target host. The trailing dot after “com” is important.
Clear your DNS server cache by right-clicking on your server in DNS manager and selecting Clear Cache.
When your clients request, your DNS server will direct the client to instead of
Sample output from NSLOOKUP after configuring this DNS zone:

Server:  dc02.domain.local

Hope this helps.

Monday, December 19, 2011

Fun with AirPrint, Bonjour and DNS Service Discovery (dns-sd) for iOS

I'm currently working on getting AirPrint working with our installed base of printers that don't share an IP subnet with a fleet of iOS devices. For now I'm just going to post links to the source material I've gathered. Once I've figured it out, I'll come back and expand this post:

High-Level Outline:
  • Create new DNS zone (ex: bonjour.yourdomain, this domain does not have to have a public TLD. For instance, I used print.test, and will refer to the zone as print.test in this document)
  • Add new DNS zone as published search suffix in DHCP
  • Install CUPS server (I used Ubuntu Linux Server v11.10)
  • Configure a shared printer queue in CUPS for printer1 named printer1_q
  • Add an A record for CUPS server to print.test dns zone (assumes CUPS server is at
    • cups1 IN A
  • Add b._dns-sd._udp and lb._dns-sd._udp PTR record
    • b._dns-sd._udp IN PTR print.test.
    • lb._dns-sd._udp IN PTR print.test.
  • Add PTR records for printer
    • _universal._sub._ipp._tcp IN PTR printer1._printer._tcp.print.test.
    • _cups._sub._ipp._tcp IN PTR printer1._printer._tcp.print.test.
  • Add SRV records for CUPS printer queue named printer1_q on the print server
    • printer1._printer._tcp IN SRV 0 0 631 
  • Add TXT record for CUPS printer queue named printer1_q on the print server
    • printer1._printer._tcp IN TXT (
      "ty=HP Laserjet Color 4650 DN"
      "product=(GPL Ghostscript)"
      "pdl=application/octet-stream,application/pdf, application/postscript,image/jpeg ,image/png,image/urf"
      "URF=none" )
Notes on the TXT record:

  • Always set URF=none, it must be present for the record to work
  • The value from the "ty" key is displayed in the iOS printer search results as the printer name
  • The value from the "note" key is displayed under the printer name in the iOS printer search results
  • Feature descriptors are added in a key= where is T (for true) or F (for false). If a key is not specified or is blank, the value is assumed to be false. Optional keys include:
    • Duplex: enable duplex (two-sided) printing
    • Staple: can staple
    • Copies: supports printing more than one copy of a document
    • Collate: can collate (group) pages 
    • Punch: can punch
    • Bind: can bind (assume this is saddle stitch or other binding method)
    • Sort: printer includes a sorter
  • The printer-type key appears to reference bit mask data type. I have not found a description for this enumeration.
  • I have not found documentation printer-state enumeration. Most examples set this to 3
  • If your print server requires authentication, add the following literal string to the TXT record : "air=username,password"
I'm looking into the feasibility of using native IPP without CUPS in these TXT records and will update this post with what I find out.


IETF Draft: DNS-Based Service Discovery

Manually Adding DNS-SD Service Discovery Records to an Existing Name Server

Apple Developer Documentation: Bonjour Operations

Apple Support Discussion: Airprint Information and FAQ

Apple Support Discussion: Airprint in the Enterprise across subnets

Bonjour Printing Specification

Printing from the iPad without buying a new printer

AirPrint and Linux

Airprint across subnets

CUPS & AirPrint from iPhone or iPad

Automatically generate AirPrint Avahi service files for CUPS printers

AirPrint with Ubuntu 10.10