Friday, June 7, 2013

How to Make a Better Strawberry Pallet Planter

Over the past year I've come across scores of diy pallet projects, some of them intriguing and others not quite there yet but still having potential. One that I see time and again is the idea of using a single wooden pallet as a strawberry planter. Filled with soil and with plants inserted in the gaps they're usually leaned up against a wall but sometimes bolted on to keep from tumbling over. It's a clever idea but I've steered away from trying it myself because I suspect that they'll require constant watering and erosion control and also because I'm not convinced that they'll work long term. Almost every image I've found of pallet planters look to be newly planted rather than a tried and tested design.

Still I was interested in the idea and with the gift of eight pristine wooden pallets, I started scouring the internet looking for alternative tutorials. Ones that offered increased stability, more soil capacity and better aesthetics. Eventually, after finding nothing that really jumped out at me, I came to the conclusion that I'd have to come up with my own design. After thinking about the process for this post I'm quite sure that anyone who is comfortable using a hammer and hand-saw could complete this project too. Though I'll be honest and say it's much easier if you have a jigsaw and a few other extra tools.

For this project you will need the following materials:
- A suitable pallet as described in the next two steps
- A hand-saw or jigsaw
- Electric drill or hammer
- Two sizes of screws and nails - approx. lengths 4 cm (1-1/2") and 8cm (3")

Optional:
- Heavy duty chisel/wedge and iron mallet
- Non-toxic paint and paintbrush


View the original article here

Basic Concrete Countertop

The basics for making a concrete countertop are simply building your mold, pouring and finishing the concrete. There are several acceptable materials for building the form, but we chose cheap and easily obtainable...melamine coated particle board. You'll need a piece larger than your desired finished dimensions, we chose a 4 foot x 8 foot piece 3/4 inch thick. Other items needed are:

- Additional melamine boards for the sides of the form
- Sturdy and LEVEL sawhorses to build on (our finished top weighed around 400 lbs)
- 3/8 inch rebar for inner support
- Remesh for more inner support
- Wire for attaching the rebar and remesh to the form
- Screws for building the form (we used 3 inch and 1 5/8 inch drywall screws)
- Drill (you MUST pre-drill the particle board to avoid splitting)
- Saw(s), circular hand saw and/or table saw to cut the form sides. We also used a chop saw.
- Silicone caulk in a color easily seen on your Melamine (we used black)
- Concrete tools consisting of float(s) and trowel(s)
- Long screed board
- Hacksaw/bolt cutter/wire cutters for cutting your rebar, remesh, and hanging wire
- Level
- Rubbing alcohol
- Concrete (of course). We used Quikrete 5000 without additives like fibers or water reducer.
- Pigment of choice. We used a little black so the natural color would just darken a bit.
- Concrete mixer. Ours was rented and we mixed and filled everything in 4 hours.

Before you build your countertop, you should definitely build a test form. We built two 1 x 2 foot forms with rebar and remesh to test pouring consistency, color, technique etc. This also allows you to test finishing techniques on something other than the real countertop. Please don't skip this step.

Plan the size and shape of your top and mark it out on the Melamine sheet. We didn't need to make any templates since ours was a simple rectangle and was going on an island and not against a wall. Be sure to take into account the thickness of the boards being used for the walls when drawing the guidelines.

*While our sawhorses were both sturdy and level, they were only on the ends of the mold base. After curing, we noticed a very slight bow in the countertop. In retrospect, we should have had two additional supports across the length. *


View the original article here

Thursday, June 6, 2013

Ask Yourself These Two Questions to Prioritize Your Tasks

Trying to determine which tasks need to be done and in what order can get complex. Productivity blog GTD Times recommends simplifying the process down to two simple questions.

As the author puts it:

There are two key questions I have found to be enormously helpful with priorities. Ask yourself:

What’s the value in getting this done?What’s the risk if I don’t?

Try asking yourself those questions next time you’re staring at your list and deciding how to best invest your time and attention.

