ch00f

joined 2 years ago
[–] ch00f 9 points 3 days ago

Well I mean the false ending

[–] ch00f 12 points 3 days ago (3 children)
[–] ch00f 13 points 4 days ago* (last edited 4 days ago)

NYTimes, July 12, 1952

They ultimately got her, but they put up a hell of a fight.

[–] ch00f 81 points 4 days ago (7 children)

Yeah though towns used to rule together to beat the shit out of bankers forclosing on widow’s homes, so that’s something we could start doing again.

[–] ch00f 12 points 4 days ago (4 children)

https://sunbeamwireless.com/

Been rocking this for over a year

[–] ch00f 5 points 5 days ago (1 children)

Yeah, it is frustrating that the license is tied to the physical disc. Especially when they won't send you a replacement for a damaged disc.

I personally buy, rip, and keep the physical discs of my collection which is now well over 1,000 titles. It's a lot of work, and takes up a lot of space, but it's also a hobby I enjoy. I'd much prefer if I could just buy a license for the film and watch it or store it however I want.

You know, this might actually be a decent application for NFTs.

[–] ch00f 12 points 5 days ago (4 children)

Eh. A few more steps to rip the content, but not bad really.

Now UHD Blu-ray is a different story. There are a limited number of drives that could do it before their firmware was patched.

[–] ch00f 34 points 6 days ago (3 children)

Two Towers ”The Hot One”

Have you never seen Viggo open a doors?

[–] ch00f 5 points 1 week ago (1 children)

Good time to invest in a cocaine producer.

[–] ch00f 97 points 1 week ago (13 children)

Pretty dangerous for a vampire to invest in a market that's only open during the day.

[–] ch00f 1 points 1 week ago

y'know, it used to be that you paid money for things and there wasn't even an ad option.

[–] ch00f 25 points 1 week ago (1 children)

That’s why I like to check if someone has already rooted a purpose-built gadget before buying.

My RabbitAI will make a nice little MP3 player when the company folds.

 

I originally told the story over on the other site, but I thought I’d share it here. With a bonus!

I was working on a hardware accessory for the OG iPad. The accessory connected to the iPad over USB and provided MIDI in/out and audio in/out appropriate for a musician trying to lay down some tracks in Garage Band.

It was a winner of a product because at its core, it was based on a USB product we had already been making for PCs for almost a decade. All we needed was a little microcontroller to put the iPad into USB host mode (this was in the 30-pin connector days), and then allow it to connect to what was basically a finished product.

This product was so old in fact that nobody knew how to compile the source code. When it came time to get it working, someone had to edit the binaries to change the USB descriptors to reflect the new product name and that it drew <10mA from the iPad's USB port (the original device was port-powered, but the iPad would get angry if you requested more than 10mA even if you were self-powered). This was especially silly because the original product had a 4-character name, but the new product had a 7-character name. We couldn't make room for the extra bytes, so we had to truncate the name to fit it into the binary without breaking anything.

Anyway, product ships and we notice a problem. Every once in a while, a MIDI message is missed. For those of you not familiar, MIDI is used to transmit musical notes that can be later turned into audio by whatever processor/voice you want. A typical message contains the note (A, B, F-sharp, etc), a velocity (how hard you hit the key), and whether it's a key on or key off. So pressing and releasing a piano key generate two separate messages.

Missing the occasional note message wouldn't typically be a big deal except for instrument voices with infinite sustain like a pipe organ. If you had the pipe organ voice selected when using our device, it's possible that it would receive a key on, but not a key off. This would result in the iPad assuming that you were holding the key down indefinitely.

There isn't an official spec for what to do if you receive another key-on of the same note without a key-off in between, but Apple handled this in the worst way possible. The iPad would only consider the key released if the number of key-ons and key-offs matched. So the only way to release this pipe organ key was to hope for it to skip a subsequent key-on message for the same key and then finally receive the key-off. The odds of this happening are approximately 0%, so most users had to resort to force quitting the app.

Rumors flooded the customer message boards about what could cause this behavior, maybe it was the new iOS update? Maybe you had to close all your other apps? There was a ton of hairbrained theories floating around, but nobody had any definitive explanation.

Well I was new to the company and fresh out of college, so I was tasked with figuring this one out.

First step was finding a way to generate the bug. I wrote a python script that would hammer scales into our product and just listened for a key to get stuck. I can still recall the cacophony of what amounted to an elephant on cocaine slamming on a keyboard for hours on end.

Eventually, I could reproduce the bug about every 10 minutes. One thing I noticed is that it only happened if multiple keys were pressed simultaneously. Pressing one key at a time would never produce the issue.

Using a fancy cable that is only available to Apple hardware developers, I was able to interrogate the USB traffic going between our product and the iPad. After a loooot of hunting (the USB debugger could only sample a small portion, so I had to hit the trigger right when I heard the stuck note), I was able to show that the offending note-off event was never making it to the iPad. So Apple was not to blame; our firmware was randomly not passing MIDI messages along.

