Writing a FUSE Filesystem in Python

photo

Have you ever thought a particular project could be better if you could just control the file access directly? [Stavros Korokithakis] did, specifically for a backup program he was working on. What followed was the realization that writing a FUSE filesystem, particularly in Python, isn’t as complicated as it may seem. Really, through the power of open source, the heavy lifting has already been done for us. If you’d like to try it yourself, you’ll need to install fusepy. From that point, you simply need to define the filesystem methods you will be using.

Python isn’t going to win any speed contests in the filesystem space, but that isn’t really the point. Using this technology opens up a huge opportunity for new ways of accessing data. If you let your mind wander, you can conceive of encrypted filesystems, seamless remote data access, new key-value storage designs, etc. Perhaps even more interesting is the idea of using Python to communicate with a physical device… maybe a proc filesystem to keep track of your robot telemetry? We’d love to hear your ideas in the comments.

We had success using [Stavros'] example script on Linux and OSX. (Fair warning if you’re on a Mac, the pip version of fusepy seems to be linked against fuse4x rather than OSXFUSE, but once you’ve got the prerequisites installed, you’re golden.) We didn’t have a Windows machine to test. Can anyone confirm if the same is possible there?

HHH: Sniffing Proprietary CNC to Hack in G-Code Support

hhh-proprietary-g-code-hack

Here’s a beautiful desktop CNC mill which had one big drawback: it used a proprietary interface for driving it. To increase the flexibility of the tool it was hacked to work with G-Code.

The project is a Hackaday Hackerspace Henchmen submission from rLab, the Reading Hackspace in the UK. [Barnaby] explains the entire project after the break. The machine itself wasn’t altered, but a translator script was written in Python after capturing a bunch of packets and working out the protocol. This script listens for G-Code and does the translation into the type of commands the machine is expecting to receive.

If you know of a CNC hack from your own hackerspace send us the story for a chance to win some loot.

[Read more...]

STL Fun: Converting Images To STL Geometry

stl image conversion

There’s been some good .STL manipulation tips in this week.

The first one is called stl_tools, and it’s a Python library to convert images or text to 3D-printable STL files. The examples shown are quite impressive, and it even does a top notch job of taking a 2D company logo into 3D! We can see this being quite handy if you need some quick 3D text, and either don’t use CAD, or really just need a one click solution. Now if only .STLs were easier to edit afterwards…

The second one is a Javascript based Leap Motion Controller STL manipulator, which lets you pick STLs and manipulate them individually with your fingers. If you happen to have a Leap, this could be a great way to show off 3D parts at a presentation or hackerspace talk, especially if you want to add a [Tony Stark] vibe to your presentation! Stick around after the break to see it in action — Now all we need are some good hologram generators…

[Read more...]

Browsing the web one step at a time

After modifying his new manual treadmill to fit under his standing desk, [Brian Peiris] found a way to let him stroll all over the internet.

After removing the treadmill’s original time/distance display, [Peiris] reverse engineered the speed sensor to send data to an Arduino and his PC.  We’ve seen a number of projects that interface treadmills with virtual worlds, but what really makes this project stand out is a simple script using the Throxy Python library which allows the treadmill to throttle his machine’s internet connection.

The end result is a browsing experience that reacts to how fast the user runs.  In the demonstration video, you can see Peiris tiptoe through images or jog through YouTube videos.  A minimum bandwidth setting keeps the connection live, so if you can’t make it all the way through that HD Netflix movie, taking a breather won’t time out the connection.

It’s certainly a great way to get in shape, or at the very least, it’ll make your ISP’s bandwidth cap feel a lot bigger.

Video after the jump.

[Read more...]

Dead drop concept inspired by [Ender Wiggin] family

encrypted-dead-drop-concept

[Tyler Spilker's] DDD project is a Digital Dead Drop system based on Python and a Raspberry Pi as a server. It’s pretty rough around the edges at this point — which he freely admits. But we like the concept and figure it might spark an interesting conversation in the comments section.

Now by far our favorite dead drop concept is this USB drive lewdly sticking out of a brick wall. But you actually need to be on-site where this drive is mortared into the wall in order to access it. [Tyler] instead developed a webpage that gives him a text box to enter his messages. These are encrypted using key pairs and pushed to his remote RPi server. This way he can write down his thoughts knowing they’re stored securely and never in danger of being accessed from a lost or stolen cellphone.

If free thought isn’t what you’re trying to transfer from one place to another you probably want something like a Pirate Box.

Leapcast emulates Chromecast in your Chrome browser

leapcast-chromecast-emulator

Our Chrome browser thinks it’s a Chromecast dongle. Here’s a screenshot of it playing a YouTube video. Note the tile banner and onscreen controls which are just like the ones you’d see on the actual hardware. Give it a try yourself by downloading the Leapcast Python package which [dz0ny] programmed.

After cloning the GitHub repo we had a few problems compiling the package. Turns out we needed to install python-dev and that took care of it. Starting the daemon is a simple command, we specified our Chrome binary path as well as added a few flags

leapcast --name HAD --chrome /usr/bin/google-chrome --fullscreen

Once that was running the Android YouTube app automatically detected Leapcast as a Chromecast device. It gave us a tutorial overlay mentioning the new share icon on the interface. Pressing that icon during playback launched an Incognito window which played the video. [dz0ny] links to a device config JSON file in the README. If you check it out you’ll notice that Netflix is listed as “external” while the others are not. This is because the Chromecast protocol uses a binary for Netflix. The others do it with local websockets or a cloud proxy so they work just fine with this setup.

Alarm clock uses Raspberry Pi to poll Google Calendar

rpi-google-calendar-alarm-clock

We know a lot of people love using their smart phone as a bedside alarm clock. The problem is that a mobile phone is mobile by nature and eventually you’ll forget to put it in the bedroom one night. That’s why we like the solution that [Devon Bray] has chosen. He set up his Raspberry Pi as an alarm clock that is set using Google Calendar.

The setup which he shows off in his video is quite simple. The Raspberry Pi is connected to a set of powered computer speakers. It plays a song whenever an appointment called “wake” comes up on his Google Calendar. This is accomplished by using the Google Data APIs Python Client Library (isn’t that a mouthful?).

This only scratches the surface of what is possible. With this in place you could easily add LEDs to the room for a sunrise alarm. But if you’d prefer a more bare-bones hardware side of things that’s possible too.

[Read more...]

Follow

Get every new post delivered to your Inbox.

Join 91,816 other followers