• 0 Posts
  • 591 Comments
Joined 1 year ago
cake
Cake day: June 20th, 2023

help-circle
  • In the West there are generally two big queues for immigration:

    • People who desperately need help, so refugees.
    • People who bring things we really need, typically skills (though many countries will also to it for mere wealth)

    Americans don’t (yet) qualify for the first queue and as for the second one it really depends on your skillset and wealth (if I remember it correctly Canada does have a VISA for people who bring enough money). Mind you, the skillset required to qualify for queue #2 is often not what one would expect - I vaguelly remembers something like “plumbers” and “pastry chefs”. It’s well worth it to check what are in-demand skills of the country you want to immigrate to if you need a VISA.


  • That sounds like an error in the specification of the client-server API or an erroneous implementation on the server side for the last version: nothing should be signaled via presence or absence of fields when using JSON exactly because, as I described in my last post, the standard with JSON is that stuff that is not present should be ignore (i.e. it has no meaning at all) for backwards compatibility, which breaks if all of the sudden presence or absence are treated as having meaning.

    Frankly that there isn’t a specific field signalling authorized/not-authorized leads me to believe that whomever has designed that API isn’t exactly experienced at that level of software design: authorization information should be explicit, not implicit, otherwise you end up with people checking for not-in-spec side effects like you did exactly for that reason (i.e. “is the no data being returned because of user not authorized or because there was indeed no data to retunr?”), which is prone to break since not being properly part of the spec means any of the teams working on it might interpret things differently and/or change them at any moment.



  • If I remember it correctly, per the JSON definition when a key is present but not expected it should be ignored.

    The reason for that is to maintain compatibility between versions: it should be possible to add more entries to the data and yet old versions of the software that consumes that data should still continue to operate if all the data they’re designed to handle is still there and still in the correct format.

    Sure, that’s not a problem in the blessed world of web-based frontends where the user browser just pulls the client code from the server so frontend and backend are always in synch, but is a problem for all other kinds of frontend out there where the life-cycle of the client application and the server one are different - good luck getting all your users to update their mobile apps or whatever whenever you want to add functionality (and hence data in client-server comms) to that system.

    (Comms API compatibility is actually one of the big problems in client-server systems development)

    So it sounds like an issue with the way your JavaScript library handles JSON or your own implementation not handling per-spec the presence of data which you don’t use.

    Granted, if the server side dev only makes stuff for your frontend, then he or she needs not be an asshole about it and can be more accomodating. If however that data also has to serve other clients, then I’m afraid you’re the one in the wrong since you’re demanding that the backwards compatibility from the JSON spec itself is not used by anybody else - which as I pointed out is a massive problem when you can’t guarantee that all client apps get updated as soon as the server gets updated - because you couldn’t be arsed to do your implementation correctly.


  • Around here, Portugal, were every Summer the temperature exceeds 40 C for at least some days in August, we have outside rollup shades on every window, so one of the tricks is to keep the shades down and and the windows closed during the hottest and sunniest parts of the day, at the very least the afternoon.

    Then at night you open the windows and let the cooler night air in (even better if you do it early morning, around sunrise, which is the coolest time of the day).

    Note that this doesn’t work well with curtains or internal shades, because with those any conversion of light into heat when the light heats the shades/curtains (as they’re not mirrors and don’t reflect all light back) happens inside the house and thus that heat gets trapped indoors.



  • Well, since I will also browse Lemmy quite literally “at Work” it makes sense to check the Profile option that blurs the Not Suitable For Work stuff even if having the Show NSFW content also ticked.

    Explicitly going back and forth changing the option depending on where you’re accessing Lemmy from is a recipe for mistakes, at best embarassing but, depending on where one works, which can go all the way up to being fired for cause.








  • EU countries are allowed to, by Treaty, expel EU citizens who moved there without the means to live there or a job.

    However it’s incredibly rare and there really isn’t any general procedure to do it: each country does it (or not) it’s own way. This tends to be used for people caught sleeping or begging on the streets.

    Further, for countries in the Schengen Area, they don’t even know you’re there unless you register, since you haven’t passed any border controls and thus aren’t in any database as having arrived but not departed.


  • I’ve literally done that inside the EU, though to the UK (back before Brexit) rather than Germany - I flew to London and stayed about a month in a hotel whilst looking for a contract there (I’m a freelancer) and more permanent accommodation.

    Years later I did the same to Germany, though I only stayed 3 months.

    The only requirement is that you either have a job or have the money to pay for the costs of living there (so you can still go without a job, as long as you have the money to pay for a place to stay, food and so on). The reason for the requirement that you can pay your way (either from a job or savings) is because people can’t just move to another EU country to do things like living on the street and begging or living of the local Social Security.

    Some countries also have a requirement that you register after 3 months there (for example, Germany), though it’s not any kind of applying to stay, it’s simply registering as living there. This is usually because there are associated obligations for residents in that country, not just in terms were do you pay tax, but in some countries (for example, Germany and The Netherlands) there are things like mandatory health insurance.

    In practice as an EU citizen, if you have the savings or the kind of job which you can do in 3 month stints or remotely, you absolutely can hop from country to country every 3 months without having to register with anybody (though I’m not sure how taxes would work - I suppose you would pay them in the last country you registered as a Resident).

    If you know the language, if it weren’t for taxes being per country and the rights and duties of Residents being different in different countries (such as the Mandatory Health Insurance for Residents in some countries but not others) hence the requirement to register after 3 months in some countries, the whole thing would be as easy as moving within your own country.


  • The difference between a sociopath and a murdering sociopath is the belief that they will lose nothing and even stand to gain from murder.

    Absolutelly, evil people are to blame from doing evil shit because they chose to do it.

    Other people who protect and support the evil people when they do the evil shit are also to blame because without their support and protection the evil people are a lot less likely to do the evil shit fearing the repercussions.

    In this specific instance, given that the US has been vetoing UN Security Council resolutions to stop Israel and is by far much more powerful than Israel in the World stage, the theory that they’re the “main obstacle to peace in Palestine” makes sense, or in other words, that the murdering sociopath would have to stop murdering due to fear of the consequences if the US stopped supporting it.

    Whilst it seems likely that it is, whether the US really is the “main obstable” or not is something that we would only know for sure after the US stopped supporting Israel.




  • Almost 30 years into my career as a software engineer, I’m now making a computer game that takes place in Space and were planets and comets follow Orbital Mechanics, so I’m using stuff I learned at Uni all those years ago in Degree-level Physics, since I went to university to study Physics (though later changed to an EE degree and ended up going to work as a software developer after graduating because that’s what I really liked to do).

    I’ve also had opportunity to use stuff I learned in the EE degree for software engineering, the most interesting of which was using my knowledge of microprocessor design during the time I was designing high performance distributed systems for Investment Banks.

    (I’ve also used that EE knowledge in making Embedded Systems - because I can do both the hardware and the software sides - though that was just for fun)

    Also, pretty much through my career, I would often end up using University-level Mathematics, for example in banking it tended to be stuff like statistics, derivatives and integrals (including numerical approach methods) whilst game-making is heavy on trigonometry, vectors and matrices.

    So even though I never formally learned Software Engineering at University, the stuff from the actual STEM degrees I attended (the one were I started - Physics - and the one I ended up graduating in - Electronics Engineering) were actually useful in it, sometimes in surprising ways.

    At the very least just the Maths will be the difference between being pretty mediocre or actually knowing what you’re doing in more advanced domains that are heavy users of Technology: I would’ve been pretty lost at making software systems for the business of Equity Derivatives Trading if I didn’t know Statistics, Derivatives, Integrals and Numerical Approach Methods and ditto when making GPU shaders for 3D games if I didn’t know Trigonometry, Vectors and Matrices.

    And this is without going into just understanding stuff I hear about but are currently not using, such as Neural Networks which are used in things like ChatGPT, and Statistics are invaluable in punching through most of the “common sense” bullshit spouted by politicians and other people played to deceive the general public.

    Absolutely, you can be a coder, even a good one, without degree level education, but for the more advanced stuff you’ll need at least the degree level Maths even if a lot of the rest of your degree will likely be far less useful or useless.


  • It’s not about debugging tools.

    Different, high level software designs (i.e. architectural designs) which are normally imposed by the game engine, have different probabilities of the developers who are making the code for those to produce bugs, because of lots of factors including things like of how they approach error validation and handling in the engine itself and in which domains does the engine leave the most freedom to coders and which ones does it leave less - some things are pretty safe to leave in the hands of even bad developers, others are not.

    The example of multi-threading in Unity should’ve been clear: put a game engine that doesn’t impose a single thread pattern in front of somebody with little or no experience in multi-threaded programming and you will have a huge rate of bugs (mainly critical race conditions) and as it so happens most developers out there have little or no experience in multi-threaded programming. Yet multi-threading can yield far more performance in modern CPU since they’re all multi-core. For that specific game engine a software architectural choice was made to go with a structure that is not as performance but significantly less likely to lead to a higher bug rate when used by the average coder, probably because Unity targets less experienced coders.

    Good Senior Designers and Technical Architects don’t design the high level structure of the software for themselves as coders, they do it for the kind of coders that are likely to be coding for it.

    Of course the developers themselves also have different capabilities and hence different baseline rates of creating bugs, hence why I said “both”.