JetBrainsは、RustRover Early Access Program(EAP)を開始し、ユーザーにIDEを試してもらい、フィードバックを提供し、製品の開発に貢献してもらうことを歓迎しています。RustRoverは、パブリックプレビューの間は無料で提供され、商用リリースの日程に近づくにつれてライセンスモデルが確定します。
The concept of Forming, Storming, Norming and Performing (FSNP) describes the four stages of psychological development a team goes through as they work on a project. Teams move through each stage as they overcome challenges, learn to work together and eventually focus on accomplishing a shared goal.
Remote work requires communicating more, less frequently, because async communication involves less frequent, but richer communication. There is less talking about the work and more doing it, allowing the system to optimize for throughput and flow.
Fast: Rust is a compiled language, which means that it is typically much faster than interpreted languages, such as Python and JavaScript.
Safe: Rust has a number of features that help to prevent memory errors, such as its borrow checker. This makes it a good choice for safety-critical applications.
Concurrent: Rust is well-suited for concurrent programming, thanks to its built-in support for threads and channels. This makes it a good choice for applications that need to handle multiple tasks at the same time.
Expressive: Rust has a rich syntax that allows for expressive and concise code.
Extensible: Rust is a very extensible language, with a large and active community of contributors. This means that there are a lot of libraries and tools available for Rust, and it is easy to add new features to the language.
Rust is a good choice for a variety of applications, including:
Systems programming: Rust is a popular choice for systems programming, such as writing operating systems and embedded systems software.
Web development: Rust is becoming a more popular choice for web development, thanks to its performance and safety features.
Game development: Rust is a good choice for game development, thanks to its concurrency features and its ability to create high-performance code.
Data science: Rust is a good choice for data science, thanks to its speed and its ability to handle large datasets.
Now, I started writing a sentence from a comment that was suddenly rough.
However, I would like you to calm down and think about it. Japan may seem to have a high level of security awareness at first glance. But don't you think that is a defensive security?
For example, when developing a system, once something is created, it is not changed. Therefore, security problems caused by external factors due to changes are
security problems caused by external factors due to changes are often taken, right?
Yes, it is so-called "Shioduke (塩漬け)", mothballing.
The means of attack against computers are becoming more and more diverse. This is not for me to say now, but I think everyone understands this as an indisputable fact.
This is the result of this fact, although the government keeps saying that we need to focus on cybersecurity. I would like to see the government do what it says it will do.
Let me say something with a touch of irony. The Japanese government is always late. The Japanese government is always late.
Well, so much for the grand ironic ice-breaker, what I want to tell you today is this.
"Walls have ears. Doors have eyes. (壁に耳あり障子に目あり)"
I think everyone knows this famous proverb.
The term used to be used about conversations between people. But times have changed. We now live in a computer society. And these computers are connected to the world via the Internet. It is not too much to say that everything is exposed to the world.
This saying is true for your system and your computer.
Security is always important. And you can never lose money by taking too many security measures. It is too late after an incident has occurred. I hope that you will take measures as early as possible on any given day.
It is no exaggeration to say that the history of software development is the history of software testing.
Since the advent of software, I am sure you are aware that we, the human race, have been working to improve quality in an effort to make things better.
By the way, when we look back on the history of mankind, we sometimes see the appearance of something that is a paradigm shift. For example, fire, and for example, electricity.
It is clear from history that the level of human culture changed dramatically before and after people learned how to use fire and electricity.
So what exactly is the paradigm shift in software development? What exactly is it that will be the fire and electricity for developers?
That is exactly what a Testcontainers is.
Software testing has long sought to improve efficiency in a variety of ways, and automation efforts have been encouraged. However, software is often affected by external factors, such as services external to the software, such as databases, message broker and etc.
In the past, software developers would work with infrastructure engineers to streamline the preparation of the development environment, for example.
Container technology and Testcontainers have created a paradigm shift that has changed the way software development and testing is done. Software developers themselves can now use databases and other environments as containers from the source code. It creates the environment on demand, when it is needed, and disposes of it neatly when it is no longer needed.
It is truly a Developer Experience itself, isn't it?
I would like to thank you for this wonderful project. I would also like to send my encouragement and support for the further development of this project.
And I am honored to have been chosen as a champion.
It can update the value of a variable that is not muted and shares the same state.
Cells with amazing functionality, though,
References in Cell are unretrievable.
Types in Cell must be implemented with Copy Trait.
Cannot be exchanged by multiple threads.
There are severe limitations, such as the inability to interact with multiple threads.
In such cases, RefCell, which has slightly looser restrictions than Cell, seems to be a good choice.
RefCell is OK as long as the type inside implements Sized, and the reference inside can also be retrieved.
However, the get/set that existed in Cell does not exist, RefMut method that returns RefMut must be used.
This is the last release that will support the hyperkit driver on macOS. This version includes a way to migrate existing Hyperkit-based Multipass instances to Qemu-based Multipass instances. Simply issuing:
$ multipass set local.driver=qemu
is enough to migrate the Hyperkit instances. Also, please follow the instructions given at the multipass client command line.Important Note:
Along with this, Apple dropped support for macOS 10.15 on September 12, 2022, so this will be the last Multipass minor release supporting macOS 10.15, ie, version 1.13 will only support macOS 11 and newer.
Did you know that when Platform Engineering started getting a lot of attention, at the same time the message "DevOps is dead" was spreading?
Over the next year, people from all over the world have been discussing DevOps and Platform Engineering.
And in a nutshell, DevOps is still alive.
I believe that Platform Engineering and DevOps have the same essential purpose. I think it is fair to say that the discipline as Platform Engineering has been fostered based on the feedback from the insights and pain we have gained through DevOps practices.
I won't mention here today the discussion and history of the dead or alive of DevOps. I would like to write about it elsewhere.
Today, I would like to talk a little about my thoughts on DevOps and xOps, which form the basis of Platform Engineering.
I mentioned earlier that the goal of DevOps is essentially the same as that of Platform Engineering. So what is its purpose?
It is to make the developer's work more efficient and to optimize the entire development lifecycle.
In addition to DevOps, there are many other "xOps" disciplines that combine Ops with domains different from Dev, such as DevSecOps, BizOps, MLOps, and DataOps etc.
What makes DevOps different from DevOps is that each domain handles a different mission, so a simple comparison is not possible. However, if I were to point out some commonalities, I would say that they are, as mentioned above, to improve the efficiency of a particular domain.
For example, if you are primarily engaged in data work, the operations are related to "Data" related tasks. Similarly, if you are involved in "AI" or "ML", it is operations related to data collection, model learning, and its evaluation.
I believe that the reason xOps is getting so much attention is because there is a literal need to optimize Ops, which in turn improves the efficiency of engineers.
And it is engineering capabilities that are required to improve Ops. Engineering can automate each operation, create tools, and otherwise make it more efficient.
Then, the idea may arise that the engineer should do all the operational work. However, this is a mistake.
Operations should be performed by operations staff. Engineers in each domain should focus on the mission of each domain.
By taking an interest in and understanding the operations that occur to accomplish the work in their domain, engineers can see where the bottlenecks are. This is where engineering can make improvements. This allows us to optimize the entire process.
And never forget, as I mentioned earlier, not to create full-stack engineers where the engineer does everything.
The existence of a large number of full-stack engineers may possibly be an unhealthy situation. The load may be too concentrated on one person. In other words, there is a risk of that becoming a new bottleneck.
That said, it might be fair to say that platforms are increasingly required to avoid raising certain loads and to avoid creating cognitive loads.
Platform engineering aims to implement a self-service, in-house developer platform with the goal of increasing developer productivity by reducing cognitive load and abstracting complexity from the underlying infrastructure.
Platform characteristics and capabilities are typically defined by assessing the needs of the engineering team in delivering the software.
Platform engineering emerged as a solution to the challenges posed by DevOps, which promoted a high degree of automation but left organizations stagnant with scattered tools and processes.
Platform engineering puts control in the hands of platform teams rather than in the hands of individual developers. These teams maintain the platform by treating it as a product, assessing the needs of developers across the organization, and creating internal self-service tools suitable for most users.
These efforts may include other features such as Kubernetes abstraction, secret management handling, and container orchestration.
Platform engineering has the following advantages
✅ Improved developer experience:
Significantly improves the developer experience for software build and release systems, improving the developer experience and smoothing software delivery.
✅ Standardize DevOps Practices:
By integrating common DevOps principles into a shared platform, organizations can begin to standardize with reusable build processes and automated infrastructure. This unification can accelerate the adoption of DevOps practices across the organization.
✅ Protecting the DevOps pipeline:
The various vulnerabilities present in modern CI/CD chains and cloud-native open source software can be mitigated by outsourcing DevOps responsibilities to a shared platform team. This approach allows organizations to coalesce around more secure practices and avoid missing critical updates and vulnerabilities.
✅ Provide additional guardrails:
The platform team can also assist in acquiring new tools and developing and enforcing policies for the software infrastructure. While this may limit customization, additional guardrails can prevent shadow IT and strengthen governance over internal development.
DevOps and Platform Engineering: A Brief Comparison
DevOps and platform engineering both aim to make software development and deployment more efficient, but they differ in their approach, mindset, tool selection, and focus.
DevOps is an approach to software development with a project-based mindset, where developers often choose their own tools; DevOps teams typically focus on providing the cloud infrastructure necessary for developers to run applications at various stages of The emphasis is on providing the cloud infrastructure necessary for developers to run the application at various stages.
Platform engineering, on the other hand, is the act of building a single platform for DevOps tools and workflows with a product mindset. Platform engineering focuses solely on providing the tools and workflows necessary to enable a seamless developer experience across the entire application lifecycle. They are also responsible for maintaining and extending the platform over time.
Amazon Chief Technology Officer Werner Vogels’ dictum “you build it, you run it”
DevOps was not simply a new way of delivering software. It brought a whole new way of thinking about our roles as individuals within a team and how we interact with those around us.
“you build it, you run it” emerged on the scene as a whole new way of thinking.
The Limits of DevOps
But that was a long time ago. The world has changed, and with it, the reality of systems development in the 2000s began to look dated and out of step with the era of increasingly complex and highly distributed software systems.
This increased complexity has created new challenges in the way software is built and deployed. From a team and organizational perspective, it places new stresses and burdens on the people actually doing the work. It also leads to the production of cognitive load.
What the result actually brings is massive burnout.
Specialization is not a bad thing when the tool chain is very complex. Specialization does not mean siloing.
When specialization removes barriers, it blurs who is in charge of what.
So how do we clarify those boundaries? The key is how to increase specialization so that people can focus on what they do best.
This is where platform engineering comes in.
The rise of Platform Engineering
How does platform engineering clarify the boundary between developers and operations personnel? With platform engineering building the IDP, the operations department can configure the infrastructure and focus on the actual operations and infrastructure issues. On the other hand, developers will be able to self-serve and not have to bother the operations department. Also, the operations department will no longer have to worry about repetitive requests from developers.