IT |
気になる、記になる… |
Parallels、「Parallels Desktop for Mac」を25%オフで販売するバースデーセールを開催中 − 7月2日まで |
https://taisy0.com/2021/06/22/142148.html
|
parallelsdeskto |
2021-06-21 16:54:47 |
IT |
気になる、記になる… |
Microsoft、「Surface Pro X (SQ2搭載モデル)」向けに2021年6月度のファームウェアアップデートをリリース |
https://taisy0.com/2021/06/22/142145.html
|
microsoft |
2021-06-21 16:07:55 |
IT |
気になる、記になる… |
Kindleストア、2万冊以上が最大70%オフになる大規模セールは本日まで |
https://taisy0.com/2021/06/22/142061.html
|
amazon |
2021-06-21 16:02:54 |
IT |
気になる、記になる… |
Amazonの読み放題サービス「Kindle Unlimited」が3ヶ月99円になるキャンペーンは本日まで |
https://taisy0.com/2021/06/22/142064.html
|
amazon |
2021-06-21 16:02:50 |
AWS |
AWS Architecture Blog |
Architecting Persona-centric Data Platform with On-premises Data Sources |
https://aws.amazon.com/blogs/architecture/architecting-persona-centric-data-platform-with-on-premises-data-sources/
|
Architecting Persona centric Data Platform with On premises Data SourcesMany organizations are moving their data from silos and aggregating it in one location Collecting this data in a data lake enables you to perform analytics and machine learning on that data You can store your data in purpose built data stores like a data warehouse to get quick results for complex queries on structured data … |
2021-06-21 16:47:33 |
AWS |
AWS Security Blog |
Customize requests and responses with AWS WAF |
https://aws.amazon.com/blogs/security/customize-requests-and-responses-with-aws-waf/
|
Customize requests and responses with AWS WAFIn March AWS introduced support for custom responses and request header insertion with AWS WAF This blog post will demonstrate how you can use these new features to customize your AWS WAF solution to improve the user experience and security posture of your applications HTTP response codes are standard responses sent by a server … |
2021-06-21 16:24:34 |
AWS |
AWS Security Blog |
Customize requests and responses with AWS WAF |
https://aws.amazon.com/blogs/security/customize-requests-and-responses-with-aws-waf/
|
Customize requests and responses with AWS WAFIn March AWS introduced support for custom responses and request header insertion with AWS WAF This blog post will demonstrate how you can use these new features to customize your AWS WAF solution to improve the user experience and security posture of your applications HTTP response codes are standard responses sent by a server … |
2021-06-21 16:24:34 |
AWS |
lambdaタグが付けられた新着投稿 - Qiita |
AWS Amplify + API gateway + Lambda + Dynamodb でシンプルなサーバレスWebアプリを作ってみた |
https://qiita.com/hatamura5121/items/f26b29f4b67f7e1e6e61
|
さらに言えば、単にpythonが動くだけではなく、Lambda上で動く時の動作、DynamoDBと接続、さらにAPIGatewayとの連携も再現できなければいけないので、環境構築のハードルもめちゃめちゃ高い。 |
2021-06-22 01:50:49 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
新しくメソッドをつくりましたが |
https://teratail.com/questions/345341?rss=all
|
|
2021-06-22 01:51:34 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
ランダムに変わる色の名前の頭文字をキー入力させるゲームを作りたい |
https://teratail.com/questions/345340?rss=all
|
ランダムに変わる色の名前の頭文字をキー入力させるゲームを作りたい色を格納した配列の数字をランダムにかつ任意のタイミングで変化させたいランダムな色が付いた「色の名前」に対して、付いている色の頭文字をキー入力するゲームnbsp脳トレのようなものを作っています。 |
2021-06-22 01:41:31 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
new Vue がうまくいかない。 |
https://teratail.com/questions/345339?rss=all
|
newVue が うまく いか ない 。 |
2021-06-22 01:38:43 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
Formatで桁数を揃える時に、最初にsheetをActiveにする、しないによって処理結果が変わってしまう原因が分かりません。 |
https://teratail.com/questions/345338?rss=all
|
Formatで桁数を揃える時に、最初にsheetをActiveにする、しないによって処理結果が変わってしまう原因が分かりません。 |
2021-06-22 01:35:11 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
C言語 N次正方行列の行列式を求めたいです |
https://teratail.com/questions/345337?rss=all
|
|
2021-06-22 01:32:31 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
CSSが反映されません |
https://teratail.com/questions/345336?rss=all
|
CSSが反映されません発生している問題・実現したいことCSSが反映されません。 |
2021-06-22 01:25:44 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
PHP ランダム文字生成 |
https://teratail.com/questions/345335?rss=all
|
rforiiltiystrrandsechoygt |
2021-06-22 01:24:54 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
AWS Amplify + API gateway + Lambda + Dynamodb でシンプルなサーバレスWebアプリを作ってみた |
https://qiita.com/hatamura5121/items/f26b29f4b67f7e1e6e61
|
さらに言えば、単にpythonが動くだけではなく、Lambda上で動く時の動作、DynamoDBと接続、さらにAPIGatewayとの連携も再現できなければいけないので、環境構築のハードルもめちゃめちゃ高い。 |
2021-06-22 01:50:49 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
自分がDockerについて調べて、やっと使えるようになった気がした手順 |
https://qiita.com/YamaDash82/items/b459ec502d8390708f45
|
コンテナ一覧の確認スキップしてもよい手順です稼働中のコンテナを一覧dockerps結果webserverというコンテナ名のNodejsコンテナと、sqlというコンテナ名のデータベースコンテが作成されています。 |
2021-06-22 01:35:37 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
Docker上のRailsのActiveStorageでActiveStorage::IntegrityErrorが出る |
https://qiita.com/shou8/items/f4394be7543d6959b45b
|
ここにあるgithubのissueを見たところ、どうも原因はDockerforMacのバグということでした。 |
2021-06-22 01:15:12 |
Git |
Gitタグが付けられた新着投稿 - Qiita |
SSHキーでGithubに接続する。(完全ガイド) |
https://qiita.com/monsoonTropicalBird/items/d026a4bc4796127ab155
|
SSHキーを発行するSSHキーの発行は、コマンドラインからsshkeygentrsabCmongolmongolcomttypebbyteCcommentラベル代わりに使ってるで、幾つかの質問にそのままエンターを入れ続けると、下記のような表示が現れ、キーが生成された事がわかる。 |
2021-06-22 01:58:30 |
Ruby |
Railsタグが付けられた新着投稿 - Qiita |
Docker上のRailsのActiveStorageでActiveStorage::IntegrityErrorが出る |
https://qiita.com/shou8/items/f4394be7543d6959b45b
|
ここにあるgithubのissueを見たところ、どうも原因はDockerforMacのバグということでした。 |
2021-06-22 01:15:12 |
海外TECH |
Ars Technica |
“Black fungus” surges in India—thousands blinded, maimed, dead |
https://arstechnica.com/?p=1775035
|
covid |
2021-06-21 16:05:31 |
海外TECH |
DEV Community |
Headless CMS: Building apps with Nuxt and Sanity |
https://dev.to/sanity-io/headless-cms-building-apps-with-nuxt-and-sanity-2ba1
|
Headless CMS Building apps with Nuxt and Sanity IntroductionSanity is one of the most flexible platforms for building data driven content solutions This article explains what Sanity is all about and how to build a simple books list app Sanity CMS stores our content which will be editable in Sanity Studio We will make this app with Nuxt and style it using pure CSS This three in one article will show you how to Set up Sanity Studio Set up Sanity on Nuxt Deploy both Sanity Studio and the Nuxt app so the app can work online You can see the deployed app on Netlify and see the final code on GitHub Requirements PrerequisitesTo follow this guide you should have Basic understanding of HTML CSS and JavaScript At least little experience or knowledge of Vue js Node and npm or yarn installed on your computer Basic knowledge of how the terminal works A Sanity io account What is Sanity According to official Sanity documentation Sanity io structured content platform enables you to manage your text images and other media with APIs Sanity Studio helps you quickly set up a customizable editing environment Sanity also gives you access to many APIs libraries and tooling that help you have all your content available as a single source of truth One significant advantage of Sanity is its flexibility You get the full privilege of setting up your dashboard and even the ability to customize it to your taste You can invite new or add existing user accounts to access your projects by assigning different roles and access rights Sanity studioSanity Studio is where you can edit and manage your content when using Sanity You set up your schemas in plain JavaScript then Sanity Studio builds the editing environment This open source CMS connects to Sanity io s datastore and is a single page application written in React and published on npm It also enables users to deploy Sanity Studio to their server Getting started with Sanity setupTo get started let s install the Sanity CLI globally To do this you first need to install Node and npm npm install g sanity cliAs soon as the CLI finishes installing it can create a new project Run the following command wherever you store codes on your local computer sanity initIf this is your first time this will log you into Sanity and then you would be able to create a project set up a dataset and generate files which are necessary to run the editing environment locally Note If you don t have an account Sanity will direct you on how to get one Or visit Sanity s website to create an account Once that is done Sanity prompts you to create a new project Tap Enter Name your project books note and choose the default dataset configuration by typing Y Finally confirm the project path and choose a schema for your Studio For this demo you ll need to start with the Clean project with no predefined schemas option Start the Studio by first moving into the folder by running the following command in the terminal cd studioYou can now start the studio with the following command sanity startAfter compiling Sanity Studio will open on http localhost Note You can also use commands like sanity docs This is used to open sanity s documentation in the browser sanity manage This helps to open the project settings in your browsersanity help This is used to explore the CLI manualThis project is clean and has no predefined schemas so we have a dashboard like this Creating the mad lib schema from scratchA schema describes the different field types in a document You can choose from various types of schema For this guide we ll create a schema for a books note app which will just have five fields and one schema This will be simple for a beginner to understand before creating many schemas requiring organizing For now when you open the Sanity file you created the directory looks like this ├ーREADME md├ーconfig├ーnode modules├ーplugins├ーsanity schema txt├ーsanity json├ーschemas content model lives here├ーstatic├ーtsconfig json└ーyarn lockWhen Sanity Studio starts it looks for the schema in a file named schema js in your project s schemas folder For now since you don t have any schema you will find something like this in your schema js file First we must import the schema creator import createSchema from part sanity base schema creator Then import schema types from any plugins that might expose them import schemaTypes from all part sanity base schema type Then we give our schema to the builder and provide the result to Sanity export default createSchema We name our schema name default Then proceed to concatenate our document type to the ones provided by any plugins that are installed types schemaTypes concat Your types here All your schemas go into the types array by defining the schema s title name type and others like a description Finally you will also define the fields For our books schema we will use something like this title Books name books type document fields title Book Name name bookname type string description Enter book name here title Author name author type string description Enter Author s name here title Description name description type string description Enter book name here name slug title Slug type slug options source bookname maxLength title Book cover name bookcover type image description Upload appropriate book cover image here options hotspot true title Notes name mynotes type array description Type notes as you learn something new about this book here of type block Save and check your browser you will find something like thisOne last thing lets load our studio with contents which we will be fetching into the app What is Nuxt jsNuxt js is a free open source modern web application framework based on Vue js Node js webpack and Babel enabling us to create static pages single page applications SPAs and server side rendered SSR applications depending on our build s purpose Setting up a Nuxt js appWe can create our Nuxt app using the scaffolding tool create nuxt app or build from scratch For this app we will use the CLI To get started run the following using your package manager of choice npx create nuxt app lt project name gt oryarn create nuxt app lt project name gt ornpm init nuxt app lt project name gt Ensure you replace lt project name gt with the name of your project app Once installation is complete Nuxt will present you with a series of questions to help configure your application for development including name Nuxt options user interface UI framework TypeScript linter testing framework and the like Pick what you love to use but ensure you select rendering mode Universal SSR SSG and deployment target Static Static JAMStack hosting Once you ve completed your project cd into your new project and start a local development server by running yarn dev cd blogyarn dev Connecting Sanity with Nuxt js AppTo use Sanity data in Nuxt you need to install Sanity s sanity nuxt plugin to your Nuxt project and few dependencies by running the following command in your project s root directory yarn add nuxtjs sanity sanity client sanity image url nuxtjs sanity ーnuxt sanity enables us to access text images and other media with Nuxt and the Sanity headless CMS sanity client ーSanity Client is the official JavaScript client by Sanity You can use it both in Node js and modern browsers sanity image url ーThis helper library generates image URLs and performs helpful image transformations through the Sanity asset pipeline Read more in the official docs There is also an easier to install alternative that works for Nuxt Once these packages are installed we ll have to enable the module in our Nuxt configuration nuxt config js buildModules nuxtjs sanity module To get started we need to add the Sanity configuration nuxtjs sanity looks for a sanity json file in your project root directory Just copy over the sanity json from your CMS and you re fully configured You can learn more about this in the official documents Finally we need to update the Cross Origin Resource Sharing CORS origin for our app to work Visit Sanity Teams and click on your Sanity project On your project s dashboard click on Settings →API settings then add your site address to the CORS origins field For example http localhost You re now good to go Building a books list appIn this app we use two pages the index page for all books and the slug page to display each book We also added the about page but it s not necessary for this tutorial Display all books on the Homepage pages index vue lt template gt lt div gt lt header gt lt div class head gt lt Logo gt lt b gt Books Note lt b gt lt div gt lt header gt lt section id body gt lt p class top label gt You currently have lt strong gt books length lt strong gt Books lt p gt lt div class books gt lt div v for book in books key book id gt lt NuxtLink class link to book slug current gt lt div class book gt lt img src urlFor book bookcover alt book bookname loading lazy class book img gt lt div class book info gt lt b class title gt book bookname lt b gt lt p class author gt book author lt p gt lt p class desc gt book description lt p gt lt div gt lt div gt lt NuxtLink gt lt div gt lt div gt lt section gt lt footer gt lt NuxtLink to about gt lt div class abt icon gt lt About gt lt div gt lt NuxtLink gt lt footer gt lt div gt lt template gt lt script gt import groq from nuxtjs sanity export default async asyncData sanity const query groq type books const books await sanity fetch query return books lt script gt According to official Sanity documentation Sanity uses Graph Relational Object Queries GROQ to query data GROQ is a declarative language designed to query collections of largely schema less JSON documents In the above code in the script section the first thing we did was import the GROQ from nuxtjs sanity We then fetched all books from Sanity so we can loop the array using a v for directive which you can find in the template section async asyncData sanity const query groq type books const books await sanity fetch query return books At this point we have successfully fetched all our books from Sanity and rendered them to our template section However if you attempt running this code the image won t show and might even log an error in the console Let s see how to display images in Nuxt from Sanity You can do this using the sanity image url which we installed earlier The sanity image url is a plugin and we register it globally in Nuxt since we use it in two different files To register this plugin globally you need to create a file in the plugins directory of your Nuxt project then import imageUrlBuilder from sanity image url Finally configure this plugin We created a file and named it “sanity image builder js in the plugins folder Once you have created the file plugins sanity image builder js paste the code below into the file import imageUrlBuilder from sanity image url export default sanity inject gt const builder imageUrlBuilder sanity config function urlFor source return builder image source auto format inject urlFor urlFor With this your image will work properly but you will bind src and use of urlFor lt img src urlFor book bookcover alt book bookname loading lazy class book img gt Note You can give your file any name but so you don t get confused when you use many plugins this convention might be the best Finally we use the slug and create a dedicated slug file in our pages folder to have dynamic routes lt NuxtLink class link to book slug current gt lt NuxtLink gt This should Output something like this Create dynamic routes for booksOn our index page we rendered a NuxtLink for each book in our dataset using the slug value to set the URL for each book This means if we create a blog post called heroes only and set the slug to heroes only our Nuxt application should handle a request to the page heros only and retrieve the corresponding book information from Sanity Nuxt makes this possible by building in support for these kinds of pages You create a new file in pages in the format slug vue In your page s asyncData function you can then use the params argument to reference the slug Let s try this and see if it will work pages slug vue lt script gt export default async asyncData params sanity console log params slug heros only lt script gt Let s now use the code below to query Sanity and fetch only content related to this slug pages slug vue lt template gt lt div v if book gt lt header gt lt div click router back gt lt Back gt lt div gt lt div class head gt lt img src urlFor book bookcover alt book bookname loading lazy class book img gt lt div gt lt div class book info gt lt b class title gt book bookname lt b gt lt p class author gt book author lt p gt lt p class desc gt book description lt p gt lt div gt lt header gt lt section id body gt lt p class top label gt My Notes lt p gt lt div class info v if book mynotes gt lt SanityContent blocks book mynotes gt lt div gt lt div class info v else gt lt p gt No notes available lt p gt lt div gt lt section gt lt footer gt lt NuxtLink to about gt lt div class abt icon gt lt About gt lt div gt lt NuxtLink gt lt footer gt lt div gt lt template gt lt script gt import groq from nuxtjs sanity import SanityContent from nuxtjs sanity dist components sanity content export default components SanityContent async asyncData params sanity const query groq type books amp amp slug current params slug const book await sanity fetch query return book lt script gt In the code above the only major difference is the query line where we check for both the type of books meaning the book database and also the slug which is unique to only one book async asyncData params sanity const query groq type books amp amp slug current params slug const book await sanity fetch query return book We also use block contents though a simple one You can learn more about Portable texts on Santiy s website We imported SanityContent from nuxtjs sanity making the process simple compared to using plugins which also exists for images making the whole process of image rendering easier Note The approach also exists for images but we decided to use both You can check out the nuxtjs sanity image formatting docs on Sanity s website After you import SanityContent from nuxtjs sanity you can now use it in that page lt div class info v if book mynotes gt lt SanityContent blocks book mynotes gt lt div gt lt div class info v else gt lt p gt No notes available lt p gt lt div gt We only used SanityContent on line two We used an if else statement to make the app more friendly This should output something like this when you click on any book Styling our appWe have explained how to do this without styling the app so your results may not match what you see in the images above To style this app you can check out this repository to get the styling we used for each page component and even the images Deploy Nuxt App To NetlifyFinally to round up this guide let s deploy both Sanity Studio and our Nuxt js app so this is available online for everybody to access Netlify is a Git based workflow and serverless platform to build deploy and collaborate on web apps This all in one platform automates modern web projects You can use many other platforms instead for example Vercel Cloudflare Pages and more To deploy to Netlify we must first push our codes to GitHub For this we will use our terminal and some Git commands In case you are not familiar with Git you can check out this series on DEV Community First let s create a repository on GitHub by clicking the New button or the plus on the top right corner Then fill in the necessary information and click create repository Next open your terminal Let s start by creating a new branch then stage all our files so we can commit our changes using the following commands git init initialize repositorygit checkout b main create a main branch git add stage all files for this commit git commit m first commit commit the changesOnce this completes we can now push to the created remote repository using the following commands git branch M maingit remote add origin this would be differnt based on your created repositorygit push u origin mainWhen you refresh your repository your code should show up Now let s deploy to Netlify Log in to Netlify or sign up if it s your first time with your GitHub account Once that is successful Netlify will redirect you to your team page where you can get a repo from GitHub and deploy Click on New site from Git A new page will appear to choose the Git provider where your site s source code is hosted In our case we choose GitHub Once it s authorized you can now search for the GitHub repository When you click on the repository it brings you to a page where you set your site settings change the build command to Nuxt generate and click the Deploy Site button When your deployment is successful you should get a URL for anyone to access your app You can now deploy your Sanity Studio Deploy sanity studio and update the CORS originSanity enables you to host your Studio giving you a nice my company Sanity studio URL Since the Studio runs in a browser and communicates with the Sanity API you can also host it yourself or on your favorite hosting service To host with Sanity run the following command in your studio folder sanity deployOnce you run this command Sanity asks you to choose a unique hostname for your Studio Finally we need to update the CORS origin for our app to work Visit and click on your Sanity project On your project s dashboard click on Settings →API settings then add your site address to the CORS origins field Note Sometimes this happens automatically You can confirm using Congratulations Our application is now running smoothly online ConclusionIn this guide we built a book note application using Nuxt js and Sanity We used Sanity Studio to edit our data This guide will help you set up your own version of this project to improve and add more features and functions Here are a few ideas to get you started Create a category schema and link to the books Add filter sort and search functionality making use of categories Style the app using UI libraries like Vuetify BootstrapVue or Tailwind Make specific schema fields required To get started making this or another Nuxt js Sanity project explore the resources below Useful resources vue sanity Composition API methods to incorporate Sanity into a Vue project Headless CMS explained in minutesGet started with the Nuxt js event websiteNuxt SanityHappy coding |
2021-06-21 16:25:09 |
海外TECH |
DEV Community |
10 npm Commands that every developer must know |
https://dev.to/gurshehzadsingh/10-npm-commands-that-every-developer-must-know-4gmn
|
npm Commands that every developer must knowNPM stands for Node Package Manager and it is the package manager for the Node JavaScript platform It put modules in place so that node can find them and manages dependency conflicts intelligently Most commonly it is used to publish discover install and develop node programs Some Important npm commands every developer should know are npm i Here i stands for install It installs all the packages mentioned in package json npm install production It installs all the packages mentioned in package json except the dev dependencies npm i lodash It installs a package with name of lodash you can use your favorite package name npm install save dev lodash It installs the specific package as a dev dependency in my case the name is lodash npm list It lists the versions and name of all dependencies in the current directory npm update It updates all the production packages in the current directory npm install g nodemon It installs a package globally on your machine with g flag In my case nodemon will be installed globally npm remove lodash It uninstalls removes a previously installed node module in the current directory npm v It displays the npm version installed on your system npm doctor It checks our environment so that our npm installation has what it needs to manage our JavaScript packages Thanks for reading |
2021-06-21 16:22:00 |
海外TECH |
DEV Community |
Building a Reading List web app with Node, Preact, and Tailwind CSS |
https://dev.to/ingosteinke/building-a-reading-list-web-app-with-node-preact-and-tailwind-css-44pa
|
Building a Reading List web app with Node Preact and Tailwind CSSThis is a work in progress last updated on June I will only highlight a few code examples and helpful links in this article You can see the full code and commit messages on GitHub I will add a link to a live demo once if ever I have published a working draft MotivationI finally wanted to take some time for proper research and some lazy trial and error based on tutorials and example code to set up a proper full stack application Beginning with a general example starter setup useful for several projects forking the actual side project bookstack reading list app once things get more specific Why bother In the past I had worked with legacy code or did not take the time for proper research which even made me suspect I did not like React or even JavaScript single page applications at all But as many other developers pointed out there is more than one way to do things especially when it comes to React Finding outWhen I am free to decide everything on my own thus having to do so I swing back and forth between joy of discovery and getting stressed out So many technologies and buzzwords so much apparent over complexity Fueled by my stress I find the energy not to simply reproduce some outdated tutorials from but to try and build only what is actually reasonable now Besides learning experience and hopefully some fun the result should be an actual project to show plus a scaffold that might save me some time in future projects Time that I already invested when researching and building my side project How to Build an SPA that does not suckTrying to use Tailwind TypeScript and React in a proper way or at least in a way that fits my experience and requirements seems a good way to make up my own mind about technology that seems to elicit a lot of controversy in the web developer community Thanks to my friend Andy Weisner Retinafunk for convincing me that Utility CSS can be nice and useful even or especially for experienced web developers Slow Pace ApplicationsMany single page applications turn out to be slow pace applications built with a back end development mindset that fails to care about usability accessibility and page speed web performance Add arbitrary syntax rules like AirBnB s version of ES bloated syntax horror like ReactPropTypes or styled components and try to fix the mess by adding pre rendering which optimizes for largest content paint on the cost of first input delay and making built time so slow that it feels like developing a monolithic Java application Thanks to Anna Backs and Christina Zenzes for the term slow pace application and for giving me back some hope that it s possible to write an SPA that does not suck I don t Create React App Originally intended to use tailwind with create react app after trying to solve conflicts and incompatibilities I rebased the starter on retinafunk s tailwind jit starter and decided to drop old technology like webpack in favour of smaller more elegant solutions which in consequence lead to the decision to drop React in favour of preact focussing on performance and minimalism Zero Configuration unless After trying parcel which claims to be a zero configuration bundler we ended up using snowpack Parcel I started with parcel after too many deprecation warnings of required node dependencies tried parcel although it is still labelled beta but then again open vpn used to be beta for ages while working fine in production At that step my starter project had become a combination of at least three different projects so copying and pasting from one tutorial is not guaranteed to work in another setup I got a lot of warnings about missing types and missing support for the experimental syntax jsx Support for the experimental syntax jsx isn t currently enabled The suggestions how to fix were misleading in my case as the crucial part was using jsx or tsx file extensions for every file that contains JSX As I never actually used preact before it was also unclear to that the seemingly unused import h from preact actually makes sense once JSX is internally transpiled to an h function Snowpack ️Switching from parcel to snowpack we were able to simplify the setup according the snowpack s preact typescript template Now the preact typescript server was running we had to bring back our tailwind configuration from the original templateremove non tailwind cssconfigure postcss to use tailwindadapt build and include paths Frontend App based on templatesPreact Default using preact router created bypreact cli default snowpack preact type script startertailwind jit starter by retinafunk next finish front end appCleanup fix typescript warnings missing types for components configure production build add tests and ensure accessibility and performance Could not find a declaration file for module is another misleading error message as we don t need to provide d ts files when we can provide type information directly in our code Converting preact default example code to typescript was easy Functional components without any properties only need a definition as a function component Once provided our editors already tells us to rename the file to tsx which does not break any import statement as file extensions have to be left out anyway so everything still works after implicit transpiling from tsx back to jsx internally Simple property type definitions can be provided inline without creating interfaces Our TypeScript code is much more compact than the same definition written using React PropTypes import FunctionComponent from preact const Profile FunctionComponent lt user string gt user gt export default Profile Also make sure the application will work in a sub folder as part of a monorepo as some configurations were said to work only in the root directory of a project which does not make sense as I never save anything to and any application should not care where its root folder is mounted Making our app more accessible performing and search engine friendly by design purge tailwind cssso that only styles are exported which are actually used make sure purge finds all file make sure not to write dynamic styles in an undectable way add example load css in html head not in javascript this might unblock load speed by allowing parallel download of css and javascript and it also allows us to define styled static page elements outside of our p react app like a footer with links to external or static resources This also allows search engines which do not run javascript to find some content apart from the noscript text which we also want to change into something that our customers might find helpful on search engine result page We can define critical above the fold CSS todo link and load web fonts in the head as well Our HTML markup now looks like this src index html lt DOCTYPE html gt lt html lang en gt lt head gt lt meta charset utf gt lt title gt Tailwind JIT MERN App Starter lt title gt lt meta name viewport content width device width initial scale gt lt style type text css gt critical above the fold styles to prevent layout shift html body font family Alegreya serif background color fbe color fff lt style gt lt link rel preconnect href gt lt link href wght amp display swap rel stylesheet gt lt link rel stylesheet href index css gt lt script type module src index js defer gt lt script gt lt add meta information like favicon twitter cards etc here gt lt head gt lt body gt lt div id root gt lt div gt lt footer class bg black text white gt Static footer content lt a href gt example com lt a gt lt footer gt lt aside gt lt noscript gt You need to enable JavaScript to run this app lt noscript gt lt aside gt lt body gt lt html gt You need to enable JavaScript to run this app This is technically true but probably not helpful to anyone There should at least be any information about the app maybe even a statically rendered snapshot of some highlighted content which will help real people and could benefit search engine optimization as well Looking up class namesStyling my app I had to look up Tailwind s class names instead of writing CSS directly which I mostly know without looking up but not all of the time Do I still think it was a good idea to choose Tailwind Yes because the resulting code ist easieer to maintain while hand coded CSS can turn into a mess quite easily even in a very small project Es gibt so ein paar Dinge die an Frontend Apps nerven Frontend Routing reload einer URL funktioniert nicht im Preview Server und muss vermutlich auch an nginx Apache AWS irgendwie exportiert oder aber prerendered werden und durch JSX oder falsches Minification funktioniert line break nicht mehr als whitespace character so dass einige Elemente ungewollte aneinanderkleben Aber das sind halt auch nur Details Test and Story Driven Design Storybook Test setup todounit testsintegration tests Web ComponentsPreact s tiny size and standards first approach make it a great choice for building web components go full stackThen add the back end application After moving our front end code in a folder of its own I learned that you can t simple make a script defined in a top level package json execute another script defined in another package json which is inside a sub folder is it not called directory anymore We will solve this using workspaces to create a so called monorepo later Once we are inside our sub folder the front end app still works as it used to like when called bycd client amp amp yarn start Express ServerJatin s tutorial suggests to set up Babel to use ES syntax in node which I could not believe is still true in and luckily it isn t But what about TypeScript or do node or deno offer native typing without any extensions ES and TypeScript in NodeJS without BabelWhile deno supports TypeScript out of the box I was still curious how to use modern syntax in node While the web is full of answers stating to simply start node with the harmonyflag little was written about how to achieve this descriptively inside ourpackage json But no surprise this is all just oudated code Node already supports ES by default and modern modules once we specify type module in our package json So what about types cript then builtin middlewareAny common use case is probably built into latest express core Apart from CORS see below a classic tutorial boilerplate code to install bodyParser as an extra module is also obsolete for common cases Thanks to Taylor Beeston for pointing it out Connecting both apps locallyFor al local development dsetupadding a fetch method to the frontend Copy and paste boilerplate code const asJson r gt r json Reading the warning that r implicitly has the any type makes me wonder what type to expect anyway First google result The response of a fetch request is a Stream object which means that when we call the json method a Promise is returned since the reading of the stream will happen asynchronously Still wondering without any real TS experience how to specify it Simply write new Stream or more simply asJson lt r stream gt or rather r Stream as this is surely no simple type But not so quickly Cannot find name Stream Did you mean MSStream Anscheinend ist es aber auch gar nicht üblich jede Variable zu typen wenn ich mir mal Code Examples mit TypeScript anschaue Das implicit any scheint doch toleriert zu werden Also don t forget CORSres header Access Control Allow Origin and do we really need to restart the server after each change Sure there is some sort of preview watcher available Das war eine der beiden Aufgaben von nodemon aber hier könnte man auch rollup einsetzen vgl Production grade A first glance at our simple server looks too naive in any possible way While in a classic LAMPP stack we would probably use Apache or NGINX as a server and provide nothing but configuration to control some headers and rewrites and use a back end language for the logic it seems as if we wanted to reinvent the wheel when using node Currently we only need to call one undefined or invalid route to make the server crash completely after putting out a detailled error message to a potential attacker For a production setup we could use NGINX to serve both client and server app on the same domain same default public port routing all api requests to the backend like Asim describes in the article on how to deploy a React Node app to production on AWS Universal shared CodeWhy use back end JavaScript at all PHP has improved a lot in the past years and there are other popular languages like Go and Python so why bother We can avoid redundant code and share common business logic between front end and back end by using the same programming language inside the same repository monorepo What struck me was that I was not able to find much about how to avoid redundancy by providing a common data model instead of writing at least x mongoose in the back end and javascript in the front end spa Either nobody cares or there is a good reason not to do it I can imagine that this would introduce technical debt coupling or even unintended downsides concerning front end business logic But why do I have to find out by trial and error Hope to provide an answer and share my results of research and experiment after doing so but maybe I will be just too lazy and give up In a real life customer project I would not dare to try and rather stick to the proven ways for the sake of stability but hey this is one thing that side projects are for It s probably not isomorphic but universal btw DatabaseIn Jatin s tutorial shortly after stating that one reason for using MongoDB is to go full stack using only JavaScript he suggests installing mongodb using homebrew on a mac While I understand that he was just talking about languages used thus no SQL I would not install anything natively at that point So when npm does not offer mongo why not try docker that might even already be the solution how to manage that both locally for development now and on aws in production later Why do we even need a node server We need a layer to ensure authentication and authorization and probably simplify query syntax to provide either a REST API or a GraphQL middleware We could also insert a proxy layer with haproxy nginx and cache with the dotted logo for load balancing and caching but then again our backend should only provide light weight JSON Page rendering will be handled in the client Assets should be hosted on a content delivery network Also if we use an existing cloud infrastructure like AWS they will probably handle load balancing and caching in a better way than any hand coded setup could do ArchitectureSo after having started a proof of concept we are ready to define our requirements We want to build a partially isomorphic app without redundancy in data models validation formatting and basic business logic We want to adhere to standards and proven best practices to prevent reinventing the wheel using configuration and description over coding Server security and stability routing RESTful communication should probably be available as standard solutions by now Our app should be deployed in a distributed scalable way to the cloud for example on Amazon Web Services Integrating back end stackAfter trying for several days to use mongoose schemata express and node together with TypeScript I gave up for the moment as literally no backend tutorial seems to use TS and it confused me a lot to get the types and interfaces right As I want to concentrate on the front end anyway I will use TypeScript in the frontend only in the first version Installing typescriptyarn add D typescriptyarn add D ts node types node types express types cors types mongooseyarn tsc init target esnext rootDir src outDir build Nodemon will detect and run ts files with ts node automatically now triggered by the file extension so we have to rename server js to server ts React AnnoyancesOne of the most annoying misfeatures of typical react apps in my personal view as an old school web developer is the concept of Controlled Input Controlled Input WTF There are plenty of posts explaining what Controlled Input is and how to use it but all of them fail to give me a valid reason WHY actually they do they want the SPA to be the single source of truth while in my view the DOM should be the single source of truth at least for any user input Controlled Components in my experience add a minimal delay i e sluggishness to the front end and make working with form elements less straightforward and less accessible as they basically throw away what the browser already has to offer only to rebuild it in an often worse way Appealing about Preact there is no virtual DOM TODO eleborate and prove my point why we should not use Controlled Components but in another article of its own AcknowledgementsRetinafunk s tailwind jit starter as well as Andy s support and suggestions saved me from abandoning tailwind before I even made it work Anna and Christina s talk Slow Pace Application a follow up to Anleitung zum Unglücklichsein How not to JavaScript The Pursuit of Unhappiness How not to JavaScript one of the best talks about JavaScript performance optimization ever Why does everybody else have to be so serious StackOverflow while I m still not happy about the smart Alecs that keep closing and downvoting my questions instead of deleting outdated works for me answers I can t help to say that StackOverflow does hold some valuable answers to every day problems Hopefully that will not change after the acquisition by Prosus but if it does we will get over it dev to without abitrary gatekeeping like StackOverflow nor pay for free content like medium com there is finally a community for in depth coding discussion and exchange of ideas Thanks for everyone who take their time to write and edit articles Hope that I can add something too as to the cover image also a big shout out to all the friendly and open minded people I met while travelling in the UK in and very lucky to have done this before Brexit and Covid so I have some nice memories to remember while sitting at my home office desk This article s cover image was taken in the little town of Settle in Yorkshire UK and you can see it here in my flickr photostream and read more about the trip in my blog About me I am Ingo Steinke a creative web developer creating sustainable software and websites If you like my talks and articles feel free to support me on patreon buy me a coffee or hire me as a freelancer |
2021-06-21 16:18:33 |
海外TECH |
DEV Community |
Provisioning an EC2 Instance with CloudFormation (part 1) |
https://dev.to/aws/provisioning-an-ec2-instance-with-cloudformation-part-1-443f
|
Provisioning an EC Instance with CloudFormation part As a full stack developer you don t have time to deal with infrastructure environment inconsistencies manual testing and manual deployment of your team s web app It s time consuming frustrating and requires yet another skill set especially since you re part of a small development team at a budding startup You know that as your app takes off your infrastructure and processes need to scale with it Inconsistencies between environments are creating problems down the pipeline costing your small team time and money Today your build and deploy process is manual and done infrequently Mistakes are made bugs are introduced to production code when they are more difficult and expensive to fix and your customers ultimately suffer It s time to fix some of these gaps so you can deliver smaller changes more quickly offer your customers a higher level of quality and scale when you need to You ve decided to use infrastructure as code IaC to automate your infrastructure Today you have an Amazon EC instance hosting your web app and a Postgresql database running on the same instance Sometimes the web app traffic impacts the database and vice versa You want to manage the EC instance with IaC and start using a managed database instead of running it on the same instance Since you re already using AWS you ve decided on Amazon RDS for a managed Postgresql database Because RDS is a managed service you won t have to do operating system patches or database patches ーit s all managed for you And finally you want to introduce a continuous integration continuous deployment CI CD pipeline to automate the build test and deploy phases of your release process In the next three posts you ll learn how to automate the provisioning of your Amazon EC instance using AWS CloudFormation this post part add an Amazon RDS Postgresql database to your stack with CloudFormation part andcreate an AWS CodePipeline with CloudFormation part PrerequisitesTo work through the examples in this post you ll need an AWS account you can create your account here if you don t already have one the AWS CLI installed you can find instructions for installing the AWS CLI here anda key pair to use for SSH you can create a key pair following these instructions Unfamiliar with CloudFormation or feeling a little rusty Check out my Intro to CloudFormation post before getting started Creating the CloudFormation TemplateI m of the mindset of “Make it work Make it right Make it fast so we ll iterate to get to our final template and and make it better at the end At the end of this post we ll delete the stack we ve created so that you don t incur any charges and then you can quickly recreate the stack when we move on to the next post Make it work Make it right Make it fast ーKent BeckJust want the code Grab it here Let s get started Create Basic Amazon EC InstanceFirst we ll create a basic EC instance with CloudFormation ec yamlAWSTemplateFormatVersion Description Part Build a webapp stack with CloudFormationResources WebAppInstance Type AWS EC Instance Properties ImageId ami defffbe ImageID valid only in us east region InstanceType t microIn the template above we have one resource with a type of AWS EC Instance We ve hardcoded both the ImageId AMI and InstanceType Note this ImageId will only work in the us east region To create the stack using this template run the create stack command line aws cloudformation create stack stack name ec example template body file ec yamlYou now have an EC instance in the us east region But we have no way to access this instance We cannot SSH into it yet because we didn t assign it a security group allowing SSH traffic or specify a key pair name There s nothing running on HTTP or HTTPS ports yet but even if there were we wouldn t be able to access that either Let s fix that now Enable SSH and HTTP HTTPS TrafficNow we ll update the CloudFormation template to add a security group resource that allows traffic in on port for SSH and ports and for HTTP and HTTPS traffic Here we ve allowed all IP addresses to access these ports but you may want to lock this down further especially the SSH rule to IP addresses you trust ec yamlAWSTemplateFormatVersion Description Part Build a webapp stack with CloudFormationResources WebAppInstance Type AWS EC Instance Properties ImageId ami defffbe ImageID valid only in us east region InstanceType t micro KeyName jenna lt Change to use your key pair name SecurityGroupIds Ref WebAppSecurityGroup WebAppSecurityGroup Type AWS EC SecurityGroup Properties GroupName Join webapp security group dev GroupDescription Allow HTTP HTTPS and SSH inbound and outbound traffic SecurityGroupIngress IpProtocol tcp FromPort ToPort CidrIp IpProtocol tcp FromPort ToPort CidrIp IpProtocol tcp FromPort ToPort CidrIp Again we ve hardcoded some values in our template but we ll fix that up soon Before updating the stack with this template you ll need to make one small change to use your key pair name You can update your stack using the update stack command aws cloudformation update stack stack name ec example template body file ec yamlNow your EC instance should be accessible with SSH using your key pair To test this out first navigate to your new stack in the AWS CloudFormation Console to find the instance you created Then go to the instance and copy the public DNS for your instance Then SSH into the instance like this ssh i YOUR KEY PAIR NAME pem ec user PUBLIC DNSYour command will look something like this ssh i jenna pem ec user ec compute amazonaws comHint You can also grab the command directly by viewing the Connect details at the top of the instance and copying the example command at the bottom of the SSH client tab There is nothing being served on port or yet so you won t be able to test HTTP HTTPS access yet Assign an IP Address and Output the Website URLWe also need to give our EC instance an elastic IP address EIP An elastic ip address is a static IP address that won t change every time we re provision the instance We ll also output the website URL ec yamlAWSTemplateFormatVersion Description Part Build a webapp stack with CloudFormationResources WebAppInstance Type AWS EC Instance Properties ImageId ami defffbe ImageID valid only in us east region InstanceType t micro KeyName jenna SecurityGroupIds Ref WebAppSecurityGroup WebAppSecurityGroup Type AWS EC SecurityGroup Properties GroupName Join webapp security group dev GroupDescription Allow HTTP HTTPS and SSH inbound and outbound traffic SecurityGroupIngress IpProtocol tcp FromPort ToPort CidrIp IpProtocol tcp FromPort ToPort CidrIp IpProtocol tcp FromPort ToPort CidrIp WebAppEIP Type AWS EC EIP Properties Domain vpc InstanceId Ref WebAppInstance Tags Key Name Value Join webapp eip dev Outputs WebsiteURL Value Sub http WebAppEIP Description WebApp URLIn this template update we ve created a resource AWS EC EIP for an elastic IP address and assigned it to our EC instance We also added the Outputs section and out the website URL which at this point is our elastic IP address You can run the same update stack command from above make sure to reference the right file name When it completes the EIP takes a few minutes to provision your EC instance will have a static IP address and you ll be able to see both the IP address and URL in the Outputs section of the CloudFormation stack in the Console Make the Template DynamicNow that we ve made it work the last task we have to do is to make it better Remember that our template has hardcoded values for a number of configurations that should really be dynamic We want these values to be dynamic for a few reasons Maybe we want our development team to create a stack in their own AWS account for development purposes And because it s development maybe we only want t micro instances whereas in production we need t medium instances We also might want to create this stack in other regions so we ll need to use the region specific ImageId AMI We can make our template more dynamic by using parameters and mappings Let s add them now ec yamlAWSTemplateFormatVersion Description Part Build a webapp stack with CloudFormationParameters AvailabilityZone Type AWS EC AvailabilityZone Name EnvironmentType Description Specify the Environment type of the stack Type String Default dev AllowedValues dev test prod AmiID Type AWS SSM Parameter Value lt AWS EC Image Id gt Description The ID of the AMI Default aws service ami amazon linux latest amzn ami hvm x gp KeyPairName Type String Description The name of an existing Amazon EC key pair in this region to use to SSH into the Amazon EC instances Mappings EnvironmentToInstanceType dev InstanceType t nano test InstanceType t micro prod InstanceType t smallResources WebAppInstance Type AWS EC Instance Properties AvailabilityZone Ref AvailabilityZone ImageId Ref AmiID InstanceType FindInMap EnvironmentToInstanceType Ref EnvironmentType InstanceType KeyName Ref KeyPairName SecurityGroupIds Ref WebAppSecurityGroup WebAppSecurityGroup Type AWS EC SecurityGroup Properties GroupName Join webapp security group Ref EnvironmentType GroupDescription Allow HTTP HTTPS and SSH inbound and outbound traffic SecurityGroupIngress IpProtocol tcp FromPort ToPort CidrIp IpProtocol tcp FromPort ToPort CidrIp IpProtocol tcp FromPort ToPort CidrIp WebAppEIP Type AWS EC EIP Properties Domain vpc InstanceId Ref WebAppInstance Tags Key Name Value Join webapp eip Ref EnvironmentType Outputs WebsiteURL Value Sub http WebAppEIP Description WebApp URLWe ve added parameters for AvailabilityZone EnvironmentType AmiID and KeyPairName AvailabilityZone will pull from AWS EC AvailabilityZone Name EnvironmentType will be one of dev test or prod and default to dev The ImageId will be an AWS SSM Parameter ValueAWS EC Image Id type By using the public parameter aws service ami amazon linux latest amzn ami hvm x gp it will use the region specific AMI the value of which is stored in the AWS Systems Manager Parameter Store In this case we ll rely on the default value And the KeyPairName is the name of an existing key pair The other section we ve added is the Mappings section We ll use the EnvironmentToInstanceType mapping to lookup the instance type for the selected environment You can update the stack with this command passing in the parameter values aws cloudformation update stack stack name ec example template body file ec yaml parameters ParameterKey AvailabilityZone ParameterValue us east a ParameterKey EnvironmentType ParameterValue dev ParameterKey KeyPairName ParameterValue jennaNow it will be easier to reuse this template for other environments and in other regions Wrapping Up Delete Your StackDon t forget to delete your stack so you don t accrue charges You can do that with the delete stack command aws cloudformation delete stack stack name ec example What You LearnedIn this post we created a CloudFormation template that provisions an EC instance in any region for your different environments enables SSH HTTP and HTTPS inbound traffic and we assigned a static IP address to the instance We created and updated the stack from the command line using the AWS CLI You can grab the final CloudFormation template created here In the next post we ll add an Amazon RDS Postgresql database to our template and configure it for traffic from the EC instance Like what you read Follow me here on Dev to or on Twitter to stay updated |
2021-06-21 16:12:04 |
Apple |
AppleInsider - Frontpage News |
'Ted Lasso' mugs, stickers, clothing now on sale |
https://appleinsider.com/articles/21/06/21/ted-lasso-mugs-stickers-clothing-now-on-sale?utm_medium=rss
|
x Ted Lasso x mugs stickers clothing now on saleWarner Bros one of the co producers of Ted Lasso for Apple TV has launched a range of merchandise in time for the show s second season Ted Lasso merchandise is now on saleAs recently teased by Ted Lasso showrunner Bill Lawrence merchandise for the hit comedy has now gone on sale Some items ranging from personalized AFC Richmond jerseys to mugs water bottles stickers are now available Read more |
2021-06-21 16:55:00 |
Apple |
AppleInsider - Frontpage News |
TerraMaster TD2 and D5 Thunderbolt review: Good hardware, bad software |
https://appleinsider.com/articles/21/06/21/terramaster-td2-and-d5-thunderbolt-review-good-hardware-bad-software?utm_medium=rss
|
TerraMaster TD and D Thunderbolt review Good hardware bad softwareThe TerraMaster TD and D Thunderbolt are well engineered desktop hard drive enclosures that can expand your Mac s desktop storage ーbut the price you pay for what you get isn t where it needs to be The TerraMaster D left and TD right Media professionals who deal with high file capacities such as video editors are likely to find their Mac mini or MacBook Pro s internal capacity filling up quickly There have very nearly always been external enclosures for hard drives to bolster that capacity Read more |
2021-06-21 16:16:19 |
Apple |
AppleInsider - Frontpage News |
Prime Day 2021 deals for Apple fans: best discounts knock up to 97% off |
https://appleinsider.com/articles/21/06/21/prime-day-2021-deals-for-apple-fans-best-discounts-knock-up-to-97-off?utm_medium=rss
|
Prime Day deals for Apple fans best discounts knock up to offAmazon Prime Day deals are officially live with some of the year s steepest savings on Apple hardware smart home gadgets and accessories going on now Save up to instantly Prime Day deals are live and this year s discounts include bonus savings on TVs headphones M hardware and more Check out our roundup of the best discounts with more deals added as they launch throughout the hour shopping event Apple hardware Read more |
2021-06-21 16:31:40 |
海外TECH |
Engadget |
The best deals on robot vacuums and smart home gadgets for Prime Day |
https://www.engadget.com/amazon-prime-day-2021-best-robot-vacuum-smart-home-tech-deals-162016277.html?src=rss_b2c
|
amazon |
2021-06-21 16:20:16 |
海外TECH |
WIRED |
42 Best Amazon Prime Day Deals for $50 or Less (Updated) |
https://www.wired.com/story/best-prime-day-deals-under-50-2021-1
|
amazon |
2021-06-21 16:01:00 |
ニュース |
ジェトロ ビジネスニュース(通商弘報) |
顔認証による航空機搭乗手続きの試験的運用を開始 |
https://www.jetro.go.jp/biznews/2021/06/254b29a148508407.html
|
搭乗手続き |
2021-06-21 16:40:00 |
ニュース |
ジェトロ ビジネスニュース(通商弘報) |
タイ政府、EUとのFTA交渉再開を目指す |
https://www.jetro.go.jp/biznews/2021/06/9256e8a53f57b491.html
|
政府 |
2021-06-21 16:30:00 |
ニュース |
ジェトロ ビジネスニュース(通商弘報) |
チュラロンコン大学発バイオ・スタートアップなどが技術を紹介 |
https://www.jetro.go.jp/biznews/2021/06/416738555f903d74.html
|
技術 |
2021-06-21 16:20:00 |
ニュース |
ジェトロ ビジネスニュース(通商弘報) |
第1四半期GDP成長率は1.0%、農業と工業が堅調もサービス業低迷 |
https://www.jetro.go.jp/biznews/2021/06/fcda776dcf2f20e5.html
|
農業 |
2021-06-21 16:10:00 |
ニュース |
BBC News - Home |
Covid: 19 July 'looking good' for end of lockdown, says PM |
https://www.bbc.co.uk/news/uk-57552793
|
rough |
2021-06-21 16:27:52 |
ニュース |
BBC News - Home |
DUP leadership: Sir Jeffrey Donaldson confirms bid for top job |
https://www.bbc.co.uk/news/uk-northern-ireland-57547591
|
donaldson |
2021-06-21 16:41:18 |
ニュース |
BBC News - Home |
Contaminated blood inquiry: The school where dozens of pupils died |
https://www.bbc.co.uk/news/uk-57547366
|
decades |
2021-06-21 16:04:12 |
ニュース |
BBC News - Home |
Covid-19: PM confident about 19 July unlocking, and Wales fans not allowed to travel |
https://www.bbc.co.uk/news/uk-57557150
|
coronavirus |
2021-06-21 16:11:30 |
ニュース |
BBC News - Home |
James Michael Tyler: Friends' Gunther reveals cancer diagnosis |
https://www.bbc.co.uk/news/entertainment-arts-57551850
|
prostate |
2021-06-21 16:30:01 |
ニュース |
BBC News - Home |
Covid vaccine: How many people in the UK have been vaccinated so far? |
https://www.bbc.co.uk/news/health-55274833
|
covid |
2021-06-21 16:36:35 |
ビジネス |
ダイヤモンド・オンライン - 新着記事 |
中国、アントや国内行に仮想通貨取引の取り締まり指示 - WSJ発 |
https://diamond.jp/articles/-/274692
|
仮想通貨 |
2021-06-22 01:17:00 |
北海道 |
北海道新聞 |
久々ビアガーデン 札幌など酒類提供可能に |
https://www.hokkaido-np.co.jp/article/558209/
|
新型コロナウイルス |
2021-06-22 01:18:00 |
北海道 |
北海道新聞 |
五輪会場での酒類販売を容認へ 組織委、時間帯など制限か |
https://www.hokkaido-np.co.jp/article/558208/
|
東京五輪 |
2021-06-22 01:06:00 |
コメント
コメントを投稿