|
More not interesting looking things! UE4's save system seems pretty garbage for what I'm trying to do. As far as I can tell, it only writes to binary, so if you might change your save format, poo poo breaks. It also doesn't like pointers to complicated objects, like, say, Actors, so if it hits one, it'll just write out the name and call it a day. Probably fine for networking and baked in objects, not so great if you're spawning them on the fly. So I wrote a thing to recursively iterate through all the UProperty's on a UObject (and children), check for the SaveGame flag they use for their save system and write it all to a JSON string instead. It will also write the name and class of any UObject pointers so I can re-spawn them on load, and I can add whatever else I might need later. Now I just need to write a loader to match .
|
# ? Aug 10, 2018 06:27 |
|
|
# ? May 9, 2024 07:24 |
|
Not a screenshot, but some metrics from a project I inherited. We had a suit of unit tests that took 1m30s to run, mostly because the units were actually tested in the integration tests that required Spring Boot to spin up at every new testclass. Also there were a ton of Thread.sleep(5000) in the @Before methods to allow for database initialization of elasticsearch. The first I fixed by separating the code level unit tests from the integration tests and building separate runners in Intellij. Now slowly I am dissecting the integration test to only test integration and move business rules from the controller to their own class as to make them unit testable. The second I fixed by simply looking at the elasticsearch docs and replacing the explicit wait with conditional waits, as there is a waitForRefresh call that will return 200 when the refresh is done. The full run now is 30 seconds and the unit tests only less than 2 seconds. It made me happy, alright? One microservice down, only 6 more to go.
|
# ? Aug 10, 2018 08:20 |
|
I started writing a DOS game and I think I accidentally wrote a windowing system instead. https://twitter.com/LuigiThirty/status/1027103445080268800
|
# ? Aug 10, 2018 09:21 |
|
Luigi Thirty posted:I started writing a DOS game and I think I accidentally wrote a windowing system instead. Well cool, maybe you can incorporate that into your game! Then port it to Steam, but have a copy of the original DOS version people can order on a floppy disk! Too soon?
|
# ? Aug 13, 2018 18:23 |
|
Luigi Thirty posted:I started writing a DOS game and I think I accidentally wrote a windowing system instead Haha, story of my life too. Should be the thread title.
|
# ? Aug 13, 2018 19:21 |
|
Realtime wacky photo effects and on imported images, which let you export to gif if you want too. Swift on iOS e: sorry these were annoying large Good Sphere fucked around with this message at 19:16 on Aug 15, 2018 |
# ? Aug 13, 2018 21:39 |
|
Star War Sex Parrot posted:In a similar "not that interesting of a screenshot" but I think it's cool: Google Benchmark numbers from my laptop of inserting 100 million tuples 10x... Next up: garbage collection. Star War Sex Parrot fucked around with this message at 23:18 on Aug 13, 2018 |
# ? Aug 13, 2018 22:23 |
|
Frozen Peach posted:I've been learning about state machines and message queues at work lately.
|
# ? Aug 14, 2018 08:51 |
|
Star War Sex Parrot posted:Next up: garbage collection. Garbage collection: it works. I’ll leave my laptop running UINT32_MAX transactions overnight just for kicks. Star War Sex Parrot fucked around with this message at 23:36 on Aug 23, 2018 |
# ? Aug 23, 2018 23:32 |
|
Star War Sex Parrot posted:
So, what are you building? A custom DBMS?
|
# ? Aug 24, 2018 10:03 |
|
Mr Shiny Pants posted:So, what are you building? A custom DBMS? Star War Sex Parrot fucked around with this message at 13:07 on Aug 24, 2018 |
# ? Aug 24, 2018 12:57 |
|
Star War Sex Parrot posted:Yep, so far the backend is coming together nicely. There’s a PAX-inspired in-memory column store, Hyper-inspired multiversion concurrency control (albeit stripped down to Snapshot Isolation for simplicity right now), and a basic garbage collector to prune old versions. The next thing is logging for durability and then the storage engine is ready to be buttoned up and have a SQL execution engine bolted on top. Not to be combative, there was nothing already out there? Seems like quite a bit of work, not that doing work is wrong mind you. Special use case?
|
# ? Aug 24, 2018 17:36 |
|
Mr Shiny Pants posted:Not to be combative, there was nothing already out there? Mr Shiny Pants posted:Seems like quite a bit of work, not that doing work is wrong mind you. Star War Sex Parrot fucked around with this message at 18:06 on Aug 24, 2018 |
# ? Aug 24, 2018 17:42 |
|
Star War Sex Parrot posted:Nope. All of the state-of-the-art systems (Hekaton, Hyper, HANA, MemSQL) are closed source. We’re basically just reimplementing variants of the systems described in their papers (MVCC and LLVM JIT from Hyper, Bw-tree from Hekaton, etc.). I think the only lifted code will be Postgres’ parser. That sounds very, very cool. Which language are you using? Edit: What is the business case for something like this if you don't mind me asking? SAP too expensive? Or they don't provide it in the manner you want? Mr Shiny Pants fucked around with this message at 19:02 on Aug 24, 2018 |
# ? Aug 24, 2018 18:36 |
|
Spent some time learning how to use this logic analyzer to track down a crash I'm seeing in hardware, but not in emulation, for a hack project I'm working on. This has been driving me nuts and without a repro case on anything but actual hardware it's been really hard to debug. I finally get it going and the addresses seem sane, and then it just hangs on a write to $5FFF88. It hasn't run into the weeds and the poo poo, but it's just sitting there. Arguably a hardlock, not a crash. From what I can tell a write address is underflowing into an unhandled region of memory. On one variant of this hardware and in the emulator this is a don't-care condition and everyone's happy, but on this particular board /DTACK is never asserted so the program hangs. Going to test out a patch that jumps to a small range check and makes these writes conditional. In theory I could short /DTACK to ground and get the program to jump past this bit. I couldn't test my fix this morning because I was out of blank EPROMs to burn; we'll see after work.
|
# ? Aug 24, 2018 18:38 |
|
Mr Shiny Pants posted:That sounds very, very cool. Which language are you using? Mr Shiny Pants posted:Edit: What is the business case for something like this if you don't mind me asking? SAP too expensive? Or they don't provide it in the manner you want?
|
# ? Aug 24, 2018 19:11 |
|
Star War Sex Parrot posted:Nope. All of the state-of-the-art systems (Hekaton, Hyper, HANA, MemSQL) are closed source. We’re basically just reimplementing variants of the systems described in their papers (MVCC and LLVM JIT from Hyper, Bw-tree from Hekaton, etc.). I think the only lifted code will be Postgres’ parser. Just curious, you intend to opensource yours?
|
# ? Aug 24, 2018 20:49 |
|
Krankenstyle posted:Just curious, you intend to opensource yours? Star War Sex Parrot posted:I can share the repo in a week or so once our design docs are a bit more fleshed out. Unless you've read a few database design papers the codebase might be a bit unapproachable right now. Star War Sex Parrot fucked around with this message at 21:15 on Aug 24, 2018 |
# ? Aug 24, 2018 21:07 |
|
Awesome!
|
# ? Aug 24, 2018 21:32 |
|
Spraynard posted:Spent some time learning how to use this logic analyzer to track down a crash I'm seeing in hardware, but not in emulation, for a hack project I'm working on. This has been driving me nuts and without a repro case on anything but actual hardware it's been really hard to debug. I finally get it going and the addresses seem sane, and then it just hangs on a write to $5FFF88. It hasn't run into the weeds and the poo poo, but it's just sitting there. Arguably a hardlock, not a crash. What kind of board is that? I don’t recognize it
|
# ? Aug 29, 2018 07:23 |
|
Looks like an arcade machine board, which goes with the 'emulation' part, but アスパイア just gives me Acer laptops.
|
# ? Aug 29, 2018 21:40 |
|
The board is Gaia Crusaders and I'm porting something from other similar hardware to it. My fix worked; I put in a patch to check for underflow and not write to VRAM at $5XXXXX, and now it's not locking up any more. ROMs burnt, case closed. There is still one more hardware issue and it's that the blanking signal for the video output is off by one pixel so the left side of the screen gets one extra column of data (consisting of off-screen tilemap data and no sprites) while the right side is cut off by one column. This might be fixable with just a D flip flop so long as I can find the dot clock signal.
|
# ? Aug 30, 2018 18:40 |
|
I should have you look at our glitchy Pyros. It doesn't like to cold boot but maybe that's just chip creep. On the other hand, I was always convinced the sound is hosed up, but I guess the voices are supposed to sound like this? https://www.youtube.com/watch?v=cEClHhd9ieU&t=46s
|
# ? Aug 30, 2018 21:55 |
|
If it works after a forced reset, check electrolytic caps used in the reset circuit as well as main filter caps for the main 5V rail
|
# ? Aug 31, 2018 22:51 |
|
I got flat shading and camera movement working together in my Glide 3D engine. Now stuff is properly lit wherever it is in the scene. (I think, but it’s close enough.) https://twitter.com/LuigiThirty/status/1036455871587471361
|
# ? Sep 3, 2018 08:22 |
|
Worked a little bit more on my Hypderdock-like window preview thingy for Mac
|
# ? Sep 5, 2018 02:08 |
|
Spraynard posted:If it works after a forced reset, check electrolytic caps used in the reset circuit as well as main filter caps for the main 5V rail I'm pretty sure it got a big blue kit done, but I'd have to check. I don't remember the specifics, but I think it's just a video scramble and you can start the game and hear sounds, but maybe we never touched it. It'll end up with my brother eventually. Meanwhile my Gravitar is hard enough to move around and have space for, and the red channel is off by one whole pixel. Drives me nuts. Ranzear fucked around with this message at 01:19 on Sep 6, 2018 |
# ? Sep 6, 2018 01:17 |
|
Ranzear posted:I'm pretty sure it got a big blue kit done, but I'd have to check. I don't remember the specifics, but I think it's just a video scramble and you can start the game and hear sounds, but maybe we never touched it. It'll end up with my brother eventually. Time to separate the middle convergence rings to align red/blue into magenta, then do the same with the furthest set to bring green/magenta together. For the pairs twisting in opposite directions brings colors closer or together while moving together affects positional offset. CRT convergence in minutes!
|
# ? Sep 7, 2018 01:33 |
|
It's a color vector by the way. I have two complete manual sets and the full procedure is insane. Something like four pages of a 20 page manual. Awesome to know that it's all driven by analog signals right off the board though. I might actually be able to cheat it over with board adjustment but I have to drill the lock again because now it's jammed after I drilled it the first time after losing the key. I also just don't really want to poke around CRT voltages like ... ever. Also this cabinet weighs 450 pounds, no joke. Ranzear fucked around with this message at 03:19 on Sep 10, 2018 |
# ? Sep 10, 2018 03:15 |
|
Crosspost from programming questions. My Dad has 8mm films of things like his wedding, a trip to the bahamas, europe, Toronto + Niagra falls, etc. This stuff is all at least 40-50 years old. A few years back, he began working on digitizing it with a projector and camera setup. https://i.imgur.com/gIEXbby.webm The problem is obvious: there's no tracking so it just becomes a film of a film whizzing by. I used opencv to track the sprockets and crop the resulting image to frame: https://i.imgur.com/UfkUhTk.webm grayscale->threshold->findContours->get bounding rectangle->verify it's the right size in the right place->crop original image->save I add a tiny border around it to stop the feature I'm looking at from touching the edge, as that creates a contour around the entire image frame. I even handle joining two contours because there's a hair across the sprocket hole which turns it into two contours. Project is here: https://github.com/harikattar/8mm/blob/master/8mm.py E: It's not perfect but it's my first foray into opencv and I only spent a few hours on it so far. It's not 100% yet, the beginnings of all the films are burned (as amateur 8mm is wont to do) as the sprocket holes let light through the guard band at the beginning and it bled out. That throws off the CV shape matching because it's a big amorphous blob. There's clearly enough data there to identify the sprocket so I'll work on better thresholding and identification. If anyone's done opencv work and has ideas for better identifying shapes I'd love to hear it. I'm just using the bounding rectangle instead of a complicated rectangle with rounded corners match.
|
# ? Sep 16, 2018 19:29 |
|
That's cool as heck. I've never used openCV so dunno if it's easy, but it has a bunch of stuff for feature detection and registration/motion estimation, perhaps you could use that with the actual content of the film, frame by frame, to estimate or fine tune where the image should be cropped when you can't find a decent match for the sprocket holes?
|
# ? Sep 16, 2018 20:50 |
|
toiletbrush posted:That's cool as heck. Second reason is most frames I get two shots at as they go by, so I can usually get one of them. What I will do that for is making an accurate frame counter - do motion estimation of those sprocket holes so I know for sure if I've dropped a real frame or not. Right now I may drop one frame and get the next one twice because it just treats each input image individually. It turns out that fitting a shape inside a shape is actually a non-trivial problem in computer vision. As a human I can see where it "should" go, but actually fitting it means finding rectangles that fit and adjusting the center. Lots of easy ways to say "Given these two centers, is there overlap?" but not easy to say "tell me the center where shape B fits in shape A" Especially when you say "allow minimal edge incursions because it may be noisy"
|
# ? Sep 16, 2018 23:35 |
|
I decided to do that emulator101 thing in typescript Up next is adding I/O emulation and working on the speed (by getting rid of the logging to the dom) Edit: Finally uploaded. Not user friendly yet. duz fucked around with this message at 02:42 on Sep 23, 2018 |
# ? Sep 17, 2018 01:21 |
|
I bought a TinyFPGA last month and decided the best way to learn Verilog would be to design an 8-bit computer. 16MHz processor with a 6502-style architecture (though compatibility isn't a goal), 1KB of RAM, 4KB of ROM, 9600bps UART. 40x25 text mode display with a simple ASCII plus symbols character set. All hooked up on a breadboard with composite video out (tested on an old PVM, this picture's on an LCD monitor). I wrote a little assembler in Python for programming it. Now it's time to write some software for it!
|
# ? Dec 29, 2018 10:33 |
|
holy hell pls make a program that flashes colors and writes penus
|
# ? Dec 29, 2018 17:55 |
|
Krankenstyle posted:holy hell Gob's Program: Y/N?
|
# ? Dec 29, 2018 23:15 |
|
luigi, check it (c64 "dialect" lol):code:
|
# ? Dec 30, 2018 00:18 |
|
There’s no color yet. Just 1BPP. It’s more of a PET than a C64.
|
# ? Dec 30, 2018 06:40 |
|
I know it's just postman but getting identity server 4 to issue me clientcredential tokens and doing this whole set up with a cert/linux/migrations/identity 3/implicit auth was a lot of work and learning, lol. Using VueJS/Vuetify for the front end. e: uhh hide my token lol mst4k fucked around with this message at 19:42 on Dec 30, 2018 |
# ? Dec 30, 2018 19:36 |
|
|
# ? May 9, 2024 07:24 |
|
New filter I’ve been working on (iPhone) I feel quite good about, except it’s not yet optimized for video capture because it will kill your battery. We’re looking at 59% CPU for video capture vs 19% for previewing the effect live when taking a photo.
|
# ? Jan 17, 2019 17:36 |