• 0 Posts
  • 71 Comments
Joined 10 months ago
cake
Cake day: September 10th, 2023

help-circle
rss

  • The fun comes when there is no actual data model. All in all, I’d say being familiar with the data model is about 60% of my job. 35% is building queries and query scripts for people who need regular exports. 5% is running after other people’s fuckups.

    Strap in, because this is a ride.

    There is a raw database from a decade-and-a-half old app, which I get to access through a layer of views that does some joining, but not all, with absolutely no documentation on how the original database is structured or where things are pulled from or what anything refers to. No data dictionary, no list or map of key relations, some objects are mapped in two different views, no semantic naming of columns.

    If you want to want to query order part delegations by who they’re assigned to (Recipient in the app) you need to use the foreign key RefAssignmentUnit. The “Assignment” unit that did the delegation is just RefUnit. If you have orders that were created by a salesperson on behalf of a customer, OrderingPerson (also a foreign key, but not named Ref-) is the customer, while OrderingPerson2 is the salesperson that entered the order. Don’t confuse that with Creator, which for orders created through the web form is usually a technical user, unless the salesperson is one of the veterans that use the direct app in which case it’ll be the salesperson while OrderingPerson2 is null.

    Also, we have many-to-many relationships that are mapped through reference tables… whose columns are named object and reference for each and every one. Have fun trying to memorize which refers to which so you don’t need to look it up every damn time.

    Create my own views to clean this up? Nope, only the third party service providers for the app can do that, and they don’t wanna. Our internal app admin (singular) can use some awkward tool to generate those views, but there’s no reverse lookup to see what a given column refers to. Also, they have no concept for what actually constitutes a good model because they’re not really familiar with the database, just with the app.

    Get my own serverless DB to create views that query the original DB? No can do, you’d need to order a whole server and that’s pricy.
    Get a cloud DB? Sure, but it will be managed by the cloud team and if you want to have or edit custom views, you’ll get to create a project request. They’ll put it in the backlog and work it into some future sprint.

    Get literally any tool that allows me to efficiently create reusable data prep so I don’t have to copy & paste the base transformations needed for a given query every fucking time and if the source DB ever changes I need to update all my query scripts? If you can somehow squeeze the time to prepare a convincing pitch - a full Power Point presentation, of course - between all your tedious and redundant query preparation and script maintenance, find a management sponsor willing to hear you out and hopefully propose your request to their superiors. Best case: It becomes a whole project - alternatives will have to be considered first, implications, security, costs, and you’ll be the one having to assemble and present that information to management only to have some responsible person point out that it would actually be the remit of a different team… that also works in sprints, has a backlog and will give you no control over your prep.

    And obviously, the app provider doesn’t give us any advance notice of just what will change in the DB with the next update. We only learn that when a view breaks. The app admin can use the tool to refresh the affected views then, while I scramble to determine all the scripts that need to be updated and copy&paste the fix. If a user has been granted their own access to the database, odds are they’ll come crying to me when their modified versions of my queries break.

    There is a lot I like about my job, I acknowledge the difficulties of a historically grown system and service contracts, but the rigid and antiquated corporate culture can go take a long walk off a short pier.


  • Agreed. The more we argue about the “how” of the protests, the more we’re distracted from what they’re actually protesting about. The most effective way of stopping people complaining about something isn’t to shut them up, but to fix the thing.

    If someone’s poor and can’t afford to buy food, no amount of fines or jail time will prevent them from going back to stealing food the second they get out because - guess what - they’re still fucking poor. There’s a food bank near where I lived a while ago that notoriously had long lines. Slowly shuffling forward in a queue that screams “I’m poor” must be uncomfortable, but they’re still not stealing food while they have an alternative.

    If you want people to stop vandalising shit in their outrage over exploitation and greed, fucking do something about the exploitation and greed. I’m sure those people could have thought of more pleasant ways to spend their time than creating their cornflour pigment, driving out there and getting arrested to make a point without leaving lasting damage.








  • The first problem, as with many things AI, is nailing down just what you mean with AI.

    The second problem, as with many things Linux, is the question of shipping these things with the Desktop Environment / OS by default, given that not everybody wants or needs that and for those that don’t, it’s just useless bloat.

    The third problem, as with many things FOSS or AI, is transparency, here particularly training. Would I have to train the models myself? If yes: How would I acquire training data that has quantity, quality and transparent control of sources? If no: What control do I have over the source material the pre-trained model I get uses?

    The fourth problem is privacy. The tradeoff for a universal assistant is universal access, which requires universal trust. Even if it can only fetch information (read files, query the web), the automated web searches could expose private data to whatever search engine or websites it uses. Particularly in the wake of Recall, the idea of saying “Oh actually we want to do the same as Microsoft” would harm Linux adoption more than it would help.

    The fifth problem is control. The more control you hand to machines, the more control their developers will have. This isn’t just about trusting the machines at that point, it’s about trusting the developers. To build something the caliber of full AI assistants, you’d need a ridiculous amount of volunteer efforts, particularly due to the splintering that always comes with such projects and the friction that creates. Alternatively, you’d need corporate contributions, and they always come with an expectation of profit. Hence we’re back to trust: Do you trust a corporation big enough to make a difference to contribute to such an endeavour without amy avenue of abuse? I don’t.


    Linux has survived long enough despite not keeping up with every mainstream development. In fact, what drove me to Linux was precisely that it doesn’t do everything Microsoft does. The idea of volunteers (by and large unorganised) trying to match the sheer power of a megacorp (with a strict hierarchy for who calls the shots) in development power to produce such an assistant is ridiculous enough, but the suggestion that DEs should come with it already integrated? Hell no

    One useful applications of “AI” (machine learning) I could see: Evaluating logs to detect recurring errors and cross-referencing them with other logs to see if there are correlations, which might help with troubleshooting.
    That doesn’t need to be an integrated desktop assistant, it can just be a regular app.

    Really, that applies to every possible AI tool. Make it an app, if you care enough. People can install it for themselves if they want. But for the love of the Machine God, don’t let the hype blind you to the issues.





  • I’ve once had difficulties running some apps on Proton that used .NET features not supported by mono, which has been updated since then and is now working out of the box.

    I’m playing Trackmania on wine, I’ve played Elden Ring and Monster Hunter: World on Proton, so I’m wondering which issue you’re running into.

    Regardless, building precompiled Linux native binaries is a commendable goal. Others have mentioned Flatpak, which imo is a good and user-friendly way to handle that.




  • The solidarity issue version of the Prisoner’s Dilemma: If enough of us cooperate, we can get away with it, but if we don’t hit that mass, we’ll get fucked for it. The strictly dominant strategy is to defect, because the outcome isn’t as bad if the others defect too.

    The difference is that the Prisoner’s Dilemma deals in absolutes (two players with the same two choices) whereas the issue at hand has nuance (some of us have more debt, some less, some ot us can more easily shoulder the initial burden imposed by being the first to get sent to collections, the outcome doesn’t strictly depend on total cooperation or even on numbers alone).

    Also, the Prisoner’s Dilemma assumes the prisoners have no way of communicating and no loyalty toward each other. We can communicate and coordinate.


  • To expand: I feel like it should be emphasised more that current “AI” models are, at best, hallucinating.

    Their output may look real enough and for some purposes they may be perfectly suitable, but ultimately, they have no concept of the semantic objects related to the words they learn and the semantic relationships between those objects. Without that, they can’t possibly guarantee that the implied semantic connection of the combination of words they produce aligns with the actual relationships.

    You can use a LLM to help translate bullet points into text of a given tone (like abstracts for theses that sound scientific), but you’ll still have to check the factuality and consistency of those texts. When using them to write texts about something you already know, that’s doable and can save you some work. But using it like in the OP to aggregate and present “new” facts without supervision is dangerous, because you can’t actually verify what you don’t already know.

    But “Copilot can scrape your data to give you some pointers and spare some of the tedium of finding it yourself, but you shouldn’t take it for gospel truth” doesn’t quite sell as nicely as “Microsoft Copilot leverages the power of AI to boost productivity, unlock creativity, and helps you understand information better”.



  • What I find even more reprehensible than the sentiment “Without the threat of consequences, why should I be decent?” is that their own fucking book holds the answer to their goddamn question (not an expletive here, their god should and probably would damn them for it):

    “So in everything, do to others what you would have them do to you, for this sums up the Law and the Prophets.” - Matthew 7:12

    The first half of this is a principle independent of religion, a fundamental social contract, the most critical idea underpinning any functioning society: Expect your behaviour to be reciprocated, and act accordingly. If you want others to help you if you need it, help people (if you can). If you want others to be kind to you, be kind to others. If you’re gonna be a prick, expect others to be just as prickly to you.

    If all that keeps you from murdering people is the threat of eternal damnation, you forget that your own scripture says “If you kill people, expect that others may kill you in turn.”

    Bonus: the biblical Jesus was known to hate hypocrites that pick out one piece of scripture to follow and ignore another and pharisees that carefully interpret and follow the letter of the law to find loopholes and ignore the heart of it. Those people lawyering their way around the otherwise unmistakable passages about generosity and giving away your wealth? Believe it or not, straight to hell.

    More disgusting than the sentiment mentioned at the start is the hypocrisy of selectively applying it, the inconsistency in their own beliefs, the hollow facade of devotion while spitting on the principles they perjure to obey.

    Signed, an apostate whose faith was shattered by fallacy of preaching love while children suffer and threatening hell while blasphemers thrive.