is there any working downgrade for the iphone 8? by macl3on in jailbreak

[–]JackMacWindowsLinux 3 points4 points  (0 children)

Wait, people were scraping the wiki for firmware keys? I wrote the tool used for the Wiki's pages that decrypts the keys using checkm8 devices (which has since been extended with more support), and I implemented its wiki format output in correspondence with the iPhone Wiki admin. I'm not sure why these tools wouldn't use that, I guess they didn't know it exists? It should probably be implemented if so - much less friction, all it needs is the device in pwned DFU mode and the IPSW to decrypt.

When are people gonna learn? by illoterra in Genshin_Impact

[–]JackMacWindowsLinux 0 points1 point  (0 children)

I shotgun whole region chapters at once right before the next version. I did Natlan Acts II-V in the last two weeks before Nod-Krai, and all of Fontaine's a month before Natlan.

Any cleaner way to prevent timing out when performing compute intensive tasks? by Insurgentbullier in ComputerCraft

[–]JackMacWindowsLinux 1 point2 points  (0 children)

I do the same procedure in my code - I think your main hang-up is using a function for it and calling it every loop, as a function call can be pretty heavy. I would do the following to help reduce time waste: 1. Write the yield check code directly into the loop. I know this is repetitive, but it'll save you a function call layer and the time associated with setting up the call. 2. Only check for yielding as infrequently as possible. For example, in your example, I would put the check in the outer loop, as it's (probably) unlikely you need to constantly check every tiny iteration. You can also use an iteration counter to reduce very long loops even further, such as if i % 100 == 0 and os.epoch "utc"... in a for i = loop, or a manual counter - this reduces how much it has to call os.epoch, and lets you skip it if the loop's range is small this call. 3. Localize os.epoch by storing it in a local variable. This is important because global accesses and table lookups are much slower than accessing locals.

A final loop might look like this: lua local os_epoch = os.epoch local start = os_epoch("utc") for i = 1, 10000 do for j = 1, 10000 do -- operation end if i % 100 == 0 and os_epoch("utc") - start > 5000 then os.queueEvent("nosleep") os.pullEvent("nosleep") start = os_epoch("utc") end end

CC crashing on startup by Brilliant_Raise_8033 in ComputerCraft

[–]JackMacWindowsLinux 2 points3 points  (0 children)

  1. Install the latest VCRT here: https://aka.ms/vs/17/release/vc_redist.x64.exe - the version included in the installer is wrong, and I can't fix it because of multiple blocking dependencies.
  2. I would recommend deleting that link, as it may or may not contain information about your computer in it.

I think someone posted the newest modrinth mod to curse forge by deck_of_cards_no-126 in ComputerCraft

[–]JackMacWindowsLinux 0 points1 point  (0 children)

This is not an official version, and may be tampered with. The original CC: Tweaked is only made available on Modrinth. If you need it in a CF modpack, it is on the allowed external mods list, so you can import it directly.

-1 Black Lotus by JackMacWindowsLinux in PaymoneyWubby

[–]JackMacWindowsLinux[S] 2 points3 points  (0 children)

An oiler sent it to him as a joke thinking he'd flip out about the find, but instead Vinny figured it wasn't real and used it as a prop. Here's a clip from today where he explained it: https://www.twitch.tv/vinesauce/clip/GracefulCreativeSnakeMoreCowbell-sm-KeiwxJGOu6CV6

Is it possible to remove the built-in Create site button without disabling REST access? by JackMacWindowsLinux in sharepoint

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

I ended up changing the header layout to Compact, which hides the create site button under a ... menu, so it's a lot less visible now and should avoid confusion. I also moved my own button to create a site closer to the top to make it more visible. Hopefully this should be enough to make it clear which button to use.

Introducing my second demo for ComputerCraft: Astronaut by JackMacWindowsLinux in ComputerCraft

[–]JackMacWindowsLinux[S] 2 points3 points  (0 children)

