These past few months have been a lot of fun. Almost my whole family has summer birthdays so I’ve been making gifts and other new jewelry. The heat in my garage studio is intense, but it can’t keep me away from the metal and the torch.
Since there are many pieces to show, the galleries can be themed. Here are the earrings!
Ringed Asteroids – Silver and Copper
Fire Citrine Studs 5mm in Prong Setting
Gray Enamel on Copper, a gift for Kenzie
Jade Studs 5mm
Rose Quartz Studs 5mm
Malachite Stud Earrings 6mm
Starlight Dangle Earrings – medium length mixed metal
Medium length Starlight Dangle Earrings on the lovely Kenzie.
Starlight Dangle Earrings – long copper
Starlight Dangle Earrings – short silver
Stop Motion has always been fascinating to me. It’s especially cool when they’re done with tiny detailed scenes and props. I’ve tried my hand at a few in that style, but this one is just a series of sequential pictures taken while walking. It’s something I completely forgot about until I saw a cool example online recently.
Mom’s Day Card – http://youtu.be/0qW96c4_cVQ
This was made back when I lived in San Francisco. A little trip to the local Rite Aid to get a card for my mom on Mother’s Day. I used a Canon Digital Elph and just kept on snapping. Finding this video again is totally inspiring me to make more in the future. Perhaps I’ll combine the technique with some metalworking. Shooting metal as it changes or maybe even some fire.
** The video on youtube is unlisted because I’m unsure what music I put in it. Feel free to share it if you’d like. **
Currently I’m working on a script to search for duplicate images on my hard drive. To do so, I need to search recursively and go down through all subdirectories.
Recursive searching can be done by importing the commonly used os module. Use the os.walk() function to recursively enumerate file names and paths in the supplied directory. There are then many ways to identify file types, but in this case I’m using fnmatch. Here’s the official fnmatch description:
This module provides support for Unix shell-style wildcards, which are not the same as regular expressions (which are documented in the re module).
We have the modules to use, now the code:
images = 
for root, dirnames, filenames in os.walk(search_directory):
for image in fnmatch.filter(filenames, '*.jpg'):
This function, called find_images(), returns an array of full file paths within a given directory that have a file type of ‘.jpg’. While searching, once an image is found we join the image name with root, the current directory being searched by os.walk(). This gives us back a list of full paths instead of just file names.
search_path = os.path.expanduser('~/Pictures')
image_paths = find_images(search_path)
Hopefully I’ve explained the code clearly, but if not let me know. If you have any questions at all please feel free to ask in the comments.
Whenever you’re reading this, I hope you’re having a great day!
Just a quick post to give warning to any beginners looking to set up Postfix. If setting up accounts to receive mail, go the extra mile and learn how to enable spam/virus filtering and reject backscatter-causing spam.
When I installed Postfix, the only thing actually needed was to send out mail. I wrote a script that emails me, and I also have logwatch email a daily report. It wasn’t necessary to enable incoming mail, but I did it for fun because I’d never set up a mail server before. Enabling incoming mail caused my server to send out undeliverable mail notifications in reply to spam. This has gotten me on two blacklists and has stopped Gmail from accepting any mails from my domain.
For now, I’m disabling the incoming mailbox and turning it into what is called a null client. I will also look into getting removed from the blacklist. First I’ll try this guide. My reports from logwatch are sorely missed because now I have to manually check the logs on my server.
Good luck on any of your email server endeavors and always keep security and spam in mind!
Recently I’ve been trying out the open source editor Light Table. It has a lot of great features, my favorite being inline evaluation. The editor will run a single line of code and display the value at the end! It’s super customizable and really reminds me of Sublime Text in terms of looks.
Here are some simple instructions on how to install Light Table and create a nice launcher for it.
- Download the correct version for your system from lighttable.com.
- Change directory to wherever the file is located.
- Unzip the archive. This will give you a folder called LightTable. The wildcard ‘*’ in the filename makes this command work for either the 32-bit or 64-bit downloads.
tar -xzf LightTableLinux*.tar.gz
- Move the unzipped folder to /opt to live with other non-traditional installations. Then delete the archive. Note: Programs in /opt are available to all users.
sudo mv LightTable/ /opt
- Create a launcher file called light-table.desktop and enter the details to make it work.
cat > ~/.local/share/applications/light-table.desktop
Make sure to hit enter at the end to leave a blank line, then hit Ctrl+D to exit the cat command.
- Make the launcher executable so Ubuntu registers it as a program.
chmod +x ~/.local/share/applications/light-table.desktop
- Last step is to create a symlink in your user /bin folder to enable calling Light Table from a terminal. You can call yours whatever you want, but here I’ve named it ltable so the command to start it up is nice and short.
ln -s /opt/LightTable/LightTable ~/bin/ltable
Edit: If ~/bin does not exist, create it. Ubuntu treats ~/bin like a per-user installation folder. If you want this shortcut to be available for all users, instead use sudo and place it in /usr/local/bin.
sudo ln -s /opt/LightTable/LightTable /usr/local/bin/ltable
That’s it! All done! Have fun using and customizing the Light Table editor! I’m certainly no Light Table expert but if you have any questions about these instructions please let me know in the comments. Have a great day!