AboutI like the MIT engineers moto, but I don't have much money yet, so I break code instead.
Skillsreverse, python, rust, /C[#+]*/, poorly made /regexp?/, js, bs, and other stuff
Joined devRant on 7/3/2017
Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Not exactly a dream, but during an internship where I tried to engineer a way to listen in on Bluetooth communications, I went so deep down the rabbit hole that I once half-asleepedly thanked my girlfriend for "keeping an eye on the Bluetooth channels for me, because these little twerps just keep jumping around all over the place"
C++20 Modules ! I can't wait to get rid of includes and include barriers ! Still prefer Rust though, borrowing times saved my butt just this morning, hopefully we'll get them on C++ too at some point1
Hey, does anyone have experience working as a Dev without a degree in France ?
My girlfriend would like to take up programming, but doesn't really believe she can find a job once she's ready.1
Timesheets and Formations:
Every week, I'm supposed to fill out a form detailing how much time I've spent on which projects... I'm a research engineer assigned to a single project, so I'll always fill every day with 8 hours on the same project, because if it yields to less than 39h the website gets mad at you (even though I'm paid on days, not hours).
I get why it's here, I just don't get why it's my responsibility to declare which project's budgets should be liable for my salary.
As for the formations, they're always these extremely slow paced, completely obvious type of courses that borderline murder you with boredom. Yes, I know, corruption is bad, can I get back to work?
Just review and merge my PR already!!!
Damn is it frustrating to see PRs stagnating after finally finding an open source project I can actually bring something useful to :(4
Please help, I can't figure out good names for my API :(
AsyncReadWriter and AsyncWriter are really close tokio's AsyncRead and AsyncWrite traits, it's confusing, and also you're not supposed to instantiate AsyncWriter yourself.
It's also kind of a shameful plug for my tiny lib, it's my first open source one, hopefully first of many2
So tokio-rs had me really confused on how to properly use split streams and sinks to read and write io, so I made a simplified interface to save others (and myself) some trouble.
Check it out, it's called tokio-simplified, and it's on https://crates.io/crates/...
I like it, you can place as many callbacks as you want to respond to each frame from the stream, and use as many mpsc::senders as you like to write to the sink.
And as a bonus, you can have a filter callback called before any other, to choose whether or not a frame should make it to the others, and bonus feature: that callback is 0 cost against just passing it as a for_each on your stream.
Hope it helps some of you on your journeys to Rust
Can anyone explain to me how my colleagues managed to develop something where multiprocessing.Queues can't be pickled in python!?
When you Valgrind your program for the first time for memory leaks and get "85000127 allocs, 85000127 deallocs, no memory leaks possible"4
Oh god, structure alignement, why you do this... You might be interested if you do C/C++ but haven't tried passing structures as binary to other programs.
Just started working recently with a lib that's only a DLL and a header file that doesn't compile. So using python I was able to use the DLL and redefined all of the structures using ctypes, and the nice thing is: it works.
But I spent the whole afternoon debugging why the data in my structures was incoherent. After much cussing, I figured out that the DLL was compiled with 2 bytes packing...
Packing refers to how structures don't just have all the data placed next to each other in a buffer. Instead, the standard way a compiler will allocate memory for a structure is to ensure that for each field of the structure, the offset between the pointer to the structure and the one to the field in that structure is a multiple of either the size of the field, or the size of the processor's words. That means that typically, you'll find that in a structure containing a char and a long, allocated at pointer p, the double will be starting at p+4 instead of the p+1 you might assume.
With most compilers, on most architectures, you still have the option to force an other alignment for your structures. Well that was the case here, with a single pragma hidden in a sea of ifdefs... Man that took some time to debug...2
Has anyone around here installed the Developer Preview of Android P on their Pixel (any model)?
I'm trying to figure out which models would have access to the android.net.wifi.rtt APIs.
If one of you Pixel with Android P owners could send me the result of `context.packageManager.hasSystemFeature(PackageManager.FEATURE_WIFI_RTT)`, that would be a ton of help to me :)
PS: to run this, you'd probably need to install the Android P Preview SDK platform, there's a tutorial to do just there: https://developer.android.com/previ...1
By Thor (not the god, the dragon), Belial and Thor (the god, this time)...
Just got the sources for the software that runs on the SDR for my project. I think I just found the mother of all legacy code:
The whole behaviour is described in a single, 4000 lines C file. Most of the code is in a giant switch with cases selected from an enumeration with names that don't match their function. All varnames are overly long, yet hopelessly unhelpful. And why three fuck would you use pointer.data instead of (*pointer).data or pointer->data like a sane person would !? pointer isn't even an array, so why would you use ?1
Oh god why... Why is it that every time I work with software defined radios, I keep on having to rely on not just incomplete, but at times misleading documentation 😩
Last time was GNU radio, with the doc telling me that I could define an input for a processing block using either a type or a (type, size) tupple, only for the actual code to scream at me in confusion upon my passing a tupple.
Now is that other SDR's SDK, which, as if being built upon eclipse wasn't bad enough, managed to make its serial communications confusing. Why can't you just let me set a callback to rx interrupts, you daft punks...1
Just in time, I'm signing my contract tomorrow 😁
Got recommended by my internship mentor (who happened to be a colonel) to the company.
They set up interviews with HR and the PM. Think the latter liked me, the interview took 3 hours
Starting next Monday, wish me luck \o/1
Hey, here's an idea. Ethical cryptocurrency mining Adblock.
We've been talking a lot about mining as a revenue source and its ethics here, so that gave me an idea.
I've seen a lot of talk about blocking or boycotting mining websites.
Adblock has the "ethical ads" thing to allow reasonable ads to be displayed.
What if we made the mining equivalent of that: an extension that the user allows to mine with x resources, that prevents websites from doing their own mining, but which redistributes its mining results.
The website could just add a bit of script to tell the extension who they are, and while the page is on the foreground or streaming content, the extension would mine on their behalf.
This could also allow more transparency for the user: "your computer has generated x money for website y".
Wouldn't that be a nice middle ground? Does anyone know of a project like that?9
Oh god why!?
Somehow I decided that it would be nice to have a proper spell&grammar checker in VS Code for me and my friends to write our reports in Latex with.
Decided I wanted multiple language support, so I turned to language tool.
GOD is this thing slow as a very unmotivated snail!
3s to process 9 phrases!? And then add one second to pack the results in a JSON string!? An option that I'm still very grateful exists, but why the fuck would you disallow line-by-line processing, which you expressly recommend for IDEs, and which cuts processing time by 30%, when JSON output is asked!?
Well, serves me right for thinking for even a second that a Java program could have decent performance...
This whole thing is starting to look like it's not gonna be nearly as fun ss I anticipated it to be.2
Fuck Apple sideways! (Wait for it, the original part begins)
HOW can a company that keeps on boasting about UX, to the point that last WDC they took more time speaking about a fucking kaleidoscope animation for their watch then about the whole changes to their MacBook's hardware, even consider putting that turd of a remote on market.
If you have an Apple Store in reach, I invite you to get up, flush, and go there. Try that atrocity that is the AppleTV, and laugh at how incredibly bad it is. Then do your best to refrain from burning the place down in your inevitable rage, that might cause you legal issues.
The previous AppleTV was fine, it was practically useless, but usable. But for some reason they decided a touchpad with low precision and no gestures was a good idea to put on a remote to a thing that will, due to its target audience, most likely be plugged into a fancy TV that has a 300ms lag due to fancy image processing. That thing gives no feedback, appart from visual, has so little precision that in a movie, the smallest step I've achieved was 5 fucking minutes, while being really fucking careful not to spoil the movie.8
Please Google, allow us to disable that retarded Google translate thing you've got going on the play store.
Seriously, 90% of the apps' short description are absolutely unreadable because they insist on translating it to my device's language even if no translating is available.
I know it's probably useful to some people (the ones who don't understand English but somehow understand the human language equivalent of spaghetti-code, which I suspect is not many), but this needs to be disable-able, it makes the experience of discovering apps extremely awkward.7
After attempting logging into FB Messenger with every browser I have, boy was I surprised when I found out Adblock was causing it to refuse to render with no errors displayed. Why would you block Adblock from an ad-free service !?1
I know most people will be unable to relate here, but FUCK THE FRENCH PC KEYBOARD LAYOUT
FUCK YOUR STUPID ASS ALT-GR (right alt that acts as modifier while the other alt is used for shortcuts, but can't be combined with ctrl because that would make an alt-gr) THAT GIVES YOU ACCESS TO | ON THE F*IN 6 KEY AND \ ON THE F*IN 8. FUCK YOUR USELESS ASS ² KEY, THAT ONLY WORKS AS A ². NOBODY EVER USED THAT KEY FOR ANYTHING OTHER THAN COMPLAINING THAT "you know, I really hate the ² key, it's absolutely useless"
THE MAC LAYOUT IS 100 TIMES BETTER, WITH MORE GLYPHS ACCESSIBLE WITHOUT THAT RETARDED "special characters" MENU. WHOEVER DESIGNED A KEYBOARD THAT REQUIRES PEOPLE TO USE THAT MENU EVER IS THE ONE I'D CALL SPECIAL. NEVER HAVE PEOPLE REFRAINED FROM BUYING A MAC BECAUSE OF THAT LAYOUT, SO START USING THAT LAYOUT INSTEAD OF THAT RETARDED, ANTI-DEV PC LAYOUT...
Here's the French PC keyboard layout, notice how every useful key for devs have been placed to maximize annoyance, minimize typing efficient and accelerate ergonomically related diseases11