投稿時間:2022-11-17 16:21:28 RSSフィード2022-11-17 16:00 分まとめ(22件)

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
IT ITmedia 総合記事一覧 [ITmedia PC USER] キヤノン、ビジネス向けのA4レーザープリンタ/複合機11機種を投入 https://www.itmedia.co.jp/pcuser/articles/2211/17/news146.html itmediapcuser 2022-11-17 15:40:00
IT ITmedia 総合記事一覧 [ITmedia News] iPad版「DaVinci Resolve」、M1・M2以外のチップでも動くと判明 Inter BEEで初展示 https://www.itmedia.co.jp/news/articles/2211/17/news143.html blackmagicdesign 2022-11-17 15:30:00
python Pythonタグが付けられた新着投稿 - Qiita Bolt for Pythonを使ったSlackアプリでratelimitedエラーに対応するには https://qiita.com/geeorgey/items/eff73ea4c045ef4633d1 boltforpython 2022-11-17 15:48:54
python Pythonタグが付けられた新着投稿 - Qiita PyGraphvizをWindows10にインストールする方法(2022年版) https://qiita.com/wsotatata/items/f971c6ee931dad9ac4bd graphviz 2022-11-17 15:18:39
python Pythonタグが付けられた新着投稿 - Qiita Biopythonのefetchを利用した際に出力される情報のまとめ https://qiita.com/ykguitar1002000/items/67d9dd1ae462fcc2ed29 biopython 2022-11-17 15:17:04
Linux Ubuntuタグが付けられた新着投稿 - Qiita [Ubuntu20.04] Arduinoのデバイスファイル名を同じにする方法 https://qiita.com/ousagi_sama/items/1b403858113be2287583 arduino 2022-11-17 15:14:12
海外TECH DEV Community Web3 Dubai MetaMask Workshop https://dev.to/httpjunkie/web3-dubai-metamask-workshop-4afh Web Dubai MetaMask Workshop Web Dubai MetaMask Workshop Follow Along Workshop GitHub Repo Prerequisites NodeJS amp NPMCode EditorGit amp GitHub account MetaMask Extension InstalledKnowledge of JavaScript TypeScript and React is a plus Eagerness to learn NextJS Solidity smart contracts Truffle and Ganachenpm i truffle ganache g Getting StartedWelcome to the Web Dubai Metamask Workshop to get started please clone the workshop repo on your machine and checkout the start branch git clone amp amp cd web dubai mm workshop amp amp git checkout start amp amp npm iWith our repo cloned and our dependencies installed we should take minute to discuss our choices for the decisions and architecture of this web project A mono repo using Turbo Incremental bundler build system optimized for mono repos JS amp TSSeperating our blockchain and web projectsReact amp NextJSTruffle amp GanacheAt this point we have a pretty solid framework to build Web applications with is it a bit opinionated yes is it different I would say that if you are a web developer just getting started with Web these tools should feel familliar we are using ReactJS JS amp TS and we have at the least dropped you off at the doorstep of a pretty solid way to build a fullstack web application all in one repo Run Our NextJS ProjectLet s really quickly just ensure that our frontend NextJS project is running in dev mode In a new terminal window cd apps web amp amp npm run devIf everything is working you should see text that says Let s get started For now we can exit out of next dev and know that our NextJS frontend is ready when we need it If that is working fine we can back up out of that directory because the next time we run the NextJS app it will be from the root with our turbo scripts cd Reviewing our Blockchain AppRather than spend hours creating our Smart contract for our NFT Tickets we have provided that for you in this start branch and together we will go over it for the sake of time Review in workshop each file ETHTickets solHexStrings sol initial migration js Building and Running our ProjectLet s first get our local blockchain environment up and running we have several npm scripts setup to help us build and run our project locally let s build our contracts and generate types that we can use in our NextJS app From the root for the project run npm run buildFor running a local instance of Truffle and Ganache to generate accounts private keys for use in testing our Web app let s open a seperate terminal and run npm run localThis will give us some private keys and we can take one of those private keys and import into our MetaMask using the following network information Network Name Localhost New RPC URL http localhost Chain ID Currency Symbol ETHBlock explorer URL we can leave this blankFor our Frontent we can open one more terminal window and run npm run devImportantWe need to pay attention to the output of this command and anytime we rerun this command we will need to get the contract address and copy it into the apps web lib config file All of the work from here will be done in our apps web directory I should not that all of the dependencies we will be relying on have already been installed If needed we can go over those dependencies in the workshop if anyone has any questions from here we will together build the frontend out piece by piece and build everything required to not only connect users via MetaMask to our app but also do that in a way that is scalable so that if the app were to expand to multiple pages and routes we would have a solid way to use the wallet state and connection ot the blockchain through that wallet on any page in our dApp Connecting Users to MetaMaskWe will first need to create a directory in apps web components styledComponents and this is where I will give you some basic styling for our navigation and some general styling we could use throughout our application Create navigation js with the following code import styled from styled components export const NavigationView styled div padding em border bottom px solid FFF background color CE color FFF export const Logo styled div display block display inline block line height px height px export const Balance styled div display inline block margin left em export const RightNav styled div margin left auto line height px height px width props gt props widthPixel px Create general js with the following code import styled from styled components export const FlexContainer styled div display flex align self flex end flex direction row min width calc vw em gap props gt props gap em row gap props gt props gap em export const FlexItem styled div width props gt props widthPercent export const Button styled button border radius px border none background color color FFF font size props gt props textSize px text transform uppercase padding em em display inline block margin em cursor pointer cursor hand user select none amp hover background color amp disabled background color color C cursor not allowed We first need to add a Navigation component and styles in the apps web components directory create a page called Navigation tsx and add the following code import Link from next link import Button FlexContainer FlexItem from styledComponents general import NavigationView Balance RightNav Logo from styledComponents navigation import SiEthereum from react icons si export default function Navigation return lt NavigationView gt lt FlexContainer gt lt FlexItem widthPercent gt lt Logo gt lt SiEthereum gt ETH Atlantis lt Logo gt lt FlexItem gt lt FlexItem widthPercent gt lt RightNav widthPixel gt lt span gt MM CONNECT BUTTON lt span gt lt RightNav gt lt FlexItem gt lt FlexContainer gt lt NavigationView gt With the Styles and basic navigation skeleton in place we need to update our pages index tsx inside of our web app Update pages index tsx and replace the lt div gt Lets get started lt div gt with a link to the Navigation component import type NextPage from next import Head from next head import Navigation from components Navigation const Mint NextPage gt return lt div className mint tickets gt lt Head gt lt title gt ETH Atlantis lt title gt lt meta property og title content The largest underwater Ethereum event in history key title gt lt Head gt lt Navigation gt lt div gt export default Mint We should see our navigation in the top right corner We need to replace that text that says MM CONNECT BUTTON But first we need to set up two React hooks to listen and provide context for our connected user Create a new directory in th web app under apps web hooks and add the two files and we will go over them Add a file named useListen tsx with the follwoing code import useMetaMask from useMetaMask export const useListen gt const dispatch useMetaMask return gt window ethereum on accountsChanged async newAccounts string gt if newAccounts length gt uppon receiving a new wallet we ll request again the balance to synchronize the UI const newBalance await window ethereum request method eth getBalance params newAccounts latest dispatch type connect wallet newAccounts balance newBalance else if the length is then the user has disconnected from the wallet UI dispatch type disconnect Add a file named useMetaMask tsx with the follwoing code import React type PropsWithChildren from react type ConnectAction type connect wallet string balance string type DisconnectAction type disconnect type PageLoadedAction type pageLoaded isMetaMaskInstalled boolean wallet string null balance string null type LoadingAction type loading type IdleAction type idle type Action ConnectAction DisconnectAction PageLoadedAction LoadingAction IdleAction type Dispatch action Action gt void type Status loading idle pageNotLoaded type State wallet string null isMetaMaskInstalled boolean status Status balance string null const initialState State wallet null isMetaMaskInstalled false status loading balance null as const function metamaskReducer state State action Action State switch action type case connect const wallet balance action const newState state wallet balance status idle as State const info JSON stringify newState window localStorage setItem metamaskState info return newState case disconnect window localStorage removeItem metamaskState if typeof window ethereum undefined window ethereum removeAllListeners accountsChanged return state wallet null balance null case pageLoaded const isMetaMaskInstalled balance wallet action return state isMetaMaskInstalled status idle wallet balance case loading return state status loading case idle return state status idle default throw new Error Unhandled action type const MetaMaskContext React createContext lt state State dispatch Dispatch undefined gt undefined function MetaMaskProvider children PropsWithChildren const state dispatch React useReducer metamaskReducer initialState const value state dispatch return lt MetaMaskContext Provider value value gt children lt MetaMaskContext Provider gt function useMetaMask const context React useContext MetaMaskContext if context undefined throw new Error useMetaMask must be used within a MetaMaskProvider return context export MetaMaskProvider useMetaMask These files respectively listen for changes in the users connection to Metamask and set up a context provider for sharing the wallet state to the components in our app and we can go over each one in the workshop to give more explanation With those files in place we wire up our connect disconnect and display some basic balance information from our connected user Let s go back to our Naviagtion component and update it to import these hooks and get everything working In the Navigation tsx file update to the following code import Link from next link import useListen from hooks useListen import useMetaMask from hooks useMetaMask import Button FlexContainer FlexItem from styledComponents general import NavigationView Balance RightNav Logo from styledComponents navigation import SiEthereum from react icons si export default function Navigation const dispatch state status isMetaMaskInstalled wallet balance useMetaMask const listen useListen const showInstallMetaMask status pageNotLoaded amp amp isMetaMaskInstalled const showConnectButton status pageNotLoaded amp amp isMetaMaskInstalled amp amp wallet const isConnected status pageNotLoaded amp amp typeof wallet string const handleConnect async gt dispatch type loading const accounts await window ethereum request method eth requestAccounts if accounts length gt const balance await window ethereum request method eth getBalance params accounts latest dispatch type connect wallet accounts balance we can register an event listener for changes to the users wallet listen const handleDisconnect gt dispatch type disconnect const formatAddress addr string gt return addr substr addr substr return lt NavigationView gt lt FlexContainer gt lt FlexItem widthPercent gt lt Logo gt lt SiEthereum gt ETH Atlantis lt Logo gt lt FlexItem gt lt FlexItem widthPercent gt lt RightNav widthPixel gt showConnectButton amp amp lt Button textSize onClick handleConnect gt status loading loading Connect Wallet lt Button gt showInstallMetaMask amp amp lt Link href target blank gt Install MetaMask lt Link gt wallet amp amp balance amp amp lt gt isConnected amp amp lt Button textSize onClick handleDisconnect gt Disconnect lt Button gt lt a className text link tooltip bottom href wallet target blank data tooltip Open in Etherscan gt formatAddress wallet lt a gt lt Balance gt parseInt balance toFixed ETH lt Balance gt lt gt lt RightNav gt lt FlexItem gt lt FlexContainer gt lt NavigationView gt We will go over our changes in the workshop and cover what all of this achieves for us At this point we are getting an error because we ave not wrapped the app with a provider let s go to the apps web pages app tsx file and add our MetaMask provider In app tsx update the code to the following import normalize css import styles globals scss import type AppProps from next app import Layout from components Layout import MetaMaskProvider from hooks useMetaMask function MyApp Component pageProps AppProps return lt MetaMaskProvider gt lt Layout gt lt Component pageProps gt lt Layout gt lt MetaMaskProvider gt export default MyApp We need to make two more changes one to our apps web components Layout tsx as this code will determine isMetaMaskInstalled if the ethereum provider exists or is undefined and dispatch the proper actions to our context s reducers In the Layout tsx file update the code to the following import PropsWithChildren useEffect from react import useListen from hooks useListen import useMetaMask from hooks useMetaMask import instantiateSdk from lib MetaMaskSdk export const Layout React FC lt PropsWithChildren gt children gt const dispatch useMetaMask const listen useListen useEffect gt if typeof window undefined start by checking if window ethereum is present indicating a wallet extension const ethereumProviderInjected typeof window ethereum undefined this could be other wallets so we can verify if we are dealing with metamask using the boolean constructor to be explecit and not let this be used as a falsy value optional const isMetaMaskInstalled ethereumProviderInjected amp amp Boolean window ethereum isMetaMask const local window localStorage getItem metamaskState user was previously connected start listening to MM if local listen local could be null if not present in LocalStorage const wallet balance local JSON parse local backup if local storage is empty wallet null balance null instantiateSdk dispatch type pageLoaded isMetaMaskInstalled wallet balance return lt div className app container gt children lt div gt Finally we need to add a new file to the apps web lib directory called MetaMaskSdk ts Once you have created that file please add the following code import MetaMaskSDK from metamask sdk export const instantiateSdk gt if typeof window undefined return null new MetaMaskSDK With all of this in place our connect display and disconnect functionality should work Let s run our app and try it out We should now get the option to install if we don t have the MetaMask extension connect if we do display balance if we are connected as well as disconnect if we wish Add Tickets and MintingSince our app is based mainly around showing the type of tickets available and giving the user the ability to mint those tickets we will be adding components directly to the apps web pages index ts page We will first add an array of objects that represent the types of tickets we want to allow users to mint along with their type GA amp VIP Event Name Price in ETH using both the actual and hex version of this price Why both we want to display the value as well we need the hex value to send to our contract On the index tx page lets import the ethers a library for interacting with Ethereum import just above the Navigation import import ethers from ethers import Tickets from components tickets Tickets import Navigation from components Navigation Next just under the Mint component declaration add the following code at line number Get ETH as small number gt const bigNumberify amt string gt ethers utils parseEther amt const ethGa const ethVip const ethGaHex bigNumberify ethGa hex const ethVipHex bigNumberify ethVip hex const tickets type ga event ETH Atlantis description General Admission Ticket price ethGa priceHexValue ethGaHex xffc eserialize com type vip event ETH Atlantis description VIP Ticket price ethVip priceHexValue ethVipHex xdedf eserialize com Finally we will add the actual lt TIcket gt component and pass this tickets array to it just underneath the lt Navigation gt component add the following code and until we get that page working we can just comment it out lt Tickets tickets tickets gt Now we will create a directory named tickets inside apps web components and add a file named Tickets tsx with the following code import useState from react import SiEthereum from react icons si import Button FlexContainer FlexItem from styledComponents general import TicketsView TicketType TicketTypeText StyledAlert from styledComponents tickets interface Ticket type string event string description string price string priceHexValue string interface TicketsProps tickets Ticket const TicketTypes React FC lt Ticket gt type event description price priceHexValue gt const isMinting setIsMinting useState false const error setError useState false const errorMessage setErrorMessage useState return lt FlexItem gt lt TicketType gt lt TicketTypeText gt description lt TicketTypeText gt lt p gt event lt p gt lt Button disabled isMinting gt lt SiEthereum gt isMinting Minting Mint Ticket lt Button gt error amp amp lt StyledAlert onClick gt setError false gt lt span gt lt strong gt Error lt strong gt errorMessage lt span gt lt StyledAlert gt lt TicketType gt lt FlexItem gt const Tickets tickets TicketsProps gt return lt TicketsView gt lt h gt Ticket Types lt h gt lt FlexContainer gap gt tickets map ticket gt lt TicketTypes key ticket type ticket gt lt FlexContainer gt lt TicketsView gt export default Tickets With this in place we need to add the styled components for the Tickets page which I have already created and will help to render our page with some style In the apps web components styledComponents directory create a page called tickets js and add the following code import styled from styled components export const TicketsView styled div padding em export const TicketType styled div border radius px height px padding em em background color ACB color BDCFE user select none webkit box shadow px px px px rgba moz box shadow px px px px rgba box shadow px px px px rgba export const TicketTypeText styled h background color fec background image linear gradient deg CECFF BDFF background size webkit background clip text moz background clip text webkit text fill color transparent moz text fill color transparent export const StyledAlert styled div border radius px padding em font size px height px width word break break word margin em background color strong color EB With all of this in place we should see our ticket types show up with minting buttons that do not work yet on the page if we navigate to our app on localhost Adding Minting Functionality to TicketCategoryDetail ComponentWith our ticket types in place we are ready to sell out our event to ETH Atlantis We need to add some additional code to our Tickets tsx page which will allow us to interact with our smart contract If for any reasons you have killed your npm run local or npm run dev processes in the terminal now is a time to get those running and ensure your config ts file has the right contract address added When we are done with this next section we should be able to call our contract s mintNFT function and get some initial feedback indicating our minting process is working in our dApp In the Tickets tsx page we need to add a few more imports directly above the existing imports we have already added import useState from react import useRouter from next router import useMetaMask from hooks useMetaMask import ETHTickets factory from blockchain import ethers from ethers import config from lib config import SiEthereum from react icons si import Button FlexContainer FlexItem from styledComponents general import TicketsView TicketType TicketTypeText StyledAlert from styledComponents tickets These imports will give us access to our connected wallet state the NextJS router so the we can force a page refresh only after a successful mint access to our smart contract through the ETHTickets factory created by our build which utilizes typechain the ethers library to get provider and signer for interacting with the blockchain via our contracts methods and the config file that knows the contract address Starting on line of the Tickets tsx file inside our TicketsType component we need to destructure our wallet state returned by a call to useMetaMask hook as well define a router with a call to the NextJS useRouter hook update that code with the following const state wallet useMetaMask const router useRouter const isMinting setIsMinting useState false const error setError useState false const errorMessage setErrorMessage useState Directly below the code just added we need to add a function called mintTicket add the following code just above the return statement in the TicketsType component const mintTicket async gt setIsMinting true const provider new ethers providers WebProvider window ethereum In ethers js providers allow you to query data from the blockchain They represent the way you connect to the blockchain With them you can only call view methods on contracts and get data from those contract Signers are authenticated providers conected to the current address in MetaMask const signer provider getSigner const factory new ETHTickets factory signer const nftTickets factory attach config contractAddress nftTickets mintNFT from wallet value priceHexValue then async tx any gt console log minting accepted await tx wait console log Minting complete mined tx setIsMinting false router reload catch error any gt console log error setError true setErrorMessage error message setIsMinting false We will discuss the function we just added in the workshop Finally we will update the button inside the TicketsType component s JSX and add a call to the mintTicket function lt Button disabled isMinting onClick mintTicket gt Our mintTicket function has a few strategically placed console log statements so that we can tell if our minting button is working At this point if we are connected to the dApp with a MetaMask wallet that has some ETH in it we can test those buttons out Ensure you have your developer tools in your browser open to the console so we can see those logs once we mint comment out the router reload statement to ensure we can see the console messages and uncomment once we are sure it is working We should see minting acceptedTickets tsx cdd Minting complete mined x With the minting now working we are ready to make our last set of changes to display the connected wallet s minted NFTs Add TicketsOwned Component to Minting PageFirst we need to add the styles we will need to display our minted NFTs in a grid at the bottom of the page Create a new file in the apps web components styledComponents directory named ticketsOwned js and add the following code import styled from styled components export const Grid styled div display grid grid template columns repeat props gt props columns props gt props columnWidth px grid template rows repeat props gt props itemWidth px export const SvgItem styled div width px padding props gt props pad px In the apps web pages index tsx file we need to add one final component named lt TicketsOwned gt Create a file named TicketsOwned tsx inside the apps web components directory Since we have already reviewed code that gets our signer provider wallet state etc and since we have to repeat some of that same code on this page we are just going to add all the code needed to display our minted NFT ticket SVGs in one shot and then talk about everything we have added In TicketsOwned tsx add the following code import useState useEffect from react import ethers from ethers import Image from next image import ETHTickets factory from blockchain import config from lib config import useMetaMask from hooks useMetaMask import Grid SvgItem from styledComponents ticketsOwned type NftData name string description string attributes trait type any value any owner string image string type TicketFormated tokenId string svgImage string ticketType trait type any value any const TicketsOwned gt const ticketCollection setTicketCollection useState lt TicketFormated gt const state wallet address useMetaMask useEffect gt if typeof window undefined amp amp address null const provider new ethers providers WebProvider window ethereum const signer provider getSigner const factory new ETHTickets factory signer const nftTickets factory attach config contractAddress const ticketsRetrieved TicketFormated nftTickets walletOfOwner address then ownedTickets gt const promises ownedTickets map async t gt const currentTokenId t toString const currentTicket await nftTickets tokenURI currentTokenId const baseToString window atob currentTicket replace data application json base const nftData NftData JSON parse baseToString ticketsRetrieved push tokenId currentTokenId svgImage nftData image ticketType nftData attributes find t gt t trait type Ticket Type as TicketFormated Promise all promises then gt setTicketCollection ticketsRetrieved address let listOfTickets ticketCollection map ticket gt lt SvgItem pad key ticket ticket tokenId gt lt Image width height src ticket svgImage alt Ticket ticket tokenId gt lt SvgItem gt return lt gt lt hr gt lt Grid columns itemWidth columnWidth gt listOfTickets lt Grid gt lt gt export default TicketsOwned At this point each time you mint a new ticket you should see them displayed as SVG at the bottom of the screen in a grid format These are the exact NFTs your users will be minting and we are getting the SVG images directly from the deployed smart contract using the generateNftSvgByTokenId method in our contract which takes a tokenId and builds the SVG just like the version it saves onchain to the ethereum blockchain This concludes the instructional portion of the workshop we would love you to continue working on this project and adding your own features iterating on the UI adding better error handling create tests and even deploy to a testnet The MetaMask DevRel team can be contaced on Twitter Eric Bishard at httpJunkie and Guillaume Bibeau at GuiBibeau if you have questions or comments regarding the code or workshop 2022-11-17 06:17:18
金融 JPX マーケットニュース [東証]新規上場の承認(グロース市場):(株)jig.jp https://www.jpx.co.jp/listing/stocks/new/index.html jigjp 2022-11-17 15:30:00
金融 JPX マーケットニュース [東証]新規上場の承認(グロース市場):(株)アイズ https://www.jpx.co.jp/listing/stocks/new/index.html 新規上場 2022-11-17 15:30:00
金融 JPX マーケットニュース [東証]新規上場の承認(グロース市場):(株)サンクゼール https://www.jpx.co.jp/listing/stocks/new/index.html 新規上場 2022-11-17 15:30:00
金融 JPX マーケットニュース [東証]新規上場の承認(グロース市場):note(株) https://www.jpx.co.jp/listing/stocks/new/index.html 新規上場 2022-11-17 15:30:00
金融 JPX マーケットニュース [東証]新規上場の承認(スタンダード市場):(株)コーチ・エィ https://www.jpx.co.jp/listing/stocks/new/index.html 新規上場 2022-11-17 15:30:00
金融 JPX マーケットニュース [東証]上場廃止等の決定:本多通信工業(株) https://www.jpx.co.jp/news/1023/20221117-11.html 上場廃止 2022-11-17 15:10:00
ニュース @日本経済新聞 電子版 中国の習近平国家主席がカナダのトルドー首相を呼び止め、苦言を呈する一幕。「会談の内容が新聞に漏れている。これは適切ではない」。最後は握手して別れました。 https://t.co/s3K2vhzUY4 https://twitter.com/nikkei/statuses/1593129353231175681 国家主席 2022-11-17 06:30:11
ニュース @日本経済新聞 電子版 今夜のプラス9 ラピダス会長に聞くニッポン半導体復活への道 https://t.co/DN6lbe5pap https://twitter.com/nikkei/statuses/1593122320524414976 復活 2022-11-17 06:02:14
ニュース BBC News - Home Ukraine war: Kyiv not to blame for Poland missile - Zelensky https://www.bbc.co.uk/news/world-europe-63656664?at_medium=RSS&at_campaign=KARANGA poland 2022-11-17 06:24:24
ニュース BBC News - Home The Papers: 'New age of austerity' and 'grin and bear it' https://www.bbc.co.uk/news/blogs-the-papers-63657019?at_medium=RSS&at_campaign=KARANGA The Papers x New age of austerity x and x grin and bear it x Most papers focus on Chancellor Jeremy Hunt s spending plans in the Autumn Statement where he is expected to set out difficult decisions 2022-11-17 06:10:00
ニュース BBC News - Home Formula 1: Mick Schumacher set to lose seat as Nico Hulkenberg joins Haas https://www.bbc.co.uk/sport/formula1/63649394?at_medium=RSS&at_campaign=KARANGA Formula Mick Schumacher set to lose seat as Nico Hulkenberg joins HaasMick Schumacher looks set to be left without a Formula race seat next season after Haas signed veteran Nico Hulkenberg to replace him 2022-11-17 06:18:43
ニュース BBC News - Home World Cup 2022: What makes a Golden Boot winner? https://www.bbc.co.uk/sport/football/61823301?at_medium=RSS&at_campaign=KARANGA qatar 2022-11-17 06:24:56
ニュース Newsweek アメリカ式か中国式か? ビッグデータと国家安全保障をめぐる「仁義なき戦い」勃発 https://www.newsweekjapan.jp/stories/technology/2022/11/post-100135.php アメリカの法執行機関と情報当局はこの技術が、中国のデータ窃盗をさらに容易にする可能性があると警告している。 2022-11-17 15:01:04
IT 週刊アスキー 『モンハンサンブレイク』MR上げの救済クエスト「黒蝕の咆哮」が配信! https://weekly.ascii.jp/elem/000/004/113/4113548/ 配信 2022-11-17 15:30:00
IT 週刊アスキー 『ウマ娘』最初の育成シナリオがアップデート!ハッピーミークにフィーチャー https://weekly.ascii.jp/elem/000/004/113/4113531/ 育成 2022-11-17 15:10:00

コメント

このブログの人気の投稿

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

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

投稿時間:2020-12-01 09:41:49 RSSフィード2020-12-01 09:00 分まとめ(69件)