IT |
気になる、記になる… |
「Windows 11」のSKUが明らかに |
https://taisy0.com/2021/07/08/142805.html
|
bluetooth |
2021-07-08 10:54:44 |
TECH |
Engadget Japanese |
ノイキャン搭載で99ドル。元OnePlus創業者の無線イヤホンEar (1)は超お買い得機に |
https://japanese.engadget.com/no-thing-ear-1-101533183.html
|
carlpei |
2021-07-08 10:15:33 |
TECH |
Engadget Japanese |
さっと広げてどこでも快適にくつろげる。持ち運び便利な「インフレータブル・エアーベッド」 |
https://japanese.engadget.com/inflatable-air-bed-101012573.html
|
持ち運び便利な「インフレータブル・エアーベッド」秒で簡単に作れる女性でも簡単に作れる設計【インフレータブル・エアーベッド】は人間工学に基づいたデザイン設計で快適な寝心地を提供します。 |
2021-07-08 10:10:12 |
ROBOT |
ロボスタ |
永遠の命を巡る壮絶な戦いを描くSF映画『SEOBOK/ソボク』7/16公開 予告動画MCに林原めぐみ クローン/サイコキネシス/戦争の火種/人類の業・・ |
https://robotstart.info/2021/07/08/seobok.html
|
seobok |
2021-07-08 10:00:58 |
IT |
ITmedia 総合記事一覧 |
[ITmedia News] 中央省庁の情報漏えい件数、「このままなら21年は過去2番目の被害規模」 テレワーク推進が背景か |
https://www.itmedia.co.jp/news/articles/2107/08/news150.html
|
itmedia |
2021-07-08 19:50:00 |
IT |
ITmedia 総合記事一覧 |
[ITmedia ビジネスオンライン] グーグル、pring買収で国内金融本格参入か? |
https://www.itmedia.co.jp/business/articles/2107/08/news149.html
|
最終調整 |
2021-07-08 19:28:00 |
IT |
ITmedia 総合記事一覧 |
[ITmedia ビジネスオンライン] 上半期の動画配信ランキング 3位『進撃の巨人』、2位『鬼滅の刃』、1位は? |
https://www.itmedia.co.jp/business/articles/2107/08/news144.html
|
itmedia |
2021-07-08 19:26:00 |
IT |
MOONGIFT |
LANDrop - マルチプラットフォームで使えるAirdrop代替 |
http://feedproxy.google.com/~r/moongift/~3/9wyiGq-tleI/
|
LANDropマルチプラットフォームで使えるAirdrop代替パソコンやスマートフォンでファイルを送受信し合うのは意外と面倒です。 |
2021-07-08 21:00:00 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
GAS Line Massaging Api if文の後に計算をして結果を表示させたい |
https://teratail.com/questions/348437?rss=all
|
現在GASにてline用のbotを作っているのですが、if文を使用し、特定のメッセージに特定のメッセージを返信→数値を入力すると自動で計算し、結果をメッセージとして送信するというプログラムを作成したいのですが、特定のメッセージを返信した後の記述方法が分からなく行き詰ってしまいました。 |
2021-07-08 19:58:48 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
spring security BCryptPasswordEncorderのエラーがわからない |
https://teratail.com/questions/348436?rss=all
|
springsecurityBCryptPasswordEncorderのエラーがわからないspringnbspbootnbspのspringnbspsecurityの中で、BCryptPasswordEncordeという、パスワードをハッシュ化してくれるメソッドがありますが、プロジェクト実行時に現れるエラーメッセージ、EncodednbsppasswordnbspdoesnbspnotnbsplooknbsplikenbspBCryptというのは何が原因で表示されるのでしょうか。 |
2021-07-08 19:56:50 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
ブラックジャック作成について |
https://teratail.com/questions/348435?rss=all
|
ブラックジャック作成について前提・実現したいことブラックジャックの作成に挑んでいますが、コンソール上の表記がおかしいのでどのようにしたら改善されるか教えていただきたいです。 |
2021-07-08 19:39:17 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
月をまたいでいる場合の月ごとの合計を算出 |
https://teratail.com/questions/348434?rss=all
|
月をまたいでいる場合の月ごとの合計を算出Rを使っているものです。 |
2021-07-08 19:38:49 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
計算が終わりません(結果が出ない) |
https://teratail.com/questions/348433?rss=all
|
|
2021-07-08 19:37:26 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
firestoreに登録ずみのデータをreactで表示したい。 |
https://teratail.com/questions/348432?rss=all
|
firestoreに登録ずみのデータをreactで表示したい。 |
2021-07-08 19:27:05 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
Vue-Router ESLinter入れたらエラーになる |
https://teratail.com/questions/348431?rss=all
|
VueRouterESLinter入れたらエラーになる前提・実現したいこともともと動いていたVueアプリをWebpackでコンパイルするように書き直したところ、VueRouterでエラーが出てしまい動かなくなってしまいました。 |
2021-07-08 19:23:36 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
chainer利用時に起こったTypeError: 'NoneType' object is not iterableを解決したい |
https://teratail.com/questions/348430?rss=all
|
chainer利用時に起こったTypeErrorxNoneTypexobjectisnotiterableを解決したい画像認識プログラミングレシピという本でchainerについて学習しております。 |
2021-07-08 19:20:34 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
C# HTTPリクエストにてJSONのレスポンスを行う。 |
https://teratail.com/questions/348429?rss=all
|
CHTTPリクエストにてJSONのレスポンスを行う。 |
2021-07-08 19:18:16 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
Reducerで遭遇した[配列]:{オブジェクト}はどう展開される?? |
https://teratail.com/questions/348428?rss=all
|
|
2021-07-08 19:17:28 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
c言語の課題が解けなくて困っています |
https://teratail.com/questions/348427?rss=all
|
c言語の課題が解けなくて困っています大学で出された課題が解けなくて困っています。 |
2021-07-08 19:13:29 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
セグメンテーション結果の評価について |
https://teratail.com/questions/348426?rss=all
|
|
2021-07-08 19:11:07 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
ホームページ内のポップアップへの直リンク |
https://teratail.com/questions/348425?rss=all
|
|
2021-07-08 19:10:32 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
VuforiaでARマーカーを認識時に映像をランダムで再生する方法 |
https://teratail.com/questions/348424?rss=all
|
VuforiaでARマーカーを認識時に映像をランダムで再生する方法前提・実現したいこと初めまして。 |
2021-07-08 19:03:50 |
Ruby |
Rubyタグが付けられた新着投稿 - Qiita |
[Rails] renderで他のコントローラーのアクションを引っ張ってくる |
https://qiita.com/minhee/items/ae1b1f6eeaf408ac8fb6
|
renderで違うコントローラを呼び出すcreateアクションが記述されているのはprogressesコントローラーですが、renderで呼び出したいのはtextbooksコントローラのshowアクションです。 |
2021-07-08 19:36:32 |
Ruby |
Rubyタグが付けられた新着投稿 - Qiita |
each_consの使い方 |
https://qiita.com/ShogoSonoda/items/da54b89b8fd62d81eddb
|
eachconsvpvgt |
2021-07-08 19:32:02 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
[SAA資格勉強]1発目不合格でも2回目で合格するまで |
https://qiita.com/yublue011/items/cf81f529255241c4c5fc
|
意識したことソリューションアーキテクトを受験する中で意識したことは、問題文で何が求められているのか汲み取る問題で操作できるものは、コンソール画面でやってみる。 |
2021-07-08 19:01:08 |
Ruby |
Railsタグが付けられた新着投稿 - Qiita |
[Rails] renderで他のコントローラーのアクションを引っ張ってくる |
https://qiita.com/minhee/items/ae1b1f6eeaf408ac8fb6
|
renderで違うコントローラを呼び出すcreateアクションが記述されているのはprogressesコントローラーですが、renderで呼び出したいのはtextbooksコントローラのshowアクションです。 |
2021-07-08 19:36:32 |
海外TECH |
DEV Community |
A Brief Introduction To Supabase With JavaScript |
https://dev.to/rahulshawdev/a-brief-introduction-to-supabase-with-javascript-3l19
|
A Brief Introduction To Supabase With JavaScript INTRODUCTIONSupabase is The Open Source Firebase Alternative that makes it easy to create a backend for your project in less than minutes So today we will be talking about how to implement supabase auth and database in your project We are going to use Vite as our frontend build tool If you don t know anything about Vite I ll suggest you read my blog about Vite What is SupabaseSupabase is an open source Firebase alternative Its features are Listen to database changes Query your tables including filtering pagination and deeply nested relationships like GraphQL Create update and delete rows Manage your users and their permissions Interact with your database using a simple UI I m not saying that it is better than firebase or it is an exact copy of firebase It both has difference like firebase uses NoSQL as its database but supabase uses PostgreSQL PostgreSQL is an object relational database system with over years of active development that has earned it a strong reputation for reliability feature robustness and performance Enough about Supabase let s talk about how to setup up and use it in your project Setup Vite amp TailwindWe are going to use Vite for building our app and Tailwind CSS for styling our mini project because I believe that making a project with Supabase will make you understand better than talking about it If you are using VS Code as your code editor then I will suggest you install the Tailwind CSS Intellisense extension from VS Code marketplace Copy the below command and paste it into your terminal for creating a Vite app npm init vitejs appGive the name of your project and choose vanilla js as it is a mini project And then change your directory to that folder and install all the modules cd your project name npm installnpm run devThen install Tailwind CSS by following the steps npm install D tailwindcss latest postcss latest autoprefixer latestAfter installing Tailwind paste the following command to generate tailwind config js amp postcss config js files automatically npx tailwindcss init pThen add the following commands in style css file Tailwind will start working perfectly tailwind base tailwind components tailwind utilities I m not going to talk much about Tailwind as it is a Supabase blog Maybe in the future I may create a blog talking about Tailwind Setup Supabase DatabaseIn order to set up Supabase Database in your project visit Supabase official page and sign in Then click on Start Project After clicking on Start Project you will redirect to Supabase Dashboard where you can manage your projects Click on New Project to start a new project After that give your project a name and a password Then click on Create New Project Then you will be redirected to a page where it will be showing that the database and API are building so give it some time After that you will be redirected to your project s dashboard where you can use the database auth and many more features Then click on Create a new table to start working with the database After that fill up the details of your table as I have done below Then Click on New Column and there you can make columns Click on Insert Row and then a sidebar will appear to give the details of your blog In the below image I have filled in with some example blogs for learning purposes So in order to extract this data in your javascript file we need to install only one extra dependency npm install supabase supabase jsNow create the env file in your project s directory and copy your anon key and supabase URL and paste it in your env file as I have done below VITE SUPABASE URL YOUR SUPABASE URLVITE SUPABASE ANON KEY YOUR SUPABASE ANON KEYAfter that create a supabase js file in your project s directory and paste the following commands import createClient from supabase supabase js const supabaseUrl import meta env VITE SUPABASE URLconst supabaseAnonKey import meta env VITE SUPABASE ANON KEYexport const supabase createClient supabaseUrl supabaseAnonKey Now Supabase has been successfully installed in your local machine Next we are going to make a mini project with the database Mini Blog ProjectIn this Mini Blog project we will be extracting data from Supabase and adding it to our website Also we will be seeing how you can data into your database using the form Copy the index html and main js files and run them on your machine lt DOCTYPE html gt lt html lang en gt lt head gt lt meta charset UTF gt lt link rel icon type image svg xml href favicon svg gt lt meta name viewport content width device width initial scale gt lt title gt Vite App lt title gt lt head gt lt body gt lt div class p gt lt div id blogs class mb gt lt div gt lt form id form gt lt input class border border black mb type text placeholder Title of the blog id title gt lt br gt lt textarea class border border black mb placeholder Description of the blog id content gt lt textarea gt lt br gt lt button class bg blue p text white type submit gt Submit lt button gt lt form gt lt div gt lt script type module src main js gt lt script gt lt body gt lt html gt Here const data error await supabase from blogs select gets all the data from supabase and const data error await supabase from blogs insert title title value content content value insert the data into our table import style css import supabase from supabase const blogsContainer document getElementById blogs const form document getElementById form const title document getElementById title const content document getElementById content const useData async gt const data error await supabase from blogs select gets the data from supabase let html data forEach blog gt html lt div data id blog id gt lt h class text xl gt blog title lt h gt lt p gt blog content lt p gt lt div gt blogsContainer innerHTML html window addEventListener DOMContentLoaded useData form addEventListener submit async e gt e preventDefault const data error await supabase from blogs insert title title value content content value insert data into supabase useData The Code is nothing too fancy and very beginner friendly So you can see how easy it is to use Supabase Database Now we are going to create a mini authentication project with supabase Mini Auth ProjectIn this Mini Auth project we will be signing up users Before jumping on the code we need to do a little setting So Supabase automatically allows email confirmations For Example If you sign up with supabase then supabase will send you a confirmation message on your email But we don t want that in this project so to disable it go to your supabase project s database and click on the authentication icon and then click on Settings you can see that there is an option for disabling email confirmations so simply click on it Then just copy the index html amp main js code and run it on your machine lt DOCTYPE html gt lt html lang en gt lt head gt lt meta charset UTF gt lt link rel icon type image svg xml href favicon svg gt lt meta name viewport content width device width initial scale gt lt title gt Vite App lt title gt lt head gt lt body gt lt div class p gt lt div gt lt h class text xl text center mb gt Sign Up lt h gt lt div gt lt form id form gt lt input class border border black mb p type email placeholder Email Address id email autocomplete off gt lt br gt lt input type password placeholder Password id password class border border black mb p gt lt br gt lt button class bg blue p text white type submit gt Submit lt button gt lt form gt lt div gt lt script type module src main js gt lt script gt lt body gt lt html gt Here const user session error await supabase auth signUp email email value password password value signUp users NOTE IF YOU ARE NOT DISABLING EMAIL CONFIRMATION THEN THE SESSION VALUE WILL BE NULLimport style css import supabase from supabase const form document getElementById form const email document getElementById email const password document getElementById password form addEventListener submit async e gt e preventDefault const user session error await supabase auth signUp email email value password password value console log user session error form reset After submitting the form you can see in your project s auth dashboard that the user has been added CONCLUSIONSo I m going to end this pretty lengthy blog by saying that give Supabase a try I promise you ll not regret it And also learn many more things like storage function etc from Supabase s documentation because that s where you will learn things more than any blog or youtube video will teach you So that s it for today if you have any problems or if I made any mistake feel free to comment it down And also comment on what topic should I write on next |
2021-07-08 10:38:46 |
海外TECH |
DEV Community |
GraphCMS + Nuxt.js - Vote Your Favourite Tech Courses |
https://dev.to/codeloungedev/graphcms-nuxt-js-vote-your-favourite-tech-courses-2efl
|
GraphCMS Nuxt js Vote Your Favourite Tech CoursesIn this tutorial you are going to build a voting application for tech courses The voting application allows people to vote courses from tech so people can find quality courses If you like a course and think it s a quality course you can upvote it The more upvotes a course has the higher it appears on the page To build the application you will use GraphCMSNuxt jsTailwindCSSWithout further ado let s start building the application About GraphCMSGraphCMS is the first GraphQL native Headless CMS It aims to eliminate the pain points of traditional content management by leveraging the power of GraphQL Let s see how GraphQL aims to do that Some of the most notable features of GraphCMS are as follows it has a single GraphQL endpoint that supports queries and mutations it comes with an excellent user interface You can use it to build configure and maintain the backend of your application through their UI it has content localization That means you can localize and translate content into any language it supports environments on paid plans which allows you to work on new features in isolation and then promote that to the main environment intelligent edge caching which means that your query responses are cached across edge points of presence around the world These are just a handful of features to convince you of its power However you can read more about GraphCMS and its features here In a nutshell you can use GraphCMS as a database or content management system as can be inferred from the name Create a GraphCMS accountThe first step of the tutorial is to create a GraphCMS account so you can use it Go to the GraphCMS website and click on the Sign up link See figure below for reference Figure After that it takes you to the registering page On sign up page you can register with the following using your Facebook accountwith your GitHub accountusing your Google accountwith your email a password and a nameYou can use any method that fits your needs In my case I registered using my GitHub account Figure Figure illustrates the signup page Before choosing your preferred signup method tick the box that says you agree to their terms and policies Lastly click on the Sign up button After that you are done You should see the page from figure below If you want to take their tour click on the Start tour button If not skip straight to overview Figure That s how you create a new GraphCMS account If you click on Skip to overview as shown in figure you are taken to the page where you can create a new project or choose from the existing starter projects Thus the next step is to create and configure the voting application for tech courses Project structureThe project stores courses in tech alongside their authors Thus you will have two models a model for coursesa model for authorsAlso there will be a many to many relationship between the two For example a course can have multiple authors and authors can have multiple courses With that out of the way let s start building the project Create the projectAfter creating the account you are taken to a new page where you can create your new project Figure It s important to note that you can choose from their starter projects However for this tutorial you will create a new project To create a new project click on the button which says From Scratch Figure above illustrates that Clicking on the button takes you to a new page where you need to add a name and a description for your projectchoose your preferred CDNIn figure below you can see the name and description for this project Also you can see that I choose the data center from Europe Frankfurt Figure Once you fill in all the details click on the Create Project button from the bottom of the page In figure you cannot see it but you should see it on your page After creating the project you are taken to the pricing page which you can see in figure You have four options to choose from For this tutorial you only need the free version though It s more than enough for most side projects Figure Choose the free forever plan After selecting the plan you are taken to a new page where you can invite team members However you do not have any team members at the moment so click on Invite later at the bottom of the page Now you are done and ready to configure your application You can see the project dashboard below in figure Figure Let s move onto the next step which is creating the models Create the modelsThe next step is to create the models When you create the models you describe how your data is structured For instance you need a schema for courses and one for authors From the project dashboard click on the option saying Set up your schema See figure below for reference Figure After clicking on the option you are taken to a new page to create models for your data For instance you will create the model for courses Click on the button saying Create Model as shown in figure Figure The next step is to create the model Then all you need to do is to choose a name and a description for your model For this example the display name for the model is Course Once you enter the display name the API ID and Plural API ID fields update automatically Thus you can leave them as they are Lastly enter a description of your model After you entered all the details click on the button saying Create Model In figure you can see an example of setting the Course model Figure After you create the model you have an empty model for the Course As an exercise create the model for the Author Go to the Schema page and then click on the Add button on the left hand side See figure below for reference Figure After you click on the add button you can create the Author model as you created the Course model Figure below illustrates the settings for the Author model Figure The next step is to configure the models by adding fields Configure the Course modelOnce the model is created you need to add the fields The fields describe what you store about courses For instance you would need a name and a description at the minimum Once you create the model you can access the page dedicated to it From that page you can add and remove fields Figure illustrates that Figure For this tutorial the Course model will have the following fields namedescriptionauthorslinkvotesIf you look at figure above you can see that you can select fields from the right hand side of the page You can create fields such as multi line textmarkdownrich text editornumberAnd many more Name fieldLet s start by adding the name field Start by clicking on the single line text field Once you click on that field a new box will appear which you can see in figure Figure You need to specify the name the API ID and the description for this field You can use the same details like the ones in figure or you can use yours Also you might want to display the field s value instead of the ID in relations so check the field saying Use as title field Before moving on go to the Validations tab and make the field required That means the name field cannot be empty See figure for reference Figure Once you finish configuring the name field click on the Create button After you create the field you should see it in your dashboard Description FieldThe next step is to create the description field Since the description is more complex than the name field let s choose the Markdown field Click on the Markdown field and the pop up from figure should appear As usual choose a name an API ID and a description for your field Figure As a validation let s make the field required and let s also add a character count between and words Thus a course cannot be added to the database if the description is emptythe description has less than words or more than wordsSee figure which illustrates the validations Figure Now click the button to create the field At this point you should have two fields and you should see them in your dashboard Vote fieldThe Vote field is of type number Thus go to the right hand side and click on the Number field Figure illustrates the information for this field However for this field you need some validations and also a starting value Figure Go to the Validations tab and make the field required You can mark this field as required by following the same steps you followed for other steps To avoid repetitions I did not include an image since it s the same thing Now go to the Advanced tab and check the option saying Set initial value Set the initial value to so the votes for all courses start from See figure below for reference Figure Create the field and it should appear in the dashboard URL fieldFor the URL field you can simply use the Single line text field Figure shows the basic configuration for the URL field It follows the same pattern as the other fields Figure Also let s make the field required Then go to the Validations tab and check the option that makes the field required Moreover you want to avoid malicious or invalid URLs Thus enable the option saying Match a specific pattern With the option active the application only accepts URLs that match a specific regular expression Figure below illustrates that Figure If you go to the dashboard you should be able to see all the fields you created Figure illustrates how your dashboard should look Figure Before configuring the author field and creating the relationship let s configure the Author model Configure the Author modelFor the author model you might be interested in the following fields full nameshort biographysocial media links such as Twitter profileAt this point you should be familiar with field types Thus the fields will have the following types Single line text for the full nameMulti line text for the short biographySingle line text for the Twitter profileWhen it comes to validation rules for the fields the following applies to all of them all fields are required each author should have a name a short biography and a Twitter profileall fields should be unique no two authors should have the same name biography or Twitter profile From the schema dashboard select Single line text to create the full name Figure illustrates the details for this field Figure In figure below you can see the validations used for this field and the others Figure The next step is to add the biography field Then from the right hand side sidebar choose the Multi line text field Once you click on it a new pop up appears You can see the details for this field in figure Figure The biography field has an extra validation rule You do not want authors to have an empty bio or a words bio Thus you can limit the character count between and words Figure illustrates how you can limit the character count You can also see that you can customize the error message Thus you can add a descriptive error message that will help rather than confuse the user Figure Lastly you need to set the field for the Twitter profile URL From the sidebar select the Single line text field and add a display name API ID description and validations In figure below you can see the settings for the Twitter profile URL field Figure As usual you make the field required and unique Thus people cannot add authors without a Twitter profile or with a duplicate Twitter profile Moreover you want to avoid malicious or invalid URLs Therefore you can tick the checkbox for the Match a specific pattern feature See figure below for reference Figure You finished configuring the Author model as well If you look at your dashboard you should see the fields you created Figure below illustrates that Figure Now that you have both models configured it s time to create a relationship between them So that s what you will do in the next step Create the relationshipBefore you can use the application the last step is to create the many to many relationship between the Course and Author models To recap a course can have multiple authors and authors can have multiple courses The video below shows how to create the relationship between course and author The first step in creating the relationship is to select the Reference field from any of the models The Reference field allows you to create different types of relationships between models Once you click on the field a new pop up appears where you can define the relationship First of all you select the model to reference Then you have a dropdown box from where you can choose the model After that you can create the relationship in two ways you can tick untick the checkboxes based on your needs The relationship updates automatically as you tick untick checkboxes you can click on the dropdown to select the relationship you want Figure illustrates both options Figure After that you can configure the reference and reverse fields They are pre configured for you but you can use custom options if you want For this tutorial the pre configured details are enough Lastly press the Create button to create the relationship As you can see in the video above the relationship is created Add contentBefore you can test and use the application you need to add content With GraphCMS you can seamlessly add content from the user interface Alternatively you can do it programmatically Thus you have two options when it comes to adding content To create content click on the pen icon as shown in figure Alternatively you can click on the second option from the Your quick start guide section See figure for reference Figure Clicking on any of the two options takes you to a new page where you can add authors and courses Figure shows the page where you can add content On the left hand side you can select the type of content you want to add For instance if you want to add a new author select the Author from the column Once you decide what type of content you want to add click on the button saying Create Item Figure After that you can create a new piece of content In figure you can see an example of creating an author There are all the fields you added when you configured the model Also at the bottom you can see that you can add existing courses or you can create and add a new course Thus you can link an existing author and a course For the time being save and publish the author because you ll link the author and the course after creating a course Figure At this point you should have the first piece of content an author Well done You will follow the same steps to add a course On the left hand side click on the Course option Then click again on the button saying Create Item See figure for reference When the new page opens feel free to add your course details or you can use the same information like the ones from figure At the bottom you can see that you can add authors for your courses Since you created an author in the previous step let s add an author Click on Add existing Authors Figure Once you click on the button a new pop up appears where you can select the authors you want to add For example in figure below you can see the author you created earlier Select the author by ticking the box as highlighted in the image After that add the author by clicking on the button Add selected Author Figure After that you should see the author embedded into your course Then finally you should see something similar to figure Now click on the green button Save and publish to create the relationship The author and the course are linked now Figure Now that you are done with creating and configuring the application you can play around with it Query and mutate dataGraphCMS has an integrated GraphQL playground That means you can read and edit existing data or add new data Thus to access the playground go to the project s dashboard and then click on the play icon as shown in figure below Figure Once you get to the playground you can either write queries and mutations manually or you can use the explorer Using the explorer you can build queries and mutations interactively After you click on the button and the GraphQL playground opens you can start playing with the data Figure shows the playground page Figure Let s start writing some GraphQL queries The first GraphQL query shows all the courses and the authors You can see all the details about each course and the information on each course author See the query below query Courses courses name description publishedAt url vote authors name biography twitterProfile The following query shows all the authors alongside the courses they created It retrieves all the details about the authors and their courses Copy the following query into the playground query Authors authors name biography twitterProfile courses name url vote description The interactive builder makes it seamless to create queries For example in the video below you can see I build the two queries with the GraphCMS explorer Moreover you can use mutations That means you can add and edit existing data from your application or delete data If you scroll at the bottom of the Explorer tab you can see an option saying Add New Mutation After you click on that option you will see all the available mutations in the Explorer tab For example you can create a new course with the following mutation mutation CourseCreation createCourse data name Test Course description Add a longer description vote url id name It s important to remember that you added validations for some fields such as the description Thus you need to add a longer description than the one from the example After that you can successfully add the new course to the application Alternatively you can remove a course To delete a course or an author you need to pass the course s id or the author to the deleteCourse The mutation below shows how you can achieve that mutation CourseDeletion deleteCourse where id ckqgwiskoczxw id name To create an author is similar to creating a course except there are different fields The mutation below shows how to do it mutation AuthorCreation createAuthor data name Test Author biography A short biography twitterProfile twitter testauthor id name Below in the video you can see the following mutations adding and deleting a courseadding and deleting an authorThe Explorer option from GraphCMS is super handy and it makes the process of creating queries and mutations straightforward Now that you have seen examples of queries and mutations in this tutorial go and explore others as well Play around and add new data or modify existing data The next step is to set the access to the API so you can use it from your frontend application Set the API accessAccording to the GraphCMS documentation queries and mutations by default require a Permanent Auth Token token Thus before you can use the API in your application you need to set the permissions Go to the project dashboard and click on any of the two options highlighted in figure below Figure After you click on any of the options a new page opens where you can configure the API access On the new page you should see the following information content and management APIscontent API permissionspermanent Auth tokens Permissions for unauthenticated usersIf you scroll at the bottom of the page you will see the Public Content APIand Permanent Auth Tokens With the Public Content API you set the permissions for unauthenticated users For unauthenticated users you probably only want read access That means the unauthenticated users can only read the data Thus from the Public Content API you can click on the button Yes initialize defaults as highlighted in figure As shown in figure the default permissions only allow unauthenticated people to read data Figure After you click on the button the default permissions are applied and you are ready to set the permissions for authenticated users Create auth tokenAccording to the GraphCMS documentation Permanent Auth Tokens are used for controlling access to querying mutating content and comes in the form of Bearer token authentication To create a new token for your application click on the button saying Create token at the bottom of the page Figure Once you click on the create token button a new pop up appears From the pop up you can create a new token You will be prompted to enter a name a description and the default stage for content delivery You want users to have access only to the published data so leave the default option Published Figure illustrates the pop up where you configure your token Figure Permissions for authenticated usersAfter creating the token it takes you to the token dashboard to configure the permissions On the new page you should see the following information your token namethe token descriptiontoken valuethe content APIthe management APIAt the moment you are only interested in the content API The content API permissions specify what can be done with the data Figure Let s create some permissions To create new permissions click on the button saying Create permission as shown in figure above Once you click on the create permission button a new pop up appears from where you can configure your models There are two important steps from the Model dropdown select each model individually Do not leave the default option All because there are other models created by the system Create the permissions for each model individually tick the Publish and Unpublish options You need to be able to publish courses for the voting functionality Lastly you want to be able to read create edit and delete data Thus tick the appropriate boxes Figure illustrates the process of creating the permissions Mind you that in the figure no model is selected Therefore when you create the permissions you should do it individually for each model Figure After you follow all the steps and create the permissions you should see them in your dashboard For example your dashboard should look like the one from figure below Figure Now that you have an endpoint and the permissions set up you are ready to build the frontend part How to get your endpoint and auth tokenThis is the last step before building the frontend I promise In this step you will gather all the information needed such as the endpointand your tokenThe first step is to go to the settings as shown in figure below Click on the sliders Figure After you click on the settings you are taken to another page From there click on the API Access option from the left hand sidebar as highlighted in figure below After that you should see your endpoints Then copy the Content API highlighted in figure below Figure Lastly scroll at the bottom of the page and you should see a section called Permanent Auth Tokens Once you see it click on the token to copy it as shown in figure below Figure Now that you have the endpoint and auth token you can use the GraphCMS application from outside for example from a JavaScript framework such as Nuxt Create and configure Nuxt ApplicationFor the frontend you will use Nuxt js which is a Vue framework If you want to read more about it or see its benefits check their official website The first step is to create and configure the Nuxt application Go to your terminal and run the following command npx create nuxt app voting appAfter you run the command you will get a series of questions that allows you to configure your project Figure illustrates the settings for this project You can use the same options or configure the project based on your needs Figure Once all the dependencies are installed you are ready to build the application But before that you need to clean it a little bit Thus open the directory with the following command cd voting appIf you go to the components folder you should see two components NuxtLogo vueTutorial vueDelete both of them The next step is to create new components Create the following components CourseCard vue gt As you can infer from the name this component is for creating a course card Each course from the database has its card CourseList vue gt This component renders all the courses from the database It also makes use of the CourseCard vue component to render each course Hero vue and Footer vueFigure below shows how the components folder should look Figure Manage environmental variablesBefore going further you need to set up the environmental variables which store sensitive information such as the GraphCMS Endpoint URLBearer TokenThe first step is to install the required package Go to the project s root directory and install the package dotenv as follows npm i nuxtjs dotenvOnce you have the package installed you need to register it Go to nuxt config js and add the module to the buildModules array Your build modules should look as follows buildModules nuxtjs eslint module nuxtjs tailwindcss nuxtjs dotenv The next step is to create the env file where you will add your sensitive information Create the env file in the root directory of the project You can do it as follows touch envNow open the file and add the following lines GRAPHCMS ENDPOINT BEARER Of course you need to add your information Add your GraphCMS Endpoint URL and the bearer token Before moving further you need to add the env file to gitignore so you do not make your sensitive information public Now you can access sensitive information such as process env GRAPHCMS ENDPOINTprocess env BEARERLet s move onto the next step which is about creating the GraphCMS Nuxt plugin GraphCMS Nuxt PluginBefore going further you need to add the GraphCMS plugin The GraphCMS client allows you to make requests to your GraphCMS database So first of all you need to create a new folder called plugins in the root directory of the project After that create a file called graphcms js inside the plugins folder Once you create both the directory and the file open graphcms js and add the following code import GraphQLClient from graphql request const graphcmsClient new GraphQLClient process env GRAPHCMS ENDPOINT headers authorization Bearer process env BEARER export default inject gt inject graphcms graphcmsClient The above code creates a new GraphQL Client instance and it passes your GraphCMS endpoint and the bearer token Thus you can use the graphcms client everywhere in your Nuxt js application Now that you have everything set up the next step is to build each component individually The application will not work until you build and use all components Thus only try to run it afterwards Build Hero vueThe first component is Hero vue This component only has two lines of text Open it and add the following piece of code lt template gt lt div class flex flex col items center text center mt gt lt h class text xl gt Vote lt span class font bold gt your favourite lt span gt tech courses lt h gt lt div class m text lg gt lt p gt Finding the right courses in tech is difficult so we make it easier lt p gt lt div gt lt div gt lt template gt Figure below illustrates what you will see when you run the application Figure Now go to pages gt index vue and delete everything that s inside the file Then add the following piece of code lt template gt lt div class relative flex flex col items top justify center min h screen bg gray sm items center sm pt gt lt Hero gt lt div gt lt template gt In the above code you use the newly created component Hero The next step is to build the course card component so you can display courses on the page Build CourseCard vueThe course card displays all the information about courses It shows the name the description and other details It also allows you to upvote a course Let s start by building the template Everything you see inside the moustache notation it s the data coming from the database lt template gt lt div class max w xl mx auto px sm px lg px flex flex row justify center gt lt div class mt bg white overflow hidden shadow sm rounded lg p gt lt h class text xl leading font semibold gt lt NuxtLink to id class hover underline gt name lt NuxtLink gt lt h gt lt p class mt font extralight italic text gray gt by authors toString lt p gt lt p class mt text gray italic gt excerpt lt br gt lt p gt lt div class flex flex col items center border t border dashed mt gt lt p class mt pt text gray font bold text xl tracking wider gt The course has lt code class bg gray text xl p rounded border gt newVote lt code gt votes lt p gt lt p gt lt button class bg white hover bg gray mt mb text gray font semibold py px border border gray rounded shadow click fetchData gt Vote lt button gt lt p gt lt div gt lt div gt lt div gt lt template gt In the second part of the component you describe the type of the props a method and a computed property The method fetchData allows users to upvote courses When the user clicks on the voting button the fetchData method is called and it makes a POST request to the database Then it increments the number of votes and returns the new value The endpoint upvote this id is a custom API endpoint created in Nuxt In the next section you will see how to do it Since mutating props is an anti pattern we created a new field called newVote You assign the value from the vote prop to this new property Also the property newVote is updated and displayed on the page when a user votes the course Lastly you have a computed property excerpt that only shows part of the description lt script gt export default props id type String required true name type String required true description type String required true url type String required true vote type Number required true authors type Array required true data return newVote this vote methods async fetchData const options method POST const upvoted await fetch upvote this id options then res gt res json this newVote upvoted votes computed excerpt return this description substring lt script gt Figure illustrates how the course card looks Also when you click on the course name it takes you to the course page Figure At this point you have the card for each course So the question is how do you loop over the list of courses and render them Custom API Endpoint For VotingNuxt js allows you to create custom API endpoints in your application For instance you can create an Express server inside your Nuxt application Nuxt js has a serverMiddleware property that allows you to use additional custom API routes without needing an external server If you want to read more about the serverMiddlware property I recommend the official documentation Thus the first step is to create a folder in the project s root directory Create a new folder called server middleware Then create a new file upvoteCourse js inside the directory The next step is to open the file nuxt config js and add the following line at the end of the file serverMiddleware server middleware upvoteCourse js Your file nuxt config js should look as follows export default Target target static Global page headers head title Vote Tech Courses htmlAttrs lang en meta charset utf name viewport content width device width initial scale hid description name description content name format detection content telephone no link rel icon type image x icon href favicon ico Plugins to run before rendering page plugins plugins graphcms js Auto import components components true Modules for dev and build recommended buildModules nuxtjs eslint module nuxtjs tailwindcss serverMiddleware server middleware upvoteCourse js Now you are ready to build the custom API endpoint for voting courses Open the file upvoteCourse js and import the following packages const express require express const GraphQLClient require graphql request First of all you need express to create the API endpoint Secondly you need graphql request to make GraphQL requests to the GraphCMS server After that you need to create an Express instanceuse the json middlewareAdd the following lines after importing the above packages const app express app use express json There is one more step before building the API endpoint You need to create a new GraphQL Client instance The GraphQL instance requires your GraphCMS Content API URL and the bearer token Add the following code const client new GraphQLClient process env GRAPHCMS ENDPOINT headers authorization Bearer process env BEARER At this point this is how your file upvoteCourse js should look like const express require express const GraphQLClient require graphql request const app express app use express json const client new GraphQLClient process env GRAPHCMS ENDPOINT headers authorization Bearer process env BEARER Now it s time to build the API endpoint Let s start with the function header app post upvote slug async req res gt You need to make asynchronous requests to the upvote slug endpoint Thus you need to use the POST method Since the slug is a dynamic value you need to retrieve it from the URL You can get the slug from the URL as follows app post upvote slug async req res gt const slug req params You access the params property on the request object After that you will do three actions in the method you get the course from the database using the slug which is the course IDincrement the votesre publish the courseThus you need one GraphQL query and two mutations You retrieve the course from the database with a query However to upvote and publish a course you need a mutation In the code snippet below you can see the query and the two mutations app post upvote slug async req res gt const slug req params const getCourse query getCourse slug ID course where id slug id vote name const upvoteCourse mutation voteCourse slug ID existingVotes Int updateCourse where id slug data vote existingVotes id name vote const publishCourse mutation publishCourse slug ID publishCourse where id slug id name vote You will use the query and mutations when you make the requests to the GraphCMS database Lastly you use the GraphQL client to make the requests The following request retrieves the course from the database const course await client request getCourse slug Once the course is returned from the database increment the number of votes and store it in a new variable const existingVotes course vote After that you upvote the course by making a request to the database and passing the slug and existingVotes which is the new incremented number const voteCourse await client request upvoteCourse slug existingVotes When you perform a mutation on the existing data it goes to the DRAFT stage That means the updated data is not visible on the frontend unless you publish it Thus you make another request to the server to publish the data You pass the slug so the database knows what course to update const publishedCourse await client request publishCourse slug Lastly after all the operations are successful you send a JSON response containing a messagethe updated number of votesres json message Course upvoted successfully votes publishedCourse publishCourse vote This is how the complete code for upvoteCourse js should be const express require express const GraphQLClient require graphql request const app express app use express json const client new GraphQLClient process env GRAPHCMS ENDPOINT headers authorization Bearer process env BEARER app post upvote slug async req res gt const slug req params const getCourse query getCourse slug ID course where id slug id vote name const upvoteCourse mutation voteCourse slug ID existingVotes Int updateCourse where id slug data vote existingVotes id name vote const publishCourse mutation publishCourse slug ID publishCourse where id slug id name vote const course await client request getCourse slug const existingVotes course vote const voteCourse await client request upvoteCourse slug existingVotes const publishedCourse await client request publishCourse slug res json message Course upvoted successfully votes publishedCourse publishCourse vote module exports appNow you can use the custom API endpoint to upvote courses Build CourseList vueThe CourseList vue component loops over the array of courses and renders each course individually In the code below you call the CourseCard component for each course and you pass the required props lt template gt lt div gt lt ul gt lt li v for course in courses key course id gt lt CourseCard id course id name course name description course description url course url vote course vote authors course authors map author gt author name gt lt li gt lt ul gt lt div gt lt template gt In the second part of the component you specify the prop details You only have a prop for this component courses It s of type array it s required and by default it s an empty array lt script gt export default props courses type Array default gt return required true lt script gt Now you can use the CourseList component to render courses from the database on the page Build Footer vueThe footer component only contains two icons a GitHub icona Twitter iconBelow you can see the code for the footer it uses SVGs for the icons lt template gt lt div class flex justify center pt space x mb gt lt a href target blank gt lt svg class w h text gray hover text gray xmlns xmlns xlink aria hidden true role img width height preserveAspectRatio xMidYMid meet viewBox gt lt path d M a c c c a c a a a c a a s a c a a c a c c A z fill currentColor gt lt svg gt lt a gt lt a href twitter target blank gt lt svg class w h text gray hover text gray xmlns xmlns xlink aria hidden true role img width height preserveAspectRatio xMidYMid meet viewBox gt lt path d M c c c C c c C c c c v c a a a c C C c c z fill currentColor gt lt svg gt lt a gt lt div gt lt template gt Build the homepageAs usual let s take the homepage and split it into two parts The homepage lives in the pages directory and it s called index js The homepage is made of the following components The hero componentThe CourseList component which renders all the courses from the databaseThe footer componentThus add them to your template as follows lt template gt lt div class relative flex flex col items top justify center min h screen bg gray sm items center sm pt gt lt Hero gt lt CourseList courses courses gt lt Footer gt lt div gt lt template gt If you look at the CourseList component you see that the courses prop being passed The courses prop is an array with objects each object representing an individual course You get the courses array from the database You can load data from the database asynchronously using the asyncData hook Also you make a GraphQL request so you need a special package In the code snippet below you use the graphql request package and the asyncData hook to make a request to GraphCMS You also specify what fields to return Then once you have the data from the database you return it and pass it as a prop to CourseList lt script gt import gql from graphql request export default async asyncData graphcms const courses await graphcms request gql courses orderBy vote DESC id name description url vote authors name return courses lt script gt If you run the application the homepage should display all the courses from the database in descending order That means the courses with the most votes are shown first Figure below illustrates an example with the courses from my database Figure The next step is to create an individual page for each course On the page you will see all the course details and details about the author Create the individual course pageThe last step of the tutorial is to build the individual page for each course The individual page shows more information about the course and author or authors Before going further it s important to form an idea of how dynamic pages work in Nuxt To create a dynamic page in Nuxt you need to use the underscore in front of the page name Thus create a new page slug vue in the pages folder Since you prefixed it with the underscore it will be a dynamic page Then you can access the value from the params In this case you can get the value through params slug as you will see in the code below Now let s move onto the first step which is to build the template Everything you see inside the moustache notation it s dynamic data coming from the database lt template gt lt div class relative flex flex col items top justify center min h screen bg gray sm items center sm pt gt lt div class max w xl mx auto px sm px lg px flex flex col justify center gt lt Hero gt lt div class mt bg white overflow hidden shadow sm rounded lg p gt lt h class text xl leading font semibold gt course name lt h gt lt p class mt font extralight italic text gray gt by course authors map author gt author name toString lt p gt lt p class mt text gray gt course description lt br gt lt br gt We recommend you take a look at the lt a href course url target blank class text green hover underline gt course lt a gt page lt br gt lt p gt lt div class flex flex col items center border t border dashed mt gt lt p class mt pt text gray font bold text xl tracking wider gt The course has lt code class bg gray text xl p rounded border gt course vote lt code gt votes lt p gt lt div gt lt div gt lt div gt lt div class max w xl mx auto px sm px lg px flex flex col justify center gt lt div class mt bg white overflow hidden shadow sm rounded lg p gt lt h class text xl leading font semibold mb gt course authors map author gt author name toString lt h gt lt a href course authors map author gt author twitterProfile toString class mt font extralight italic text gray gt lt code class bg gray p rounded border gt catalinmpit lt code gt Twitter lt a gt lt div class flex flex col items center border t border dashed mt gt lt p class mt pt text gray tracking wider gt course authors map author gt author biography toString lt p gt lt div gt lt div gt lt div gt lt div gt lt template gt In the second part you use the graphql request to make a GraphQL request to the GraphCMS database You also pass the slug to the request which represents the ID of the course Using the ID the GraphCMS database knows which course to retrieve and send back Also you retrieve information about the course authors Once the course is retrieved it returns it so you can render it on the page lt script gt import gql from graphql request export default async asyncData graphcms params const slug params const query gql query getCourse slug ID course where id slug id name description url vote authors name biography twitterProfile const course await graphcms request query slug return course lt script gt Figure illustrates how the individual course page looks You can see all the details about the course and the authors Figure And you are done ConclusionWell done for building the application Now you can store tech courses and allow people to vote them The application is not perfect and there are improvements that you could make Some of them are as follows add images for courses and authorsallow people to commentonly allow one vote per useradd authentication and authorizationAnd more You can see the live application here In addition the GitHub repository is available at this link Article originally published on catalins tech |
2021-07-08 10:20:07 |
Apple |
AppleInsider - Frontpage News |
Apple's Eddy Cue joins Duke University board of trustees |
https://appleinsider.com/articles/21/07/08/apples-eddy-cue-joins-duke-university-board-of-trustees?utm_medium=rss
|
Apple x s Eddy Cue joins Duke University board of trusteesEddy Cue has been appointed to the board of trustees at Duke University North Carolina where he received his bachelor s degree in computer science and economics Eddy Cue doesn t get passionate at Duke games no Source The ChronicleFollowing his joining the board of Tom Brady s NFT platform Eddy Cue is now a trustee of Duke University Apple s senior vice president of Internet Software and Services has been appointed to a six year term Read more |
2021-07-08 10:19:50 |
Apple |
AppleInsider - Frontpage News |
Apple's VP of health says the company works 'like an orchestra' |
https://appleinsider.com/articles/21/07/07/apples-vp-of-health-says-the-cupertino-works-like-an-orchestra?utm_medium=rss
|
Apple x s VP of health says the company works x like an orchestra x Apple executive Dr Sumbul Desai claims that the tech giant s success in health comes from how its design and engineering teams all work together for the Apple Watch and other fitness projects Dr Sumbul Ahmad Desai speaking during WWDC Apple s vice president health Dr Sumbul Ahmad Desai has confirmed that Apple runs entire clinics as part of its health research Dr Desai speaking on the Second Life podcast also revealed how it was partly Apple s integration of teams that persuaded her to join the company from Stanford Medical Read more |
2021-07-08 10:12:58 |
海外TECH |
CodeProject Latest Articles |
Kendo Grid UI: When multiple row selection is enabled, the user cannot copy a single cell value or specific text from the grid which is the very basic requirement. We will be implementing this in this article. |
https://www.codeproject.com/Articles/5307409/Kendo-Grid-UI-When-multiple-row-selection-is-enabl
|
Kendo Grid UI When multiple row selection is enabled the user cannot copy a single cell value or specific text from the grid which is the very basic requirement We will be implementing this in this article Kendo Grid UI Multiple Row Selection with Custom text cell text copy functionality |
2021-07-08 10:09:00 |
金融 |
金融庁ホームページ |
入札公告等を更新しました。 |
https://www.fsa.go.jp/choutatu/choutatu_j/nyusatu_menu.html
|
公告 |
2021-07-08 11:00:00 |
ニュース |
@日本経済新聞 電子版 |
AIアナが読むニュース 夕方の4本
https://t.co/ZTjd0GfPlu |
https://twitter.com/nikkei/statuses/1413076103627870213
|
夕方 |
2021-07-08 10:02:51 |
ニュース |
BBC News - Home |
Covid-19: Amber list quarantine for fully vaccinated to end on 19 July |
https://www.bbc.co.uk/news/uk-57763173
|
amber |
2021-07-08 10:55:37 |
ニュース |
BBC News - Home |
Euro 2020: England charge by Uefa after 'laser' penalty incident |
https://www.bbc.co.uk/sport/football/57763001
|
Euro England charge by Uefa after x laser x penalty incidentUefa charges England after a laser pointer was directed at Denmark goalkeeper Kasper Schmeichel during Wednesday s Euro semi final |
2021-07-08 10:51:48 |
ニュース |
BBC News - Home |
Boris Johnson criticised over Mustique trip explanation |
https://www.bbc.co.uk/news/uk-politics-57761943
|
caribbean |
2021-07-08 10:36:27 |
ニュース |
BBC News - Home |
Jovenel Moïse: Police kill four after Haiti's president assassinated |
https://www.bbc.co.uk/news/world-latin-america-57758864
|
jovenel |
2021-07-08 10:14:58 |
ニュース |
BBC News - Home |
'We have six unfilled jobs but no one has applied' |
https://www.bbc.co.uk/news/business-57746626
|
research |
2021-07-08 10:30:24 |
ニュース |
BBC News - Home |
UK to see economic bounce from Euros, says Rishi Sunak |
https://www.bbc.co.uk/news/business-57746627
|
rishi |
2021-07-08 10:30:16 |
北海道 |
北海道新聞 |
東京で896人感染、2人死亡 コロナ、前週の223人増 |
https://www.hokkaido-np.co.jp/article/564859/
|
新型コロナウイルス |
2021-07-08 19:10:19 |
北海道 |
北海道新聞 |
熱海土石流、死者9人に 不明22人、死亡2人の身元判明 |
https://www.hokkaido-np.co.jp/article/564841/
|
身元判明 |
2021-07-08 19:07:43 |
北海道 |
北海道新聞 |
東京に4度目の緊急事態宣言 五輪期間含め8月22日まで |
https://www.hokkaido-np.co.jp/article/564869/
|
新型コロナウイルス |
2021-07-08 19:00:56 |
北海道 |
北海道新聞 |
白鵬、照ノ富士が5連勝 トップ2人、名古屋場所 |
https://www.hokkaido-np.co.jp/article/564912/
|
名古屋場所 |
2021-07-08 19:07:00 |
北海道 |
北海道新聞 |
シカ食害 咲かぬシバザクラ 木古内の名所薬師山再生へ 町が移植、地面保温 |
https://www.hokkaido-np.co.jp/article/564905/
|
観光名所 |
2021-07-08 19:03:49 |
ニュース |
Newsweek |
在留邦人290人が感染、未確認含め21人死亡か デルタ株急拡大のインドネシア |
https://www.newsweekjapan.jp/stories/world/2021/07/29021.php
|
こうしたコロナ感染の拡大はインドネシア人のみならず、インドネシア在留の日本人にも深刻な影響を与えており、首都ジャカルタの日本大使館ではこれまでに把握している在留日本人の感染者数は人、死者人としている。 |
2021-07-08 19:45:30 |
ニュース |
Newsweek |
演出? 米ディズニー「アニマル・キングダム」でゴリラたちを釘付けにするヘビ |
https://www.newsweekjapan.jp/stories/world/2021/07/post-96660.php
|
演出米ディズニー「アニマル・キングダム」でゴリラたちを釘付けにするヘビ米フロリダ州オーランドにあるウォルト・ディズニー・ワールド・リゾート内の「アニマル・キングダム」で撮影されたとある動画がTikTokで話題を呼んでいる。 |
2021-07-08 19:15:00 |
IT |
週刊アスキー |
開幕まであと9日! パシフィコ横浜「DinoScience 恐竜科学博」の展示物などが公開 |
https://weekly.ascii.jp/elem/000/004/062/4062018/
|
dinoscience |
2021-07-08 19:30:00 |
IT |
週刊アスキー |
サンワダイレクト、マルチペアリングを採用した高速スクロールマウス「400-MAWBT166BK」を発売 |
https://weekly.ascii.jp/elem/000/004/062/4062079/
|
mawbtbk |
2021-07-08 19:30:00 |
IT |
週刊アスキー |
発売記念キャンペーンも実施中!『eBASEBALLプロ野球スピリッツ2021 グランドスラム』が発売 |
https://weekly.ascii.jp/elem/000/004/062/4062078/
|
ebaseball |
2021-07-08 19:10:00 |
コメント
コメントを投稿