投稿時間:2022-01-14 04:26:56 RSSフィード2022-01-14 04:00 分まとめ(37件)

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
js JavaScriptタグが付けられた新着投稿 - Qiita 【JavaScript】現在時刻を取得する https://qiita.com/kotachiwiz/items/53f5360057d394c905f8 constdatenewDate現在時刻を取得constydategetFullYear西暦年mdategetMonth月ddategetDate日HdategetHours時MdategetMinutes分SdategetSeconds秒consolelogymdHMS例他にもミリ秒を取得するなどもある。 2022-01-14 03:18:23
golang Goタグが付けられた新着投稿 - Qiita Go製 markdown driven な code generator 作った https://qiita.com/igtm/items/6df612983306a74f7cda Go製markdowndrivenなcodegenerator作ったmarkdownで生成テンプレを記述すると、Github上などで見れるので、どのようなコードが生成されるのかが直感的にわかりやすくなりますGo製のライブラリは探しても見つからなかったのでさくっと作ってみました。 2022-01-14 03:08:25
海外TECH Ars Technica One of Nintendo Switch’s best puzzle games is now (mostly) free for 7 days https://arstechnica.com/?p=1825580 subscription 2022-01-13 18:00:40
海外TECH MakeUseOf The Top 10 Most Profitable Skills to Learn in 2022 https://www.makeuseof.com/top-profitable-skills-to-learn/ profitable 2022-01-13 18:31:42
海外TECH MakeUseOf How to Batch-Uninstall Software From Windows 10 With IObit Uninstaller https://www.makeuseof.com/windows-10-iobit-uninstaller-batch-uninstall/ uninstaller 2022-01-13 18:15:11
海外TECH MakeUseOf Could Apple Really Launch The Autonomous "Apple Car" By 2025? https://www.makeuseof.com/will-apple-launch-autonomous-apple-car/ apple 2022-01-13 18:01:43
海外TECH DEV Community Using Materialize and Redpanda to Analyze Raspberry Pi Temperature Data https://dev.to/bobbyiliev/using-materialize-and-redpanda-to-analyze-raspberry-pi-temperature-data-2lpe Using Materialize and Redpanda to Analyze Raspberry Pi Temperature Data IntroductionThis is a self contained demo using Materialize to process data IoT devices data directly from a PostgreSQL server The demo builds up on the How to build AdonisJS API to store your Raspberry Pi Temperature tutorial The data is generated by a Raspberry Pi temperature mock service simulating devices reporting to an AdonisJS API mock service Finally we will create a sink to let us stream the data out of Materialize to a Redpanda topic PrerequisitesBefore you get started you need to make sure that you have Docker and Docker Compose installed You can follow the steps here on how to install Docker Install DockerInstall Docker Compose OverviewIn this demo we ll look at monitoring the temperature of a set of Raspberry Pi devices and extracting some insights from them and streaming the data out to an external source Raspberry Pi MockThe main source of data is a Raspberry Pi Mock service that simulates devices reporting their CPU temperature to a mock API service built with AdonisJS The mock service generates about new requests to the mock API service every second For more information on how the mock services works along with the AdonisJS API you can follow the How to build AdonisJS API to store your Raspberry Pi Temperature tutorial API Mock service and PostgreSQLThe API mock service receives the data from the simulated Raspberry Pi and stores the data from each request in a PostgreSQL instance The data that is being received with each request is The name of the Raspberry Pi device The timestamp when the temperature was measured The temperature of the device in celsius The Mock API will save all data in a table called sensors The columns of the sensors table are nametimestamptemperature MaterializeMaterialize presents an interface to ingest the temperature data from the PostgreSQL database In this demo we are going to use Materialize to Create a PostgreSQL sourceMaterialize the PostgreSQL data which will be retained all in memory Provide a SQL interface to query the temperature data We will connect to Materialize through mzcli which is our forked version of pgcli Explore the Materialize data via Metabase Running the demoClone the repository git clone Access the directory cd mz raspberry pi temperatureBuild the Raspberry Pi Mock images docker compose buildStart all of the services docker compose up d Access Materializedocker compose run mzcli Create Materialize Source To create a PostgreSQL Materialize Source execute the following statement CREATE MATERIALIZED SOURCE mz source FROM POSTGRESCONNECTION user postgres port host postgres dbname postgres password postgres PUBLICATION mz source A quick rundown of the above statement MATERIALIZED Materializes the PostgreSQL source s data All of the data is retained in memory and makes sources directly selectable mz source The name for the PostgreSQL source CONNECTION The PostgreSQL connection parameters PUBLICATION The PostgreSQL publication containing the tables to be streamed to Materialize Create a view Once we ve created the PostgreSQL source in order to be able to query the PostgreSQL tables we would need to create views that represent the upstream publication s original tables In our case we only have one table called sensors so the statement that we would need to execute is CREATE VIEWS FROM SOURCE mz source sensors To see the available views execute the following statement SHOW FULL VIEWS Once that is done you can query the new view directly SELECT FROM sensors Next let s go ahead and create a few more views Creating more materialized viewsIf you wish you can enable timing so we could actually see how long it takes for each statement to be executed timingExample Create a materialized view to show the total number of sensors data CREATE MATERIALIZED VIEW mz count AS SELECT count FROM sensors Querying the mz count view SELECT FROM mz count Output count row Time msExample Create a view to show the average temperature of all sensors CREATE MATERIALIZED VIEW mz total avg AS SELECT avg temperature float FROM sensors Query the mz total avg SELECT FROM mz total avg Output avg row Time msExample Create a view to show the average temperature of each separate sensor CREATE MATERIALIZED VIEW average AS SELECT name text avg temperature float AS temp FROM sensors GROUP BY name Let s again query the average view sqlSELECT FROM average LIMIT Output sql name temp raspberry raspberry raspberry raspberry raspberry raspberry raspberry raspberry raspberry raspberry rows Time ms Feel free to experiment by creating more materialized views Creating a SinkSinks let you send data from Materialize to an external source For this demo we will be using Redpanda Redpanda is a Kafka API compatible and Materialize can process data from it just as it would process data from a Kafka source Let s create a materialized view that will hold all of the devices with an average temperature of more than celsius sqlCREATE MATERIALIZED VIEW mz high temperature AS SELECT FROM average WHERE temp gt If you were to do a SELECT on this new materialized view it would return only the devices with an average temperature of above celsius sqlSELECT FROM mz high temperature Let s create a Sink where we will send the data of the above materialized view sqlCREATE SINK high temperature sink FROM mz high temperature INTO KAFKA BROKER redpanda TOPIC high temperature sink FORMAT AVRO USING CONFLUENT SCHEMA REGISTRY http redpanda Now if you were to connect to the Redpanda container and use the rpk topic consume command you will be able to read the records from the topic However as of the time being we won t be able to preview the results with rpk because it s AVRO formatted Redpanda would most likely implement this in the future but for the moment we can actually stream the topic back into Materialize to confirm the format First get the name of the topic that has been automatically generated sqlSELECT topic FROM mz kafka sinks Output sql topichigh temperature sink u For more information on how the topic names are generated check out the documentation here Then create a new Materialized Source from this Redpanda topic sqlCREATE MATERIALIZED SOURCE high temp testFROM KAFKA BROKER redpanda TOPIC high temperature sink u FORMAT AVRO USING CONFLUENT SCHEMA REGISTRY http redpanda Make sure to change the topic name accordingly Finally query this new materialized view sqlSELECT FROM high temp test LIMIT Now that you have the data in the topic you can have other services connect to it and consume it and then trigger emails or alerts for example MetabaseIn order to access the Metabase instance visit http localhost if you are running the demo locally or http your server ip if you are running the demo on a server Then follow the steps to complete the Metabase setup To connect to your Materialize database specify the following connection properties Field Value Database PostgreSQLName user reviewsHost materializedPort Database name materializeDatabase username materializeDatabase password Leave emptyOnce ready you will be able to visualize your data just as you would with a standard PostgreSQL database ConclusionThis is a simple example of how to use the direct PostgreSQL connection with Materialize and stream data into a Kafka Redpanda topic In most cases you would not store your IoT devices data in a PostgreSQL database but in an S bucket or a Kafka topic So the setup could be similar to the following S Bucket example Redpanda Kafka example Stopping the DemoTo stop all of the services run the following command docker compose down Helpful resources CREATE SOURCE PostgreSQLCREATE SOURCECREATE VIEWSSELECT 2022-01-13 18:55:15
海外TECH DEV Community Scroll spinner with cursor tracking eye https://dev.to/bart_krakowski/scroll-spinner-with-cursor-tracking-eye-206l Scroll spinner with cursor tracking eye TL DRIf you don t want to walk through the whole process step by step you can simply view the final version here CodeSandboxI d like to share with you a simple scroll based animation built with Framer along with React TS and Emotion Step CodeSandboxLet s start with the bootstrapping project I chose to use the default stack which contains React Typescript Framer and Emotion You can use create react app or just fork the sandbox If you re not familiar with Typescript don t worry I ll mark up the places I m using it and add a solution for it using plain JSFirst we need to prepare an app where we have our main file called App tsx or App jsx and our component file called Spinner tsx Spinner jsx In the spinner s file we need to create a basic wrapper and paste SVG content into it feel free to copy it from my sandbox You ll probably see an eyelid covering the eye Don t worry we ll animate it in step Step CodeSandboxThe first functionality is to animate the rotation of the text around the eye as the scrolling progresses To do this we ll use the built in useViewportScroll hook from Framer which will give us values from to with being the top of the page and being the end of the page As you can expect we need to multiply this value by because we want to achieve the full turn We re using the useTransform hook from Framer However we want to make our animation a bit more fluid We will use the useSpring hook for this We can manipulate this event with stiffness and damping params Feel free to experiment with these options More info about how it s working here usespringThe only thing left for us to do is to use this value in the element we want to animate Remember that every element that we want to animate needs to be a motion element lt motion path gt As an additional visual effect let s apply a degree rotation to the entire wrapper Step CodeSandboxAs I mentioned before let s make the eye blink Let s find the eyelid and add the style prop to it determining the initial behaviour of it We d like to have a little bit of movement to it We re saying that we want to scale it from to on the Y axis in seconds after loading our page and every seconds after the first iteration Step CodeSandboxThe last and most challenging functionality is cursor tracking eye Let s start by plugging a reference to the SVG group of the eyeball andNow we can take care of storing the value of the position of the cursor Let s use a build in useMotionValue hook from Framer It will give us confidence in storing up to date values without redundant re renders Then we need to establish the range of moves of the iris on the Y and X axes In this hook we need to define the size of the eye element and the range We want the iris to move from px to px at the center of the X axis and from px to px on the Y axis The next thing to do is combine and update this data with a mouse move event The next step is to assign these values to SVG elements that represent them SummaryAnd finally there we have it You can see the final results here CodeSandboxFeel free to experiment and have fun improving these effects and making new ones 2022-01-13 18:50:08
海外TECH DEV Community Uselful array methods for dealing with api data. https://dev.to/vanaf1979/uselful-array-methods-for-dealing-with-api-data-1f4e Uselful array methods for dealing with api data Follow me on Youtube Using JavaScript array methods with Api dataIn this video article I want to share with you how I use some of the JavaScript Array methods to deal with Api data There are many many more things you can do with these methods but these are just some examples from my own use cases There are also a lot more Array methods for you to explore in the MDN documentation Array prototype find The find array method can be used to find a single entry in an Api response based on a certain criteria MDN Docs const friends id name joey quote How you doin id name ross quote We were on a break id name phoebe quote She s your lobster const findFriendById id gt return friends find friend gt friend id id console log findFriendById Object id name joey quote How you doin Live example in CodeSandBoxIn this example we have a fake Api response array with characters from my all time favourite Sit Com Friends To find a single character by it s id we create a new function called findFriendById that excepts the Id integer of the character we are looking for Inside this new function we call the find method on our friends array again passing it a callback function that excepts a single friend at a time This callback function has to return a true value when we hit the friend we are looking for So we simply compare the current friend s id with the id passed in to the findFriendById function In the example we call the findFriendById with as the id giving us the object for Joey Array prototype filter The Filter method allows us to easily find Api entries from the response data based on a certain criteria like shown below MDN Docs const trekkies id name Piccard planet Earth id name Spock planet Vulcan id name Kirk planet Earth id name Worf planet Gault const findTrekkiesByPlanet planet gt return trekkies filter trekkie gt trekkie planet planet console log findTrekkiesByPlanet Earth Object id name Piccard planet Earth Object id name Kirk planet Earth Live example in CodeSandBoxIn this example we have a basic Api response array with StarTrek characters To find all the character from a certain planet we create a new function called findTrekkiesByPlanet that excepts a single parameter being the name of the planet we want the entries for Within the findTrekkiesByPlanet function we call the filter method on the trekkies array and we pass it a callback function that excepts a single trakkie as a parameter This callback function has to return a true value if this trekkie meets our criteria or false if it doesn t So we do a check if the current trekkie planet value is equal to the planet value passed into the findTrekkiesByPlanet function As you can see in the example if we pass Earth as the planet we get a new array containing just Piccard and Kirk Array from The from array method s function is to create a new array from some arbitrary data Here we are going to use it to conform Api response data to something we can pass to a React component MDN Docs const apiCategories id title javascript description other id title React description other const transformApiCategories gt return Array from apiCategories category gt return label category title value category id console log transformApiCategories Object label javascript value Object label React value Example use in a react select component return lt SelectControl options transformApiCategories gt Live example in CodeSandBoxIn this last example we have some random Api data containing programming languages along with some information about them We want to use this data inside a select element component that expects an array of objects containing a label and a value Here is an example of such a component from the Gutenberg project For this we create a function called transformApiCategories Inside this new function we use Array find and we pass it our apiCategories array and a callback function that excepts a single category on each iteration Our callback function returns a new object from each category containing only the data we need in the correct format making the from method return an array of objects that we can safely pass to our select component ConclusionAs you can see these array methods can be very powerful and I would encourage you to check out their documentation Inside each example there is a comment with a link to that specific method s doc page And you can check out all the array methods in the MDN documentation Follow Follow me on Youtube Twitter or here on Dev to Vanaf so i can notify you about new videos articles Thanks for reading stay safe and stay the right kind of positive 2022-01-13 18:46:53
海外TECH DEV Community How to Edit a Github Action https://dev.to/github/how-to-edit-a-github-action-3j14 How to Edit a Github Action Why edit a GitHub Action There are many reasons to edit a GitHub Action Perhaps you found an Action suited to your use case It s almost perfect but there s just one minor feature missing Maybe you noticed a bug or edge case or you have an idea to take the Action to the next level One solution is to recreate the Action make it your own and add all the improvements you desire The second and my preferred solution is to make a pull request for the Action you are already using The latter encourages you to treat the Action as an open source project In return the benefits include Expanding your developer network This is a potential opportunity to interact with the creator of the Action Technical Exposure Editing an Action used by multiple developers means you have to think about how your edits will affect other users which may expose you to new technological problems Caution Make sure you get the author s approval to add changes to their Action The easiest way to do this is by opening an issue and starting a discussion with the author and or other contributors You don t want to spend time opening a pull request that the author doesn t want and will eventually reject My reasonNot to sound too nerdy but I feel a rush of excitement and anticipation when I pick up an open source issue I probably feel that way because I m still relatively new to open source and I ve transitioned from writing production code every day to not writing production code at all I picked up an issue earlier this month but I didn t work on it immediately because of the holidays When I returned a week later a contributor reassigned the issue to themselves and opened a pull request While I was impressed by the contributor s eagerness speed and clever solution I felt disappointed for a brief moment Until a friend and frequent contributor mtfoley helped me realize the root cause of the problem the Contributor Take Action had a minor bug The TLDR The Contributor Take Action allows contributors to self assign issues by typing take in a comment However if another contributor comments take after the initial contributor self assigns the issue the Action will assign that issue to the subsequent contributor as well Matthew helped me transform my disappointment into opportunity I could fix the bug in Contributor Take Action I will still get to push code and I could reduce the chance of miscommunicated reassigned issues in open source projects that use this Action How to Test and EditContributing code to a GitHub Action is similar to contributing to any open source project The SetupStep Locate the Action on GitHub s MarketplaceStep Find the repository for the Action The URL for the repository is underneath the Links section Once you click that link it should lead you to the repository Step Fork the repository by pressing the fork button on the top right Step Once the project is forked you should have a copy of the repository Head over to your copy and clone the repository or open it up in Codespaces Step Set up a repository for testing and follow the directions written in the Action s ReadMe In my case I used a repository I made for sandboxing and playing around with actions called deploy with actions Inside of my deploy with actions repository I created a github workflows directory Inside that directory I created a take yml file and I pasted the workflow written in YAML from the take action repository s README into that file github workflows take yml name Assign issue to contributoron issue comment jobs assign name Take an issue runs on ubuntu latest steps name take the issue uses bdougie take action main env GITHUB TOKEN github token with message Thanks for taking this issue Let us know if you have any questions Step Point the workflow to your forked Action You can even point it to a different branch or commit It should look like uses username repo name branch name For instance I changed uses bdougie take action mainto uses blackgirlbytes take action handle if assigned Actually TestingStep First let s check that the Action is working as expected by triggering the Action After I committed and pushed all the files from the set up above in my case I opened up an issue and commented take from a GitHub user account I created for testing To be clear I did this in my repository that is using the Action called deploy with actions not the repository for the Action As expected I received a message that said Thanks for taking this on If you have not already join the conversation in our Discord Step Time to debug Try editing your Action and adding a few log statements You can read the documentation here to learn more about debugging logs Here s an example of some edits I made to blackgirlbytes take action action yml on the handle if assigned branch name contributor takes actiondescription This is an action to assign yourself to an issue for a repo you are not a contributor to author Brian Douglasbranding icon thumbs up color white inputs message description Message to prospective contributor required false default runs using composite steps run BODY jq comment body GITHUB EVENT PATH ISSUE NUMBER jq issue number GITHUB EVENT PATH LOGIN jq comment user login GITHUB EVENT PATH tr d REPO jq repository full name GITHUB EVENT PATH tr d ISSUE JSON jq issue GITHUB EVENT PATH ISSUE CURRENTLY ASSIGNED echo ISSUE JSON jq assignees length if BODY take then if ISSUE CURRENTLY ASSIGNED true then echo ISSUE CURRENTLY ASSIGNED echo Assigning issue ISSUE NUMBER to LOGIN echo Using the link REPO issues ISSUE NUMBER assignees curl H Authorization token GITHUB TOKEN d assignees LOGIN REPO issues ISSUE NUMBER assignees if z INPUT MESSAGE then jq n r arg body INPUT MESSAGE body body gt payload json curl X POST H Authorization token GITHUB TOKEN data payload json REPO issues ISSUE NUMBER comments fi else echo This issue is currently assigned to a different user fi fi shell bash env INPUT MESSAGE inputs message Step Check the results by reading the Actions logs and continue to modify the code until you get your desired results I found my Actions logs by heading to the deploy with actions repository and clicking on the Actions tab Step Once you have a working solution commit and push your changes and create a pull request Make a pull request comparing forks instead of branches You can find my PR here In this PR I made a pull request comparing my branch to the author s branch Although this solution was successfully merged I have more to add My initial implementation doesn t comment or assign the subsequent contributors but now I m working on adding a response or feedback for contributors to understand why they weren t assigned if the issue was already assigned to another contributor You can check out my work in progress pull request here Comment below with your thoughts and any Actions you ve contributed to in the past 2022-01-13 18:36:26
海外TECH DEV Community Complete Login / Signup System - MongoDB Atlas 🚀 https://dev.to/jacksonkasi/complete-login-signup-system-mongodb-atlas-2b8l Complete Login Signup System MongoDB Atlas Overview of My Submission The purpose of this project you can build your own complete login system for your website using MongoDB Atlas Submission Category Choose Your Own Adventure using MongoDB Atlas Features please see the video Technologies Used BootstrapJavaScriptEJSNodeJSMongoDB AtlasMongooseHerokunodemaile Link to Code GitHub jacksonkasi login system login system Complete Login Signup System MongoDB Atlas Overview The purpose of this project you can build your own complete login system for your website using MongoDB Atlas Deployment commands Create a new directory navigate to that directory in a terminal and clone the GitHub repositorygit clone Change directory to the pattern directory cd HospitalManagementSystem From the command line you should Enter npm install node app jsRecoucesDev post View on GitHub Postman Link click here Video 2022-01-13 18:23:59
海外TECH DEV Community Managing Django Media & Static Files on Heroku with Bucketeer https://dev.to/heroku/properly-managing-django-media-static-files-on-heroku-o2l Managing Django Media amp Static Files on Heroku with BucketeerThis article will walk through how we correctly persist static amp media files for a Django application hosted on Heroku As a bonus it will also explain how we can satisfy the additional constraint of specifying private versus public media files based on model definitions Before I begin this post extends from this TestDriven io article that was written awhile back I frequent it often when setting up my projects and have built some extra functionality on top of it over the years I decided to create a more focused post that references Heroku amp Bucketeer with these extra features after helping an individual on StackOverflow answer re How to add image for image field for a model instance in django admin panel on heroku Dec I think it s because I turn off a PC where I took these imagesThis probably is not it because Heroku doesn t have access to the files on your computer When you upload a file to the Django admin it looks at the DEFAULT FILE STORAGE settings configuration to determine how to… Open Full Answer So without further ado let s first dive into what static amp media files are and how Heroku dynos manage their filesystem What are Media amp Static FilesIf you are working with a Django project then you inevitably have all of your Python application code written around a bunch of py files These are the code paths of your application and the end user hopefully never actually sees these files or their contents Outside of these business logic files it is common to serve users directly from your server s file system For these static files Django doesn t need to run any code for them the framework looks up the file and returns the contents for the requesting user to view Some examples of static files include Non templated HTMLCSS amp JavaScript files to make your page look niceUser profile picturesGenerated PDFsMedia files in Django are a particular variant of static files Media files are read from the server s file system as well Unlike static files though they are usually generated files uploaded by users or generated by your application and are associated with a model s FileField or ImageField In the examples above user profile pictures and generated PDFs are typical examples of media files Django with Media amp Static FilesWhen a new media file is uploaded to a Django web application the framework looks at the DEFAULT FILE STORAGE settings configuration to determine how to store that file By default it uses the django core files storage FileSystemStorage class which is what most projects start off as having configured This implementation looks at the MEDIA ROOT configuration that is defined in the settings py file and copies the uploaded file contents to a deterministically created file path under that given MEDIA ROOT For example if the MEDIA ROOT is set as var www media all uploaded files will be copied and written to a location under var www media Heroku with Media amp Static FilesStoring these static files on your server s disk file system is okay until you start to work with a containerization platform such as Heroku To explain why this is the case it helps to take a step back When downloading files on your personal computer it s okay that these get written to the file system usually under Downloads or somewhere similar This download is because you expect your computer s file system to persist across restarts and shutdowns if you download a file and restart your computer that downloaded file should still be there once the laptop is finished restarting Heroku uses containerization to execute customer workloads One fact of this environment is that the associated file systems do not persist across restarts and reschedules Heroku dynos are ephemeral and they can be destroyed restarted and moved without any warning which replaces the associated filesystem This situation means that any uploaded files referenced by FileField s andImageField s are just deleted without a trace every time the dyno is restarted moved or scaled Complete Example CodebaseI will be stepping through the process of configuring the Django application for Heroku amp S compatible storage but feel free to reference the repository below for the complete code to browse through dstarner django heroku static file example Used in my blog post of detailing private amp public static files for a Heroku served Django application Properly Managing Django Media amp Static Files on Heroku ExampleUsed in my blog post of detailing private amp public static files for a Heroku served Django application Note This does include a month Bucketeer add on as a part of the one click deployment View on GitHub Bootstrapping Django on HerokuThis tutorial aims to help you retrofit an existing Django project with S compatible storage but I ll quickly go through the steps I used to set up the example Django application It may help those new to Django amp Heroku or those who encounter bugs following the rest of the setup process You can view the tagged project before the storage change at commit bbe Bootstrapped a Django project exampleUses poetry for dependency managementAll of the Django code is under the example package and the manage py file is in the root I ve always found this structure cleaner than the Django apps defined in the project root Configured the project for Herokudjango heroku package to automatically configure ALLOWED HOSTS DATABASE URL and more This reduces the headache of deploying Django on Heroku considerablyA Procfile that runs a gunicorn process for managing the WSGI applicationAn app json is defined with some fundamental configuration values and resources defined for the project to workA release process definition in the Procfile and an associated scripts release sh script that runs staticfile collection and database migrations Introducing Heroku s Bucketeer Add OnBefore we can start managing static and media files the Django application needs a persistent place to store the files Again we can look to Heroku s extensive list of Add Ons for s compatible storage Ours of choice will be one called Bucketeer Heroku s Bucketeer add on provides an AWS S storage bucket to upload and download files for our application The Django application will use this configured bucket to store files uploaded by the server and download them from the S when a user requests the files If you d like to learn more about AWS S the widely popular data storage solution that Bucketeer is built upon you can read the S user documentation It is worth mentioning that the base plan for Bucketeer Hobbyist is per month If you plan on spinning up the one click example posted above it should only cost a few cents if you proactively destroy the application when you are done using it Including the Bucketeer Add OnTo include the Bucketeer add on in our application we can configure it through the Heroku CLI web dashboard or via the project s app json file We will use the third method of including the add on in an app json file If the project does not have one already we can create the basic structure listed below with the critical part being the addition of the add ons configuration This array defines the bucketeer hobbyist resource that our application will use and Heroku will install the add on into our application if it does not already exist We also include the as keyword which will preface the associated configuration variables with the term BUCKETEER This prefacing is helpful to keep the generated configuration value names deterministic because by default Heroku will generate the prefix as a random color rest above addons other addons plan bucketeer hobbyist as BUCKETEER With the required resources being defined we can start integrating with our storage add on Implementing Our Storage SolutionThe django storages package is a collection of custom reuseable storage backends for Django It aids immensely in saving static and media files to different cloud amp storage provider options One of the supported storage providers is S which our Bucketeer add on is built on We will leverage the S django storages backend to handle different file types Installing django storagesBegin by installing the django storages package and the related boto package used to interface with AWS s S We will also lock our dependencies to ensure poetry and our Heroku deployment continue to work as expected poetry add django storages boto amp amp poetry lockThen just like most Django related packages django storages will need to be added to the project s INSTALLED APPS in the projects settings py file This will allow Django to load the appropriate code flows as the application starts up example config settings pyINSTALLED APPS django X Y apps above storages custom project apps below Implementing Static Public amp Private Storage BackendsWe will return to the settings py file later to configure the usage of django storages but before that can be done we will implement three custom storage backends A storage backend for static files CSS Javascript and publicly accessible images that will be stored in version control aka git and shipped with the applicationA public storage backend for dynamic media files that are not stored in version control such as uploaded files and attachmentsA private storage backend for dynamic media files that are not stored in the version control that require extra access to be viewed such as per user reports and potentially profile images Files managed by this backend require an access key and will block access to those without a valid key We can extend from django storages s SBotoStorage storage backend to create these The following code can be directly copy and paste d into your project The different settings attributes read in the module will be written shortly so do not expect this code to work if you import it right now FILE example utils storage backends pyfrom django conf import settingsfrom storages backends sboto import SBotoStorageclass StaticStorage SBotoStorage Used to manage static files for the web server location settings STATIC LOCATION default acl settings STATIC DEFAULT ACLclass PublicMediaStorage SBotoStorage Used to store amp serve dynamic media files with no access expiration location settings PUBLIC MEDIA LOCATION default acl settings PUBLIC MEDIA DEFAULT ACL file overwrite Falseclass PrivateMediaStorage SBotoStorage Used to store amp serve dynamic media files using access keys and short lived expirations to ensure more privacy control location settings PRIVATE MEDIA LOCATION default acl settings PRIVATE MEDIA DEFAULT ACL file overwrite False custom domain FalseThe attributes listed in each storage backend class perform the following location This dictates the parent directory used in the S bucket for associated files This is concatenated with the generated path provided by a FileField or ImageField s upload to method default acl This dictates the access policy required for reading the files This dictates the storage backend s access control through values of None public read and private django storages and the SBotoStorage parent class with translate these into object policies file overwrite In most cases it s better not to overwrite existing files if we update a specific path With this set to False a unique suffix will be appended to the path to prevent naming collisions custom domain Disabled here but you can enable it if you want to use AWS s CloudFront and django storage to serve from it Configure Settings to Use the Storage BackendsWith our storage backends defined we can configure them to be used in different situations via the settings py file However it is challenging to use S and these different cloud storage backends while in development and I ve always been a proponent of keeping all resources and files local to the development machine so we will create a logic path that will Use the local filesystem to store static and media files for convenience The Django server will be responsible for serving these files directly Use the custom S storage backends when an environment variable is enabled We will use the S ENABLED variable to control this enabling it in our Heroku configuration variables First we will assume that you have a relatively vanilla settings py file concerning the static amp media related variables For reference a new project should have a block that looks similar to the following Static files CSS JavaScript Images STATIC URL static STATIC ROOT BASE DIR collected static We will design a slightly advanced control flow that will seamlessly handle the two cases defined above In addition it will provide enough control to override each part of the configuration as needed Since there are already default values for the static file usage we can add default values for media file usage These will be used when serving files locally from the server while in development mode STATIC URL static STATIC ROOT BASE DIR collected static MEDIA URL media MEDIA ROOT BASE DIR collected media To begin the process of including S let s create the controls to manage if we should serve static amp media files from the local server or through the S storage backend We will create three variablesS ENABLED controls whether media amp static files should use S storage by defaultLOCAL SERVE MEDIA FILES controls whether media files should use S storage Defaults to the negated S ENABLED value LOCAL SERVE STATIC FILES controls whether static files should use S storage Defaults to the negated S ENABLED valuefrom decouple import config import explained below STATIC and MEDIA settings here The following configs determine if files get served from the server or an S storageS ENABLED config S ENABLED cast bool default False LOCAL SERVE MEDIA FILES config LOCAL SERVE MEDIA FILES cast bool default not S ENABLED LOCAL SERVE STATIC FILES config LOCAL SERVE STATIC FILES cast bool default not S ENABLED if not LOCAL SERVE MEDIA FILES or not LOCAL SERVE STATIC FILES and not S ENABLED raise ValueError S ENABLED must be true if either media or static files are not served locally In the example above we are using the python decouple package to make it easier to read and cast environment variables to Python variables I highly recommend this package when working with settings py configurations We also include a value check to ensure consistency across these three variables If all three variables are defined in the environment but conflict with one another the program will throw an error We can now start configuring the different configuration variables required by our file storage backends based on those control variables value s We begin by including some S configurations required whether we are serving static media or both types of files if S ENABLED AWS ACCESS KEY ID config BUCKETEER AWS ACCESS KEY ID AWS SECRET ACCESS KEY config BUCKETEER AWS SECRET ACCESS KEY AWS STORAGE BUCKET NAME config BUCKETEER BUCKET NAME AWS S REGION NAME config BUCKETEER AWS REGION AWS DEFAULT ACL None AWS S SIGNATURE VERSION config S SIGNATURE VERSION default sv AWS S ENDPOINT URL f https AWS STORAGE BUCKET NAME s amazonaws com AWS S OBJECT PARAMETERS CacheControl max age The above defines some of the variables required by the django storages S backend and sets the values to environment configurations that are provided by the Bucketeer add on As previously mentioned all of the add on environment variables are prefixed with BUCKETEER The S SIGNATURE VERSION environment variable is not required and most likely does not need to be included With the S configuration together we can reference the LOCAL SERVE MEDIA FILES and LOCAL SERVE STATIC FILES control variables to override the default static and media file settings if they are desired to be served via S if not LOCAL SERVE STATIC FILES STATIC DEFAULT ACL public read STATIC LOCATION static STATIC URL f AWS S ENDPOINT URL STATIC LOCATION STATICFILES STORAGE example utils storage backends StaticStorage Notice the last line where STATICFILES STORAGE is set to the custom Backend we created That ensures it follows the location amp ACL Access Control List policies that we configured initially With this configuration all static files will be placed under static in the bucket but feel free to update STATIC LOCATION if desired We can configure a very similar situation for media files if not LOCAL SERVE MEDIA FILES PUBLIC MEDIA DEFAULT ACL public read PUBLIC MEDIA LOCATION media public MEDIA URL f AWS S ENDPOINT URL PUBLIC MEDIA LOCATION DEFAULT FILE STORAGE rn api utils storage backends PublicMediaStorage PRIVATE MEDIA DEFAULT ACL private PRIVATE MEDIA LOCATION media private PRIVATE FILE STORAGE rn api utils storage backends PrivateMediaStorage The big difference here is that we have configured two different storage backends for media files one for publicly accessible objects and one for objects that require an access token When the file is requested this token will be generated internally by django storages so you do not have to worry about anonymous public access Local Development ServingSince we will have S ENABLED set to False in our local development environment it will serve static and media files locally through the Django server instead of from S We will need to configure the URL routing to handle this scenario We can configure our urls py file to serve the appropriate files like so from django conf import settingsfrom django conf urls static import staticfrom django contrib import adminfrom django urls import pathurlpatterns path admin admin site urls if settings LOCAL SERVE STATIC FILES urlpatterns static settings STATIC URL document root settings STATIC ROOT if settings LOCAL SERVE MEDIA FILES urlpatterns static settings MEDIA URL document root settings MEDIA ROOT This will locally serve the static or media files based on the values of the LOCAL SERVE STATIC FILES and LOCAL SERVE MEDIA FILES settings variables we defined Enabling S StorageWe can enable these storages and our add on in the app json file to start using these storage backends This will effectively disable LOCAL SERVE STATIC FILES and LOCAL SERVE MEDIA FILES to start serving both via S when deployed to Heroku rest of configs env rest of envs S ENABLED description Enable to upload amp serve static and media files from S value True Using the Private StorageBy default Django will use the PublicMediaStorage class for uploading media files meaning the contents will be publicly accessible to anyone with the link However a model can utilize the PrivateMediaStorage backend when desired which will create short lived access tokens that prevent the public from viewing the associated object The below is an example of using public and private media files on the same model from django db import modelsfrom example utils storage backends import PrivateMediaStorageclass Organization models Model A sample Organization model with public and private file field usage logo models ImageField help text A publicly accessible company logo expense report models FileField help text The private expense report requires a short lived access token storage PrivateMediaStorage will create private files You can see the code for this complete example at commit becc This configuration will allow your project to scale efficiently using Django on Heroku using Bucketeer In a future post we will discuss how to upload and set these files using vanilla Django amp Django REST Framework As always if you find any bugs issues or unclear explanations please reach out to me so I can improve the tutorial amp experience for future readers Take care everyone 2022-01-13 18:22:54
海外TECH DEV Community Storebay: A cross-platform ecommerce application [Android, IOS, Web] https://dev.to/narottam04/storebay-a-cross-platform-ecommerce-application-android-ios-web-3e4g Storebay A cross platform ecommerce application Android IOS Web Overview of My SubmissionStorebay is an E Commerce platform It is built on the MERN stack MongoDB Express React Node js It has features like a custom admin panel to manage users PayPal checkout reviews android and ios app and more Submission Category E Commerce Creation Link to Code Narottam StoreBay Main Tech StackReact For FrontendTailwind CSS For StylingNode Js Express For BackendPayPal For PaymentMongoDB Atlas For Database MongoDB Atlas Search For autocomplete search functionalityCapacitor Js For converting existing web app to android and ios App Preview amp Features HomePage Login PageLogin and Sign up is created using Node Js amp amp MongoDB Profile Page Admin PageUsing a custom admin panel a user can make other users admins manage products add new ones update existing ones and mark a delivery as successful Product overview ReviewsEach signed in user can only add one review per products Cart Checkout Process StepUser must add their shipping address for step StepUser must choose a payment method Currently only paypal payment method is working Step Step is order summary where you can view your product shipping and payment details Step IMP Payment using paypalThat s all folks I hope you enjoy this project 2022-01-13 18:14:13
Apple AppleInsider - Frontpage News Apple releases iOS 15.3 and iPadOS 15.3 public beta 2 https://appleinsider.com/articles/22/01/13/apple-releases-ios-153-and-ipados-153-public-beta-2?utm_medium=rss Apple releases iOS and iPadOS public beta Apple has released the second public beta of iOS and iPadOS to members of its public software testing program iOS public beta now availableThe second public betas should be essentially the same as the second developer betas which Apple seeded on Wednesday The builds can be acquired from the Apple Beta Software Program web portal Read more 2022-01-13 18:45:41
Apple AppleInsider - Frontpage News iOS 15 adoption rate appears to be lagging behind past updates https://appleinsider.com/articles/22/01/13/ios-15-adoption-rate-appears-to-be-lagging-behind-past-updates?utm_medium=rss iOS adoption rate appears to be lagging behind past updatesApple s iOS update is now installed on of iPhone models from the last four years lagging behind the adoption rate of iOS at this point after release iOS on an iPhone ProAccording to update adoption statistics posted to Apple s website of devices introduced since are running iOS while have iOS installed and are on an older version of iOS Read more 2022-01-13 18:28:39
Apple AppleInsider - Frontpage News Best deals Jan. 13: 50% off Netgear Orbi mesh routers, Nintendo Switch OLED is in stock, more! https://appleinsider.com/articles/22/01/13/best-deals-jan-13-50-off-netgear-orbi-mesh-routers-nintendo-switch-oled-is-in-stock-more?utm_medium=rss Best deals Jan off Netgear Orbi mesh routers Nintendo Switch OLED is in stock more In addition to Nintendo Switch OLED being in stock Thursday s best deals include off Philips Hue HomeKit motion sensors up to off electrical gear like ammeters and tone generators and off Panasonic ANC headphones Best deals January To help you get through the continuing January sale chaos we ve collected some of the best deals we could find on Apple products tech accessories and other items for the AppleInsider audience Read more 2022-01-13 18:04:07
Apple AppleInsider - Frontpage News Apple seeds second developer betas of iOS 15.3, iPadOS 15.3, tvOS 15.3, watchOS 8.4 https://appleinsider.com/articles/22/01/12/apple-seeds-second-developer-betas-of-ios-153-ipados-153-tvos-153-watchos-84?utm_medium=rss Apple seeds second developer betas of iOS iPadOS tvOS watchOS Apple is now on its second round of the current developer beta process and has provided fresh builds of iOS iPadOS tvOS and watchOS for testing 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 The first builds for the current generation were seeded by Apple on December Final release versions of iOS iPadOS tvOS and watchOS shipped on December Read more 2022-01-13 18:48:15
Apple AppleInsider - Frontpage News These MacBook Air, M1 iMac models with 16GB RAM are up to $150 off, free expedited shipping https://appleinsider.com/articles/22/01/10/5-macbook-air-m1-imac-models-with-16gb-ram-are-up-to-150-off-in-stock?utm_medium=rss These MacBook Air M iMac models with GB RAM are up to off free expedited shippingFive of Apple s current MacBook Air and iMac inch configurations are discounted exclusively for AppleInsider readers this week with triple digit savings and free expedited shipping on premium models with GB of memory Exclusive Apple dealsB amp H Photo this week is offering AppleInsider readers exclusive savings on five popular MacBook Air and iMac inch configurations ーeach with Apple s M chip and GB of RAM Read more 2022-01-13 18:07:08
海外TECH Engadget 'Baby Shark' is the first YouTube video to reach 10 billion views https://www.engadget.com/baby-shark-10-billion-views-youtube-182604578.html?src=rss x Baby Shark x is the first YouTube video to reach billion viewsNo you still can t escape quot Baby Shark quot Billboardreports Pinkfong s so catchy it hurts children s song has become the first video to reach billion views on YouTube And no one is likely to catch it any time soon ーLuis Fonsi s quot Despacito quot video which quot Baby Shark quot overtook as the most popular video in November has managed just billion views as of this writing The tune s familiar if very repetitive hook is certainly part of its success but it has also been helped by returning to popular culture over and over again On top of celebrity covers from the likes of James Corden and Bebe Rexha quot Baby Shark quot has also enjoyed a tour a viral dance challenge a spot in Just Dance and a Nickelodeon TV show that premiered in Simply put Pinkfong has kept the track in the limelight where even breakout songs like quot Despacito quot have faded away Interest isn t likely to cool off in the immediate future Nickelodeon has not only renewed its quot Baby Shark quot show but promised a feature length movie There s even an NFT collection if you re determined to merge two internet trends It could take a long while before another video pulls ahead even with K pop megastars routinely breaking ground in other areas 2022-01-13 18:26:04
海外科学 NYT > Science Beatrice Mintz, Groundbreaking Cancer Researcher, Dies at 100 https://www.nytimes.com/2022/01/13/science/beatrice-mintz-dead.html therapies 2022-01-13 18:02:26
ニュース BBC News - Home Prince Andrew loses military titles and use of HRH https://www.bbc.co.uk/news/uk-59987935?at_medium=RSS&at_campaign=KARANGA civil 2022-01-13 18:46:32
ニュース BBC News - Home MI5 warning over 'Chinese agent' in Parliament https://www.bbc.co.uk/news/uk-politics-59984380?at_medium=RSS&at_campaign=KARANGA ching 2022-01-13 18:07:40
ニュース BBC News - Home Novak Djokovic: Unanswered questions over Australian Covid saga https://www.bbc.co.uk/news/world-australia-59977198?at_medium=RSS&at_campaign=KARANGA covid 2022-01-13 18:06:44
ニュース BBC News - Home Police to consider investigation if No 10 party probe points to criminal offences https://www.bbc.co.uk/news/uk-politics-59984382?at_medium=RSS&at_campaign=KARANGA offences 2022-01-13 18:27:29
ニュース BBC News - Home Ocado and Next cut sick pay for unvaccinated staff https://www.bbc.co.uk/news/business-59963700?at_medium=RSS&at_campaign=KARANGA haven 2022-01-13 18:46:46
ビジネス ダイヤモンド・オンライン - 新着記事 コロナ対応巡り米軍が裏切り、「日米同盟の危機」の真相 - 永田町ライヴ! https://diamond.jp/articles/-/292992 コロナ対応巡り米軍が裏切り、「日米同盟の危機」の真相永田町ライヴ新型コロナウイルスの「オミクロン株」による感染拡大が止まらない。 2022-01-14 03:50:00
ビジネス ダイヤモンド・オンライン - 新着記事 アップル株にメタバース効果、高まる投資家の期待 - WSJ PickUp https://diamond.jp/articles/-/293190 wsjpickup 2022-01-14 03:45:00
ビジネス ダイヤモンド・オンライン - 新着記事 仮想通貨に走るトルコ市民、急落のリラに見切り - WSJ PickUp https://diamond.jp/articles/-/293191 wsjpickup 2022-01-14 03:40:00
ビジネス ダイヤモンド・オンライン - 新着記事 サンリオ「マイメロ・ママ」の毒舌が炎上、過去コンテンツが時代の変化に対応せず - News&Analysis https://diamond.jp/articles/-/293189 newsampampanalysis 2022-01-14 03:35:00
ビジネス ダイヤモンド・オンライン - 新着記事 あなたはどう生きるか?悩み多きビジネスパーソンへ捧ぐ、「教養」を身につける方法【山口周×堀内勉×篠田真貴子】 - 大企業ハック大全 https://diamond.jp/articles/-/292808 篠田真貴子 2022-01-14 03:30:00
ビジネス ダイヤモンド・オンライン - 新着記事 神社で鳥居や注連縄に触ってはいけない理由 - ニュース3面鏡 https://diamond.jp/articles/-/293188 神社で鳥居や注連縄に触ってはいけない理由ニュース面鏡新年を迎え、気持ちも新たになるお正月。 2022-01-14 03:25:00
ビジネス ダイヤモンド・オンライン - 新着記事 筋力が容赦なく低下?「座りっぱなし」「マスク生活」に潜む無意識のリスク - 「脳活」に役立つ生活・健康習慣の知恵 https://diamond.jp/articles/-/293217 在宅ワーク 2022-01-14 03:20:00
ビジネス ダイヤモンド・オンライン - 新着記事 ひろゆきは「意識高い系の起業家グループ」に入るのか? - 1%の努力 https://diamond.jp/articles/-/292859 youtube 2022-01-14 03:15:00
ビジネス ダイヤモンド・オンライン - 新着記事 批判・中傷されても「自分を否定」しなくていい - 孤独からはじめよう https://diamond.jp/articles/-/293132 自分 2022-01-14 03:10:00
ビジネス ダイヤモンド・オンライン - 新着記事 お年寄り体験で判明した「老人の意外な苦痛」 - 上流思考 https://diamond.jp/articles/-/289287 話題作 2022-01-14 03:05:00
ビジネス ダイヤモンド・オンライン - 新着記事 FRBブレイナード氏、インフレ抑制は「最重要課題」 - WSJ発 https://diamond.jp/articles/-/293295 重要 2022-01-14 03:02:00
GCP Cloud Blog How to make hybrid meetings more inclusive https://cloud.google.com/blog/products/workspace/more-inclusive-hybrid-work-meetings-with-google-workspace/ How to make hybrid meetings more inclusiveAs we enter it s clear that hybrid meetings will be a mainstay of how work happens for millions of people around the world Across the Google Workspace team we spent much of last year improving the hybrid experience within our tools especially in Google Meet New features like automatic noise cancellation new virtual backgrounds and automatic light adjustment have helped keep the focus on people and ensure that everyone can be seen and heard in a hybrid meetingーno matter how and where they re joining  Google also spent much of last year developing our own best practices as a team for making hybrid meetings as inclusive as possible I m happy to share our approach below which takes advantage of the latest innovations in Google Workspace toolsーfrom Calendar to Spaces to Meet updates Putting Companion mode to work in hybrid meetingsIn we pre announced Companion mode in Google Meet which is designed to seamlessly connect those in the conference room with their remote teammates giving everyone access to advanced host and participation features while leveraging the best of in room audio and video conferencing capabilities You can now use Companion mode on your laptop while you re in a meeting connected to Google Meet hardware or the Nest Hub Max Companion mode which begins rolling out in general release today allows you to access interactive features and controls such as chat screen sharing hand raising polls host controls and more while keeping your video and audio off to avoid feedback with the conference room hardware Additionally you can enable captions and translations in your preferred language and view presentations up close on your own device You can join a meeting using Companion mode from the meeting landing page or by using g co companion If you intend to immediately share content you can simultaneously join the meeting and present from Companion mode using g co present Companion mode can help teams include more peopleーand perspectivesーin every hybrid meeting Join Companion mode by selecting “Use Companion mode under Other joining optionsScheduling meetings With so many distributed teams and time zones scheduling a meeting window that works for everyone can be a logistical challenge We follow a few guidelines to maximize participation Encourage team members to add their working hours location and focus time into their Calendars so scheduling can take into account things like wellbeing personal commitments or childcare Include only those people who need to be a part of the conversation but cast a wide net When in doubt invite people as optional and ask if they d like to attend Choose a date and time that will work for as many people as possible When scheduling with regions in far flung time zones alternate which teams have to stay late or start early to make the call happen You might also choose one day a week when global meetings happen so people can plan around that day Provide an agenda in the Calendar invite at least hours in advance to ensure people can decide whether to join and have a chance to prepare accordingly I like to include the goal of the meeting in the agenda for example “This meeting will be successful if we leave with four great ideas from the brainstorming session Encourage people to specify their location when they respond to the Calendar invite If they accept they can do so by choosing “in a meeting room or “joining virtually This helps everyone including the organizer know what to expect Consider rotating the role of facilitator and note taker This not only lessens the burden on one person it also gives other people a chance to participate more fully Preparing for meetings with SpacesLast year weintroduced Spaces as a central place for team collaboration in Google Workspace Spaces are tightly integrated with tools like Gmail Calendar Drive Docs Sheets Slides Meet and Tasks providing a better way for people to engage in topic based discussions share knowledge and ideas move projects forward and build communities and team culture Spaces are especially helpful when it comes time to prepare for a meeting Participants can review any background documents or presentations asynchronously working at a time that suits their geography and working style and follow up in the Space with questions or suggestions for the team All that information and discussion is then preserved for future reference Accessing content directly from Spaces can help meeting attendees stay up to date During the meetingWhen done well hybrid meetings don t feel like two different conversations that happen in the room and remotely To keep them feeling like a single inclusive experience we do the following Acknowledge virtual team members when they join a meeting and use the first minutes to connect with the team and check in Some teams at Google kickstart their meetings by playing an interesting or inspiring YouTube video or by asking a question of the team e g What was the favorite thing you ate this weekend Have the designated note taker create and use a pre populated notes Doc from the Calendar invite and then share it with the attendees If key participants are unable to attend consider recording the meeting for them Encourage attendees in conference rooms to use Companion mode and use the hand raise feature in Google Meet before speaking in meetings of people Even with Companion mode it can be difficult for remote participants to break into the conversation in the room The facilitator should make space for remote attendees to weigh in frequently  Avoid “in the room side conversations that may exclude virtual team members and minimize language proficiency barriers by encouraging the use of the recently launched translated captions Provide multiple ways for people to provide feedback Not everyone is comfortable speaking up in a group meeting so be sure to solicit feedback in the agenda doc or through Chat Q amp A and polls Use Jamboard or the Jamboard app instead of a physical whiteboard in the conference room so everyone can view and contribute Taking meeting notes from the Calendar invite After the meetingMany of us have experienced meeting fatigue as our teams became more distributed during the last two years To make sure meeting attendees feel like their time was well spent we encourage the following Send a follow up note to thank everyone for their time and ask for any additional feedback Include notes recordings action items and decisions to all relevant parties especially including those unable to attend  Consider posting all meeting artifacts to the relevant team or project Space allowing team members who were unable to attend to contribute For recurring meetings poll people once a quarter using Google Forms and ask them how the meeting could be made more productive and inclusive You might even consider an anonymous poll that asks if meetings should change in terms of duration of frequency or even focus Boosting inclusion and collaboration for all hybrid meetingsAs we explored in our recent global survey employees around the world are looking for new ways of working and connecting with each other and their organizations as remote and hybrid work models continue to evolve Creating a blueprint for more inclusive and collaborative meetings can help teams feel more connectedーwherever and however they work together Stay up to date with all the ways thefuture of work is evolving 2022-01-13 18:30: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件)