Friday, September 23, 2016

Stupid Concatenated SSL .pem Maker

I seem to forget which order concatenated .pem certificates go in. I only do this kind of thing every so often.

The short answer is:

Private key on top.
Certificate from the signing authority in the middle.
Certificate Authority Chain file next.

https://github.com/bradchesney79/make-concatenated-ssl-pem

I have seen people refer to both the Certificate Authority Chain file and the file my script creates as a bundle. That is wrong-- the bundle is all two or three things (sometimes the chain file is optional).

If you want to know more about why and how certificates work, keep reading.

You start by generating a private key, this is a string that can be used mathematically to modify data in a way that it is not easily read by conventional means. This key is generally used to make a certificate signing request (CSR)-- it is a block of text based upon the private key that allows a Certificate Authority to issue an SSL certificate without you giving them your private key.

A Certificate Authority(CA) signs and distributes SSL certificates. SSL certificates are used in a similar manner as a public key and has meta data about your site such as the domain name secured, where the 'owner' of the site says the site is based, what level of 'reversible entropy(chaos)' is used to encrypt the data, what type of encryption to use, and sometimes less commonly used factoids. You will see 2048-bit or SHA256 for current levels and types of encryption for instance.

There is one root Certificate Authority in a chain-- which is conceptually shaped more like a tree in reality. The next top most Certificate Authorities are all verified as trusted by the root Certificate Authority. And layer upon layer so on and so forth so that the demonstration CA "Deering" and CA "Dunkirk" are trusted by CA "Catskills" who in turn is trusted by CA "Bridgeport". CA "Bridgeport" is trusted by none other than the root CA, CA "Alpha".



The Certificate Authority Chain file allows the browser to identify which signing authority said the site in question can be trusted. Due to it being a chain of trust, there may be more than one block. Some CA Chain files have more blocks to facilitate verifying trust for web 'agents' (usually a browser) in case the parent entity issuing the certificate isn't one your browser inherently trusts.

Certificates that are inherently trusted happen because the entities publishing the browser software may decide to include portions of the chain to bypass certain lookups and speed up verification of trust. Say a website is being provided by CA Eastwood. The browser asked Dunkirk about Eastwood, Dunkirk says yes Eastwood is good. Your browser asks Catskills if Dunkirk is trusted, Catskills affirms Dunkirk is trusted. Your browser then asks Bridgeport if Catskills is trusted, which it says Bridgeport is trusted. Finally, your browser asks Alpha if Bridgeport is on the up & up, and it is so your webpage you asked for shows up on the screen instead of an SSL warning screen.

Much of this is silly, the publisher decides Catskills is as far down as it will be asking, instead of going to the Internet and verifying up and down the chain every little detail-- many of the bits and pieces are installed right in the browser reduces a 5 entity request process by three requests, lessening load times and network traffic.

On a sort of related note, these preinstalled certifications are a good reason to keep your browser updated. Changes in which certs are sanctioned for good or bad happen with browser application updates.

And at a high level, that is how it works.

Protip for getting to the bottom. After installing the browser-- you can install the certificates your favorite sites use with the publisher installed certs and it can help load times-- more for smaller sites that may be paying bottom dollar for SSL certificates from a CA in the nosebleed seats of the chain of trust.

Tuesday, July 12, 2016

Fun Stuff with MySQL and Forks Giving Analyse() a Whirl

Go ahead, try it on your tables...

mysql> select * from users procedure ANALYSE();

Yeah, it's neat. Tells you all kinds of stuff like what the optimal column data types or lengths might be. Curious about what the longest length value is for a particular column in a table-- this "procedure ANALYSE()" will tell you.

Thursday, June 16, 2016

Docker Push Trials and Tribulations...

So, we've got a little bit of an *buntu, docker, & dockerhub SNAFU.

Cannot push to my little corner of the default and standard repo. I kept seeing docker.io when I was hoping to see hub.docker.com . I mean that is how the URL works for github why wouldn't dockerhub work the same way? Right? Wrong.

So, below is the problem:

