I like to code, garden and tinker

  • 1 Post
  • 73 Comments
Joined 5 months ago
cake
Cake day: February 9th, 2024

help-circle
  • Yea this is just syntax, every language does it a little different, most popular languages seem to derive off of C in some capacity. Some do it more different than others, and some are unholy conglomerations of unrelated languages that somehow works. Instead of saying why is this different, just ask how does this work. It’s made my life a lot simpler.

    var test int is just int test in another language.

    func (u User) hi () { ... } is just class User { void hi() { ... } } in another language (you can guess which language I’m referencing I bet).

    map := map[string]int {} is just Map<String, Integer> map = new HashMap<>() in another (yes it’s java).

    Also RTFM, this is all explained, just different!

    Edit: I also know this is a very reductive view of things and there are larger differences, I was mostly approaching this from a newer developers understanding of things and just “getting it to work”.


  • SQL is the industry standard for a reason, it’s well known and it does the job quite well. The important part of any technology is to use it when it’s advantageous, not to use it for everything. SQL works great for looking up relational data, but isn’t a replacement for a filesystem. I’ll try to address each concern separately, and this is only my opinion and not some consensus:

    Most programmers aren’t DB experts: Most programmers aren’t “experts”, period, so we need to work with this. IT is a wide and varied field that requires a vast depth of knowledge in specific domains to be an “expert” in just that domain. This is why teams break up responsibilities, the fact the community came in and fixed the issues doesn’t change the fact the program did work before. This is all normal in development, you get things working in an acceptable manner and when the requirements change (in the lemmy example, this would be scaling requirements) you fix those problems.

    translation step from binary (program): If you are using SQL to store binary data, this might cause performance issues. SQL isn’t an all in one data store, it’s a database for running queries against relational data. I would say this is an architecture problem, as there are better methods for storing and distributing binary blobs of data. If you are talking about parsing strings, string parsing is probably one of the least demanding parts of a SQL query. Prepared statements can also be used to separate the query logic from the data and alleviate the SQL injection attack vector.

    Yes, there are ORMs: And you’ll see a ton of developers despise ORMs. They is an additional layer of abstraction that can either help or hinder depending on the application. Sure, they make things real easy but they can also cause many of the problems you are mentioning, like performance bottlenecks. Query builders can also be used to create SQL queries in a manner similar to an ORM if writing plain string-based queries isn’t ideal.


  • How was the process before

    I could find this on the process from theconversation.com:

    For decades, UAW leaders were chosen through an indirect process common to many unions. Delegates to the UAW convention chose top officers, and regional conventions picked regional directors.

    Has UAW been a sleeping giant this whole time on account of its leadership selection process?

    I’m not sure how this affects overall union operations, but it appears there was a lot of corruption involved in UAW leadership that lead to this new voting process. Wikipedia has a summary on these events:

    A corruption probe by the Justice Department against UAW and 3 Fiat Chrysler executives was conducted during 2020 regarding several charges such as racketeering, embezzlement, and tax evasion. It resulted in convictions of 12 union officials and 3 Fiat Chrysler executives, including two former Union Presidents, UAW paying back over $15 million in improper chargebacks to worker training centers, payment of $1.5 million to the IRS to settle tax issues, commitment to independent oversight for six years, and a referendum that reformed the election mode for leadership. The “One Member One Vote” referendum vote in 2022 determined that UAW members could directly elect the members of the UAW International Executive Board (IEB), the highest ruling body of the UAW.

    Are stand up strikes common? Do they win concessions?

    I can not answer to the commonality or how successful these “stand up” strikes are. Overall, striking in any capacity is a tool at the union’s disposal when contract negotiations reach a disagreement. How effective this will be is yet to be seen.


  • For your own sanity, please use a formatter for your IDE. This will also help when others (and you) read the code, as indentation is a convenience for understanding program flow. From what I see:

    • Your enable and disable functions are never called for this portion of code
    • You use a possibly undeclared enabled variable, if so it never passes scopes between the handleClick and animation methods
    • You do not use any callback or await for invoke or updateCurrentBox, causing all the code after either to immediately run. As a result, enabled is never false, since it just instantly flips back to true. I’m not sure what library invoke is from, but there should be a callback or the function returns a Promise which can be awaited.

  • If you are expecting a more windows-like experience, I would suggest using Ubuntu or Kubuntu (or any other distro using Gnome/KDE), as these are much closer to a modern Windows GUI. With Ubuntu, I can use the default file manager (nautilus) and do Ctrl+F and filter files via *.ext, then select these files then cut and paste to a new folder (drag and drop does not seem to work from the search results). In Kubuntu, the search doesn’t recognize * as a wildcard in KDE’s file manager (dolphin) but does support drag/drop between windows.



  • In my humble opinion, we too are simply prediction machines. The main difference is how efficient our brains are at the large number of tasks given for it to accomplish for it’s size and energy requirements. No matter how complex the network is it is still a mapped outcome, just the number of factors weighed is extremely large and therefore gives a more intelligent response. You can see this with each increment in GPT models that use larger and larger parameter sets giving more and more intelligent answers. The fact we call these “hallucinations” shows how effective the predictive math is, and mimics humans abilities to just make things up on the fly when we don’t have a solid knowledge base to back it up.

    I do like this quote from the linked paper:

    As we will discuss, we find interesting evidence that simple sequence prediction can lead to the formation of a world model.

    That is to say, you don’t need complex solutions to map complex problems, you just need to have learned how you got there. It’s never purely random attempts at the problem, it’s always predictive attempts that try to map the expected outcomes and learn by getting it right and wrong.

    At this point, it seems fair to conclude the crow is relying on more than surface statistics. It evidently has formed a model of the game it has been hearing about, one that humans can understand and even use to steer the crow’s behavior.

    Which is to say that it has a predictive model based on previous games. This does not mean it must rigidly follow previous games, but that by playing many games it can see how each move affects the next. This is a simpler example because most board games are simpler than language with less possible outcomes. This isn’t to say that the crow is now a grand master at the game, but it has the reasoning to understand possible next moves, knows illegal moves, and knows to take the most advantageous move based on it’s current model. This is all predictive in nature, with “illegal” moves being assigned very low probability based on the learned behavior the moves never happen. This also allows possible unknown moves that a different model wouldn’t consider, but overall provides what is statistically the best move based on it’s model. This allows the crow to be placed into unknown situations, and give an intelligent response instead of just going “I don’t know this state, I’ll do something random”. This does not always mean this prediction is correct, but it will most likely be a valid and more than not statistically valid move.

    Overall, we aren’t totally sure what “intelligence” is, we are just an organism that has developed more and more capabilities to process information based on a need to survive. But getting down to it, we know neurons take inputs and give outputs based on what it perceives is the best response for the given input, and when enough of these are added together we get “intelligence”. In my opinion it’s still all predictive, its how the networks are trained and gain meaning from the data that isn’t always obvious. It’s only when you blindly accept any answer as correct that you run into these issues we’ve seen with ChatGPT.

    Thank you for sharing the article, it was an interesting article and helped clarify my understanding of the topic.


  • Disclaimer: I am not an AI researcher and just have an interest in AI. Everything I say is probably jibberish, and just my amateur understanding of the AI models used today.

    It seems these LLM’s use a clever trick in probability to give words meaning via statistic probabilities on their usage. So any result is just a statistical chance that those words will work well with each other. The number of indexes used to index “tokens” (in this case words), along with the number of layers in the AI model used to correlate usage of these tokens, seems to drastically increase the “intelligence” of these responses. This doesn’t seem able to overcome unknown circumstances, but does what AI does and relies on probability to answer the question. So in those cases, the next closest thing from the training data is substituted and considered “good enough”. I would think some confidence variable is what is truly needed for the current LLMs, as they seem capable of giving meaningful responses but give a “hallucinated” response when not enough data is available to answer the question.

    Overall, I would guess this is a limitation in the LLMs ability to map words to meaning. Imagine reading everything ever written, you’d probably be able to make intelligent responses to most questions. Now imagine you were asked something that you never read, but were expected to respond with an answer. This is what I personally feel these “hallucinations” are, or imo best approximations of the LLMs are. You can only answer what you know reliably, otherwise you are just guessing.


  • Looking over the github issues I couldn’t find a feature request for this, so it seems like it’s not being considered at the moment. You could make a suggestion over there, I do think this feature would be useful but it’s up to the devs to implement it.

    That being said, I wouldn’t count on this feature being implemented. This will only work on instances that obey the rules so some instances could remove this feature. When you look up your account on my instance (link here), it is up to my server to respect your option to hide your profile comments. This means the options have to be federated per-user, and adds a great deal of complexity to the system that can be easily thwarted by someone running an instance that chooses to not follow these rules.

    If your goal is to stop people looking up historical activities, it might be best to use multiple accounts and switch to new accounts every so often to break up your history. You could also delete your content but this is again up to each instance to respect the deletion request. It’s not an optimal solutions but depending on your goals it is the available solution.

    Edit: Also if your curious about the downvotes, it’s not the subject matter but your post violates Rule 3: Not regarding using or support for Lemmy.



  • From Time (link: https://time.com/6133336/jan-6-capitol-riot-arrests-sentences/)

    So far, the median prison sentence for the Jan. 6 rioters is 60 days, according to TIME’s calculation of the public records.

    An additional 113 rioters have been sentenced to periods of home detention, while most sentences have included fines, community service and probation for low-level offenses like illegally parading or demonstrating in the Capitol, which is a misdemeanor.

    Overall these people are getting less time than kids who get caught with some weed on them.

    You can think you have rights, or you can know your rights, but when you violate the law don’t be surprised when one of the most pro-incarceration states around throw you in jail. Lots of protesters get arrested and prosecuted as a scare tactic. This is if you are assuming these people didn’t have seditious intentions, which does change things a bit. Overall sounds like they fucked around and found out, at least protesters fighting for real causes are more prepared to get fucked with by the state than these jokers.




  • As for the data transfer costs, any network data originating from AWS that hits an external network (an end user or another region) typically will incur a charge. To quote their blog post:

    A general rule of thumb is that all traffic originating from the internet into AWS enters for free, but traffic exiting AWS is chargeable outside of the free tier—typically in the $0.08–$0.12 range per GB, though some response traffic egress can be free. The free tier provides 100GB of free data transfer out per month as of December 1, 2021.

    So you won’t be charged for incoming federated content, but serving content to the end user will count as traffic exiting AWS. I am not sure of your exact setup (AWS pricing is complex) but typically this is charged. This is probably negligible for a single-user instance, but I would be careful serving images from your instance to popular instances as this could incur unexpected costs.


  • As for the article, I think this is generally PR and corporate speak. Whatever their reasons were, they apparently didn’t shut down the initial XMPP servers until 2022 so it was a reliable technology. There “simplification” was bringing users into their ecosystem to more easily monetize their behaviour. This goes along with your last paragraph, at the end of the day the corporation is a for-profit organization. We can’t trust a for-profit organization to have the best of intentions, some manager is aiming to meet a metric that gets them their bonus. Is this what we really want dictating the services we use day to day?


  • Google tried to add support for it in their product

    Is like saying that google tried to add support for HTTP to their products. Google Talk was initially a XMPP chat server hosted at talk.google.com, source here.

    Anyone that used Google Talk (me included) used XMPP, if they knew it or not.

    Besides this, it’s only a story of how an eager corporation adopting a protocol and selling how they support that protocol, only to abandon it because corporate interests got in the way (as they always do). It doesn’t have to be malicious to be effective in fragmenting a community, because the immense power those corporations wield to steer users in a direction they want once they abandon the product exists.

    That being said, if Google Talk wasn’t popular why did they try to axe the product based on XMPP and replace it with something proprietary (aka Hangouts)? If chat wasn’t popular among their users, this wouldn’t of been needed. This could of been for internal reasons, it could of been to fragment the user base knowing they had the most users and would force convergence, we really can’t be sure. The only thing we can be sure of is we shouldn’t trust corporations to have the best interest of their users, they only have the best interest of their shareholders in the end.


  • These are just my opinions on the matter at hand.

    TLDR; it’s not all about growing as massive as possible and letting everyone talk to everyone. It’s about communities being able to make choices for their user base and the freedom to choose who to federate with. It’s also about users having a choice of which instance they use to interact with the fediverse, and with whom. Having Meta involved limits these choices in not so obvious ways.

    Doesn’t the fediverse have an inherent protection and/or immunity from corporate take-over?

    Yes, but that does not mean it is invulnerable. Take the World Wide Web as an example, over the past couple of decades the decentralized web has become increasingly centralized. Projects such as Lemmy and Mastodon are a shot back at this trend, to try and break the web up as it was. Each instance gets to decide if letting large corporations federate with them is the best choice or not. It seems that a lot do not want this, and this is exactly the kind of protection from corporate take over that is inherent. The more large central servers are allowed to take a central role, the more power they will gain to snuff small communities and instances. They will do this by fragmenting users bases and communities over time, or any other dirty tricks they can come up with.

    Also, having billions of dollars at your disposal is known to increase your influence overall. They can outspend anyone to sell most people on how Threads is interconnected and fediverse friendly, if you let them sell that lie they will win in time. They’ll do this, pull the rug and say how other independent instances aren’t corporating. They will shut off access to these communities in one way or another and begin the process of centralization. It has happened before, and will happen again.

    Aren’t we protected?

    If you choose to not use Threads, you are not giving your information directly to Meta. But, that does not mean you are safe. Meta is a corporation, and will try to pull whatever tricks they can to take over as the dominate player. They are going head to head with Twitter, what makes you think instances a fraction of Twitters size are safe?

    Also, saying we are isolated by our individual instances is a bit humorous as they are federated. If one instance pushes most of the content is that really isolated? What about upvotes, engagement and any other activity that is pushed to other servers via the ActivityPub protocol? These will all be taken in by Meta, which means you are feeding them activity. Sure it’s safer, but they are still getting more data by engaging in the ActivityPub protocol than they get via scrapping pages. Also, they don’t have to play fair with the ActivityPub protocol, there are a lot of dirty tricks that could be used to hamper content on other instances than their own.

    Is there anything currently stopping Meta from scraping the Fediverse for our content?

    No, and the fediverse should not care. The goal of the fediverse at the moment is to stay independent and have a user base that is not reliant on a single entity and to stay away from the influence of corporate interests. If you operate in a public space, someones always going to be able to see it. It’s all about who owns that public space.

    Won’t we grow & educate?

    Who is we? Users that value their freedom will stay in the independent fediverse instances. Those who are looking for a twitter alternative will probably go to Threads. Those who don’t care will probably stay on Twitter. Any of these users might have multiple accounts on some or all of these services. Trying to group this together as “we” is a bit disingenuous.

    As for growth, it’s not safe to assume that independent instances will grow because of the federation of users from Threads. Users that are on Threads are likely to stay on Threads, users that join instances are likely to stay there. Look to linux users to see why you aren’t going to convert many over the virtues of freedom and decentralization, you’ll just become another “fanboy”.

    Aren’t we worried we’re forcing an ultimatum while the Fediverse is still in its infancy?

    What is the ultimatum? This is a pretty loaded question, since some of the fediverse is already fractured. The fact you can spin up your own instance, invite whoever you want and keep the interests of your community out of the hands of corporations is the goal. Freedom to host your own community. Anything else is just having a capitalist mindset on growth, the line doesn’t always have to go up. Getting the most users isn’t the end game, it’s having a community that you belong to and feel a part of.

    What’s the harm in pulling the ripcord if we try it, and it’s truly not a good fit?

    Each instance chooses what is best for their community. Being a part of the mainstream content feed isn’t the goal of most of these decentralized communities.

    “What about an influx of low-quality content?”

    Why do instances need to let users block Meta when they know their users want Meta blocked? What’s stopping users from going to an instance that doesn’t block Meta if their instance disagrees with their opinion? It’s all about doing what instances communities want, or users can migrate if they feel their needs aren’t being met.

    “What if Meta doesn’t moderate well?”

    Meta will probably be able to moderate for their advertisers better than most instance operators will be able to. But again, it’s not about moderation and sanitizing content for advertiser revenue, it’s about having a space that is for the community by the community. It doesn’t need to be a single homogeneous community so ads can sell. Some of us want that outside of a corporations control, others don’t or don’t care, all are valid. Thankfully, everyone has a choice instead of being forced to do one or the other.