555 Metronome

My 555 metronome, all boxed up.

I wanted to make a metronome and decided on the venerable “555” chip. In this case I used an LM555CN. I had all components needed except the IC itself, so I ordered a handful (they are only about $0.75/each) and started the process. This was my first time playing with a 555, and it was great fun!

I started with this circuit from Jameco. Then I breadboarded and made changes until I was happy. The original circuit gave roughly 25-550 BPM which was pretty wild – standard metronomes are 40-208 BPM. My circuit as adjusted gives me 35-200 BPM which is close enough for my purposes.

I used Krita to edit the original schematic after making my changes to “dial in” this metronome circuit.
This is my layout for my modified 555 metronome circuit. I created this layout using DIYLC from Bancika.
Posted in Circuits and Electronics, Music, Projects | Comments Off on 555 Metronome

Original iPod Shuffle – on Linux

That’s right, I’ve finally found a way to use my old 512mb Shuffle on Linux. Thanks to keyj for making a simple python script in 2006. How it works is you put whatever you want for mp3s onto the shuffle (after mounting it in linux) then move the python script onto the root of the ipod. Then run the script in terminal after navigating to the root of the mounted iPod:

$ python rebuild_db.py

Here is a link to the python file on sourceforge.

Thank you internet!

Posted in Computers and Hardware, Hobbies, Music, Personal, Projects, Technology, Web/Internet | Comments Off on Original iPod Shuffle – on Linux

Current thoughts

“No man ever wetted clay and then left it, as if there would be bricks by chance and fortune.”

– Plutarch

It is sometimes hard to remember that we cannot just simply start a process and then leave it be and assume it will finish of its own volition. Whether referring to child rearing, gardening, politics, or any other number of things – once you start something, you must finish it.

Posted in Personal | Comments Off on Current thoughts

Rest in peace, Ashes

Yesterday we had to lay our son, Ashes, down to rest. He was 14 years old and had been with us since we were a young couple in college. I loved that cat more than I realized. He helped me through many of my struggles with panic and anxiety over the years. We miss you, Ashes.

Posted in Home and Homestead, Personal | Comments Off on Rest in peace, Ashes

RSS displayed with PHP – Updated!

A week ago I posted about using PHP to display an RSS feed. We moved to a new server that did not have DOM enabled, so I have updated my code to use curl instead of DOMDocument.  Either method does work, but this is nice and clean.  See below for my new code:


<html>
<head>
<link rel="stylesheet" href="/alert-rss.css" media="all">
</head>

<body>

<?php

//set timezone
date_default_timezone_set('America/New_York');

//set RSS feed
$handle = curl_init('https://url-of-rss-feed.com');

curl_setopt($handle, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_setopt($handle, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($handle, CURLOPT_ENCODING, 'identity');

//get RSS feed from $handle
$response = curl_exec($handle);

curl_close($handle);

$xml = simplexml_load_string($response, "SimpleXMLElement", LIBXML_NOCDATA);
$json = json_encode($xml);
$data = json_decode($json, true);

//load feed
$feeds =  array();

//load only required feed items
if(isset($data['channel']['item'])) {
    foreach($data['channel']['item'] as $item) {
        $feeds[] =  array(
            'title' =>  $item['title'],
            'desc'  =>  $item['description'],
            'date'  =>  $item['pubDate'],
        );
    }
}

//set the internal point of the array to last element
end($feeds);

//pull key of array at pointer so we only display one entry
$key = key($feeds);

//set variables to display data from array
$title = $feeds[$key]['title'];
$description = $feeds[$key]['desc'];
$date = date('l F d, Y g:ia', strtotime($feeds[$key]['date']));

//set $end_date for when RSS expires - calculation entered as (hours*secondsperhour)
$end_date = date('l F d, Y H:i', strtotime($feeds[$key]['date']) + (18*3600));

//set how date variables are calculated for comparison purposes
$today = date('l F d, Y H:i');
$today_calc = strtotime($today);
$end_date_calc = strtotime($end_date);

//display what we have found if it is current
if($today_calc < $end_date_calc) {
	echo '<div id="blinky-div"><p><strong>'.$title.'</strong><br />';
	echo '<small><em>Posted on '.$date.'</em></small></p>';
	echo '<p>'.$description.'</p></div>';
//hide div if there is no current data
} else {
	    echo '<div style="display: none;">No current RSS</div>';
}
?>

</body>
</html>
Posted in Upgrade, Web/Internet | Comments Off on RSS displayed with PHP – Updated!