• 0 Posts
  • 25 Comments
Joined 1 year ago
cake
Cake day: September 10th, 2023

help-circle

  • A lot of data throughput and buffer just for ingesting and distributing the live streams themselves, technical and business administration to keep things running, moderation to ensure compliance with content laws and data protection regulation, and then there’s still all the other fancy features major platforms offer if you want to compete for users.

    Multiple resolution options with server-side rescaling for users with slower connections? Graphics computing power.
    Store past broadcasts? Massive amounts of data storage capacity.
    Social features? Even more moderation.

    And we haven’t even touched on the monetary issue of “How do you pay for all that?” and all its attached complexity. You could be running the nicest platform in the world, but without any funding, it won’t run very long.




  • I’ve heard of Kotlin in the context of Android apps, but never actually used or learned it. I did one mobile app dev project with Java in Android Studio, but never had any formal classes on it either and just learned as I went (the result was shit, but we got a decent grade for being able to evaluate the difficulties and shortcomings and point out learnings).



  • I attended two different Bachelor’s courses, one with a very technical (2016-2018) and one with a more high level focus (2018-2023). The first did have a class where we learned how to go from logic gates to a full ALU as well as some actual EE classes, but I didn’t go far enough or memorise the list of classes to remember whether Assembly would have become a thing. We learned programming with first Processing, then C and C++.

    The second had C as an elective course, and that was as technical and low-level as it ever got.



  • Retraining people to use new tools on a corporate scale is an immense endeavour, probably a huge cost given the dip in productivity, and that’s assuming there is an equivalent Linux tool in the first place.

    For some people, learning new stuff isn’t as easy, and they just don’t have the investment to do so when all they want is to go about their day. The expectation that people shouldn’t be so reluctant to learn something new ignores the inflexibility that long-established habits bring in some demographics.

    Conversely, while that demographic is locked into using Windows by virtue of the cost-benefit function to learning something new just too… not be using Windows anymore? is just unfavourable, others will have to cater to them.

    Technology is advancing way faster these days, and it’s unfair to demand that everyone keep up with it. Hence, while recommending Linux is a good thing, being an elitist about it (as the people my previous commend alluded to tend to be) is unproductive.








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