投稿時間:2023-05-19 21:20:13 RSSフィード2023-05-19 21:00 分まとめ(27件)

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
IT 気になる、記になる… ドコモオンラインショップ、5月23日よりのりかえで「Pixel 7a」を22,000円オフ − 新規契約なら20,000ポイント還元 https://taisy0.com/2023/05/19/171979.html googlepixela 2023-05-19 11:06:03
IT ITmedia 総合記事一覧 [ITmedia News] 富士通、相次ぐコンビニ交付サービス不具合に謝罪 「行政サービスへの信頼損ねた」 再発防止策を開示 https://www.itmedia.co.jp/news/articles/2305/19/news202.html itmedia 2023-05-19 20:40:00
IT ITmedia 総合記事一覧 [ITmedia ビジネスオンライン] 出演相次ぐヌートバー人気の理由は 魅力を分析 https://www.itmedia.co.jp/business/articles/2305/19/news201.html itmedia 2023-05-19 20:22:00
TECH Techable(テッカブル) ウェブ上のブランド侵害をAIで対策!中小企業も導入しやすい「GMOブランドサーベランス」 https://techable.jp/archives/206358 中小企業 2023-05-19 11:00:20
js JavaScriptタグが付けられた新着投稿 - Qiita Vue.jsと音声APIで世界のみんなにこんにちは! https://qiita.com/iwakatakagundan/items/a25c1c53996109f35795 vuejs 2023-05-19 20:52:38
js JavaScriptタグが付けられた新着投稿 - Qiita [自分用]Next.jsのState https://qiita.com/pix_shimitomo/items/2fa0d7cd7d53e298591e functionhomeletfooconstha 2023-05-19 20:06:03
AWS AWSタグが付けられた新着投稿 - Qiita AWSコスト最適化の勘所のまとめ https://qiita.com/pohd_ccoe/items/8d5afc62c3488df18b39 適切 2023-05-19 20:00:28
Docker dockerタグが付けられた新着投稿 - Qiita Dockerでrails7 + tailwind + daisyuiの環境構築をする https://qiita.com/ICU1234/items/4c7c3e974ae290e68792 tailwind 2023-05-19 20:53:44
Git Gitタグが付けられた新着投稿 - Qiita 【Git】git管理下のファイルをリネームしたらdeletedとuntrackedの2つになってしまった時 https://qiita.com/arubaito/items/952cfdfa048980c88562 deleted 2023-05-19 20:47:09
技術ブログ Developers.IO [小ネタ]CDKデプロイで”error TS2345: Argument of type ‘~~’ is not assignable to parameter of type ‘~~’.”というエラーを解決した話 https://dev.classmethod.jp/articles/cdk-solve-error-with-different-version/ 小ネタCDKデプロイでerrorTSArgumentoftypeisnotassignabletoparameteroftypeというエラーを解決した話皆さん、こんにちはクルトンです。 2023-05-19 11:12:00
海外TECH Ars Technica Ars Frontiers is Monday, May 22: Top minds talk AI, mRNA, and TikTok bans https://arstechnica.com/?p=1937010 event 2023-05-19 11:45:19
海外TECH Ars Technica Rocket Report: Canada places premium on a spaceport, Lueders heads to Starbase https://arstechnica.com/?p=1940052 incredible 2023-05-19 11:00:30
海外TECH MakeUseOf Can’t Extract ZIP Files in Windows 11? Here’s How to Fix It https://www.makeuseof.com/how-to-fix-cant-extract-zip-windows-11/ google 2023-05-19 11:01:17
海外TECH DEV Community Step-by-Step Guide: Building a Node.js App with CircleCI Configurations for Efficient Continuous Integration and Deployment https://dev.to/hossainchisty/step-by-step-guide-building-a-nodejs-app-with-circleci-configurations-for-efficient-continuous-integration-and-deployment-37n4 Step by Step Guide Building a Node js App with CircleCI Configurations for Efficient Continuous Integration and DeploymentGreetings dear readers We re thrilled to have you join us for yet another exciting article where we delve into the world of building CI CD pipelines So without further ado let s dive right into the heart of our discussion CircleCI is a popular continuous integration and delivery platform that helps automate the build test and deployment processes for software projects In this article we will explore how to build a Node js application using CircleCI configurations We ll cover the steps required to set up CircleCI define the configuration file and integrate it with a Node js project Prerequisites Before we begin ensure that you have the following prerequisites in place A functioning Node js development environment is installed on your machine A version control system such as Git for efficient code management A GitHub repository or an alternative platform to host your Node js application Step Setting Up CircleCI If you don t already have one create an account on the CircleCI website Establish a connection between CircleCI and your GitHub repository by accessing the Projects section and selecting Set Up Project Grant CircleCI appropriate access permissions to your chosen repository Step Defining the CircleCI Configuration File At the root of your Node js project create a file called circleci config ymlOpen the config yml file and define the configuration specific to your project Below is an example configuration to assist you in getting started version orbs node circleci node jobs build docker image circleci node steps checkout run npm install run npm test working directory app test docker image circleci node steps checkout run npm install run npm test working directory app deploy docker image circleci node steps run name Deploy app command echo Deploying to production server working directory appworkflows version build and test deploy jobs build test requires build only test if the build job has completed deploy requires test only deploy if the test job has completed filters branches only master only deploy if the master branchThis configuration utilizes the CircleCI Node orb which provides a predefined set of Node js tools and configurations It defines three jobs build test and deploy The workflow ensures that each job is executed sequentially with dependencies and filters set up accordingly Step Commit and Push to GitHub Commit the circleci config yml file to your project s repository Push the changes to your GitHub repository Step Triggering a Build on CircleCI Visit the CircleCI dashboard for your project and navigate to the project s page You should see a newly added project and a Start Building button Click on it to trigger the first build CircleCI will now execute the defined steps in the configuration file and provide feedback on the build process Conclusion Congratulations on successfully configuring CircleCI for your Node js application With CircleCI you can streamline your development workflow automate crucial processes and focus more on what you loveーcoding Enjoy the convenience and efficiency CircleCI brings to your project Happy coding 2023-05-19 11:39:19
海外TECH DEV Community Exploring Code Performance Testing in C# with BenchmarkDotNet https://dev.to/grontis/exploring-code-performance-testing-in-c-with-benchmarkdotnet-1l26 Exploring Code Performance Testing in C with BenchmarkDotNetThere have been many times where while coding I was facing the dilemma of choosing the appropriate LINQ method or questioning the efficiency and speed of my code During those moments when I didn t want to just flip a coin or make random choices I turned to performance testing In this article we will explore how we can test the performance of our C code by using a library called BenchmarkDotNet IntroductionBenchmarkDotNet is a popular open source library that as stated in the repo s README md helps us to transform methods into benchmarks track their performance and share reproducible measurement experiments Using BenchmarkDotNet feels similar to writing unit tests It s very important to note that the library only works with console apps Finally we can visualize the results in the terminal where the benchmark ran or in user friendly formats such as markdown HTML and CSV We will explore examples of there formats later in the article The code of the examples shown in the article can be found here InstallationFirst and foremost we need to create a console application to run our benchmarks We can create a new one using the dotnet CLI in the terminal dotnet new console n BenchmarksNext open the newly created project in your preferred IDE I ll be using VS Code Install the BenchmarkDotNet NuGet package by including the following line in the csproj file Version which is the latest version when this article was written lt ItemGroup gt    lt PackageReference Include BenchmarkDotNet Version gt   lt ItemGroup gt Alternatively we can run dotnet add package BenchmarkDotNet in the terminal With that we are ready to start writing our benchmarks SetupLets create the methods that we want to benchmark The example is going to be a comparison between two methods that return the sum of all the integers in an array using BenchmarkDotNet Attributes namespace Benchmarks public class SumBenchmark readonly int arr new int Benchmark public int SumWithForLoop int sum for int i i lt arr Length i sum arr i return sum Benchmark public int SumWithLinqSum return arr Sum All we have to do now to run our benchmarks and print the results to the console is to add BenchmarkRunner Run lt SumBenchmark gt to Program cs Our Program cs should look something like this now using BenchmarkDotNet Running using Benchmarks BenchmarkRunner Run lt SumBenchmark gt We should make sure that the project is build and runs in Release mode so lets go ahead and do that dotnet build c Releasedotnet run c ReleaseThat was it now we should be able to examine the results We can find them in the BenchmarkDotNet Artifacts results folder ResultsThe results are being presented in three different user friendly forms markdown HTML and CSV as mentioned before Lets see the results of our example MarkdownHTMLCSV it s a long file so I ll show a part of it In the results we can see for now the columns Method Mean Error amp StdDev Lets explore what these terms actually mean Method The name of the method being benchmarked Mean By definition it s the sum of a collection of numbers divided by the count of numbers in the collection In the context of benchmarking Mean refers to the average execution time of a method over multiple iterations Error It s a metric to let us understand the differences between each iteration A smaller Error means the measurements were more consistent and closer to each other StdDev Standard Deviation It measures the variation from the Mean Judging from these results we can see that the SumWithForLoop method performs better than the SumWithLinqSum method on the dataset we provided We can have additional metrics by adding configurations but we will explore these later on this article Global Setup and Global CleanupIn our example we have hardcoded the values in the array What if we wanted to create data for a test database and when we are done with benchmarking to cleanup this database We wouldn t want to measure the logic of the data creation and retrieval or database cleanup together with the other two functions That s where GlobalSetup and GlobalCleanup attributes come into play Global SetupWe can setup any method as a setup method by adding the GlobalSetup attribute This method will be executed once per benchmark method before the execution of the benchmarks In our case we would move the creation of the array into the method decorated with the attibute GlobalSetup public void Setup arr new int for var i i lt arr Length i arr i Random Shared Next Global CleanupThe same goes for Global Cleanup We just have to decorate the method that is cleaning up our resources with the attribute GlobalCleanup This method will be executed once per benchmark method after the execution of the benchmarks GlobalCleanup public void Cleanup cleanup logic arr Array Empty lt int gt It is worth mentioning that there are two more similar attributes IterationSetup and IterationCleanup that as their name suggests they run before and after each benchmark method iteration ParametersParameters in BenchmarkDotNet add a lot of flexibility into our benchmarks allowing us to create benchmarks that adapt to different input scenarios and test a range of use cases When we introduce parameters the benchmarking process is repeated for each combination of parameter values therefore it may show separate results for each parameter combination Lets try to adjust our benchmarks to use parameters Params public int ArraySize get set GlobalSetup public void Setup arr new int ArraySize for var i i lt arr Length i arr i Random Shared Next The results after the parameter addition MethodArraySizeMeanErrorStdDevSumWithForLoop ns ns nsSumWithLinqSum ns ns nsSumWithForLoop ns ns nsSumWithLinqSum ns ns nsSumWithForLoop ns ns nsSumWithLinqSum ns ns nsNotice the new column that appeared in our results ArraySize BaselinesBaselines help us understand how well our code performs by giving us a starting point to measure against They are like a friendly guide that tells us if our code is getting faster or slower We can have benchmark baselines and job baselines Lets set the SumWithForLoop method as a baseline and lets create another variation of the Sum method with a while loop implementation Benchmark Baseline true public int SumWithForLoop int sum for int i i lt arr Length i sum arr i return sum Benchmark public int SumWithWhileLoop int sum int counter while counter lt arr Length sum arr counter counter return sum Benchmark public int SumWithLinqSum return arr Sum In the summary table we should see two additional columns Ratio and RatioSD MethodArraySizeMeanErrorStdDevRatioRatioSDSumWithForLoop ns ns nsSumWithWhileLoop ns ns nsSumWithLinqSum ns ns nsSumWithForLoop ns ns nsSumWithWhileLoop ns ns nsSumWithLinqSum ns ns nsSumWithForLoop ns ns nsSumWithWhileLoop ns ns nsSumWithLinqSum ns ns nsSince the SumWithForLoop method is the baseline the Ratio is and RatioSD But what do these values mean for the other methods Ratio is calculated by dividing each measurement of a benchmark to the equivalent measurement of the baseline and then calculating the Mean of all these values So in our example the SumWithWhileLoop method is slower than the SumWithForLoop by times RatioSD which means Ratio Standard Deviation represents the consistency of the ratios between two measurements If the RatioSD is small it means the comparison is stable while a high RatioSD means there s more variation in the comparison ConfigurationsBenchmarkDotNet gives us the option to configure the whole benchmarking process to cover everything we might need from Jobs and Diagnosers to Loggers and Exporters Lets go through some of my most used ones DiagnosersDiagnosers play a huge role within BenchmarkDotNet They provide additional statistics and performance analysis Whether we need to track memory allocation monitor hardware performance counters to capture event tracing data Diagnosers have us covered Lets look at an example on the usage In the example we were using before lets add a MemoryDiagnoser which measures the number of allocated bytes and the GC frequency and the HardwareCounters which are a set of special purpose registers built into modern microprocessors to store the counts of hardware related activities within computer systems We can do that by adding an attribute for each diagnoser MemoryDiagnoser HardwareCounters HardwareCounter BranchMispredictions HardwareCounter BranchInstructions public class SumBenchmarkThe final results now include the new columns we specifiedMethodArraySizeMeanErrorStdDevBranchInstructions OpBranchMispredictions OpAllocatedSumWithForLoop ns ns ns SumWithLinqSum ns ns ns SumWithForLoop ns ns ns SumWithLinqSum ns ns ns SumWithForLoop ns ns ns SumWithLinqSum ns ns ns JobsJobs refer to the configuration options that define the target environment for benchmarking They allow us to specify various parameters related to the runtime platform and launch settings enabling us to simulate different execution scenarios during benchmark runs With jobs we can control factors such as the runtime version runtime iteration mode single or multithreaded target platform x or x and launch count and warm up count among others By defining different jobs we can explore how our code performs under various conditions and environments Lets see an example SimpleJob BenchmarkDotNet Jobs RuntimeMoniker Net baseline true SimpleJob BenchmarkDotNet Jobs RuntimeMoniker Net public class SumBenchmarkIn the above code we have added the baseline true parameter to the SimpleJob attribute This parameter designates the NET job as the baseline job indicating that it is the reference against which other jobs will be compared This helps in benchmarking and comparing performance across different frameworks or runtime versions Then we can run the benchmarks in multiple frameworks by specifying the target framework moniker names via  runtimes r console argument in our case dotnet run c Release f net runtimes net net You can read more about targeting multiple frameworks here ConclusionIn conclusion by leveraging BenchmarkDotNet we can make informed decisions about our code s performance identify bottlenecks and optimize our implementations effectively With performance testing as a valuable tool in our development toolkit we can ensure that our code performs optimally and meets the requirements of demanding applications You can read further about BenchmarkDotNet here Official documentationGitHub repoAdam Sitnik s blog Adam is one of the maintainers of the library and his blogs are pretty cool Wojciech Nagórski s blog Wojciech is a contributor to BenchmarkDotNet and has a lot of cool articles about the library as well 2023-05-19 11:35:00
海外TECH DEV Community The Monolithic Giant - Exploring the Foundations of Monolithic Architecture https://dev.to/kalkwst/the-monolithic-giant-exploring-the-foundations-of-monolithic-architecture-29m The Monolithic Giant Exploring the Foundations of Monolithic ArchitectureIn the beginning there was only the Monolith The monolith is one of the oldest software architecture styles used for decades After all we had one file per application and until the s we didn t have applications composed of other applications so there wasn t a need for any other type of architecture What is the Monolithic Architecture A monolithic architecture is the traditional unified model for designing an application Monolithic software is intended to be a single self contained unit The application s components are tightly coupled and each part can communicate with any other part directly Usually a monolithic application will exist as a single codebase being modified by multiple teams within an organization and deployed as a single unit containing all the functionality that those teams maintain Monoliths Through the AgesThe monolithic architecture appeared in the early days of computing The applications built in the Early Computing Era were often monolithic due to the limited resources and technology available at the time While most of the languages of that era supported multi file applications the modules created had to do with more of a logical separation of a set of methods for readability rather than splitting an application into multiple components As we enter the early s we enter the Mainframe Era During this time the monolithic architecture still prevailed Despite the increased computational resources provided by mainframes even the most powerful systems such as the IBM System a beast during its prime still had extremely limited resources compared to modern systems Monolithic architectures were more efficient to run since they utilized the available resources optimally Also in the s the concept of multiple threads was not present The term thread as we use it today refers to a lightweight unit of execution within a process Systems of the time relied more on batch processing meaning that a sequence of programs would be executed one after another Monoliths are designed to be single threaded applications and this architecture would fit perfectly in the systems of the time In the s we enter the Client Server Era Despite the rise of client server computing and the first scalability issues appearing monolithic architecture still dominates the architectural scene Many organizations have already invested in monolithic applications in the past and so it was easier to create a client application rather than rewriting the whole application with newer and shinier distributed architectures Switching to distributed architectures required significant effort and remember that the Internet as we know it today wasn t around so the benefits weren t apparent Moreover the technology that made modern distributed architectures so prevalent was not yet developed As we enter the s and the s we enter the Web Application Era During this time the Internet as we know it today starts to take form And despite all odds our old friend the monolith continues to hold strong The single codebase approach made it easier to develop and deploy applications especially for smaller projects Also there were a lot of brownfield projects around Many organizations were very hesitant to change their legacy systems Even today most legacy systems are just giant balls of mud and spaghetti code These systems are complex tightly integrated and difficult to migrate Since the scaling requirements are not that great it was considered more cost efficient to maintain and enhance the applications instead of attempting a re architecture Moreover a monolith can be developed and deployed much faster than a distributed application Remember that this period is the boom of dot com companies and the dot com bubble burst hasn t occurred yet As we enter the Microservice Era the monolith started to become more and more cumbersome As applications grew in complexity and the requests increased monolithic architectures started to fall behind Scaling the entire application horizontally isn t the best solution for all scalability issues and a transition to a purely distributed application started Are monoliths still relevant Understanding how a monolithic architecture is designed and implemented is still important in the age of microservices Firstly many organizations still rely on monoliths as part of their application stack I have worked on two quite large companies in the last years that still use monolithic architectures for their core application You might be surprised at how much some organizations are to alter their old reliable monolithic workhorses Understanding the monolithic architecture will allow you to effectively work with old fragile legacy systems Also keep in mind that not all applications require the same level of scalability as Netflix and a microservice design is not for everyone Furthermore if you look around the internet these days you will find a growing tendency of ditching microservices in favour of monolith structures There is no such thing as a universal solution each product has its unique set of requirements and challenges and fitting it into the most common design is a recipe for disaster Advantages of the Monolithic Architecture SimplicityA monolithic application is inherently simple The entire application is developed deployed and managed as a single unit First of all the monolithic architecture fosters developer collaboration Developers may understand the system and its interdependencies by integrating all components under a shared codebase This single codebase helps team members collaborate and navigate the code It reduces interservice interactions simplifying development All components working in the same process improves communication Developers can use the necessary functions and data without network communication or inter service protocols This streamlined strategy speeds development and reduces inter service communication mistakes Moreover by tightly linking components monolithic architecture simplifies testing It s easier to develop whole application test suites This unified testing strategy lets us quickly find and fix data flow functionality and integration issues Developers can track application execution within a single codebase making debugging easier Finally monolithic application deployment is simple No service or container deployment coordination is needed since all components are packaged This simplifies distributed system management and deployment In case of errors the entire program may be rolled back making rollback and version management easier Cost EffectivenessFor small applications or organizations with limited resources a monolithic design can save money Infrastructure savings are a major benefit In contrast to distributed systems the entire application is deployed as a single unit so service discovery load balancers and API gateways are unnecessary Monolithic architecture is cost effective especially for applications with minimal traffic or resource needs due to reduced infrastructure complexity It also simplifies operations and reduces infrastructure expenses Single codebase deployment and maintenance save operational overhead and costs No need to independently deploy manage and extend many services or containers streamlines operations and minimizes operational knowledge The application s components are tightly integrated simplifying monitoring and logging enabling centralized monitoring and unified logs For small organizations or development teams these operating cost savings might be significant ConsistencyMonolithic architecture encourages consistency throughout the application which can improve the user experience and development process overall All application components are written and tested together in a single codebase in a monolithic design This unified development approach guarantees coding standards architectural patterns and development techniques are consistent Developers working on various portions of the program adhere to the same set of principles and conventions resulting in a unified codebase Consistency in development techniques facilitates collaboration minimizes the likelihood of inconsistencies or conflicts and improves code maintainability The seamless integration of components is another feature of consistency in monolithic design Because all of the components are part of the same application they may communicate with one another without the use of sophisticated communication techniques This close integration enables efficient data sharing and communication between components lowering the overhead of data transformation and API interactions in distributed systems As a result the user experience is improved because the application has a single interface and consistent behaviour across different functionalities Finally due to the consistency produced by tightly connected components the maintenance of a monolithic application becomes more efficient Making modifications or introducing new features with a single codebase may be easier than managing several dispersed services Developers can gain a comprehensive perspective of the entire system allowing them to more effectively identify and address possible faults This consistency in maintenance techniques decreases the time and effort necessary for maintenance operations while also improving the application s general stability and reliability RobustnessOne of the benefits of monolithic architecture is the ability to assure robustness through tightly coupled components They may communicate and operate efficiently by integrating all of the components into a single codebase This close integration allows for more effective communication and data exchange while reducing performance bottlenecks and potential concerns connected with inter service communication in distributed systems Direct method calls and shared memory space within a monolithic design result in faster and more efficient data transfers lowering latency and improving overall program performance Furthermore monolithic architecture s strong coupling simplifies error handling and improves fault tolerance Failures or mistakes that arise within the system can be more easily managed within a single codebase When an error occurs in one component it can be treated in the same context allowing for quicker error detection recovery and resilience Robust error handling mechanisms can be deployed systematically throughout the program ensuring uniform error management procedures and lowering the likelihood of error propagation across different services or components The simplicity of deployment and scalability provided by monolithic architecture also contributes to robustness Because the entire application is deployed as a cohesive entity controlling its deployment and scaling is easier than managing dispersed systems with numerous services Scaling a monolithic application usually entails replicating the entire application which is accomplished by giving more resources to the existing infrastructure This basic scaling technique simplifies resource management and avoids the difficulties associated with scaling individual components independently Finally the simplicity of monolithic architecture contributes to the system s overall robustness Developers get a full grasp of the entire application with a single codebase making it easier to identify and address possible issues This holistic perspective allows for more effective monitoring debugging and troubleshooting lowering the time and effort required to fix problems The simplicity of the architecture also simplifies testing because all components can be tested concurrently ensuring extensive test coverage and minimizing integration related concerns Disadvantages of the Monolith Architecture ScalabilityThe limited granularity of scalability is one of the key issues in scaling monolithic structures All components in such architectures are tightly integrated and deployed as a single unit As a result growing the program entails replicating the complete application rather than scaling certain components independently Because of the lack of granularity it is impossible to tailor resource allocation to the exact needs of individual components or services As a result inefficient resource consumption may occur limiting the system s ability to handle variable levels of load across different areas of the application Another barrier is the monolithic architecture s scaling limits Because all components are part of the same program scaling requires scaling the entire application This can be time consuming and impair the system s ability to handle high traffic or higher workloads Scaling a monolithic program frequently necessitates extensive hardware resources resulting in greater infrastructure expenses Furthermore there may be a point at which scaling the entire program becomes difficult or financially unfeasible This scalability limitation can make it difficult to fulfil rising demand or accommodate unexpected traffic spikes Finally in monolithic designs scalability difficulties extend to the development and deployment processes Introducing updates or developing new features in a closely connected architecture might be difficult Managing and coordinating development activities across various teams or developers gets increasingly difficult as the program grows larger and more complex The interdependence of several components may necessitate substantial coordination and testing thereby slowing down the development process Similarly releasing updates or new versions of a monolithic program frequently necessitates deploying the entire application increasing the risk of failures or disruptions during the deployment process MaintainabilityThe complexity of the coding is one of the key maintainability issues with monolithic designs The codebase may swell and get complex as the program develops and additional features are added Understanding the relationships and interactions between various sections of the program can be challenging because all components are intricately entwined within a single codebase Because of its complexity the codebase is more difficult to maintain and modify and is therefore more likely to contain errors or other problems when modifications or new features are made It can also be difficult to maintain a modular and reusable codebase when components are not clearly separated from one another Monolithic architectures may also experience longer release cycles and slower development cycles Since all components are created and delivered simultaneously any modifications or updates to the application necessitate thorough system testing and validation It can take a while to thoroughly test a monolithic application especially when modifications to one component may have unforeseen effects on other system components It may take longer to provide new features or bug patches as a result of the prolonged testing process which makes it more challenging to react quickly to user needs or market demands The absence of isolation between components in monolithic architectures is another barrier to maintainability A flaw or defect in one component of a monolithic application could possibly affect the whole thing It is more difficult to identify and contain problems due to the strong coupling between components because a problem in one element of the program may spread to other sections This lack of separation might make it more difficult to identify the source of the issue and implement specific changes which can make debugging and troubleshooting less successful Additionally it could be more challenging to undo changes or go back to a previous stable version in case of problems due to the common codebase and interdependencies between components Monolithic architectures may make initial development and deployment simpler but as the program grows and scales the maintainability issues can become more serious Microservices and other distributed architectures offer better alternatives for maintainability because they allow for the independent creation and upkeep of individual services Clear divisions between components are made possible by microservices which enhances the modularity scalability and maintainability of the code However because it involves architectural changes and adds more complexity to managing distributed systems moving from a monolithic architecture to a microservices architecture calls for careful planning and study DeployabilityMonolithic designs display several deployability issues one of which is the complexity and size of the deployment unit A monolithic application requires the deployment of the complete codebase because all components are tightly connected and distributed as a single entity Larger deployment packages may emerge from this which would take more time and resources to deploy Larger applications take longer to deploy which might make it more difficult to release updates or new features on schedule Furthermore because a single problem might have an effect on the entire system delivering the complete monolithic program raises the chance of mistakes or disruptions during the deployment process Furthermore because of the interdependencies between many components distributing updates or new versions of a monolithic application can be difficult To make sure that a change doesn t have unintended effects elsewhere it is frequently necessary to thoroughly test and validate the entire application after making a change to one component It may take a while to thoroughly test the full monolithic application which could cause a delay in the deployment process It can be challenging to coordinate and synchronize the deployment of numerous components inside a monolithic design especially when there are dependencies and linkages between various system components Lack of flexibility in deployment options is another element of deployability in monolithic architectures A homogenous infrastructure where all components can run together is often needed when deploying a monolithic application because all components are strongly coupled The application s scalability and deployment options are constrained by this constraint For instance it might not be possible to deploy a particular application component independently without also deploying the entire monolith if that component needs greater computational power or specialized infrastructure The adoption of diverse deployment tactics like containerization or serverless computing may be hindered by this lack of flexibility in deployment options which can also hinder resource optimization While monolithic architectures make development and initial deployment simple the difficulties with deployability increase as an application gets bigger and more sophisticated Microservices and other distributed architectures offer better alternatives for deployability since they allow for the independent development and deployment of individual services Microservices allow for autonomous service scalability deployment and rollback giving the deployment process more fine grained control and flexibility However because it entails architectural modifications and more difficult distributed system management switching from a monolithic architecture to a microservices architecture calls for careful planning and study Scaling Monolithic ArchitecturesContrary to popular belief monolithic applications can be scaled multi dimensionally Most microservice aficionados will claim that Scaling the application can be difficult a monolithic architecture is that it can only scale in one dimension First of all this statement is a gross misunderstanding of monolithic architecture Nothing is ever this cut and dry There are several ways to approach horizontal scaling and microservices do not own the patent on this process Also this is the exact way of thinking that gets us ready to use the most popular coding technique even though we don t know what each one is for Misconceptions like that often lead to people mindlessly following the latest trend and self proclaimed tech gurus encouraging people to shame engineers for their decisions After all if your only tool is a hammer all problems start to look like nails Vertical ScalingVertical scaling is the most obvious solution for scaling an application Vertical scaling involves upgrading the CPUs adding more memory expanding storage capacity or improving network bandwidth Instead of increasing the number of servers available the capabilities of the available servers are enhanced Scaling vertically is rather simple It typically requires minimal changes to the existing application It is also more cost effective to upgrade a single server than to manage and maintain multiple servers Horizontal ScalingHorizontal scaling involves adding multiple instances of an application to handle increased workload or traffic In the case of monolithic applications horizontal scaling requires deploying multiple copies of the monolith and distributing the requests across these instances using a load balancer A load balancer acts as a traffic cop It receives incoming requests and forwards them to different instances of the monolithic application The balancer also makes sure that the workload is as evenly distributed as possible across the instances When deploying these instances it s important to consider their geographical dispersion according to your specific requirements By distributing the instances across different servers or locations you can enhance the resilience of your system In the event of a server or regional failure the load balancer can detect it through health checks It will then redirect incoming requests to the remaining healthy instances ensuring uninterrupted service Containerization can be used to scale your application if it is compatible You may automate the deployment management and scaling of your application instances by containerizing your application and employing DevOps principles and orchestration technologies such as Kubernetes Ks Kubernetes includes capabilities like auto scaling load balancing and efficient resource allocation which enable your application to dynamically adapt to changing workload demands CachingCaching can improve the availability of a monolithic application significantly When the application serves requests for the same data from the cache instead of getting to the backend services response times are cut by a lot Caching makes it easier for an application to handle more traffic and grow by reducing the number of back end processing and I O tasks that need to be done Also by caching results that require a lot of processing power or complicated data transformations the single application can avoid doing the same work twice This optimization helps improve the application s general performance and lets it handle more requests making it easier to scale There are many different caching strategies to use but let s use the Cache Aside strategy as an example since it is the most commonly used one First the application should look in the cache to see if the needed information is there If the application can t find the data in the cache it should get it from the slower storage backend and add it to the cache This method helps improve speed by reducing the number of times that data needs to be pulled from the slower backend Second it s very important to set up the cache with the right time to live TTL number for storing data The TTL tells the cache how long it can keep the data before it goes bad and needs to be updated By setting a reasonable TTL the cache can handle memory overhead efficiently by automatically releasing cached values that are no longer needed Caches come in different forms and can improve speed by a lot especially when the same values are read over and over again By caching data that is often read the data can be served straight from the cache instead of having to be retrieved from the slower backend This cuts response times by a lot and makes the service work better overall It s important to note that replying to the request and adding data to the cache when the cache is empty can happen at the same time This means that the program can get the data from the slower backend and store it in the cache while it is processing the request Parallel processing helps improve speed and reduces the chance that a request will be served late Pain Points of Scaling a MonolithWhen you look at the problems and pain points of monolithic apps microservices start to look like a good option There is a limit to how scaled a monolith can get before it starts to cause problems Not all of these problems are unsolvable though and microservices are only one solution that may not work for every application For example if you re using a monolithic program you re probably stuck in a cycle of deploy all the things whenever a new release is ready Full program deploys are complicated and if there are bugs in a release they can cause a lot of trouble Planning for large rollbacks in case of failure can take almost as much time as making the changes for a release and rollback plans are often incomplete and haven t been tried To prepare for rolling back monolithic applications you need to make rollback scripts for the database take snapshots of the application servers if they re running on a virtual machine make copies of the previous application release and make sure all the relevant teams are working together A fully coupled application design makes it hard to roll back deployments No single piece of utility no matter how small can be put into place without the rest Heavily Interdependent StructureSince a monolith is a single self contained application it usually depends on a lot of other applications As the number of variables in an app goes up so does the chance that it will have bugs and security holes Most of the source code in your app probably comes from these third party dependencies This means that bugs and security risks are more likely to happen Because it s a single piece program any third party libraries that are included are used by the whole application It s important to understand how widespread this dependency problem is because it means that you can t separate that third party library from the program even if it s only used by one piece of code Because monoliths have such a high dependency overhead even libraries that are only used in the smallest ways can cause problems that require redeploying the whole service when patches are made Because dependencies cause a lot of coupling teams will try to update all dependencies at the same time But if the program doesn t have the right unit integration and regression tests this will cause more bugs and security holes It s not ideal to have a heavy dependency structure that requires re deploying the whole application This is probably one of the biggest security risks for a monolithic application because teams won t update or patch dependencies even if they have security holes Ripple EffectWith every change to the code there is a high chance that a bug or several bugs will be added to an application This is related to managing dependencies This is not a new way to introduce bugs but it s important to know that the more tightly coupled and unified an application is the more likely it is that a newly introduced bug will cause problems throughout the application This means that as changes are made to a monolithic application the amount of technical debt grows dramatically and it is unlikely that even the best test suites will find all of the problems before a new release Downtime During DeploymentBecause monolithic apps are usually launched all at once as a single app they need to be taken offline to release Along with the need for downtime the application only has one version Yes different libraries can have different versions but to upgrade a version of a library the whole program must be redeployed While we can use rolling updates this isn t always feasible ConclusionIn this article we discussed what is a monolithic architecture its advantages and disadvantages scaling possibilities and pain points Monolithic architecture is a traditional way of making software in which an application is made as a single connected unit Its benefits include being easy to use cost effective consistent and strong But scalability maintenance and deployment can be hard with monolithic systems You can use horizontal scaling or a load balancer to send traffic to different instances of a monolithic design to make it bigger Even though this method can help handle more work it may have problems like scaling bottlenecks and make it hard to separate and scale each component separately The article also talked about the problems with scaling a monolithic architecture like how hard it is to deal with rising complexity how little flexibility there is and how deployments could cause downtime When scalability and agility are important these pain points show how important it is to carefully consider other architectural methods like microservices Should we abandon the monolith If your application works well with the number of users you have now and you still have room to grow vertically it probably doesn t make sense to re architect and rebuild it right now In other words you are probably doing fine if your application deployments are easy and not very thrilling and you have a good handle on technical debt and bug overhead If you think that your application will grow faster than you can scale it in the next to months then the answer is yes Still you should take things slowly Find separate pieces of features in your app and separate them The main difference between Service Oriented Architecture and Microservice Architecture is how many responsibilities each process has So if you have a point of sale program make the part that manages inventory into a separate service Then go to the next responsibility Bigger parts can always be broken up into smaller ones later When switching from a monolithic architecture to a microservice or service oriented design it s easy to go too far Both have their good points and it s just as important to know where to stop as to know where to start If there are too many services to manage you should think about reducing the number of microservices in your app If there are too many dependencies on one application and you can t scale it or it s hard to launch it you might want to split it up At the end of the day a monolithic architecture a service oriented architecture and a microservice architecture are just tools in your toolbox Select the tools based on the problem and not on the latest trend I hope that you found worth in this article and I hope to see you again Logo generated with HotPot 2023-05-19 11:02:52
Apple AppleInsider - Frontpage News Timekettle Fluentalk T1 Translator Device review: Works well, but you already own an iPhone https://appleinsider.com/articles/23/05/19/timekettle-fluentalk-t1-translator-device-review-works-well-but-you-already-own-an-iphone?utm_medium=rss Timekettle Fluentalk T Translator Device review Works well but you already own an iPhoneThe Timekettle Fluentalk T Translator Device is a well built language translator that allows you to convert foreign text by verbalizing or photographing it ーbut you own an alternative already Timekettle Fluentalk T Translator DeviceOne of the most significant barriers people may have while visiting foreign countries is that residents may speak a different language than them Timekettle hopes to eliminate this barrier with its latest product Read more 2023-05-19 11:45:43
海外TECH Engadget Google's Pixel 8 Pro could have a built-in thermometer https://www.engadget.com/googles-pixel-8-pro-could-have-a-built-in-thermometer-114808668.html?src=rss Google x s Pixel Pro could have a built in thermometerGoogle s Pixel Pro could come with a new feature that s not quite commonly found on phones mobiles has published a video from tipster Kuba Wojciechowski showing what looks like Pixel device being used to measure a person s temperature Yep if the leak is legit the upcoming flagship Pixel will have a built in thermometer The video shows an infrared sensor similar to the ones used by contactless thermometers inside the metal panel where the rear cameras are also located nbsp Based on the demonstration of the built in thermometer users will have to take off their glasses or any other eye and forehead accessories They then have to bring the sensor as close to their forehead as possible without actually touching it and then moving their phone towards their temple in seconds mobiles says the sensor could also be used to measure the temperature of inanimate objects but the video didn t demonstrate how that would work Google s employees have reportedly been testing the feature as well nbsp A previous leak of computer renders show the Pixel Pro as a rounded version of the Pixel and this new video does show a device that s identical to those renders While the upcoming phone bears a lot of physical similarities to its predecessor its three rear cameras are now inside one module On the Pixel Pro one of the three camera sensors is in a separate module nbsp A thermometer is perhaps a curious feature addition for a phone especially now that pandemic related measures are no longer followed Take note that this is merely a leak and it remains to be seen whether the Pixel Pros that will make their way to buyers will actually have the sensor mobiles video has already been deleted due to a copyright claim but one of the publication s readers tweeted a copy that we ve embedded below First leaked video of the Pixel Pro showing off the phone and it s new thermometer feature This phone looks I genuinely can t wait for Pixel series to launch Please let Tensor G be better Pixelpro googlepixel teampixel googleLeaks are from mobiles pic twitter com mgIBROuーNeil Sargeant Neil Sarg May This article originally appeared on Engadget at 2023-05-19 11:48:08
海外TECH Engadget The Morning After: ChatGPT has an official iPhone app https://www.engadget.com/the-morning-after-chatgpt-has-an-official-iphone-app-111532814.html?src=rss The Morning After ChatGPT has an official iPhone appOpenAI has launched a free ChatGPT app for iOS It s the first official smartphone app for the chatbot joining a crowded field of third party mobile AI software which also taps into the GPT and GPT APIs powering ChatGPT It also allows switching between standard and GPT language models for ChatGPT Plus subscribers as well as conversation history synced from your the desktop if you sign in with the same account and the ability to export data and delete or rename conversations It s only available in the US for now but the company says it will expand to additional countries “in the coming weeks It s pretty much the same experience as the website At the same time there are reports some tech companies are wary of staff using AI chatbots It s already happened In early April The Economist Koreareported three Samsung employees shared confidential information with ChatGPT Apple reportedly fears someone inadvertently leaking proprietary data while using ChatGPT To prevent that scenario the company has reportedly restricted the use of ChatGPT and other AI tools such as GitHub s Copilot that can autocomplete code The Wall Street Journal also says Apple is working on large language models of its own Mat SmithThe Morning After isn t just a newsletter it s also a daily podcast Get our daily audio briefings Monday through Friday by subscribing right here The biggest stories you might have missedApple may have restricted employee use of ChatGPT due to privacy concernsPeloton finally gets approved repair for treadmill line after injuries and one deathThe best cheap kitchen gadgets in Spacetop is an augmented reality laptop for remote working on the go Take Two hints that Grand Theft Auto VI could land as early as The company said it s releasing groundbreaking titles for fiscal year Rockstar s parent company Take Two has shared its projections for the future along with its yearly earnings report And apparently it s gearing up for a year that will take the company “to even greater levels of success quot The company expects the titles it s releasing in the fiscal year to help it achieve billion in net bookings or the net amount of products and services sold As IGN reported Take Two s net bookings for the previous fiscal year reached billion An almost billion jump in net bookings is massive and unless Take Two is making another huge acquisition GTA is really the only franchise that would enable it to achieve that goal It s also one of if not the biggest AAA game series in the world Continue reading Heinz Remix is the sauce dispenser of your dreamsIf those dreams involve smoky mayo HeinzCustom soda machines are old news We need custom sauces and Heinz is happy to humor us Kraft Heinz has unveiled a Heinz Remix dispenser that lets you customize sauces through a touchscreen interface You choose from base sauces and add one or more quot enhancers quot at your choice of intensity You want a splash of ketchup with a strong jalapeño accent and a hint of mango You got it The company plans to test Heinz Remix at unspecified restaurants in late to early Continue reading Sony s Project Leonardo PS peripheral is now the Access controllerMore details on the PlayStation s accessibility controller SonySony first shared information about its customizable controller back in January under the name Project Leonardo and now we re getting the finer details The controller can be laid flat placed at various angles and it can be installed on a tripod or other custom mount The announcement brings it one small and long overdue step closer to offering parity with Microsoft which released the Xbox Adaptive Controller back in However the Access controller still has no release date or price with more details coming quot in the months ahead quot Continue reading Mortal Kombat reboots the series on September thA beta will be available in August The next Mortal Kombat game is Mortal Kombat a quot reborn quot take on the series which promises new fighting mechanics and game modes While most details are under wraps you ll see many well known characters as well as Kameo Fighters to help you mid battle And yes the gore remains intact A digital Premium Edition will offer early access to the game September th a Johnny Cage skin that resembles actor Jean Claude Van Damme and early access to playable characters and Kameo Fighters when they arrive post launch This makes me furious Because Van Damme played Guile in Street Fighter The Movie And I m easily angered Continue reading This article originally appeared on Engadget at 2023-05-19 11:15:32
海外科学 NYT > Science This Summer We’re Helping Scientists Track Birds. Join In. https://www.nytimes.com/explain/2023/05/18/science/birds-science efforts 2023-05-19 11:06:43
医療系 医療介護 CBnews コロナ入院調整、他へ依頼したら報酬算定不可-厚労省が疑義解釈 https://www.cbnews.jp/news/entry/20230519203806 医療機関 2023-05-19 20:55:00
医療系 医療介護 CBnews オンライン診療の場所、緩和の再検討を要請-規制改革推進会議WGが厚労省に https://www.cbnews.jp/news/entry/20230519201727 厚生労働省 2023-05-19 20:30:00
海外ニュース Japan Times latest articles Ukraine’s Zelenskyy set to attend G7 Hiroshima summit in person https://www.japantimes.co.jp/news/2023/05/19/national/politics-diplomacy/volodymyr-zelenskyy-visit-hiroshima-g7-summit/ Ukraine s Zelenskyy set to attend G Hiroshima summit in personThe visit to the atomic bombed city would be rich in symbolism amid Russian nuclear saber rattling in the bloody war against its neighbor 2023-05-19 20:22:42
ニュース BBC News - Home Legal migration is too high, PM says https://www.bbc.co.uk/news/uk-politics-65643684?at_medium=RSS&at_campaign=KARANGA migrants 2023-05-19 11:26:09
ニュース BBC News - Home Michael Vaughan to return to BBC for the Ashes and Ireland Test https://www.bbc.co.uk/sport/cricket/65646362?at_medium=RSS&at_campaign=KARANGA ireland 2023-05-19 11:41:31
IT 週刊アスキー インディーゲーム紹介番組「INDIE Live Expo 2023」が5月20日~21日に配信! https://weekly.ascii.jp/elem/000/004/137/4137452/ indieliveexpo 2023-05-19 20:20:00
IT 週刊アスキー 『Ghost of Tsushima』2作品の日本国内での累計実売本数が100万本突破! https://weekly.ascii.jp/elem/000/004/137/4137451/ ghost 2023-05-19 20:15:00

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)