These two questions can eliminate many tasks that don't really need to be on your to-do list (if there's no value in getting it done, why do it?), and almost immediately prioritize the order in which they should be done (the bigger the risk, the more important it is).

Two key priority questions | GTD Times

Photo by Stephen Rees.


View the original article here

Ars Technica reports that AT&T doesn't want all its users making video calls over cellular data just

Ars Technica reports that AT&T doesn't want all its users making video calls over cellular data just yet. The recently-announced revamp to Google+ Hangouts won't connect on an AT&T Android smartphone unless you're connected to Wi-Fi. You won't find yourself restricted if you subscribe to a tiered or mobile share plan. Those with unlimited plans and LTE-enabled devices can expect full video chat support later this year.

Storing garden tools with style (aka Zombiewall)

GEDC1137.JPGStoring shovels, rakes, and all the other tools used in the garden can sometimes be a bit of a challenge. An artistic flare is often missing. GEDC0727.JPGWe built a shed in the corner of our yard to replace the ugly tin shed that was poorly placed.

View the original article here

3D Printed Sound Bites

main pic.jpgAfter I posted my 3D printed record project, I received an interesting comment from Instructables author rimar2000.  He described an idea he's had for a while about a strip of material that has audio information encoded on it so that it can be played back by quickly sliding a fingernail, credit card, or piece of paper along its surface.  This same basic idea has been implemented in various ways already, here are a few:

talking strip birthday card:


It's even possible to tune rumble strips on a road so that your car turns into a musical instrument as it drives over.  Here is a musical road near MT Fuji, Japan:
another musical road - Lancaster, CA:
main pic.jpgThe main idea behind this project is to take an audio waveform and use it to modulate the height of the surface of a linear strip.  this way, any object passing across the surface will vibrate up and down in the hills and valley of the wave, these vibrations will cause vibrations in the air, which cause us to hear sound.  You will find comments in my code that talk about the specifics of how it works, follow these steps to create your own 3d models:

1.  Download Audacity.

2.  Open an audio file of your choice with Audacity.  Use Effect>Normalize to amplify the signal as much as you can without clipping.  Trim any excess blank space off the beginning an end of the clip, you will want to keep the audio as short as possible.  File>Export this file and save it as a WAV in a folder called "soundBites". 

3.  Download Python 2.5.4.

4.  Copy the Python code below and save it in the soundBites folder, this code converts the information stored in a wav file (audio) into a series of numbers inside a text file (txt).//3d printed sound bites - wav to txt//by Amanda Ghassaei//May 2013//http://www.instructables.com/id/3D-Printed-Sound-Bites//* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version.*/import waveimport mathimport structbitDepth = 8#target bitDepthfrate = 44100#target frame ratefileName = "your_file_name_here.wav";#file to be imported (change this)#read file and get dataw = wave.open(fileName, 'r')numframes = w.getnframes()frame = w.readframes(numframes)#w.getnframes()frameInt = map(ord, list(frame))#turn into array#separate left and right channels and merge bytesframeOneChannel = [0]*numframes#initialize list of one channel of wavefor i in range(numframes): frameOneChannel[i] = frameInt[4*i+1]*2**8+frameInt[4*i]#separate channels and store one channel in new list if frameOneChannel[i] > 2**15: frameOneChannel[i] = (frameOneChannel[i]-2**16) elif frameOneChannel[i] == 2**15: frameOneChannel[i] = 0 else: frameOneChannel[i] = frameOneChannel[i]#convert to stringaudioStr = ''for i in range(numframes): audioStr += str(frameOneChannel[i]) audioStr += ","#separate elements with commafileName = fileName[:-3]#remove .wav extensiontext_file = open(fileName+"txt", "w")text_file.write("%s"%audioStr)text_file.close()Copy the file name of the audio file you just saved and paste it into the following line in Python:

             fileName = "your_file_name_here.wav"

Hit Run>RunModule, after a minute or two you will have a .txt file saved in the soundBites folder.

