Skip to main content

Posts

How do I dual-boot Ubuntu 18.04 on a 2011 Mac Mini?

Machine Specs: Mac Mini (Mid 2011), Macmini5,2 Core i7 16 GB RAM (2x8 GB) AMD Radeon HD 6630M 256MB 27-inch Apple Thunderbolt Display 512 GB SSD Running macOS 10.13 High Sierra Caution: This process can result in data loss. If you have personal data on the Mac Mini before starting, back it up first. Twice! (One is none. Two is one. ~ U.S. Navy Seal saying).  Also, mistyping in the parts of this process may brick your Mac Mini. You have been warned. If in doubt, stop working and do research on Google until you understand what's going on in the step. If you find an error, please leave a comment. I will update. Note: This is process I figured out in lieu of booting the Ubuntu install with EFI via refind. Via the refind boot method, I would constantly get: 10:39:07 kernel: Couldn't get size: 0x800000000000000e 10:39:07 kernel: MODSIGN: Couldn't get UEFI db list 10:39:07 kernel: Couldn't get size: 0x800000000000000e The error seems to be relate...

Two Trends Worth Mentioning...

I usually shy away from predictions, but I think two new trends I am seeing more of recently are worth mentioning: post-materialism culture and self-navigating quadro/multi-copters . Post-materialism Since about three or four years ago, I've been seeing a slowly strengthening trickle of articles and personal stories on topics like the "tyranny of stuff" and "paying for experiences instead of things". The first well constructed expression of this trend I read was Bruce Sterling's "Last Viridian Note". While such a change in lifestyle in the past was driven by more external reasoning like "save the earth", this discourse has a more personal flavor to it. Up until the Great Recession (and a little after), there was in the U.S.A., and certain other emerging and developed economies, a relentless cultural drive to have luxurious things and, often, more than one of a particular luxurious thing. Doing so signaled high status. Today, howev...

Lean - A Primer

A Brief Primer on LEAN © 2014, Adam S. Keck Based on: Chasing The Rabbit by Steven Spear Toyota Production System: Beyond Large-Scale Production by Taiichi Ohno Understanding A3 Thinking: A Critical Component of Toyota's PDCA Management System by Durward K. Sobek II and Art Smalley Four Capabilities of Accelerating organizations Specify precise approach to every task with built-in tests to detect failure and stop on error. Swarm to solve problems – immediate RCA. Share new knowledge throughout organization. Leaders lead by developing above capabilities in every single employee. Work Flow and System Design LEAN is a framework for successfully designing complex systems and work flows. A system is a collection of related work flows. A company can be viewed as a single complex system that  provides value to customers in return for money. LEAN is a way of working: Every employee uses LEAN work flow every day to both follow and improve the processes for which ...

How to play a video on a Raspberry Pi Desktop by double-clicking on a file...

The article describes how to open video, audio, and other media files in the Raspberry Pi desktop (the LXDE file manager) using the GPU-based player program. Does double-clicking on a video file in Raspbian result in slow blocky playback in SMPlayer and VLC on your Raspberry Pi? The short answer is that those video players will not work because at this time (Nov. 2013), they do not make use of the GPU on the Raspberry Pi. You need to use the hardware accelerated player, omxplayer, that is used in XBMC Live and OpenELEC.  The problem is that omxplayer is a command line player that is designed to be embedded in the XBMC based distributions.  I present below a way to make it play videos, if you double-click them in the Raspbian Desktop. Others have presented this method, but I've added a little bit of abstraction to make management easier. To start, open LXTerminal and the follow the process below. Step One - Get rid of the CPU-based media players sudo aptitu...

PowerShell One-Liners

Introduction PowerShell is Microsoft's shell for their product lines. It's now on version 3.0. If you miss the power of the command line while using Windows on either your laptop or servers, PowerShell provides that power. Important concepts: Almost all aspects of the Microsoft ecosystem are objects within an overarching structure. You query and manipulate this structure and its objects with PowerShell. This includes all aspects of SharePoint, Active Directory, and Exchange. Other companies, like VMware (see below) have also written PowerShell modules. This "object nature" means that PowerShell pipes pass objects and properties, not just text.  Variables store data-structures of objects.  One-liners Note: Unwrap the code lines before you use them. Get Help Get the usage of the command "Select-Object": Get-Help Select-Object Built-in examples for the command "Select-Object": Get-Help Select-Object -exam...

