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

  • 0 Posts
  • 19 Comments
Joined 1 year ago
cake
Cake day: September 22nd, 2023

help-circle

  • 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.




  • So I either need something like this that I could host myself (is something like that even feasible?)

    The closest thing I could find that already exists is GPT4All Chat with LocalDocs Plugin. That basically builds a DB of snippets from your documents and then tries to pick relevant stuff based on your query to provide additional input as part of your prompt to a local LLM. There are details about what it can and can’t do further down the page. I have not tested this one myself, but this is something you could experiment with.

    Another idea – if you want to get more into engineering custom tools – would be to split a document (or documents) you want to interact with into multiple overlapping chunks that fit within the context window (assuming you can get the relevant content out – PyPDF2’s documentation explains why this can be difficult), and then prompt with something like "Does this text contain anything that answers ? ". (May take some experimentation to figure out how to engineer the prompt well.) You could repeat that for each chunk gathering snippets and then do a second pass over all snippets asking the LLM to summarize and/or rate the quality of its own answers (or however you want to combine results).

    Basically you would need to give it two prompts: a prompt for the “map” phase that you use to apply to every snippet to try to extract relevant info from each snippet, and a second prompt for the “reduce” phase that combines two answers (which is then chained).

    i.e.:

    f(a) + f(b) + f(c) + ... + f(z)
    
    

    where f(a) is the result of the first extraction on snippet a and + means “combine these two snippets using the second prompt”. (You can evaluate in whatever order you feel is appropriate – including in parallel, if you have enough compute power for that.)

    If you have enough context space for it, you could include a summary of the previous state of the conversation as part of the prompts in order to get something like an actual conversation with the document going.

    No idea how well that would work in practice (probably very slow!), but it might be fun to experiment with.



  • Any ways to get around the download failing

    I did this incredibly stupid procedure with Firefox yesterday as a workaround for a failing Google Takeout download:

    • backup the .part file from the failed download
    • restart the download (careful – if you didn’t move/back it up, it will be deleted and you will have to download the whole thing again; found this out the hard way on a 50GB+ file… that failed again)
    • immediately pause the new download after it starts writing to disk
    • replace the new .part file with the old .part file from earlier (or – see [1] below)
    • Firefox might not show progress for a long time, but will eventually continue the download (I saw it reading the file back from disk with iotop so I just let it run)
    • sanity check that you actually got the whole thing and that it is usable (in my case, I knew a hash for the file)

    [1] You can actually replace the new .part file with anything that has the same size in bytes as the old file – I replaced it with a file full of zeros and manually merged the end onto the original .part file with a tiny custom python script since I had already moved the incomplete file to other media before realizing I could try this. (In my case, the incomplete file would still have been useful even with the last ~1MB cut off.)

    There are probably better options in most cases – like Thunderbird for mailbox as other people suggested, or rclone for getting stuff from Drive – but if you need to get Takeout to work and the download keeps failing this may be another option to try.




  • e0qdk@kbin.socialtoLinux@lemmy.mlOpenGL version problem
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    1 year ago
    • GLFW is intended to be built with cmake.
    • After unzipping the source, make a build directory, and configure glfw3
    • ^^ I like using ccmake to do this interactively, but you can also just pass flags to cmake if you know what they are
    • You should build with GLFW_USE_WAYLAND and GLFW_USE_OSMESA turned off to get it to try to build against X11.
    • You will probably also want to turn off GLFW_BUILD_DOCS, GLFW_BUILD_EXAMPLES, GLFW_BUILD_TESTS
    • You can adjust CMAKE_INSTALL_PREFIX if you don’t want to use the /usr/local default install path.
    • After generating a Makefile, run make and make install
    • glfw3 generates a pkg-config compatible .pc file as part of its build process that lists flags needed for compilation and linking against the library. Normally, you’d just call pkg-config --cflags --libs --static glfw3 to get this info as part of your own build process (in a Makefile, for example) or else require glfw3 as part of a cmake-based build, but you can read what’s generated in there if that program is not available to you for some reason. In case it’s helpful for comparison, what I get with a custom build of the static library version of glfw3 installed into /usr/local on a slightly old version of Ubuntu is output like -I/usr/local/include -L/usr/local/lib -lglfw -lrt -lm -ldl -lX11 -lpthread -lxcb -lXau -lXdmcp but you may need something different for your particular configuration.

    Basically, something like this, probably, to do the compilation and get the flags to pass to g++:

    wget 'https://github.com/glfw/glfw/releases/download/3.3.8/glfw-3.3.8.zip'
    unzip glfw-3.3.8.zip
    mkdir build
    cd build
    cmake -D GLFW_BUILD_DOCS=OFF -D GLFW_BUILD_EXAMPLES=OFF -D GLFW_BUILD_TESTS=OFF -D GLFW_USE_OSMESA=OFF -D GLFW_USE_WAYLAND=OFF -D GLFW_VULKAN_STATIC=OFF ../glfw-3.3.8
    make
    make install
    
    pkg-config --cflags --libs --static glfw3
    
    

    If you want to just compile a single cpp file after building and install, you can do something like

    g++ main.cpp `pkg-config --cflags --libs --static glfw3` -lGL
    
    


    • You are running Wayland
    • Your GLFW programs are using EGL, not GLX, to talk to your graphics drivers/hardware
    • glxinfo is talking to a software implementation, not your hardware
    • glxinfo’s output is irrelevant if you want to talk to your hardware with your current configuration; if you want to use the software implementation recompile GLFW targeting GLX and it should match that (but will be VERY slow).
    • One of your old posts describes your GPU as: Intel GMA3100 (G31) – is this the same system you’re running on now? If so, that is ancient. It looks like that came out in 2007 – which predates the existence of OpenGL 3.0; so, getting 2.1 as the newest context available when talking to actual hardware is not surprising…



  • If I understood your question correctly, you’d run the proxy application (which might be Squid or Apache or some other program) either on the host computer outside the VM or elsewhere on your network. (I’m not well versed on all the ins and outs of setting Firefox up to communicate through a proxy; I just know it can be done.) The proxy would listen for incoming traffic on a specific port you configure. You then tell Firefox (in its network settings) to communicate with the specific IP and port of the proxy instead of talking to web servers directly.

    To prevent other programs from communicating, you’d firewall off the VM with iptables (or maybe ufw or something else depending on what you use on your system). You’d set it to drop all traffic going to/from the VM’s network except packets going to or coming from the specific IP/port combinations you want to allow.

    This isn’t a bulletproof way to block other apps from talking to the internet – anything that knows about the proxy (or which can hijack/manipulate a program like Firefox that you’ve told about the proxy) could communicate with web servers via the proxy, but depending on your specific concerns it may be good enough.




  • It’s preinstalled if you buy a Steam Deck – which by default runs a corporate backed (i.e. by Valve) Arch-derived distro called SteamOS. I bought one. If you hook it up like a regular computer (plug in mouse, keyboard, and external monitor with the dock) damned near everything I’ve tried has worked acceptably. Some games need a little fiddling around (e.g. installing video codecs or CJK language support or changing the proton version from the default setting to “experimental”) and I’ve run into bugs with full screen or the on screen keyboard a couple times, but I have yet to find a game I straight up could not play even if it was marked as unsupported. (I expect some games with obnoxious DRM/anti-cheat or that need ridiculously powerful cutting edge GPU specs probably wouldn’t work well though, but haven’t really tested the limits in that direction.)


  • Some games with soundtracks I particularly enjoyed over the last couple years:

    • A Hat in Time - a cute, fun collect-a-thon platformer with a kickass soundtrack. This one is particularly fun to play and hits nostalgia vibes for the early 3D Mario games.
    • Shantae and the Seven Sirens - 2D platformer with an energetic chiptune-y soundtrack. The game itself is OK, but the soundtrack is what really made this one for me.
    • Paradise Killer - vaporwave inspired surreal murder mystery
    • Subnautica - underwater survival and crafting game with a soundtrack that set the mood very well
    • Demons Roots - 18+ RPGMaker game where you lead a demon uprising to reclaim the surface world, invading country after country freeing slaves as you go. Very dark game that is unusually good for the type of game it is. If you’re not put off by the RPGMaker doujin wabi-sabi and are tolerant of adult content in games this one is worth a look. There are some absolute bangers in the soundtrack.
    • Pyre - Lord of the Rings meets 3v3 basketball with a very enjoyable soundtrack by Darren Korb (Bastion).