Please see the Thinking in C++, 2nd Edition mirror page.
Please see the Thinking in C++, 2nd Edition mirror page.
So it pays to pay attention.
I’ve been waiting for the Witcher 3 to come out for quite some time; I thoroughly enjoyed both the Witcher 1 and the Witcher 2. I knew the release date was 05/18/2015, yet because most games are released on Tuesday I didn’t realize the game was being released on Monday.
So last night I went to spend a few minutes playing something in Steam and realized the game had been released. Doh!
That’s okay, in the end. I started the download and continued replaying the first Witcher. You can import your saves into each sequel, and for some reason I hadn’t kept my saved games for the Witcher series. (I had every other game in the world saved… but not this one.) This will give the game a bit of room to breathe and time for a patch or two. Probably saving me quite a bit of grief.
So my car, and my son’s car, were broken into last night. I think, “hey, I have security cameras, this should’ve been caught!”
Three problems. The light from my porch light was throwing off the night vision of the cameras. Two, that fucking branch. Three, poor wireless reception caused poor updates.
The branch is gone, cut down in its prime a few hours ago. The wireless reception is only fixable by a wired camera which isn’t in the cards right now. If it was, it’d be 1080p — but I’m not sure if the night vision would’ve held out much better or not with an HD camera.
The point of this is that the only thing they took was my car registration – leaving my garage door opener and expensive GPS unit. They also left my son’s fairly decent stereo in his vehicle, and his paperwork (hidden underneath a man sized pile of receipts and trash).
Apparently the theft of car registration is a big business now, to the point where some folks recommend removing your car registration when you’re not in the vehicle. If you consider the information that’s on a car registration, there’s plenty there to begin identity or vehicle theft.
Personally, I think this was a punk kid who didn’t want to take the time to look through my substantial manila folder of car repairs and other paperwork to see if there was anything worthwhile, rather than a professional stealing identities. But now I get to deal with the blow back of possible identity theft along with an always hated visit to the DMV to replace my car registration – because I was too lazy to lock my doors.
So I recently opened a root shell in interactive mode to discover that I had a ton of error emails. (mutt makes an excellent terminal based email client. sudo apt-get install mutt; mutt)
This post will cover the two issues I discovered with AWStats.
Error while processing /etc/awstats/awstats.conf Error: SiteDomain parameter not defined in your config/domain file. You must edit it for using this version of AWStats. Setup ('/etc/awstats/awstats.conf' file, web server or permissions) may be wrong. Check config file, permissions and AWStats documentation (in 'docs' directory).
This one took a bit of work because I ignored a key piece of information. I first looked in my awstats.schkerke.com.conf file and saw that SiteDomain was clearly defined there, which led me to believe I was fine. However, the first line of the email clearly states the error was while processing the awstats.conf file.
I opened the awstats.conf file and indeed, SiteDomain was not specified. I updated it to match my individual conf file (SiteDomain=”www.schkerke.com”) and reran AWStats. Success.
Create/Update database for config "/etc/awstats/awstats.schkerke.com.conf" by AWStats version 7.2 (build 1.992) From data in log file "/var/log/apache2/access.log"... Error: Couldn't open server log file "/var/log/apache2/access.log" : Permission denied Setup ('/etc/awstats/awstats.schkerke.com.conf' file, web server or permissions) may be wrong. Check config file, permissions and AWStats documentation (in 'docs' directory).
The permissions on the /var/log/apache2/access.log are 640 in Ubuntu; read/write for user, read for group. The files are owned by root and the group adm. Many of the solutions found floating around modify the permissions for these files to be world readable; I didn’t like those. Instead, I chose to add the www-data user to the adm group, granting read permission without the need to change the logrotate process or grant extra permissions to other.
sudo usermod -G adm www-data
A subsequent execution of the command verified that everything was working satisfactorily:
sudo -u www-data /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -update -config=schkerke.com
Now I should be able to avoid an email every five minutes complaining about misconfiguration.
NetHogs. From the website, “NetHogs is a small ‘net top’ tool. Instead of breaking the traffic down per protocol or per subnet, like most tools do, it groups bandwidth by process. NetHogs does not rely on a special kernel module to be loaded. If there’s suddenly a lot of network traffic, you can fire up NetHogs and immediately see which PID is causing this. This makes it easy to indentify programs that have gone wild and are suddenly taking up your bandwidth.
Since NetHogs heavily relies on /proc, it currently runs on Linux only.”
PlexWatch. From the website, “Notify and log watched content on a Plex Media Server.” This utility is infinitely more useful if you’ve actually set your family up with their own MyPlex accounts. I’m a little leery that it requires a cron job every minute; my Linux box is a tad overtaxed as it is. Still, it doesn’t appear to have had a noticeable impact thus far.
PlexWatch is a command line utility. In order to view the results easily, you’ll need PlexWatchWeb. Some of the information presented by PWW is available in the Plex console, but it’s nicely formatted and allows you to track past viewings.
Plexivity is an alternative to the PlexWatch/PlexWatchWeb combination. I chose not to explore its installation as I have enough web servers running on my machine. By this I mean that Plexivity installs itself into an open port, rather than running under Apache.
Until today, I wasn’t aware that API modeling was a thing. I’ve always maintained my documentation either by hand or used the default page generated by a Microsoft web service when visited by a browser. For my purposes, WSDL has never failed to suffice.
Still, I try to extend my horizons when I can and so I looked into the tooling available to help with web API documentation. The following tools only support REST APIs and are intended to be human readable but machine consumable.
First up is Swagger. Swagger has a code editor to create the markup in YAML, a code generation utility for accessing a Swagger compliant web API (generation requires Java 7 and and Apache maven), and a UI for you to use when you’ve successfully completed your Swagger specification. The official Swagger specification can be found on github, and this is all licensed under an Apache 2.0 license.
API Blueprint again uses its own definition language.
What API Blueprint seems to lack are comprehensive code generators to pull a definition into a project. Drafter, the official parser and lint tool, only supports bindings in Node.js, Ruby, .NET, C, and C++.
API Blueprint is licensed under an MIT License.
Seriously, they have so many projects I decided to finish this article rather than peruse them all.
If you install the previously linked version of Visual Studio Code, you’ll find an option has been added to your context menu in Windows Explorer called “Ticino.” This option opens the file for editing in Visual Studio Code. (It’s also a river and canton in Switzerland.)
Unfortunately, the context menu item is not removed when you uninstall Code. (I, for instance, didn’t need both Visual Studio Code and Visual Studio 2015.) To remove it requires some registry hacking.
Remove the following keys:
No need to reboot. The context menu changes should be immediately apparent.
Firefox 38 was released which adds support for DRMed HTML5 video. This support is via an interface to a plugin, Adobe Content Decryption Module (CDM). Such integration is sand boxed and removable, or you can download Firefox 38 without the plugin entirely. Because of its proprietary nature, the plugin is not available on OS X, Linux (i686/x64), Windows XP, 64 bit versions, or Android version of Firefox. Release notes are available for the desktop edition and the Android edition.
A new version of the Developer Assistant was released by Microsoft this past week.
The program was not found to be unconstitutional. It was found to be unauthorized; specifically, that Section 215 of the Patriot Act did not warrant the massive collection of metadata that the NSA has so vehemently defended. (Also of import is that the Court found that being the subject of said surveillance was enough to warrant standing.)