Spyke
Zorsithreply
lemmy.blahaj.zone

The Universal Serial Bus is pretty good shit. Plug n Play is a great feature.

57
Int32reply
lemmy.dbzer0.com

microsoft: THERE STILL IS SOMETHING THAT JUST WORKS! WE NEED TO ADD AI SO YOUR KEYSTROKES WILL BE WRONGLY INTERPRETED!

30

and with an internet connection required(good luck entering your wifi password without a keyboard)

4
fckredditreply
lemmy.ml

Although not really useful, I simply love RGB lighting in the keyboard.

7

Same, i don't like south-facing RGB though; at the right angle they peak out behind keycaps and just drill me right in the damn eye (photosensitivity sucks...). That and the lack of dedicated indicator LEDs for caps/num lock are the only things i don't like about my current keychron keyboard.

5

Or even better, libraries of functions you've built up over time from visiting stack overflow

24
marcosreply
lemmy.world

A really good way to evaluate an ecosystem is looking if people look into documentation or stack overflow first.

When it's stack overflow, the ecosystem always suck.

17

I prefer good documentation over stack overflow, but I prefer stack overflow over bad documentation. If other programmers are mostly using stack overflow, it means the documentation sucks

4
Dumhuvudreply
programming.dev

May I suggest avoiding recursive functions where possible? They are usually the ones overflowing your stack, duh.

3
lemmy.world

I'm going to count vim, or any other IDE as a tool. You don't just will your thoughts into the computer (at least most people don't, that I know).

34

I really enjoy the air that I'm breading.

Couldn't code without it.

2
Dumhuvudreply
programming.dev

I mean, in C too.

I used it when I wrote some throwaway C++ code working with SQLite. Since it had no RAII (and I had no intention of writing my own wrapper), I had to manually cleanup multiple resources somehow. If at least one resource failed to initialize, I had to deinitialize the ones that didn't fail. It was either goto or a bunch of flags to track what is initialized. goto looked more elegant.

2

I misremembered the whole thing. It was still related to cleaning up after a failure, but there was only one resource I had to deal with. That's how it looks like:

    sqlite3 *db;
    int r;

    r = sqlite3_open("./data.db", &db);
    if (r) {
        std::cerr << "Can't open the database: " << sqlite3_errmsg(db) << std::endl;
        return r;
    }

    r = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS foo(...);", nullptr, nullptr, nullptr);
    if (r != SQLITE_OK) {
        std::cerr << "Can't create a table called foo: " << sqlite3_errmsg(db) << std::endl;
        goto out;
    }

    // a few more sqlite3_exec calls;
    // some sqlite3_prepare_v2 calls combined with sqlite3_bind_* and sqlite3_step calls
    // for repeated queries.

out:
    sqlite3_close(db);
    return r;
1

You reached the end

Yeah third party thinker just use your brain duh | Spyke