AWS |
AWS Game Tech Blog |
Welcome to Issue 1 of Game Tech Loadout! |
https://aws.amazon.com/blogs/gametech/welcome-to-issue-1-of-game-tech-loadout/
|
Welcome to Issue of Game Tech Loadout By David Holladay Head of AWS Game Tech Marketing We are excited to announce the premier issue of our new digital magazine called Game Tech Loadout or as we like to call it GT Loadout We created GT Loadout as a thought leadership publication to talk about challenges and solutions that game developers studio … |
2021-12-10 16:10:51 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
ダッシュボード作成ライブラリPanelのウィジェット紹介 ~出力系編~ |
https://qiita.com/hisakichi95/items/dc40bc6956a35c99afee
|
importfoliumFoliumオブジェクト生成mfoliumMaplocationzoomstartマーカー追加foliumMarkerlocationpopup東京タワーaddtomインスタンス生成foliumpanepnpaneplotFoliummheightwidth表示foliumpaneただし、Folium自体の問題として、ポップアップに日本語が使われていた場合に文字が縦方向に並んでしまうというのがあるみたいです。 |
2021-12-11 01:45:45 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
GASの doGet と doPost のイベントオブジェクトの型定義 |
https://qiita.com/okou/items/c23b010ac66aedadedd8
|
GASのdoGetとdoPostのイベントオブジェクトの型定義doGeteとdoPosteの引数eの型定義。 |
2021-12-11 01:12:40 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
herokuでのデプロイに失敗してしまう。 |
https://teratail.com/questions/373283?rss=all
|
herokuでのデプロイに失敗してしまう。 |
2021-12-11 01:30:24 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
[Unity]Instantiateのタイミングはいつなのでしょうか. |
https://teratail.com/questions/373282?rss=all
|
|
2021-12-11 01:25:17 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
VBAメール作成マクロのコード どこに間違いがあるのかが分からない |
https://teratail.com/questions/373281?rss=all
|
VBAメール作成マクロのコードどこに間違いがあるのかが分からないVBAにて、outlookのメールを自動で作成するマクロを作成しているのですが、メールが作成されないため、どこか間違いがあるのか、教えて頂けますでしょうかなお、実行時は特に何もエラーは表示されないですが、メールが作成されない状態となっています。 |
2021-12-11 01:19:35 |
Program |
[全てのタグ]の新着質問一覧|teratail(テラテイル) |
iOS端末でServer-Sent Eventsを利用中、ブラウザがバックグラウンドに移るとやり取りが切断される |
https://teratail.com/questions/373280?rss=all
|
iOS端末でServerSentEventsを利用中、ブラウザがバックグラウンドに移るとやり取りが切断される前提・実現したいことServerSentnbspEventsを用いたリアルタイム通信で、「退室する」ボタンを押さずにブラウザを閉じた際などにサーバー側が切断を検知出来るよう、実装を図っている段階です。 |
2021-12-11 01:15:29 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
AWS CLIで Web サイトを構築、管理、運用する(11日目) |
https://qiita.com/hirosys/items/22394485356157ab7c6e
|
今回はCloudFrontで日本からのアクセスのみ認めるような設定を入れてみます日目の要約日本からのアクセスだけできるようにするよAWSCLIの準備このあたりをみて、好きなバージョンとお使いのOSにあった環境設定をしてくださいね。 |
2021-12-11 01:49:56 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
サーバー再起動前後はプロセス(etc)を取得しよう |
https://qiita.com/instant_baby/items/7e84f88f917eff797336
|
個人で運用しているサーバーの再起動は私も結構適当にえいやっとやってしまうのですが、これがクライアントのサーバーだと話が変わってきます。 |
2021-12-11 01:14:12 |
技術ブログ |
Developers.IO |
「Cloudflare Radar」でみるインターネットトラフィックの動向 |
https://dev.classmethod.jp/articles/introducing-cloudflare-radar/
|
cloudflareradar |
2021-12-10 16:00:29 |
海外TECH |
MakeUseOf |
8 Ways to Browse the Web Anonymously |
https://www.makeuseof.com/how-to-browse-web-anonymously/
|
anonymouslywant |
2021-12-10 16:30:12 |
海外TECH |
MakeUseOf |
The 6 Best Bookmark Manager Apps for Android |
https://www.makeuseof.com/best-bookmark-managers-android/
|
android |
2021-12-10 16:30:11 |
海外TECH |
DEV Community |
The top MLOps repositories (according to GitHub) |
https://dev.to/colbylee5/the-top-mlops-repositories-according-to-github-59a5
|
The top MLOps repositories according to GitHub I recently discovered the topic of MLOps which is all about putting our models in our production and iterating on it to keep improving our ML systems I found these resources on GitHub very useful since GitHub automatically sorts the top repositories for MLOps |
2021-12-10 16:41:19 |
海外TECH |
DEV Community |
How to Mine Verge XVG: Step-by-Step Laptop and Desktop Mining Guide in 2021 |
https://dev.to/courseprobe/how-to-mine-verge-xvg-step-by-step-laptop-and-desktop-mining-guide-in-2021-2f73
|
How to Mine Verge XVG Step by Step Laptop and Desktop Mining Guide in Sometimes mining can seem to be too complex for the average computer user so I thought about putting together a quick guide to get you excited about mining cryptocurrency and Verge in particular Anyone can start mining Verge with any laptop in under minutes using this guide regardless of your technical skill level you will be able to increase your crypto knowledge and start mining Verge XVG with your CPU and GPU today Verge Currency is a decentralized open source cryptocurrency which offers various levels of private transactions It does this by obfuscating the IP addresses of users with Tor and by leveraging stealth transactions making it difficult to determine the geolocation of its users I m available to help with the setup and optimizations via telegram Now let s get you started STEP Get yourself a Wallet I recommend getting a wallent with support for ERC tokens good candidates might included Metamask Trust wallet or Atomic Wallet From the wallet get your Public Receive address this is the address the pool needs in order to transfer your coins STEP Download the Unmineable Miner SoftwareBefore downloading the file set some folder exclusions on Windows Defender in your antivirus and also in your browser so you can download the file without being bothered with notifications of dangerous files Official Unmineable software can be downloaded from this site Unmineable DownloadDownload the MFI version Miners files included The unmineable software is just one executable file it already contains all the configurations so it is the best and easiest way to mine Verge Run the file as an Administrator in windows It looks exactly like this when you run it You can select GPU cards or CPU It will take you to the second screen where you will enter your Verge XVG Address and also the code which will allow you to drop your Dev Fee from to Use the code exd wmzl to drop your Dev Fee from to it makes a difference Your screen should look like this Once you click on the Start button you should see a similar screen At this point I would recommend you to click the option at the bottom to display the logs Looks like a sheet of paper here click Force Stop Then click the Settings Icon Looks like a cog wheel in the screen that pops up you want to double check a few things Make sure the algorithm selected is ETCHASH if you are mining with GB cards use ETHASH for cards with GB or more if you selected CPU everything is ready to start mining no need to select anything Make sure the Code exd wmzl is showing in the referral box Recommended not mandatory Set a name for your worker The computer you are mining from Set your mining Intensity at the top I would recommend High for those periods when you are not using the computer It looks similar to this Click on the Save amp Restart button to start mining Once it starts you can check the speed of your Graphic card which shows as the Current Hashrate Also you can click on the stats button on the top right to go directly to the Unmineable website where you can check your balance and request a manual payment Note it is recommended you change a few settings in Windows there s people that disable the Updates and also disable sleeping mode hibernation or anything that could turn off the computer while it is not in use When using a Laptop make sure it has some battery or is plugged so it won t shut down Congrats if you are using Unmineable you are now a miner If you want a bit more of control over the mining software and configurations then you can download the miners and manually set them up For those of you mining with CPU then you could follow below Go to the xmrig site to download the latest version MSVC or from the oficial github repository Once you download the latest version you would have to edit a file named pool mine example cmd or start cmd or start bat Inside this file you need to modify lines if the file doesn t exists you would have to create itIt could look similar to this cd dpxmrig exe o rx unmineable com u XVG DNYsdntCHYDvXuGzgEChnoQruHBRDe wrkID exd wmzl p x cpu no yieldpauseIn the second line after the o you can see the Pool URL in this case all you have to do depending on your location is to use one of the following URLs select the one closer to your location USA rx us unmineable com Europe rx eu unmineable com Asia rx asia unmineable com Then the third line is where you will enter your wallet s public address copied in STEP place it after the XVG and before the first dot The general structure of the address needs to be COIN Wallet address workerID Code to lower mining fee The workerID is any name you want to give to each computer where you are running the miner so it can easily be identified later on under the pool stats The code after the is important because mining with that code will drop the Mining Fee from to it makes a difference You can start mining using that code exd wmzl You also need to edit the config json file and update the Pools object to look similar to this using your details pools url rx unmineable com user XVG DNYsdntCHYDvXuGzgEChnoQruHBRDe wrkID exd wmzl Run the pool mine example file as an administrator If everything goes well you are now running XMRig and are mining Congrats For those of you mining with GPU I would recommend you to get Teamredminer AMD cards Phoenixminer AMD NVIDIA or Trex Nvidia Download these miner from the oficial sites Phoenix miner Bitcoin Talk forum Teamred miner GithubTrex GithubThen set them up with a smilar Start bat file as mentioned in the CPU section above Pay attention to some changes you would need to implement if you are mining with gb cards you need to set the algo on the miner to ETCHASH and the coin to ETC check for miner CLI parameters if you are mining with gb cards or more then you need to set the algo on the miner to ETHAS and the coin to ETH check for miner CLI parameters Make sure to also set the pool url accordingly ETCHASH etchash unmineable com ETHASH ethash unmineable com Once done run the file as administrator Now you can Log into Unmineable to check your stats Unmineable com is a mining Pool which allows you to mine with your CPU using RandomX or GPUS using Etchash or Ethash and pay you in any coin you select Remember when you set up the address inside the Miner starter file Well there you just let Unmineable know the coin you want to be paid in in this example Verge and then the address where they will transfer the mined coins In order to check your balance log into Unmineable and then select the coin you want to mine In this example Verge XVG Then you can select the Tab that reads RandomX or ETCHAS or ETHASH depending on your algo and enter your address in the box that reads Enter your address to check your stats After doing this you will see the balance on your account and you will even be able to request a payment Congrats you are a miner now I recommend downloading some software to monitor the running temperature of your CPU and GPU a good and free one is Hardware Monitor Try not to exceed the CPU temperature more than degrees celsius In case you are mining with a laptop change the thermal paste of your CPU get it cleaned inside and get some heat extractors for laptops If you take care of the temperature your computer should work very well the amount of coins you can mine will depend on the hashrate of your CPU and GPUs For GPUS download MSI Afterburner and set the appropriate Overclocking profile so you can get higher hashrates Remember to use a valid address for each coin for example if you want to be paid in ADA then you need a valid Cardano blockchain address If you are having any difficulties please join me on telegram so I can help you furtherIf you are having issues configuring the software and want an easy option you can get he Pre configured versions of the mining programs I use on the video on the links below BrosMrig CPU Only PhoenixMiner Nvidia AMD Gpu Only If you are looking for more information into CPU mining there s a good guide in a PDF ebook and is Free get it at Mining Crypto with CPUReferral Disclosure Please read the Unmineable Referral Policy at the following link to better understand How the referral code works in detail Unmineable Referrals |
2021-12-10 16:35:13 |
海外TECH |
DEV Community |
Answer: "package XXX is not in GOROOT" when building a Go project |
https://dev.to/gilly7/answer-package-xxx-is-not-in-goroot-when-building-a-go-project-4dae
|
Answer quot package XXX is not in GOROOT quot when building a Go project answer re package XXX is not in GOROOT when building a Go project May A pretty dumb conclusion mostly on my part but my issue came from having done go mod init in each of the folders after removing go mod and go dep from each of the folders I did go mod init in I could build without issue through terminal Also my packages in… Open Full Answer |
2021-12-10 16:35:08 |
海外TECH |
DEV Community |
Building a Fullstack Road trip mapper app using the absolute power of MERN stack 🔥 |
https://dev.to/aviyel/building-a-fullstack-road-trip-mapper-app-using-the-absolute-power-of-mern-stack-117g
|
Building a Fullstack Road trip mapper app using the absolute power of MERN stack This article concentrates on the most critical tasks and concepts for better understanding and building MERN stack applications from the ground up It s for folks who are serious about learning about the MERN stack and want to concentrate on the essentials We ll build a full stack road trip mapper application where users can pin and map locations and view the sites pinned by other users all using the MERN stack and leveraging the power of the Mapbox API This blog session will teach you the fundamentals of MERN stack technology as well as advanced concepts and operations Here s a quick preview of our application s final version There is a separate article where you may learn about the MERN stack in very great detail Setting up the folder structureCreate two folders inside your project directory called client and server then open them in Visual Studio Code or any other code editor of your choice Now we ll create a MongoDB database a Node and Express server a database schema to represent our project case study application and API routes to create read update and delete data and information from the database using npm and the appropriate packages So open a command prompt navigate to your server s directory and then run the code below npm init yesConfiguring package json fileExecute the following commands in the terminal to install the dependencies npm install cors dotenv express express rate limit mongoose nodemon body parser helmet morgan rate limit mongoDotenv Dotenv is a zero dependency module that loads environment variables from a env file into process envcors This module allows to relax the security applied to an APIexpress Fast unopinionated minimalist web framework for node express rate limit Basic IP rate limiting middleware for Express It is used to limit repeated requests to public APIs and or endpoints such as password reset mongoose It is an Object Data Modeling library for MongoDB and Node jsnodemon This module helps to develop node js based applications by automatically restarting the application when file changes in the directory are detected body parser Node js body parsing middleware helmet Helmet js fills in the gap between Node js and Express js by securing HTTP headers that are returned by Express applications morgan HTTP request logger middleware for node jsrate limit mongo MongoDB store for the express rate limit middleware The package json file should look like this after the dependencies have been installed And also remember to update the scripts as well Now go to your server directory create a src folder and an index js file there Setting up index jsImport express module Import and configure dotenv moduleImport helmet module Import morgan module Import CORS moduleUse express to initialize our app src index jsconst express require express NOTE morgan is a loggerconst morgan require morgan const helmet require helmet const cors require cors const mongoose require mongoose require dotenv config app configconst app express We may now utilize all of the other methods on that app instance Let s start with the fundamentals and very basic setups Don t forget to set up the port and cors too const express require express NOTE morgan is a loggerconst morgan require morgan const helmet require helmet const cors require cors const mongoose require mongoose require dotenv config const app express const port process env PORT app use morgan common app use helmet app use cors origin process env CORS ORIGIN app use express json app get req res gt res json message Hello There Now it s time to connect our server application to a real database Here we ll use the MongoDB database specifically the MongoDB cloud Atlas version which means our database will be hosted on their cloud Setting up MongoDB Atlas cloud clusterMongoDB is a document oriented database that is open source and cross platform MongoDB is a NoSQL database that stores data in JSON like documents and has optional schemas All versions were given under the AGPL license prior to October All versions released after October including bug fixes for prior versions are covered by the SSPL license v You can also learn more about MongoDB setup and configuration from the following article To set up and start your MongoDB cluster follow the exact same steps mentioned below Official MongoDB website Sign up MongoDBSign in to MongoDBCreate a ProjectAdding membersBuilding DatabaseCreating a ClusterSelecting a cloud service ProviderConfiguring SecurityDatabase Deployment to the CloudNavigate to the network access tab and select Add IP address Now select the Choose a connection method Connecting to clusterCreate a new variable called DATABASE CONNECTION inside index js Create a string and paste the copied mongo DB connection URL into it Now inside it type your username and password removing any brackets and entering your own credentials We ll create environmental variables to safeguard the credential later but for now let s add it this way The second thing we ll need is a PORT so just type in for now Finally we ll use mongoose to connect to our database so type in mongoose connect which is a function with two parameters The DATABASE CONNECTION will be the first and the object with two choices will be the second The first is useNewUrlParser which we ll enable and the second is useUnifiedTopology which we ll enable as well These objects are optional but we will see some errors or warnings on our console Let s chain it with then and catch inside then function This will simply call the app and invoke listen leading to two parameters PORT and the callback function that will be executed if our application is successfully connected to the database Finally if the connection to the database is unsuccessful we will simply console log our error message Your index js file should now look something like this src index jsconst express require express NOTE morgan is a loggerconst morgan require morgan const helmet require helmet const cors require cors const mongoose require mongoose require dotenv config const app express const DATABASE CONNECTION process env DATABASE URL mongoose connect DATABASE CONNECTION useNewUrlParser true newUnifiedTopology true app use morgan common app use helmet app use cors origin process env CORS ORIGIN app use express json app get req res gt res json message Hello There const port process env PORT app listen port gt console log Currently Listening at http localhost port Insert mongodb srv into the env file PORT DATABASE URL mongodb srv pramit lt password gt clustertw mongodb net myFirstDatabase retryWrites true amp w majorityCORS ORIGIN http localhost We now have successfully connected our server to the database let s create middleware first before we get started on building our backend application s routes and database schema To do so we ll need to create a new file called middlewares js and within that file we will create a two function called notFound and errorHandlerand export those functions So let create notFound middleware so typically this middleware should be the last middleware that is registered so this middleware takes in req res and next Basically if a request ever made it here it means we didn t locate the route users were searching for so we ll create a variable and send them a message and then we ll pass that to our next middleware which is errorHander Middleware but before that don t forget to pass the response status of as well Now let s make our errorHandler middleware which has four parameters instead of three so we ll have error req res next The first thing we ll do is set a status code and check whether it s or use the status code that s already been specified and then we ll simply set the status code and then we ll respond with some JSON that will display the error message middlewares jsconst notFound req res next gt const error new Error Not Found req originalUrl res status next error const errorHandler error req res next gt const statusCode res statusCode res statusCode res status statusCode res json message error message stack process env NODE ENV production nope error stack module exports notFound errorHandler So after modifying the middlewares js file import and use the middleware as needed in the index js file src index jsconst express require express NOTE morgan is a loggerconst morgan require morgan const helmet require helmet const cors require cors const mongoose require mongoose require dotenv config const middlewares require middlewares const app express const DATABASE CONNECTION process env DATABASE URL mongoose connect DATABASE CONNECTION useNewUrlParser true newUnifiedTopology true app use morgan common app use helmet app use cors origin process env CORS ORIGIN app use express json app get req res gt res json message Hello There app use middlewares notFound app use middlewares errorHandler const port process env PORT app listen port gt console log Currently Listening at http localhost port let s create a LogEntry model Create a folder called models and inside it create one file called LogEntry model js and within that following file structure your DB schema by defining title description comments image ratings latitude and longitude as shown below models LogEntry model jsconst mongoose require mongoose const Schema mongoose const requiredNumber type Number required true const logEntrySchema new Schema title type String required true description String comments String image String rating type Number min max default latitude requiredNumber min max longitude requiredNumber min max visitDate required true type Date timestamps true const LogEntry mongoose model collections logEntrySchema module exports LogEntry The structure of your files and folders should now look like this Now that we ve successfully created our DB Schema let s get started on creating our routes for our backend application To do so we ll need to create a new folder inside the src directory and name it as routes Within the routes folder we will create a js file called logs routes js so first we must import express from express and also configure our router and import our recently created DB schema Now we can begin adding our routes to it const Router require express const LogEntry require models LogEntry model js const API KEY process env const router Router fetches all the pinned location information router get async req res next gt try const entries await LogEntry find res json entries catch error next error Insert add a pinned location with authorized accessrouter post async req res next gt try if req get X API KEY API KEY res status throw new Error Unauthorized Access const logEntry new LogEntry req body const createdEntry await logEntry save res json createdEntry catch error if error name ValidationError res status next error exporting the routermodule exports router Your logs routes js should resemble something like this src routes logs routes jsconst Router require express const LogEntry require models LogEntry model js const API KEY process env const router Router router get async req res next gt try const entries await LogEntry find res json entries catch error next error router post async req res next gt try if req get X API KEY API KEY res status throw new Error Unauthorized Access const logEntry new LogEntry req body const createdEntry await logEntry save res json createdEntry catch error if error name ValidationError res status next error module exports router Now update your env fileNODE ENV productionPORT DATABASE URL mongodb srv pramit lt password gt clustertw mongodb net myFirstDatabase retryWrites true amp w majorityCORS ORIGIN http localhost API KEY roadtripmapperLet s get started by importing the logs routes into your index js file We can now connect map pinned log info to our application using express middleware Finally your root index js file should be like the following src index jsconst express require express NOTE morgan is a loggerconst morgan require morgan const helmet require helmet const cors require cors const mongoose require mongoose require dotenv config const middlewares require middlewares const logs require routes logs routes js const app express const DATABASE CONNECTION process env DATABASE URL mongoose connect DATABASE CONNECTION useNewUrlParser true newUnifiedTopology true app use morgan common app use helmet app use cors origin process env CORS ORIGIN app use express json app get req res gt res json message Hello There app use api logs logs app use middlewares notFound app use middlewares errorHandler const port process env PORT app listen port gt console log Currently Listening at http localhost port After restarting the server you should see something like this Setting up the frontend with reactIn the next step let s start with the frontend and build it with react The first thing you need to do is install Node js if it isn t already installed on your machine So go to the Node js official website and download the most recent version You ll require Node js to utilize the node package manager generally known as NPM Now navigate to the client folder in your favorite code editor Visual Studio Code will be my tool of choice Then in the integrated terminal type npx create react app This command will create a client application in the current directory with the name client There is a separate article where you may learn everything there is to know aboutcleaning up boilerplate react project It s time to install some packages within react boilerplate now that you ve installed and cleaned it so copy and paste the following command into your terminal npm i react hook form react map gl react rating stars component react responsive animate navbarreact hook form Performant flexible and extensible forms library for React Hooks react map gl react map gl is a suite of React components designed to provide a React API for Mapbox GL JS compatible librariesreact rating stars component Simple star rating component for your React projects react responsive animate navbar simple flexible amp completely customizable responsive navigation bar component After installing all these packages your packge json file of the client should look like this Let s construct two separate folders components inside the components folder after we ve installed all of our project s dependencies and name it as RoadTripNav and TripEntryForm Your file and folder structure should look something like this once you ve added all of your components Now that you have all of the project s components set up it s time to start coding First import the ReactNavbar from react responsive animate navbar and customize the color of your navbar add the logo to the public folder and import it directly and don t forget to add some social links as well The following is an example of how the code should appear components RoadTripNavimport React from react import as ReactNavbar from react responsive animate navbar import roadTripSvg from assets roadtrip svg const RoadTripNav gt return lt ReactNavbar ReactNavbar color rgb logo logo svg menu social name Twitter url icon fab twitter gt export default RoadTripNav Before we go any further let s set up our Mapbox First go to the Mapbox site and log in or sign up if you don t already have an account Next create your own custom map style in the Mapbox Studio and publish it Finally go back to the dashboard and copy the default public API key provided by MapBox Login or create your MapBox accountClick on design a custom map styleCustomize your own style of the map inside the Mapbox studioCopy the default public tokenAfter you ve successfully obtained your public token go to the env file or create one if you don t have and after that create a variable named as REACT APP MAPBOX TOKEN then paste that token into that variable This is what your env file should look like REACT APP MAPBOX TOKEN add tokenBefore we go any further let s make an api and styles folder in our root source directory Inside the api folder make a API js file and inside the styles folder make a index css file where all our styles of the application will be added This is how your folder structure should appear Now go to the newly created API file and construct two functions called listLogEntries to collect all the log entries from the backend and createLogEntries to create or send the post request post the entries to the backend as well as export these functions Also don t forget to include the URL where your server is running api API jsconst API URL http localhost const API URL window location hostname localhost http localhost export async function listLogEntries const response await fetch API URL api logs const json await response json return response json export async function createLogEntries entry const api key entry api key delete entry api key const response await fetch API URL api logs method POST headers content type application json X API KEY api key body JSON stringify entry const json await response json return response json let json if response headers get content type includes text html const message await response text json message else json await response json if response ok return json const error new Error json message error response json throw error Let s make a submission form for the pinned map location To do so open the TripEntryForm component from the component folder we previously made import the useForm hook from react hook form import createLogentries from api and then import the useState hook from the React library because this hook will enable us to integrate the state into our functional component useState unlike state in class components does not work with object values If necessary we can use primitives directly and create multiple react hooks for multiple variables Now create two states loading and error and then destructure register and handleSubmit from the useForm hook from react hook form library After you ve completed that it s time to craft our form but first let s create a function to handle our submit request To do so create an asynchronous onSubmit function and inside it simply create a try catch block Inside the try block set the loading to true configure the latitude and longitude console log the data and invoke the onClose function and finally inside the catch block pass the error message to the error state set the loading to false and simply console log the error message and then simply create a form inside the return statement exactly shown in the code below components TripEntryForm jsimport React useState from react import useForm from react hook form import createLogEntries from api API import TripEntryForm css const TripEntryForm location onClose gt const loading setLoading useState false const error setError useState const register handleSubmit useForm const onSubmit async data gt try setLoading true data latitude location latitude data longitude location longitude const created await createLogEntries data console log created onClose catch error setError error message console error error setLoading false return lt form onSubmit handleSubmit onSubmit className trip form gt error lt h className error message gt error lt h gt null lt label htmlFor api key gt Enter Password lt label gt lt input type password name api key placeholder For demo password gt roadtripmap required ref register gt lt label htmlFor title gt Title lt label gt lt input name title placeholder Title required ref register gt lt label htmlFor comments gt Comments lt label gt lt textarea name comments placeholder Comments rows ref register gt lt textarea gt lt label htmlFor description gt Description lt label gt lt textarea name description placeholder Describe your journey rows ref register gt lt textarea gt lt label htmlFor image gt Image lt label gt lt input name image placeholder Image URL ref register gt lt label htmlFor rating gt Rating lt label gt lt input name rating type number min max ref register gt lt label htmlFor visitDate gt Visit Date lt label gt lt input name visitDate type date required ref register gt lt button disabled loading gt lt span gt loading Submitting Submit your Trip lt span gt lt button gt lt form gt export default TripEntryForm Also don t forget to add the TripEntryForm styles inside that very own component folder and name it as TripEntryForm css and paste the exact CSS code as mentioned below TripEntryForm css import url One amp family Poppins ital wght amp family Roboto ital wght amp display swap trip form label margin rem display block width color rgb font family Fredoka One cursive trip form input margin rem background color ce border radius px border box sizing border box color rgb font size px height outline padding px px px px width font family Fredoka One cursive trip form textarea margin rem background color ce border radius px border box sizing border box color rgb font size px height outline padding px px px px width font family Fredoka One cursive error message color red trip form button background color fb border radius px border box sizing border box color eee cursor pointer font size px height px margin top px outline text align center width button span position relative z index button after position absolute content top left width height transition all s button hover color fff button hover after width small description font size px Now go to this repo and download all of the SVG files that are available there After you ve downloaded all of the svg files go to the main app component and begin importing all of the key requirements from the libraries we previously installed such as ReactMapGl marker and popup from the react map gl library import all of the components as well as svgs from the assets folder and finally create four state logEntries whose initial value is empty array showPopup whose initial value is an empty object addEntryLocation has a default value of null and for viewport specify the initial value exactly like the code mentioned below or you can add whatever you want Create an asynchronous function called getEntries that asynchronously calls the listLogEntries function that was previously established within the api file and whose main task is to retrieve all of the entries made by the users and feed them to the logEntries state and then call that function inside the useEffect hook by using this Hook you tell React that your component needs to do something after render React will remember the function you passed we ll refer to it as our “effect and call it later after performing the DOM updates To this effect we set the document title but we could also perform data fetching or call some other imperative API Placing useEffect inside the component lets us access the count state variable or any props right from the effect We don t need a special API to read it ーit s already in the function scope Hooks embrace JavaScript closures and avoid introducing React specific APIs where JavaScript already provides a solution useEffect the hook is somewhat similar to the life cycle methods that we are aware of for class components It runs after every render of the component including the initial render Hence it can be thought of as a combination of componentDidMount componentDidUpdate and componentWillUnmount If we want to control the behavior of when the effect should run only on initial render or only when a particular state variable changes we can pass in dependencies to the effect to do so This hook also provides a clean up option to allow cleaning up of resources before the component is destroyed basic syntax of the effect useEffect didUpdate Create a function named showMarkerPopup and provide the event parameters to it Inside that function destruct the latitude and longitude from event lngltd and pass it to addEntryLocation state Finally employ all of the imported components within our return statement by simply following the code shown below src app jsimport as React from react import useState useEffect from react import ReactMapGL Marker Popup from react map gl import listLogEntries from api API import MapPinLogo from assets mapperPin svg import MarkerPopup from assets MarkerPopup svg import TripEntryForm from components TripEntryForm import ReactStars from react rating stars component import RoadTripNav from components RoadTripNav RoadTripNav const App gt const logEntries setLogEntries useState const showPopup setShowPopup useState const addEntryLocation setAddEntryLocation useState null const viewport setViewport useState width vw height vh latitude longitude zoom const getEntries async gt const logEntries await listLogEntries setLogEntries logEntries console log logEntries useEffect gt getEntries const showMarkerPopup event gt console log event lngLat const longitude latitude event lngLat setAddEntryLocation longitude latitude return lt gt lt RoadTripNav gt lt ReactMapGL viewport mapStyle mapbox styles pramitmarattha ckiovgekextcmydcs mapboxApiAccessToken process env REACT APP MAPBOX TOKEN onViewportChange nextViewport gt setViewport nextViewport onDblClick showMarkerPopup gt logEntries map entry gt lt React Fragment key entry id gt lt Marker latitude entry latitude longitude entry longitude gt lt div onClick gt setShowPopup showPopup entry id true gt lt img className map pin style width viewport zoom px height viewport zoom px src MapPinLogo alt Map Pin Logo gt lt div gt lt Marker gt showPopup entry id lt Popup latitude entry latitude longitude entry longitude closeButton true closeOnClick false dynamicPosition true onClose gt setShowPopup anchor top gt lt div className popup gt lt ReactStars count value entry rating size activeColor ffd gt lt div className popup image gt entry image amp amp lt img src entry image alt entry title gt lt div gt lt h gt entry title lt h gt lt p gt entry comments lt p gt lt small gt Visited new Date entry visitDate toLocaleDateString en US weekday long year numeric month long day numeric lt small gt lt p gt Ratings entry rating lt p gt lt div className small description gt entry description lt div gt lt div gt lt Popup gt null lt React Fragment gt addEntryLocation lt gt lt Marker latitude addEntryLocation latitude longitude addEntryLocation longitude gt lt div gt lt img className map pin style width viewport zoom px height viewport zoom px src MarkerPopup alt Map Pin Logo gt lt div gt lt div style color white gt entry title lt div gt lt Marker gt lt Popup latitude addEntryLocation latitude longitude addEntryLocation longitude closeButton true closeOnClick false dynamicPosition true onClose gt setAddEntryLocation null anchor top gt lt div className popup gt lt TripEntryForm onClose gt setAddEntryLocation null getEntries location addEntryLocation gt lt div gt lt Popup gt lt gt null lt ReactMapGL gt lt gt export default App The very final step is to add all of the styles to our project which can be done by going to our previously established styles folder and copying and pasting the following mentioned code into the index css file styles index css import url One amp family Poppins ital wght amp family Roboto ital wght amp display swap body margin font family Fredoka One cursive height vh width vw overflow hidden code font family source code pro Menlo Monaco Consolas Courier New monospace map pin position absolute transform translate z index popup width vw height auto padding rem background color d border radius px z index popup img width height auto border radius justify content center align items center margin auto padding top rem popup image display flex justify content center align items center small description font size rem color fff border radius px z index button border none color fa padding right rem border radius font size rem margin top rem height auto cursor pointer Finally start both the client and the server Application up and runningThis application s entire source code is available here Main article available here gt Happy Coding Follow aviyelHQ or sign up on Aviyel for early access if you are a project maintainer contributor or just an Open Source enthusiast Join Aviyel s Discord gt Aviyel s worldTwitter gt |
2021-12-10 16:30:27 |
海外TECH |
DEV Community |
Dynamic Channels for Video Chat Using Agora RTM on React Native |
https://dev.to/ekaansharora/dynamic-channels-for-video-chat-using-agora-rtm-on-react-native-851
|
Dynamic Channels for Video Chat Using Agora RTM on React NativeThe Agora RTC Real time Communication SDK makes it easy to build video chat apps on React Native We can have multiple users communicate with each other by using the same channel name for our video chat room If you re building a social video chat app you might want to let your users generate rooms that other users can browse join and communicate in You can do this with a back end server to handle these requests and update other users with information about created rooms but that would involve writing back end code and hosting your own server In this tutorial we re going to see an alternative way of achieving the same goal by using the Agora RTM Real time Messaging SDK We ll use messages sent by users to communicate the creation and updating of dynamic video chat rooms all with front end code This can be handy because when you don t want to build a back end server you can use messages to update other users on the status of the rooms This approach can be easily extended to having fully managed rooms as well as features like admin admit deny a user mute another user and remove a user from the room We ll be using the Agora RTC SDK and Agora RTM SDK for React Native in this example I m using v of the RTC SDK and v alpha of the RTM SDK at the time of writing Project Overview We have an RTM room called lobby We ll use it to signal users when someone creates a new room or when the members in a room change The way we ll do this is by having the most senior member in the video chat room send messages to others The oldest member in the room is considered the senior member more on this later We ll send messages in the form of roomName memberCount which can be processed by other users to store the room name and member count as a dictionary in their application state We ll use it to render a list of rooms with the number of members in it Once we have the list we can join the room by using the RTC SDK We ll also need to listen for users joining and leaving to update the member count for everyone else This is done only by the senior member to avoid overhead We also need to consider two cases to update room information for other users First when a new user joins the lobby the senior most member in each channel sends the user a peer message Second when a channel s member count is updated we send a channel message to all users connected to the lobby to update their room list Creating an Agora accountSign up for an account and log in to the dashboard Navigate to the Project List tab under the Project Management tab and create a project by clicking the blue Create button When prompted to use App ID Certificate select only App ID The App ID will be used to authorize your requests while you re developing the application without generating tokens Copy the App ID someplace safe we ll need it in a bit Note This guide does not implement token authentication which is recommended for all RTE apps running in production environments For more information about token based authentication in the Agora platform see Download the SourceYou can jump to the code if you like The code is open source and available on GitHub To try it out for yourself see the readme for steps on how to run the app Structure of our exampleThis is the structure of the application that we are building ├ーandroid ├ーcomponents │└ー Permission ts │└ー Style ts ├ーios ├ー App tsx App tsxApp tsx will be the entry point into the app We ll have all our code in this file We start by writing the import statements Next we define an interface for our application state containing the following appId our Agora App ID token token generated to join the channel inCall boolean to store if we re in an active video chat room inLobby boolean to store if we re in the lobby input string to store input when creating a new room peerIdsRTC array to store the RTC UIDs of other users in the video chat room seniors array storing RTM members who have joined the video chat room before us myUsername local user s name to log in to RTM rooms dictionary to store room names and their member count We define a class based component the rtcEngine variable will store the instance of the RtcEngine class and the rtmEngine variable will store the instance of the RtmEngine class which we can use to access the SDK functions In the constructor we set our state variables and request permission for recording audio on Android We use a helper function from permission ts as described below When the component is mounted we call the initRTC and initRTM functions which initialize the RTC and RTM engines using the App ID When the component unmounts we destroy our engine instances RTC Initialization We use the App ID to create our engine instance We use the enableVideo method to set the SDK in video mode The RTC triggers a userJoined event for each user present when we join the channel and for each new user who joins later The userOffline event is triggered when a user leaves the channel We use event listeners to keep our peerIds array updated with UIDs We will use this array later to render the video feeds from other users Once we ve joined a channel the SDK triggers the JoinChannelSuccess event We set our state variable inCall as true to render the video chat UI When a new user joins our video chat room if we re the senior member as discussed before we send a channel message with the updated user count to all members across channels using the lobby RTM channel RTM Initialization We re using RTM to send our room name and member count We maintain an array of seniors that is members who have joined the call before us If the seniors array size is lt it means we re the senior most member responsible for the signaling The local user is also part of the array First we attach the channelMemberJoined and channelMemberLeft listeners which are triggered when a user joins or leaves the RTM channel When a user joins the lobby channel if we re the senior most member we send them a peer message If a user leaves the current video chat channel we update the seniors array removing them from it if they had arrived before us We also send a channel message to the lobby if we are the senior member updating the count Next we attach the channelMessageReceived and messageReceived event listeners which are triggered when we receive a channel message and a peer message respectively We split the channelName memberCount string for example helloWorld and use the two pieces of data to update our dictionary for example rooms helloWorld roomTwo Join a Call We define a function to join the call that takes in the channel name as an argument We update the state with the channel name and join the channel on both RTM and RTC using the joinChannel methods We use the getChannelMembersBychannelId method on RTM to get the UIDs of the users on the channel If we re the only member we send a channel message to the lobby channel on RTM to update everyone about the created room Leaving the Call We leave the RTM and RTC video chat room channels but stay connected to the lobby channel on RTM to keep receiving updates We update our state by clearing the peerIds array the seniors array and the channelName We also set inCall as false and inLobby as true to render the lobby UI Rendering Our UI We define the render function for displaying buttons to display the status if we re in a call or the lobby We use the renderRooms function to render a scroll view which iterates over the rooms dictionary to show a list of created rooms with their member count The user can tap any room to join it which calls the joinCall function We also render a text input to let the user create a room that calls the same joinCall function with that input We use the renderCall function to render the videos once we re connected to a video chat room We use the RtcLocalView component from the SDK to render our own local user s video We use RtcRemoteView inside a scroll view to render the videos of connected users using the UIDs stored in the peerIds array We also display a button to leave the room Permission ts We re exporting a helper function to request microphone permissions from the Android OS Style ts The Style ts file contains the styling for the components What s next The same technique can be used to communicate other information such as names of users connected room description and room title We can even use the same mechanism to kick users off the call by sending an RTM message that when evaluated calls the leave channel method on the remote user s device ConclusionYou ve seen how we can leverage the Agora RTM SDK to share information and dynamically create video chat rooms You can refer to the Agora React Native API Reference for methods that can help you quickly add more features to your next real time engagement application |
2021-12-10 16:25:39 |
海外TECH |
DEV Community |
Contributing to Telescope project (part 3) |
https://dev.to/tuanthanh2067/contributing-to-telescope-project-part-3-65a
|
Contributing to Telescope project part IntroductionHello everyone this is part where I d like to talk more about the details of each issue that mentioned in part Process FirstPull request for the first issue can be found hereTo be honest this issue only took me around to minutes to fix as it s about removing const fetch require node fetch and changing it to const fetch require senecacdot satellite The thing is that you have to use a command to look for it git grep node fetch SecondPull request for the second issue can be found hereBecause Telescope is written in React so I have to work with component most of the time This is no exception I created a dedicated component for the share button import useState from react import Tooltip IconButton createStyles Zoom from material ui core import makeStyles Theme from material ui core styles import withStyles from material ui styles import CopyIcon from material ui icons FileCopyOutlined import Check from material ui icons Check type Props url string const ButtonTooltip withStyles tooltip fontSize rem margin Tooltip const useStyles makeStyles theme Theme gt createStyles copy fill theme palette primary main check fill fb const ShareButton url Props gt const classes useStyles const isCopiedToClipboard setIsCopiedToClipboard useState false const copyToClipboardEvent gt navigator clipboard writeText url setIsCopiedToClipboard true setTimeout gt setIsCopiedToClipboard false return isCopiedToClipboard lt ButtonTooltip title Copy URL arrow placement top TransitionComponent Zoom gt lt IconButton onClick gt copyToClipboardEvent gt lt CopyIcon className classes copy gt lt IconButton gt lt ButtonTooltip gt lt ButtonTooltip title Copied arrow placement top TransitionComponent Zoom gt lt IconButton gt lt Check className classes check gt lt IconButton gt lt ButtonTooltip gt export default ShareButton In the code above as you can see I tried to use as much material ui component as possible such as the CopyIcon Check icon and some class components For the share button when a user clicks it it will be changed to the check button It also shows tooltip to let user know what is happening After adding the share button component all I have to do is put it in both Posts PostInfo tsx and Posts Post tsx ThirdPull request for third issue can be found hereThis is my most commented pull request I ve ever had Because different people have different preferences so it s difficult to just make one that fits all And after that I also have struggle with aligning it properly in different screen sizes After struggling with that I also had to make eslint happy as new esline rules just got merged into the main branch After a while I thought I would have done but a problem with search bar occurred The problem was found when I pull new code from upstream and force push to my branch At first I found I introduced the bug so I spent way too much time figuring out how to fix it I almost gave up but it turned out that my code before I pulled from upstream was working just fine so I d believe that it was not me who introduced the bug After that I also had to adjust currentPost variable in order that it is side effect free This is the code that I added in Posts Timeline tsx const firstLength pages length const getCurrentPost pageIndex number postIndex number number gt this function takes indexes from the d posts array and length of the first array return pageIndex firstLength postIndex const postsTimeline pages map page pageIndex Array lt ReactElement gt ReactElement gt page map id url postIndex gt return lt PostComponent postUrl url key id currentPost getCurrentPost pageIndex postIndex totalPosts totalPosts gt Apart from that it s just about getting totalPosts adjusting styling Thank you for reading |
2021-12-10 16:24:01 |
海外TECH |
DEV Community |
SSL for beginners |
https://dev.to/alexkozin/ssl-for-beginners-517n
|
SSL for beginnersBrowsing the web you might wonder what is that lock icon next to the URL of my website That is your browser telling you this website is using SSL Secure Sockets Layer protocol If you click on the URL and expand it you will also notice the https attached to the beginning of it This means you are using HTTP over SSL But what are those things and why should you care When do I need to use SSL Your computer sends information to other computers through a web of routers devices that move route that information to different networks Routers are not trusted and can potentially read the information they receive SSL encrypts your information to prevent that Routers would still know the website hostname they need this information to know where to route your request However which page on that website you are visiting and what data you are sending will remain confidential Your app needs SSL if your users input any sensitive data on your website It is also a part of Google s search algorithm and not having SSL can result in lower rankings for your website Fortunately setting up SSL became a lot easier How does SSL work For SSL to work both ends of the communication have to support SSL There is no support required from the network in between this is often called end to end security SSL also does not need any support from the OS or hardware though the latter is available for speed performance it presents the same functionality as a socket The only difference is that the information is encrypted before sending it to the socket and decrypted after it was received from the socket Because it is a layer on top of sockets it can be used to secure any application not just web sessions SSL has two phases Key Exchange Handshake during this phase client and server authenticate and establish a shared secret key to use between each other That is a slow process and is only done once per session Communication during this phase messages are encrypted using the shared key from the handshake This phase is more efficient and can handle a large amount of data CertificatesAuthentication during the first phase happens through the exchange of certificates files that prove your identity Think about a digital certificate like a driver s license it has your full name date of birth and other fields which can be checked to verify your identity Certificates can have different formats but most if not all of them contain Issuer certificate authority that issued created this certificateSubject information about the bearer including the Common Name CN of the host like www google com Expiry date validity date version numbers etc Public keyDigital signature encryption with the private key of the bearer Here is an example of how a certificate for looks like when viewed in Chrome As part of the SSL protocol verifying these fields and making sure the certificate is in the right format and signed correctly is the work of service or library that uses SSL One such implementation is the open source OpenSSL library How do I get a certificate for my app There are many Certificate Authorities CAs available on the Internet Some hosting providers offer SSL out of the box One initiative I am particularly excited about is Let s Encrypt This CA is a non profit providing certificates for free Their validation is fully automated You install their client on your web server which runs ACME protocol and this serves as proof that you own the domain for which the certificate is requested Wouldn t my app run slower with SSL Of course it would Well marginally slower I would say SSL does not impose much of a performance penalty Most of the data is encrypted with a fast symmetric cipher That means the key you get during the handshake is used to both encrypt and decrypt messages Handshake takes longest on the order of times worse than a symmetric cipher under the hood it performs asymmetric decryption To combat that servers that do a lot of SSL communication can sometimes reuse a pre master secret This is a value used to derive the master secret the secret key used to communicate and encrypt messages Some servers can use hardware SSL acceleration A single cryptoaccelerator card can handle more than thousand SSL transactions a second making it a good choice for servers that need to offload SSL operations In most cases however the benefit of the security SSL provides outweighs the cost of implementation If the user s credentials are read while in transfer it does not matter if the connection to your website was faster by a couple of microseconds |
2021-12-10 16:04:26 |
Apple |
AppleInsider - Frontpage News |
Apple AirPods 3 drop to record low $139.99 at Amazon |
https://appleinsider.com/articles/21/12/10/apple-airpods-3-drop-to-record-low-13999-at-amazon?utm_medium=rss
|
Apple AirPods drop to record low at AmazonAmazon has broken its own record delivering the cheapest price we ve seen on Apple AirPods thanks to bonus savings at checkout Steeper AirPods price dropThe latest AirPods deal at Amazon delivers in bonus savings at checkout on top of a instant rebate dropping the price to a record low Read more |
2021-12-10 16:23:16 |
Apple |
AppleInsider - Frontpage News |
Sandisk Professional G-Drive SSD review - Fast enough, secure, and durable |
https://appleinsider.com/articles/21/12/10/sandisk-professional-g-drive-ssd-review---fast-enough-secure-and-durable?utm_medium=rss
|
Sandisk Professional G Drive SSD review Fast enough secure and durableIf you need to have portable and fast external storage for your MacBook Pro the SanDisk Professional G Drive SSD is a fast enough candidate that also provides considerable data security and physical protection Anyone who has run into capacity problems with their MacBook Pro in recent years will almost certainly have toyed with the idea of using external storage Though not necessarily as ideal as built in storage they are a great and relatively low cost solution to the problem The problem is that it requires you to carry an extra element around as part of your computing setup that takes up space in your bag and adds weight Then there s the potential for data loss from the external drive being damaged or breaking completely Read more |
2021-12-10 16:08:58 |
海外TECH |
Engadget |
Marvel's 'Eternals' will hit Disney+ on January 12th |
https://www.engadget.com/marvel-eternals-disney-plus-release-date-165501504.html?src=rss
|
Marvel x s x Eternals x will hit Disney on January thYou won t have to wait too much longer to catch Marvel Studios Eternals on Disney The movie will be available to stream on January th That s just over two months after the most recent Marvel Cinematic Universe film which received lukewarm reviews arrived in theaters Marvel Studios Eternals arrives to DisneyPlus on January pic twitter com wUdAgkVOーMarvel Studios MarvelStudios December In September Disney announced that its remaining slate of theatrical releases would get at least a day run in theaters before they were available to stream ーsave for Encanto which will hit Disney on December th just days after it landed in cinemas Eternals was one of those movies but Disney evidently decided to keep the movie exclusively in theaters beyond that minimum timeframe of days Starting with Mulan last September Disney experimented with allowing Disney subscribers to stream theatrical releases at home on the same day they debuted in cinemas for an extra fee However Scarlet Johansson sued the company claiming that the streaming strategy cost her up to million in lost earnings from Black Widow Disney settled the suit |
2021-12-10 16:55:01 |
海外TECH |
Engadget |
Apple's second-gen AirPods drop to $100, plus the rest of the week's best tech deals |
https://www.engadget.com/apple-second-gen-airpods-drop-to-100-best-weekly-tech-deals-164543846.html?src=rss
|
Apple x s second gen AirPods drop to plus the rest of the week x s best tech dealsIf you re still on the hunt for good tech gifts to give this year you still have time to grab some that will arrive before the holidays Apple s second generation AirPods are on sale again for while the Fitbit Charge fitness tracker is back down to Both Amazon s Kindle and a few Fire tablets are cheaper than usual and the company s new smart thermostat is percent off On top of that some of the best tech deals we saw for Black Friday and Cyber Monday are still available Here are the best tech deals from this week that you can still get today Apple AirPods nd gen Chris Velazco EngadgetThe previous generation AirPods are on sale for right now While not the latest models these are still decent earbuds that we liked for their improved wireless performance and good battery life Buy AirPods nd gen at Amazon Apple AirPods rd gen Billy Steele EngadgetApple s latest AirPods are down to right now or about off their normal price We gave them a score of for their more comfortable design much improved audio quality and longer battery life Buy AirPods rd gen at Amazon Apple TV KDevindra Hardawar EngadgetThe latest Apple TV K is off right now and down to which is a new record low It may be one of the more expensive streaming boxes out there but it s worth it for Apple loyalists We gave it a score of for its speedy performance Dolby Vision and Atmos support and much improved Siri remote Buy Apple TV K at Amazon Apple Watch Series The latest Apple Watch Series is cheaper right now bringing it down to It s the most comprehensive wearable Apple makes and it earned a score of from us for its larger screen faster charging and handy features in watchOS Buy Series at Amazon Fitbit Charge Valentina Palladino EngadgetYou can pick up the Fitbit Charge for right now or off and the same price as it was on Black Friday This is Fitbit s most comprehensive fitness band and it earned a score of from us for its full color touchscreen built in GPS onboard EDA sensors for stress tracking and multi day battery life Buy Charge at Amazon Amazon KindleEngadgetYou can grab the standard Kindle for and get three months of Kindle Unlimited for free with it We gave this e reader a score of for its improved contrast display extra front lights and sleeker design Buy Kindle at Amazon Amazon Fire tabletsValentina Palladino EngadgetA bunch of Fire tablets are on sale again ーyou can get the Fire for only the Fire HD for and the Fire HD for These are all close to Black Friday prices so you re still getting a good deal even if you missed the sales a few weeks ago We gave the Fire HD a score of for its refined design good performance and new USB C charging Buy Fire at Amazon Buy Fire HD at Amazon Buy Fire HD at Amazon Amazon smart thermostatAmazonAmazon s new smart thermostat is down to right now or percent off its normal price Like similar gadgets it s designed to save you money on your home heating and cooling by automating the process it doesn t have all the bells and whistles that other more expensive thermostats do but it s Energy Star certified and supports a feature called Hunches which will automatically adjust the temperature based on your habits You can also control it with Alexa if you have an Echo speaker or smart display in your home Buy smart thermostat at Amazon Instant Pot Duo NovaInstant Pot WalmartWalmart has an exclusive version of the quart Instant Pot Duo Nova for That s nearly half off the price that the normal model is going for on Amazon right now You ll get seven cooking modes along with additional one touch programs that make it easy to prepare things like soups stews porridge and more Buy Instant Pot Duo Nova quart at Walmart Sony WH XMOur favorite pair of Sony headphones the WH XM are down to right now which is just about off their regular price We gave these cans a score of for their powerful ANC immersive sound quality and multi device connectivity Buy WH XM at Amazon iRobot Roomba The Roomba is off bringing it down to This model came out earlier this year and works well on both hard and carpeted floors supports WiFi connectivity for Alexa and Google Assistant commands and can be controlled via the iRobot mobile app Buy Roomba at Amazon Samsung EVO Select microSDSamsung s EVO Select microSDXC card in GB is down to or percent off its normal price This is the latest model and while you can find microSD cards for less EVO is a reliable brand and you re getting a full sized adapter with this one Buy Samsung EVO Select GB at Amazon Ninja Foodi in multi cookerThis Ninja in multi cooker remains percent off bringing it down to In addition to pressure cooking slow cooking and steaming this machine can air fry broil dehydrate and more It also has a quart capacity which should be big enough to make food for a mid sized family or a holiday gathering Buy Ninja in multi cooker at Amazon Chromecast with Google TVThe Chromecast with Google TV has dropped to which is cheaper than usual We gave the device a score of for its K HDR streaming capabilities Dolby Vision and Atmos support plus its much needed and very handy new remote Buy Chromecast with Google TV at Best Buy Bose QuietComfort Bose s new QuietComfort headphones remain on sale for right now or off their normal price We gave them a score of for their clear balanced audio improved ANC and long battery life Buy Bose QC at Amazon Sony WF XMSony s excellent WF XM earbuds are down to We gave them a score of for their great sound quality powerful ANC and improved battery life Buy WF XM at Amazon Bose QuietComfort earbudsBose s QuietComfort earbuds have been discounted to which is off their regular rate These are some of the company s best true wireless earbuds and they earned a score of from us for their clear sound powerful ANC and comfortable size Buy QuietComfort earbuds at Amazon Echo Buds nd gen The second generation Echo Buds are on sale for right now Amazon massively improved its wireless earbuds this time around and we gave them a score of for their better sound quality good ANC and smaller design Buy Echo Buds nd gen at Amazon iRobot Roomba j iRobot s latest vacuum the Roomba j has dropped to while the robot without the clean base is down to This is one of the higher end robo vacs the company makes and it has new AI driven computer vision technology that can detect objects and move around them as it cleans That means it ll better avoid things like chairs and table legs as well as unexpected obstacles like pet poop The j also comes with a clean base into which the robot will empty debris at the end of every cleaning job Buy Roomba j at Amazon Buy Roomba j at Amazon Samsung ProSamsungSamsung s Pro is one of the best internal SSDs you can get right now and a TB model is on sale for right now It has sequential read speeds up to MB s and it ll work with the PS as long as you have a heatsink attached Buy Samsung Pro TB at Amazon Crucial PCrucial s P NAND NVMe SSD in TB is on sale for right now or percent off its regular rate This drive can reach sequential read speeds of up to MB s and its M format makes it a good option for both desktop and laptop users Buy Crucial P TB at Amazon Razer BookRazer s mainstream notebook the Razer Book has fallen to or percent off its usual price The model on sale is specced out it runs on an th gen Core i processor Iris Xe graphics GB of RAM GB of storage and a inch UHD touchscreen This laptop includes a generous array of ports eGPU compatibility and Chroma keyboard lighting Buy Razer Book at Amazon Razer Wolverine UltimateRazer s Wolverine Ultimate gaming controller is down to or off its normal price The controller that comes with your Xbox is pretty good but sometimes you might need a little more features from your gamepad The Wolverine Ultimate may be wired but it also has interchangeable thumbtacks and d pads so you can actually tweak the controller s layout according to the games you play and your own personal preferences Buy Wolverine Ultimate at Amazon Amazon EchoAmazon s Echo smart speaker is on sale for right now We gave it a score of for its solid audio quality attractive design and inclusion of a mm audio jack Buy Echo at Amazon Amazon Echo DotThe tiny Echo Dot has dropped to and you can grab the Echo Dot with Clock for only We gave it a score of for its good audio quality for the price compact design and tap to snooze feature Buy Echo Dot at Amazon Buy Echo Dot with Clock at Amazon Google Nest MiniThe Nest Mini is down to It s the affordable speaker to get if you want to put the Google Assistant in your home without dropping too much money or taking up too much space Buy Nest Mini at Best Buy New tech dealsTunnelbearOne of our favorite VPNs Tunnelbear is having a holiday sale that knocks percent off a one year plan so you ll pay just under for the service Tunnelbear supports most devices including Windows Android and iOS and the plan comes with support for up to five devices and bit AES encryption Buy Tunnelbear year NordVPNNordVPN is offering up a two year subscription for or percent off its normal price We like this service for its speed its no logs policy the thousands of servers it has to choose from and that one account supports up to six connected devices Buy NordVPN years Sonos refurbished saleSonos has discounted a number of its refurbished products including the Sonos One which is down to and the Beam soundbar which is on sale for The company has a pretty good refurbishment program and these prices are hard to come by on any Sonos devices refurb or not We gave the Sonos One speaker a score of for its attractive design excellent audio quality compatibility with a wide range of music services and multi room audio support Shop Sonos refurbished saleGoogle Nest Doorbell BatteryThe Nest Doorbell Battery is off as part of Best Buy s most recent flash sale This model doesn t require as much hardwiring installation as other smart doorbells since it runs on a rechargeable battery It works with the Google Home app to send you alerts when people packages and other things show up at your door and you can set specific Activity Zones to narrow down which areas you want to keep a close eye on Buy Nest Doorbell Battery at Best Buy Follow EngadgetDeals on Twitter for the latest tech deals and buying advice |
2021-12-10 16:45:43 |
海外TECH |
Engadget |
'PUBG: Battlegrounds' is going free to play, but ranked mode will still cost you |
https://www.engadget.com/pubg-battlegrounds-free-to-play-ranked-mode-premium-161058135.html?src=rss
|
x PUBG Battlegrounds x is going free to play but ranked mode will still cost youPUBG Battlegrounds which kickstarted the battle royale craze that swept the gaming world over the last few years is going free to play FP much like many of its rivals copycats The switch will take place on January th almost five years since it debuted as PlayerUnknown s Battlegrounds While casual players will be able to earn chicken dinners for free newcomers will still have to pay up for the competitive Ranked Mode Publisher Krafton is introducing an optional Battlegrounds Plus upgrade For a one off payment of you ll get access to Ranked and custom modes an XP boost in game items and other perks Those who have already paid for the game will get Battlegrounds Plus and extra goodies “As PUBG Battlegrounds nbsp pioneered the battle royale genre and has grown into a globally influential game IP this is the perfect time to transition to FP and welcome new players to the game Krafton CEO CH Kim said “Transitioning to FP is the next step in our journey to widen the scope of the PUBG IP through content that both new and veteran players will love PUBG Battlegrounds which Krafton says has sold more than million copies nbsp is still immensely popular At any given moment over the last month an average of more than people were playing the game on Steam alone That figure often more than doubled at peak times The free to play switch will likely boost the player count even higher |
2021-12-10 16:10:58 |
海外TECH |
Engadget |
'Banjo-Kazooie' joins the Switch Online Expansion Pack in January |
https://www.engadget.com/banjo-kazooie-switch-online-expansion-pack-160039264.html?src=rss
|
x Banjo Kazooie x joins the Switch Online Expansion Pack in JanuaryRare s beloved collect a thon platformer Banjo Kazooie will be the latest title added to Expansion Pack Nintendo s premium online subscription Expansion Pack ーitself an addition to Switch Online ーalready supports a wealth of classic games from the early D era like Star Fox SuperMario and The Legend of Zelda Ocarina of Time as well as some memorable additions from the Sega Genesis library nbsp Banjo s on a mission to rescue his sister from the envious wicked witch Gruntilda Foil her selfish plan to snatch the beauty from Tooty in Banjo Kazooie available to NintendoSwitchOnline Expansion Pack members in January Nintendopic twitter com pvPDaRvwrーNintendo of America NintendoAmerica December The roadmap for Expansion Pack teased Banjo Kazooie back in September but the company has now confirmed it will be playable on modern hardware come January While Switch Online can be purchased in or month increments Expansion Pack is only available as a year long subscription It retails for an additional on top of Switch Online s annual price tag nbsp |
2021-12-10 16:00:39 |
海外TECH |
CodeProject Latest Articles |
Getting Started With Asynchronous Streams |
https://www.codeproject.com/Articles/5319506/Getting-Started-With-Asynchronous-Streams
|
response |
2021-12-10 16:21:00 |
海外科学 |
NYT > Science |
Unraveling How an Extinct Mollusk Got Its Strange Shell |
https://www.nytimes.com/2021/12/10/science/mollusk-shells-mathematics.html
|
ammonites |
2021-12-10 16:48:18 |
金融 |
金融庁ホームページ |
金融審議会「資金決済ワーキング・グループ」(第4回)を開催します。 |
https://www.fsa.go.jp/news/r3/singi/20211210shikinkessai_wg4.html
|
金融審議会 |
2021-12-10 17:00:00 |
金融 |
金融庁ホームページ |
第17回金融審議会公認会計士制度部会議事次第について公表しました。 |
https://www.fsa.go.jp/singi/singi_kinyu/kounin/siryou/20211213.html
|
公認会計士制度 |
2021-12-10 17:00:00 |
金融 |
金融庁ホームページ |
第15回「金融庁・全米保険監督官協会定期会合」の開催について公表しました。 |
https://www.fsa.go.jp/inter/etc/20211210/20211210.html
|
開催 |
2021-12-10 17:00:00 |
ニュース |
BBC News - Home |
Two vaccine doses don't stop you catching Omicron |
https://www.bbc.co.uk/news/health-59615005?at_medium=RSS&at_campaign=KARANGA
|
covid |
2021-12-10 16:57:56 |
ニュース |
BBC News - Home |
Ex-Tory minister Andrew Griffiths found to have raped wife |
https://www.bbc.co.uk/news/uk-england-stoke-staffordshire-59611761?at_medium=RSS&at_campaign=KARANGA
|
court |
2021-12-10 16:36:51 |
ニュース |
BBC News - Home |
Downing Street Christmas party cancelled |
https://www.bbc.co.uk/news/uk-politics-59606793?at_medium=RSS&at_campaign=KARANGA
|
gatherings |
2021-12-10 16:16:54 |
ニュース |
BBC News - Home |
US Supreme Court says Texas abortion clinics can sue over law |
https://www.bbc.co.uk/news/world-us-canada-59381081?at_medium=RSS&at_campaign=KARANGA
|
abortion |
2021-12-10 16:57:33 |
ニュース |
BBC News - Home |
Abdul Elahi: Sexual blackmailer jailed for 32 years |
https://www.bbc.co.uk/news/uk-england-birmingham-59614734?at_medium=RSS&at_campaign=KARANGA
|
elahi |
2021-12-10 16:56:04 |
ニュース |
BBC News - Home |
Prince William and Kate's Christmas card shows family in Jordan |
https://www.bbc.co.uk/news/uk-59613071?at_medium=RSS&at_campaign=KARANGA
|
festive |
2021-12-10 16:35:55 |
ニュース |
BBC News - Home |
Covid: What are the social distancing rules across the UK? |
https://www.bbc.co.uk/news/uk-51506729?at_medium=RSS&at_campaign=KARANGA
|
omicron |
2021-12-10 16:30:52 |
コメント
コメントを投稿