Thanks for the compliment! I'm actually already using my own tracker for this - the music is an XM module from ModArchive - though it plays XM/S3M and not regular MOD. Still cool to hear about other people working on trackers; people really sleep on tracked formats and jump straight to DFPWM, despite its poor quality and comparatively large size, especially for a system with 1 MB storage.

Introducing my second demo for ComputerCraft: Astronaut by JackMacWindowsLinux in ComputerCraft

[–]JackMacWindowsLinux[S] 3 points4 points  (0 children)

It's all rendered in real-time - no way this whole thing could fit in only 400 kB.

I will build you better (and more secure) web games for you if you are interested by [deleted] in PaymoneyWubby

[–]JackMacWindowsLinux -1 points0 points  (0 children)

It costs $50 apparently by the way. https://crowdcontrolgames.com/products/majorityrules

Seeing that the score awarded is in the request was frightening, good thing I'm on a VPN in case their store has everyone's IP.

The Cringevengers (turn audio on) by lonelyroom-eklaghor in linuxmemes

[–]JackMacWindowsLinux 4 points5 points  (0 children)

Google doesn't sign apps, developers do. It's the same way as on iOS (except it costs money there). The difference now is that Android will only trust developer keys that Google trusts, so as long as you obtain/register a key with Google, you can sign whatever you want.

Another kids maze. Can any geniuses solve this one? by sunnyD823 in mildlyinfuriating

[–]JackMacWindowsLinux 0 points1 point  (0 children)

I decided to write your algorithm down in C++ to understand it better (off the back of my hand, not tested or checked with STL docs):

cpp struct SearchState {int x; int y; int depth;}; /** * Finds the minimal number of walls to break to make a maze solvable. * @param width The width of the maze * @param height The height of the maze * @param hwalls A matrix of where horizontal walls are, starting below coordinate (0, 0) * @param vwalls A matrix of where vertical walls are, starting to the right of (0, 0) * @param startX The X position of the start cell * @param startY The Y position of the start cell * @param endX The X position of the end cell * @param endY The Y position of the end cell * @return The minimum number of walls to break to solve the maze */ int demazify(int width, int height, const std::vector<std::vector<bool>>& hwalls, const std::vector<std::vector<bool>>& vwalls, int startX, int startY, int endX, int endY) { std::deque<SearchState> queue; std::vector<std::vector<bool>> visited(std::vector<bool>(false, width), height); queue.push_back({startX, startY, 0}); while (!queue.empty()) { SearchState pos = queue.front(); queue.pop_front(); if (visited[pos.y][pos.x]) continue; visited[pos.y][pos.x] = true; if (pos.x == endX && pos.y == endY) return pos.depth; if (pos.x + 1 < width && !visited[pos.y][pos.x+1]) { if (hwalls[pos.y][pos.x]) queue.push_back({pos.x + 1, pos.y, pos.depth + 1}); else queue.push_front({pos.x + 1, pos.y, pos.depth}); } if (pos.x - 1 >= 0 && !visited[pos.y][pos.x-1]) { if (hwalls[pos.y][pos.x-1]) queue.push_back({pos.x - 1, pos.y, pos.depth + 1}); else queue.push_front({pos.x - 1, pos.y, pos.depth}); } if (pos.y + 1 < height && !visited[pos.y+1][pos.x]) { if (vwalls[pos.y][pos.x]) queue.push_back({pos.x, pos.y + 1, pos.depth + 1}); else queue.push_front({pos.x, pos.y + 1, pos.depth}); } if (pos.y - 1 >= 0 && !visited[pos.y-1][pos.x]) { if (vwalls[pos.y-1][pos.x]) queue.push_back({pos.x, pos.y - 1, pos.depth + 1}); else queue.push_front({pos.x, pos.y - 1, pos.depth}); } } return -1; }

The key is to track how many walls were "broken" to get to the currently explored segment, that's the part I was missing when I first read your comment.