[brad@T540p testContainer]$ ls
Dockerfile
[brad@T540p testContainer]$ docker build -t bradchesney79/test:latest .
Sending build context to Docker daemon 2.048 kB
Step 1 : FROM bradchesney79/ubuntu:20160615
 ---> 9cde4627020a
Step 2 : MAINTAINER Brad Chesney <bradchesney79@gmail.com>
 ---> Running in aa3bc6c8be24
 ---> 2a8f3a7e4d36
Removing intermediate container aa3bc6c8be24
Step 3 : RUN apt-get -y update && apt-get -y upgrade
 ---> Running in 39c0d05faae7
Hit:1 http://archive.ubuntu.com/ubuntu xenial InRelease
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [94.5 kB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-security InRelease [94.5 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main Sources [84.3 kB]
Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages [268 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/universe amd64 Packages [117 kB]
Fetched 659 kB in 1s (586 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
Calculating upgrade...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
 ---> c97c8d3d88be
Removing intermediate container 39c0d05faae7
Successfully built c97c8d3d88be
[brad@T540p testContainer]$ docker login -u bradchesney79 -p password hub.docker.com && docker push bradchesney79/test:latest
Login Succeeded
The push refers to a repository [docker.io/bradchesney79/test]
bcf9ff8e307f: Preparing
75ea94f4fa07: Preparing
3c584ff3f03d: Preparing
5f70bf18a086: Preparing
737f40e80b7f: Preparing
82b57dbc5385: Waiting
19429b698a22: Waiting
9436069b92a3: Waiting
unauthorized: authentication required



The first part of last command was the problem. Needs --email or -e as part of the login credentials as shown below:


[brad@T540p testContainer]$ docker login -u bradchesney79 -e bradchesney79@gmail.com -p password hub.docker.com && docker push bradchesney79/test:latest
Warning: '-e' is deprecated, it will be removed soon. See usage.
Login Succeeded
The push refers to a repository [docker.io/bradchesney79/test]
bcf9ff8e307f: Pushed
75ea94f4fa07: Pushed
3c584ff3f03d: Pushed
5f70bf18a086: Pushed
737f40e80b7f: Pushed
82b57dbc5385: Pushed
19429b698a22: Pushed
9436069b92a3: Pushed
latest: digest: sha256:4f3069d3833c4519f5aa0fc5b805bde9963c705ef8c66aa1e472f451053f4bd9 size: 1985


Note the deprecated -e flag... fun stuffs. I wonder what I am supposed to use instead when -e stops working?

Wednesday, April 13, 2016

Quick Login Woes

So, off the top of my head I had a slower than I would like login to three sites today.

I don't mean to say they are bad sites or whatever. What I do mean to say is that it would be nice to be able to log in from the initial landing page.

The three I will name and the different ways they could be more efficient to use:

gMail

Come on Google, I get that allowing me to fill in my email or account name, clicking, having the account textbox fade out, the password textbox fade in, and then letting me give my password before submitting is nice, smooth, and fancy. Well done for the goals attempted.

But, I'd rather both textboxes and the submit button be available right on the index page.

Funimation

I don't want to dump on this company, they have provided me much entertainment for the very reasonable price of $8 a month. However, my first visit is redirected to http://www.funimation.com/welcome which has a login link. At least when you click that link from the welcome page, the login fields are showing by default at http://www.funimation.com/home. I want them to know that improvement is noticed and appreciated as formerly that was not the case.

But, I'd rather both textboxes and the submit button be available right on the index page.

Evernote

Again, well done for their purposeful execution of the designed functionality. But, after I land on the index page I have to click, then I can log in. This one is the most frustrating as I use this site so often. Aside from the initial unnecessary, annoying click, I like using it and it is very helpful in my day to day.

But, I'd rather both textboxes and the submit button be available right on the index page.

I would love to hear why these designs are unavoidable and not any excuses about brute force bots, which won't have any trouble navigating to the Step 2 where logging in happens.

Sunday, March 6, 2016

Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file)

So, I was getting an error when updating due to my laptop automatically wanting to install the 32-bit Chrome browser package from the Google deb repository.

The error verbatim:
Failed to fetch http://dl.google.com/linux/chrome/deb/dists/stable/Release  Unable to find expected entry 'main/binary-i386/Packages' in Release file (Wrong sources.list entry or malformed file)

The solution is to specify you want the package for 64 bit architecture in your sources. You can do it in your /etc/apt/sources.list or via files within /etc/apt/sources.list.d/ (which is where Google installs its PPA for you).

Notice the architecture specification in the deb PPA line:
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

This is my whole sources.list file with the exception of the ubuntu make for installing android studio-- because why not:

#------------------------------------------------------------------------------#
#                            OFFICIAL UBUNTU REPOS                             #
#------------------------------------------------------------------------------#


###### Ubuntu Main Repos
deb http://us.archive.ubuntu.com/ubuntu/ wily main restricted universe multiverse

###### Ubuntu Update Repos
deb http://us.archive.ubuntu.com/ubuntu/ wily-security main restricted universe multiverse
deb http://us.archive.ubuntu.com/ubuntu/ wily-updates main restricted universe multiverse
deb http://us.archive.ubuntu.com/ubuntu/ wily-backports main restricted universe multiverse

###### Ubuntu Partner Repo
deb http://archive.canonical.com/ubuntu wily partner

#------------------------------------------------------------------------------#
#                           UNOFFICIAL UBUNTU REPOS                            #
#------------------------------------------------------------------------------#


###### 3rd Party Binary Repos

#### Gimp PPA - https://launchpad.net/~otto-kesselgulasch/+archive/gimp
## Run this command: sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 614C4B38
deb http://ppa.launchpad.net/otto-kesselgulasch/gimp/ubuntu wily main

#### Google Chrome Browser - http://www.google.com/linuxrepositories/
## Run this command: wget -q https://dl-ssl.google.com/linux/linux_signing_key.pub -O- | sudo apt-key add -
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

#### Kubuntu Backports PPA - https://edge.launchpad.net/~kubuntu-ppa/+archive/backports
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8AC93F7A
deb http://ppa.launchpad.net/kubuntu-ppa/backports/ubuntu wily main

#### LibreOffice PPA - http://www.documentfoundation.org/download/
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1378B444
deb http://ppa.launchpad.net/libreoffice/ppa/ubuntu wily main

#### Opera - http://www.opera.com/
## Run this command: sudo wget -O - http://deb.opera.com/archive.key | sudo apt-key add -
deb http://deb.opera.com/opera/ stable non-free

#### Oracle Java (JDK) Installer PPA - http://www.webupd8.org/2012/01/install-oracle-java-jdk-7-in-ubuntu-via.html
## Run this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys EEA14886
deb http://ppa.launchpad.net/webupd8team/java/ubuntu wily main

#### VirtualBox - http://www.virtualbox.org
## Run this command: wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add -
deb http://download.virtualbox.org/virtualbox/debian wily contrib

#### Linode CLI
## Run this command: wget -O- https://apt.linode.com/linode.gpg | sudo apt-key add -
deb http://apt.linode.com/ stable main

Friday, February 5, 2016

Getting basic relevant Macbook specs from the command line

So, this is a command to show you the specs, then dump the information on your Desktop in an XML file. Yaaay!

system_profiler SPHardwareDataType SPSerialATADataType SPAirPortDataType SPDisplaysDataType -detailLevel mini && system_profiler SPHardwareDataType SPSerialATADataType SPAirPortDataType SPDisplaysDataType -detailLevel mini -xml > "$HOME/Desktop/$USER-system-profile.xml"

"Man, you could do it with this one super obscure convention you would hardly ever use without the &&..."
'Yeah, probably.'

Sunday, January 31, 2016

Lenovo s10-3 Netflix fix

So, when you unload video from the Intel Atom N45x series processor, thing get better six ways of Sunday. But, then you've filled up your regular mini PCIe slot and you have to go with USB Wifi some way or another. They make USB Wifi modules that use the USB wiring in the other little mini PCIe slot (since there is no PCIe connection in the extra slot).

The parts are linked below:

Broadcom BCM70015 Crystal HD PCI Express Mini Card Video/Audio Hardware DecoderHardware Decoder for Apple TV 1080p(TBS7015)
A discrete mini PCIE video card

SparkLAN WPER-172GN / 802.11nbg 1Tx2R MIMO / USB Half-Size MiniCard (Ralink RT5390U)
A 802.11n/g/b/a Wifi card with a mini PCIe connection-- but wired for USB

People also have reported luck with the Qcom Q802XKG.
Qcom QCM-Q802XKG Wireless WiFi WLAN Mini PCI-E Card 54Mbps 802.11b/g 60-6229-1A
Qcom QCM-Q802XKG

Saturday, August 1, 2015

Beast on a Budget Section 1: Parts & Costs

So, I spent some of today posting the initial thread and a breakdown of the list prices, the shipping costs, the handling costs and the total costs for each.


Asrock Q2900M Motherboard
105.74P + 2.46S + 36.92H = 145.12
https://item.taobao.com/item.htm?id=35032832716

8GB DDR3 PC3-10600 1333MHz
39.99P + 0S + 0H = 39.99
http://www.amazon.com/gp/product/B0075U12H8

12V 6A 72W AC Adapter Power Supply
7.22P + 0S + 0H = 7.22
http://www.amazon.com/gp/product/B000VE7GQQ

12V DC 160W Pico PSU
18.98P + 0S + 0H = 18.98
http://www.amazon.com/gp/product/B00HLCT9HK

Intel PRO/1000 VT Quad Port Ethernet Card
29.99P + 0S + 0H = 29.99
http://www.ebay.com/itm/191634249417

2 (Two) Mini PCIe to PCIe Adapter with Three Antennas
10.23P + 1.70S + 0H = 11.93
http://www.dx.com/p/mini-pci-e-to-pci-e-pci-express-adapter-with-three-antennas-39267

Bplus MP2W-RPSMA : Full & Half mPCIe / minicard to PCIe Adapter with USB2.0 interface & 3pcs RP-SMA connectors for Wi-Fi & Bluetooth
29.99P + 0S + 0H = 29.99
https://www.amazon.com/gp/product/B00LBYVZZS
*This adapter works with the Atheros QCA9880 XB140 reference board based boards-- like the Compex WLE900VX, SparkLAN WPEA-352ACN, and AIRETOS AEX-QCA9880-NX --which do master mode among other state of the art 802.11ac things. Many other adapters do not.

Compex WLE900VX 802.11ac 2.4/5GHz Mini PCIe WiFi Card
55.00P + 0S + 0H = 55.00
http://www.ebay.com/itm/171865971474

Atheros AR5BXB112 802.11n 2.4/5GHz Mini PCIe WiFi Card
17.99P + 0S + 0H = 17.99
http://www.amazon.com/gp/product/B00881PHO2

MyDigitalSSD 64GB (60GB) 50mm Bullet Proof 4 BP4 50mm mSATA Solid State Drive SSD SATA III 6G - MDMS-BP4-060
20.00P + 0S + 0H
http://www.amazon.com/MyDigitalSSD-Bullet-Proof-mSATA-Solid/dp/B00B3X72TU

Syba mSATA SSD to 2.5-Inch SATA Adapter (SY-ADA40050)
10.99P + 0S + 0H
http://www.amazon.com/Syba-mSATA-2-5-Inch-Adapter-SY-ADA40050/dp/B007PPZ2I8

Grand Total 404.41

Getting ready to build the Q2900M beast router on a budget.

So, my faithful router is aging, badly. Time to let it "go to the farm" to live out it's days in peace. I've looked at what I can get out there to replace it. There is a lot of really neat networking tech out there these days, some more friendly to turbocharged 3rd-party firmware and some not.

A lot of really expensive hardware too. The most coherent and simple to set up thing to do would be to get a bunch of things that do one thing well-- as in one machine to do the thinking, a good switch, two access points. That was a pricey option and required several things.

I am willing to forgo some coherence to have it all in one unit that that the manufacturer expected me to load with third-party software. Having it all in one unit also gives me a lot of frugal upgrade options. Additionally, it is the least expensive way to meet all the criteria I have for such a device-- which has been missing in my current setup.

Having done a lot of reading, the software is the sticky part. Some of it is really great, but until you try it first hand and it works as expected then also is nice to use.

It was neat seeing what I had documented get shared so much when I wrote about my OpenSolaris/OpenIndiana ZFS file server build several years ago and I was kind of hoping to do the same with this-- maybe trying to do a better job this time with your help. Starting with that I have almost $400 of equipment to play with in the immediate future. What would you like to see me try? Are there any tests you would like to see?

I tried to not be ounce wise and pound foolish. What would it cost for me to build a router that I love? Turns out possibly $400 if everything works out as expected.

Yesterday I booted the motherboard for the first time.

I'm still waiting on the 802.11n package and a mini-PCIe to PCIe card converter (with antennae!) from dx.com. So, no wireless, but getting my USB flash drives loaded up with the installers will take some time and then there's the sitting down and doing it... They will be here in plenty of time.

Starting the documentation now.

The following sections are what I think I should compile to document this. Stay tuned while I write them. I have my ears open if you have any input.

5 Sections

  • -Parts (Where sourced from, part, shipping/handling, & total cost when I can make a line item break down).
  • -OpenWRT - Setup Notes & Bash Script (Not even sure if OpenWRT has bash, read ash through busybox-- I'll find out as I go.)
  • -pfSense - Setup Notes & Bash Script
  • -IPFire - Setup Notes & Bash Script
  • -My conclusion and thoughts, metrics and comparisons; the opinion part based on the metrics and a few days of use.

The build is in the context of the following reqs:

  • Use of Multi-Core 64-bit Processing. (Fanless Intel Quad Core J2900)
  • Use of DDR-3... or better. (8GB)
  • Use of Gigabit LAN Ports. (5, one onboard, four via Intel PRO/1000 VT)
  • Use of 802.11b/g/n/ac. (one 3x3 MIMO 802.11ac with AP Mode, one 3x3 MIMO 802.11n with AP Mode)
  • Use of USB for printing. (USB 3.0 -- and a paralell port...)
  • Use of mass storage possibly by PCI-E, SATA, MSATA, and/or SD-Card(micro || full-size). (two SATA2 ports)
  • Use of USB for mass storage. (two at the back plate, three via motherboard headers)
  • Low voltage and low power consumption. (72 W)

To the following ends:

I stream a lot of video via my Roku, the kids watch a lot of Netflix in the morning, I have a half dozen hardwired machines in my office that make fair use of gigabit speed file transfers, the router & two other machines use DDNS, SSH via NAT happens, a couple IP cameras store images & send MJPEG streams, an old HP LaserJet USB->Paralell network prints, and more and more wireless devices as time creeps on over g & n wireless adapters.


I am ~70% happy with my current setup. Preferably, I'd like to run a little web-server & file server right from my firewall/router as well as have more SSIDs. This is the missing 30%. I'm already serving a site from a separate machine-- but seriously, the traffic is so low that I feel guilty for burning the watts. And I also wouldn't even consider giving up my dedicated file server, but somewhere to quickly stash files I don't have too much care for would be nice.

I have my Roku on the same wireless as my own personal botnet I play with, I'd like separate APs so that my internal traffic doesn't affect my kid watching Netflix in the morning when I do need the TV to be a babysitter (I know, I know, just turn off the machines talking to each other... but, I don't).

I'll keep my eye on the reddit posts, hope to hear some words of wisdom or things I should do some heavy reading about that will make my task easier. Thanks.

Wednesday, July 29, 2015

My Favorite 3rd Level Subdomains


alpha
app
admin
api
beta
blog
dev
feed
files
forum
ftp
help
image
imap
img
info
lists
live
mail
media
mobile
mysql
news
photos
pic
pop
search
secure
smtp
status
store
support
videos
vpn
webmail
wiki
www

Friday, April 24, 2015

Not committing merge; use 'git commit' to complete the merge.

So, say you are leaving your current development branch in git to a standard base branch of your repository-- you checkout the branch in your local environment then you pull from the remote and lo and behold there is a merge conflict.

Not committing merge; use 'git commit' to complete the merge.

What I usually want to do is to:
git checkout remote/branch local/path/to/file

Here's to no more 'github shenanigans commit messages...'

Wednesday, April 22, 2015

How to make a SHA-2 2048 bit CSR for a SSL Certificate with OpenSSL

Long time, no write...

SHA-2 2048 OpenSSL command to generate a Certificate Signing Request(CSR) and Private Key (PK) -- which you need to get a SSL Certificate.

{REPLACE THESE VALUES}

openssl req -new -newkey rsa:2048 -sha256 -nodes -out {DOMAIN.TLD}.rsa.csr -keyout DOMAIN.TLD}.rsa.pkey -subj "/C={US}/ST={STATE||PROVENCE}/L={CITY}/O={COMPANY-NAME}/CN={DOMAIN.TLD}


The code you run will likely not have any curly braces, {}. For instance, for my fictional company Example Inc. would make a certificate signing request as such:

openssl req -new -newkey rsa:2048 -sha256 -nodes -out example.com.rsa.csr -keyout example.com.rsa.pkey -subj "/C=US/ST=OHIO/L=EASTLAKE/O=EXAMPLE/OU=IT/CN=EXAMPLE.COM"

The Country is US, the STate is OHIO, and the City (L) is Eastlake.
The Organization is Example, the Organizational Unit is IT, and the Common Name is EXAMPLE.COM. If you were wondering what the pieces parts in the subject argument meant.

Update for pfx files:

{REPLACE THESE VALUES}

openssl req -days {days to expiration integer} -x509 -newkey rsa:2048 -sha256 -nodes  -out localhost.rsa.crt -keyout localhost.rsa.pkey -subj "/C=US/ST=OHIO/L=EASTLAKE/O=EXAMPLE/OU=IT/CN=EXAMPLE.COM" \
&& openssl pkcs12 -export -out localhost.rsa.pfx -inkey localhost.rsa.pkey -in localhost.rsa.crt -password pass:{password}

Thursday, August 7, 2014

One Way to Find Qualified Candidates



This is about data mining information about students, be patient I will get to my point.




I was talking with Dan, a friend of mine that works as a recruiter. He was complaining about the quality of applications he gets-- if he gets them.

Between the client asking for everything under the sun rather than the top five skills required and the applicant doing a poor job presenting himself when faced with the opportunity to just echo back the job requirements in the form of work history & formal training; he is in a tough place finding candidates to put forward even though in his gut he could match four to five satisfactory candidates to each of the jobs in his pool of opportunities.

I've had a little over a week to think about his dilemma. The good news is that I have had a decent related idea, the bad news is that Dan's employer may be too small potatoes to take advantage of it.

I've recently enrolled in an introductory Linux edX course over at edX.org. It got me thinking about how the Linux Foundation is sponsoring the largest free Linux educational offering for people willing to take the time to consume the content EVER.

The Linux Foundation via edX now has access to a wealth of data about all the people registered for the course-- their contact information and, if they wished, a lot of telling information about the student.

Some of the information may indicate whether they would be a good asset to an employer.

What if larger organizations put out quality, meaningful educational opportunities related to the technologies they wanted to gain some popularity? What is win-win about it is that they could create a larger audience and demand for their technology while also having the opportunity to find candidates to fill positions-- that specifically have studied the critical information from the curriculum they built. Allow people to gain skills and then have the chance to cherry pick the leaders of the pack-- assuming they warm to the idea of being employed by the sponsor of the class. Worst case scenario, it could still be called contributions to the greater good, making the world a better place through quality self improvement opportunities.

Let's do something sloppy and crazy-- possibly meaningless. Let's just search for IBM, Oracle, & SAP on dice. These are my raw quantity of otherwise unfiltered results for the respective searches:

3,498 - IBM
13,479 - Oracle
5,278 - SAP

So, clearly HR at these companies could use some help.

I am a great employee. Good luck getting me to spend 2 hours on a 'simple' application when I am already well employed. But, I know I would spend several hours across a few weeks learning new skills or even sharpening existing skills in a course put together by the right people. The Linux Foundation making a Linux course available has garnered a whole lot of attention.

Friday, July 25, 2014

Unknown class 'foo' -- Geppetto not recognizing dependencies in your puppet code?

Check your Modulefile. Update your dependencies there via the tab on the bottom and verify the change in your metadata.json .

Poof, your puppet include finally will be recognized as a valid class that was found and when someone installs your script, then it will dig up the dependencies if necessary.

Saturday, June 28, 2014

rebeccapurple, digging into mozilla firefox

Why? Digital-remembrance for a life taken too early and in support of a man that unbenknownst to me makes my life better and easier. But, also that we share friends, who tapped me. And I got on board.

My first two files ready for committing:

./aurora/content/base/test/test_html_colors_standards.html

./aurora/content/base/test/test_html_colors_quirks.html

However, I have no commit access to the mozilla firefox repos.

(Womp womp womp woaoamp. Play the sad music.)

The rest need tweaked still. Currently mulling over whether Mozilla Bug Report 456826 applies to my source editing task.

Friday, April 25, 2014

HP LaserJet 2015 Ethernet Conversion

So, I ordered a HP LaserJet 2015dn from ebay. The seller wasn't quite the worst at packing packages. (A contender, a close second for sure.) That in conjunction with the shipping company obviously using it for a few frames of bowling practice left it in the condition I received it in.

I obviously didn't learn anything from the encounter. After I got all my money back free and clear, I go ahead and order a second printer from the same seller. (Say it ain't so.) The second printer was a 2015d, i.e., no networking feature.

Feast your eyes on the photos below. The only changes are the stickers, a little removable plastic cover where the Ethernet plug gains entry to the device, and the formatter board. That last one being most important detail.

To save you a minute or two, pry the side panel off from the rear along the vertical edge. You'll need a #2 Phillips from there.




Wednesday, April 9, 2014

Spritz Reading

I read about Spritz a short while ago. And I thought it was really cool. The problem is that Spritz Inc., the innovators behind Spritz weren't going to provide an implementation or SDK or whatever that I could use in the timeframe I was interested in. I assume that their implementation is better, so definitely check on them as they said implementations are coming and they will possibly be free to use.

In the mean time, I have made a JavaScript implementation that you are free to use or modify under the MIT license. I will pencil in that it is the "don't ask me" license as well. You can use it more or less in any way you see fit if you don't ask me anything about it. My slowly evolving code will be posted to Github. I also have it on CodePen and jsFiddle.

Also, for the Android crowd, be sure to check out Glance. It is a neat project which also has it's source code that can be found on Github

Thursday, April 25, 2013

Census data for Zip Code Geolocation - MySQL inserts

I have extracted the data built by the US Census Bureau in regards to the general geolocation of a zipcode. This information is not exact-- but is exactly 'good enough for government work'.

MySQL-inserts-for-census-zip-code-geolocation on GitHub

Wednesday, April 10, 2013

Sorting columns on Netflix

So, it is 2013 and jQuery makes sorting elements in an HTML table a trivial matter (jQuery sorting examples, tutorials, etc.). Add to that the fact Netflix is already using jQuery on their site and, furthermore, the specific page I am referring to (Netflix Instant Queue).

My instant queue, why are the columns not sortable?


The eclectic viewing selections on my Logitech Revue aside, you can see my cursor on 'Star Ranking' in the image below. That is the text selection cursor indicating that it does not have the interactivity I think should be there-- i.e. sorting on a column.


Netflix Screen Capture Showing Unsortability

Monday, January 14, 2013

Change Permissions by File Type

I recently have had to figure out how to allow others, the slightly privileged masses, to traverse my directory structure even if they cannot see anything or do anything with most of it.

find /directory -type d -exec chmod 771 {} \;


Where the /directory is where you want your search to start.

Followers