Programatically named variables in bash.

Suppose you wanted to do the following in bash: for label in a b c d e f do variable_${label}=${label} done This has the intended result of setting a series of variables: variable_a variable_b variable_c variable_d variable_e variable_f But if what if you want to dereference them programatically? for label in a b c d e f do echo ${variable_${label}} done is not acceptable bash syntax. But there is a way... We can abuse export and env . We set them with: for label in a b c d e f do export variable_${label}=${label} done We can then programmatically dereference the variables by searching for them in the output of env and using awk to get their value. for label in a b c d e f do echo "`env | grep variable_${label} | awk -F= '{print $2}'`" done How's that for bash abuse?

Fixing SSH connection problems in EGit in Eclipse

Note: I posted a version of this on Stack Overflow. Errors can occur when there is an underlying SSH authentication issue, like having the wrong public key on the git remote server or if the git remote server changed its SSH host key. Often the an SSH error will appear as: " Invalid remote: origin: Invalid remote: origin" Eclipse will use the .ssh directory you specify in Preferences -> General -> Network Connections -> SSH2 for its ssh configuration. Set it "{your default user directory}.ssh\" . To fix things, first you need to determine which ssh client you are using for Git. This is stored in the GIT_SSH environmental variable. Right-click on "Computer" (Windows 7), then choose Properties -> Advanced System Settings -> Environment Variables. If GIT_SSH contains a path to plink.exe, you are using the PuTTY stack. To get your public key, open PuTTYgen.exe and then load your private key file (*.ppk). The listed public key sho...

Straight to Voicemail, If Unknown - A simple free method for blocking scam calls and robocalls

Problem: How do I block scam calls and robo calls? Premise:  If the call is important, the caller will leave a voicemail. Solution: We put every number we know into our caller ID systems. If a number we do not recognize, or a number that blocks caller ID calls, we always let the call go to voicemail. Callers that really want or need to talk with us will leave a voicemail. If we are not interested, we delete the message. This process initially upset some of our parents, but we have not had to deal with a robo or scam call in some time, since the calling computers almost never leave a voicemail. Our parents are now used it and leave messages. Sometimes, we pick up as soon as they start talking. Our friends mostly communicate via Facebook, internet chat tools, and email these days, so they are used to asynchronous communication and don't mind leaving a message. The political parties and charities we support do leave messages. We call them back to donate or express our s...

A script to split a file tree into separate trees - one per file extension present in the original tree

Purpose Have you ever had a tree of files from which you only needed certain types of file? For example, I had an iTunes library with some Apple files from another iTunes account combined with a large number of MP3s. I wanted to pull out the tree of MP3s only. You can make such a tree by passing a combination of flags to rsync that make it do an exclusive include. How? Pass the following flags to rsync to make it do an exclusive include for files fitting a certain globbing pattern. Fill in for the variables of course, if you want to use this line alone. In particular, this rsync line: rsync -av --include '*/' --include "*.${extension}" --exclude '*' ${source_directory}/ ${top_directory_of_results}/${extension}/ The script: ========================================================== This tool reads a directory of files that have extensions and then copies each type of file to its own tree. The location of each file in the subtree matches that file...

How do I clean up old large files on Linux?

Many people who have run Linux file servers and ftp servers have at some point wanted to free up some space. One good algorithm to do this efficiently is to remove old data starting with the largest files first. So how to generate such a list? One method is to use a " find -exec du " command: find /path/to/full/file/system -type f -mtime +10 -exec du -sk {} \; | sort -n > /var/tmp/list_of_files_older_than_10_days_sorted_by_size Once you have that list, you can selectively delete files from the bottom of it. Note that the list will likely be exponentially sorted. That is, the bottom 10% of the list will take up a huge chunk of the used storage space.

How the find the Active Directory Domain Controllers listed in DNS on Linux...

