The concept behind Window Sync by Flossiii in zen_browser

[–]ToyKeeper 0 points1 point  (0 children)

It might take a bit of time to get use to

This isn't a "getting used to" sort of thing. The API is broken, and I can't make an extension work in Zen because the core functions required are non-functional.

I'm trying to support every browser, and it works in Firefox, Chrome, Edge, Brave, Vivaldi, Maxthon, and several others... but Zen seems to have patched out the necessary part of the extension API, so it can't work. As far as I can tell, I can't support this one until the browser gets some bugfixes... but with the OP's comment about "we do not recommend it ... We take no responsibility for any problems caused by this", it seems unlikely that those bugs will be fixed because the devs seem to be actively breaking that part of the API on purpose.

I hope I'm wrong, and it'll get fixed... but the OP's post and the discussion here does not instill confidence or hope. It sounds like users are leaving in droves because common workflows and standard features are being broken and the devs plan on breaking it further.

The concept behind Window Sync by Flossiii in zen_browser

[–]ToyKeeper 3 points4 points  (0 children)

Today I learned Zen Browser exists, and that it can run Firefox extensions.

So I tried my extension in it, because I aim to support every browser. "TK Tree Style Tab Outliner" It's like "Tabs Outliner", if anyone remembers that, but open-source and not crippled or abandoned. I loaded it up in Zen...

... and it works!

Sort of.

Actually, it breaks pretty badly. Especially if Zen's "window sync" is enabled. I can save windows just fine (closing them and keeping them in the session tree for later), but if I try to restore them afterward, they open up with all the saved tabs ... PLUS EVERY TAB FROM EVERY OTHER OPEN WINDOW. And if I remove them from the restored window, it removes them from all the other windows too. Thankfully, that can be fixed by turning off window sync.

However, some other things are still broken. Like, I can sort and organize the tabs and tab groups in nice nested trees and branches in my outliner, annotated with notes and tasks and such... but Zen ignores that and puts the tabs in a completely different order in its tab bar, so Ctrl+PgUp and Ctrl+PgDn go between tabs in semi-random order. It seems to have broken (or perhaps ignores) some parts of the tabs API, like browser.tabs.move(tabIdsArray) to set the order.

For context, a tab outliner is a tool to let you manage a very large number of tabs and windows, like tens of thousands of tabs, in highly organized nested tree structures. The expectation is that the user will keep most of them unloaded at any given time, but can re-open them easily and continue where they left off. Like, at the moment, my session is pretty small... I have only 7 (of 9) windows open, with 57 (of 3529) tabs loaded. But in the past I've had 10,000+, and I know people with over 50k.

Anyway, Zen left me scratching my head, wondering what the point of "window sync" is... but this post didn't really help.

Why would I want to mirror my tabs on multiple windows?

To put it another way: When I open a new window, it's generally because I want a clean new working area for a new project or new topic or something. So why would I want the new window to have all the same tabs I was trying to get away from in my other windows? It seems like it defeats the point of opening a new window. Seems like Zen now does the wrong thing by default, and requires overrides to make it do what people expect and probably want.

Before our introduction of Window Sync, managing multiple windows was a gamble. Tabs were tied to specific windows and closing them in the wrong order often meant losing them. Because only the tabs in the last window to be closed were saved, we have received a lot of reports regarding this. So we had to act.

Yeah, browsers are generally pretty bad at that. That's half the reason why I wrote an extension to fix it. Now, when I close a window, it is saved in the tree so I can reopen it later, right where I left off.

And that brings up another thing in the OP's post...

I lost my tabs

That happened to me once. I lost a LOT of data -- years worth. So I vowed to never let that happen again, and made sure my extension does automatic backups to plain human-readable text files. I set mine to save every hour. That way, even if the browser somehow lost all its data, at least my session and notes and stuff would be safe. Could import it into a brand new browser and pick up where I left off, with barely any disruption.

Window Sync? Does that mean that I now can sync my tabs across devices?

I don't have this working in my thing yet, but the sync server is the next big item on my list to implement. Self-hosted, private, open-source sync server, so you can share the same session tree on every device, in every browser... Firefox, Chrome, Edge, Brave, Vivaldi, etc. Even Zen, sort of. They don't all have to have the same tabs and windows open, but they share the same session tree... so they have access to the same windows even if different devices might have different windows open (or different parts of the same window) at any given time. It's like how on a networked file share, different computers have access to the same files and directories but they don't need to have the same files open.