5.  Download Processing.

6.  To export STL from Processing, I used the ModelBuilder Library by Marius Watz.  Download the ModelBuilder library here, I used version 0007a03.

7. Unzip the Modelbuilder library .zip and copy the folder inside called "modelbuilder".  Unzip the processing .zip and go to Processing>modes>java>libraries and paste the "modelbuilder" folder in the "libraries" folder.

8.  Copy the processing sketch below and save it as "soundBites.pde" in the soundBites folder.  You can adjust many parameters in this code: the x/y/z resolution of the printer, the speed that you want to playback, the amplitude of the waves, the thickness of the strip, and more... you can even invert the wave to make it recessed within the strip.//3d printed sound bites//by Amanda Ghassaei//May 2013//http://www.instructables.com/id/3D-Printed-Sound-Bites//* * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version.*/import processing.opengl.*;import unlekker.util.*;import unlekker.modelbuilder.*;import ec.util.*;String filename = "amanda.txt";UGeometry geo;//storage for stl geometryUVertexList lastEdge, currentEdge, end1, end2;//storage for conecting one groove to the next//parametersfloat samplingRate = 44100;//(44.1khz audio initially)int rateDivisor;//ensures we pack only as much data into this stl as the resolution of the printer can handlefloat speed = 26;//inches/sec that the data will be "read" from the surfaceboolean invertGroove = true;//false = grove is below surface, true = groove extends above surfacefloat dpi = 300;//objet printer prints at 600 dpibyte micronsPerLayer = 16;//microns per vertical print layer//variable parametersfloat amplitude = 50;//amplitude of signal (in z layers)float sideWidth = 0;//amount of extra space on each side (in pixels)float bevel = 25;//bevel width (bevel on either side of groove (in pixels)float grooveWidth = 450;//in pixelsfloat depth = 1;//measured in z layers, depth of tops of wave in groove from uppermost surface of recordfloat zHeight = 0.075;//thickness in inchesvoid setup(){ //set up storage geo = new UGeometry();//place to store geometery of vertices lastEdge = new UVertexList(); currentEdge = new UVertexList(); end1 = new UVertexList(); end2 = new UVertexList(); setUpVariables();//convert units, initialize etc drawGrooves(processAudioData());//draw in grooves using imported audio data //change extension of file name String name = filename; int dotPos = filename.lastIndexOf("."); if (dotPos > 0) name = filename.substring(0, dotPos); geo.writeSTL(this, name + ".stl");//write stl file from geomtery exit();}float[] processAudioData(){ //get data out of txt file String rawData[] = loadStrings(filename); String rawDataString = rawData[0]; float audioData[] = float(split(rawDataString,','));//separated by commas //normalize audio data to given bitdepth //first find max val float maxval = 0; for(int i=0;imaxval){ maxval = abs(audioData[i]); } } //normalize amplitude to max val for(int i=0;i             String filename = "your_file_name_here.txt";

10.  Hit "Run" in Processing, you should see a file appear in the soundBites folder called "your_file_name.stl", you are now ready for 3d printing.


View the original article here

Road bike shift indicator using scrap packaging

IMG_2280.JPGI really don't like to cross-chain. It's never been a problem before, since I've always had a pretty good sense of what rear cog I'm in. But when I got a bike with a compact double after riding 12 years with a triple, it seems like I'm shifting the front so often that now it's hard to keep track of things. So I made a shift indicator using scrap plastic that's kind of inconspicuous, and you don't need to remove the cable to install it.

Warning - if you get frustrated fiddling around with small things until they're just right, don't even start this project. And, I'm the only one who ever handles my bike, so the fact that it's a bit fragile isn't a problem for me.

IMG_2272.JPGNo, not the toothbrush - the toothbrush package (or whatever other small piece of clear plastic you can find). I used the toothbrush package because the right-angle bend was already formed permanently into it.

And a bit of duct tape, which I forgot to put in the picture.


View the original article here