Not an expert but I'm pretty sure that constitution > statutes and ordinances > rules and regulations. Meaning that USCIS must follow the intent of the law when publishing regulations. In the case of H1B the law is clear that it gives a specific status of temporary worker distinct to the immigrant status. USCIS itself acknowledges it:
The hierarchy of the law does not preclude USCIS from providing a path to adjust status while in the US. Nothing in the constitution or any statute or ordinance prohibits that.
The H-1B is not "the first step" in a Green Card process. That's why there's an adjustment of status!
You go from non-immigrant to immigrant status and it's not a foregone conclusion. The requirements for the Green Card are entirely different from the H-1B. It's a separate process, with its own rules, fees, timelines.
The "adjustment of status" is simply a way for workers and their families to remain in the US legally while the green card process runs its course, instead of requiring them to uproot their existence (which at that point is often in the 7-10+ year range, if they studied here before the H-1B). Why would we want people to leave and quit their jobs and _then_ give them a green card? They will be in a worse position to contribute to the economy then.
These people pay thousands or millions in taxes and take nothing back. Making their transition to permanent resident smooth is in the interest of every American.
Not like the brazen giant of Greek fame,
With conquering limbs astride from land to land;
Here at our sea-washed, sunset gates shall stand
A mighty woman with a torch, whose flame
Is the imprisoned lightning, and her name
Mother of Exiles. From her beacon-hand
Glows world-wide welcome; her mild eyes command
The air-bridged harbor that twin cities frame.
“Keep, ancient lands, your storied pomp!” cries she
So they had a security-critical header whose fields are set by their internal authentication service.
And that same field can also contain arbitrary strings passed by the end user with git push -o
I know it's easy to say after the fact but still, wtf
Yeah I’m struggling to understand why the same header field would be used for git options in the first place. Why ever allow users to modify that specific header?
Location: Paris, France
Remote: Yes
Willing to relocate: No
Technologies: Python, AWS, Rust, kubernetes, terraform, linux
Résumé/CV: https://www.linkedin.com/in/henrihannetel/
Email: henri.hannetel+hn@pm.me
Backend engineer with 9 years experience building systems on AWS.
Recently exploring Rust for high-performance services and infrastructure.
Ah yes, MinIO, that open source S3 alternative that got archived last week.
To me that's the biggest problem when self-hosting services.
On day to day operations, some times it just breaks and the time to get it back varies from a couple of hours to a couple of days.
And for the longer term you regularly have to upgrade things yourself which takes time and energy and is stressing for stateful deployment.
And then you have it, at some point maintainers are just exhausted and the project is gone.
I had a similar experience where someone that had prior experience with django while we were using sqlalchemy started to design a django-like ORM on top of sqlalchemy.
Of course it took him some time to get working, was a hell to understand and extend and most importantly lacked support for basic features.
Fortunately it was limited to a small isolated service but I can imagine the damage on the long term if you continue that route on what becomes a huge monolith after a few years.
The goal of the article is not to know the exact numbers by heart, duh!
Care about orders of magnitude instead, in combination with the speed of hardware https://gist.github.com/jboner/2841832 you'll have a good understanding of how much overhead is due to the language and the constructs to favor for speed improvements.
Just reading the code should give you a sense of its speed and where it will spend most time.
Combined with general timing metrics you can also have a sense of the overhead of 3rd party libraries (pydantic I'm looking at you).
So yeah, I find that list quite useful during the code design, likely reduce time profiling slow code in prod.
In that time the java app parsed 50 strings for object hierarchies (using a regex that isn't cached) and extracted values from a request object to a processing object, handled errors, and logged results.
3 times.
This is the naive version of that code, because "I will parallelize it later" and I was just getting the logic down.
Turns out, when you use programming languages that are fit for purpose, you don't have to obsess over every function call, because computers are fast.
I think people vastly underestimate how slow python is.
We are rebuilding an internal service in Java, going from python, and our half assed first attempts are over ten times faster, no engineering required, exactly because python takes forever just to call a function. The python version was dead, and would never get any faster without radical rebuilds and massive changes anyway.
It takes python 19ns to add two integers. Your CPU does it in about 0.3 ns..... in 2004.
That those ints take 28 bytes each to hold in memory is probably why the new Java version of the service takes 1/10th the memory as well.
22ns might be about 100 processor instructions. Somehow I doubt that any programming language can parse 50 strings in 100 instructions, let alone with naive code.
Python is slow but in my experience (that mostly relates to web services and data processing) I found that I/O was by far the biggest bottleneck. Waiting for the database, another http service or local storage, which often takes more than 1ms anyway.
reply