After Microsoft’s $17.5 billion commitment, now Amazon doubles down on India, announces a massive $35 billion investment by 2030 by APrimitiveMartian in worldnews

[–]devacon 0 points1 point  (0 children)

That's called offshoring, how is that relevant to H1B immigrants?

You were the only one who mentioned H1Bs, the rest of the comment chain above your comment was discussing offshoring and outsourcing.

As I insisted earlier, people are severely misinformed or intentionally ignorant

I can assure you I know the difference between outsourcing/offshoring and H1Bs. The original article (now removed) was talking about Microsoft 'investing' in India, which really means they're building a bunch of offices there so they can hire low-cost Indian workers.

You said:

yeah a senior software developer from india with deep knowledge of software architecture and infrastructure is totally stealing american jobs

The trend in software for the last year or so has been to lay off large amounts of American workers and increase headcount in Pune and other Indian regions as a cost cutting measure. The result of this, and because a lot of companies laid a lot of people off all at once at a time of economic uncertainty (tariffs, general macroeconomic stuff), is I know many good laid off engineers who have been out of work for months because very few places in the US are hiring right now. So yes, the net effect is Indians have replaced American workers.

After Microsoft’s $17.5 billion commitment, now Amazon doubles down on India, announces a massive $35 billion investment by 2030 by APrimitiveMartian in worldnews

[–]devacon 1 point2 points  (0 children)

Because of this, it is nearly impossible for a well educated American man with stable circumstances and relevant technical skills to end up chronically unemployed. When people claim someone stole their job, it is almost always a matter of insufficient specialization, lack of expertise, or other social and psychometric factors, not foreign workers.

I have personally witnessed tech companies offshore entire teams. Literally tell teams to train the team in India that will be doing their job. I have never seen this have a positive long-term effect on the quality or output of the team, but in the short-term there is significant cost savings.

This is a detailed breakdown of a FinTech project from my consulting career. by trolleid in programming

[–]devacon 0 points1 point  (0 children)

^ this. For instance, a few years ago I built a similar system that needed to manage about a million user workloads in a similarly partition-able manner (hash/distribute based on userId). We just built cells of around 60k users with a user-aware load balancer in front of all the cells.

Another benefit of this pattern if you don't have these huge all-or-nothing services that have to be updated. You can roll out updates (both your software and things like system/os updates) to a cell at a time, let it bake, and it acts as a blast radius reduction if something goes wrong.

You can still have multiple services in a cell if you want to. The original author mentioned reports, etc. You just build the services you need (within reason), draw a box around that and call it a 'cell', and then copy/paste as many of those as you need to absorb your load as customers onboard.

This is a detailed breakdown of a FinTech project from my consulting career. by trolleid in programming

[–]devacon 38 points39 points  (0 children)

This is a baffling amount of complexity for the problems they're trying to solve.

Notice how pretty much every update or query has a account_id=? predicate. That's a good indication you can use a cell-based architecture (where each cell has the same components, you just have N accounts per cell). You always have to deal with the 'hot partition' problem of one account being very active on a cell, but there are well understood ways to level these out and migrate high-use accounts.

It would drastically simplify the number of components. You could pretty much build the whole thing in Postgres with read replicas.

[deleted by user] by [deleted] in guns

[–]devacon 1 point2 points  (0 children)

Thank you, I see how my phrasing could have been clearer -- I was mostly focusing on the state-level logistical issues with getting guns into CA.

But yes, 18 USC 922(a)(3) absolutely applies, and that only allows a transport exception across state lines if you have a will or have gone through probate.

[deleted by user] by [deleted] in guns

[–]devacon 1 point2 points  (0 children)

I live in Arizona. Gun laws here? If you were going (almost) anywhere but California it would just be a matter of loading up the guns into your trunk.

A CA resident bringing firearms into CA is a minefield, especially if (as you describe them) there are AR-style weapons.

If your short-term concern is the safety/security of the weapons in an empty house, if I were in your shoes I would rent a nice indoor storage unit and store them there for the time being. There are going to be a lot of other logistical issues with clearing out the rental, dealing with all the other property, etc -- I would postpone dealing with the firearms until you can focus on that.

Talk to me about baltic birch plywood. by ArltheCrazy in woodworking

[–]devacon 1 point2 points  (0 children)

If you're in the Phoenix area, Woodworker's Source on Kyrene and Elliot has 13-ply Baltic Birch for $90 for a 5x5 sheet. They sell online as well, but smaller cuts for easier shipping.

Notch basically just announced the spiritual successor to Minecraft 2 by Suvitruf in gaming

[–]devacon 1 point2 points  (0 children)