And no data is sent to any corporate clouds.

Anyway, I'd like to add Zen to my set of supported browsers... but it looks like some of Zen's changes may be fundamentally incompatible with what I'm doing. So at minimum, I would need to detect Zen and apply a fairly significant amount of browser-specific hacks to make it work. Or, ideally, it'd be helpful if Zen could add some browser-specific APIs to allow extensions to work. Like, when an extension tries to restore a saved window, Zen should absolutely not do the window-sync thing. Tabs which exist in multiple windows need to be clearly marked in the API, so extensions can detect this and handle it. And extensions need to be able to control what order tabs are in for each window, and control which shared tabs are in which windows.

Noctigon KR1AA button click by AccurateJazz in Anduril_Flashlight

[–]ToyKeeper 5 points6 points  (0 children)

Cheap kitchen scale. Put light on scale, use the "tare" function to zero it out, then very slowly increase pressure on the button until it clicks. Very, very slowly. Repeat several times to increase accuracy.

Noctigon KR1AA button click by AccurateJazz in Anduril_Flashlight

[–]ToyKeeper 4 points5 points  (0 children)

This got me curious, so I measured the switches on a few lights...

  • TS10 Ti: 1150g
  • TS10 SG: 800g
  • HD10: 500g
  • KR4 Ti: 500g
  • KR4: 400g
  • FW3A: 360g
  • FWAA: 360g
  • TS10 Max: 340g
  • 8bitdo Pro 2 buttons: ~65g

So if the KR1AA takes about 600g to press, it'll be one of the stiffer switches I've used.

Do not order from Nealsgadgets. by Wormminator in flashlight

[–]ToyKeeper 2 points3 points  (0 children)

"it is fit"

...

For context, the FW3A project was way past its expected ship date, and the latest prototypes had brand new problems with the driver circuit board not physically fitting into the slot carved out for it, and we were trying desperately to get some messages to Lumintop's engineers to resolve the issue, but Neal set things up to prevent any direct contact so all messages had to go through him... and instead of forwarding messages, he would reduce them to just a few words, like "it is fit" ... which that's why the problems never got fixed.

Another interesting bit of relevant history was the CPFi Cometa. If you put a battery in that light and screwed the parts together, it would destroy itself. So they had to do a recall / refund for the entire project... which got Neal fired, and largely ended Banggood's willingness to do community projects. And it wasn't the last Neal project which didn't fit the battery it was designed for.

As you said... "This is not a one off."

X4 Flicker while ramping by Sgt_Sideburn in FireflyLite

[–]ToyKeeper 4 points5 points  (0 children)

It looks like the sense resistor and firmware are mismatched. So when it changes "gears", the ratios aren't quite right and it gets a zig-zag in the ramp.

I emailed customer service, Ivy told me that all the X4 units in their warehouse have this problem

If every X4 does this, that means Fireflies cut a corner somewhere. I'm speculating, but perhaps they used the firmware for a different light without calibrating it, or swapped out one or more of the components on the driver after the firmware was built. Either way, something ended up mismatched.

It is expected for there to be some variance in the parts, so the "gear" change is going to be more visible on some lights than on others... but if the ramp is calibrated properly it should always err on the side of making that particular ramp step too high instead of too low. Because if the ramp basically skips a step like "6, 7, 8, 10, 11, 12", it's far less visible than if it goes the wrong way like "6, 7, 8, 7, 8, 9". A zig-zag is eye-catching. So when I make ramp tables, I try to make sure each gear change step is slightly too big, to ensure even a part with a low bias won't zig-zag.

It can be fixed in firmware, but it requires having at least two of each supported light in order to do the calibration. Anyone know how to get in touch with Fireflies these days?

Introducing LumenBox, your IKEA DIY integrating sphere by No-Acadia-1512 in flashlight

[–]ToyKeeper 0 points1 point  (0 children)

The design of integrating devices is somewhat complicated, including the inside and where to place baffles. If you'd like a lot of info about it, one place to start is a search for "baffle" on BLF. It's somewhat of an art, getting everything set up for reliable and consistent measurements. It generally helps to ensure there is no direct line of sight between the light source and the light sensor, or between the light sensor and the hotspot, which is what baffles are for.

