Look at what they did with the Phoenix project for Canadian Government. They are not the same IBM they were 50 years ago. Now they are a consulting firm.
Look at what they did with the Phoenix project for Canadian Government. They are not the same IBM they were 50 years ago. Now they are a consulting firm that employ cheap labor.
You talk about beef, look at what they did with a project for Canadian Government. They are not the same IBM they were 50 years ago. Now they are a consulting firm and a shitty one.
Well, maybe. But I imagine there are qualified people working for much smaller firms, possibly even one-person agencies, who might represent a smaller financial cost.
Another problem I've run into more than once is that many orgs don't allow ssh out through the firewall. One project I worked on recently the client had to send and receive data via his home computer after work and transport it to/from his work computer on a USB drive. Apparently that was fine.
Oh I am definitely not recommending this. It's just a warning of how people will work around any security protocols you put in place if they make it too cumbersome to actually get their job done. And in this case it was their secret data, not ours, so we didn't argue too much.
Thanks for your suggestion. Unfortunately the users of the system are not too technical so some of these steps might be too much for them. Is there a user friendly tool in this space of secure file exchange?
AI assistants like Copilot and ChatGPT serve a different purpose than low-code platforms, and they are not necessarily direct replacements.
Low-Code Platforms:
Purpose: Low-code platforms are designed to enable rapid application development by minimizing the need for manual coding. They allow users (including non-developers) to create applications using visual interfaces, pre-built components, and drag-and-drop functionality.
Target Audience: Low-code platforms primarily cater to citizen developers, business analysts, and professionals who want to automate processes or build simple applications without extensive coding knowledge.
Strengths:
Speed: Low-code platforms accelerate development by reducing the time spent on manual coding.
Accessibility: They democratize software development, allowing more people to participate.
Visual Modeling: Users can create workflows and UIs visually.
Limitations:
Complexity: For more complex applications, low-code platforms may fall short.
Customization: Some use cases require custom code that low-code platforms cannot handle.
AI Assistants (Copilot, ChatGPT):
Purpose: AI assistants like Copilot and ChatGPT are designed to augment human creativity and productivity in various domains, including coding, writing, and problem-solving.
Target Audience: They primarily target professional developers, writers, and individuals seeking assistance in specific tasks.
Strengths:
Code Generation: Copilot assists developers by suggesting code snippets, improving code quality, and speeding up development.
Natural Language Interaction: ChatGPT engages in conversations, answers questions, and provides creative content.
Complementary: AI assistants complement existing skills and knowledge.
Limitations:
Contextual Understanding: While AI models have improved, they may not always fully understand context or domain-specific intricacies.
Dependency on Input: AI assistants rely on user input; they don’t independently create applications.
Coexistence and Synergy:
Collaboration: Rather than replacing each other, low-code platforms and AI assistants can collaborate. For instance:
Developers can use Copilot to speed up coding within a low-code environment.
Citizen developers can leverage low-code platforms while seeking guidance from AI assistants.
Hybrid Solutions: Future platforms may integrate both approaches, allowing users to switch seamlessly between visual modeling and AI-generated code.
Skill Enhancement: AI assistants can help citizen developers learn coding concepts, bridging the gap between low-code and traditional development.
AI assistants and low-code platforms serve distinct purposes, and their coexistence can lead to more efficient and creative solutions. The future likely involves a blend of both approaches, empowering a broader range of users to participate in software development.
I believe because the C# version has been written using rectangular arrays. This requires every array access to use a multiplication. The Java version uses array-of-arrays and hoisting the inner array out before accessing it in the inner loop.
C# also has arrays-of-arrays, and could (should) be written in the same manner.
I've just done this and it has been merged. The benchmarks table and image haven't been updated yet. But this should bring the C# result to ~2s instead of 4.67s
Unfortunately it doesn't. The newest and hottest way to do this is to either use bespoke matmul from System.Numerics.Tensors or at least using Vector<T> for SIMD (which is trivial and not "the last mile" optimization it often seems to be).
https://news.ycombinator.com/item?id=15303555