AWS |
AWS Architecture Blog |
New Whitepaper Provides Best Practices for Optimizing AWS Accounts |
https://aws.amazon.com/blogs/architecture/new-whitepaper-provides-best-practices-for-optimizing-aws-accounts/
|
New Whitepaper Provides Best Practices for Optimizing AWS AccountsMoving fast on the cloud while staying secure requires mechanisms to give the right people access to the right features at the right time We recommend using multiple accounts which helps you isolate applications data and business processes across your environment The recently released whitepaper Organizing Your AWS Environment Using Multiple Accounts will show you … |
2021-06-02 17:19:19 |
AWS |
AWS |
Zulily: A Compelling Suggestive Search Experience Using Amazon DocumentDB with MongoDB Compatibility |
https://www.youtube.com/watch?v=Ccutfm_Srzw
|
Zulily A Compelling Suggestive Search Experience Using Amazon DocumentDB with MongoDB CompatibilityZulily leverages Amazon DocumentDB with MongoDB compatibility to offer real time suggestive search experiences for millions of customers around the world The Zulily engineering team leveraged cloud and data technologies in an incredible timeline weeks to develop a fun new way of browsing that speaks directly to Zulily s brand and value proposition giving shoppers an engaging way to discover unique finds trending items and debut brands Check out more resources for architecting in the AWS cloud AWS |
2021-06-02 17:46:28 |
AWS |
AWS |
Zepp Health all-in on AWS to Expand Global Market |
https://www.youtube.com/watch?v=0z_lz_VdZk4
|
Zepp Health all in on AWS to Expand Global MarketZepp Health uses Amazon Web Services to power the Zepp Health Cloud for the global market achieving rapid deployment and stability reliability privacy security and operational flexibility targets and delivering a stable reliable and secure experience to the worldwide users of its wearable devices Zepp Health is a cloud based healthcare services provider that offers world leading wearable technologies to nearly million users all over the world Learn more about Zepp Health at Subscribe More AWS videos More AWS events videos AWS |
2021-06-02 17:22:59 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
【django】DateTimeField %s received a naive datetimeというwarningがでたときの対処法 |
https://qiita.com/chatrate/items/e09a487285894098aed8
|
【django】DateTimeFieldsreceivedanaivedatetimeというwarningがでたときの対処法ワーニングなので特に問題はないんだろうけど鬱陶しいのでどうにかしたい人生でした。 |
2021-06-03 02:26:49 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
コロナ前後で伸びた企業を分析してみた【日本編】 |
https://qiita.com/revvve44/items/c003a1c0ddbfc0e0fef2
|
コロナ前後で伸びたor落ちた企業のYoY調査それでは株価成長率上位位と下位位のYoYを確認して、実際に株価が上昇した企業は売上高や営業利益も上昇したのか確認していこう。 |
2021-06-03 02:17:44 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
phpを用い、特定の条件下でのhtmlページのformを許可する |
https://teratail.com/questions/341845?rss=all
|
|
2021-06-03 02:23:28 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
pydrive2 client_secrets.jsonを読み込んでくれない |
https://teratail.com/questions/341844?rss=all
|
pydriveclientsecretsjsonを読み込んでくれない前提・実現したいことpythonにてgoogleAPIを使い、データの引き出しを行いたい発生している問題・エラーメッセージOAuth認証に必要なclientsecretsjsonがないというエラーが出ます。 |
2021-06-03 02:04:45 |
海外TECH |
Ars Technica |
Months later, Dream admits suspect Minecraft speedruns used illegal mods |
https://arstechnica.com/?p=1769140
|
controversial |
2021-06-02 17:42:32 |
海外TECH |
DEV Community |
Panini Bot |
https://dev.to/abbeyperini/panini-bot-1l6i
|
Panini BotCover image alt text Replacing the word pandemic with incorrect variations is of how I ve been coping with this panasonic Vax EenAs soon as I saw Emi s tweet about the open source Pandera package I knew it had to be a Discord bot so here s how I built a bot that will insert a new word starting with p for every instance of pandemic in a Discord message I d already used replit and UptimeRobot to make a Python Discord bot that sends my friends pictures of dogs so I fired up a Node js repl and named it Panini You can view the live code here Making a Discord bot with Replit UptimeRobot Node js Express and ErisFor UptimeRobot to keep my bot alive the first thing I need in my Node js repl is an Express server After running npm install express in the console I added the following code to index js server importsconst express require express const app express const port create main routeapp get req res gt res send Hello World instantiate serverapp listen port gt console log App is listening at http localhost port When I hit run I should see a browser window pop up above the console with Hello World and App is listening at http localhost in the console I ll need the URL at the top of the window to connect UptimeRobot and keep Panini Bot alive After logging into my UptimeRobot account and clicking Add New Monitor in my dashboard I set it to HTTP s Monitor Type give it a Friendly Name enter the URL from my repl browser window and set the Monitoring Interval to every minutes It will then ping my Panini Bot server regularly You can even have your robot email you every time it pings your server and the server is down Next I created a bot in Discord installed the Eris package and brought my Panini Bot online To create a bot I logged into Discord and navigated to I clicked new application and gave my bot application a name I saved the application ID for later this is the bot token Afterwards I still had to click on Bot in the navigation bar on the left After adding a bot I know I m done when I see a Bot screen with A wild bot has appeared My bot is live and ready to be used If you want to be sure no one else adds your bot to a server toggle off Public Bot A repl has a secrets tab that works just like a dotenv file or secrets manager All you have to do is click on the lock in the navigation bar on the left and you should see this screen I added my Discord application id to the value field The key is the variable name you want to use I used bot id so I access my bot token in the code below with process env bot id Repl will even insert the code you need to access your secret into your file for you Next I ran npm install eris and added the initial bot code const eris require eris const bot new eris CommandClient process env bot id description Returns your message with the word pandemic replaced by a random word starting with the letter p owner Abbey Perini prefix what the bot does when it s readybot on ready gt console log Connected and ready error handling bot on error err gt console error err instantiate botbot connect Now when I hit run I see Connected and ready in the console This will also connect my code to my new Discord bot prefix all commands with an exclamation point and the help command will return a message including the description and owner properties defined above Full disclosure I originally wrote this bot with eris Client and chained async functions for the Panini command After my first round of user testing aka asking my friends to break it I leaned into the tools provided by Eris and there are a few cool benefits to using eris CommandClient over new eris Client The description and fullDescription define descriptive text for the help command to send to users You only have to return whatever you want sent as a message in response to the command being used The built in arguments are also pretty neat Not only do you get a msg object with useful properties like username and id but also the args argument an array of the entire message after the command split by space Next I registered my first command and tested that the bot was online const paniniSummon bot registerCommand Panini msg args gt return Reporting for duty description Summon Panini Bot fullDescription If you want Panini Bot to replace the word pandemic for you start your message with this command I created an invite link and invited Panini Bot to my bot test server I suggest making a server or channel for bot testing especially in the beginning After adding my bot I sent a message with Panini and it responded back with a message saying Reporting for duty Making Panini BotI want Panini Bot to see a message with the Panini command delete that message and then send a new message The new message should mention the user followed by their original message but a brand new word starting with p will replace every instance of pandemic or Pandemic When I originally wrote my createMessage function it replaced all instances of pandemic with the same random p word For the purposes of this blog we ll skip ahead to Panini Bot After user testing I realized I needed to alias commands so users could also use panini Furthermore I quickly found I d need Panini Bot to send an error message if there was no message body after the command or it didn t include at least one instance of pandemic After struggling a little bit to get the bot up and running in my own established server I wanted to add a permissions error message Most importantly my friends immediately turned it into a Mad Libs bot so I knew I had to rewrite createMessage so that each instance of pandemic would be replaced by a different p word First the new command aliases Alias halp to helpbot registerCommandAlias halp help Alias panini to Paninibot registerCommandAlias panini Panini Then I installed Pandera npm install pandera and added my import statement const pandera require pandera When I call pandera it will return random p word Next I wrote an array so the bot could check if pandemic was in the message body const pandemicsArray pandemic Pandemic pandemic Pandemic pandemic Pandemic pandemic Pandemic pandemic Pandemic pandemic Pandemic pandemic Pandemic pandemic Pandemic pandemic Pandemic Now let s rewrite the paniniSummon command const paniniSummon bot registerCommand Panini msg args gt console log msg id msg content msg author username msg channel id let includesPan false for i i lt args length i if pandemicsArray includes args i includesPan true if args length return No message to edit Use the command help for more information else if includesPan return No instance of pandemic to replace Use the command help for more information deleteOldMessage msg return formatNewMessage msg args description Summon Panini Bot fullDescription If you want Panini Bot to replace the word pandemic for you start your message with this command After a couple rounds of user testing I started console log ing information about the message before anything is replaced and the message body after it was formatted includesPan is my check for the word pandemic Because args is an array of words it s easy to iterate through and check each one against my pandemicsArray The if block checks first if there is any message after the command then if my check turned includesPan true If either is not true an error message with more information for the user is returned Next I call deleteOldMessage and pass the entire msg object Then I call formatNewMessage and pass the msg object and the args array Whatever I get back from formatNewMessage will be returned as a new Discord message deleteOldMessage stayed pretty much the same from Panini Bot to Panini Bot async function deleteOldMessage msg const channel msg channel id await bot deleteMessage channel msg id replace the word Pandemic catch error gt error message if error message Missing Permissions sendPermissionsError channel When calling deleteOldMessage inside the command instead of chained in then I needed the channel id from the msg object and I added the sendPermissionsError function which looks like this async function sendPermissionsError channel await bot createMessage channel Panini Bot needs the Manage Messages permission to delete replaced messages The Panini Bot will need the Manage Messages permission so it can delete the old message before it is replaced Any server Panini Bot is in will either have to let users manage other users messages at a channel level or make Panini an admin I also added the permission to my discord bot invite link using this calculator Finally it s time to format Panini Bot s new message to send back aka Pandemic Mad Libs function formatNewMessage msg args const author msg author id let numOfP for i i lt args length i if pandemicsArray includes args i numOfP let pArray for i i lt numOfP i let newP pandera pArray push newP let pIndex for i i lt args length i if pandemicsArray includes args i let index args indexOf args i let oldArg args i let newArg oldArg replace pandemic gi pArray pIndex args index newArg pIndex let messageBody args join let fullMessage lt author gt says messageBody console log fullMessage return fullMessage First I want to mention the user so I pull the user s id from the msg object Discord mention syntax is lt userID gt so the template literal I ll return at the end of the function starts with lt author gt Then I made a for loop to get the number of instances of pandemic in the message body using includes and our old buddy the pandemicsArray Next I wrote a for loop to populate an array of the same amount of new p words Finally I wrote a for loop to replace each of the instances of pandemic with a unique p word The regular expression pandemic gi will replace every instance of pandemic with a word from the pArray based on the pIndex counter and is case insensitive This means that it will leave the user s punctuation even if args i is something like pandemic or pandemic At this point it worked but I was looking at three for loops and knew there had to be other ways I reached out to two developers who are always willing to walk me through coding concepts Kirk and Alex Kirk functional programmer extraordinaire reminded me that maps exist for a reason and framed it as a transformation of the array Here s his solution function formatNewMessage msg args const author msg author id const pandemicReplacer word gt if pandemicsArray includes word return word replace pandemic gi pandera return word const messageBody args map pandemicReplacer join let fullMessage lt author gt says messageBody return fullMessage Alex Senior DevOps Engineer and Cloud Infrastructure wizard chose to work with the whole message as a string instead of the args array of words function formatMessageExAid msg args const author msg author id let messageBody args join let newMsg lt author gt says messageBody while newMsg includes pandemic newMsg newMsg replace pandemic i pandera return newMsg ConclusionI enjoy working in a repl not only because I can check the bot from my phone but also because I can invite other developers to collaborate There are a few features I vacillate on adding to Panini Bot I chose not to worry about capitalization but I could add the option to turn off the permissions error message and or deleteOldMessage If you have thoughts about this or any other part of Panini Bot share in the comments below Panini Bot was so fun to build Super special thanks to Emi and Yechiel for building Pandera in the first place As always thanks to Kirk and Alex for being encouraging and educational at the same time Add Panini Bot to your Discord server today |
2021-06-02 17:37:43 |
海外TECH |
DEV Community |
Deploy HarperDB Anywhere w/ Anthos & Kubernetes! |
https://dev.to/harperdb/deploy-harperdb-anywhere-w-anthos-kubernetes-2fh6
|
Deploy HarperDB Anywhere w Anthos amp Kubernetes Don t miss this event led by Brett Mitchell Principal Architect at GoogleWe are excited to host Brett Mitchell who is a Principal Architect Cloud Customer Engineer at Google for this interactive livestream on June th Brett will discuss DevOps best practices and demonstrate how to deploy HarperDB on the Google Kubernetes Engine GKE and Google Anthos platform The demo will include creation of regional clusters around the globe deployment of HarperDB as an Anthos managed Ks workload and mapping service egress to Google s Global load balancer June th PM MT event will be recorded in case you can t attend live RSVP Here All are welcome free virtual event The livestream will be followed by Q amp A with Brett and the HarperDB team so bring your questions Meet BrettBrett Mitchell is a Principal Architect at Google primarily focused on helping customers in the telecommunication cable media and entertainment industries adopt and flourish within the Google Cloud ecosystem Before joining Google he spent years in the technology consulting space with industry leaders KPMG and Slalom He spent the majority of his career as a CTO founding and cultivating start ups in the telco broadband logistics media and fin tech sectors More InfoKubernetes is an open source container orchestration system for automating computer application deployment scaling and management It was originally designed by Google and is now maintained by the Cloud Native Computing Foundation Anthos is a managed application platform that extends Google Cloud services and engineering practices to your environments so you can modernize apps faster and establish operational consistency across them HarperDB is a geo distributed database that enables speed performance and low latency With SQL on JSON you no longer have to pick a database based on the structure of your data HarperDB runs anywhere and ingests any type of data at scale Accessed via an intuitive REST API you can perform all CRUD database operations using one single endpoint Let s get coding |
2021-06-02 17:23:40 |
海外TECH |
DEV Community |
Rails Design Patterns: Form Object |
https://dev.to/drbragg/rails-design-patterns-form-object-4d47
|
Rails Design Patterns Form Object Form Object PatternThere are a number of design patterns that will help improve your Rails app One such pattern is the Form Object At its core a Form Object is just a Plain Old Ruby Object PORO but we can design the object in such a way that it will help us to maintain a consistent API in our code Let s dive in and see how we can leverage a Form Object to improve our Rails App The messaging featureLet s say our boss asks us to add a messaging feature to our application They tell us the message shouldn t be a database table so no model It just needs to be a form where a user can select another user add a subject and body and then send out an email Sounds easy enough let s get that added for simplicity let s say our app already has a User model with first name last name and email attributes and a DummyMailer with a message method that takes to subject and body as keyword arguments First let s add the messages controller app controllers messages controller rbclass MessagesController lt ApplicationController def show end def create DummyMailer message message params deliver later redirect to messages path notice Your message was sent end private def message params params permit to subject body endendThen we can add our view form app views messages show html erb lt h gt New Message lt h gt lt h gt lt notice gt lt h gt lt form with url messages path do form gt lt div class field gt lt form label to gt lt form select to User all pluck email include blank Select a recipient gt lt div gt lt div class field gt lt form label subject gt lt form text field subject gt lt div gt lt div class field gt lt form label body gt lt form text area body gt lt div gt lt div class actions gt lt form submit Create Message gt lt div gt lt end gt After we add resource messages only i show create to our routes file we can start up our server and checkout our new form forgive the lack of styling If we select a user add a subject and a bodyWe ll see things work out pretty well Close but no cigar That is until we show it to our boss First thing she does is to try submitting the form with no details and frowns when she sees Your message was sent on the screen She asks us to show an error message if any of the information is missing Ok slightly more complicated but still doable Let s update our controller Something like class MessagesController lt ApplicationController def show end def create if message params to present amp amp message params subject present amp amp message params body present DummyMailer message message params deliver later redirect to messages path notice Your message was sent else flash now notice Please include all fields render show end end private def message params params permit to subject body endend More problems This works but our boss spots another problem almost immediately If we include some of the fields those fields are cleared out when we re render the form Our boss also wants us to limit the length of the subject highlight the fields with errors and list the issues when submitting an invalid form Yikes This is a lot more logic than we should have in a controller but without a model where should we put it Well in a model of sorts See a model doesn t have to inherit from ActiveRecord or be backed by the database We can add a PORO include ActiveModel Model and be off to the races Form Object to the rescue app models message rbclass Message include ActiveModel Model attr accessor to subject body validates to subject body presence true validates subject length maximum endYou ll notice I put this in the models directory This is personal preference It could have just as easily have been placed in a forms directory in app or even models There s absolutely nothing wrong with having models which this arguably is in your models directory They don t all have to be database backed Armed with our new form object let s update our form lt h gt New Message lt h gt lt h gt lt notice gt lt h gt lt form with model message url messages path do form gt lt div class field gt lt form label to gt lt form select to User all pluck email include blank Select a recipient gt lt div gt lt div class field gt lt form label subject gt lt form text field subject gt lt div gt lt div class field gt lt form label body gt lt form text area body gt lt div gt lt div class actions gt lt form submit gt lt div gt lt end gt Notice that we added model message to our form with call This is what will help give us all the form behavior that we ve come to expect with Rails It also allows us to remove the specific Create Message label from the submit action since passing in a model will populate this for us To make this actually work though we ll need to make some updates to our controller class MessagesController lt ApplicationController def show message Message new end def create message Message new message params if message valid DummyMailer message message params deliver later redirect to messages path notice Your message was sent else flash now notice message errors full messages join render show end end private def message params params require message permit to subject body endendNice This is looking a lot more like a controller we d expect to see in a Rails app We re leveraging Strong Params correctly and letting our model take care of all the validation logic With no other changes our form is now working as our boss requested Bonus round Making a really expected controller Theres one small part of our controller that may stick out The call of valid vs save is different than what we d expect to see in a normal Rails controller I m also not a fan of having the mailer call in the controller but that may just be me class MessagesController lt ApplicationController def show message Message new end def create message Message new message params if message save redirect to messages path notice Your message was sent else flash now notice message errors full messages join render show end end private def message params params require message permit to subject body endendIf we try this now you ll get a NoMethodError error because though ActiveModel Model give us a lot of model logic it does not give us a save message No worries though the simple act of adding a save method to our model will fix that with the added bonus of giving us a good place for our mailer call if you re into that kinda stuff class Message include ActiveModel Model attr accessor to subject body validates to subject body presence true validates subject length maximum def save return false unless valid DummyMailer message to to subject subject body body deliver later endendIf we try it again now every thing will work Though this was a fairly simple example I hope it illustrated the awesomeness of a Form Object Allowing our controllers to look function and behave in an expected way is a huge win and paramount to keeping our application stable and easily upgrade expandable We also now have a much more familiar form design Validation is performed using battle tested and well known methods not by recreating that logic Any additional changes to our Message feature is now incredibly easy and will feel no different than adding features to a model backed by the database |
2021-06-02 17:04:47 |
Apple |
AppleInsider - Frontpage News |
Apple seeds second developer beta of macOS 11.5 |
https://appleinsider.com/articles/21/06/02/apple-seeds-second-developer-beta-of-macos-115?utm_medium=rss
|
Apple seeds second developer beta of macOS Apple has provided developers with the second build of macOS for testing as part of the current beta cycle The latest betas and configuration profiles can be downloaded from the Apple Developer Center with subsequent changes available as over the air updates on enrolled devices Public beta releases usually arrive a short time later via the Apple Beta Software Program website The first beta for macOS surfaced on May alongside the first betas of iOS iPadOS tvOS and watchOS That release occurred while macOS was available as a release candidate ahead of its public release Read more |
2021-06-02 17:11:22 |
Apple |
AppleInsider - Frontpage News |
Apple issues second developer betas of iOS 14.7, iPadOS 14.7, tvOS 14.7, watchOS 7.6 |
https://appleinsider.com/articles/21/06/02/apple-issues-second-developer-betas-of-ios-147-ipados-147-tvos-147-watchos-76?utm_medium=rss
|
Apple issues second developer betas of iOS iPadOS tvOS watchOS Apple has moved on to its second round of betas for the current generation of operating systems with developers able to try out new builds of iOS iPadOS tvOS and watchOS The newest builds can be downloaded via the Apple Developer Center for those enrolled in the test program or via an over the air update on devices running the beta software Public betas typically arrive within a few days of the developer versions via the Apple Beta Software Program website Apple issued the surprise first generation betas of iOS iPadOS tvOS watchOS and macOS on May ahead of the public release of iOS iPadOS tvOS watchOS and macOS Big Sur Read more |
2021-06-02 17:26:56 |
Apple |
AppleInsider - Frontpage News |
European consumer lobbying group backs EU's Apple Music antitrust case |
https://appleinsider.com/articles/21/06/02/european-consumer-lobbying-group-backs-eus-apple-music-antitrust-case?utm_medium=rss
|
European consumer lobbying group backs EU x s Apple Music antitrust caseThe European Commission is to allow a consumer group to contribute to its continuing antitrust investigation into Apple Music The European Commission has given Apple three months to respond to its finding that the company is in breach of EU competition law with Apple Music In the meantime the commission has now formally recognized the Bureau Europeen des Unions de Consommateurs BEUC a consumer lobbying group as an interested party Read more |
2021-06-02 17:04:49 |
海外TECH |
Engadget |
Netflix's next interactive show is a mindfulness experience from Headspace |
https://www.engadget.com/netflix-headspace-unwind-your-mind-june-15-170552142.html?src=rss_b2c
|
experience |
2021-06-02 17:05:52 |
Cisco |
Cisco Blog |
Cisco App Hosting Opens Limitless Possibilities for Enterprise Customers |
https://blogs.cisco.com/networking/cisco-app-hosting-opens-limitless-possibilities-for-enterprise-customers
|
Cisco App Hosting Opens Limitless Possibilities for Enterprise CustomersContainerized applications and edge computing have advanced app hosting The Cisco IOS XE team created a platform for the development deployment and management of apps on Cisco enterprise and IoT devices |
2021-06-02 17:34:20 |
Cisco |
Cisco Blog |
Help change the world from the comfort of your own home |
https://blogs.cisco.com/csr/help-change-the-world-from-the-comfort-of-your-own-home
|
Help change the world from the comfort of your own homeCisco s Molly Murphy shares her experience as a Cisco Global Solver Challenge judge Vote for the People s Choice Award and help change the world |
2021-06-02 17:08:44 |
ニュース |
BBC News - Home |
School catch-up tsar resigns over lack of funding |
https://www.bbc.co.uk/news/education-57335558
|
package |
2021-06-02 17:48:28 |
ニュース |
BBC News - Home |
Covid-19: Lack of queue jumping helped vaccine drive, says Matt Hancock |
https://www.bbc.co.uk/news/uk-57336316
|
public |
2021-06-02 17:24:28 |
ニュース |
BBC News - Home |
Covid: 75% of UK adults vaccinated, and a school catch-up funding row |
https://www.bbc.co.uk/news/uk-57331225
|
coronavirus |
2021-06-02 17:27:00 |
ニュース |
BBC News - Home |
England v New Zealand: Devon Conway debut century blunts hosts |
https://www.bbc.co.uk/sport/cricket/57335535
|
England v New Zealand Devon Conway debut century blunts hostsDevon Conway s superb unbeaten on Test debut helps New Zealand to against England on the opening day of the first Test at Lord s |
2021-06-02 17:35:57 |
ビジネス |
ダイヤモンド・オンライン - 新着記事 |
【不動産投資こそFIREへの近道】 年収460万円の女性会社員が 5年で資産7億5000万円を築いた理由 - 元証券ウーマンが不動産投資で7億円 |
https://diamond.jp/articles/-/271516
|
|
2021-06-03 02:55:00 |
ビジネス |
ダイヤモンド・オンライン - 新着記事 |
経済的自立はお金持ちになることではない - お金か人生か |
https://diamond.jp/articles/-/272500
|
大金持ち |
2021-06-03 02:50:00 |
ビジネス |
ダイヤモンド・オンライン - 新着記事 |
電通に24年勤めたコピーライターが教える就活の「非常識な正攻法」 - 読みたいことを、書けばいい。 |
https://diamond.jp/articles/-/272656
|
非常識 |
2021-06-03 02:45:00 |
ビジネス |
ダイヤモンド・オンライン - 新着記事 |
新任リーダーに求められる、 「人事情報」との向き合い方 - 「よそ者リーダー」の教科書 |
https://diamond.jp/articles/-/272046
|
著者 |
2021-06-03 02:40:00 |
ビジネス |
ダイヤモンド・オンライン - 新着記事 |
エクセルが劇的に速くなる「急がば回れ」テクニックとは? - 神速Excel |
https://diamond.jp/articles/-/272947
|
excel |
2021-06-03 02:35:00 |
コメント
コメントを投稿