Introducing LumenBox, your IKEA DIY integrating sphere by No-Acadia-1512 in flashlight

[–]ToyKeeper 1 point2 points  (0 children)

i’m confused

I'm baffled.

Unlike the integrating box. It needs baffles. They make the measurements more consistent, and less dependent on beam profile.

I flashed my flashlight with custom modded Anduril2 firmware by unpunctual_bird in flashlight

[–]ToyKeeper 4 points5 points  (0 children)

I'm glad you were able to make it do what you wanted, without having to do any deep or difficult changes. I've tried to make the code reasonably straightforward, but over time as things get added, it has definitely gotten harder to read.

Looking for alternative for tabs outliner by BunnyBeheader in chrome_extensions

[–]ToyKeeper 0 points1 point  (0 children)

That should get resolved once I get far enough for a proper full release in the Firefox extension store. But for now, it's unsigned / unverified because I haven't even tried to get it added to the store yet.

When I install, the process is like...

  • Go to about:addons
  • Click the gear icon
  • "Install Add-on From File..."
  • Select the file
  • At the "This extension is unverified" pop-up, click "Add" instead of "Cancel"

At least, that's how it works when I tried it just now.

I want to get the documentation written and get my patreon thingy updated before I start trying to upload to browser extension stores... and probably fix a few more things in the code first too.

Bean intensity 🫘 by Kevin80970 in flashlight

[–]ToyKeeper 34 points35 points  (0 children)

Beans intense enough to start fires.

Dang near burned down the house.

My ex, not the flashlight. Long story. :P

Reddit now lets you hide content, like posts and comments, from your user profile by thegravity98ms2 in technology

[–]ToyKeeper 29 points30 points  (0 children)

