I write code and play games and stuff. My old username from reddit and HN was already taken and I couldn’t think of anything else I wanted to be called so I just picked some random characters like this:

>>> import random
>>> ''.join([random.choice("abcdefghijklmnopqrstuvwxyz0123456789") for x in range(5)])
'e0qdk'

My avatar is a quick doodle made in KolourPaint. I might replace it later. Maybe.

日本語が少し分かるけど、下手です。

Alt: e0qdk@reddthat.com

  • 1 Post
  • 36 Comments
Joined 9 months ago
cake
Cake day: September 22nd, 2023

help-circle

  • Have you tried Resonance? It’s a mystery adventure game set in modern times where you play as four different characters whose stories interconnect. It’s been a while since I played it (a decade or so?) but I remember that it had an interesting game mechanic that let you use memories like items in various interactions, as well as a number of puzzles that I rather liked the design of.



  • It’s not a GUI library, but Jupyter was pretty much made for the kind of mathematical/scientific exploratory programming you’re interested in doing. It’s not the right tool for making finished products, but is intended for creating lab notebooks that contain executable code snippets, formatted text, and visual output together. Given your background experience and the libraries you like, it seems like it’d be right up your alley.



  • Can Z3 account for lost bits? Did it come up with just one solution?

    It gave me just one solution the way I asked for it. With additional constraints added to exclude the original solution, it also gives me a second solution – but the solution it produces is peculiar to my implementation and does not match your implementation. If you implemented exactly how the bits are supposed to end up in the result, you could probably find any other solutions that exist correctly, but I just did it in a quick and dirty way.

    This is (with a little clean up) what my code looked like:

    solver code
    #!/usr/bin/env python3
    
    import z3
    
    rand1 = 0.38203435111790895
    rand2 = 0.5012949781958014
    rand3 = 0.5278898433316499
    rand4 = 0.5114834443666041
    
    def xoshiro128ss(a,b,c,d):
        t = 0xFFFFFFFF & (b << 9)
        r = 0xFFFFFFFF & (b * 5)
        r = 0xFFFFFFFF & ((r << 7 | r >> 25) * 9)
        c = 0xFFFFFFFF & (c ^ a)
        d = 0xFFFFFFFF & (d ^ b)
        b = 0xFFFFFFFF & (b ^ c)
        a = 0xFFFFFFFF & (a ^ d)
        c = 0xFFFFFFFF & (c ^ t)
        d = 0xFFFFFFFF & (d << 11 | d >> 21)
        return r, (a, b, c, d)
    
    a,b,c,d = z3.BitVecs("a b c d", 64)
    nodiv_rand1, state = xoshiro128ss(a,b,c,d)
    nodiv_rand2, state = xoshiro128ss(*state)
    nodiv_rand3, state = xoshiro128ss(*state)
    nodiv_rand4, state = xoshiro128ss(*state)
    
    z3.solve(a >= 0, b >= 0, c >= 0, d >= 0,
      nodiv_rand1 == int(rand1*4294967296),
      nodiv_rand2 == int(rand2*4294967296),
      nodiv_rand3 == int(rand3*4294967296),
      nodiv_rand4 == int(rand4*4294967296)
      )
    
    

    I never heard about Z3

    If you’re not familiar with SMT solvers, they are a useful tool to have in your toolbox. Here are some links that may be of interest:

    Edit: Trying to fix formatting differences between kbin and lemmy
    Edit 2: Spoiler tags and code blocks don’t seem to play well together. I’ve got it mostly working on Lemmy (where I’m guessing most people will see the comment), but I don’t think I can fix it on kbin.



  • If I understand the problem correctly, this is the solution:

    solution

    a = 2299200278
    b = 2929959606
    c = 2585800174
    d = 3584110397

    I solved it with Z3. Took less than a second of computer time, and about an hour of my time – mostly spent trying to remember how the heck to use Z3 and then a little time debugging my initial program.


  • What I’d do is set up a simple website that uses a little JavaScript to rewrite the date and time into the page and periodically refresh an image under/next to it. Size the image to fit the remaining free space of however you set up the iPad, and then you can stick anything you want there (pictures/reminder text/whatever) with your favorite image editor. Upload a new image to the server when you want to change the note. The idea with an image is that it’s just really easy to do and keeps the amount of effort to redo layout to a minimum – just drag stuff around in your image editor and you’ll know it’ll all fit as expected as long as you don’t change the resolution (instead of needing to muck around with CSS and maybe breaking something if you can’t see the device to check that it displays correctly).

    There’s a couple issues to watch out for – e.g. what happens if the internet connection/server goes down, screen burn-in, keeping the browser from being closed/switched to another page, keeping it powered, etc. that might or might not matter depending on your particular circumstances. If you need to fix all that for your circumstances, it might be more trouble than just buying something purpose built… but getting a first pass DIY version working is trivial if you’re comfortable hosting a website.

    Edit: If some sample code that you can use as a starting point would be helpful, let me know.





  • The attached picture says 133 qubits, so whatever that chip is (edit: Heron) it’s not this thing.

    IBM’s post (that the article links) says:

    Breaking the 1,000-qubit barrier with Condor

    We have introduced IBM Condor, a 1,121 superconducting qubit quantum processor based on our cross-resonance gate technology. Condor pushes the limits of scale and yield in chip design with a 50% increase in qubit density, advances in qubit fabrication and laminate size, and includes over a mile of high-density cryogenic flex IO wiring within a single dilution refigerator.

    So, it sounds like this is actually another fridge sized system.





  • Pokemon (1st gen and 2nd gen – plus some of the spin-off stuff from that era to a lesser extent) captivated me in a way no other games have before or since. Honestly, I hope nothing ever grabs me that hard again; it’s kind of scary how obsessed I was in retrospect.

    A number of N64 games also made a big impact on me. Majora’s Mask was probably my second favorite game (after Pokemon) for many years. (OoT made an impression too, but I played MM first.) I loved the music in Diddy Kong Racing. I got 120 stars in Mario 64, and when I tried it again as an adult, I really appreciated how short and to the point levels could be (not that I played that way as a kid) – also the camera in that game sucked. Castlevania: Legacy of Darkness kind of disturbed me a bit as a kid, but it’s probably the first game I encountered a sort of “New Game Plus” in, which was neat. (People have since told me that’s the “black sheep” of the series and that it’s really weird that that’s the only one I’ve played significantly.)

    Duke Nukem 3D was the first game I modded, I think (very simple graphical stuff). Definitely wasn’t age appropriate but I played the heck of it anyway. Didn’t really get much into other shooters other than playing through the main game of Perfect Dark on N64 and playing split-screen Golden Eye with friends.

    I also played a lot of Sim\ games – particularly SimCity 2000, SimEarth, and SimTower. Also had a bunch of others like SimFarm and even some of the more obscure ones like SimSafari. Streets of SimCity and SimCopter being able to load SC2K maps was really neat though. Played a fair amount of other city builders and simulation games like Caesar III and Roller Coaster Tycoon too. My parents probably hoped I’d become some sort of business manager. :p

    I had a lot of creative tools back then as well which I treated as not-that-different from video games. Various Kid Pix programs (one of which had a bunch of odd video clips integrated – including a short documentary about jackalopes of all things), Kid’s Studio, Digital Chisel, some version of HyperCard, etc. Game Maker – which I found around the year 2000 back when it was still on www.cs.uu.nl – ultimately led me to being a professional programmer.