xiphmont: (Default)

Last week, Fraunhofer and Thomson suspended their MP3 patent licensing program because the patents expired. We can finally welcome MP3 into the family of truly Free codecs!

Then came a press push calling MP3 dead. That's dumb. Fraunhofer is only calling MP3 dead to push unwary customers into 'upgrading' to AAC for which they can still charge patent fees.

This is a bit like the family pediatrician telling you that your perfectly healthy child in college is dead-- and solemnly suggesting you have another child immediately. Just to keep making money off of you.

I would call that disingenuous at best.

No, MP3 isn't dead, and it's not pining for any fjords. The money that Thomson and Fraunhofer were previously collecting in patent royalties now stays in your (and everyone else's) bottom line. Don't license something new and unnecessary just to spend more money.

If you really do need something more advanced than MP3, the best alternatives are also open and royalty-free. Vorbis is the mature alternative with 20 years of wide deployment under its belt. Better yet, consider Opus, the world's most advanced officially standardized codec.

That said, the network effects that have kept MP3 dominant for so long just got stronger. Nothing beats its level of interoperability and support. There's no reason to jump off a thoroughbred that’s still increasing its lead.

xiphmont: (Default)

First, the big if belated news: I'm now selling complete kits for T-series machines from the T20 through T500, as well as the W500. Oh, and let's not forget the T70. I do need to update the kits webpage to reflect all the new models.

This adds to the X-series kits I already offer for the X20 through the CCFL versions of the X200. And yes, the X62 as well.

That said, I'm waiting on an order of LEDs from Nichia. My most recent order collided badly with the beginning of Golden Week, so the arrival ETA is around May 30th. I won't be able to build new kits until then, and the buyers queue is currently about a week deep.

xiphmont: (Default)

Seriously, there are so many winners on the full list I don't even know where to start.

xiphmont: (Default)

Another post I meant to make a while ago... George, my Tiniest of Tinies, has taken a liking to lasers and mirrors.

eBay and Amazon advertise a number of little Chinese 'optics experiments' kits with a laser line source that makes three parallel beams, a number of partially frosted lenses, prisms and mirrors, and a few other fun things. There's no English version but it looked like a good gift anyway.

Using Google's realtime image translate and no knowledge of technical Chinese whatsoever, I cobbled together a partly translated box and a translated instruction manual. Unless the original Chinese was quite subtle, I don't think there was actually a ton of useful content there, but hey.

In any case, here's scans: My English translation, and the original Chinese pages (in the event someone would like to improve on my atrocious hack job). Given the Amazon comments, I expect a few others may be interested :-)

(Empire of the Lasers has nothing to do with the original Chinese. It's a silly take on George's usual gaming handle.)

xiphmont: (Default)

At the moment, the result is "the only reasonable way for a member of the public to post to their Google+ profile is via the web-facing interface". Well, Sort of. OK, not really.

There's a ton of what looks like undocumented/exposed API surface for getting to Google+ through the OAuth2 interfaces, but it's reasonably well locked down with white-listing as per documentation. I can see and access posting calls, but all return 403 or 405. The Google+ Domains interface, naturally, only works on GSuite/GApp profiles. In short, after some light probing with a stick, it's all pretty much exactly as documented.

I can use the 'share' URLs, but those require an SID, which requires a browser and user interaction. Snagging and reusing an SID works, but they time out in six months. That's not really acceptable. Storing a Gmail username and password in cleartext on a remote server would be far far super-balls even worse.

And then I noticed that Buffer implements an OAuth2-facing programmatic post interface that happily forwards to Google+ without mangling anything. Their API is exactly what I wanted. And the documentation was even good. Like really good.

Well, foo. That kind of took the wind out of my sails. Someone did all the work for me, exactly like I'd have done it, after all.

So I actually get exactly what I wanted, even if it's slightly Rube Goldberg-y. No idea how long it will last, but I suspect that if things break it's more likely to be changes to Google+ than something at Buffer.

xiphmont: (Default)

It turns out forwarding posts to Google+ is a royal pain in the patookas, mainly because it's intended to be.

One small omission in all the Google documentation about programmatic access to Google+ streams is that, although there appear to APIs for doing this, eg, through plusDomains, none of them will work because write access to Google+ accounts tied to a Gmail address is 403 forbidden. The main Plus API is read-only.

And this probably isn't going to change. Google development is on record stating that they want to keep 'low quality' posts to a minimum on Plus, so there is no programmatic way to interact with it. Paraphrasing Google, 'even if a user only has to click on a Javascript 'Share' button, that level of interaction raises the bar.'

More about that Share button in a bit.

It's easy to say 'I don't believe that rationale' given that access is protected by OAuth2, and every third-party interaction must be explicitly approved by the user (as an aside, this is also algorithmically annoying, since all the approved ways of doing so are effectively browser-based interactions. It is difficult to ask for pre-authorization or authorization on the command line. There's no 'here's a pair of keys with secrets, have fun' like in Oauth1). In any case, if you wanted to access Google+ with your own app, there's a laborious multi-step web setup with 'enable this and click that and provide all your personal details' to make it work. It's locked down so tight, it's a wonder anyone bothers to use it.

Or is it? It looks hard from the developer and administrator standpoint, but if I maliciously targeted a user, all they'd see is e.g. 'Google Docs wants permission to access your contacts', and surely no one would fall for that. So I'm actually willing to grant Google their point here.

But there's another consideration. I'm of the technical priesthood, and it really annoys me when developers try to apply rules meant to keep the rabble in line to me.

Anyway, there's that share button.

It's run by several pages of densely packed and obfuscated javascript. It's always possible to pick that sort of thing apart slowly, but the easy chink in the obfuscation is that it has to communicate with the outside world somehow, and we can watch the requests and responses. We know it probably uses either Oauth2 or session cookies, and it's likely using unsigned and unobfuscated data within the TLS stream. It might even still be XHR-based like it was a few years ago, the last time someone decided to write a third-party Google+ API with write access.

Any success will be relatively temporary; there is no published API, so Google can change the internals whenever they want, and they do. There are a couple old third-party Google+ API libs, and they no longer work. But I think I'm going to play with it anyway. I mean, I already have this lovely little OpenGraph card generator...

xiphmont: (Default)

It's all bolted into my personal crontab, and watching my RSS feed. Now let's see if it properly makes a twittercard and gets it into my timeline.

If it works... Google+ is next.

If it doesn't... well, some more debugging is next. After work.

xiphmont: (Default)

I noticed Dreamwidth injects a comment counter and image into the RSS feed, which is great for RSS readers and kinda sucks if you're using the RSS feed to crosspost to other sites via something like IFTTT.

So I *think* I've got things set up now to have Motherfish at xiph.org poll the RSS, filter the injected content out, and then offer that to IFTTT. I suppose I'll find out real soon now if that's actually working :-)

xiphmont: (Default)

I never did much work on the look of my old livejournal. Things kept changing slowly, stuff broke, and as time went on the HTML felt more and more inflexible.

Dreamwidth, being an old fork of LJ when it was still FOSS, goes back to the older HTML structure that's not particularly streamlined, but also more flexible. So I spent a little time putting some of me into the CSS.

Let's see how long it lasts. Oh, and a first test of the reposting filters at ITTT as well...

xiphmont: (Default)

Meters (and digital displays) are nice for detailed readings when you're standing right in front of them, but I still want to know what's going on from across the room, especially with a laser cutter using an experimental cooling system as likely to go horribly awry as work perfectly.

A nice, brightly lit meter that changes illumination color based on the potion of the scale it's in does the job nicely. Part readout, part indicator light, and it's no worse than a regular meter for the colorblind

xiphmont: (Default)

....and, of course, immediately after mastering the water slide decal-fu, I discover the laser printer will, with no intermediate steps, print and fuse directly to the polyester diffuser sheet thankyouverymuch.

Ah well. Knowledge gained for next time. Hmmm.... I wonder upon what else this thing will print directly.

<img src="banana.jpg">

xiphmont: (Default)

First try went surprisingly well, but not perfectly, so of course I spent a day or two dialing everything in for future reference. The directions on the package leave out a few helpful tips.

Paper setting

Most importantly, the instructions stress over and over that a laser printer can melt the decal medium*, and so recommend settings that... did not work well in my particular printer.

I have a Color LaserJet MFP277dw, a popular choice for home printers right now (and I'm pretty happy with it). This printer has a low-temp fuser, and the recommended 'plain paper' setting for decals wasn't fusing the toner to the decal sheet reliably. The print tracked down the page (left side of the pic), and also tended to rub off after printing. The slower, higher-temperature 'transparency' setting works perfectly (right side of pic), and the print is durable to rubbing and scraping. Win.

Soaking and sliding

Secondly the instructions recommend soaking in hot water (good idea) for 20-30 seconds (in boiling hot water, maybe). I found a minute to be more like it, it depends on the actual temperature. Ideally, pull the decal out just before the edges start lifting from the backing.

The decal itself appears to be a vinyl of some sort. When it's hot, it's stretchy and pliable. When it cools back down, it becomes fairly stiff. In the usual 'building models' case, you probably want the label to conform to the target surface, so slide and apply while hot (being careful not to stretch the decal entirely out of shape).

For my use (meter scales) I want the decal to preserve its dimensions exactly. Letting the decal cool to room temperature before application works perfectly!

*The decal media is Papilio Laser Water-slide Decal Paper from texascraft.com. I've been using various specialty Papilio inkjet and laser media for more than ten years and have always been happy with them. These days it needs to be said: I've not been paid for any kind of endorsement, and have not been gifted any free or discounted product. I'm just a happy customer. There may be better stuff out there, but I've not bothered to look for it--- and that's coming from a perfectionist who's never satisfied with anything.

xiphmont: (Default)

I needed a few chunks of acrylic that were a little thicker than anything in my supply closet. Cyanoacrylate (superglue) bonds PMMA nicely, makes an optically clear joint, is easier to work with than acrylic-specific solvent glues, and doesn't add nasty internal stresses to the plastic.

On the downside, the bond isn't quite as fast (I suppose this is just as easily an upside) and the index of refraction of the glue won't be quite the same as the sheet. A perfect joint will still be noticeable right around the critical angle where seam's angle of total internal reflection will be a little different from the rest of the plastic.

IMHBCO that's small price to pay for getting perfect, strong, bubble-free joints every time without getting light-headed indoors.

Pic related: two in-progress parts curing and my go-to favorite CA glue. Once the glue is fully cured, I'll mill and polish them into rough lenses.

xiphmont: (Default)

Since I love LEDs and I love meters, it is totally obvious to put LEDs into meters.

xiphmont: (Default)

I hate to do this to a nice indicator made in the US, but it's the year 2000+17 and still no one has digitized any of the classic industrial control typefaces used by American manufacturers in the early- and mid-20th century.

A few used Futura or a close knockoff, but that sticks out a little too much. And no, Sublime is not a valid answer either. I used Leroy pen sets. Sublime is neither authentic nor true to purpose, it's just a more subtle kitch font.

xiphmont: (Default)

This is my version of reclaiming childhood through eBay.

Some people collect old video games, others old equipment... I used to leaf though control indicator catalogues like they were porn rags, hence, this babby duck's lifelong fascination with analog meters and LEDs. It's the industrial design I grew up with. No color LCD screen can compare.

xiphmont: (Default)

TD (@enginetankard) will concur--- I wouldn't shut up about it when he was here.

Chinese laser cutters often come with a little air pump; it's used to blow smoke away from the optics while cutting. You're supposed to set it up somewhere near the machine, and run an air tube in. It's a simple little AC coil/solenoid attached to a piston. It also vibrates enough that it will walk across a workbench under its own power unless you bolt it to something. I want my air pump internal to the cutter, and I want it automatically controlled to only be on when cutting. Vibration would be a major problem mounting it inside the case, so I took two of the little ones, machined a custom output valve housing/gasket and connected them in opposing orientation. Viola! No vibration.

xiphmont: (Default)

The radiator juuust sneaks in. And a big rad needs nice beefy fans, which double as smoke exhaust.

Also, it's nice of the vendor to use flimsy tack welds that snap right off with a little prying. I'm actually serious here. No reason to stupidly overbuild. This thing is made to be messed with.

Also also it's _really_ hard to nibble in a straight line.

xiphmont: (Default)

I've built up quite a pile of project pics I took meaning to post, then never got around to it.

OK, so, laser cutter.

China sells a lot of cheap cheap cheap "It's so cheap I can't believe that price covers shipping let alone materials" maker tools. Some are better than others, and many barely work for their intended purpose out of the box. Overall, plan to get what you pay for, and I mean that in both the good and bad senses.

Most of these tools make decent starting kits though! Research a bit, then choose the kit with the most parts you want to keep (or the fewest you plan to toss).

I bought a K40 variant (SL320) on AliExpress, and I'm building it into a complete cutter now. It has a decent X/Y stage, came with a good tube (which I promptly broke while being an idiot), a larger than normal case, tubing, flow sensor, air assist head, and a better than average power supply. It also came with an exhaust fan and aquarium pump I don't plan to use, a useless Z-stage, and an air pump that makes half of the ideal.

Others are already doing a good, detailed job of documenting their K40 builds. I've been referring to Dons Things and Tims Machines extensively for tips in my own build. So, I'm going to stick to pictures, terse captions, and the few things I've uncovered that I haven't seen solved elsewhere.

I don't want my water cooling tubing dangling out back to an open bucket and a failure-prone aquarium pump, and I'm pretty sure an external chiller is overkill. I want a fully internal, closed water cooling loop. Water cooling may be useless (if still cool) for PCs these days (ha ha, see what I did there), but it does mean nice cooling parts are cheap and plentiful for other uses.

So, step 1: shoehorn in the biggest possible radiator core. And by biggest possible, I mean, "move everything else as far out of the way as I can to make more room". That starts with lifting the laser tube tray up by about 2cm. The original mounting flange is just tack-welded on. It's easy to pop it right off.

The limitation to how much higher I can go is actually the clearance of the mirrors along the left side, and the XY stage fitting under the door opening lip in the front. You can see I also nibbled off about half the depth of the left side of the door opening lip.

Aside: freehand nibbling is really hard to get straight.


xiphmont: (Default)


RSS Atom

Most Popular Tags