Debian/Ubuntu system hanging on boot

Some time ago I rebooted my Ubuntu file server, and noticed that it was taking forever to reboot. It’s usually headless, so I hooked up a spare monitor and saw a message that I didn’t expect:

“A start job is running for Create Volatile Files and Directories”

So that’s one I’d never seen before, so went straight to the Googles, and found this lovely explanation:   http://deshack.net/debian-hangs-during-boot/

So it turns out that a bug in “system-config-printer” of all things, causes extremely bloat in /tmp, causing a huge number of files to be created over time, and this essentially puts the system in a hung state.

The fix, as mentioned on the website above, is quite straightforward. Once you boot into single user mode (see the link for details), you can do the following:

rm -rf /tmp
mkdir /tmp
chmod 1777 /tmp

This resolved the issue for me immediately, and hopefully you too!

Frequent Subscriber Wipes

For any of you who are familiar with WordPress, you probably are aware of the regular cleanup that is required to keep a blog healthy. I opened up the ability to allow subscribers, however it’s obvious that most, if not all of them are bots or spam. I will be regularly wiping the users listed as “Subscribers”, but if you are not a bot and actually want to keep a subscription that does not get wiped, please send me a email at admin@thelogicalgeek.com.

 

Trying the Oculus Rift for the First Time

Recently I was given the opportunity to try out a demo with an Oculus Rift headset. I can’t go into details of the demo due to an NDA, but I have to say, that jumped right to the top of the list of things I want to buy. I know several Steam games (of which I own a few) already support it, and I’m sure more will come into line once the gear is available to consumers.

I have no doubt that this will revolutionize the gaming industry. In just a matter of minutes, I felt like I was in the action myself, instead of watching it on a screen.

https://www.oculus.com/en-us/

There has been an announcement of a seemingly related event….

http://variety.com/2016/digital/news/star-wars-virtual-reality-vr-experience-1201730442/

The New Generation of “No Thank”-ers

Changing a bit from usual tech stuff, I have to rant for a bit. My wife and I are raising two children (teen/pre-teen) and trying to teach them the value in being polite. Please, thank you/no thank you., etc. They’re kids, so we don’t grill them about it, but the best way to pass on that behavior is to demonstrate it in front of them.

I wish more parents did that.

I’ve seen countless millennials walk up to a worker (doesn’t matter the place, grocery store, coffee bar, etc.) order something, receive their stuff and just turn and walk away. Perhaps the worker doesn’t think twice about it, but I always use “please” and “thank you”, and I tend to get better, friendlier service. It’s sad that today it’s more common to see a younger person on their phone than actually saying please.

At Target the other day, a woman put all of her items on the checkout belt, was checked out, and left all while on the phone using earbuds (in both ears). As she started to walk away with her cart, she rudely interrupted the cashier who was now talking to me and asked “Did I get a receipt?” The cashier was taken aback and after a brief pause, said “yes”. The woman just turned around and left, still blabbing on her phone. She was so engrossed in her conversation she was not aware that the cashier handed her a receipt (which she took and put in her purse… I even noticed that) and still had no idea what was going on around her.

If my kids had been there, I would have tried to make that a “teachable moment” by demonstrating how ridiculous that was, and that phones and other devices should always come second to a personal interaction, no matter whether it’s the president, or a cashier.

Debugging CSS with Firebug

I’m working on a project involving Django, and I wanted to use Bootstrap 3 to make it look all nice and professional-like. The issue I had was that the jQuery and underlying CSS is so obscure, it wasn’t really worth trying to troubleshoot.

Enter Firebug.

One of my issues was that I wasn’t even sure that my /static/ files (where you store files like CSS and Javascript on a Django Project) wasn’t even configured correctly. I did see in the “CSS” tab of Firebug that it listed my CSS file, so I could tell it was finding it.

The real solution was that the CSS section was throwing a 404 error, as could be seen by clicking on the CSS file on the list.. it said something to this effect:

/my/static/path/bootstrap3js/bootstrap.min.css not found

I instantly new the problem. This line in my settings.py:

# The Bootstrap base URL
'base_url': '/static/bootstrap3',

Should have said this:

# The Bootstrap base URL
'base_url': '/static/bootstrap3/',

(Note the trailing slash). Once updating this, the page (and CSS) loaded perfectly. Even using the native Firefox debugging tools didn’t catch this. I’m definitely a convert now.

G is for Google

In their Official Blog, Google has announced that they will be creating a new parent company called Alphabet, which will be the umbrella company for all of their other pieces, like Google Search, Maps, Glass, etc., rather than all being under one company. Larry Page is moving up to that entity as CEO.

With that move in mind, I couldn’t help myself but to come up with an alphabet of my own… these are either Google products, or pieces/acquisitions of the company..

