Jim Burnett Logo

Jim Burnett Twitter Jim Burnett Google Plus Jim Burnett Pinterest

Welcome

Hello and welcome to my blog and website.

I offer a variety of WordPress services including WordPress hosting, programming, plugin development, WordPress security, and blog restoration.

Feel free to contact me at jimburnettva@gmail.com.


Get audio and video format data with ffprobe.

The ffprobe utility program is part of the ffmpeg project. You can download and compile this tool or install it with your Linux distribution’s package manager. Once installed you can use the -show_formation option to get all the nitty gritty details about audio and video files.

buckshaut:~$ ffprobe -show_format orig.aac 
ffprobe version 2.4.2 Copyright (c) 2007-2014 the FFmpeg developers
  built on Oct  6 2014 11:31:35 with gcc 4.8 (Ubuntu 4.8.2-19ubuntu1)
  configuration: --disable-yasm
  libavutil      54.  7.100 / 54.  7.100
  libavcodec     56.  1.100 / 56.  1.100
  libavformat    56.  4.101 / 56.  4.101
  libavdevice    56.  0.100 / 56.  0.100
  libavfilter     5.  1.100 /  5.  1.100
  libswscale      3.  0.100 /  3.  0.100
  libswresample   1.  1.100 /  1.  1.100
[aac @ 0x2110020] Estimating duration from bitrate, this may be inaccurate
Input #0, aac, from 'orig.aac':
  Duration: 00:00:11.01, bitrate: 129 kb/s
    Stream #0:0: Audio: aac, 48000 Hz, mono, fltp, 129 kb/s
[FORMAT]
filename=orig.aac
nb_streams=1
nb_programs=0
format_name=aac
format_long_name=raw ADTS AAC (Advanced Audio Coding)
start_time=N/A
duration=11.008740
size=178548
bit_rate=129749
probe_score=51
[/FORMAT]

Windows 10 Screenshots. Holy crap there’s a start menu!

Today I install the Windows 10 preview and took a few screenshots. It’s getting really anoying that Microsoft is requiring and outlook.com or hotmail.com email address to sign into crap. Why can’t I just use the email address I already have?

windows-10-1

ZOMG IT’s A START MENU!!!
windows10-2

windows-10-4

WTF I have to have an outlook or hotmail account to use anything? Figures.

windows-10-5


Corsair 750M Modular PSU Review.

I recently purchased this Corsair 750M power supply unit to go with my semi-budget gaming rig. Like I said in my Corsair Carbide Case Review, I’ve always purchased case combos which always included a power supply. In the end, I’ve always ended up replacing that power supply so this time around I just went ahead and purchased a dedicated PSU.

The big thing I love about this PSU is the modular design. If you can, try to get a modular power supply. It keeps all the extra cables away and keeps thing a little more organized in your case.

750 watts is plenty for most non dual video card setups but if you run AMD FX series CPU’s you may want to consider going just a little bigger. Remember, AMD CPU’s tend to use a lot more electricity.


Corsair Carbide Series Air 540 Review.

If you are in the market for building a new gaming computer you should look into the Corsair Carbide Series cube cases. The case is awesome and offers a huge range of features for a reasonable cost. This is not a budget case but will also not break the wallet. If you’re looking for a case to last you a long time you should check this one out.

I purchased this case to use for my new gaming PC. I wanted something big and something that will last a long time. In the past I’ve always purchased those cheap $50 cases with power supplies, not this time. While I wouldn’t say I went “all out” I can honestly say I did better than my average.

Here are some things I really like about this case.

  • Built out of durable materials. This does not feel like a flimbsy cheap case.
  • Comes with three 140mm fans and fittings to use 120mm fans.
  • Liquid cooling ready. You can mount a radiator fan system to the top.
  • Removable grates for painting or customization.
  • Grommet system to hide cables. 
  • Power supply is in a separate compartment from the rest of the system.
  • Hot swappable trays for two 2.5 inch drives. 
  • LED less case except for the power and HDD LED lights. The fans have no bling.
  • All accessories are black. No chrome or plated screws or non-matching items.


/dev/sdx does not have any corresponding BIOS drive.

