I like to code, garden and tinker

  • 1 Post
  • 113 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”.





  • Fluent in finance is just another forum that says it’s your fault your poor. They say you don’t play the game right and they may be right for a rigged game. But the fact is you shouldn’t be required to play a game to get whats your fair share, and fluent in finance just says you didn’t invest right and didn’t setup your future right to live off the backs of other workers.

    The rest is just hyperbolic headlines which drive engagement which is the cancer of any social media platform. No one makes a billion dollars in income as defined by the US tax code, they make a billion dollars in equity which can be used to back loans which is part of the whole issue of obscuring cash flow. Then they can just use this as fodder to call anyone supporting this idiots cause “No one makes a billion dollars a year” when we know they do, it’s just accounted differently.


  • My question would be, why do you need a more powerful server? Are you monitoring your load and seeing it’s overloaded often? Are you just looking to be able to hook more drives to it? Do you need to re-encode video on the fly for other devices? Giving some more details would help someone to give a more insightful answer. I personally am using a Raspberry Pi 4, Chromebox w/ an i7, an old HP rack server, and an old desktop PC for my self hosting needs, as this is cheaper than buying all new hardware (though the electricity bill isn’t the greatest haha, but oh well). If you are just looking for more storage, using the USB 3.0 slots on the Raspberry Pi 4b you can add a couple extra SSDs using a NVMe to USB 3.0 enclosure. For most purposes the speeds will be fine for most applications.

    As for SSD vs HDD, SSD hands down. The only reason you’d pick an HDD is if your trying to get more storage cheaper and don’t mind a higher rate of failure. If your data is at all valuable, and it almost always is, redundancy should be added as well.

    And as for running Linux, if it can’t run Linux I wouldn’t want to own it.

    Edit: Fixed typo


  • This might help, sorry if it doesn’t, but here is a link to CloudFlares 5xx error code page on error 521. If you’ve done everything in the resolution list your ISP might be actively blocking you from hosting websites, as it is generally against the ISPs ToS to do such on residential service lines. This is why I personally rent a VPS and have a wireguard VPN setup to host from the VPN, which is basically just a roll your own version of Tailscale using any VPS provider. This way you don’t need to expose anything via your ISPs router/WAN and they can’t see what you are sending or which ports you are sending on (other than the encrypted VPN traffic to your VPS of course).


  • dudeami0@lemmy.dudeami.wintoLemmy Shitpost@lemmy.worldPlease Stop
    link
    fedilink
    arrow-up
    7
    arrow-down
    1
    ·
    4 months ago

    A blockchain is just an verifiable chain of transactions using cryptography and some agreed upon protocol. Each “block” in the chain is a block of data that follows a format specified by the protocol. The protocol also decides who can push blocks and how to verify a block is valid. The advantages it has comes from the fact the protocol can describe a method of giving authority across a pool of untrusted third parties, while still making sure none of them can cheat. Currently the most popular forms are Proof of Work (PoW) and Proof of Stake (PoS).

    Bitcoin for example is just an outgoing transaction to a specific crypto key (which is similar to a checking account) as a reward for “mining” the block, followed by a list of transactions going from a specific account to another account. These are verified by needing a special chunk of data that turns the overall hash of the entire block to a binary chunk containing a number of 0 bits in front, which makes it hard to compute and a race to get the right input data. This way of establishing an authority is called Proof of Work, and whoever is first and gets their block across the network faster wins. Other cryptocurrencies like Ethereum use Proof of Stake where you “stake” currency you’ve already acquired as a promise that you won’t cheat, and if someone can prove you cheated your stake is lost.

    The problem it solves is not needing a trusted third party to handle this process, such as a government agency or an organization. Everyone can verify the integrity of a blockchain by using the protocol and going over each block, making sure the data follows the rules. This blockchain is distributed so everyone can make sure they are on the same chain, else it’s considered a “forked” chain and will migrate back to the point of consensus. This can be useful for situations where the incentive to cheat the system for monetary or political gain outweigh the cost of running a distributed ledger. It can also be useful when you don’t want anyone selectively removing past data as the chain of verifiability will be broken. The only issue with this is you need some way to reach a consensus of who gets to make each block in the chain, as someone need to be the authority for that instant in time. This is where the requirement of Proof of Work (PoS) or Proof of Stake (PoS) come in. Without these or another system that distributes the authority to create blocks, you lose the power of the blockchain.

    Examples I’ve heard of are tracking shipments or parts (similar to how the FAA already mandates part traceability) and medical records. This way lots of organizations can publish records relating to these to a central system that isn’t under any single entities control, and can’t change their records to suit their needs.

    These systems are not fool proof though, PoW has the ability to be abused using a 51% attack and PoS requires some form of punishment for trying to cheat the system (in cryptocurrency you “stake” currency and lose it if you try to cheat the system). Both of these run into issues when there is no incentive to invest resources into the system, a lack of distribution across independent parties, or one party has sufficient power to gain a majority control of the network.

    Overall you are right to be skeptical of cryptocurrency, it’s been a long time since I participated due to the waves of scam coins and general focus on illegal activities such as gambling. The lack of central authorities also perpetuates the problem of cryptoscams, as anyone can start one and there are limited controls over stopping such scams. This is not dissimilar to previous investment scams though, it’s just the modern iteration of such scams. The real question is does it solve a real problem, as Bitcoin did in the sense it helps facilitate transactions outside of government controls. You might not agree with that but it does give it an intrinsic value to a large number of people looking to move currency without as much paperwork. Now if it makes it worth $68.5k USD (at current prices) is a different story, different people have different use cases and I only highlighted one of those.



  • I’ve never ran this program, but skimmed the documentation. You should be able to use the SHIORI_DIR (or a custom database table following those instructions) along with the -p argument for launching the web interface. A simple bash script that should work:

    export SHIORI_DIR=/path/to/shiori-data-dir
    shiori serve -p 8081
    

    To run multiple versions, I’d suggest setting up each instance as a service on your machine in case of reboots and/or crashes.

    Now for serving them, you have two options. The first is just let the users connect to the port directly, but this is generally not done for outward facing services (not that you can’t). The second is to setup a reverse proxy and route the traffic through subdomains or subpaths. Nginx is my go-to solution for this. I’ve also heard good things about Caddy. You’ll most likely have to use subdomains for this, as lots of apps assume they are the root path without some tinkering.

    Edit: Corrected incorrect cli arguments and a typo.


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