AWS |
AWS Partner Network (APN) Blog |
Streamlined Resource Management with the Infosys Automated Self-Service Landing Zone Solution for AWS |
https://aws.amazon.com/blogs/apn/streamlined-resource-management-with-the-infosys-automated-self-service-landing-zone-solution-for-aws/
|
Streamlined Resource Management with the Infosys Automated Self Service Landing Zone Solution for AWSInfosys has crafted an automated self service landing zone solution for AWS which employs AWS Control Tower to generate the customer s organization unit structure and set up individual accounts It uses the infrastructure as code tools from Terraform for infrastructure provisioning and Ansible for service configuration The landing zone provides a pre configured and secure environment functioning as a springboard for organizations to manage their AWS resources effectively |
2023-07-06 16:56:26 |
AWS |
AWS Media Blog |
Inside the arc: The Toronto Raptors’ journey from on-premises compute to AWS for novel player insights |
https://aws.amazon.com/blogs/media/inside-the-arc-the-toronto-raptors-journey-from-on-premises-compute-to-aws-for-novel-player-insights/
|
Inside the arc The Toronto Raptors journey from on premises compute to AWS for novel player insightsThis post is authored by Devin Pleuler Senior Director of R amp D at Maple Leaf Sports amp Entertainment MLSE and Ari Entin Principal of AWS Sports Marketing Communications The content and opinions in this post are those of the third party author and AWS is not responsible for the content or accuracy of this post nbsp Introduction In … |
2023-07-06 16:35:01 |
AWS |
AWS Messaging and Targeting Blog |
Building Generative AI into Marketing Strategies: A Primer |
https://aws.amazon.com/blogs/messaging-and-targeting/building-generative-ai-into-marketing-strategies-a-primer/
|
Building Generative AI into Marketing Strategies A PrimerIntroduction Artificial Intelligence has undoubtedly shaped many industries and is poised to be one of the most transformative technologies in the st century Among these is the field of marketing where the application of generative AI promises to transform the landscape This blog post explores how generative AI can revolutionize marketing strategies offering innovative solutions … |
2023-07-06 16:14:28 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
DeepL API (Python) を使ってChatGPTと英語でやりとりする |
https://qiita.com/dxtend/items/ccf172fc47847bf144fb
|
chatgpt |
2023-07-07 01:50:25 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
Flaskでスパム対策のハニーポットを設置 |
https://qiita.com/dxtend/items/9aeaff9c2cc402dcd1cd
|
flask |
2023-07-07 01:11:11 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
M2 Macbook で platform linux/amd64 を指定して golang 1.20 でビルドすると segmentation faultが発生 |
https://qiita.com/kgwryk28/items/f6a9270db73d34ff9e79
|
docke |
2023-07-07 01:09:08 |
golang |
Goタグが付けられた新着投稿 - Qiita |
M2 Macbook で platform linux/amd64 を指定して golang 1.20 でビルドすると segmentation faultが発生 |
https://qiita.com/kgwryk28/items/f6a9270db73d34ff9e79
|
docke |
2023-07-07 01:09:08 |
海外TECH |
MakeUseOf |
8 Ways to Stay on Top of the Latest Trends in Data Science |
https://www.makeuseof.com/stay-on-top-latest-trends-data-science/
|
Ways to Stay on Top of the Latest Trends in Data ScienceCurious about how to keep up with the ever evolving data science landscape Here are some effective strategies to stay ahead of the latest trends |
2023-07-06 16:45:18 |
海外TECH |
MakeUseOf |
How to Use a Slicer to Filter a Table in Microsoft Excel |
https://www.makeuseof.com/use-slicer-to-filter-table-in-excel/
|
insights |
2023-07-06 16:30:18 |
海外TECH |
MakeUseOf |
The 4 Safest Phones That Are Best for Privacy and Security |
https://www.makeuseof.com/best-phones-for-privacy/
|
fortunately |
2023-07-06 16:30:18 |
海外TECH |
MakeUseOf |
8 Things to Remember Before You Clean Install Windows |
https://www.makeuseof.com/important-things-remember-clean-installing-windows/
|
installs |
2023-07-06 16:16:18 |
海外TECH |
MakeUseOf |
The Best Budget Headphones |
https://www.makeuseof.com/tag/5-quality-headphones-cost-50/
|
great |
2023-07-06 16:16:18 |
海外TECH |
DEV Community |
A guide to Next.js layouts and nested layouts |
https://dev.to/logrocket/a-guide-to-nextjs-layouts-and-nested-layouts-5c0d
|
A guide to Next js layouts and nested layoutsWritten by Ibadehin Mojeed️When building projects with Next js we typically create an entire user interface by assembling isolated components However some parts of the interface require the same code snippets across multiple routes ーfor example the navigation header footer and sidebar To manage this we use layouts to structure the interface in a way that contains shared code snippets In this lesson we ll delve into managing layouts and nested layouts in Next js using the Pages Router and the App Router We will cover Managing layouts with the Pages Router Persisting layouts in the Pages Router Creating nested layouts with the Pages Router Composing per page layouts with the getLayout function Creating a nested DashboardLayout Creating a custom layout in the Pages Router Managing layouts in the App Router Creating nested layouts in the App Route Creating a custom layout in the App Router Creating route groupsCheck out the demo project I ve put together to see it in action You can see the project source code on GitHub as well Here are the layout details for the project The Home and dashboard routes share header and footer content The Newsletter route has a different footer content and no header The dashboard routes implement a nested layout sharing sidebar navigationTo follow along with this tutorial you ll need a basic understanding of Next js Let s get started Managing layouts with the Next js Pages Router Next js recommends starting a new project with the App Router However in this tutorial we ll also discuss how to implement layouts and nested layouts with the Pages Router for users who have yet to migrate to the new Next js routing system To help illustrate the differences between the two approaches we ll create the same application using both methods and compare how the new App Router simplifies the process of implementing nested layouts To start let s take a look at a typical folder structure for the Pages Router in Next js ├ーcomponents│├ーFooter js│└ーHeader js├ーpages│├ーdashboard││├ーaccount js││├ーanalytics js││└ーsettings js│ │├ーindex js│└ーnewsletter js To define a layout with the Pages routing system we create a Layout component that renders any shared user interface and its children Create a components Layout js file and render the shared header and footer content import Header from Header import Footer from Footer const RootLayout children gt return lt gt lt Header gt lt main gt children lt main gt lt Footer gt lt gt export default RootLayout The Layout component takes a children prop that serves as a placeholder for the active page content In the final project we use Tailwind CSS for styling purposes As a result the updated markup includes class utilities const RootLayout children gt return lt div className flex flex col min h screen mx auto max w xl px pt pb gt lt div className flex grow gt lt Header gt lt main className my py gt children lt main gt lt div gt lt Footer gt lt div gt A beginner s approach might be to wrap each page s rendered markup with the lt RootLayout gt component For example wrapping the Home component render would look like this import RootLayout from components Layout const Home gt return lt RootLayout gt lt main gt lt main gt lt RootLayout gt export default Home By doing this we ll get the desired UI for the pages However this implementation doesn t preserve the state between page transitions For example the search field s input text gets cleared when navigating between pages that share a common layout This isn t the experience we expect from a single page application In the next section we ll discuss how to preserve the state in a shared layout Persisting layouts in the Next js Pages Router If we examine the pages app js file that Next js calls during each page initialization we ll see an App component that includes a Component prop representing the active page import styles globals css export default function App Component pageProps return lt Component pageProps gt In this file we can load the shared layout and other global files such as the global CSS file So let s wrap the page content with the lt RootLayout gt like so import styles globals css import RootLayout from components Layout export default function App Component pageProps return lt RootLayout gt lt Component pageProps gt lt RootLayout gt With this implementation the RootLayout component is reused between page transitions As a result the state in the shared component such as the Header will be preserved We no longer need to wrap each page s render with the lt RootLayout gt component After saving all files and revisiting the application we can write in the search field and see that the state now persists between page changes which is an improvement Note that you may need to restart the development server if it doesn t work as expected Creating nested layouts with the Next js Pages Router To create a nested shared layout as demonstrated in the dashboard pages we need to nest a new layout that renders the sidebar navigation within the root layout However with the current implementation simply wrapping the active route within the root layout ーas we did in the pages app js file ーonly works if we require one layout for the entire application To achieve a nested layout Next js provides a way to compose layouts on a per page basis Composing per page layouts with the getLayout function With the Next js pages directory we can create multiple layouts and nest them or create a custom layout that applies to specific routes using a per page implementation That means instead of rendering a root layout in the pages app js file we ll let each individual page component be in charge of its entire layout Let s begin with the Home page We can achieve a per page layout by applying a getLayout property on the page component import RootLayout from components Layout const Home gt return lt main gt lt main gt Home getLayout page gt return lt RootLayout gt page lt RootLayout gt export default Home We defined a function that takes the current page as a parameter and returns the desired UI for the index page Note that we don t have to use the name getLayout ーit can be any name We can now invoke that function in the pages app js file and pass the current page as an argument To achieve this we ll modify the App component in the pages app js as follows export default function App Component pageProps If page layout is available use it Else return the page const getLayout Component getLayout page gt page return getLayout lt Component pageProps gt When Next js initializes a page it checks if a per page layout is defined in the page component using the getLayout function If the layout is defined it is used to render the page Otherwise the page is rendered as is After saving the file the Home page should now render with the specified layout Creating a nested DashboardLayout To create a nested layout for pages under the dashboard route segments we need to create a new layout file called components DashboardLayout js This file should export a component that returns a shared UI for these pages and uses the children prop to render their respective content const DashboardLayout children gt return lt div className flex gap gt lt aside className flex gt Include shared UI here e g a sidebar lt aside gt lt div className bg gray flex p rounded min h px gt children lt div gt lt div gt export default DashboardLayout Now in each of the dashboard page files we need to apply a getLayout property on the page component and return the desired layout tree For example the dashboard account js file will look like this import RootLayout from components Layout import DashboardLayout from components DashboardLayout const Account gt return lt div gt Account screen lt div gt Account getLayout page gt lt RootLayout gt lt DashboardLayout gt page lt DashboardLayout gt lt RootLayout gt export default Account Notice how the DashboardLayout is nested within the RootLayout If we apply the getLayout property to the other page components under the dashboard route we ll also get the desired layout where the state persists between page transitions Check out the GitHub files for the other page components to double check your work so far Creating a custom layout in the Next js Pages Router You may want to create a custom layout as we have done on the Newsletter page in the final project That layout renders different footer content with no navigation bar or sidebar We ll create a new layout file components OnlyFooterLayout js and returns the custom footer and children prop The code for this component would look like this import NewsletterFooter from NewsletterFooter const OnlyFooterLayout children gt return lt div className flex flex col min h screen mx auto max w xl px pt pb gt lt div className flex grow gt lt main className my py gt children lt main gt lt div gt lt NewsletterFooter gt lt div gt export default OnlyFooterLayout Next we ll create the components NewsletterFooter js file and render some custom footer content const NewsletterFooter gt return lt footer className flex items center justify between gt lt footer gt export default NewsletterFooter Finally in the pages newsletter js file we ll apply a getLayout property on the page component then return the desired UI for the Newsletter page import OnlyFooterLayout from components OnlyFooterLayout export const Newsletter gt return Newsletter getLayout page gt lt OnlyFooterLayout gt page lt OnlyFooterLayout gt export default Newsletter If we save all files the page should now render with the custom layout See the project source code Managing layouts in the Next js App Router Next js introduced the App Router file system which enables first class support for layouts nested routes and nested layouts Beginning with version we are safe to use this new routing system in a production environment In light of our project routes the app directory structure would look something like this ├ーapp│ │├ーdashboard││├ーaccount│││└ーpage js││├ーanalytics│││└ーpage js││└ーsettings││└ーpage js│├ーnewsletter ││└ーpage js│├ーlayout js│└ーpage js ├ーcomponents│ │ Each folder or nested folder in the app directory defines a route or nested route and requires a special page js file to render its respective UI The layout js file at the top level is the root layout that is shared across all pages in the application This file is required and would have the following structure by default export default function RootLayout children return lt html lang en gt lt body gt children lt body gt lt html gt Next js uses this root layout to wrap the page content or any nested layouts that may be present during rendering Similar to what we did in the pages directory we can also include the top level shared components within this root layout like so import Header from components Header import Footer from components Footer export default function RootLayout children return lt html lang en gt lt body gt lt div className flex flex col min h screen mx auto max w xl px pt pb gt lt div className flex grow gt lt Header gt lt main className my py gt children lt main gt lt div gt lt Footer gt lt div gt lt body gt lt html gt This layout will persist across routes and maintain component state as anticipated It is important to note that the app directory represents the root segment so the app page js file will render the UI of the index page const Home gt return lt main gt lt main gt export default Home It s worth noting that components in the app directory are React Server Components by default unlike those in the pages directory As a result we cannot use client side hooks in these components Therefore to address this issue we have extracted the logic for the active menu class and the search functionality ーwhich utilize the usePathname and useState client side Hooks respectively ーfrom the Header component and placed them in their separate client components Creating nested layouts in the Next js App Router To create a nested shared layout specifically for pages under the dashboard route segments all we need to do is add a layout js file inside the dashboard folder to define the UI const DashboardLayout children gt return lt div className flex gap gt lt aside className flex gt Include shared UI here e g a sidebar lt aside gt lt div className bg gray flex p rounded min h px gt children lt div gt lt div gt export default DashboardLayout This layout will be nested within the root layout and will wrap all the pages in the dashboard route segment providing a more specific and targeted UI for those pages That s all As we can see creating a nested layout in the App Router is incredibly easy and intuitive Creating a custom layout in the Next js App Router In order to design a personalized layout for the Newsletter page we must isolate that specific route segment from the shared layouts To accomplish this we will employ route groups Creating route groups Route groups are a way to group related routes For our project we ll create two route groups A custom route group containing the Newsletter route The layout for this group will render a custom layout with no navigation bar or sidebar and a different footer A primary route group containing both the index route and the dashboard routes since they share the same root layoutNote that we can name the route group anything we want It s only for organizational purposes To create a route group we ll wrap the group name in parentheses If we reorganize the app directory into two groups we ll have the following structure ├ーapp│├ー primary ││├ーdashboard│││├ーaccount││││└ーpage js│││├ーanalytics││││└ーpage js│││├ーsettings││││└ーpage js│││└ーlayout js ││├ーlayout js ││└ーpage js │├ー custom ││├ーnewsletter│││└ーpage js││└ーlayout js│└ーlayout js │ │ Each of the groups has its respective layout allowing us to customize the UI as desired The primary layout js now looks like so export default function MainLayout children return lt div className flex flex col min h screen mx auto max w xl px pt pb gt lt div className flex grow gt lt Header gt lt main className my py gt children lt main gt lt div gt lt Footer gt lt div gt Meanwhile the custom layout js looks like so import NewsletterFooter from components NewsletterFooter export default function CustomLayout children return lt div className flex flex col min h screen mx auto max w xl px pt pb gt lt div className flex grow gt lt main className my py gt children lt main gt lt div gt lt NewsletterFooter gt lt div gt Finally the top level app layout js file should now include the lt html gt and lt body gt tags as follows export default function RootLayout children return lt html lang en gt lt body gt children lt body gt lt html gt If we save all the files each route should render as expected See the full project source code on GitHub ConclusionUnderstanding how layouts work in Next js is crucial for building complex projects with the framework In this guide we ve covered all the necessary steps to structure the rendered UI with shared content and use it across multiple routes We ve discussed how to achieve layouts and nested layouts both in the Pages Router and the new App Router Additionally we ve seen how to use route groups to create custom layouts for specific route segments If you found this guide helpful we encourage you to share it with others If you have any questions or contributions feel free to leave a comment See the final project hosted on Vercel |
2023-07-06 16:41:50 |
海外TECH |
DEV Community |
What Does a Great Manager Do? |
https://dev.to/snowman647/what-does-a-great-manager-do-35c4
|
What Does a Great Manager Do Not all managers are created equal A good manager elevates their team fosters a positive environment and leads by example while a normal manager merely oversees operations In this article I will provide insights into the traits and actions that separate good managers from the rest compiled from the shared experiences of tech professionals and my own I have been earning as a manager for the last years A Good Manager is Not Just an Individual Contributor with AuthorityThe best managers understand that their role is significantly different from that of an individual contributor IC Rather than assuming the role of IC plus authority they adopt a leadership stance that focuses on supporting and enabling their team to do their best work Trust and EngagementGood managers trust their team but they also stay engaged and aware enough to know when to ask the right questions They provide the team with the autonomy to do their work while maintaining a supportive presence stepping in to provide guidance when necessary Shielding the TeamA good manager runs interference for the team shielding them from organizational politics when possible They ensure that their team is focused on their work and not distracted by unnecessary bureaucracy or ad hoc requests from upper management Providing Necessary ResourcesGood managers make sure the team has the tools they need to succeed If a necessary tool is missing they relentlessly pursue a solution demonstrating their commitment to the team s success Fostering RelationshipsThey establish good relationships with other teams and leaders within the organization These relationships are leveraged to help the team particularly when there are dependencies on other teams Elevating the TeamGood managers consistently highlight the value of the team and its accomplishments They don t take credit for the team s work instead they take pride in creating an environment that allows the work to thrive CommunicationCommunication is key to successful management Good managers clearly communicate expectations and the reasons behind them They also provide their team with enough context about the business to make their work more meaningful Crisis ManagementGood managers excel in crisis management They are willing to take the blame for failures publicly then coach individuals privately They are not afraid to speak truth to power even when it affects their standing within the organization If layoffs or similar challenges are on the horizon they subtly prepare their team ensuring they aren t caught off guard Consistent ValuesA good manager clearly states their values and sticks to them which builds trust over time This predictability provides a sense of stability and trust within the team Regular Check insEffective managers have regular one on one meetings with their team members These meetings serve as a platform for communication coaching and feedback However the frequency of these meetings should be adapted to the current needs of the team and the individual How to become one of them Mitrapunk Engineering Game trains yourself in all aspects of software development excluding the coding Empowering Team MembersGood managers trust their team members to do their work They don t impose unrealistic deadlines and they respect their team s input They also protect their team members from requests that would otherwise monopolize their time ConclusionYou can require any of those from your manager You can start to be Good Engineering Manager Good managers understand that their role goes beyond overseeing operations They actively work to support their team foster a positive environment communicate effectively and lead by example Their actions and approach elevate them from normal managers and make them leaders who inspire their teams to achieve great things This article aims to provide reliable trustworthy information based on real world experiences If you want more follow me on twitterHave a good day |
2023-07-06 16:34:02 |
海外TECH |
DEV Community |
Top 5 Tips for Creating Effective Data Visualizations 📊 |
https://dev.to/jakecupani/top-5-tips-for-creating-effective-data-visualizations-4bff
|
Top Tips for Creating Effective Data Visualizations Data visualization is a powerful way to communicate complex information and insights to your audience But how do we create effective and engaging data visualizations that stand out and get noticed These are my Top tips for creating beautifuland effectivedata visualizations Choose the right visualization for the job Different types of visualizations are better for different contexts For example bar charts are good for comparing categories line graphs are good for showing trends over time and maps are good for showing geographic data Choose the format that best suits your data and your message Use predictable patterns For the most part we are all visual learners We tend to look for familiar patterns and cues when we see a visualization We are visual pattern seeking creatures after all Use common conventions such as placing the most important information at the top left using consistent fonts and colors and aligning elements neatly Make sure to follow the Web Content Accessibility Guidelines WCAG as well when creating data visualizations Remember designing for accessibility is designing for all Use color with purpose Color is one of the most effective ways to draw attention and convey meaning in a visualization Color can also be used to highlight important information differentiate or compare groups or show relationships However avoid using too many colors as this might take away from the point you are trying to get across Ensure that when you use color it has a purpose and isn t just for aesthetic reasons Keep it simple Sometimes less is more Keeping complexity of individual pages to a minimum will ensure that users don t feel overwhelmed with information Try to keep the number of total visualizations on any individual page no more than five Let your visualizations breathe We all need our personal space and so do your visualizations White space is your friend when it comes to data visualization It helps you organize your charts and graphs and it makes them easier to read and understand White space also gives your data visualizations a clean and professional look So don t be afraid to leave some blank areas around your data Trust me your audience will appreciate it Like Follow if you found this interstingMore blog posts like this over on my website and my LinkedIn page |
2023-07-06 16:11:20 |
海外TECH |
DEV Community |
The Best DevOps Engineer Resume |
https://dev.to/dareyio/the-best-devops-engineer-resume-25h7
|
The Best DevOps Engineer ResumeDevOps Market is HOT DevOps has already gone a long way in the IT world from a trendy buzzword to a solid specialization More and more organizations undergoing digital transformations introduce DevOps departments and compete with each other trying to hunt for the brightest DevOps engineers The global DevOps market exceeded BN in and is expected to grow by yearly during the next six years The market is hot and the demand for a highly skilled DevOps engineer has gone through the roof So whether you are just doing your first steps in this profession or already a seasoned and successful DevOps engineer you shall keep your resume updated at all times and be ready for the next great opportunity General AdviceThere are unnumbered hiring advice articles on the Internet so we will not cover general topics on which platform to apply or how to crack an interview We encourage you to develop resume building and interview cracking skills like any other skill that may help you land your dream job Instead of going through general recommendations we will focus on what is relevant for preparing an impressive DevOps resume that will stand out We hope these tips might help you get your dream DevOps role AudienceIt is a well known and studied fact that on average a recruiter spends no more than seconds skimming through a CV and makes the first yes no decision A poorly prepared DevOps engineer resume even of a strong candidate can be filtered out after a first glance and the chance is lost immediately So it is crucial to understand who will be reading your CV and structure it so that the most relevant details will be visible and could be spotted even with one quick look Usually your resume must pass at least two major barriers a recruiter and a hiring manager Of course different organizations have hiring processes specific to them but generally you shall expect that one non technical person will perform a basic job fit check based on how your CV matches the DevOps engineer job descriptions JD they re looking for The first tip is each time tailor your resume for a particular job description and highlight the most applicable parts of your experience and relevant skills Perfect Structure amp Perfect ContentThere is no single correct format for an ideal resume you can use resume builders templates of your preference or a sample DevOps engineer resume to make your CV nice looking but make sure you place the most relevant information first and focus on what the company is looking for in the first place For this incorporate keywords from the posted DevOps engineer job description and try to map them to your skills work experience learnings or at least your future development plans Job descriptions sometimes are also not well prepared and might not contain all information it makes sense to do your research and check the company s website and look at GitHub and LinkedIn profiles of employees to understand better what tech stack and way of working to expect The DevOps world evolves extremely fast new tools concepts and approaches on software development emerge every week and it is almost impossible to keep up with all of them It is perfectly normal not to match JD requirements and know all the technologies listed by heart you can indicate some similar technology you have used or express willingness to learn the one your potential employer needs When listing your skills you better place them in the beginning or on the side of the first page and make them visible make sure you categorize them and place the most fitting ones on the top You can illustrate how well you are at each category or skill with stars or a progress bar Technologies undoubtedly matter knowing them is an integral part but it is not enough As we mentioned many times DevOps is not about applying some specific software tools but rather a philosophy way of thinking and set of principles to follow So do not rely on knowing tech aspects only You shall demonstrate that you do not just know about continuous integration configuration management and other systems used in DevOps practices but rather that you understand share and use in your professional life all the essential DevOps principles Meaningful Actions amp ImpactWhen describing your previous roles a rule of thumb is to place your jobs in chronological order recent to old from top to bottom However you shall be concise and it is advised to spend more lines of text for the most relevant work experience Some well defined frameworks dictate how to describe your achievement and responsibilities and answer related questions such as STAR situation task action result or PAR problem action result It is up to you what technique to use and how to structure your experience description just make sure it is aligned with fundamental DevOps principles and contains some meaningful impact It does not have to be a real business value with dollars and cents attached to it especially if you are just starting your career it can be related to some measurable metrics that make sense and can bring real monetized benefit Explain how your actions led to the achievement of some valid use case what technologies you used what approaches you followed how your impact can be measured in the number of manual actions reduced the of time saved for some process decreases in time of incident response application deployment etc Mention how your company colleagues or and your clients have benefited from your actions Do not exaggerate your contribution remember that you might be asked about it and you will have to explain it in detail but also do not belittle it on the other hand For those who do not have real production grade work experience and who just started their professional journey it is perfectly ok to mention study practice projects and participation in DevOps Bootcamps such asDarey io You still need to describe the purpose of the training project and what you have solved and achieved when completing it MotivationThis part must be the most intricate topic to advise on and at the same time something that cannot be overestimated concerning the impression these few lines will have on you It is a very personal and individual part Still one thing we can recommend with a high level of confidence you shall express strong passion and willingness to extend your expertise in the DevOps domain and commitment to its core principles On which particular principles to put the extra emphasis on is entirely up to you Certifications and ReferencesThere is no consensus in the professional world on whether vendor or service provider certifications can be a valid confirmation of one s knowledge and a proof of skills We are not going to bring up this controversial topic here One thing is assured some companies take into account certifications if you have some it is worth mentioning them but if you do not have no reasons to worry Even if it is clearly stated in the JD an absence of a particular certification might not be the blocker so you shall apply anyway In general you do not have to provide references upfront in your resume it is also something not carved in stone It is just a matter of courtesy to your referees imagine if you send out dozens of resumes and each amp every potential employer would like to call and verify your information ConclusionOf course writing an exceptional resume is just a first step but it is also a key to the next gate in the hiring process the interview You better have your key properly forged it will increase your chances of not being ghosted or silently rejected but rather help you get into a conversation with recruiters and hiring managers Then in the following steps you will have an opportunity to show yourself the best you can this topic is worth a separate article If you want to know more about DevOps practices tools and concepts stay tuned for future updates on our blog We ll provide a DevOps engineer resume example that can help you write a better CV Better yet sign up to our Project Based Learning Platform at DAREY IO and we ll guide you to not only writing a great DevOps engineer resume but also landing your dream DevOps job |
2023-07-06 16:06:16 |
海外TECH |
DEV Community |
Beginner's Guide: Loading Data Based on Changes to Other Data in Angular |
https://dev.to/rensjaspers/beginners-guide-loading-data-based-on-changes-to-other-data-in-angular-106k
|
Beginner x s Guide Loading Data Based on Changes to Other Data in AngularWhen you build apps with Angular you often need to get data when something changes in your app These changes could come from a user s action like typing in a search box or from the app itself such as a change in the route parameters Today we re going to learn some effective ways to reactively fetch data in response to these changes Responding to user inputImagine a scenario where we want to show search results as the user types into a search box Component selector my app standalone true imports CommonModule ReactiveFormsModule template lt input formControl searchControl gt lt div ngIf result async as result gt result lt div gt export class App searchControl new FormControl result this searchControl valueChanges pipe switchMap keywords gt this http get api search params q keywords private http inject HttpClient In this example searchControl valueChanges is an Observable This Observable sends out an event each time the user changes the text in the search box We then use something called the switchMap operator from RxJS This operator lets us make a fresh data request each time the user changes the text It also makes sure we only work with the results for the latest text input This is very important for keeping your app speedy and pleasant for the user We use ngIf with the async pipe so that the template automatically connects to our result Observable and updates itself This makes sure that the template always shows the newest search results to the user in real time as they type into the search box Managing loading and error states with RxJSA key part of getting data is giving feedback to the user during the entire loading process This could be a loading message or an error message Instead of using separate isLoading or hasError variables in our components we ll use some RxJS operators called map catchError startWith and scan Let s have a look at the following example interface LoadingState lt T unknown gt loading boolean error Error null data T Component selector my app standalone true imports CommonModule ReactiveFormsModule template lt input formControl searchControl gt lt div ngIf result async as result gt lt div ngIf result loading gt Loading lt div gt lt div ngIf result data as data gt data lt div gt lt div ngIf result error as error gt error message lt div gt lt div gt export class App searchControl new FormControl result this searchControl valueChanges pipe switchMap value gt this http get api search params q value pipe map data gt data loading false catchError error gt of error loading false startWith error null loading true scan state LoadingState lt string gt change LoadingState lt string gt gt state change private http inject HttpClient In the code above We use map to change the raw data from the HTTP request into an object This object includes the data and a loading flag that is set to false We use catchError to manage any errors that happen during the HTTP request If an error happens it gives back an Observable with an object This object includes the error and a loading flag that is set to false We use startWith to begin the stream with a specific value Here it starts with an object that includes a null error and a loading flag set to true This makes sure that the user sees a loading state before any data is loaded scan works like Array reduce It takes the previous state and the new changes and mixes them into a new state Here it takes the previous loading state and blends it with the changes from the HTTP request result This way we keep a constant stream of state changes each adding in the changes of the one before it Now in your template you can use Angular s async pipe to subscribe to result and use ngIf to show different parts of the template based on the loading state These operators look complicated Why not just use separate isLoading and hasError variables Even if it looks easier to use this isLoading or this hasError variables in your component using RxJS operators gives you better control When your loading and error states are inside the data stream they re tied to the loading process They can t be changed by anything else This prevents unexpected changes and bugs If you use separate variables other parts of your app could change them This could lead to bugs that are hard to track down and fix Keeping these states inside the data stream makes your code less complicated and safer It also makes sure the user interface updates smoothly Important keep it DRY Create your own reusable RxJS OperatorThis pattern we discussed is used a lot but we don t want to write the same RxJS code over and over again Luckily it s not hard to make your own RxJS operators We can take the code we used before and make a useful RxJS operator that we can use all over our app Let s look at an example we ll make our own operator called switchMapWithLoading We ll put it in a separate file named switch map with loading ts switch map with loading tsinterface LoadingState lt T unknown gt loading boolean error Error null data T export function switchMapWithLoading lt T gt observableFunction value any gt Observable lt T gt OperatorFunction lt any LoadingState lt T gt gt return source Observable lt any gt gt source pipe switchMap value gt observableFunction value pipe map data gt data loading false catchError error gt of error loading false startWith error null loading true scan state LoadingState lt T gt change LoadingState lt T gt gt state change You can then import it in your component and use it like so Component selector my app standalone true imports CommonModule ReactiveFormsModule template lt input formControl searchControl gt lt div ngIf result async as result gt lt div ngIf result loading gt Loading lt div gt lt div ngIf result data as data gt data lt div gt lt div ngIf result error as error gt error message lt div gt lt div gt export class App searchControl new FormControl result this searchControl valueChanges pipe switchMapWithLoading value gt this http get api search params q value private http inject HttpClient With this you ve made your Angular application code more efficient and maintainable by abstracting the reactive data fetching mechanism into a custom RxJS operator which you can use across your application This will not only keep your code DRY Don t Repeat Yourself but also make it easier to understand and manage Making it even simpler with ngxLoadWithNow you might be wondering if there s a simpler way to handle all of this without dealing with complex RxJS operators Good news Introducing the ngxLoadWith directive which provides a simpler approach to managing loading states in your Angular application To get started you need to install the ngxLoadWith package Run the following command npm install ngx load withOnce installed you can use the ngxLoadWith directive in your Angular component like this Component selector my app standalone true imports CommonModule ReactiveFormsModule NgxLoadWithModule template lt input formControl searchControl gt lt div ngxLoadWith getResult as data args searchControl value loadingTemplate loading errorTemplate error gt data lt div gt lt ng template loading gt Loading lt ng template gt lt ng template error let error gt error message lt ng template gt export class App searchControl new FormControl getResult keywords string gt this http get api search params q keywords private http inject HttpClient Let s break it down We simply define a function called getResult that takes a keywords parameter and returns an HTTP request We then pass this function to the ngxLoadWith directive along with the value of searchControl value as the args input Now whenever the searchControl value changes the getResult function will be called with the new value The ngxLoadWith directive will then subscribe to the result of the function and display the result in the template Then we define two templates loading and error These templates will be automatically displayed when the getResult function is loading or has an error That s it You can now easily and safely manage loading states in your Angular application without having to deal with complex RxJS operators Ready to give it a try Check out the source code at github com rensjaspers ngx load with If you find ngxLoadWith helpful don t forget to give it a star on Github We would love to hear your feedback and experiences with this directive |
2023-07-06 16:03:00 |
Apple |
AppleInsider - Frontpage News |
Xreal Air AR glasses deliver spatial computing today with your Mac |
https://appleinsider.com/articles/23/07/06/xreal-air-ar-glasses-deliver-spatial-computing-today-with-your-mac-or-iphone?utm_medium=rss
|
Xreal Air AR glasses deliver spatial computing today with your MacUsing the Xreal Air glasses you can now connect them to your Mac for affordable spatial computing and D videos available today Xreal Air glassesApple s upcoming Vision Pro looks impressive but its mile high price tag will put it out of reach for most The Xreal Air glasses provide a new spatial computing experience at a much lower price point Read more |
2023-07-06 16:19:35 |
海外TECH |
Engadget |
Simogo tries to explain the mysteries of ‘Lorelei and the Laser Eyes’ |
https://www.engadget.com/simogo-tries-to-explain-the-mysteries-of-lorelei-and-the-laser-eyes-161941692.html?src=rss
|
Simogo tries to explain the mysteries of Lorelei and the Laser Eyes Generally the game creation process begins with a mechanic There tends to be an input method that developers want to explore or maybe even a storyline that they think will be particularly powerful in an interactive setting There s usually a central theme grounded in a genre like “first person shooter or “isometric roguelike and the game comes together within this framework its details and proper nouns crystalizing along the way In the case of Lorelei and the Laser Eyes Simogo started with the name “There wasn t a single a ha moment Simogo co founder Simon Flesser told Engadget “We had the title which we really liked and from there we have been trying to figure out what laser eyes are SimogoLorelei and the Laser Eyes is the ninth major game from Simogo the acclaimed Swedish studio that s responsible for Device Year Walk and Sayonara Wild Hearts Simogo revealed Lorelei nbsp in June with a noir inspired trailer promising a murder mystery a maze of deceptions and a palace of memories A smartly dressed woman moves languidly behind the trailer s text eyes glowing red as she navigates the monochromatic grounds of a large estate Simogo didn t divulge a ton of detail about Lorelei at its debut and it hasn t provided much clarity in the year since The game s latest trailer includes the years and and it hints at international espionage with a paranormal twist emphasizing the player s ability to recognize patterns and solve puzzles “Do you remember the maze the trailer asks over and over again So here are some basic details about Lorelei and the Laser Eyes directly from Flesser It s a third person puzzle adventure It s non linear There are nearly puzzles to solve It s coming to PC and Switch It s set in the “surreal memory of a house Lorelei and the Laser Eyes plays with cameras in a D space drawing from the best ideas in Sayonara Wild Hearts with shifting mechanics and perspectives It feels mysterious because well that s what it is “The project has been transformative to make which reflects in its themes Flesser said “It s not a singular concept it s rather more of a collection of ideas over a long time Thematically there are a lot of ideas about stories within stories stories reflecting each other memories dreams and parallel events and worlds SimogoPlayers will interact with objects including cameras computers and locks they ll read passages from books and magazines they ll play games within games according to Flesser “We re trying to instill a feeling of things not being what they seem he said “Not dread but a constant feeling of ambivalence a story in which there is no good or evil And a sense of absurdity ーfinding yourself in a strange situation in which you will eventually start questioning what is happening and what is not Simogo wants to mess with your mind basically This is kind of the studio s jam ーits previous games like Year Walk The Sailor s Dream and Device successfully toyed with surrealism and paranormal events “I think there is something interesting that happens when you start blending realities Flesser said “When a piece of media starts talking about our reality as if it is a story within its reality it ends up becoming more real somehow It creeps into your head in a very specific way You become the story There s no release date for Lorelei and the Laser Eyes but it s being published by Annapurna Interactive and it s due out in on PC and Switch The game s second trailer landed last week At the end a series of maze blocks flash across the screen positioned as if they re words in a sentence It feels like a challenge or maybe an invitation to solve one of Lorelei s puzzles It feels like the game has already begun At least one person on Steam claims they ve translated the maze blocks into a complete thought and their result seems to fit appropriately linked here for those curious I asked Flesser for a correct translation of the mystery blocks and he didn t provide one Instead he said simply “Everything is a puzzle This article originally appeared on Engadget at |
2023-07-06 16:19:41 |
Cisco |
Cisco Blog |
Building industrial networks that are secure by design |
https://feedpress.me/link/23532/16225588/building-industrial-networks-that-are-secure-by-design
|
Building industrial networks that are secure by designAs manufacturers digitize the plant floor advanced industrial networking and security are more important than ever Cisco and its operational technology OT systems integration partners can help to bring IT and operations teams together in building industrial networks that are secure by design |
2023-07-06 16:12:07 |
海外科学 |
NYT > Science |
Heat Records Broken Across Earth |
https://www.nytimes.com/2023/07/06/climate/climate-change-record-heat.html
|
across |
2023-07-06 16:50:20 |
金融 |
金融庁ホームページ |
バーゼル銀行監督委員会による「信用リスクに関するニューズレター」の公表について掲載しました。 |
https://www.fsa.go.jp/inter/bis/20230706/20230706.html
|
信用リスク |
2023-07-06 17:00:00 |
ニュース |
BBC News - Home |
Wimbledon school crash: Girl, 8, dies after car hits building |
https://www.bbc.co.uk/news/uk-england-london-66120958?at_medium=RSS&at_campaign=KARANGA
|
london |
2023-07-06 16:36:52 |
ニュース |
BBC News - Home |
Elle Edwards: Connor Chapman guilty of Christmas Eve pub murder |
https://www.bbc.co.uk/news/uk-england-merseyside-66108449?at_medium=RSS&at_campaign=KARANGA
|
chapman |
2023-07-06 16:28:49 |
ニュース |
BBC News - Home |
Stephen Lawrence case: 'Disgrace' retired detectives will not be charged, says mother |
https://www.bbc.co.uk/news/uk-66127025?at_medium=RSS&at_campaign=KARANGA
|
lawrence |
2023-07-06 16:37:41 |
ニュース |
BBC News - Home |
Government loses court battle over Boris Johnson's Covid WhatsApps |
https://www.bbc.co.uk/news/uk-politics-66123656?at_medium=RSS&at_campaign=KARANGA
|
inquiry |
2023-07-06 16:25:54 |
ニュース |
BBC News - Home |
Wimbledon 2023 results: Liam Broady beats Casper Ruud, Katie Boulter through, Jan Choinski out |
https://www.bbc.co.uk/sport/tennis/66115993?at_medium=RSS&at_campaign=KARANGA
|
Wimbledon results Liam Broady beats Casper Ruud Katie Boulter through Jan Choinski outBritish number five Liam Broady causes one of the biggest shocks at this year s Wimbledon with a remarkable five set win over Norwegian fourth seed Casper Ruud |
2023-07-06 16:24:24 |
ニュース |
BBC News - Home |
Uxbridge by-election: Keir Starmer won't say whether he backs ULEZ expansion |
https://www.bbc.co.uk/news/uk-politics-66124191?at_medium=RSS&at_campaign=KARANGA
|
clean |
2023-07-06 16:35:53 |
ニュース |
BBC News - Home |
Colosseum: Tourist who carved on wall 'unaware of arena's age' |
https://www.bbc.co.uk/news/world-europe-66121000?at_medium=RSS&at_campaign=KARANGA
|
roman |
2023-07-06 16:42:34 |
ニュース |
BBC News - Home |
NatWest, Lloyds, Barclays and HSBC among banks quizzed over savings rates |
https://www.bbc.co.uk/news/business-66111098?at_medium=RSS&at_campaign=KARANGA
|
rates |
2023-07-06 16:25:54 |
ニュース |
BBC News - Home |
The Ashes 2023: England's Mark Wood takes superb 5-34 against Australia |
https://www.bbc.co.uk/sport/av/cricket/66121569?at_medium=RSS&at_campaign=KARANGA
|
The Ashes England x s Mark Wood takes superb against AustraliaFast bowler Mark Wood takes a superb five wicket haul against Australia on his return to the England side on day one of the third Ashes Test |
2023-07-06 16:31:17 |
ニュース |
BBC News - Home |
Granit Xhaka: Bayer Leverkusen sign Swiss midfielder from Arsenal for £21.4m |
https://www.bbc.co.uk/sport/football/66120275?at_medium=RSS&at_campaign=KARANGA
|
euros |
2023-07-06 16:51:39 |
ニュース |
BBC News - Home |
Tour de France: Tadej Pogacar beats Jonas Vingegaard to win stage six after thrilling finale |
https://www.bbc.co.uk/sport/cycling/66126377?at_medium=RSS&at_campaign=KARANGA
|
Tour de France Tadej Pogacar beats Jonas Vingegaard to win stage six after thrilling finaleTadej Pogacar produces a superb late attack to power away from defending champion Jonas Vingegaard and win stage six of the Tour de France |
2023-07-06 16:45:11 |
ビジネス |
不景気.com |
佐賀の木材加工「松本ツキ板工業」が破産へ、負債1億円 - 不景気com |
https://www.fukeiki.com/2023/07/matsumoto-tsukiita.html
|
佐賀県佐賀市 |
2023-07-06 16:24:41 |
コメント
コメントを投稿