If you are getting the error “does not have any corresponding BIOS drive” when running a fresh grub-install, you may need to remap your devices. The grub-install command can do this for you.

$ grub-install --recheck /dev/sda

Restarting Simpana CommVault agents from the CLI in Linux.

The CommVault service for starting and stopping the backup client agent in Linux is in the Base0 directory of the CommVault install, usually /opt/simpana. You can restart the Linux backup agent by issues the following commands.

To restart the backup agent.

root@commvault-test:/opt/simpana/Base# ./simpana restart
Stopping Simpana services for Instance001 ...
Cleaning up /opt/simpana/Base/Temp ...
Starting Simpana services for Instance001 ...
root@commvault-test:/opt/simpana/Base#

To stop the backup agent.

root@commvault-test:/opt/simpana/Base# ./simpana stop
Stopping Simpana services for Instance001 ...

To Start the backup agent.

root@commvault-test:/opt/simpana/Base# ./simpana start
Cleaning up /opt/simpana/Base/Temp ...
Starting Simpana services for Instance001 ... 
 
 
USAGE:

simpana -all|-instance <inst_name> [-force] start

Brings up Simpana services on all configured instances(-all).
The "-instance" switch can be used to start services on a
specific instance only. Please read the note at the end about "-vm"
and "-instance" options.

Simpana will refuse to start if it detects partially installed
patches. In such cases you can either install the latest service
pack, or start Simpana with "-force" option and use Simpana Update
to push patches from the CommServe.
 

Well fart in a can I can access my iPhone crap with Xubuntu!

I’ve been working with various Apple devices recently and this morning I noticed two little iPhone icons on my XFCE Xubuntu desktop. I forgot that my Black Widow keyboard has a USB bridge to my PC so when I plugged the iPhone into my keyboard to give it a charge, Xubuntu mounted the iPhone. No fuss, no mess. It just works. I can pull all the documents and photos off the iPhone no sweat.

Well poop on a stick, it works with the iPhone 5s too! Long gone are the days of compiling crap into kernels to get basic stuff working. If it doesn’t work out of the box, I don’t mess with it, but it does work so I will stop crying now.

Oh snap there it is, the iPhone icon for the 5s on my desktop! Yep, I got all access to the files on it! Ok, so I can access iPhone 5s crap. Cool! I’m not sure who I should make out with, the Apple hipsters or the Xubuntu team?


Send logs to multiple Splunk instances and cluster groups.

Using the universal forwarder in Splunk you can send data to multiple Splunk indexers and even a non Splunk indexer such as Graylog2. In the splunk/etc/system/local/outputs.conf file you specify the output groups and their server values. Splunk will send the log information to each of the groups as long as they are listed in defaultGroup under tcpout.

[tcpout]
defaultGroup=splunk_cluster,oldsplunk,graylog

[tcpout:splunk_cluster]
autoLBFrequency=10
server=192.168.1.21:9997,192.168.1.22:9997,192.168.1.23:9997
useACK=true

[tcpout:oldsplunk]
server=10.10.21.15:9997

[tcpout:graylog]
server=192.168.2.20:9997

What this will result in is each log entry being sent to one of the cluster splunk servers in the splunk_cluster group, the oldsplunk group and the graylog group.


Howto create a custom LDAP schema.

This is one way you can create custom LDAP schemas.

What if we want to use LDAP to store custom profile data? Perhaps you have a list of subscribers that have custom attributes tailored for your business. You could track these subscribers (or customers in general) and their special attributes using LDAP.

LDAP is a really cool and very powerful protocol that lets professionals create highly available and very deep, central data structures of information on people, systems or anything else you may need to track or authenticate. LDAP, most notably openLDAP, comes with a standard data structure already in place and ready to be used for central user authentication and personal contact information and I will show you have to create a custom directory for your on specific information.


organizationalUnit

The first thing I like to do when creating a custom LDAP directory is define my own custom organizational unit (OU for short). This can be done by creating an LDIF file.

dn: ou=MyDir,dc=linuxprotocol,dc=com
objectClass: organizationalUnit
ou: MyDir

$ ldapadd -w "password" -v -x -D cn=admin,dc=linuxprotocol,dc=com -f addou.ldif