A is for Alerts
B is for Blogspot
C is for Calendar
D is for Drive
E is for Earth
F is for Flight Search
G is for Glass
H is for Hummingbird
I is for Image Search
J is for Japanese Input
K is for Keep
L is for Listen
M is for Maps
N is for Navigation
O is for OpenSocial
P is for Picasa
Q is for Questions and Answers
R is for Recipe
S is for Search
T is for Translate
U is for University Search
V is for Video
W is for Waze
X is for X (Google X)
Y is for YouTube
Z is for Zagat

Giving It All Up (Well, Most of It)

An extraordinary thing has happened — I am picking up and moving across the country to start a new job. We’re moving from the suburbs around central Ohio, to the area surrounding San Francisco, and we understand the financial implications, and moving to that area means we’ll likely have a much smaller space, so most of our stuff has to go.

I’m a huge George Carlin fan, and he had a bit where he talked about houses, and how they are just a place for your stuff. Items that used to seem precious or important to me are now being recycled, donated, or prepped for a garage sale. This is because I realize I don’t need it anymore, or realize that it will cost me too much money to move it across the country, or in the case of something on paper, that I don’t need to move it. I have this tool, called Evernote, along with a smartphone camera (with the Evernote app) that will allow me to take a picture of something and automatically insert it into Evernote so that it’s stored in the cloud electronically. This is something I’ve been doing quite a bit recently, and I’m realizing that it’s quite possibly one of the most valuable tools I can use, simply because those bits cost no money to store, no money or effort to move, and only require a connection to the internet (which with a phone, is quite ubiquitous nowadays) and I can access my data just about anywhere. It’s really opened my mind to what’s important and what isn’t, and makes it easy to decide whether to keep that note scribbled on that piece of paper… when in doubt, Evernote it and throw it away.

(Disclosure – the above links to Evernote are referral links, so if you sign up, I would appreciate you using those!)

Resolving a Linux hang-on-boot Situation

For several distributions of Linux, including Fedora, Arch, and a couple others (all of which happen to use systemd — hmm…) I would consistently have problems booting. During the startup process, when all of the services are being started, it would always hang at the exact same point: right after the “Started udev device kernel manager” line. This prevented me from even attempting to install any of these distributions. I did notice that any distro that did not default to systemd (namely Ubuntu and Gentoo) installed with no issues.

I finally found a fix to this: blacklist the dw_dmac module in the kernel. In Arch at least, this is done at boot time by adding the following line to the kernel boot line in Grub:

modprobe.blacklist=dw_dmac

Once I hit enter, it booted up without issue, and installation went flawlessly. Rather than keep this line in my grub kernel line, I’ll blacklist it permanently the proper way, but for now, this works.

Using emmet-mode in Emacs for HTML Editing

When in Windows, I have a bad habit of using Sublime Text 2 instead of Emacs — I know, I’m ashamed of myself. It has some very useful features that I’ve really gotten used to using. Among them is the HTML dom shorthand… an example, if I type:

hr.margin-none <TAB>

Then it automatically expands to:

<hr class="margin-none"></hr>

Very useful when typing the code out yourself and not using a GUI editor… so I wanted to see if this functionality was available in Emacs. The good folks over at StackOverflow were quick to answer my question, and now I’ve been introduced to emmet-mode. It works the same, except by default the key binding to cause the expand is C-j, instead of TAB in Sublime Text. I think making a local emmet-mode keybinding may take care of this, but I’ve not played around with it enough yet. You can get emmet-mode from marmalade or MELPA repositories.

 

Mounting LVM Volumes in Linux with Rescue/Live Disk

So lately I’ve been playing around with a single remote-mounted nfs home directory at home. I’ve used it at work for years, and it’s great having all of my stuff in one location no matter what system I’m logged into. The setup was quite straightforward, except I’m still troubleshooting why my system hangs shortly after I login. I even made sure to include the _netdev option in my fstab so that it wouldn’t get mounted until after the network/nfs services are started, but it’s still causing me an issue. Anyway, the temporary solution is one I use rarely enough that I wanted to document it here… mounting an LVM volume manually when LVM isn’t already started. This is because I booted from the Fedora 20 Live disk in order to edit my fstab so I could login.

Here’s what I had to do in order to get my root partition to mount:

vgscan         # you may have to run 'lvm vgscan', but the former worked for me
vgchange -ay   # again you may have to run 'lvm vgchange -ay'
mount /dev/rootdg/root /mnt   # your volume group and volume name may differ
vi /mnt/etc/fstab

Be sure to get the one in /mnt, not in /etc, because that’s  your Live Install fstab and it won’t persist nor have anything useful in it.

Once I’ve made my changes, I reboot. Viola, you’re saved!