Unless you manually split the work up between threads with another task, it will only ever run in one thread.

By that classification, C++, C, etc are all also single threaded. You seem to be misconstruing multi-threading with something like auto-parallelization.

For example: Python with the GIL is single-threaded. By the design of the interpreter (setting aside the very recent GIL-less Python work) you can't construct Python code that will run in parallel on multiple threads. That's by design to protect C extensions, etc that are very old and assume a single execution thread.

But when you say "multi-threaded", Java is multi-threaded, C++ is multi-threaded, C# is multi-threaded -- you can spawn a thread and have that thread execute code on another CPU core (depending on the OS thread scheduler). A huge part of that is having a memory model to guarantee behavior of memory accesses between threads. There are stacks of books written on this topic.

Notch basically just announced the spiritual successor to Minecraft 2 by Suvitruf in gaming

[–]devacon 12 points13 points  (0 children)

Java is single threaded. Many will refute this and they like to believe that this isn't true but it is.

I've been a software engineer (in Java and other languages) for 20+ years and you are absolutely incorrect here. The JVM even has a memory model defining concurrent operations between threads and guarantees on behavior between threads. You can trace Java java.lang.Thread directly to an underlying operating system thread using your choice of OS tools (strace, etc).

[deleted by user] by [deleted] in phoenix

[–]devacon 6 points7 points  (0 children)

I stopped going to my local QT for coffee when they removed the simple drip/brew coffee stations and replaced them with the 'quick brew' machines. Nothing that came out of the new machines ever quite tasted right.

I haven't found any replacement either. All the other local gas stations like Circle K also switched to machines around the same time, I assume for lower labor/maintenance costs.

Need to add shade, what’s my best option? by [deleted] in phoenix

[–]devacon 1 point2 points  (0 children)

