Linux Fu: Simple Pipes

In the old days, you had a computer and it did one thing at a time. Literally. You would load your cards or punch tape or whatever and push a button. The computer would read your program, execute it, and spit out the results. Then it would go back to sleep until you fed it some more input.

The problem is computers — especially then — were expensive. And for a typical program, the computer is spending a lot of time waiting for things like the next punched card to show up or the magnetic tape to get to the right position. In those cases, the computer was figuratively tapping its foot waiting for the next event.

Someone smart realized that the computer could be working on something else while it was waiting, so you should feed more than one program in at a time. When program A is waiting for some I/O operation, program B could make some progress. Of course, if program A didn’t do any I/O then program B starved, so we invented preemptive multitasking. In that scheme, program A runs until it can’t run anymore or until a preset time limit occurs, whichever comes first. If time expires, the program is forced to sleep a bit so program B (and other programs) get their turn. This is how virtually all modern computers outside of tiny embedded systems work.

But there is a difference. Most computers now have multiple CPUs and special ways to quickly switch tasks. The desktop I’m writing this on has 12 CPUs and each one can act like two CPUs. So the computer can run up to 12 programs at one time and have 12 more that can replace any of the active 12 very quickly. Of course, the operating system can also flip programs on and off that stack of 24, so you can run a lot more than that, but the switch between the main 12 and the backup 12 is extremely fast.

So the case is stronger than ever for writing your solution using more than one program. There are a lot of benefits. For example, I once took over a program that did a lot of calculations and then spent hours printing out results. I spun off the printing to separate jobs on different printers and cut like 80% of the run time — which was nearly a day when I got started. But even outside of performance, process isolation is like the ultimate encapsulation. Things you do in program A shouldn’t be able to affect program B. Just like we isolate code in modules and objects, we can go further and isolate them in processes.

Doubled-Edged Sword

But that’s also a problem. Presumably, if you want to have two programs cooperate, they need to affect each other in some way. You could just use a file to talk between them but that’s notoriously inefficient. So operating systems like Linux provide IPC — interprocess communications. Just like you make some parts of an object public, you can expose certain things in your program to other programs.

Continue reading “Linux Fu: Simple Pipes”

Layer Line Removal Putty Reviewed

[Teaching Tech] is not alone in hating layer lines in 3D prints and also hates sanding. He recently tried Incredafill putty, a UV-curable putty that you can use to cover up lines in prints. Once covered and cured, you sand the putty smooth. You can see what he thought of the product in the video below.

As many people suggested in the video comments, you can pull the same trick with UV resin thickened with some other substance. We’ve even covered using diluted resin to get a similar effect. The putty has more of the appearance of hair cream or some kind of ointment, so it was easy to spread around with a gloved finger. A brush also worked. UV curing was done by a small flashlight or the handy sun. However, you’ll see later that he used a UV curing station and that works well if you have one.

Of course, even after applying the putty, you still have to sand. We are assuming the sanding is easier than trying to sand the actual layer lines smooth. On the other hand, the resin dust is probably pretty toxic, so there is a trade-off involved.

The results did look good. Of course, since there was still sanding involved, how good it looks will depend on your sanding tools, your technique, and — perhaps most importantly — your patience. Sanding can do a lot for 3D prints. We might not trust it completely with resin dust, but you could get rid of at least some of the dust with a downdraft table.

Continue reading “Layer Line Removal Putty Reviewed”

The Nine Dollar Laser Bed

A laser cutter bed has to be robust, fireproof, and capable of adequately supporting whatever piece of work is being done on the machine. For that reason they are typically a metal honeycomb, and can be surprisingly expensive. [David Tucker] has built a MultiBot CNC machine and is using it with a laser head, and his solution to the problem of a laser bed is to turn towards the kitchen ware store.

The answer lay in an Expert Grill Jerky Rack, a wire grille with a baking tray underneath it. Perfect lasering support but for its shininess, so it was painted matte back to reduce reflections and a handy set of clips were 3D printed to secure the grille to the tray.

We like this solution as it’s both effective and cheap, though we can’t help a little worry at the prospect of any laser cutter without adequate enclosure for safety. Having been involved in the unenviable task of cleaning an encrusted hackerspace laser cutter bed, we also like the idea that it could be disposed of and replaced without guilt. Do you have any tales of laser cutter bed cleaning, or have you found a cheap substitute of your own? Let us know in the comments!