Interests: programming, video games, anime, music composition
I used to be on kbin as e0qdk@kbin.social before it broke down.
Interests: programming, video games, anime, music composition
I used to be on kbin as e0qdk@kbin.social before it broke down.
I've had to review resumes when we were trying to find someone else to bring on the team. My boss dumped hundreds of resumes on me and asked if any of them looked promising -- that's after going through whatever HR bullshit filters were in place -- on top of all the other work I was already behind on since we didn't have enough staff. That is the state of mind you should expect someone to be in while looking at your project.
If anyone looks at your repo, they're going to check briefly to see if you have any clue at all what you're doing and whether your code likes like it's written by the kind of person they can stand working with. Don't make any major blunders that someone would notice with a quick glance at the repository. Be prepared to talk about your project in detail and be able to explain why you made the choices you did -- you might not get asked, but if you are you should be able to justify your choices. If it gets to the point of an interview and your project looks like something that could've been done easily in 100 lines of Python you'd better believe I'm going to ask why the hell you wrote it in C in 2025... and I say that as someone who has written a significant amount of C professionally.
If you say you have multiple years of professional programming experience and send me a link to a repo that has .DS_Store in it... your resume is going straight into the trash.
what is the legitimate use case?
You do a whole bunch of research on a subject -- hours, days, weeks, months, years maybe -- and then find something that sparks a connection with something else that you half remember. Where was that thing in the 1000s of pages you read? That's the problem (or at least one of the problems) it's supposed to solve.
I've considered writing similar research tools for myself over the years (e.g. save a copy of the HTML and a screenshot of every webpage I visit automatically marked with a timestamp for future reference), but decided the storage cost and risk of accidentally embarrassing/compromising myself by recording something sensitive was too high compared to just taking notes in more traditional ways and saving things manually.
It's an absolute long-shot, but are there any careers that feel like the research part of grad school, but without the stuff that's miserable about it (the coursework and bureaucracy)?
There's no getting away from the bureaucracy, but it is possible to get career positions in academia -- and I don't mean as a professor, either. Check your university's job site. If they're big, they almost certainly have one. Get to know your professors too, and make sure they're aware of the things you're good at (even beyond your immediate subject area if you have additional hobbies/interests/skills) so they can help you find a landing place if things don't work out where you are. If you're willing to do programming -- even if you don't like it -- there is a hell of a lot of stuff that needs to be done in academia, and some of it pays enough to live on. It's possible to carve out a niche and evolve a role into a mix of stuff that you're good (enough) at but dislike, and stuff that you like but which doesn't necessarily always have funding if there's some overlap...
Don't know about PGE's API, but for the OCR stuff, you may get better results with additional preprocessing before you pass images into tesseract. e.g. crop it to just the region of interest, and try various image processing techniques to make the text pop out better if needed. You can also run tesseract specifically telling it you're looking at a single line of data, which can give better results. (e.g. --psm 7 for the command line tool) OCR is indeed finicky...
Congrats on finishing!
Sometimes years.
The oldest project I haven't actually given up on entirely has been rattling around in my head for somewhere around ~15 years, I think, with occasional bursts of progress.
(I also have an anxiety disorder... 🙃️)
I'm not sure what the average length would be though.
It's really about lowering cognitive load when making edits. It's not necessarily that someone can't figure out how to do something more sophisticated, but that they're more likely to get things right if the code is just kind of straightforwardly dumb.
The last two are definitely situational -- changing things like that might lower cognitive load for one kind of work but raise it significantly for another -- but I can see where they're coming from with those suggestions.
Do you agree with this?
Yes, at least for hobby use. If it really needs something more complex than SQLite and an embedded HTTP server, it's probably going to turn into a second job to keep it working properly.
The point is deterrence. The Congressman is basically saying "Fuck off already, or ELSE!"
Why in gods would you publicly state your intent to engage in such operations?
They're announcing that they will pursue a MAD-style defense policy, and MAD doesn't work unless you make it publicly known that you can and will retaliate.
It's not a particular protocol right now, but it would be a URI that refers to a specific resource. A protocol could also be defined -- e.g. a restricted subset of HTTPS that returns JSON objects following a defined schema or something like that -- but the point really is that I want to be able to refer to a thread not a webpage. I don't think that's a silly thing to want to be able to do.
Right now, I can only effectively link to a post or thread as rendered by a specific interface -- e.g. for me, this thread is https://old.reddthat.com/post/30710789 using reddthat's mlmym interface. That's probably not how most users would like to view the thread if I want to link it to them. Any software that recognizes the new URI scheme could understand that I mean a particular thread rather than how it's rendered by a particular web app, and go fetch it and render it appropriately in their client if I link it. (If current clients try to be clever about HTTP links, it becomes ambiguous if I mean the thread as rendered into a webpage in specific way or if I actually meant the thread itself but had to refer to it indirectly; that causes problems too.)
I don't think lemmy:// is necessarily the best prefix -- especially if mbin, piefed, etc. get on board -- just that I would like functionality like that very much, and that something like a lemmy URI scheme (or whatever we can get people to agree on) might be a good way to accomplish it.
Not that I'm opposed, but I'm not sure if it's practical to make a fediverse-wide link that's resolvable between platforms since there are so many differences and little incompatibilities and developers who don't directly interact with each other -- or even know each other exist!
Even if it isn't though, it would be nice to be able to do something like lemmy://(rest of regular url) to indicate data from a lemmy(-compatible) server that should be viewable by all other lemmy clients without leaving your particular client and having to open some other website.
Frankly, the only sane option is an "Are you over the age of (whatever is necessary) and willing to view potentially disturbing adult content?" style confirmation.
Anything else is going to become problematic/abusive sooner or later.
I just download the offline installers from GOG and keep those on my NAS organized into folders per game until I want to install them. Not fancy, but it works fine for me.
Try adding some prints to stderr through my earlier test program then and see if you can find where it stops giving you output. Does output work before curl_easy_init? After it? Somewhere later on?
Note that I did update the program to add the line with CURLOPT_ERRORBUFFER -- that's not strictly needed, but might provide more debug info if something goes wrong later in the program. (Forgot to add the setup line initially despite writing the rest of it... 🤦♂️️)
You could also try adding curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); to get it to explain more details about what it's doing internally if you can get it to print output at all.
Does hello world work? You should've gotten at least some console output.
#include <stdio.h>
int main()
{
fprintf(stderr, "Hello world\n");
return 0;
}
As a sanity check, does this work?
#include <curl/curl.h>
#include <stdio.h>
#include <stdlib.h>
size_t save_to_disk(char* ptr, size_t size, size_t nmemb, void* user_data)
{
/* according to curl's docs size is always 1 */
FILE* fp = (FILE*)user_data;
fprintf(stderr, "got %lu bytes\n", nmemb);
return fwrite(ptr, size, nmemb, fp);
}
int main(int argc, char* argv[])
{
char errbuf[CURL_ERROR_SIZE];
FILE* fp = NULL;
CURLcode res;
CURL* curl = curl_easy_init();
if(!curl)
{
fprintf(stderr, "Failed to initialize curl\n");
return EXIT_FAILURE;
}
fp = fopen("output.data", "wb");
if(!fp)
{
fprintf(stderr, "Failed to open file for writing!");
return EXIT_FAILURE;
}
curl_easy_setopt(curl, CURLOPT_URL, "https://www.wikipedia.org");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, save_to_disk);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, errbuf);
errbuf[0] = 0; /* set error buffer to empty string */
res = curl_easy_perform(curl);
if(fp)
{
fclose(fp);
fp = NULL;
}
if(res != CURLE_OK)
{
fprintf(stderr, "error code : %d\n", res);
fprintf(stderr, "error buffer : %s\n", errbuf);
fprintf(stderr, "easy_strerror: %s\n", curl_easy_strerror(res));
return EXIT_FAILURE;
}
else
{
fprintf(stderr, "\nDone\n");
return EXIT_SUCCESS;
}
}
That should write a file called output.data with the HTML from https://www.wikipedia.org and print out the number of bytes each time the write callback receives data for processing.
On my machine, it prints the following when it works successfully (byte counts may vary for you):
got 13716 bytes
got 16320 bytes
got 2732 bytes
got 16320 bytes
got 16320 bytes
got 128 bytes
got 16320 bytes
got 16320 bytes
got 1822 bytes
Done
If I change the URL to nonsense instead to make it fail, it prints text like this on my system:
error code : 6
error buffer : Could not resolve host: nonsense
easy_strerror: Couldn't resolve host name
Edit: corrected missing line in source (i.e. added line with CURLOPT_ERRORBUFFER which is needed to get extra info in the error buffer on failure, of course)
Edit 2: tweaks to wording to try to be more clear
You might consider using Google Takeout to export the emails to an mbox file, and then importing that into your new mail server.
I still have and use an Xbox360 controller despite not having an Xbox. The fact that it takes AA batteries and I can just pop out my rechargeable ones and swap 'em onto a generic charger instead of having to hook the controller up to a special charger (and then wait / use it with cable) is quite nice.