New green method of making concrete

This post on a product designer’s foray into making a much more Earth-friendly concrete gives me hope for humanity. It’s estimated that about 5% of greenhouse gasses are released due to the existing process of making the cement in traditional concrete. The new process, dubbed “Dupe,” uses approximately none (although I’m sure a fair amount does go into the mass production of urea, which is a major component of fertilizer).

Turns out, all you need is some sand, bacteria, calcium chloride and a decent amount of urea.

The reason I think Dupe is so much better is because it only requires “biological temperatures” (I suppose that means 80-100°F), as opposed to the thousands of degrees needed to make calcium carbonate and clays react to form cement. The only real downside I see at this point is that structurally, Dupe concrete is only about 2/3 as strong as traditional concrete. But come on, I know some smart materials science people must want to get in on this and try to make it even better.

something wicked this way comes

When I ping fujipi, it reports the correct IP – it’s in my hosts file! For the record, the host key should not have changed. Continue reading “something wicked this way comes”

Getting folding@home cores downloaded

So I was trying to contribute some cycles to the Folding@Home project recently, and ran into a problem that took seemingly forever to figure out. The log.txt file showed that the core (the build of the executable that’s optimized for a given platform) wouldn’t download.

Continue reading “Getting folding@home cores downloaded”

AWK blows me away

How did I not know this about awk!? Don’t get me wrong, I’m no awk expert; I’m always using some of the most simple and obvious features it has. But I almost always use the -F option to specify the field separator. Until today, I thought you could only give it either a single character or a string literal. Go ahead, laugh, I’ll wait.

From StackOverflow:

I just used this to help parse the output of drush pml. Since it uses more than one space to separate fields, I used

(that’s two spaces and a plus sign for the field separator). I initially tried using

but apparently that’s some kind of super advanced regex that awk doesn’t understand.

Another cool thing about the StackOverflow page is that one person shows how you can parse a CSV with embedded / escaped commas if you have gawk 4 installed:

APC is dead, long live APCu & ZendOpcache

So far, the site seems slightly snappier now that I’ve replaced the venerable (but old and unmaintained) APC with APCu for user-space object caching and ZendOpcache for opcode caching. Various people report seeing 10-30% improvement in speed with the new opcode cache / optimizer that will be the default in PHP 5.5. Also APCu is nice because it looks exactly the same to existing apps & requires no configuration. One thing I recall reading about APCu, however, is that it doesn’t provide the upload progress function that APC had. There are alternatives for that, though.

MySQL engines, constraints & keys

I wanted to see how I could improve the performance of a MySQL database with mixed table engines by converting all the MyISAM tables to InnoDB, as well as make the huge DB responsive while backing up by using mysqldump with the --single-transaction option. I used the following PHP script (I know, spare me):

After looking at the table status following the script run, there was one table which was still set to use MyISAM. In the mysql shell, I tried manually altering the one table to use InnoDB, and then needed a bunch of additional commands to smooth out the DDL problems before MySQL was happy.

Of course, I edited out a whole mess of trial and error here. The issue was that MySQL wants any column you mark as auto_increment to have its own key, it doesn’t need to be primary; but it can’t be an aggregate which is what it had originally. My solution was to simply add a non-primary key to that column, while keeping the aggregate key. Using a primary key was out of the question since there are duplicate values in the aid column.

EDIT:
Turns out, all I really needed to do was add the individual index, then alter the table engine. Oh well, it was educational. :-)

VX ConnectBot

vx-connectbotI had been using ConnectBot for a long time on my Android devices, because I wanted something to remotely administer machines without needing an actual laptop. It’s nice because the data plan is built-in to most mobiles, so one doesn’t necessarily need a wifi connection nearby. Unfortunately, it’s rather time-consuming and clumsy to use an on-screen keyboard on the command line of a remote system. So a little while back I got an AmazonBasics Bluetooth keyboard to make typing any significant amount easier while away from a real computer. Mainly, I wanted easier access to Esc (I’m a Vim user), Ctrl-(C|D|Z|…) and Tab. The problem was, when I tried out the keyboard on a remote system, almost none of it worked. It turns out ConnectBot is really only meant to work with the most simple soft keyboards; the key mappings just aren’t there.

Enter VX ConnectBot, a fork of the original that adds a lot of key bindings, fixes and new features. I’m loving it so far. The Android Market link is on their page. It’s small like the original, asks for very few permissions, continues with the Apache 2.0 license, and is gratis and ad-free.

I am not affiliated with the project, just a fan.