Assumptions: You have the "host" utility from BIND. You can do a zone transfer from the local DNS server Your Active Directory admins have properly configured DNS for Active Directory If you have the above, use the following command: host -t srv -l your.active.directory.dns.domain | grep _kerberos._tcp.*._sites.dc._msdcs.your.active.directory.dns.domain Replace your.active.directory.dns.domain with your actual AD DNS domain.

On Linux, how do I set the PATH for non-interactive, non-login shells? e.g. for the case of rksh?

Non-interactive, non-login, shells inherit the PATH from the ssh process, so we must set the PATH with ssh. Some shells, like Korn Shell (ksh, rksh, pksh), only parse user environment files in login shells, so there's no way to change the inherited environment in non-interactive, non-login shells. To set the path globally, build a custom ssh with the needed default path. To set the path for a particular user, first configure ssh to use custom environments by enabling "PermitUserEnvironment" in /etc/ssh/sshd_config: PermitUserEnvironment yes Restart sshd Then set the path in that user's authorized_keys file or using ~/.ssh/environment. Note that you need to set all of the important shell variables. The existence of ~/.ssh/environment seems to preclude the setting of default environmental variable values. So, for example, given a location for binaries for rksh (restricted korn shell), /usr/restricted/bin, place the following in ~/.ssh/environment: HOME=/home/u...

Opinion: Should I use Linux, Mac, or Windows?

"A craftswoman never blames her tools." For most, whether or not you can get your work done well on a certain platform is all that matters. To me, the three major operating platforms are tools that all have strengths and weaknesses. In the same way that I wouldn't use my nice chisels to loosen a laptop screw, I wouldn't use a MacBook for writing code for our Linux infrastructure. I am more efficient doing that work on Linux itself. At the same time, I shoot photos and video, and do some writing to take a break from IT. I've tried doing that work using the included tools on all three platforms. I find the Mac platform the most efficient and trouble-free for that work. I can do the work on Linux as well, but Linux has frustrating workflow gaps - especially regarding video. At work, even though we have a heterogenous server environment, we communicate using Microsoft Office, SharePoint, and Lync. My opinion of those tools does not matter. We chose th...

"cmore": Colorized text paging using vim...

Sometimes, I want colorized syntax and nice navigation for paging. We can use vim to provide this service. This assumes your terminal client supports the terminal type "xterm-color". If you need another color terminal type, customize accordingly. Install all of the standard vim packages Add  alias cmore="TERM=xterm-color vim -R -" to your ~/.profile Add the following [1] to your ~/.vimrc syntax on hi Comment ctermfg=Blue guifg=Blue hi String ctermfg=LightRed guifg=LightRed Reload your profile: source ~/.profile Usage: cat some.script.sh | cmore    It's vim in read-only mode, so use :q to quit. [1] I found the default colors to be too dark.

Delete or Change Workplaces and Schools On Facebook Timeline (1/2012 edition)

Have a school or workplace in your Timeline you want to get rid of or change? Here is the method that worked for me. Log into Facebook. Click Profile. On your Timeline, click "Update Info". Under "Work and Education", click the "Edit" button in the upper right hand corner of the section. Each workplace and school will get a box. In the upper right-hand portion of each box, there is an "Edit" link and a small "x". Click the "x" and confirm your choice to delete a workplace or school. Click "Edit" to change the workplace or school.

Getting pictures in focus with a DSLR (digital SLR) in a nutshell.

Higher-end cameras have a number demarcated by the letter "F" that one can set to change the size of the opening (called the iris) that lets light onto the sensor. High numbers make the iris smaller. Optical physics aside, the higher the number, the more of the picture will be in focus and the more light you will need. Likewise, the higher the shutter speed, the more will be frozen in time and the more light you will need as well. So, if you want to capture something that moves fast and have it completely in focus, you need a ton of light, a high F number and a high shutter speed number. Note that a particular lens only supports a particular range of F numbers (called F-stops). You don't have a huge amount of light usually. So you have to find ways to compromise and/or cheat. One way to do this is to use a flash, but that can scare butterflies. Another way is to set the camera to do more processing. This number is demarcated by "ISO". My SLR goes from 200 ISO t...