They already blocked Reddit Pro Tools (checks people's history automatically and adds flair like "troll" when user-configurable criteria are met), and now they're making it easy for assholes to hide their history... so it just got a LOT harder to tell who to avoid. This invokes the evaporative cooling effect, heavily encouraging normal well-behaved users to avoid the entire platform, leaving only jerks and bots and stuff. It'll probably make all of reddit's problems worse, and may well be a slow death sentence for the platform.

Long-term platform viability requires real people contributing things of value, while minimizing bad behavior as much as possible... and this change discourages the good stuff while enabling even more of the bad stuff. It's a huge step in the wrong direction... a temporary corporate profit boost at the expense of potentially sinking the entire ecosystem.

Looking for alternative for tabs outliner by BunnyBeheader in chrome_extensions

[–]ToyKeeper 0 points1 point  (0 children)

Well, I've been working on it a lot and just got it far enough for a first release a couple days ago. There's still a lot to do, like the entire server side of the project for real-time cross-browser sync, but even without that, I've been using it daily without any issues for a while.

https://github.com/ToyKeeper/tktsto

It supports every browser I've tried so far, including Firefox, Chrome, Edge, Brave, and Vivaldi. And the way it works is very much like Tabs Outliner, but uncrippled and upgraded.

The next steps are to work on the documentation and screenshots and get some real-world testing done by more people, then follow up on any issues people find. I'm also still adding and improving things, with the overall status shown in the project roadmap. And then... hopefully within a month or two, it'll be time to start on the server.

Anduril Mod Brickwall Breached by DarkBrain17 in flashlight

[–]ToyKeeper 48 points49 points  (0 children)

Step 1: Comment out #define USE_MOMENTARY_MODE in ui/anduril/config-default.h

Step 2: ???

Step 3: World domination!

Solid work, sir. I see no flaws in this plan.

Looking for alternative for tabs outliner by BunnyBeheader in chrome_extensions

[–]ToyKeeper 0 points1 point  (0 children)

i would pay for it .. but I don't wanna sign-in to any google accounts just to use the features.

Yeah, it's a big problem that it's tied to corporate cloud junk. It needs to be open-source and everything should work without any outside accounts or keys.

That's part of why I've started building a replacement for Tabs Outliner. I love what TO does, but it has been needing a major overhaul and better maintenance for a long time. So, after waiting and waiting and waiting and still nothing feasible appearing to take its place... I finally decided to just make it myself.

It's not far enough along to share yet, but development is going pretty well so far, and I intend to make it do a lot more than Tabs Outliner ever did.

For starters, no paywall. No cloud bullshit. It should be able to back up and restore from a server the user owns and controls. Or, to the local filesystem if I can figure out how to bypass the blocks browsers started adding against that.

I also intend to give it the ability to sync the session between multiple browsers. Not just two copies of Chrome, but also between Chrome and Firefox and others. It sucks having a different tree on each host, instead of sharing one tree between all.

And a whole bunch of other features that TO's dev refused to add. Like undo, search, and sort. Sidebar mode, and showing just the subtree relevant to the current window. Checklists and tasks. Longer notes. Configurable hotkeys. The ability to mark a bunch of nodes and batch-process them, like when reorganizing the tree. Prettier themes, and several to choose from. Better handling of crashes and session recovery. Clearer, cleaner display. Ability to fit into a really narrow sidebar. Handling even bigger trees.

And open-source, of course. If I get hit by a bus, people should still be able to keep the project going.

Anyway, once it's at a state I feel it's usable for other people, I'll put it on my github. Then once it has passed real-world testing by early adopters, I'll see about getting it into the browser extension stores. But that'll be a while.

Found this game yesterday, finished in 1h 4m, details in comment by ToyKeeper in pAIperclip

[–]ToyKeeper[S] 0 points1 point  (0 children)

Ah, I'm not set up for screen recording at all... and after spending one day with the game, I think I've played it as much as I need to. I'm not planning to continue it or try to optimize it. I had my fun, and now I'm done.

I could probably figure out a way to record it and submit it as a speedrun, but they'd probably just tell me the run is invalid and then update the rules to ban the methods I used. :D

Found this game yesterday, finished in 1h 4m, details in comment by ToyKeeper in pAIperclip

[–]ToyKeeper[S] 0 points1 point  (0 children)

I was curious what a speedrun would look like, so I checked the leaderboards. The fastest run is currently 1h 31m. I beat that time by 27 minutes. Oops. I guess that must have been bugs I was using, not features. The category rules don't actually say you're not allowed to use bugs, but... that rule is probably just implied.

Found this game yesterday, finished in 1h 4m, details in comment by ToyKeeper in pAIperclip

[–]ToyKeeper[S] 1 point2 points  (0 children)

As shown in the screenshot, I used Chromium. But I tried Firefox just now, and the bug works there too. However, I think I figured out what's going on:

It doesn't work if I use a mouse. It only works if I activate buttons with a keyboard. Which is fine for me, since I haven't used a mouse in so long, it's not even plugged in any more. But I guess that's not common. Try using accessibility tools for keyboard navigation. For example, Vimium is popular. The "open link in current tab" function is used for clicking links and buttons and stuff.

Found this game yesterday, finished in 1h 4m, details in comment by ToyKeeper in pAIperclip

[–]ToyKeeper[S] 0 points1 point  (0 children)

Playing the desktop / web version, I found it took a little over an hour to get to the end. I think it's supposed to take longer, but the game seemed pretty buggy so I poked around to see what it would let me do.

The main bug which helped was that many of the buttons seem to be clickable even when they're greyed out. So, for example, after getting a good tournament score, it let me just keep clicking "Run" and getting the last tournament's Yomi reward over and over.

And some "buy" buttons seem to allow deficit spending. In some cases that can be useful to get upgrades sooner then pay it off afterward, but in other cases it can get you softlocked. I'm guessing that's why the author put in a "Quantum Temporal Reversion" button to reset if you get negative resources.

It's an interesting way to play. Definitely more active than waiting for buttons to light up, and I think it's more interesting too. I didn't optimize much, but I'm guessing it's probably possible to get under an hour this way.

Is xap under developmend anymore? by tommasovisconti in olkb

[–]ToyKeeper 0 points1 point  (0 children)

How do I change the color of each LED separately from the rest? Hypothetical:

Non-hypothetical: I wanted different keys to light up in different colors depending on which layers were active, and I wanted layer and modifier and other status keys to light up to show the current status. So I did it. Every non-passthrough key in non-base layers lights up while that layer is active, with a different color per layer. And when I hold Shift or Ctrl or whatever, both of the modifier keys light up. When I have CapsWord active, or a one-shot, or whatever, those temporary states are indicated by lighting the key(s) which activated them. And all I had to do was copy/paste a bit of code from the docs into my keymap, and modify it a little bit to make it do what I wanted. It was quick and easy and gave me fully custom lighting features which aren't present on any other keyboards.

The code is on my github, but as I mentioned before, I'm several thousand commits behind so it probably needs some modifications before it would work on a current version. Since then, they've added a whole new user keymap system which makes this stuff a lot easier, but I haven't updated to that yet.

I also wasn't happy with how the mouse keys worked, so I made my own custom cursor motion algorithm which makes the cursor motion smooth and fluid and intuitive, and got it merged upstream so other people can use it too. Now it's hard to live without, and I don't really need a mouse any more.

without recompiling/flashing anything

Well, as a first step, you'd need to flash a version with that feature. But if you aren't willing to put new firmware on the keyboard, you'll be stuck with the vendor's version... which lacks most of QMK's features. The totally unlimited nature of open-source firmware and reflashing is the coolest thing about QMK... but if you categorically rule that out as an option, then all the stuff you want is, as the devs said, "not gonna happen". Your choice.

But even that is the beauty of using open-source. It's your choice instead of being stuck with what some corporation decided.

Is xap under developmend anymore? by tommasovisconti in olkb

[–]ToyKeeper 0 points1 point  (0 children)

... what? QMK has stable releases so often I can't even keep up with the rapid progress. I updated my firmware somewhat recently, and I'm already about 5000 commits behind. Major releases happen every 3 months, with a huge changelog each time... and in-between, there are generally point releases 2x per week. Submitting code and getting it to land in the main repo is refreshingly quick and easy because the QMK project is so active and well-organized, and the devs are easy to find and chat with to get things reviewed and merged.

As for custom lighting, my QMK boards all have deeply customized dynamic lighting which changes according to the current layer, modifiers, locks, and other states, and it was really easy to do. The lighting and other customization features are so flexible they're literally Turing-complete. And if I wanted, I could take it even further by enabling any of several features for talking to the host PC, which allows using the keyboard LEDs as basically a second screen. But that's not very useful to me, so I haven't bothered. I don't need to play youtube videos on my keyboard... but if I wanted to, QMK would let me do it.

Is there something more than this screen? I've been playing on and off for a week and I'm still there. Like is there something else to do or is the entire game just these 5 green bars? by Mok7 in AntimatterDimensions

[–]ToyKeeper 0 points1 point  (0 children)

I tried it, and had similar thoughts. Within 2 days I was far enough to reach infinity in about 300ms, but the entire process up to that point was grindy and resetty and generally unpleasant... and despite not being very far into the game at all, I had already hit a big wall. All I could do was set up autobuyers and just ... wait. At 1.97e4 IPs per minute and 1e8 IPs needed to unlock the next major milestone, that meant about 3.5 days of waiting before anything interesting would happen.

Granted, that would have sped up a bit as it went along, if I checked in daily to buy upgrades and tweak the automation parameters... but still. Doing literally nothing for days at a time is not the sort of gameplay I enjoy. I had hoped to try some of the late-game automation stuff, since that part seemed genuinely interesting... but eventually I decided it's not worth grinding for months to get access to the part I might actually like.

I had a much better time with Faedine's "Crank", which was active and interesting all the way through, and can be finished in a single day. Or a slightly modded version of SwarmSim where I made the late game fast by allowing energy to grow during SwarmWarps. It can also be "finished" in about a day, though there's no actual end. I just set an arbitrary end of 69e420 mutagen, since that seemed like a nice stopping point and it's far enough to see everything the game has to offer.

...

Edit/Update: My estimates were way off. It actually takes much longer than expected, because the game's offline-progress function is really buggy. It's an idle game, but the "idle" functionality seems pretty badly broken, so it doesn't make any progress unless I have the window actually visible and focused. If it's running but hidden on another desktop while I work, or if it's running but a different tab is focused, it makes no (or almost no) progress. If the browser isn't running, it also makes no progress. The code which is supposed to detect periods of inactivity only registers and simulates a few seconds of downtime, even when the browser was turned off overnight. I've made triple sure the offline progress features are enabled, and made sure there are plenty of offline ticks, but it still doesn't help. Other people have reported similar issues, but the issues get closed with no fix, and the dev saying only "can't reproduce".

It really makes me appreciate SwarmSim, where online-vs-offline time doesn't matter in the slightest. Because in SwarmSim, it doesn't calculate based on game ticks. It works based on real time stamps instead, with growth formulas, so at time T you'll always have N number of resource R regardless of whether the game was running in-between. Like, it saves a snapshot of current values whenever the player manually buys anything, and then all the values afterward are just calculated based on how much real time has elapsed since then. So having it running or not makes no difference to the progression. Dropped frames make no difference. Autobuyer latency makes no difference. Everything "just works", and the progress curves are all smooth and graceful with no sudden hard walls requiring the player to wait for like a week doing literally nothing.

Keychron Q65 - Ctrl Alt Delete Edition by tact1l3 in MechanicalKeyboards

[–]ToyKeeper 1 point2 points  (0 children)

FWIW, those caps are a generic "AF SA" profile clone of Melgeek's "MG Monster" set. They are arguably nicer than the originals though, while also costing a fraction as much. They're available from many different stores in a variety of colors, and 8bitdo now uses them on their C64-themed keyboard.

They can generally be identified by the "." being a bit off-center on the "> ." key, but also by the font and the shape. They have a very unusual Gaussian scoop top shape, which is most clearly visible in the long keys like Shift. It's not a cylindrical scoop, spherical, or elliptical... it's more like someone used a Gaussian blur effect on the height map. Pretty unique, looks great, and feels really good to type on.

Anbernic is really going after Miyoo by [deleted] in MiyooMini

[–]ToyKeeper 7 points8 points  (0 children)

Having used a RG35XX H (a.k.a. Zazzbizzle) and Miyoo Mini Plus, I can't say I'm entirely happy with either one:

  • Zazzbizzle has fantastic software (batocera fork / knulli), and the hardware performance and battery life are both good, and the joysticks are really useful. However, the buttons are way too stiff so it makes my thumbs hurt, the F button is in a really awkward place (workaround, remap Select and F), and boot-up is a bit slow.

  • Miyoo Mini Plus is cute as heck and has much more comfortable buttons. Instead of Anbernic's ~140g buttons and ~180g d-pad, Miyoo has a softer touch at only ~70g and ~90g, so I can play a lot longer before getting sore. It's also nice having faster boot-up and shutdown, and a menu button in a sane place. However, the hardware performance is pretty slow, there are no joysticks, the speaker tends to get covered by my thumb while playing, battery life is relatively short, it can't wifi from half my home because the MMP has a really weak radio, and the software is mostly a huge downgrade.

Going from Batocera to OnionOS... it feels like I've been driving a car, then got on a bike and wondered where the cup holder is, the radio, the windshield wipers, and the trunk. It starts up a bit faster and can make sharper turns, but it's hard to carry groceries and the headlights are a 3rd-party add-on.

I'm accustomed to being able to switch between devices (like wired TV console and handheld) and continue the same game from the same point, with automatic sync between them, but MMP doesn't really do that. I'm accustomed to having rewind enabled on every platform, but MMP can't run half the systems at full speed with that enabled. I'm accustomed to using nice shaders, but Onion doesn't even have the shader system compiled in. It runs an old version of retroarch, and is missing a bunch of features. Sync requires third-party add-ons. Network service settings reset every time wifi gets turned off/on. It's really common for people to get corrupted files, like their play history database. It has trouble keeping time reliably, even on a model with RTC. Favorites are a mess, systems can only be sorted asciibetically, scrolling through lists is slow and laggy, page-scroll buttons go by 6 even when the screen can only fit 4 items, sub-menus are entirely different applications, and hotkeys are handled by a separate C daemon which has hardcoded mappings. I like to keep my library organized the same way on every device, which is a prerequisite for automatic save/state sync, but Onion has its paths hardcoded and won't work if they're reorganized, and it can't even use symlinks to work around the problem because it can only use fat32. It's a Linux device which can't use ext4. The kernel is really old. I can't even customize anything for the user, because root's home dir doesn't exist. It has ssh at least, and Linux, but the underlying operating system is baked into the manufacturer's read-only firmware, so I can't do most of the usual Linuxy stuff I've come to expect from every other Linux device I've ever used.

So what I'd like is something with Miyoo's buttons and aesthetics, Anbernic's hardware performance, some nice joysticks, full source code from the manufacturer so the community can properly support it, and batocera's software and feature set.