It was a mixture of factors.
Data was to be dumped into a S3 bucket (minio), this created an event and anouther team had built an orchestrator which would do a couple of things but eventually supply an endpoint a reference to a plain/txt file for analysis.
For the Java devs they had to [modify the example camel docs.](https://camel.apache.org/manual/rest-dsl.html)
and use the built in jackson library to convert the incoming object to a class. This used the default AWS S3 api to create a stream handle which fed into the OpenNLP docs. .
The Python project first hit a wall in setting up Flask. They followed the instructions and it didn’t work from setup tools. The Java team had just created a new maven project from the Intelij but the same approach didn’t work for the Python team using pycharm. It lost them a couple days, I helped them overcome it.
Then they hit a wall with Boto3, the team expected to stream data but Boto3 only supports downloading, there was also a complexity issue the AWS SDK in Java waa about 20 lines to setup and a single line to call, it was about 50 lines in Python. On the positive side I got to explain what all the config meant in S3.
This caused the team anouther few days of delay because the team knew I used a 350MiB Samsung TV guide to test the robustness and had to go learn about Docker volume mounting and they thought they needed a stateful kubernetes service and I had to explain why that was wrong.
Basically Python threw up a lot of additional complexity and the docs weren’t as helpful as they could have been.
If you have the freedom try Typescript.
The tsx files are almost identical to jsx except for the need to define the field types your ingesting.
While thats a little extra work, it allows Visual Studio Code to perform deeper analysis and provide much more helpful contextual hints.
I grew to love JSX and tried TSX out of interest and you couldn’t convince to go back to pure JS
You do, but considering the scales they process data I suspect Google would be better building Go tooling (or whatever the dominate internal language is).
A few years back I was trying to teach some graduates the importance of looking at a programming language ecosystem and selecting it based on that.
One of my comparison projects was Apache OpenNLP/Camel vs Flask/Spacy.
Spacy is the go to for NLP, I expected it to be either quicker to develop, easier to use, better results or just less resources.
I assigned Grads with Java experience Spacy and Python experience OpenNLP.
The OpenNLP guys were done first, they raved about being able to stream data into the model and how much simplier it made life.
When compared with the same corpus (Books, Team emails, corporate sharepoint, dev docs, etc…) OpenNLP would complete on 4GiB of RAM in less than a second on 0.5vCPU. Spacy needed 12GiB and was taking ~2 seconds with 2vCPU. They identified the same results…
Me and a few others ended up spending a day reading the python and trying to optimise it, clearly the juniors had done something daft, they had not.
It rather undermined my point.
My expectation is whatever the solution it needs to dockerise and be really easy to deploy via docker compose or Kubernetes so people can quickly and easily set up their own.
The front end is effectively static files so I would probably choose Apache or Express (whichever gives me a smaller docker image)…
For the backend I would choose Java for Spring Boot. An Alpine image with OpenJDK and the app is tiny. Spring has a library for every kind of interface making them trivial to implement but the main reason is hibernate.
Hibernate (now Spring Data) was the first library for being able to switch out databases without having to change code (its all config). A lot of mastodon instances struggle with the resource requirements of elastic search so letting small instances use something like postgres would seem ideal.
I have noticed Go/Rust still expect you to write or manage a lot of stuff Spring gives away for free. Python is ok if your backend is really tiny but there is a lot of boilerplate in how Python libraries work so complex projects get hard to manage and I assume interacting with the fediverse will add complexity.
Nah Linux Mint is a Kia Ceed.
Ubuntu is a Ford Focus, they successfully stole the volvo estate market (Debian). The car was fun, good value and very practical. It was everywhere. Then Ford started increasing the size, weight, price, etc… killing the point of the Focus.
So along comes Kia trying to make a competitor in the Ceed.
In theory the Ceed is a great car, its super cheap, lots of cabin space, nippy, the inside has every modern convenance, but…
Your left wondering why anyone is bothering with hot hatchbacks these days as you climb into your volvo
Debian would be a Volvo Estate, its the boring practical family choice, the owner is soneone boring like an architect or a financial advisor.
Arch is a Vauxhall Nova, second hand battered owned almost exclusively by teenage lads who spend a lot of time/money modifying it (e.g. lowering so it can’t go over speed bumps, adding a massive exhaust to sound good but destroys engine power).
Fedora is something slightly larger/more expensive like a Ford Focus/VW Golf/Vauxhall Astra owned by slightly older lads. The owners spend their time adding lighting kits and the largest sound systems money can buy.
Slackware is clearly a Subaru Impreza, at one point the best World Rally Car but hasn’t been a contender for a while. Almost all are owned by rally fans who spend fantastic amounts of time tinkering with the car to get set it up an ultimate rally car. None of the owners race cars.
OpenSuse is a Nissan Cube, its insanely practical. It should be the modern boring family choice, but it manages to ve too quirky for your architect while not practical enough for van drivers.
I don’t know the other distros well enough.
I run Debian btw
You are far worse than the people you are claiming to act against.
Lots of people can feel something is a problem and struggle to articulate it. So you have to take people on a case by case basis.
OP talks about how they feel diverse characters are shoe horned in or badly written. Ask them to provide an example.
When they can’t, then call them out. They are a bigot and deserve scorn.
If they can provide an example, help them understand the issue and use appropriate language.
Calling someone out who genuinely feels there is a problem doesn’t stop them feeling there is a problem. These people will go looking for some who acknowledges their feelings.
Which is how you make a bigot
I think they are saying most attempts at diversity come from middle aged white guys and just end up being poorly done and so detract from the game/story.
Similar to how 00’s electronic companies just painted it pink to appeal to women or why South Park added Token.
So arguing for more diversity within the companies themselves
I believe this post would be better if it was rewritten in Rust it would allow more efficent. memory usage compared to; the dynamically typed English language which doesn’t have the borrower checker. while allows you to detect when resources are no longer used unlike English’s poorly performing ‘grammar checking’ tools
But seriously there has to be content to engage with and people who respond to the content. I’ve noticed this community has someone posting really high quality updates but the community appears to be that person.
Posting blogs, or asking questions, etc… would be a good way to engage.
Uhh how?
The rate of new features/changes is far higher, uptime went through a bumpy transition but is back to normal. From an engineering perspective it supports my point.
Twitters issues are Elon scaring away advertisers/annoying governments/content creators through his hard line on free speech allowing an explosion in hate speech.
MBin is a fork by a group who tried to push into KBin but couldn’t. There seems to be at least 4 active committers and stuff gets merged.
You will see a number of the KBin instances moved over https://fedidb.org/software/mbin
The developer behind KBin seems to have issues delegating/accepting contributors.
If you look at the pull requests, most have been unreviewed for months and he tends to regularly push his branches once complete and just merge them in.
That behaviour drove the MBin fork, where 4-5 people were really keen to contribute but were frustrated.
To some extent that would be ok, its his project and if he doesn’t want to encourage contributions that is his decision but…
KBin.social has gotten to the size where it really should have multiple admins (or a paid full time person). Which it doesn’t have.
The developer has also told us he has gone through a divorce, moved into his own place, gotten a full time job and now had surgery.
Thats a lot for any normal person and he is going through that while trying to wear 2 hats (dev & ops) each of which would consume most of your free time.
Personally I moved to kbin.run which is run by one of the MBin devs
deleted by creator
Firstly it was just a bit of fun but from memory…
Twitter was listed as having 2 data centers and a couple dozen satellite offices.
I forgot the data center estimate, but most of those satelites were tiny. Google gave me the floor area for a couple and they were for 20-60 people (assuming a desk consumes 6m2 and dividing the office area by that).
Assuming an IT department of 20 for such an office is rediculous but I was trying to overestimate.
The Silicon Valley companies massively over hired.
Using twitter as an example, they used to publicly disclose every site and their entire tech stack.
I have to write proposals and estimates and when Elon decided to axe half the company of 8000 I was curious…
I assigned the biggest functional team I could (e.g. just create units of 10 and plan for 2 teams to compete on everything). I assumed a full 20 person IT department at every site, etc… Then I added 20% to my total and then 20% again for management.
I came up with an organisation of ~1200, Twitter was at 8000.
I had excluded content moderators and ad sellers because I had no experience in estimating that but it gives a idea of the problem.
I think the idea was to deny competition people but in reality that kind of staff bloat will hurt the big companies
It does but for the 90’s/00’s a computer typically meant Windows.
The ops staff would all be ‘Microsoft Certified Engineers’, the project managers had heard of Microsoft FuD about open source and every graduate would have been taught programming via Visual Studio.
Then you have regulatory hurdles, for example in 2010 I was working on an ‘embedded’ platform on a first generation Intel Atom platform. Due to power constraints I suggested we use Linux. It worked brilliantly.
Government regulations required anti virus from an approved list and an OS that had been accredited by a specific body.
The only accredited OS’s were Windows and the approved Anti Viruses only supported Windows. Which is how I got to spend 3 months learning how to cut XP embedded down to nothing.
The team/organisations knowledge is a huge factor but its easy to fall into a trap where no matter what the problem is the solution is X language.
If I have an organisation that knows C# and we need to build a Web Application. I would suggest we need to learn Node.js and Typescript and not invest in a solution that turns C# into web pages.
Technical Leads are not rational beings and lots of software is developed from an emotional stand point.
Engineering is trade offs, every technical decision you make has a pro/con.
What you should do is write out the core requirements/constraints.Then you weigh the choices to select the option that best meets it.
What actually happens is someone really likes X framework, Y programming language or Z methodology and so decides the solution and then looks for reasons to justify it.
Currently the obvious tell is if they pitch Rust. I am not saying Rust is bad, but you’ll notice they will extoll the memory safety or performance and forget about the actual requirements of the project.
deleted by creator
I’d actually argue Python stops people learning how to solve problems.
I love teaching juniors and have done so for 10 years but I’ve noticed in the last 4-5 years since Python became the popular choice at universities Graduates aren’t learning anything about Static Types, Memory Management, Object Oriented Programming, Data Encapsulation, Composition, Service Oriented Architecture, etc…
I used to expect most graduates to have a mixed grounding in those concepts and would find excuses for them to work on a small UI projects. I would do this as it gets them used to solving a small problem and UI’s give instant feedback. As Python became dominate university teaching language the graduates aren’t spending their time learning Typescript, Angular, HTML, etc… but instead getting overwhelmed by the concept of types.
Those concepts I want them to learn were created to help make solving problems easier and each has their strengths and weaknesses but most graduates are coming through only knowing how to lay out a small amount of procedural logic using Python and really struggling to move beyond that.