Next step was getting the source to compile. I don't remember a lot of the details, but it depended on "hex3bin" which I assume was some neckbeard's version of hex2bin that was "better" for some reasons. I also ended up needing to find a Perl script that was buried deep in some university website. I assume that these tools were widely available when the firmware was written 7 years prior, but they took some digging. I still don't know anything about Perl, but I got it to run.

With firmware compiling, I was able to insert instructions to blink certain LEDs (the device had a few debug LEDs inside that weren't visible to the user) at certain points in the firmware. There was no live debugger available for the simple 8-bit processor on this thing, so that's all I had.

What it came down to was a timing issue. The processor needed to handle audio traffic as well as MIDI traffic. It would pause whatever it was doing while handling the audio packets. The MIDI traffic was buffered, so if a key-on or key-off came in while the audio was being handled, it would be addressed immediately after the audio was done.

But it was only single buffered. So if a second MIDI message came in while audio was being handled, the second note would overwrite the first, and that first note would be forever lost. There is a limit to how fast MIDI notes can come in over USB, and it was just barely faster than it took to process the audio. So if the first note came in just after the processor cut to handling audio, the next note could potentially come in just before the processor cut back.

Now for the solution. Knowing very little about USB audio processing, but having cut my teeth in college on 8-bit 8051 processors, I knew what kind of functions tended to be slow. I did a Ctrl+F for "%" and found a 16-bit modulo right in the audio processing code.

This 16-bit modulo was just a final check that the correct number of bytes or bits were being sent (expecting remainder zero), so the denominator was going to be the same every time. The way it was written, the compiler assumed that the denominator could be different every time, so in the background it included an entire function for handling 16-bit modulos on an 8-bit processor.

I googled "optimize modulo," and quickly learned that given a fixed denominator, any 16-bit modulo can be rewritten as three 8-bit modulos.

I tried implementing this single-line change, and the audio processor quickly dropped from 90us per packet to like 20us per packet. This 100% fixed the bug.

Unfortunately, there was no way to field-upgrade the firmware, so that was still a headache for customer service.

As to why this bug never showed up in the preceding 7 years that the USB version of the product was being sold, it was likely because most users only used the device as an audio recorder or MIDI recorder. With only MIDI enabled, no audio is processed, and the bug wouldn't happen. The iPad however enabled every feature all the time. So the bug was always there. It's just that nobody noticed it. Edit: also, many MIDI apps don't do what Apple does and require matching key on/key off events. So if a key gets stuck, pressing it again will unstick it.

So three months of listening to Satan banging his fists on a pipe organ lead to a single line change to fix a seven year old bug.

TL;DR: 16-bit modulo on an 8-bit processor is slow and caused packets to get dropped.

The bonus is at 4:40 in this video https://youtu.be/DBfojDxpZLY?si=oCUlFY0YrruiUeQq

 
9
submitted 6 months ago* (last edited 6 months ago) by ch00f to c/[email protected]
 

So my wife cracked the screen of her Playdate console. I got a replacement memory LCD (Sharp LS027B7DH01A), but the LCD is mounted with optically clear adhesive directly to a piece of glass which is adhered around the edges to the console’s faceplate.

The glass measures 65.15x41.64mm by 0.65mm thick. Definitely not a standard size. I can’t find anywhere to buy glass so thin and so large.

My first thought was to cut a phone screen protector down to size with a glass cutter. My first attempt failed because the screen protector I bought was actually coated in plastic on both sides. Even if I got a straight cut, I couldn’t find a way to slice through the plastic layers cleanly.

Any ideas on where to find cuttable glass sheets this thin? I could try more screen protectors, but there’s no way to know if they’ll work before buying them.

 

Let’s call it hybrid soldered memory

 

So my home office is in our basement while my wife’s is in a finished attic space. We have a mini split system, but it has to be all heat or all cooling, and many days it’s cold in my office, but hot in my wife’s office.

Thanks to a defunct chimney, I have a pretty decent path from the attic to the basement that could easily accommodate some kind of ducting.

I’d like to make a system that can push air from my office to hers or vice versa as needed. I think this would really help the house in general as cold air tends to pool in the basement.

I’ve seen plenty of ducting booster fans, but I’d like something with a speed (or at least direction) control accessible from the outside.

Does something like this exist? It would need to force air through maybe 30-40’ of ducting.

14
submitted 9 months ago by ch00f to c/selfhosted
 

Per my previous post, I’m working on updating my server that’s running a J3455 Celeron with 16gigs of ram.

Goals:

  • Support at least six hard drives (currently have six drives in software RAID 6). Can move 7th main drive to nvme.
  • Be faster at transcoding video. This is primarily so I can use PhotoPrism for video clips. Real-time transcoding 4K 80mbps video down to something streamabke would be nice. Despite getting QuickSync to work on the Celeron, I can’t pull more than 20fps unless I drop the output to like 640x480. Current build has no PCIe x16 slot.
  • Energy efficiency. Trying to avoid a dedicated video card.
  • Support more RAM. Currently maxed at 16gb.
  • Price: around $500
  • Server-grade hardware would be nice, but I want newer versions of quicksync and can’t afford newer server hardware. Motherboard choice is selected primarily because of chipset, number of SATA ports, and I found one open box.

https://pcpartpicker.com/list/JX2gHG

Hoping to move my main drive to the NVME and keep the other six drives as-is without needing a reinstall.

Thoughts?

32
submitted 9 months ago* (last edited 9 months ago) by ch00f to c/[email protected]
 

I've been running a headless Ubuntu server for about 10 years or so. At first, it was just a file/print server, so I bought a super low power motherboard/processor to cut down on the energy bill. It's a passively cooled Intel Celeron J3455 "maxed out" with 16BG of RAM.

Since then it's ballooned into a Plex/Shinobi/Photoprism/Samba/Frigate/MQTT/Matrix/Piwigo monster. It has six drives in RAID6 and a 7th for system storage (three of the drives are through a PCI card). I'm planning on moving my server closet, and I'll be upgrading the case into a rack-mount style case. While I'm at it, I figured I could upgrade the hardware as well. I was curious what I should look for in hardware.

I've built a number of gaming PCs in the past, but I've never looked at server hardware. What features should I look for? Also, is there anything specific (besides a general purpose video card) that I can buy to speed up video encoding? It'd be nice to be able to real-time transcode video with Plex.

 

EDIT: For anybody coming across the same issue, USB was the problem. I was trying to avoid having 12" of radio equipment sticking directly out of my laptop where it could easily be snapped off, so I used a little USB power meter as a short extension cord to let it bend. I don't know if it was the power meter or my laptop, but when I replaced the power meter with a short USB extension cord wrapped a few times around an ferrite E-core, the issue went away. I only got noise at the extreme horizons, and touching the antenna made no change.

I've ordered a USB extension cord with ferrite integrated to use in the future. $8 on Amazon.

I'm working on a V-dipole to pick up 137.5MHz NOAA APT transmissions. I found that when lowering the antenna closer to ground than my design, performance improved. I believe this is because the pavement in front of my house is not a great conductor, so my reflecting ground plane is actually a few inches below the surface.

The thing I can't explain is why I get such a dramatic improvement in performance when I use my finger to touch just the arm of the dipole connected to the center conductor of the coax. The difference is night and day. The surrounding noise in the signal drops to the point that it’s inaudible, but the radio signal is relatively unaffected. Touching the shield conductor does nothing.

I picked up a cheap VNA and was able to determine that touching the antenna does slightly de-tune it, but the impact is the same for both arms. With the configuration I have, the SWR is something like 1.07 before touching it, and it rises to around 1.2 when I do.

I've heard about surface currents that can cause problems, but those only occur on the outside of the shield conductor, and I have a ferrite choke right at the feed point anyway.

What's going on here?

EDIT: to add that I'm using a Nooelec SDR with a SAW filter tuned to NOAA frequencies as well as a terrestrial AM blocker. This is connected to a Framework laptop on battery power. I'm curious if this could be an electrical issue coming from my laptop.

 

I’ve been working on improving performance and portability of my V-dipole for NOAA weather satellite reception.

Previously, I had the antenna mounted to a PVC pipe stuck in the dirt in my backyard at the appropriate 0.44~ish meters.

Today, I tried it in the front street with a new free standing mount. Despite being at the appropriate height, SNR was terrible unless I physically touched the antenna rod connected to the center conductor. Also, there’s already a ferrite choke on the cable close to the antenna.

I’m trying to work out how much could be different between my front road and backyard. Is it possible that the layer of asphalt is not acting like an appropriate ground plane mirror? Should I create a physical ground plane? For the record, grass was wet and asphalt was dry.

I’ve ordered a cheap NanoVNR to investigate, but in the meantime, I thought I’d ask since I only get so many chances to test the antenna.

 

A few years ago, I picked up a Canon Vixia HF R800 HD camcorder used off eBay for $200. I was tired of filling up my phone with long-form video recordings (family weddings, etc), and I liked having the large optical zoom.

I was thinking of upgrading this year to 4k, and it seems that everything is either $150 scamware off Temu or at least $1k jobs from Canon or Sony.

Obviously I expect a price hike for 4k, but is it that much more expensive to make a 4k camcorder? Five years later, and they're still 5x more expensive than 1080p?

 

Took me a few days to get around to it, but here's two SDRs tuned to 137.9125MHz (frequency for APT from NOAA18) and 152MHz (frequency I found with some pager traffic).

Though there wasn't always a perfect correlation (I assume there are other pager frequencies in use), there were definitely instances where a pager message corresponded perfectly with the broadband signal dip at the APT frequency. This is a solid 10+ MHz away and through a SAW filter, so I suspect the dip is less overloading the SDR and more some internal gain adjustment? I had auto-gain turned off.

Either way, it doesn't seem to impact my APT signal reception, it's just an odd quirk.

 
view more: ‹ prev next ›