投稿時間:2022-02-08 05:38:36 RSSフィード2022-02-08 05:00 分まとめ(41件)

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
AWS AWS Partner Network (APN) Blog Instant Cutover for High-Availability Legacy Workload Migration Using AWS Outposts, CloudEndure, and Stromasys https://aws.amazon.com/blogs/apn/instant-cutover-for-high-availability-legacy-workload-migration-using-aws-outposts-cloudendure-and-stromasys/ Instant Cutover for High Availability Legacy Workload Migration Using AWS Outposts CloudEndure and StromasysNumerous legacy workloads still hosted on premises are mission critical and hardly interruptible Their migration to AWS must happen quasi transparently for their users This post details how the combination of AWS Outposts and CloudEndure can be used to solve for this issue We demonstrate this by migrating a Solaris machine making use of the Charon SSP emulator by Stromasys running on standard Amazon EC instances and using CloudEndure 2022-02-07 19:02:56
AWS AWS Big Data Blog Build a REST API to enable data consumption from Amazon Redshift https://aws.amazon.com/blogs/big-data/build-a-rest-api-to-enable-data-consumption-from-amazon-redshift/ Build a REST API to enable data consumption from Amazon RedshiftAPI Application Programming Interface is a design pattern used to expose a platform or application to another party APIs enable programs and applications to communicate with platforms and services and can be designed to use REST REpresentational State Transfer as a software architecture style APIs in OLTP online transaction processing are called frequently tens to … 2022-02-07 19:27:57
AWS AWS AWS Academy Helps CSU Bring Cloud Industry to Campus - Dr. Michael Soltys | Amazon Web Services https://www.youtube.com/watch?v=iCu_jWgSnzk AWS Academy Helps CSU Bring Cloud Industry to Campus Dr Michael Soltys Amazon Web ServicesDr Michael Soltys on how AWS Academy helps prepare his students for industry recognized certifications and careers in the cloud Learn more at Subscribe More AWS videos More AWS events videos ABOUT AWSAmazon Web Services AWS is the world s most comprehensive and broadly adopted cloud platform offering over fully featured services from data centers globally Millions of customers ーincluding the fastest growing startups largest enterprises and leading government agencies ーare using AWS to lower costs become more agile and innovate faster AWS AmazonWebServices CloudComputing 2022-02-07 19:17:59
AWS AWS AWS re/Start Emerging Talent at Capgemini | Amazon Web Services https://www.youtube.com/watch?v=5EEWLBnbSy0 AWS re Start Emerging Talent at Capgemini Amazon Web ServicesAWS re Start is a full time classroom based skills development and training program that prepares invividuals for careers in the cloud and connects them to potential employers Learn more at Subscribe More AWS videos More AWS events videos ABOUT AWSAmazon Web Services AWS is the world s most comprehensive and broadly adopted cloud platform offering over fully featured services from data centers globally Millions of customers ーincluding the fastest growing startups largest enterprises and leading government agencies ーare using AWS to lower costs become more agile and innovate faster AWS AmazonWebServices CloudComputing 2022-02-07 19:17:55
Ruby Rubyタグが付けられた新着投稿 - Qiita Ruby Hanamiでguard-rspecを使うときのGuardfileの参考例 https://qiita.com/sinshutu/items/d9b12ef0d1d99ac81a40 2022-02-08 04:22:25
海外TECH Ars Technica Atomic cloud key to controlling a quantum state without measuring it https://arstechnica.com/?p=1832105 atoms 2022-02-07 19:17:29
海外TECH MakeUseOf The Best TVs for Watching Sports: Save Up to $2,000 Through Us https://www.makeuseof.com/best-tvs-for-watching-sports/ premium 2022-02-07 19:56:07
海外TECH MakeUseOf How to Organize Your Online Contacts for Networking Success https://www.makeuseof.com/organize-online-contacts-for-networking-success/ contacts 2022-02-07 19:45:38
海外TECH MakeUseOf 7 Ways to Upgrade Your Gaming PC Other Than Buying a New Graphics Card https://www.makeuseof.com/ways-to-upgrade-pc-other-than-graphics-card/ buying 2022-02-07 19:30:23
海外TECH MakeUseOf 5 Things You Need to Do After Updating to Windows 11 https://www.makeuseof.com/windows-11-things-to-do-after-updating/ updating 2022-02-07 19:16:12
海外TECH DEV Community Why Most Wordle Clones are Wrong! https://dev.to/denvercoder1/why-most-wordle-clones-are-wrong-390c Why Most Wordle Clones are Wrong Wordle the new online viral game everyone s talking about at first glance seems to be not such a difficult feat for an average programmer In this post I will be talking about a mistake that even experienced developers make when coding Wordle and how it can be fixed The rules of Wordle are straightforward Guess the secret word wihin tries Each guess must be a valid letter word After each guess the color of the tiles will change to show how close your guess was to the word GREEN The letter is in the word and in the correct spot YELLOW The letter is in the word but in the wrong spot GRAY The letter is not in the word in any spot So why are most hobbyists and even content creators such as Web Dev Simplified and Burke Holland from Visual Studio Code getting it wrong The mistakeThe common mistake that nearly all Wordle clone creators make is by oversimplifying the algorithm by misunderstanding an ambiguity in the rules During my attempt at creating a Wordle clone I admit to have fallen for this trap initially myself until I realized that for some inputs the most obvious solution is not a correct one Consider the following code snippet used for determining which color should be assigned to each letter in the guess Can you spot the mistake function colorRow answer guess const colors for let i i lt guess length i if guess i answer i colors push GREEN else if answer includes guess i colors push YELLOW else colors push GRAY return colors The mistake here is that if the guess contains multiple of the same letter they would all be marked with at least yellow even if there was only one of them in the answer Example Consider the correct answer is THOSE If a player were to guess the word GEESE the algorithm above would produce the result GRAY YELLOW YELLOW GREEN GREEN This would imply that the correct answer has two E s in the wrong location and one E in the correct location a total of three E s A correct algorithm however working the same as Wordle itself would produce the result GRAY GRAY GRAY GREEN GREEN As another example If the answer is DREAD and ADDED is guessed the result produced would be YELLOW YELLOW YELLOW YELLOW GREEN This implies no letters are missing but in fact one of the D s is wrong and the R is missing Only one of the wrongly placed D s should be marked Yellow A correct algorithm would produce the result YELLOW YELLOW GRAY YELLOW GREEN Feel free to take a moment to challenge yourself to come up with a correct algorithm before continuing to the last section of the article The solutionA single for loop is not enough as the colors of the tiles will change depending on the colors of other tiles in the same row We always want correct letters in the correct spot to be green so we will score those first and remove them from the answer so they cannot be scored again later as a yellow letter Next we want to score the correct letters in the wrong spot as yellow Again we need to remove them from the answer so they cannot be scored again later by an additional yellow letter as in the case of DREAD and ADDED Finally all the remaining letters that are not in the answer are gray Here is an example of an algorithm that has been corrected for this mistake there is more than one possible solution function colorRow answer guess initialize all colors to GRAY const colors Array guess length fill GRAY loop through guess and mark green if fully correct for let i i lt guess length i if guess i answer i colors i GREEN remove letter from answer so it s not scored again answer answer replace guess i loop through guess and mark yellow if partially correct for let i i lt guess length i if guess i answer i amp amp answer includes guess i colors i YELLOW remove letter from answer so it s not scored again answer answer replace guess i return colors In this algorithm the first occurrence of a letter in the answer is replaced with a space so that it still takes up an index in the answer string but it is no longer able to be scored again After the first line we will have an array containing GRAY for each letter in the guess Once we have completed the first loop we will have an array containing GREEN for each letter in the guess that is fully correct and GRAY for all other letters The answer will now no longer have letters that have been scored as green After the second loop we will have an array still containing the greens but now also including all YELLOW tiles that have been scored All letters that do not appear in the word will remain as GRAY Finally we will have an array containing all the colors for each letter in the guess and we can return it ConclusionI hope you found this tutorial useful Maybe it will help you to make or fix a Wordle Clone of your own I do not mean in any way to say that any creators or their tutorials are bad in any way The creators who made these tutorials have great educational content and I do not think one should think less of them due to a commonly made error Always remember to be nice when approaching creators in comments If you re interested in learning how to make a Discord Bot in Python to play Wordle check out my tutorial Jonah LawrenceGitHub DenverCoderYouTube Jonah Lawrence Dev Pro TipsTwitter DenverCoder 2022-02-07 19:27:09
海外TECH DEV Community How to build a fully functional chat application by implementing the chat server using Django Channel. https://dev.to/duncandegwa/how-to-build-a-fully-functional-chat-application-by-implementing-the-chat-server-using-django-channel-2i95 How to build a fully functional chat application by implementing the chat server using Django Channel This tutorial will build a fully functional chat application by implementing the chat server using Django Channel Channel is created on the async server that Django uses to implement application servers which is ASGI ASGI is the server specification that the Channel was built upon Like the Web Server Gateway Interface WSGI this gives the opportunity of choosing servers and a framework of choice rather than just accepting the Channel server called Daphne Channel allows not only the HyperText Transfer Protocol but other protocols that have long connections time too It can also be integrated with WebSockets chatbots and more It also allows both the synchronous and asynchronous parts of Django s views through the Channels layers This layer makes communication easier by dividing the application into different processes Spinning up the projectLet us get started on building the chat application We have to spin up Django s server by making a fresh project from scratch Navigate to your terminal and follow the processes below cd Desktop mkdir newproject cd newproject virtualenv venv cd venv source venv Scripts activate pip install djangoNow that we have the latest Django version we can prepare the project using the commands below django admin startproject mychatapp cd mychatapp code python manage py runserverOpen the browser and route to http localhost the Django s default project page will show up Let install the channels dependency and make the requirements file python m pip install U channels pip freeze gt requirements txtMake sure that the Channel is added to the INSTALLED APP in the settings py file of your project folder However it was said earlier that Channels was built on top of ASGI and for that reason the asgi py file in the mychatapp has to be adjusted with the codes below import osfrom channels routing import ProtocolTypeRouterfrom django core asgi import get asgi applicationos environ setdefault DJANGO SETTINGS MODULE mychatapp settings application ProtocolTypeRouter http get asgi application Finally the ASGI has to be pointing to your asgi py file and that is done in the settings py Note that this will replace the WSGIserver that came default with the Django project ASGI APPLICATION myproject asgi application The Channel server will take over the default Django s WSGI server and allow only the HTTP protocol with this code Run the server with the command below and then open up the browser with the localhost you should see the message of internal server error python manage py run server Creating the chat appIt is a good practice to separate the codes for the chats in its stand alone application Following the Django way of creating an app python manage py startapp chatapp Add the new app to the installed apps section inside the settings py file The next thing is to create a template folder inside the chat app Then make a chat app folder and inside that make an index html file Navigate to the index html and paste the boiler codes below lt chatapp templates chatapp index html gt lt DOCTYPE html gt lt html gt lt head gt lt meta charset utf gt lt title gt Chats Room lt title gt lt head gt lt body gt lt div class container gt lt h gt Enter any chat room of your choice lt h gt lt br gt lt input id roomname type text size gt lt br gt lt br gt lt input id submit type button value Enter gt lt div gt lt script gt document querySelector roomname focus document querySelector submit onclick function e var myRoom document querySelector roomname value window location pathname chats myRoom lt script gt lt body gt lt html gt The HTML template code allows clients to enter the name of the chat room they are navigating Then the JavaScript does the trick by grabbing the submitted room name Having submitted the room name it will be attached to the windows path and sent to the server The server will receive the request and match it to the URLs if found We have to make both the URLs and views for the incoming HTTP requests from clients In the views py file inside the chat app we can define the index method as chatapp views pyfrom django shortcuts import renderdef index request return render request chatapp index html To call the views we have to map it with the URLConf Make urls py file inside the chat app folder chatapp urls pyfrom django urls import pathfrom views import indexapp name chatapp urlpatterns path index name index The next step is to register the app URLConf file with the project Navigate to the urls py of the mychatapp folder and do the mapping like below from Django contrib import adminfrom Django URLs import path includeurlpatterns path chats include chatapp urls path admin admin site urls Now run your server python manage py runserverRunning the server and navigating to the http localhost chats will open the chat page with both the inputs and submit buttons But if you type in any room name you should receive a page not found message because we have not implemented any other chat room for communication Setting up a chat serverFirst of all we need to add another room chat template Inside the chat app templates make chatroom html and paste the following codes lt chatapp templates chatapp chatroom html gt lt DOCTYPE html gt lt html gt lt head gt lt meta charset utf gt lt title gt Other Chats Room lt title gt lt head gt lt body gt lt div class container gt lt h gt Chats Log lt h gt lt textarea id log cols rows gt lt textarea gt lt br gt lt h gt Enter your chats here lt h gt lt input id chatmssg type text size placeholder Your message goes here gt lt br gt lt br gt lt input id submit type button value Send gt lt div gt room name json script roomname lt script gt const roomName JSON parse document getElementById roomname textContent const chatSocket new WebSocket ws window location host ws chat roomName chatSocket onmessage function e const data JSON parse e data document querySelector log value data message n chatSocket onclose function e console error Ooops Chats closed document querySelector chatmssg focus document querySelector submit onclick function e const messageDom document querySelector chatmssg const message messageDom value chatSocket send JSON stringify message message message lt script gt lt body gt lt html gt Note that the common convention to distinguish the HTTP connection from WebSockets is to use the ws protocol In the views py file we have to make a function that will match the client request through the URLs def roomName request room name return render request chatapp chatroom html room name room name This will grab whatever room name received from the request and send it to the Html templates rendered Once it has been received the chatroom html will be opened for chatting While the URLs will be something like this chatapp urls pyfrom django urls import pathfrom views import index roomNameapp name chatapp urlpatterns path index name index path lt str room name gt roomName name room When running the server do move to http localhost chats you should confirm the below image Then enter any room name of your choice for connections That will open up the chat room like this But we have to make a consumer that will accept the WebSocket connections Making consumers accept the connectionHistorically Django servers route URLConf to the appropriate view function and send the Html templates The same thing goes to when Channels using the Daphne server receives any request it maps the routing to the consumer and looks up to appropriate function Now we will make the consumers py file inside the chat app folder import jsonfrom asgiref sync import async to syncfrom channels generic websocket import WebsocketConsumerclass Consumer WebsocketConsumer def connect self self room name self scope url route kwargs room name self room group name chat s self room name Join room group async to sync self channel layer group add self room group name self channel name self accept def disconnect self close code Leave room group async to sync self channel layer group discard self room group name self channel name Receive message from WebSocket def receive self text data text data json json loads text data message text data json message Send message to room group async to sync self channel layer group send self room group name type chat message message message Receive message from room group def chat message self event message event message Send message to WebSocket self send text data json dumps message message Now create the routing py file in the chat app folder This will map the incoming WebSocket connection to the appropriate consumer function from Django URLs import re pathfrom consumers import Consumerwebsocket urlpatterns re path r ws chat P lt room name gt w Consumer as asgi Note the regular expression used This is because of the limitation with URLRouter Also the as asgi method called on the Consumer class does the same task with the class based views method in Django which is as view Now we have to make the root routing connection with the server This is to allow the connection between the multiple requests or clients chatting at the same time Navigate to the asgi py in the chat app folder and replace the codes with the following mychatapp asgi pyimport osfrom channels auth import AuthMiddlewareStackfrom channels routing import ProtocolTypeRouter URLRouterfrom django core asgi import get asgi applicationimport chatapp routing os environ setdefault DJANGO SETTINGS MODULE mychatapp settings application ProtocolTypeRouter http get asgi application websocket AuthMiddlewareStack URLRouter chatapp routing websocket urlpatterns The final step is to enable a channel layer to allow multiple chats connection from different clients The abstractions behind this layer are Each of the channels has a name and any client having the name can send a message in as much server is still on Channel layers also can be grouped Every group has a name and anyone can remove or add a channel having the precise name The trick is that every consumer will generate a Channel name that can be communicated with We will be using the channel layer that uses Redis as its backbone database This will help to store the frequent chats as long as the chat server is still in connection Now we have to spin up the Redis server on default port by running the following command Note you need to have Docker Redis and channels redis installed docker run p d redis python m pip install channels redis pip freeze gt requiremnts txtHaving installed the dependencies we have to track the layers by adding the code below to settings py just under the ASGI APPLICATION This will allow the host machine to connect with the Redis server mychatapp settings pyCHANNEL LAYERS default BACKEND channels redis core RedisChannelLayer CONFIG hosts To test the application open a browser window and an incognito tab window Simultaneously And spin up the server python manage py runserverOpen browser to chats room in both windows and type messages You will receive them in the two chat logs textarea Now you have a functional basic chat application I commend your efforts You care to know more navigate to Channels Visit my git my github profile here 2022-02-07 19:26:55
海外TECH DEV Community Create a Password Protected ZIP file in Mac OS X https://dev.to/adnanafzal565/create-a-password-protected-zip-file-in-mac-os-x-3oh5 Create a Password Protected ZIP file in Mac OS X 2022-02-07 19:21:12
海外TECH DEV Community SPO600 - Lab03 https://dev.to/xguhx/spo600-lab03-cc4 SPO LabFor lab we were supposed to create a basic game or calculator using assembly language My ideaWe the professor noticed us Assembly language is hard and we should keep it simple as much as we can My idea was to create a simple calculator that would divide any number from to by using LSR Logical Shift Right The way it worksFirst I display a message to the user Type a number from to I did it using dcb and CHROUT this way LDY nextchar DISPLAY INITIAL MESSAGE LDA msg Y BEQ getnumber JSR CHROUT INY BNE nextchar msg dcb T y p e a n u m b e r f r o m t o Then I get the input from the user using CHRIN getnumber ACCEPT ONLY NUMBERS LDY JSR CHRIN CMP BEQ getnumber CMP BMI getnumber CMP BPL getnumber LDX A Load x register with A JSR CHROUTThis code means accept only numbers from to if user enters something different than that then it will be ignored After that I display the following message Your number dividev by to is dividemsg DISPLAY DIVIDE MESSAGE LDA msg y BEQ result JSR CHROUT INY BNE dividemsg msg dcb d Y o u r n u m b e r d i v i d e d b y i s After the message is displayed the result should be outputs in the result label result GET THE RESULT LSR DIVIDE BY LDY CPX Compare X with BEQ zero Display divide by message LSR X Divide by LDA X load result in A JSR CHROUT Display the resultIt is important to say that I could not make this part work properly the result is not displaying to the user And if the user is trying to divide by then a message should be displayed zero MESSAGE IN CASE DIVIDING BY LDA msg y BEQ done JSR CHROUT INY BNE zerodone BRKThe entire code can be found here define SCINIT ff initialize clear screendefine CHRIN ffcf input character from keyboarddefine CHROUT ffd output character to screendefine SCREEN ffed get screen sizedefine PLOT fff get set cursor coordinates LDY nextchar DISPLAY INITIAL MESSAGE LDA msg Y BEQ getnumber JSR CHROUT INY BNE nextchar getnumber ACCEPT ONLY NUMBERS LDY JSR CHRIN CMP BEQ getnumber CMP BMI getnumber CMP BPL getnumber LDX A Load x register with A JSR CHROUTLDY dividemsg DISPLAY DIVIDE MESSAGE LDA msg y BEQ result JSR CHROUT INY BNE dividemsg result GET THE RESULT LSR DIVIDE BY LDY CPX Compare X with BEQ zero Display divide by message LSR X Divide by LDA X load result in A JSR CHROUT Display the resultzero MESSAGE IN CASE DIVIDING BY LDA msg y BEQ done JSR CHROUT INY BNE zerodone BRKmsg dcb T y p e a n u m b e r f r o m t o msg dcb d Y o u r n u m b e r d i v i d e d b y i s msg dcb C a n n o t d i v i d e 2022-02-07 19:20:36
海外TECH DEV Community How to Setup React Native Web in a Remix project https://dev.to/horusgoul/how-to-setup-react-native-web-in-a-remix-project-357o How to Setup React Native Web in a Remix projectI assume you re here because you want to know how to set up React Native Web in your Remix project Well you re lucky I had to do this a few days ago and I haven t run into trouble with it yet so here s a tutorial about it Let s get started The result of this tutorial is also available as a GitHub repository that you can just clone to get started with your project Installing the react native web packageThe first thing you have to do is install the react native web package However since we can t customize our build process because Remix doesn t allow it yet we ll need to use a package manager that will enable you to install a package with an alias In this case I decided to use pnpm pnpm add react native npm react native webThen the types if you re using TypeScript Note that not all types will be correct for a React Native Web project but that s out of the scope of this tutorial pnpm add save dev types react native React Native Web StylesReact Native Web has its own way of handling styles and for SSR and hydration they give you a stylesheet element that you have to place in the lt head gt of your page We ll pass that stylesheet element to our Root using the Context API Let s do that by creating a rn styles tsx file inside the app folder Here s the content for that file import createContext Fragment useContext from react export const ReactNativeStylesContext createContext lt React ReactElement lt unknown gt gt lt Fragment gt export function useReactNativeStyles return useContext ReactNativeStylesContext Now let s move to the app root tsx file We ll now use the useReactNativeStyles hook and put the stylesElement inside the lt head gt Also we ll wrap the lt Outlet gt component with a View with a few properties to match the React Native Web behavior import useReactNativeStyles from rn styles import View StyleSheet from react native export default function App const stylesElement useReactNativeStyles return lt html lang en gt lt head gt stylesElement lt head gt lt body gt lt View pointerEvents box none style styles appContainer gt lt Outlet gt lt View gt lt body gt lt html gt const styles StyleSheet create appContainer flex We also need to add a global stylesheet to Remix that contains the following html body height body display flex Take a look at the Remix Docs about Stylesheets if you don t know how to add CSS in a Remix project SSR and HydrationAssuming you haven t modified the app entry client tsx file just replace its contents with the following import RemixBrowser from remix import hydrate from react dom import AppRegistry from react native import ReactNativeStylesContext from rn styles const App gt lt RemixBrowser gt AppRegistry registerComponent App gt App ts ignoreconst getStyleElement AppRegistry getApplication App hydrate lt ReactNativeStylesContext Provider value getStyleElement gt lt App gt lt ReactNativeStylesContext Provider gt document What s going on with that code We re using React Native Web AppRegistry to get the initial styles for the app and avoid hydration from failing Now let s move to the app entry server tsx file where we ll do a similar thing Take a look at the code import renderToString from react dom server import RemixServer type EntryContext from remix import AppRegistry from react native import ReactNativeStylesContext from rn styles export default function handleRequest request Request responseStatusCode number responseHeaders Headers remixContext EntryContext const App gt lt RemixServer context remixContext url request url gt AppRegistry registerComponent App gt App ts ignore const getStyleElement AppRegistry getApplication App const page lt ReactNativeStylesContext Provider value getStyleElement gt lt App gt lt ReactNativeStylesContext Provider gt const markup renderToString page responseHeaders set Content Type text html return new Response lt DOCTYPE html gt markup status responseStatusCode headers responseHeaders Again we re using the AppRegistry to get the app styles and then pass them to the remix app using the ReactNativeStylesContext Using React Native Web componentsOne last thing you could do if you re doing this in a new project is to go ahead and replace your app routes index tsx with the following import Text View from react native export default function Index return lt View gt lt Text gt Hello world lt Text gt lt View gt Then do pnpm dev and open your project in the browser to see your first Remix route rendered with React Native Web components I hope you liked this article Don t forget to follow me on Twitter if you want to know when I publish something new about web development HorusGoul 2022-02-07 19:18:58
海外TECH DEV Community Image Uploader Challenge https://dev.to/nisabmohd/image-uploader-challenge-4cd9 Image Uploader ChallengeDemo Github Made using React and Firebase 2022-02-07 19:10:46
海外TECH DEV Community Preventing GraphQL batching attacks https://dev.to/ivandotv/preventing-graphql-batching-attacks-56o3 Preventing GraphQL batching attacksIn this post I m going to explain what is GraphQL batching attack and how you can defend from it GraphQL can send multiple queries with a single request and this can be open to abuse Consider this mutation where we are trying different password username combinations mutation login pass username ivan second login pass username ivan third login pass username ivan fourth login pass username ivan This is effectively the same query login that is aliased to different names Or this query which can easily DoS your server query getUsers first second getUsers first third getUsers first fourth getUsers first There are a couple of techniques that can be used to prevent this kind of problem one of them is GraphQL Query Complexity Analysis which is as the name suggests very complex to implement correctly It requires analysis of how the graphql API is used and what queries and mutations are most often called If you get this wrong there is a danger of the server denying perfectly valid queries The second solution that can somewhat eliminate this problem is implementing grapql dataLoader which is also tricky to get right and it will require you to change your resolvers The third solution which I will present here is to simply disable duplicate queries and mutations How it worksWhile the alias functionality cannot be directly disabled at least not in the current Grahpql JS implementation we need to analyze the query that is coming to the server and if it contains duplicate queries and mutations simply deny the request To deny the request we need to hook in the validation phase of the GraphQL server The validation phase is the phase when the request is received by the server but before it is executed at that point we can decide if we want to proceed with the execution of the request or immediately return to the client with the reason why the request has been denied For this we are going to use GraphQL No Alias library There are two ways to use this library Using the noAliasdirective in the schemaUsing the configuration options better performance Using the directiveThere are two parts a directive that needs to be added to the schema and a validation function that needs to be added to the GraphQL validationRules array In the next example we are going to start implementing the noAlias directive by limiting all mutations to only one of each by specifying the directive directly on the mutation type and we are going to limit query hello to maximum calls in the same request For the actual GraphQL server we are going to use express graphql but the directive should work with any server implemented in javascript In the upcoming examples I m going to use express graphql as the graphql server simply because it is easiest to setup however useage with any other server is the same const express require express const graphqlHTTP require express graphql const buildSchema require graphql const createValidation require graphql no alias get the validation function and type definition of the declarationconst typeDefs validation createValidation add type defintion to schemaconst schema buildSchema typeDefs type Query hello String noAlias allow type Mutation noAlias login username String password String String getUsers startingId String String const app express app use graphql graphqlHTTP schema schema rootValue root graphiql true validationRules validation add the validation function app listen Now if you send a query like this query hello hello hello It will pass however this query will not because the maximum allowed calls for query hello is calls query hello hello hello hello hello And for the mutation mutation login pass username ivan second login login pass username ivan This will fail because you can t have any duplicate mutations noAlias directive is set directly on the Mutation type with no value which means that the default value of will be used And that s it that is all it takes to manipulate the number of queries and mutations in GraphQL requests Next we are going to look at using the graphql no alias validation imperatively Imperative configurationThere is another way to use graphql no alias validation directive and that is with the imperative configuration When using imperative configuration there is no need for type definition and schema modification this also results in better performance since the schema is not analyzed not looking for directives All we need to do is to create a simple Javascript object with appropriate keys and pass that object to the createValidation function const permissions Query default value for all queries getAnotherUser custom value for specific query Mutation default value for all mutations const validation createValidation permissions const schema buildSchema GraphQL type Query getUser User getAnotherUser User type User name String const app express app use graphql graphqlHTTP schema schema rootValue root graphiql true validationRules validation add the validation function That s it that is all it takes to disable multiple identical queries and mutations to be sent in a single request to a GraphQL server Make sure to check out the library on Github for more usage examples BonusI ve also created another validation library No batched queries which limits the number of all queries and mutations that could be sent per request It pairs nicely with this validation so you could allow for example queries to be sent and then use noAlias to disable duplicate queries 2022-02-07 19:06:18
Apple AppleInsider - Frontpage News Best deals Feb. 7: $159 Apple TV 4K, $99 Gen 2 AirPods, more! https://appleinsider.com/articles/22/02/07/best-deals-feb-7-159-apple-tv-4k-99-gen-2-airpods-more?utm_medium=rss Best deals Feb Apple TV K Gen AirPods more Monday s best deals include discounts on TurboTax suites off the Apple TV K third gen AirPods for and a TB SanDisk SSD for Best deals for February As we do every day we ve collected some of the best deals we could find on Apple products tech accessories and other items for the AppleInsider audience If an item is out of stock it may still be able to be ordered for delivery at a later date Read more 2022-02-07 19:10:03
海外TECH CodeProject Latest Articles A Generic Form of the NameValueCollection https://www.codeproject.com/Articles/5323395/A-Generic-Form-of-the-NameValueCollection namevaluecollection 2022-02-07 19:47:00
海外TECH CodeProject Latest Articles Azure AD Managed Identities: Java Apps on Azure App Service https://www.codeproject.com/Articles/5323743/Azure-AD-Managed-Identities-Java-Apps-on-Azure-App azure 2022-02-07 19:19:00
ニュース BBC News - Home Ukraine crisis: World leaders step up talks amid invasion fears https://www.bbc.co.uk/news/world-europe-60292437?at_medium=RSS&at_campaign=KARANGA fears 2022-02-07 19:37:04
ニュース BBC News - Home Keir Starmer: Two arrested after protesters surround Labour leader https://www.bbc.co.uk/news/uk-politics-60294483?at_medium=RSS&at_campaign=KARANGA westminster 2022-02-07 19:55:24
ビジネス ダイヤモンド・オンライン - 新着記事 TikTokはなぜステマに手を染めたのか?若者人気に隠された「3つの要因」 - DOL特別レポート https://diamond.jp/articles/-/295550 TikTokはなぜステマに手を染めたのか若者人気に隠された「つの要因」DOL特別レポートTikTokJapanが、インフルエンサーに報酬を支払い、Twitter上で特定の動画を紹介させていた。 2022-02-08 05:00:00
ビジネス ダイヤモンド・オンライン - 新着記事 ウクライナ緊迫、ロシア研究の第一人者が「軍事侵攻は起こり得る」と考える理由 - 政策・マーケットラボ https://diamond.jp/articles/-/295537 下斗米伸夫 2022-02-08 04:55:00
ビジネス ダイヤモンド・オンライン - 新着記事 マッキンゼー流!意外と説明できない「成長と稼ぐ力」が企業価値の源泉になる理由【動画】 - マッキンゼー流!リーダーの新教科書 ―戦略とファイナンス― https://diamond.jp/articles/-/292534 企業価値 2022-02-08 04:50:00
ビジネス ダイヤモンド・オンライン - 新着記事 「てらいのない」の本当の意味は?今こそ文章術に辞書が必須の理由 - 最強の文章術 https://diamond.jp/articles/-/294273 不特定多数 2022-02-08 04:47:00
ビジネス ダイヤモンド・オンライン - 新着記事 就職人気企業ランキング23年卒前半戦【文系女子・ベスト150】2位伊藤忠、1位は? - 就職人気企業ランキング 2023年卒早期調査 https://diamond.jp/articles/-/294677 文系女子 2022-02-08 04:45:00
ビジネス ダイヤモンド・オンライン - 新着記事 役職定年シニアのやる気が落ちない「グッドサイクル」を生む4つのポイント - DOL特別レポート https://diamond.jp/articles/-/294555 説明 2022-02-08 04:40:00
ビジネス ダイヤモンド・オンライン - 新着記事 【岐阜・三重・静岡】26信金信組「勝ち残り」ランキング!低経費率で全国20位に入った信金は? - 銀行信金信組勝ち残りランキング https://diamond.jp/articles/-/292497 信用組合 2022-02-08 04:35:00
ビジネス ダイヤモンド・オンライン - 新着記事 「脱炭素」で業績が悪化しそうな企業ランキング【エネルギー】5位出光、2位中国電力、1位は? - ニッポン沈没 日本を見捨てる富裕層 https://diamond.jp/articles/-/294131 「脱炭素」で業績が悪化しそうな企業ランキング【エネルギー】位出光、位中国電力、位はニッポン沈没日本を見捨てる富裕層「脱炭素地獄」と呼ぶべきメガトレンドが日本企業を襲っている。 2022-02-08 04:30:00
ビジネス ダイヤモンド・オンライン - 新着記事 【四日市高校】華麗なる卒業生人脈!イオングループ創業者の岡田卓也、元NTT西日本社長の森下俊三、作家の丹羽文雄… - 日本を動かす名門高校人脈 https://diamond.jp/articles/-/295295 中京工業地帯 2022-02-08 04:25:00
ビジネス ダイヤモンド・オンライン - 新着記事 CAが微笑んだ「初ファーストクラス」を堪能するエグゼクティブのかわいい見栄 - ファーストクラスに乗る人の共通点 https://diamond.jp/articles/-/294687 2022-02-08 04:20:00
ビジネス ダイヤモンド・オンライン - 新着記事 大阪カジノ、維新「セコセコ行政」でも土壌対策費790億円の経緯は不明 - DOL特別レポート https://diamond.jp/articles/-/295555 土壌汚染 2022-02-08 04:17:00
ビジネス ダイヤモンド・オンライン - 新着記事 東京ディズニーの「入園機会損失」は4690万人!?リベンジ消費に期待できるか - 「リベンジ消費」は起きているのか https://diamond.jp/articles/-/295014 東京ディズニーの「入園機会損失」は万人リベンジ消費に期待できるか「リベンジ消費」は起きているのか東京ディズニーリゾートを運営するオリエンタルランドが、年月期の業績予想を上方修正した。 2022-02-08 04:15:00
ビジネス ダイヤモンド・オンライン - 新着記事 ウクライナ情勢から考える「日本企業の海外危機管理」のあり方とは - DOL特別レポート https://diamond.jp/articles/-/295534 危機管理 2022-02-08 04:10:00
ビジネス ダイヤモンド・オンライン - 新着記事 中国とロシアの「共闘」が北京五輪の裏で進む、ウクライナ侵攻なら日本経済に大打撃も - DOL特別レポート https://diamond.jp/articles/-/295552 北京オリンピック 2022-02-08 04:07:00
ビジネス ダイヤモンド・オンライン - 新着記事 ハーバード大教授が語る、パーパス経営を「上っ面で終わらせない」方法 - ハーバードの知性に学ぶ「日本論」 佐藤智恵 https://diamond.jp/articles/-/295328 ハーバード大教授が語る、パーパス経営を「上っ面で終わらせない」方法ハーバードの知性に学ぶ「日本論」佐藤智恵近年、パーパス企業の存在目的を重視した経営手法が高い関心を集めている。 2022-02-08 04:05:00
ビジネス ダイヤモンド・オンライン - 新着記事 FRBのバランスシート戦略、利上げの先行きを左右 - WSJ発 https://diamond.jp/articles/-/295651 戦略 2022-02-08 04:03:00
ビジネス 東洋経済オンライン コロナ禍で逆風、医療法人「減収率」ランキング 全国の大手医療法人を対象に最新決算を独自調査 | 医薬品・バイオ | 東洋経済オンライン https://toyokeizai.net/articles/-/508423?utm_source=rss&utm_medium=http&utm_campaign=link_back 医療法人 2022-02-08 05:00:00
ビジネス 東洋経済オンライン 「静岡県が認めた」JRがリニア工事申請できる根拠 有識者会議中間報告は河川法の審査要件満たす | 新幹線 | 東洋経済オンライン https://toyokeizai.net/articles/-/508049?utm_source=rss&utm_medium=http&utm_campaign=link_back 中間報告 2022-02-08 04:30:00
GCP Cloud Blog How EdTechs create a data culture and roll out a data platform https://cloud.google.com/blog/topics/public-sector/how-edtechs-create-data-culture-and-roll-out-data-platform/ How EdTechs create a data culture and roll out a data platformWith a data strategy and data warehouse in place EdTechs are building a data culture that helps everyone from educators and administrators to employees in marketing and accounting make more informed decisions with their data So how do you build a data culture in your organization It starts by asking these questions Are users able to find answers to their data questions from available data Can they act based on available metrics Can they tell a compelling story with the data at hand How well is your company using analytics The matrix from Looker s Analytical Maturity eBook shows ranges from “vanity nice to see metrics to “optimization   Source Adapted from the Analytical Maturity eBook Looker Professional Services TeamAdopting and rolling out your organization s new data platformAs outlined in the previous blog in this series From data chaos to data driven How dedicated data teams can help EdTechs influence the future of education a comprehensive data team is essential for building a data warehouse That data team should include a core education intelligence team This team can align with analytically savvy members of each department they support It s critical that the Education Intelligence team understand each department s reporting needs and can make adjustments based on user feedback Include these key components to ensure smooth adoption for internal teams Share a roadmap An effective rollout team always knows what s next on their roadmap and communicates that to the entire organization Launching analytics across an entire company at once usually leads to slow movement miscommunication and lack of adoption A roadmap will ease this transition Train everyone This approach makes sure everyone is consistent during the data rollout Show users how to make the most of the platform your data team has created and be sure they know where they can go for help Monitor and optimize Monitor your organization s analytics usage Understand which individuals are using your education intelligence system to drive their day to day operations These individuals can provide further insight into what is working Identifying those who may need more guidance and support ensures they don t miss out on benefits Guild Education Creating a data cultureGuild Education started working with Google Cloud to build a data culture and implemented Looker as their data platform  The company transformed their student success programーin which coaches work directly with connected employees throughout their educational journeyーwith Looker “As enrollments increased even spreadsheets were not able to accurately keep track of caseloads Sean McKeever Senior Business Intelligence Analyst recalls “We needed a singular source of truth that could be updated in almost real time In response they created “Student Rosters to manage a coach s student outreach Users were thrilled with the new tools and when the coaching team grew from to Sean created ambassador groups consisting of data specialists to support each department This sparked Guild Education s “data driven evolution “Unexpectedly the Student Success task force also became an engine for new BI work Sean says “They blew my highest expectations out of the water and started owning virtually the entire process building requirements prototyping testing and deploying new dashboards and panelsーwith hardly any help from the BI team These successes have set Guild Education on its way to becoming a fully data driven company  Unexpectedly the Student Success task force also became an engine for new BI work they blew my highest expectations out of the water and started owning virtually the entire process with hardly any help from the BI team Sean McKeever Senior Business Intelligence Analyst Guild EducationStart your journey from data chaos to data drivenWe hope this three part series has shown how data analytics has an important role to play in transforming the future of education EdTech companies are unlocking the power of big data to serve their customers “The education landscape is changing rapidly and EdTech has a major role to play as institutions adapt to the massive shift in learners preferences and expectations says Jesus Trujillo Gomez Strategic Business Executive Education amp Research Google Cloud  Feeling inspired Let s meet your EdTech challenges together and transform your data culture Visit Google Cloud for education technology 2022-02-07 20:00:00

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)