tag:blogger.com,1999:blog-31908121883284578882024-02-08T01:58:02.290-08:00Not Just Another Unix/Linux BlogThe thoughts, rants and discoveries by Patrick Bulteel. Actually, it's a way to remember things.Patrickhttp://www.blogger.com/profile/00711155241743576261noreply@blogger.comBlogger103125tag:blogger.com,1999:blog-3190812188328457888.post-11136240333386904112021-04-19T09:15:00.000-07:002021-04-19T09:15:03.822-07:00Kubernetes (k3s) and certificates<div style="display: none;"></div><p> Oh, Kubernetes, how I love thee.</p><p>I've been learning and running a small cluster at home on a mix of several Raspberry Pi and a laptop. It's been a great learning experience and although it was all for internal use, I finally decided I'd try to install some certificates.</p><p>Ouch! That took a lot longer to figure out than I wanted!</p><p>Turns out that if you read up on Kubernetes and cert-manager the recommended practice is to use the nginx-ingress-controller. But when I was trying that it didn't seem to work. </p><p>It turns out that if I had searched for k3s, then I wouldn't have had to do that deployment and I could run it all with Traefik - which is installed by default in k3s. </p><p>So thanks but <a href="https://opensource.com/article/20/3/ssl-letsencrypt-k3s" target="_blank">here is the right way</a> to run cert-manager and Traefik and deploy certificates (like from LetsEncrypt.)</p>Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-87114060046812990392021-03-10T04:12:00.000-08:002021-03-10T04:12:26.463-08:00Home Assistant and Zoneminder troubleshooting<div style="display: none;"></div><p> I've been using Home Assistant for a while, but never really spending a lot of time on it. </p><p>However, as of recently, I've started playing with it a bit more and one of the things that I wanted to do was incorporate my Zoneminder cameras onto the platform.</p><p>This is rather easy with a few lines in the configuration.yaml according to the documentation at the <a href="https://www.home-assistant.io/integrations/zoneminder/" target="_blank">Home Assistant</a> page.</p><p><span style="font-family: courier;">zoneminder:</span></p><p><span style="font-family: courier;"> - host: ZM_HOST</span></p><p><span style="font-family: courier;"> username: ZM_USER</span></p><p><span style="font-family: courier;"> password: ZM_PASSWORD</span></p><p>You can add <span style="font-family: courier;">path</span> and <span style="font-family: courier;">path_zms</span> variables if you want.</p><p>However, I was having some problems. I kept on getting a json decoder error. </p><p><span style="font-family: courier;">simplejson.errors.jsondecodeerror: expecting value: line 2 column 1 (char 1)</span></p><p>I initially only had the host, username and password but decided to add the paths. That didn't help. I googled for answers and nothing came up that would suit this.</p><p>I couldn't figure out what was going on for a while until I did a tcpdump on the pod and noticed I was getting redirected for certain lines and 404 in others. I then looked at the server longs and that's when I realised, I was hitting the wrong site. </p><p>What I mean is, I run multiple applications on this one host and I was going to the host by IP. I was therefore was getting a different site than intended. At first, I disabled the site to test until it finally clicked. <b>I'm going to the host by IP</b> in my Home Assistant configuration. </p><p>I switched the host value from IP to FQDN and voila! Everything started working.</p>Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-41340412377068467212020-10-05T05:02:00.003-07:002020-10-05T05:05:04.643-07:00DHCP and DNS - HA at home AKA bind-hole<div style="display: none;"></div><div style="display: none;"></div>What is more annoying to people at home, that having their internet services go down? How about the internet service is still working, but other services like DHCP and DNS aren't working and therefore blaming the internet service.<br />
<br />
As it turns out, my wifi router at home isn't great at running both of those services. Not only that but because they're on the router, I can't do things like block malware and ads like you can with a pi-hole. If you don't know about the pi-hole, I really think you should give take a look at it. Using a Raspberry Pi, you can run DNS and even DHCP on it and it'll filter all of those ads for you. So, I did that.<br />
<br />
Service DID improve quite a bit. People were happy! But, whenever I had to do work on the Pi, like update it, reboot it, etc, then the service would once again go down.<br />
<br />
That was when I decided to look at creating a more robust service. Enter 2 Raspberry Pi and ISC's implementation of DHCP. And while I was at it, thought I'd look to see if I could get the same malware and ad blocking as you can with ISC's BIND. The short answer to that was, yes, yes you can.<br />
<h2>
DHCP</h2>
<br />
Install DHCP with apt.<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo apt install isc-dhcpd</span><br />
<br />
DHCP as HA is a piece of cake. Just following the documentation at <a href="https://kb.isc.org/docs/aa-00502">https://kb.isc.org/docs/aa-00502</a><br />
<br />
You can copy the configs and set the options that are right for your environment. I've put a copy (but slightly modified) version of what I am using. The main thing is to change the key and your IP ranges. Also, if you don't have a domain, you should buy one, they're relatively cheap. You could use the pseudo-tld ".home" so setting up "ns1.yourname.home" would work instead of "ns1.example.org" shown below.<br />
<br />
<h4>
Primary dhcp server</h4>
<br />
<span style="font-family: "courier new" , "courier" , monospace;"># option definitions common to all supported networks...</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">option domain-name "bulteel.home";</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">option domain-name-servers ns1.bulteel.home, ns2.bulteel.home;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span> <span style="font-family: "courier new" , "courier" , monospace;">default-lease-time 3600;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">max-lease-time 7200;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span> <span style="font-family: "courier new" , "courier" , monospace;"># The ddns-updates-style parameter controls whether or not the server will</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># attempt to do a DNS update when a lease is confirmed. We default to the</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># behavior of the version 2 packages ('none', since DHCP v2 didn't</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># have support for DDNS.)</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">ddns-update-style none;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span> <span style="font-family: "courier new" , "courier" , monospace;"># If this DHCP server is the official DHCP server for the local</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># network, the authoritative directive should be uncommented.</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">authoritative;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span> <span style="font-family: "courier new" , "courier" , monospace;"># Use this to send dhcp log messages to a different log file (you also</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># have to hack syslog.conf to complete the redirection).</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">log-facility local7;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span> <span style="font-family: "courier new" , "courier" , monospace;">failover peer "failover-partner" {</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> primary;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> address dhcp-primary.bulteel.home;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> port 519;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> peer address dhcp-secondary.bulteel.home;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> peer port 520;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> max-response-delay 60;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> max-unacked-updates 10;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> mclt 3600;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> split 128;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> load balance max seconds 3;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">}</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span> <span style="font-family: "courier new" , "courier" , monospace;">subnet 192.168.1.0 netmask 255.255.255.0 {</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> option routers 192.168.1.1, router.bulteel.home;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> pool {</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> failover peer "failover-partner";</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> range 192.168.1.50 192.168.1.250;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> }</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span> <span style="font-family: "courier new" , "courier" , monospace;">}</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"># insert this (with your own key text substituted) into dhcpd.conf on primary and secondary.</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span> <span style="font-family: "courier new" , "courier" , monospace;">omapi-port 7911;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">omapi-key omapi_key;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span> <span style="font-family: "courier new" , "courier" , monospace;">key omapi_key {</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> algorithm hmac-md5;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"> secret generate-this-with-dnssec-keygen-see-isc-docs==;</span><br />
<span style="font-family: "courier new" , "courier" , monospace;">}</span><br />
<div>
<br /></div>
<h4>
Secondary dhcp server</h4>
<div>
<br /></div>
<div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># option definitions common to all supported networks...</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">option domain-name "bulteel.home";</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">option domain-name-servers ns1.bulteel.home, ns2.example.bulteel.home;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">default-lease-time 3600;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">max-lease-time 7200;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># The ddns-updates-style parameter controls whether or not the server will</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># attempt to do a DNS update when a lease is confirmed. We default to the</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># behavior of the version 2 packages ('none', since DHCP v2 didn't</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># have support for DDNS.)</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">ddns-update-style none;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># If this DHCP server is the official DHCP server for the local</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># network, the authoritative directive should be uncommented.</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">authoritative;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># Use this to send dhcp log messages to a different log file (you also</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># have to hack syslog.conf to complete the redirection).</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">log-facility local7;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># This is a very basic subnet declaration.</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">#subnet 10.254.239.0 netmask 255.255.255.224 {</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># range 10.254.239.10 10.254.239.20;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">#}</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">failover peer "failover-partner" {</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> secondary;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> address dhcp-secondary.bulteel.home;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> port 520;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> peer address dhcp-primary.bulteel.home;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> peer port 519;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> max-response-delay 60;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> max-unacked-updates 10;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> load balance max seconds 3;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">}</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">subnet 192.168.1.0 netmask 255.255.255.0 {</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> option routers 192.168.1.1, router.bulteel.home;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> option domain-name-servers 192.168.1.7, 192.168.1.9;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> pool {</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> failover peer "failover-partner";</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> range 192.168.1.50 192.168.1.250;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> }</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">}</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"># insert this (with your own key text substituted) into dhcpd.conf on primary and secondary.</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">omapi-port 7911;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">omapi-key omapi_key;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">key omapi_key {</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> algorithm hmac-md5;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;"> secret generate-this-with-dnssec-keygen-see-isc-docs-copy-from-primary==;</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace;">}</span></div>
<div>
<br /></div>
</div>
<div>
Just restart both dhcp servers and make sure they're set to boot up. (<span style="font-family: "courier new" , "courier" , monospace;">systemctl enable isc-dhcp-server ; systemctl restart isc-dhcp-server</span>)</div>
<h2>
DNS</h2>
<br />
Now there are two things you need to do for DNS. You need to setup RPZ(s) and then a master/slave setup. Neither of these is hard to do.<br />
<br />
First, let's do the master/slave setup.<br />
<br />
Install the software on both Pi.<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo apt install bind9 dns-utils</span><br />
<br />
Configure the master. Configure the slave. Job done. Do you have your own domain and you want to have internal DNS resolution of a host? You can even setup DHCP to dynamically update DNS. <br />
<br />
Bind on Debian separates things into named.conf.local and named.conf.options files.<br />
<br />
In the named.conf.local of the master<div><br /></div><div><div><span style="font-family: courier;">zone "rpz.example.com" {</span></div><div><span style="font-family: courier;"> type master;</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>also-notify { 192.168.1.5; };</span></div><div><span style="font-family: courier;"> file "/var/lib/bind/db.rpz.example.com";</span></div><div><span style="font-family: courier;">};</span></div><div><span style="font-family: courier;"><br /></span></div><div><span style="font-family: courier;"><br /></span></div><div><span style="font-family: courier;">zone "bulteel.home" {</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>type master;</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>also-notify { 192.168.1.5; };</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>file "/var/lib/bind/bulteel.home.hosts";</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>allow-transfer { 192.168.0.9; };</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>allow-update { key "rndc-key"; };</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>};</span></div><div><span style="font-family: courier;"><br /></span></div><div><span style="font-family: courier;">zone "1.168.192.in-addr.arpa" {</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>type master;</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>also-notify { 192.168.1.5; };</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>file "/var/lib/bind/db.1.168.192.in-addr.arpa";</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>allow-transfer { 192.168.1.5; };</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>allow-update { key "rndc-key"; };</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>};</span></div><div><br /></div>
<div><br /></div>In the named.conf.local of the slave:</div><div><br /></div><div><div><span style="font-family: courier;">zone "rpz.example.com" {</span></div><div><span style="font-family: courier;"> type slave;</span></div><div><span style="font-family: courier;"> file "/var/lib/bind/db.rpz.example.com";</span></div><div><span style="font-family: courier;"> masters { 192.168.1.4; };</span></div><div><span style="font-family: courier;">};</span></div><div><span style="font-family: courier;"><br /></span></div><div><span style="font-family: courier;">zone "bulteel.home" {</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>type slave;</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>file "/var/lib/bind/bulteel.home.hosts";</span></div><div><span style="font-family: courier;"> masters { 192.168.1.4; };</span></div><div><span style="font-family: courier;"><span style="white-space: pre;"> </span>};</span></div><div><span style="font-family: courier;"><br /></span></div><div><span style="font-family: courier;">zone "1.168.192.in-addr.arpa" {</span></div><div><span style="font-family: courier;"> type slave;</span></div><div><span style="font-family: courier;"> file "/var/lib/bind/db.1.168.192.in-addr.arpa";</span></div><div><span style="font-family: courier;"> masters { 192.168.1.4; };</span></div><div><span style="font-family: courier;"> };</span></div><div><br /></div>
Once that's done, you add domains to the RPZ file using the py-hole-bind script located</div><div><br /></div><div>https://github.com/glenpp/py-hole/blob/master/py-hole-bind9RPZ</div><div><br /></div><div>So, you might be asking about how to get stats and a nice dashboard? Well, that'll be for another blog post. </div><div><br />
<br /></div>Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-25905976671525303502019-12-31T16:15:00.001-08:002019-12-31T16:15:23.060-08:00Happy New Year!<p>2019. The year of crazy! I thought there would be some sanity in the world, but boy was I wrong.</p>
<p>I hope that THIS new year will be great. That 2020 will bring you success.</p>
<p>That 2020 brings sanity! Ohhh, the insanity.</p>
<p>I hope you get to spend it with your family and friends. That the year treats you well.</p>
<p>I don't know what my 2020 will look like. Joy? 2019 sure had its share of emotions.</p>
<p>Well, I wish you all a Happy 2020.</p>
Happy New Year!<br />
Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-49875765846096933872019-09-19T04:11:00.004-07:002019-09-19T04:11:56.885-07:00Netscaler VPN client on Linux seems to have issues with libraries.I have to use the Netscaler VPN client on Linux to do some work. However, I noticed that after upgrading to a newer version of Linux (via wipe/reinstall) the client now doesn't seem to work.<br />
<br />
The error appears when you run the client on the CLI, otherwise you get nothing. It says:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">./NSGClient: error while loading shared libraries: libssl.so.1.0.0: cannot open shared object file: No such file or directory</span><br />
<br />
Great! Let's install libssl. Oh, it's installed. Let's check what libraries it needs/are missing.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">ldd NSGClient </span><br />
<span style="font-family: Courier New, Courier, monospace;">./NSGClient: /lib/x86_64-linux-gnu/libcurl.so.4: version `CURL_OPENSSL_3' not found (required by ./NSGClient)</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="white-space: pre;"> </span>linux-vdso.so.1 (0x00007ffef68d9000)</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="white-space: pre;"> </span>libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007f4a1b1b3000)</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="white-space: pre;"> </span>libssl.so.1.0.0 => not found</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="white-space: pre;"> </span>libcrypto.so.1.0.0 => not found</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="white-space: pre;"> </span>libcurl.so.4 => /lib/x86_64-linux-gnu/libcurl.so.4 (0x00007f4a1b125000)</span><br />
<span style="font-family: Courier New, Courier, monospace;"> ... <cut more output - all libraries present></span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="white-space: pre;"> </span>libcrypt.so.1 => /lib/x86_64-linux-gnu/libcrypt.so.1 (0x00007f4a17286000)</span><br />
<span style="font-family: Courier New, Courier, monospace;"><span style="white-space: pre;"> </span>libgpg-error.so.0 => /lib/x86_64-linux-gnu/libgpg-error.so.0 (0x00007f4a17263000)</span><br />
<div>
<br /></div>
Two things to note from that output.<br />
<br />
1. libcurl.so.4 complains about CURL_OPENSSL_3 not found.<br />
2. Two libraries are not found.<br />
<br />
So I tried a couple of things all of which complained that the OpenSSL version of the library was needed. A search on my system came up with the steam directory containing the libraries I required!<br />
<br />
Well, that's convenient.<br />
<br />
I did the following in the <span style="font-family: Courier New, Courier, monospace;">/opt/Citrix/NSGClient/bin/</span> directory.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">ln -s /home/user/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libssl.so.1.0.0</span><br />
<span style="font-family: Courier New, Courier, monospace;">ln -s /home/user/.steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libcrypto.so.1.0.0</span><br />
<span style="font-family: Courier New, Courier, monospace;">ln -s /home/user/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/libcurl.so.4</span><br />
<span style="font-family: Courier New, Courier, monospace;">ln -s /home/user/.steam/ubuntu12_32/steam-runtime/amd64/usr/lib/x86_64-linux-gnu/librtmp.so.0</span><br />
<br />
Job done. NSG VPN Client now works.<br />
<br />
So, if you are in need of the right libraries for your VPN client, install Steam!<br />
<br />Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com1tag:blogger.com,1999:blog-3190812188328457888.post-10895457044703721442019-07-23T03:26:00.001-07:002019-07-23T03:28:40.387-07:00 Server: WebProxy/1.0 Pre-Alpha errors? Are you tethering?<br />
Today, I had to tether to my phone and run a few web requests top build a Raspberry Pi. However, the requests were failing. It would "sit there" and it didn't seem to work. I couldn't see anything wrong on the server, but I decided I would try a simple "curl -v" to see what would happen and to avoid TLS issues, I tried HTTP.<br />
<br />
I was greeted with:<br />
<br />
<span style="font-family: Courier New, Courier, monospace;"> < HTTP/1.1 503 Service Unavailable</span><br />
<span style="font-family: Courier New, Courier, monospace;"> < Server: WebProxy/1.0 Pre-Alpha</span><br />
<span style="font-family: Courier New, Courier, monospace;"> < Date: Tue, 23 Jul 2019 10:04:43 GMT</span><br />
<span style="font-family: Courier New, Courier, monospace;"> < Content-Length: 0< Connection: keep-alive</span><br />
<br />
What the heck? I knew my mobile provider had some proxies. I googled and noticed a few people complain about the same thing and then it occurred to me. I'm tethered, could this be my device? Would rebooting fix the issue?<br />
<br />
So, since one of the troubleshooting tasks I'd suggest would be "Did you turn it off and back on" I decided to give it a whirl.<br />
<br />
Guess what! That fixed the issue.Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-86658775035804358172019-05-20T04:55:00.000-07:002019-05-20T04:55:17.166-07:00Kodi, inputstream.adaptive and Netflix not working...In a previous post, I mentioned how I finally solved an issue with the Netflix add-on for Kodi and how items didn't play properly but sound worked fine. It was due to the Raspberry Pi not being powerful enough since it has to do software decoding.<br />
<br />
However, I did an update from 9.0.1 version of Libreelec to 9.0.2 and for some reason, Netflix wouldn't even play the video.<br />
<br />
Looking through the logs I could see that the /usr/lib/kodi/addons/inputstream.adaptive/ directory couldn't be found which lead to a lot of Googling and no answers. I tried uninstalling, re-installing inputstream.adaptive and tweaking with its settings, even changing LD_LIBRARY_PATH to point to a different location... all in vain.<br />
<br />
How did I solve it? I uninstalled the Netflix addon, and reinstalled it.<br />
<br />
I removed all settings prior to the removal, but you might not need to do that. I just didn't want to have to deal with it not working and thought it might be a good idea.<br />
<br />
So, there you go. Neflix not working on Libreelec (doesn't matter which version) on a Raspberry Pi. Uninstall the addon and add it back in! Why? Not sure... but at least it's working now.Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-59966341624295342902019-04-01T07:50:00.001-07:002019-04-01T07:50:28.174-07:00Kodi, inputstream.adaptive and NetflixOne of the things I love about the latest version of Kodi is being able to use the Netflix add-on and being able to view everything in one place.<br />
<br />
I had a problem that took me a bit to troubleshoot. Whenever I watch Netflix, I noticed that videos would start to play slower than the audio. In other words, the video would look like it was in slow motion while the audio played at normal speed.<br />
<br />
After doing updates, downgrades, etc I finally found that people were discussing this issue but weren't able to reproduce, however, while looking at the issue myself, I noticed the videos that I was watching from Netflix were in 1080p quality. I went into the properties for inputstream.adaptive and changed the settings to the secured streams from MAX to 720p.<br />
<br />
It worked! My Netflix streams are smooth like butter.Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-55330913747503500222018-12-31T16:15:00.001-08:002018-12-31T16:15:06.138-08:00Happy New Year!<p>2018 has come and gone! It went by so quickly!</p>
<p>I hope that the new year will be great, and bring you success.</p>
<p>That 2019 brings some sanity back to the world!!!</p>
<p>Beyond that, that you can spend it with your family and friends. That all your goals for the year are a success.</p>
<p>I wish you all a Happy 2019.</p>
Happy New Year!<br />
Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-61244650471241472342018-06-22T06:16:00.001-07:002018-06-22T06:16:48.570-07:00Pidgin Part 3 - Or how I learned to ha... dislike LyncThe company is migrating to MS Teams in the near future. This is actually great and seems to work with Linux quite well, even if there isn't an official client for Linux. If Microsoft were to actually make a full Teams client for Linux, that would be the first official application I'd be running on my Linux laptop.<br />
<br />
That said, we haven't actually fully moved to Teams, and are actually still using Lync (while moving to Skype-for-Business i.e. Lync 2016) in the nearer future. I'm still on the old Lync server and now, for some reason, my Pidgin-Sipe client has stopped working.<br />
<br />
I cannot seem to connect to the server and I haven't found out why yet.<br />
<br />
Currently, when running Pidgin with the<span style="font-family: Courier New, Courier, monospace;"> --debug</span> flag I get the following.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">(14:03:26) sipe: sipe_http_request_response_unauthorized: init context target 'HTTP/server.domain.com' token '<NULL>'</span><br />
<span style="font-family: Courier New, Courier, monospace;">(14:03:26) sipe: sipe_http_request_response_unauthorized: authentication failed, throwing away context</span><br />
<br />
Obviously, I'm not giving out the server name.<br />
<br />
It's a different error than having an incorrect password, so I'm not sure what the problem is. (Yet.)<br />
<br />
If anyone happens on this blog and has more input or an idea, please add it in the comments.Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-3759035202679806702018-01-30T03:20:00.002-08:002018-01-30T03:20:17.212-08:00Getting Pidgin and Microsoft Lync to work nicely (Part 2)I last wrote about trying to get Pidgin working on a Windows environment by using the pidgin-sipe plugin and a few other things. (See <a href="http://notjustlinux.blogspot.co.uk/2012/03/getting-pidgin-and-microsoft-lync-to.html">the first post</a>.)<br />
<br />
Since then, I've changed work/company and decided I would go with TelRed's <strike>Wync</strike> <a href="https://tel.red/linux.php">Sky</a> and even pay for the year's subscription. However, even with the license I still had a lot of issues. Also, since the group that I work with worked on Skype instead of Lync, I was using Skype for Linux and didn't bother trying to sort out my issues.<br />
<br />
However, people need me to be available via Lync now. I decided to give Pidgin another go.<br />
<br />
So, following what I knew from the first post, I edited the UserAgent and put in the rest of my information.<br />
<br />
Well, it wouldn't work. The error I got was something related to the service not providing a token. I couldn't find any Pidgin logs, so I started it on the command line with the -d flag (for debugging.) and I noticed that it wouldn't accept the SSL certificate and would disconnect me.<br />
<br />
Reading about this issue, it led me to enable the NSS Preferences plugin and then trying to figure out what Cypher the site I was trying to connect to was using. The logs didn't give much information with regards to that, so I tried Google Chrome. I couldn't find the information in Chrome by viewing the SSL Certificate itself, but going to into Developer Tools, and then the security at the bottom it showed that the site was using some old Cyphers and protocols. I enabled those in the NSS Preferences plugin and then my error changed!<br />
<br />
Now, it was still failing, but it gave me a "Read" error. I googled for that and eventually came to an OLD Debian <a href="https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=649456">bug (649456)</a> which showed that the workaround was to use <span style="white-space: pre-wrap;">NSS_SSL_CBC_RANDOM_IV=0 and then start pidgin. So, I did that and voila!</span><br />
<span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;">I'm available on Lync now. I now noticed I can even do some other things that I couldn't before, but I haven't had the chance to try them. </span><br />
<span style="white-space: pre-wrap;"><br /></span><span style="white-space: pre-wrap;">Last thing: we are migrating to O365 soon, so I will probably have to write another part to this saga when that's completed. I believe there's going to be two steps to that since we're doing email first and moving the Lync instances to Skype 4 Business second. </span><br />
<span style="white-space: pre-wrap;"><br /></span>
<span style="white-space: pre-wrap;">Keep your eyes out for the next instalment.</span>Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-12346652347605055922017-12-31T16:15:00.001-08:002017-12-31T16:15:05.421-08:00Happy New Year!<p>2017 - another year added to our belt.</p>
<p>I hope that the new year will be bring you joy.</p>
<p>That 2018 will be a successful year.</p>
<p>That you can spend it with your family and friends because you'll never know how much you'll miss them until you cannot spend time with them.</p>
<p>I wish you all a Happy 2018.</p>
Happy New Year!<br />
Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-62530937800420798102017-03-08T09:59:00.001-08:002017-03-08T09:59:57.670-08:00Backups? Who needs stinking backups!It's not often that I get to write about a success followed by a failure... followed by a success.<br />
<br />
I run Linux on my corporate machine (Ubuntu in one flavour or another) and I had not upgraded in a while. This meant that my version of Ubuntu was End of Life and I need to completely re-image my laptop to get onto something more current.<br />
<br />
Therefore, I did what anyone would do... backup my data.<br />
<br />
I then attempted a restore to make sure that the data was still valid and "restorable" and proceeded to re-image my machine.<br />
<br />
I hate to name and shame, but I used Deja-dup which is the default Ubuntu backup software to create my backups and check that everything was working.<br />
<br />
However, after re-imaging my machine and installing the latest version of Ubuntu, I tried to restore my backup and lo-and-behold, Deja-dup tells me "There is no backup...."<br />
<br />
<b>WHAT?!</b><br />
<br />
Are you might assume, I went ahead and tried to find what I could do - I saw that all the backup files (duplicity-full.xxxx.tardiff.gz) were in the backup location so I didn't think anything about it...<br />
<br />
I tried re-launching the application and when I did it tried to make a backup. I didn't want a backup, so I stopped it. Then started the app again and tried to restore with the same error message.<br />
<br />
I decided I would try something else, so I go to the directory where my backup was located and.... it was empty! Actually, there was a duplicity-checksum file that had been created by the previous backup attempt.)<br />
<br />
<b>WHAT?!</b><br />
<br />
I couldn't believe my eyes. I wanted to die! I had not only documents but also code I had written. I had over a year's worth of work, notes, and items that I had saved... <b>ALL GONE!</b><br />
<br />
<b>ALL! GONE!</b><br />
<br />
So, I started looking for what I could do to recover something that was recently deleted. I found ext4magic and extundelete...<br />
<br />
I installed both, made my partition read-only (which was an encrypted drive.)<br />
<br />
<span style="background-color: #202020; color: #dddddd; font-family: monospace; font-size: 15.6px;">sudo mount -o remount,ro /dev/mapper/luks-<uid-of-drive></span><br />
<br />
I then proceeded to read the documentation on both and decided that extundelete was worth a shot...<br />
<br />
I created a temporary directory to try to restore into and ran the application (and crossed my fingers) ...<br />
<br />
<span style="background-color: #202020; color: #dddddd; font-family: monospace; font-size: 15.6px;">sudo extundelete /dev/mapper/luks-<uid-of-drive> -o RESTORE/ --restore-all</span><br />
<br />
I waited. And finally...<br />
<br />
42GB recovered!<br />
<br />
I then copied them over to another drive (for safe keeping) and tried to restore from those files... Still, Deja-dup said, "No backup found!" $!*&"!<br />
<br />
I went and looked for what I could do to recover if I didn't have Deja-dup and I found that I could simply gunzip and untar the files. That it would create a "snapshot" directory and a "multivol-snapshot" directory. Everything in the "snapshot" directory was the file in the original state... while the other one contained parts which had to be put together.<br />
<br />
Well, I did it... and I've recovered almost all the stuff I had.<br />
<br />
Now to switch to something that I have used before and that works quite well... Back-in-time.<br />
<br />
<br />Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-86663191927279296022016-12-31T16:15:00.001-08:002016-12-31T16:15:04.928-08:00Happy New Year!<p>2016. It came rather quickly and seem to have gone rather quickly too.</p>
<p>What has happened this year? I learnt I needed to update my IF rules earlier in the year so that at least I post something relevant! I had one of my dogs hit by a car at the very beginning of the year.</p>
<p>But with those things, I get stronger. I get smarter and wiser. I get a little bit more confident.</p>
<p>2017 will be another successful year. :-( He's ok now.</p>
<p>I wish you all a Happy 2017. May all your goals come true... that means work hard!</p>
Happy New Year!<br />
Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-23418087121509214662016-01-04T06:24:00.003-08:002016-01-04T06:24:19.916-08:00Remotely printing on a printer behind a firewall...<h3>
Printing...</h3>
<br />
Today I needed to print something at home. My wife was there and she needed the document but didn't have a way of printing it herself.<br />
<br />
So, how do you go about doing this? Well, there's probably a few ways, like creating a print queue using a shared drive and having a print server at home that checks that queue. Then you can upload the file to dropbox, gdrive or where ever you've shared the directory and get that printed.<br />
<br />
But what if you haven't set that up yet? Well, depending on the printer and if you have a server/desktop with ssh running, you could tunnel it.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">sudo ssh user@ext.er.nal.ip -L 161:pri.nt.er.ip:161 -L 162:pri.nt.er.ip:162 -L 9100:pri.nt.er.ip:9100 </span><br />
<br />
Obviously substitute your external IP with the IP to get to your ssh box and the printer IP with the one for the printer you're trying to use.<br />
<br />
This command by the way is for printing to an HP printer and worked fine for me!<br />
<br />
-PPatrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-2712635124951263412015-12-31T16:00:00.001-08:002016-01-04T06:14:15.901-08:00Happy New Year!<strike>And 2014 is over, just like that.</strike><br />
<strike>What has happened this year? Too much to really. A grandchild, a wife with a Masters, new friends, old friends...</strike><br />
<strike>I wish you all a Happy 2015. May all your wishes come true.</strike><br />
<strike>Happy New Year!</strike><br />
<strike><br /></strike>
So as you can probably tell, I've automated my response to when a New Year even happens. I did it with IFTTT (If This Then That) which is great. However... I didn't update the message for this year so I so elegantly posted the same message I posted last year!<br />
<br />
This happened on Facebook and here as you can see.<br />
<br />
So, Rule #1 when starting a new year. Update the message you're planning on posting! You don't need to have it completed, but at least the gist. So that if you haven't done anything and 20xx comes along, at least you have the right message!<br />
<br />
Happy New Year - May 2016 be a great year for you.<br />
<br />
-PPatrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-6418476457093574872014-12-31T16:00:00.001-08:002014-12-31T16:00:21.426-08:00Happy New Year!<div xmlns='http://www.w3.org/1999/xhtml'><p>And 2014 is over, just like that.</p><br /><p>What has happened this year? Too much to really. A grandchild, a wife with a Masters, new friends, old friends...</p><br /><p>I wish you all a Happy 2015. May all your wishes come true.</p><br />Happy New Year!<br/></div>Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-60407617220171458752014-01-01T04:29:00.001-08:002014-05-14T03:02:49.287-07:00Predictions for 2014<div dir="ltr">
The New Year is here and lots of people are posting their New Year resolutions. This year I thought I'd try something different. Here are my New Year Predictions.</div>
<div dir="ltr">
1. In the area of social media, we will find that all those companies that are gathering our tweets, Facebook posts, G+ shares, etc will finally start providing services that make use of this data. Thanks to Big Data Analytics and Predictive Analytics these companies will provide better discounts, more relevant and interesting advertising AND they will do it in such a way we won't even realize the complexities behind it all.</div>
<div dir="ltr">
2. Space exploration will have some privately funded companies looking for new ideas by using crowdsourcing techniques and mass marketing. </div>
<div dir="ltr">
3. Looking at DNA for techniques to prolong life has been going on for a while, but I think the next big breakthrough will happen this year. Now beating diseases like cancer is going to become even more important. Please donate to those doing research in these diseases. </div>
<div dir="ltr">
4. Advances in cheap disposable computing device like the Pi and Arduino will make more DIY projects more appealing. Watch the big companies start to sweat at having these cheap device take over in the home. Thanks to this, educators will start to focus on technology again, making it more appealing to kids.</div>
<div dir="ltr">
5. Google makes Glass more affordable than people currently expect it will be and finally opens it to everyone. In the $150-200 range. (OK that's just wishful thinking.)</div>
<div dir="ltr">
Well, that is all I am going to put down for now. Now let 2014 begin!<br />
</div>
Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-71249908192524279362013-12-31T16:03:00.001-08:002013-12-31T16:03:55.273-08:00Happy New Year!<div xmlns='http://www.w3.org/1999/xhtml'><p>It's a brand new year. People will start thinking about the things that they have accomplished and the things they wish they had accomplished.</p><br /><p>I know that this past year was a great year. I managed to do so many things and a lot of them wouldn't have happened if it weren't for my wonderful wife.</p><br />Happy New Year!<br/></div>Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-45465088267986779122013-10-02T05:19:00.000-07:002013-10-02T05:19:18.760-07:00Debugging a core? What tools do you use?Whenever you have an application crash or become unstable and the worse part is that logs don't give you anything useful, what do you do? What tools could you use.<br />
<br />
Well, one thing is strace. Running and tracing a process while it's doing its thing is one way. Crashing the process or generating a core with "gencore", gcore (aka gdb core) or something similar is another.<br />
<div>
<br /></div>
<div>
But what do you do when you want to capture the core and its dependencies on another machine to debug? </div>
<div>
<br /></div>
<div>
On AIX IBM has snapcore. If you don't know this utility, read about it! It's a great tool but there is no equivalent in Linux. </div>
<div>
<br /></div>
<div>
What can you do?</div>
<div>
<br /></div>
<div>
Well it turns out that gdb can provide a few things that make this easier. For example, gdb can list the libraries that are loaded in memory on the core. This is helpful so that you can gather those to bring in house.<br />
<br />
So once you are in gdb you can do a "info sharedlib" and get this list.<br />
<br />
Once you do that, you can collect the libraries that you need and use them to debug the core locally by loading them at the same time as you load the core and binary. You need to set some information when you are doing this.<br />
<br />
I'll write another post with my way of doing this... and possibly a "snapcore" equivalent for Linux.<br />
<br />
-P</div>
Patrickhttp://www.blogger.com/profile/00711155241743576261noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-21656619613630238422013-08-20T08:25:00.000-07:002013-08-20T08:25:31.390-07:00Home Automation - Is your house smart?For many years I've wanted to automate things around my house. A long time ago (almost 10 years ago!) I use to use <a href="http://misterhouse.sourceforge.net/" target="_blank">MisterHouse</a>. This was a great application and although I didn't have much in looks, it made my imagination run wild. I was using a few X10 components and though it worked, it was somewhat disappointing in it's performance.<br />
<br />
Now, I am planning on embark on a HA project once again. This time, I would like to use something which offers a lot more than Mr House. I've been waiting to see how that project matured and how much development was put in... Though I must admit it's a complex project, I certainly look forward to start it. (If my wife lets me.)<br />
<br />
This time, I am going to use <a href="http://www.linuxmce.org/" target="_blank">LinuxMCE</a> and if you ever go on <a href="https://www.youtube.com/watch?v=G7JDX2R_uDc" target="_blank">YouTube</a>, look it up. The demo is quite impressive so it's worth it to look at users' environments. This video/demo I liked above was using a much older version of LinuxMCE. It's capabilities are quite impressive.<br />
<br />
Now one thing that is good about HA is that you don't have to invest tons to get started. I'm going to start with a module or two and control a light or two. Once I've got it going, I'll hopefully convince my wife to let me invest in one module a month. (One security camera here, one light module there, another VOIP phone here...)<br />
<br />
In short - HA is something that has been available for a while and doesn't take a lot to get started. When are you going to start?Patrick Bulteelhttp://www.blogger.com/profile/01516940048085966693noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-87119705227815231192012-10-08T03:30:00.001-07:002012-10-08T03:30:19.536-07:00How to tell someone you love them?I haven't written in a while, not because I haven't had anything to say, but mainly because I haven't felt like putting it down in my blog.<br />
<br />
Now, I have something I want to say, but I don't know how to say it.<br />
<br />
I love my wife and kids. They are the most important thing to me. I've always thought that what I did was in their best interest. Now, I'm not so sure that is what's happened.<br />
<br />
I love my daughter so much that it's gotten to the point where I feel I can't give her anything she deserves anymore and as adult she now makes her own decisions. I feel I can't provide her with what I hoped I would be able to.<br />
<br />
I love my son so much that it hurts whenever I think of anything happening to him or of him suffering in any way. <br />
<br />
I love my wife so much ... that I can't find a way of expressing it to her. I want her to be happy. I want her to know how I feel about her and that I've always been in love with her, but simply telling her isn't good enough.<br />
<br />
She's always has told me "Actions speak louder than words" and I haven't acted. My actions have always turned out to be the stupidest thing that I could possibly think of. And that wasn't my intent! I REALLY thought that what I was doing was "ok" and it could be explained away. That it would get fixed. I live in a fantasy world where I can dream up the solution to my relationship problems. I always dream that things work out. It never does.<br />
<br />
So now I'm stuck. I love my wife so much, but I don't know how to tell her and I don't know what to do.<br />
<br />
Any suggestions?<br />
<br />
-P<br />
<br />
<br />Patrickhttp://www.blogger.com/profile/00711155241743576261noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-60619960841848161622012-03-14T05:04:00.000-07:002012-04-06T06:22:44.326-07:00Getting Pidgin and Microsoft Lync to work nicely.In the Windows centric company that I work at we use Office Communicator. Therefore I use Pidgin and the SIPE/SIMPLE plugin to be able to communicate.<br />
<br />
Recently, they've started changing the version of OC to the latest Lync version. All of a sudden, my Pidgin would fail logging in. I checked on a Windows system and I still couldn't use the Lync client so I figured things were in transition and I didn't bother too much with it. <br />
<br />
However, someone came to ask me about it and when I tried the Window Lync client again, I suddenly was able to log in! I tried Pidgin again and it would tell me that I was using not the right version. So I started searching around. I found that: Microsoft allows administrators to block older version of OC from connecting to the server. <br />
<br />
So I started searching a bit more and found that others had the same problem and were looking for a solution. I then stumbled upon a very useful link.<br />
<br />
This page <a href="http://sourceforge.net/projects/sipe/forums/forum/688534/topic/4637722">describes how to set the user-agent in Pidgin</a> so that you could connect as a certain version of OC. However, when I tried the same version on the post, that version didn't seem to work. So I started searching for a newer version and I found it...<br />
<br />
To get Pidgin to work use the following UserAgent:<br />
<br />
<b>UCCAPI/4.0.7577.0 OC/4.0.7577.0 (Microsoft Lync 2010)</b><br />
<br />
Tada! I'm able to chat again!<br />
<br />
-PPatrickhttp://www.blogger.com/profile/00711155241743576261noreply@blogger.com2tag:blogger.com,1999:blog-3190812188328457888.post-58692928862730431912012-02-24T04:40:00.000-08:002012-02-24T04:40:06.494-08:00Zenity re-discoveredIt's been quite a while since I've posted anything. Life's gotten busy!<br />
<br />
Recently I've been writing some scripts and thought it would be nice to guify them a bit. I then recalled using Zenity for a few things and though it would be great to take a look. Since it had been a while I didn't quite remember everything. A quick Google search returned a pair of great sites that helped out with this.<br />
<br />
<a href="http://linux.byexamples.com/archives/259/a-complete-zenity-dialog-examples-1/">Zenity guide by examples 1</a> and <a href="http://linux.byexamples.com/archives/265/a-complete-zenity-dialog-examples-2/">Zenity guide by examples 2</a> both of which can really describe how it works in nice to understand examples.<br />
<br />
Now to start using these!<br />
<br />
-PPatrickhttp://www.blogger.com/profile/00711155241743576261noreply@blogger.com0tag:blogger.com,1999:blog-3190812188328457888.post-32748129863452775532011-08-19T09:14:00.000-07:002011-08-19T09:14:16.267-07:00DNS and DHCPFor some reason I hadn't enabled the ability for DHCPD to update my internal DNS server when a new client joined the network, so I decided to do that.<br />
<br />
The process is quite simple, you generate a key which you give to both DHCP and DNS and they hash out the communication.<br />
<br />
However after I did that I noticed I was getting an error:<br />
<br />
<blockquote>Aug 19 17:00:56 server01 dhcpd: if iPod-touch.mydomain.org IN A rrset doesn't exist add iPod-touch.mydomain.org 3600 IN A 192.168.1.140: timed out.<br />
Aug 19 17:00:56 server01 dhcpd: DHCPREQUEST for 192.168.1.140 from 00:26:bb:a1:cf:a0 (iPod-touch) via eth1<br />
Aug 19 17:00:56 server01 dhcpd: DHCPACK on 192.168.1.140 to 00:26:bb:a1:cf:a0 (iPod-touch) via eth1<br />
</blockquote><br />
I Googled for any signs of what this could mean and I didn't find anything. There weren't too many people reporting the same issue, so I guess there wasn't that much to it.<br />
<br />
I finally did an strace on the named server and managed to catch that the server was getting an access denied error. I looked at my bind directory and realized it was owned by root as were the files... I quickly changed this to the bind user and voila! problem solved.<br />
<br />
-P<br />
<br />
PS - many people may wonder why I would want to do this in the first place, do I REALLY have that many machines or ... anyway, the answer is it's "because I can".Patrickhttp://www.blogger.com/profile/00711155241743576261noreply@blogger.com0