When you save the file make sure there are no CR LF at the end of the lines or LDAP will complain. Here I am creating an LDIF that will create an “OU” of MyDir. The full distinguished name for this OU will be “ou=MyDir,dc=linuxprotocol,dc=com”. I think of it as a group for group LDAP entries.

Define a custom LDAP Schema

Once we create a custom organizational unit we can create a custom schema for adding custom data. Creating the schema is a little more tricky but once we understand how it works it turns out to be a simple task.

dn: cn=mydir,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: mydir
olcAttributeTypes: ( 2.16.840.1.8213730.3.1.1 NAME 'zname' DESC 'Customer Name' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 2.16.840.1.8213730.3.1.2 NAME 'zaddress' DESC 'Custom Address' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 2.16.840.1.8213730.3.1.3 NAME 'zphone' DESC 'Customer Phone' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 2.16.840.1.8213730.3.1.4 NAME 'zemail' DESC 'Customer Email' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 )
olcAttributeTypes: ( 2.16.840.1.8213730.3.1.5 NAME 'zsub' DESC 'Is Subscriber' EQUALITY booleanMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 SINGLE-VALUE)
olcObjectClasses: ( 2.16.840.1.8213730.3.2.1 NAME 'mydata' DESC 'Subscribe Profile Repository Object' STRUCTURAL MUST ( zname $ zsub ) MAY ( zaddress $ zphone $ zemail))

The above schema looks kind of scary at first. Lots of weird numbers and crap just to define some basic “fields”. AttributeTypes in LDAP is much like a field in a traditional database. The olcAttributeTypes entry is what defines the field and takes a number of options. The above should base saved in a file called schema.ldif.

olcAttributeTypes2.16.840.1.8213730.3.1.1
The first option is the unique identifier for this field. This is unique among ALL LDAP schemas and are defined in RFC specifications. You can, however just make up your own for your own custom instance of LDAP.

NAME ‘zname’
This one is very obvious. It is the name of your attribute.

DESC ‘Customer Name’
This would be a description of the attribute.
 
EQUALITY caseIgnoreMatch 
Defines rules for searching. In this case, we ignore all character cases when searching.

SUBSTR caseIgnoreSubstringsMatch
Ignore all cases for any substrings that are matched.

SYNTAX 1.3.6.1.4.1.1466.115.121.1.15
The syntax for the data being used with the attribute. This is an RFC standard data type. Think of this is an “integer” or “string” or “phone number (xxx-xxx-xxxx)” or some type of format for the attribute. Once defined, only data fitting that format can be added. There is no reason to add your own syntax as there are many already available. In this case, I have defined a basic DirectoryString which can hold any non-encoded data (no UTF8 unicode etc).

olcObjectClasses

I think of the olcObjectClasses as a container for my custom attributes. An “entry” would be considered a collection of one or more attributes that were defined above except my olcOBjectClass defines some rules such as which attributes MUST be present and which MAY be present to create an entry for this object class. In the case above, I a require that at least the zsub and zname be present to create an entry under this class.

The objectClass contains a unique identifier just like an AttributeType, a NAME and a DESC. A list of required and optional attributes follow using the MUST and MAY names.

Once you are done with defining your custom LDAP schema in an LDIF file you can apply your schema to your LDAP instance. This command is run on the LDAP server.

$ ldapadd -Y EXTERNAL -H ldapi:/// -f schema.ldif

Adding Data
Now we just have to add data. Here is an example LDIF file for adding data for the above schema.

dn: zname=Jim,ou=MyDir,dc=LinuxProtocol,dc=com
objectClass: mydata
zname: Jim
zsub: True
zaddress: 1234 Some Street in Virginia
zemail: jim@linuxprotocol.com
zphone: 540-466-4116

Save this into a file called data.ldif and add the entry to our LDAP instance.

$ ldapadd -w "ldappass" -v -x -D cn=admin,dc=LinuxProtocol,dc=com -f data.ldif

And there you have it. Now you can use the ldapsearch command to look up the data using the “MyDir” ou and your distinguished name. Feel free to leave questions and comments below or contact me.


© Copyright 2014 Jim Burnett