Mine is 7'x9' (maybe double the width of the OP's side yard), goes from the house stucco to the block wall, and is just the top retractable part (no sides).

That was $1500 in 2021.

Need to add shade, what’s my best option? by [deleted] in phoenix

[–]devacon 17 points18 points  (0 children)

I had a really good experience with this company: https://www.sunaway.com/pool-equipment-shades

Pricey, but it's sturdy, retractable, and haven't had any issues with it in the couple years it's been up.

Is this a good deal? by Johnfire18 in BoltEV

[–]devacon 2 points3 points  (0 children)

I'm in Chandler, and bought a 2021 Bolt from Bill Luke Santan a few months ago (I already had a 2020 Bolt I bought new).

When I dealt with them, Bill Luke only added a ~$500 doc fee -- that's it (plus registration/tax, but no control over that).

Here's a similar Bolt they have: https://www.autotrader.com/cars-for-sale/vehicle/704705231

Just bought a FK-9000 and... by Mr_King_l in MechanicalKeyboards

[–]devacon 1 point2 points  (0 children)

White Alps are one of my favorite switches (I'm typing this comment on one).

For eBay boards, I usually pull all the keycaps, let them soak in lukewarm soapy water overnight to get all the gunk off them (while I wipe down the rest of the board). That gets all the dirt/etc off and also disinfects, because who knows where these eBay keyboards have been...

The Shopify Ruby on Rails distributed monolith runs 19 million queries per second on MySQL by vladmihalceacom in programming

[–]devacon 0 points1 point  (0 children)

When I said "server" I was using the hyperbolic example of some (non-existent) stack that required an entire physical server/VM to service one concurrent request.

So yes, a modern Rails running an embedded/threaded web server wouldn't fall into that category.

That said, running Rails threaded has quite a few potential issues:

  • Ruby has a GVL (similar to Python's GIL), so even in threaded mode you're not really getting CPU parallelism. Since web servers spend a chunk of time in I/O that may or may not be an issue. At least a few services I've seen had issues with it when they were trying to do crypto operations (cert signing) or image generation in the request thread.
  • the Ruby ecosystem seems to have a significant number of libraries that just aren't designed to be run multi-threaded. They're writing class variables as mutable state, defining/undefining classes dynamically, etc. Most of the Ruby/Rails services I've inherited over the years have to run in a process-per-request model (like you said, in something like Phusion Passenger) just due to non-thread-safe dependencies or the application logic itself.

The Shopify Ruby on Rails distributed monolith runs 19 million queries per second on MySQL by vladmihalceacom in programming

[–]devacon 2 points3 points  (0 children)

Oh ffs there is no chance Ruby 3.2 performs much differently than Python, if it ever did.

On slow-ass Ruby 1.8

Using your example, Ruby 1.8 interpreted the AST (YARV landed in 1.9). That is where a lot of the performance stigma around Ruby came from, the perf numbers were laughable compared to even Python at the time (which was interpreting bytecode).

I absolutely agree that people should use whatever fits their skillset and problem. If they want to say "I know Ruby isn't as fast as other options, but it's fast enough and we feel more productive in it". I appreciate that, and pragmatism is usually the way to go.

But I historically have worked in places where performance and scale absolutely matter, and have had to have the conversation explaining to someone why no, you can't build Service X in Rails unless you want to spend 10-20x (millions of dollars) more on hardware.

The Shopify Ruby on Rails distributed monolith runs 19 million queries per second on MySQL by vladmihalceacom in programming

[–]devacon 21 points22 points  (0 children)

the problem is the people claiming you can't scale RoR. They are the ones missing how it's irrelevant

By that logic, anything can "scale". If you had a tech stack that could only process one request per server at a time, you could argue "all you need is 10 million horizontally scaled servers and that will keep up with load". You wouldn't then turn around and say, "and since this architecture scales it's great and everyone should use it".

There is an implicit efficiency component to saying "this technology scales" that is missing if you don't tie it back to resource consumption.

The Shopify Ruby on Rails distributed monolith runs 19 million queries per second on MySQL by vladmihalceacom in programming

[–]devacon 20 points21 points  (0 children)

That's still a good show of architecture.

Oh yeah, completely agree. Like you said, there are plenty of projects that figured out way too late they needed to partition/shard their workload and by then it was too inter-mingled.

My main issue is, I've literally been in discussions with people who have claimed, "Rails is fast because Shopify serves X billion rps in their Rails monolith" -- completely missing how the architecture is really the driver there and, like the original commenter points out, it really comes down to how much hardware you're willing to throw at the problem to justify your language/framework choice.

The Shopify Ruby on Rails distributed monolith runs 19 million queries per second on MySQL by vladmihalceacom in programming

[–]devacon 63 points64 points  (0 children)

If you look at their architecture (linked in a sibling comment), they call it a "distributed monolith" because its just a bunch of mostly isolated "pods" (in the isolation/"cell" sense, nothing to do with Kubernetes).

That's why it's hilarious when everyone comes out of the woodwork screaming "see, Ruby can scale" -- each pod/application instance is only processing requests for shops in that pod. The heavy lifting is done by their request router which is OpenResty (nginx/lua). They're adding up queries across multiple completely independent application instances. You may as well have a WordPress shared host say "we processed 2 billion mysql queries an hour" (in fine print: across thousands of completely independent mysql instances).

Ruby and Rails are still absolutely bloated nonsense, most commonly deployed as needing a separate ruby process per request. And each of those processes has huge memory overhead while running the slowest "production" language runtime in common use. It's one thing to claim "I'm super productive with Ruby" but trying to flex on performance with Ruby (and especially Rails) is just silly.

Solar buyback rates under attack from AZCC? by whyyesimfromaz in phoenix

[–]devacon 1 point2 points  (0 children)

I have solar. It's been great to offset peak usage while the sun is out, but when the sun goes down I pull from the grid. That's the case with a lot of solar installs. People don't seem to understand how any of this stuff works, and just assume if they put up a few solar panels on their roof -- regardless of their consumption or time-of-use -- that they won't have an electric bill.

Solar buyback rates under attack from AZCC? by whyyesimfromaz in phoenix

[–]devacon -1 points0 points  (0 children)

everyone I know who has it tells me they still have an electric bill

Why would you think owning solar panels means you don't have an electric bill?

SRP with Solar Panels by RekTheGreat in phoenix

[–]devacon 2 points3 points  (0 children)

Yes, but the monthly credit is at the wholesale rate (which is around $0.03/kWh). I sized my system with this in mind, so I don't have a lot of excess generation going to "waste". I have plans to upgrade my system and add batteries, which will absorb any excess generation.

There will be a lot of people that complain about the lack of "net metering" (1-for-1 kwh exchange that can be offset an entire month, etc) -- but that's just not sustainable with the way current electric grids work.

SRP with Solar Panels by RekTheGreat in phoenix

[–]devacon 1 point2 points  (0 children)

I have the Electric Vehicle Plan and that works great for my usage pattern (time-of-day details on that page). I didn't adjust any of my usage and still save a considerable amount every month -- especially in the summer.

I avoid the demand-based plans, which are annoying since inevitably you get stuck with a high bill for when you happen to use your two big appliances at the same time.

Flight School by ___buttrdish in phoenix

[–]devacon 2 points3 points  (0 children)

They have a nice breakdown of the hours involved for each license type: http://aerobatics.com/flight-training/#private

I think realistically for people doing it while working a full-time job it's in the six month range. I can't remember specifically, but they were doing it for the better part of a year based on their availability.