python |
Pythonタグが付けられた新着投稿 - Qiita |
ウィンドウの情報を調べる(Python,Windows) |
https://qiita.com/dengax/items/7dbdcb937f1048ab2290
|
別のって言うか、GooglechromeでタイトルバーにKindleが入ってると誤爆します。 |
2022-04-05 00:25:07 |
海外TECH |
Ars Technica |
The world’s oldest pants are a 3,000-year-old engineering marvel |
https://arstechnica.com/?p=1845532
|
engineering |
2022-04-04 15:13:51 |
海外TECH |
MakeUseOf |
8 Apps to Help You Stay Safe and Healthy in Your Car |
https://www.makeuseof.com/apps-stay-safe-healthy-in-car/
|
carit |
2022-04-04 15:45:14 |
海外TECH |
MakeUseOf |
The 8 Best Websites to Order Customized Stationery |
https://www.makeuseof.com/best-websites-customized-stationery/
|
customized |
2022-04-04 15:30:14 |
海外TECH |
MakeUseOf |
How to Change Desktop Icon Spacing in Windows 11 and 10 |
https://www.makeuseof.com/windows-11-10-change-desktop-spacing/
|
desktop |
2022-04-04 15:15:14 |
海外TECH |
DEV Community |
Cruky library first README |
https://dev.to/seifalmotaz/cruky-library-first-readme-1ja2
|
Cruky library first README InfoCruky is a server side library for the dart ecosystem to help you create your API as fast as possible We want to make server side apps with modern style and fast high performance The main reason why I built this is that all libraries are focused on the Flutter ecosystem and not on dart langand this makes the library have fewer futures than other frameworks or libraries like Django FastAPI Express etc So I decided that I will make a new library that focuses on Dart and get the maximum performance using dart mirrors and code generators together to get the best usage of the dart Inspired by Pythod server side frameworks Django Flask FastAPI Get startedYou can see the todo example in the examples file it s very clear to understand Install Dart from Dart devInstall the Cruky package with dart pub global activate cruky cliCreate dart project with dart create nameOfProjectopen the project with your favorite IDE like vscodeAnd let s get startedStart adding the entrypoint appimport package cruky cruky dart class MyApp extends AppMaterial override List get routes gt exampleWithGETRequest Now let s add our first route method Route get exampleWithGetRequest ReqCTX req return Json Add the Route annotation to specify the route path and add the method under it we can use the Future method or regular method async or sync Return data from the methodYou can return a List or map for now and the response content type is just JSON for now Return specific status codeyou can return the specific status code with the map like that Route get exampleWithGetRequest ReqCTX req return Json Now serve the appwe can serve a simple app with this codevoid main gt run MyApp and now run the dart file with cruky run filename This will run the file in bin filename dart with hot reload You can run with another folder with cruky run filename d exampleThis will run the file in example filename dartNow Cruky will run the app with hot reload if any thing changed in lib folder Let s add some middlewareWe can add a before and after middleware The before middleware runs before calling the main route method handler And the after middleware is the opposite BeforeMW middlewareExample ReqCTX req if req headerValue Token null return Text Not Auth The MW is the short of MiddleWare The annotiation defines the type of middleware There is two types BeforeMW amd AfterMW If you want to not execute the next function you can The main route method you can return a response like in the example Now we will add this middleware to global middlewares in the app and any route under it well have the same middleware class MyApp extends AppMaterial override List get routes gt exampleWithGETRequest override List get middlewares gt middlewareExample add this Or you can add the middleware scoped for a route like this Route get middlewareExample exampleWithGetRequest ReqCTX req return Json |
2022-04-04 15:51:42 |
海外TECH |
DEV Community |
Tutorial: Play with Geth (Go Ethereum) |
https://dev.to/yongchanghe/tutorial-play-with-geth-go-ethereum-4gic
|
Tutorial Play with Geth Go Ethereum Interact with a command line tool for running a private Ethereum blockchain network MacOS This tutorial is meant for those with a basic knowledge of Ethereum and smart contracts who have some knowledge of HTML and JavaScript but who are new to dApps The purpose of building this blog is to write down the detailed operation history and my memo for learning the dApps If you are also interested and want to get hands dirty just follow these steps below and have fun PrerequisitesMacOSCLI with Homebrew installedCoding IDE Intro amp ReviewIn this tutorial we will be covering Install GethRun GethCreate new accountsCreate genesis block Deploy private blockchainMining Ethereum blocksSending Tokens What is Geth Geth Go Ethereum is a command line interface for running Ethereum nodes implemented in Go Language Using Geth you can join the Ethereum network transfer ether between accounts or even mine ethers Getting started Install GethWe should first install Geth using the following CLI command brew tap ethereum ethereumbrew install ethereumThen we can navigate to our favourite directory create a folder with your favourite name e g named my private blockchain and navigate into the folder using the following command mkdir private blockchain gethcd private blockchain geth Run GethWe can then run the following command to see if Geth has been installed successfully gethIf your CLI gets information like mine congrats You are on the track now Geth is attempting to download the entire blockchain data into your PC and the data can take up a ton of disk space Just Control C to stop the command If you are very interested in what has happened just now you can open a new CLI and navigate to the following directory to see the history logs cd Library Ethereum geth ls Create new accountsLet s run the following command to create the first account on our private blockchain geth account newThis command will then prompt us to enter a password to ensure security After entering the password two times our account has been created Run geth account new again to create our Account Create genesis blockWe need to create a genesis block the first block of the blockchain to initialize our blockchain network Next let s open the folder private blockchain geth using our favourite IDE Mine is VSCode and currently there is no file in this directory create a file named genesis block json copy and paste the following code to this file config chainId homesteadBlock eipBlock eipBlock eipBlock byzantiumBlock constantinopleBlock petersburgBlock ethash difficulty gasLimit alloc The next step is to initialize the genesis block using this command geth datadir init genesis block json Deploy private blockchainThe log Successfully wrote genesis state indicates that we have created our first block correctly Now we can deploy our blockchain using the following command geth allow insecure unlock datadir keystore Library ethereum keystore networkid http http addr http corsdomain http port http api personal eth net web txpool miner mine miner etherbase YOUR ACCOUNT ADDRESSNote Replace YOUR ACCOUNT ADDRESS with your account Public address of the keyWe have kicked off an interactive session that keeps printing new INFO of our blockchain Leave it running and let s start a new CLI navigate to the same directory private blockchain geth and initialize Geth JavaScript console by running the following command geth attach geth ipc Mining Ethereum blocksTo begin mining our blockchain we can run miner start Let s allow it to run for a while and then stop the mining by typing miner stop Now We have rewarded some tokens for mining new blocks We can verify this by running the following command eth getBalance eth accounts Sending TokensRun the following command to finish the authentication process of account before sending tokens personal unlockAccount eth accounts Input the password we have set to unlock account Now let s transfer tokens from account to account by running this command eth sendTransaction from eth accounts to eth accounts value Value here is in Wei Where ETH equals x Wei We should get a green transaction hash if the transaction has been done correctly Since we had stopped the mining process before we were creating the transaction this transaction is added to the memory pool rather than being added to the blockchain At this point account cannot receive the transferred token if we run eth getBalance eth accounts Let s start the mining process again for a while And run the following again eth getBalance eth accounts Finally transferred tokens have been received by account Pretty COOL References |
2022-04-04 15:48:52 |
海外TECH |
DEV Community |
Terraform - Filter results using 'for' loops |
https://dev.to/pwd9000/terraform-filter-results-using-for-loops-4n75
|
Terraform Filter results using x for x loops OverviewIn todays tutorial we will take a look at a fairly common question I often get from the community and it is around how to filter results in Terraform or even if it is possible We will also look at a real world usage example so that we can see how and when we would use filters in Terraform Filtering in Terraform can be achieved using for loop expressions Though for loop constructs in terraform performs looping it can also be used for manipulating data structures such as the following to name a few Transform Changing the data structure Filter Filter only on desired items in combination with an if expression Group Group elements together in a new list by key Filtering resultsLet s take a look at the following example variable where we have a list of applications variable apps type list object app name string app kind string app require feature bool default app name App app kind Linux app require feature false app name App app kind Linux app require feature false app name App app kind Windows app require feature true app name App app kind Windows app require feature false Say you want to filter only on app require feature true you could write a for loop with an if expression like in the following local variable locals apps that require feature toset for each in var apps each app name if each app require feature true output result value local apps that require feature This will return a set of app names that have the objects key app require feature set to true terraform applyOutputs result App So let s say you want to filter the same variable but this time you want to only see the apps that are windows you could write a for loop with an if expression like in the following local variable locals windows apps toset for each in var apps each app name if each app kind windows output result value local windows apps This will return a set of app names that have the objects key app kind set to windows terraform applyOutputs result App App Real world exampleLet s take a real world usage case where we would need such a for construct to filter and only configure something based on certain criteria Say we have a variable with three storage accounts we want to create but we only want to configure private endpoints on certain storage accounts We could create an extra object key item called requires private endpoint like in the following example variables variable storage config type list object name string account kind string account tier string account replication type string access tier string enable https traffic only bool is hns enabled bool requires private endpoint bool default V Storage without private endpoint name pwdvsa account kind StorageV account tier Standard account replication type LRS enable https traffic only true access tier Hot is hns enabled false requires private endpoint false V Storage with private endpoint name pwdvsa account kind StorageV account tier Standard account replication type LRS enable https traffic only true access tier Cool is hns enabled false requires private endpoint true ADLS Storage with private endpoint name pwdadlssa account kind BlockBlobStorage account tier Premium account replication type ZRS enable https traffic only false access tier Hot is hns enabled true requires private endpoint true We can then create all three storage accounts with the following resource config storage resources resource azurerm resource group RG name example resources location uksouth resource azurerm storage account SAS for each for n in var storage config n name gt n Implicit dependency from previous resource resource group name azurerm resource group RG name location azurerm resource group RG location values from variable storage config objects name each value name account kind each value account kind account tier each value account tier account replication type each value account replication type access tier each value access tier enable https traffic only each value enable https traffic only is hns enabled each value is hns enabled In the following resource block we can now configure private endpoints but we will only do so for storage accounts that have an object key of requires private endpoint set to true like in the following resource config private endpoint resources resource azurerm private endpoint SASPE for each toset for pe in var storage config pe name if pe requires private endpoint true name each value name pe location azurerm resource group RG location resource group name azurerm resource group RG name subnet id data azurerm subnet data subnet id private service connection name each value name pe sc private connection resource id azurerm storage account SAS each value name id is manual connection false If you take a closer look at the for each in the azurerm private endpoint resource we are using the filter there as follow for each toset for pe in var storage config pe name if pe requires private endpoint true This for loop will filter and return a set of storage account names we can use to loop the resource creation of the private endpoints on the selected storage accounts Thus we can then use selected list object storage config key that represents the storage account name as shown by the each value name to specify the values used for each storage account to create private endpoints for the selected storage accounts only that matches the filter requires private endpoint true I hope you have enjoyed this post and have learned something new ️ AuthorLike share follow me on GitHub Twitter LinkedIn ltag user id follow action button background color cbb important color important border color cbb important Marcel LFollow Microsoft DevOps MVP Cloud Solutions amp DevOps Architect Technical speaker focussed on Microsoft technologies IaC and automation in Azure Find me on GitHub |
2022-04-04 15:47:33 |
海外TECH |
DEV Community |
Making Data Engineering Easier: Operational Analytics With Event Streaming and Reverse ETL |
https://dev.to/rudderstack/making-data-engineering-easier-operational-analytics-with-event-streaming-and-reverse-etl-2ccg
|
Making Data Engineering Easier Operational Analytics With Event Streaming and Reverse ETLThe past several years have been somewhat of a revolution in data technologies as tools like the cloud data warehouse have come of age and principles borrowed from software engineering are rapidly being turned into data focused SaaS There is a huge amount of information about what these tools allow you to do and rightly so In many ways the modern data stack fulfills promises that siloed SaaS tools never could For example getting data out of data silos to build a complete single source of truth customer profile is actually possible in the data warehouse data lake Tooling has also emerged that helps companies put data to work once they have created some sort of value with it most often in a data warehouse like Snowflake Google BigQuery Amazon Redshift etc This has been called operational analytics Really operational analytics is just a marketing term coined to describe the reverse ETL workflow of syncing data between your warehouse and the downstream business tools that marketing teams sales teams customer success teams etc use to run the company Combining all of these tools enables helpful use cases that weren t possible before The complete customer profile example is a good one to describe this architecture Building the profiles in the warehouse requires data integration from data sources across the stack Running ETL ELT pipelines and collecting behavioral data gives you the full set of user traits in the warehouse The next logical step is what some call the last mile sending the full set of characteristics or a relevant subset to the operational systems different teams use to run the business This could be marketing automation tools like Marketo or Braze sales tools like Salesforce or Hubspot CRM customer support tools like Zendesk business intelligence tools like Tableau or Looker you get the point By delivering enriched data from the warehouse to all these tools data teams effectively give business teams superpowers equipping them with comprehensive customer information in the tools they use every day to do things like prioritize outreach build better email lists optimize marketing campaigns craft better customer experiences etc Reverse ETL makes data engineering easierBecause so much attention is placed on use cases for business users like the one above it s easy to overlook one of the biggest benefits of all this modern tooling and reverse ETL tools in particular they make data engineering easier Even before the modern data stack it was technically possible to build a complete customer profile in an operational system like Salesforce but it was a painful expensive endeavor that pushed SaaS tools far beyond their intended uses It also required multiple full time roles and often consultancies to maintain the brittle Frankenstein of connectors and customizations For most companies the juice wasn t worth the squeeze Thankfully the modern data stack is making data engineering easier enabling data teams to focus on more valuable problems as opposed to building and maintaining low level data infrastructure just to move data In the next section of this post I ll give an overview of a real world data challenge we faced at RudderStack and how we used our own customer data pipelines including our Reverse ETL solution and warehouse to solve it A classic data challenge getting richer conversions into ad platformsInstrumenting pixels and conversions from ad platforms is one of the more frustrating tasks for data teams especially when you try to implement anything more complex than the most basic use cases In what can only be described as perverse irony those more complex use cases are actually what unlock the most value from digital advertising because they give the algorithms better data for optimization One of the most common use cases is sending some sort of signup or lead conversion to a platform like Google Ads For RudderStack those conversions are either form fills on the website or account creations in our app Thankfully we don t have to deal with all of the direct instrumentation using something like Google Tag Manager because RudderStack makes it easy to map existing event stream identify and track calls like User Signed Up to conversions in Google Ads Sending all signups as conversions is helpful but our paid team wanted to take it a step further specifying which conversions represented qualified signups i e MQLs That sounds simple on the surface but it s actually a tricky data engineering problem because our MQL definition is both behavioral did the user perform certain behaviors as well as firmographic demographic company size industry job title etc To add even more spice to the challenge our firmographic demographic enrichment happens via Clearbit API calls and the ultimate operational home for the MQL flag on a user is Salesforce Think about building a custom solution just to try to get those enriched conversions into Google Ads Yikes The good news is that Google provides a data point that opens a pathway to tying all of this together We won t go into detail but it is called the gclid which stands for Google click ID This value represents a unique click by a unique user on a particular ad It s appended to the end of the URL that the user is directed to when they click Using the gclid and some clever workflows in our stack we are able to not only send MQL conversions to Google Ads but also drive much more detailed reporting on our paid advertising performance We will cover the step by step details in an upcoming guide but here s the basic workflow First grab the gclid value from the URL property of a page call and add it to the user profile table in the warehouseOne widespread method of capturing the gclid on a lead record is creating a hidden field on forms or signup flows grabbing the value from the URL and populating the hidden field so that on submission the user record has a gclid value in some sort of custom field The main problem with that method is that many users don t fill out the form on the page they land on they browse the site for more information meaning the UTM parameter is lost on subsequent pageviews Mitigating that problem is fraught with peril and many data engineers attempt the annoying practice of persisting the gclid value in the data layer often in Google Tag Manager so that it stays with the user as they browse the site Not only is this brittle but becomes an enormous pain when you have to build similar workflows for other ad platforms Suffice it to say this is a huge data engineering headache no matter which way you slice it RudderStack dbt and the warehouse make this much much easier We already track anonymous pageviews for each unique user and those page calls include the URL as a property in the event payload When the user eventually converts we have the associated track and identify calls in the warehouse so we can tie all of the previously anonymous pageviews to that now known user We already run a dbt model that generates enriched user profiles which includes the MQL flag from Salesforce pulled via a RudderStack ETL extract transform load job A few simple lines of SQL allow us to grab any previous pageviews associated with MQLs that include URL properties with a glcid value Easy as that we have the gclid value added to MQL user profiles without all of the mess of trying to persist values do direct instrumentation with Google Tag Manager or build a bunch of custom pipelines Second send the gclid value to Salesforce via reverse ETL and sync MQLs to Google Ads via direct integrationAt this point a majority of the operational analytics work is done We just need to complete the loop by getting the enriched MQL conversions back to Google Ads There are a few ways to do this you could send the enriched conversions directly to Google Ads but we chose to use the direct integration between Salesforce and Google Ads so that our data engineering team didn t have to maintain additional pipelines So the only thing left to do was get the gclid value into Salesforce Amazingly that was already taken care of by the reverse ETL job we were running to add other enriched data points like lead score to lead records in Salesforce Revenue ops created a custom field which we mapped in our RudderStack Reverse ETL job and the data flow was complete On to more important problemsOur team wired up tested and deployed this solution in a few hours I have battle scars from wrangling I ve done in the past to achieve similar data flows so it was pretty mind boggling to see how easily we accomplished this The best part though was that it gave our data team time to move on to the bigger more important problem of collaborating with our analytics team to build better reporting on ad performance |
2022-04-04 15:31:54 |
海外TECH |
DEV Community |
How to create a DAO with Next.js and thirdweb |
https://dev.to/logrocket/how-to-create-a-dao-with-nextjs-and-thirdweb-5069
|
How to create a DAO with Next js and thirdwebWritten by Avneesh Agarwal️ What is a DAO DAO stands for Decentralized Autonomous Organization As it says in the name a DAO is an organization without a single leader instead rules are encoded in the blockchain Because of this a DAO is completely transparent and everyone who participates has a stake Large decisions are made via voting amongst those who own non fungible tokens NFTs from the DAO which grant membership Today we are going to build our very own DAO using Next js thirdweb MetaMask and Alchemy It will allow users to mint your DAO s NFT receive cryptocurrency via airdrops and participate in the DAO s polls This tutorial will be written with just JavaScript so you don t need to know any Solidity PrerequisitesTo understand and follow along with this tutorial you should have the following Working knowledge of JavaScript Next js and the blockchain A MetaMask wallet An account with Alchemy Contents Setup Creating an Alchemy app Getting the wallet s private key Adding env variables Adding sign in functionality using MetaMask Adding the thirdweb provider Adding the sign in component Initializing the thirdweb SDK Adding features to mint an NFT Creating and configuring an NFT Checking if the user already has an NFT Creating a button to mint NFTs Adding styles Creating and deploying a governance token Minting tokens Airdropping tokens Allowing users to vote Showing proposals on the website Getting the proposals Rendering the proposals Conclusion SetupWe will begin by setting up a Next js app with the following command npx create next app my daoNow we will create a new project in thirdweb Go to thirdweb and connect your MetaMask wallet After you connect your wallet click on Create Project and choose the Rinkeby network Give your project a name and a description and hit Create If you don t have enough ETH to pay for gas get some from this faucet Creating an Alchemy appNext head to Alchemy sign in click on Create App and provide the required details Make sure to use the same chain as the one you used in thirdweb in our case it is the Ethereum chain and the Rinkeby network After the app is created copy the HTTP API key Getting the wallet s private keyIn order to mint NFTs and perform certain scripts we are going to need the wallet s private key To access it open the MetaMask browser extension and click on Account Details You should see your private key here export it and copy it somewhere safe Adding env variablesLet s add these variables in a env file so we can access them later PRIVATE KEY lt wallet private key gt ALCHEMY API URL lt alchemy http key gt WALLET ADDRESS lt public wallet address gt Because we don t want to push these to GitHub be sure to add them in gitignore Adding sign in functionality using MetaMaskIn DApps MetaMask is the most popular wallet used so we will add MetaMask sign in with thirdweb We are going to need two packages from install npm i rdweb sdk rdweb hooks npmyarn add rdweb sdk rdweb hooks yarn Adding the thirdweb providerWe need to wrap our whole app in a thirdweb provider in order to access the login details and other information required for the components import thirdwebWebProvider from rdweb hooks import styles globals css function MyApp Component pageProps return lt thirdwebWebProvider gt lt Component pageProps gt lt thirdwebWebProvider gt export default MyApp For authentication purposes we also have to specify the type of authentication and the supported chain IDs We are using MetaMask and the Rinkeby chain so add the following as well const supportedChainIds const connectors injected Finally pass these as props in the provider like so lt thirdwebWebProvider connectors connectors supportedChainIds supportedChainIds gt lt Component pageProps gt lt thirdwebWebProvider gt Adding the sign in componentCreate a new folder called components in the root of the project and add a Login js file to it import useWeb from rdweb hooks const Login gt const connectWallet useWeb return lt div gt lt button onClick gt connectWallet injected gt Sign in using MetaMask lt button gt lt div gt export default Login Thankfully thirdweb provides a connectWallet function which we can use to add authentication Rendering the sign in componentInside index js render the login screen if there is no address if the user is not signed in const address useWeb if address return lt Login gt This will allow our users to sign in but afterwards it just shows a blank screen So in the other return block let s show the user her address export default function Home const address useWeb if address return lt Login gt return lt div className styles container gt lt h gt You are signed in as address lt h gt lt div gt The login works but it doesn t look good right now So create a new file Login module css in the styles folder and add the following container min height vh display flex flex direction column justify content center align items center background color bb button color bb background color white border none border radius px padding px font size px margin px px cursor pointer font weight Next add the following classes to Login js lt div className styles container gt lt button className styles button onClick gt connectWallet injected gt Sign in using MetaMask lt button gt lt div gt And finally import the styles import styles from styles Login module css This will give us a simple but good looking login screen Initializing the thirdweb SDKNow we need to initialize the thirdweb SDK for the various scripts we are going to run Start by creating a new folder called scripts with an initialize sdk js file inside of it Add the following code to the file import thirdwebSDK from rdweb sdk import ethers from ethers import dotenv from dotenv dotenv config if process env PRIVATE KEY process env PRIVATE KEY console log Private key not found if process env ALCHEMY API URL process env ALCHEMY API URL console log Alchemy API URL not found if process env WALLET ADDRESS process env WALLET ADDRESS console log Wallet Address not found const sdk new thirdwebSDK new ethers Wallet process env PRIVATE KEY ethers getDefaultProvider process env ALCHEMY API URL async gt try const apps await sdk getApps console log app address apps address catch err console error Failed to get apps from the sdk err process exit export default sdk This will initialize the thirdweb SDK and as you can see we need to install some packages npm i ethers dotenv npmyarn add ethers dotenv yarnWe are using modular imports here so create a new package json file inside the scripts folder and simply add the following name scripts type module Finally run the script node scripts initialize sdk jsThe script may take some time to run but after some time you will get your app address We are going to need this in the next steps so store it somewhere safe Adding features to mint an NFTFor this step we are going to need some test ETH so go to a faucet like this and get some Creating and configuring an NFTCreate a new file called deploy drop js inside the scripts folder In here add the following script import ethers from ethers import sdk from initialize sdk js import readFileSync from fs const app sdk getAppModule APP ADDRESS async gt try const bundleDropModule await app deployBundleDropModule name LogRocket DAO Name of NFT Collection for DAO description A DAO for all the LogRocket readers Description image readFileSync scripts assets rocket png Image for NFT collection primarySaleRecipientAddress ethers constants AddressZero console log Successfully deployed bundleDrop module address bundleDropModule address console log bundleDrop metadata await bundleDropModule getMetadata catch error console log failed to deploy bundleDrop module error You will need to update a few things here Update the app address with the new app address that you got by running the previous script Update the name of the NFT drop for the DAO and its description Add an image for the NFT drop by creating a new folder called assets and adding the image for your NFT thereAfter you have updated the details run the following script node scripts deploy drop jsWait for the script to run and you should get an address and the metadata You can even check out the transaction on Rinkeby EtherscanLet s configure our NFT now Create a new config nft js file inside the scripts folder and add the following import sdk from initialize sdk js import readFileSync from fs const bundleDrop sdk getBundleDropModule BUNDLE DROP ADDRESS async gt try await bundleDrop createBatch name LogRocket DAO Name of NFT Collection for DAO description A DAO for all the LogRocket readers Description image readFileSync scripts assets rocket png Image for NFT collection console log Successfully created a new NFT in the drop catch error console error failed to create the new NFT error You need to update the bundle drop address and the details in the object inside createBatch These details are going to be used for the NFT Once you have updated all of them run the following script node scripts config nft jsIt should give you an output like this If you see the module in the thirdweb dashboard you will see that an NFT has been created Finally let s add a claim condition to our NFTSetting a claim condition will allow us to set a limit for the NFTs and allow a specific max limit per transaction We will set a claim condition from the dashboard itself so click on the Settings button and you can update the data based on your needs After you are done updating click Save and confirm the small transaction Checking if the user has an NFTBefore creating a mint button that allows the users to mint NFTs let s check if the user has an NFT already We don t want the users to mint multiple NFTs Start by adding two new variables sdk and bundleDropModule like this before our functional component const sdk new thirdwebSDK rinkeby const bundleDropModule sdk getBundleDropModule BUNDLE DROP ADDRESS You will also need to import thirdwebSDK import thirdwebSDK from rdweb sdk Now let s create a state for hasClaimedNFT const hasClaimedNFT setHasClaimedNFT useState false We also need to create a useEffect Hook to check if the user has the NFT useEffect gt const handler async gt if address return try const balance await bundleDropModule balanceOf address if balance gt setHasClaimedNFT true console log You have an NFT else setHasClaimedNFT false console log ️You don t have an NFT catch error setHasClaimedNFT false console error failed to nft balance error handler address Firstly it will check if the user is signed in If the user is not signed in it will return nothing Then this checks if the user has the NFT with the token ID in the drop contract that we imported at the top If you open the console in the website it should show that you don t have an NFT Creating a button to mint NFTsLet s create the button to mint NFTs Create a new function called mintNft like so const mintNft async gt setIsClaiming true try await bundleDropModule claim setHasClaimedNFT true console log Successfully Minted the NFT catch error console error failed to claim error finally setIsClaiming false We will call this function when a button is clicked to mint the NFT to the user s wallet But first let s add the two required states const hasClaimedNFT setHasClaimedNFT useState false const isClaiming setIsClaiming useState false We also need to call the providerSigner function so first get the provider from useWeb const address provider useWeb And then call the function const signer provider provider getSigner undefined useEffect gt sdk setProviderOrSigner signer signer Let s create the button now Inside the final return block add the following lt div gt lt h gt Mint your free LogRocket DAO Membership NFT lt h gt lt button disabled isClaiming onClick gt mintNft gt isClaiming Minting Mint your nft FREE lt button gt lt div gt Now after we sign in it should show us a screen like this You can even view your NFT on Opensea Testnets just go to Finally just above the final return block add this check to see if the user has claimed the NFT already if hasClaimedNFT return lt div gt lt h gt You have the DAO Membership NFT lt h gt lt div gt Adding stylesWe have completed building the minting NFT functionality but it looks ugly so let s add some basic stylings Inside Home module css add the following container min height vh display flex flex direction column justify content center align items center background color bb container gt h font size rem color fff font weight bold button color bb background color white border none border radius px padding px font size px margin px px cursor pointer font weight We also need to add the classNames if hasClaimedNFT return lt div className styles container gt lt h gt You have the DAO Membership NFT lt h gt lt div gt return lt div className styles container gt lt h gt Mint your free LogRocket DAO Membership NFT lt h gt lt button className styles button disabled isClaiming onClick gt mintNft gt isClaiming Minting Mint your NFT FREE lt button gt lt div gt This gives us a better mint screen Creating and deploying a governance tokenCreate a new file called deploy token js in the scripts folder Add the following to it import sdk from initialize sdk js const app sdk getAppModule YOUR APP ADDRESS async gt try const tokenModule await app deployTokenModule name LogRocket Token name of the token symbol LR symbol console log Successfully deployed token module address tokenModule address catch error console error failed to deploy token module error This script will create a new token module with a name and symbol You will need to manually update the app address token name and symbol yourself After updating run the script You can check this token by the address on Rinkeby Etherscan and also add it on your MetaMask wallet by clicking Import tokens After importing you should see the token under your assets It is currently zero so let s mint some tokens Minting tokensCreate a new file called mint token js inside the scripts folder and add the following import ethers from ethers import sdk from initialize sdk js const tokenModule sdk getTokenModule TOKEN MODULE ADDRESS async gt try const amount const amountWithDecimals ethers utils parseUnits amount toString await tokenModule mint amountWithDecimals const totalSupply await tokenModule totalSupply console log There now is ethers utils formatUnits totalSupply LR in circulation catch error console error Failed to mint tokens error Update the token module address with the address you got in the last script and you can update the amount you want to mint After you are ready to mint run the script node scripts mint token jsYou should now see the amount of tokens you minted on your MetaMask wallet Airdropping tokensWe might want to airdrop the tokens to our NFT holders so let s build a script for that Create a new airdrop js file inside scripts and add the following import ethers from ethers import sdk from initialize sdk js const bundleDropModule sdk getBundleDropModule BUNDLE DROP ADDRESS const tokenModule sdk getTokenModule TOKEN MODULE ADDRESS async gt try const walletAddresses await bundleDropModule getAllClaimerAddresses if walletAddresses length console log No NFTs have been claimed yet ask your friends to mint some free ones P process exit const airdropTargets walletAddresses map address gt const randomAmount Math floor Math random console log Going to airdrop randomAmount tokens to address return address amount ethers utils parseUnits randomAmount toString console log Starting airdrop await tokenModule transferBatch airdropTargets console log Successfully airdropped tokens to all the holders of the NFT catch err console error Failed to airdrop tokens err After you run the script you should get something like this Currently only you have minted an NFT so it won t send the token to someone else But this can be used to send it to other NFT holders later on Allowing users to voteCreate a new deploy vote js file in the scripts folder and add the following import sdk from initialize sdk js const appModule sdk getAppModule APP MODULE ADDRESS async gt try const voteModule await appModule deployVoteModule name LR Dao s Proposals votingTokenAddress xfbDCBCFddeCDBfCcbAca proposalStartWaitTimeInSeconds proposalVotingTimeInSeconds votingQuorumFraction minimumNumberOfTokensNeededToPropose console log Successfully deployed vote module address voteModule address catch err console error Failed to deploy vote module err Update the app address the name and the voting token address then run the script node scripts deploy vote jsWe also need to set up a vote module so create a new script called setup vote js and add the following import ethers from ethers import sdk from initialize sdk js const voteModule sdk getVoteModule xAABebACf const tokenModule sdk getTokenModule xfbDCBCFddeCDBfCcbAca async gt try await tokenModule grantRole minter voteModule address console log Successfully gave vote module permissions to act on token module catch error console error failed to grant vote module permissions on token module error process exit try const ownedTokenBalance await tokenModule balanceOf process env WALLET ADDRESS const ownedAmount ethers BigNumber from ownedTokenBalance value const percent ownedAmount div mul await tokenModule transfer voteModule address percent console log Successfully transferred tokens to vote module catch err console error failed to transfer tokens to vote module err You will need to run this script to finish it up node scripts setup vote jsNow that we have our vote module ready let s create some proposals Create a new file called vote proposals js inside the scripts folder and add the following import ethers from ethers import sdk from initialize sdk js const voteModule sdk getVoteModule VOTE MODULE const tokenModule sdk getTokenModule TOKEN MODULE async gt try const amount await voteModule propose Should the DAO mint an additional amount tokens into the treasury nativeTokenValue transactionData tokenModule contract interface encodeFunctionData mint voteModule address ethers utils parseUnits amount toString toAddress tokenModule address console log Successfully created proposal to mint tokens catch error console error failed to create first proposal error process exit You need to update the module addresses and if you want to update the message of the proposal you can update that as well Finally run the script It should give you something like this If you now check the thirdweb dashboard the proposal has been created Showing proposals on the websiteFirst import the token and vote module const voteModule sdk getVoteModule xfbBeDfdCBf const tokenModule sdk getTokenModule xCdeddCdddA We are going to need three useStates like so const proposals setProposals useState const isVoting setIsVoting useState false const hasVoted setHasVoted useState false Getting the proposalsWe need to get the proposals to display them on the screen so create this useEffect useEffect gt if hasClaimedNFT return voteModule getAll then proposals gt setProposals proposals catch err gt console error failed to get proposals err hasClaimedNFT Then create a new handleFormSubmit function const handleFormSubmit async e gt e preventDefault e stopPropagation setIsVoting true const votes proposals map proposal gt let voteResult proposalId proposal proposalId vote proposal votes forEach vote gt const elem document getElementById proposal proposalId vote type if elem checked voteResult vote vote type return return voteResult try const delegation await tokenModule getDelegationOf address if delegation ethers constants AddressZero await tokenModule delegateTo address try await Promise all votes map async vote gt const proposal await voteModule get vote proposalId if proposal state return voteModule vote vote proposalId vote vote return try await Promise all votes map async vote gt const proposal await voteModule get vote proposalId if proposal state return voteModule execute vote proposalId setHasVoted true catch err console error failed to execute votes err catch err console error failed to vote err catch err console error failed to delegate tokens err finally setIsVoting false This function is going to collect the vote Rendering the proposalsReplace the if hasClaimedNFT block with this if hasClaimedNFT return lt div className styles container gt lt h gt Active Proposals lt h gt lt form onSubmit handleFormSubmit gt proposals map proposal gt lt Proposal key proposal proposalId votes proposal votes description proposal description proposalId proposal proposalId gt lt button onClick handleFormSubmit type submit className styles button gt isVoting Voting Submit Votes lt button gt lt form gt lt div gt We are creating a separate component for the proposal to keep things clean So create a new file called Proposal js in the components folder and add the following import styles from styles Proposal module css const Proposal description votes proposalId gt return lt div className styles proposal gt lt h className styles description gt description lt h gt lt div className styles options gt votes map vote gt lt div key vote type gt lt input type radio id proposalId vote type name proposalId value vote type defaultChecked vote type gt lt label htmlFor proposalId vote type gt vote label lt label gt lt div gt lt div gt lt div gt export default Proposal I also added basic styling so create a new Proposal module css file in the styles folder proposal display flex flex direction column align items center justify content center background color fafafa border radius px box shadow px px px rgba padding px margin px options display flex flex direction column justify content space between align items flex start width margin top rem To center the items I have added the following styles in Home module css as well container gt form display flex flex direction column align items center You will get to this screen where you can submit your votes Finally let s make a function to check if the person has already voted First create a new useEffect useEffect gt if hasClaimedNFT return if proposals length return voteModule hasVoted proposals proposalId address then hasVoted gt setHasVoted hasVoted if hasVoted else catch err gt console error failed to check if wallet has voted err hasClaimedNFT address proposals And replace the button with this lt button onClick handleFormSubmit type submit disabled isVoting hasVoted className styles button gt isVoting Voting hasVoted You Already Voted Submit Votes lt button gt After you have voted it should show the message You Already Voted ConclusionThis was it for this tutorial hope you liked it and can use it to make your own DAO You can always update the DAO and add more features if you like ️You can find the GitHub repo for this project here LogRocket Full visibility into production Next js appsDebugging Next applications can be difficult especially when users experience issues that are hard to reproduce If you re interested in monitoring and tracking Redux state automatically surfacing JavaScript errors and tracking slow network requests and component load time try LogRocket LogRocket is like a DVR for web and mobile apps recording literally everything that happens on your Next app Instead of guessing why problems happen you can aggregate and report on what state your application was in when an issue occurred LogRocket also monitors your app s performance reporting with metrics like client CPU load client memory usage and more The LogRocket Redux middleware package adds an extra layer of visibility into your user sessions LogRocket logs all actions and state from your Redux stores Modernize how you debug your Next js apps ーstart monitoring for free |
2022-04-04 15:23:28 |
海外TECH |
DEV Community |
Create a gasless NFT drop with Next.js, OpenZeppelin, and thirdweb |
https://dev.to/thirdweb/how-to-create-a-gasless-nft-drop-with-nextjs-and-thirdweb-3cea
|
Create a gasless NFT drop with Next js OpenZeppelin and thirdweb What is thirdweb thirdweb is a platform that lets you deploy smart contracts without having to know Solidity you can do it by using TypeScript Python or Go or even without writing any code IntroductionIn some cases you might wanna pay the gas for NFT drops like early access drops or when you are accepting payments in some other forms So in this guide we are going to see how to create a gasless NFT drop that everyone can claim I am going to use an ERC so multiple people can hold the same NFT but you can do it any way you like If you want to directly jump into the code here is the finished code Creating an NFT dropGo to the thirdweb dashboard dashboard and click on create a new contract Select the chain you are going to build upon I am going to use Mumbai for this guide Select “Release a drop And select Edition drop If you want to drop unique NFTs you can select a normal dropFill out the details and hit deploy After the drop is created create a new NFT inside of the drop like this Finally let s add a claim phase Click on the settings button for the token update the details based on what you need and hit update You will be asked to confirm a small transaction so confirm that Building the websiteWe will now build a website where users will be able to come and claim the NFT SetupCreate a new Next js app npx create next app gasless dropInstall the dependencies we need npm i thirdweb dev react thirdweb dev sdk ethers npmyarn add thirdweb dev react thirdweb dev sdk ethers yarn Adding metamask authWe are also going to need authentication in the app because users will need to sign a message as well Wrap the whole app in the ThirdwebProvider like the following import styles globals css import ThirdwebProvider ChainId from thirdweb dev react function MyApp Component pageProps return lt ThirdwebProvider desiredChainId ChainId Mumbai gt lt Component pageProps gt lt ThirdwebProvider gt export default MyApp The desiredChainId is the chain id that you wanna build upon You can use the ChainId object provided by the sdk to pass it in the provider in this case Mumbai To add authentication we are going to use the useMetamask hook that thirdweb provides so add the hook like the following const connectWithMetamask useMetamask Import it from the package we installed import useMetamask from thirdweb dev react Finally let s create a button and use it lt button onClick connectWithMetamask gt Sign in with metamask lt button gt Now that we can authenticate users on our site let s check if the user is authenticated and show a mint button if a user is there thirdweb provides another hook to get the user s wallet address so get the address from the hook const address useAddress The useAddress hook will be imported from “ thirdweb dev react as well import useMetamask useAddress from thirdweb dev react Now if the user is authenticated then show their address otherwise the sign in button like this lt div className styles container gt address lt h gt You are signed in as address lt h gt lt button onClick connectWithMetamask gt Sign in with metamask lt button gt lt div gt Once you sign in it should now show you your address Building the mint functionalityWe will use the useEditionDrop for accessing the edition and calling functions with it const editionDrop useEditionDrop EDITION DROP ADDRESS Copy the edition drop address from the dashboard and replace it with EDITION ADDRESSOnce again import the hook import useMetamask useAddress useEditionDrop from thirdweb dev react We will create a new function to claim the NFT const tokenId const quantity const claimNFT async gt try await editionDrop claimTo address tokenId quantity console log NFT claimed successfully catch err console log Error claiming NFT err The edition drop has a method called claimTo that we can use to claim the NFT to a specific wallet address I have created two variables for the tokenId and quantity for better readability of code The second arg is tokenId and the third is quantity as it can be seen Let s now try minting the NFT And the minting works But we have to pay for the gas in the transaction so let s relay the gas so that we pay the gas and user can mint their NFTs for free Making transactions gaslessthirdweb supports Biconomy and OpenZeppelin for relaying the gas For this demo we are going to use OpenZeppelin to relay the gas so head over to OpenZeppelin and sign up for an account if you haven t already Create a new relayer in OpenZeppelin Choose the network that you are building upon and give the relayer a name After the relayer has been created copy the address and transfer some funds into it in the network you created the relayer You should be able to see the amount you transferred in your dashboardNow go ahead and create a new autotask you will be asked to fill some data You can get the code from here and paste it into the code section of autotask After you are done hit create Once it is done creating copy the webhook UriHead back to the Next js application and create a new env local file in the root of the folder We will use this to store our environment variables Create a new variable NEXT PUBLIC OPENZEPPELIN URL like this NEXT PUBLIC OPENZEPPELIN URL https api defender openzeppelin com autotasks secret stuffSince we have changed env variables you need to restart your development server Finally add the OpenZeppelin Uri in the ThirdwebProvider lt ThirdwebProvider sdkOptions gasless openzeppelin relayerUrl process env NEXT PUBLIC OPENZEPPELIN URL desiredChainId desiredChainId gt Now the gas fees is being relayed and the users don t have to pay any gas Want to have a look at the code We got you |
2022-04-04 15:19:07 |
海外TECH |
DEV Community |
Future Javascript: Types may finally be coming to Javascript |
https://dev.to/smpnjn/types-may-finally-be-coming-to-javascript-56a2
|
Future Javascript Types may finally be coming to JavascriptWith the promotion of Type Annotations to Proposal Level Stage Javascript is one step closer to being a more strongly typed language Let s dive into what the changes will mean for Javascript Types in JavascriptJavascript is dynamically typed That means that it figures out the type of something by where it appears For example let x typeof number let y typeof string In complicated application and systems this is a huge weakness Applications can fall over for the smallest of things such as your API returning false instead of false That means we have to sometimes bullet proof our code by doing silly things like this especially in instances where we don t have control over a piece of software sending back wonky types if x true x true this is true This is a huge annoyance for dyed in the wool software engineers but for beginners Javascript is a gift Javascript makes it so easy to write quite complicated things in a simple way If your code is wrong Javascript usually finds a way to make it work Most Javascript developers find that the flexibility they love at the start soon becomes painful as they become more competent in the language For these reasons there has never been a strong push to make Javascript a typed language with hard rules The accessibility of Javascript is one of its great traits and adding types would not only make it harder for beginners but also potentially break a lot of the existing web technologies built on untyped Javascript As such optional packages were developed instead TypeScript and Flow being two of the best known These take Javascript and turn it into a language with strongly declared types Enter Javascript TypesThe new type annotations proposal tries to find a middle ground so Javascript can remain accessible but allow for advanced features like types more easily In some ways this was an inevitability Strong types consistently come out on top of the most requested developer features for Javascript How Type Annotations will WorkTo be clear type annotations will not make Javascript a strongly typed language Instead they let Javascript work with types What that means is if you add types to Javascript once this specification reaches an implementation stage they will simply be ignored Should you compile it with Typescript though the types will work as normal If you ve used TypeScript before then you ll be familiar with how type annotations look For example defining a type for a variable looks like this let x string String let x number How Javascript would work after type annotationsLet s say you write a piece of code that looks like this let x String console log x Later down the line you decide you want to add types Instead of having to compile it with TypeScript with type annotations we can simply add the types to our Javascript file let x string String console log x In this case string is simply ignored by Javascript meaning it remains compatible with untyped Javascript and type bundles like TypeScript That means you can build it with TypeScript but you can also just run it as a normal js file Types in a vanilla Javascript file are ultimately comments Other Examples of Types in Type AnnotationsThe general roster of types that you d expect can be found in type annotations For example interfaces interface Name firstName string lastName string union types function test x string number console log x generic types type Test lt T gt T let x Test lt number gt Rationale behind Type AnnotationsThe main rationale is that as browser development has become more streamline and backend Javascript ecosystems like Deno and Node JS have become more popular there have been opportunities for Javascript to move to less and less build steps The big change comes with TypeScript where to run a TypeScript file we need to build it back to Javascript This is obviously a time consuming and sometimes onerous step for developers and definitely limits efficiency One of the main draws to type annotations in TypeScript is that it removes another build step Native TypeScript can be run in the browser without the need to convert it back to Javascript greatly optimising the developer experience As well this type annotation acts give a standard base to type definitions in Javascript By standardising the most agreed upon parts of types in Javascript it ensures consistency across all type compilers making things easier for developers ConclusionIn conclusion types are coming to Javascript but perhaps not in the way people envisioned Javascript will remain a dynamically typed language but it will accept type declarations natively This specification is still stage so a lot may change but it s an exciting time for Javascript to take its first step into a more strongly typed world |
2022-04-04 15:12:04 |
海外TECH |
DEV Community |
Data Science vs Big Data vs Data Analytics |
https://dev.to/prachi025/data-science-vs-big-data-vs-dataanalytics-40k4
|
Data Science vs Big Data vs Data AnalyticsIn today s world data is growing at an unimaginable speed It is all around us and has become apart of our daily lives Digital data is set to double every two years and has been shaping thefuture world for us With data growing in such incredible amounts the issues arising with itsstorage and processing have to be sorted As data processing comes into picture confusingterms like Data Science vs Big Data vs Data Analytics come into play This article is all aboutsorting this confusion by briefing about each What is Data Science Data Science deals with structured and unstructured data by discovering their hidden patternswith the help of various tools algorithms and machine learning principles It involves problem solving mechanisms and constructs new processes for data modeling andproduction using prototypes algorithms predictive models and custom analysis that extractsinsights and information from data In simple words it cleanses prepares and aligns data The Digital Marketing spectrum is totally dependent on Data Science for its digitaladvertisements Search engines run on data science algorithms to deliver personalized resultsfor search queries enhancing the user experience by manifolds A Data Scientist performs data analysis to discover informational insights from the generateddata by using various advanced machine learning algorithms to identify the occurrence of aparticular event in the future These data make up extremely important business information What is Big Data As the name suggests Big Data refers to huge volumes of data that can t be processedeffectively using traditional data processing applications within a given time and value Theanalysis of Big Data poses many challenges in sampling capturing data data storage dataanalysis sharing transfer Querying visualization etc Big Data Analysis hence involvespredictive analytics user behavior analytics and other data analytics methods to extractinformation from big data This information extracted from big data can be used for better decision making and strategicbusiness moves Big Data is used by governments health managements insurance firms retail banks creditcard companies and many other institutions which deal with huge amounts of data that isdifficult to store in one computer Big Data helps in gaining new subscribers or retaining customers by combining the data andanalyzing the masses of customer generated data and machine generated data that is beingcreated every second Some of its applications also includes analyzing weblogs transaction data customertransaction data social media store brand credit card data and loyalty program data What is Data Analytics Data Analysis is used in Data cleansing transforming and modelling data It is the science ofexamining raw data to reach certain conclusions about the information With the help of dataanalytics we can discover useful information from the raw data to support our decision makingand business strategy Data Analytics is also very helpful in identifying existing businesstheories and models If required this technique verifies and disproves them Data Analytics can help optimize the purchasing experience for customers through weblog orsocial media data analysis With the help of data analytics businesses can view insights intocustomer s preferences With the help of Data Analytics companies can get a fair idea of whattheir customer s likes and dislikes are Data Analytics is centered around controlling and monitoring of network devices and dispatchcrews It also manages service outages It integrates millions of generated data points in thenetwork performance and helps businesses to monitor the network Join our Data Science Course to become a Certified Data Scientist Master in the highlydemanded technologies like SQL Python alongside the concepts of Data Exploration Regression Models Hypothesis Testing Get personal coaching and mentoring straight fromTop Data Science Coaches to be job ready This includes the complete data science syllabus project hackathons and Data Science Certification |
2022-04-04 15:02:52 |
Apple |
AppleInsider - Frontpage News |
Former lead Apple engineer Justin Santamaria talks iMessage, FaceTime & more on the AppleInsider podcast |
https://appleinsider.com/articles/22/04/04/former-lead-apple-engineer-justin-santamaria-talks-imessage-facetime-more-on-the-appleinsider-podcast?utm_medium=rss
|
Former lead Apple engineer Justin Santamaria talks iMessage FaceTime amp more on the AppleInsider podcastOn this special episode of the AppleInsider podcast we interview former Apple lead engineer Justin Santamaria who worked at Apple for almost a decade and was responsible for the launch and development of iMessage and FaceTime When Steve Jobs announced the iPhone in June the two headlining features were a Retina screen and front facing camera In the previous months Apple s managing engineer over communication services Justin Santamaria led the team responsible for creating FaceTime We discuss the behind the scenes development of FaceTime and the internal reaction to Steve Jobs announcing it would be an open standard at WWDC Then just one year later Justin and his team launched iMessage with iOS He describes the development process of Apple s propriety messaging service and shares his thoughts on the current RCS vs iMessage debate Read more |
2022-04-04 15:44:09 |
Apple |
AppleInsider - Frontpage News |
Mac mini, iMac, Mac Studio -- Which desktop Mac to buy at any pricepoint |
https://appleinsider.com/articles/22/03/13/mac-mini-imac-mac-studio----which-desktop-mac-to-buy-at-any-pricepoint?utm_medium=rss
|
Mac mini iMac Mac Studio Which desktop Mac to buy at any pricepointWhat desktop Mac you buy is an incredibly personal decision driven by workflow as much as it is by financial considerations Fortunately there are wide varieties of machines you can buy at any price point Here s how to pick Apple is most of the way through replacing its entire range of Macs with Apple Silicon models away from its previous reliance on Intel processors While the MacBook lineup has already completed its transformation the desktop Mac range hasn t quite finished the migration process Even so it is still in a firm enough state for someone to look at the range and find something that matches the amount of cash they want to spend on a desktop Mac Read more |
2022-04-04 15:30:35 |
海外TECH |
Engadget |
The UK will issue an official NFT (sigh) |
https://www.engadget.com/uk-royal-mint-nft-release-date-151253882.html?src=rss
|
The UK will issue an official NFT sigh The UK wants to show that it s embracing crypto and that includes digital tokens ーwhether you like them or not Chancellor of the Exchequer Richi Sunak has announced that the Royal Mint will issue an official NFT sometime this summer More details aren t yet available but Economic Secretary John Glen billed the token as a symbol of the quot forward looking approach quot the country was taking toward crypto technologies The NFT will come as part of a broader effort to support financial technology and crypto in particular The UK government aims to create a quot dynamic regulatory landscape quot that welcomes the technology according to Glen It now plans legislation that will welcome stablecoins into the country s payment infrastructure will mull the legal status of Decentralized Autonomous Organizations DAOs and hopes to remove quot disincentives quot to investment funds that include crypto Chancellor RishiSunak has asked RoyalMintUK to create an NFT to be issued by the summer This decision shows the the forward looking approach we are determined to take towards cryptoassets in the UK pic twitter com cdtiailBKーHM Treasury hmtreasury April The Financial Conduct Authority has already been experimenting through a regulatory sandbox and plans its first in a series of policy quot crypto sprints quot this May The government is also forming a Cryptoasset Engagement Group that includes representatives from the FCA Bank of England and business with as many as eight meetings per year Glen was aware of the concerns surrounding crypto such as the potential for scams bootleg activity and environmental harms However he cast the NFT and similar projects as an opportunity to get quot in on the ground floor quot and thrive should crypto take off The NFT won t thrill critics who see the tokens as creating artificial scarcity increasing emissions or otherwise wasting resources However it will signal the UK government s willingness to court the crypto industry The country is clearly early to recreate its reputation as a financial hub in the digital realm |
2022-04-04 15:12:53 |
海外TECH |
Engadget |
Samsung's 2022 TV lineup has something for everyone |
https://www.engadget.com/samsung-2022-tv-hands-on-neo-8-k-qled-oled-150043989.html?src=rss
|
Samsung x s TV lineup has something for everyoneWhile Samsung announced all of its new TVs back at CES due to the pandemic we haven t been able to check them out in person until now And even though Samsung didn t bring all of its plus new sets to its flagship store in New York from what I saw there s a lot to like about Samsung s latest big screen lineup The centerpiece of Samsung s portfolio is without a doubt the new QNB the centerpiece of the company s Neo QLED K family For Samsung has added bit HDR mapping up from bit mapping on last year s models to improve picture detail in both bright and dark scenes When combined with that massive x resolution the TV looks seriously sharp The QNB s higher peak brightness and K resolution deliver super sharp details in practically any lighting conditions Sam Rutherford EngadgetBut the most promising upgrades might be the changes Samsung made behind the glass including an updated Neural Quantum processor the company says can analyze the content being shown to further optimize image quality As for audio the QNB also gets a new W channel speaker setup featuring Dolby Atmos with Object Tracking Sound Pro This allows the TV to tweak sounds and voices based on where they appear on screen adding an extra level of immersion As a gamer I really like that in addition to improved support for game streaming services like Google Stadia and NVIDIA GeForce Now built into Samsung s Gaming Hub the QNB along with the K QNB and QNB also gets one HDMI port that supports refresh rates of up to Hz up from Hz Meanwhile all of Samsung s new TVs from the QB and up will come standard with four HDMI ports that support Hz inputs That means you won t need to constantly mess with your cables to make sure you re getting the best possible image quality for your Xbox Series X PS or any gaming PCs you might have connected to the TV That s a big quality of life upgrade compared to my two year old TV that only has a single port that supports Hz inputs I also want to mention the QNB s design which features practically non existent bezels Particularly with its slimmer base the TV really gives the impression that the whole thing is floating in mid air Samsung even tweaked the sides of the TV s bezels with a brushed metal finish and patterned cut outs which looks slick but not distracting Sadly with the smallest inch model starting at a whopping Samsung s latest K TVs aren t cheap Thankfully if you don t care about K which is very understandable Samsung s Neo QLED K QNB starts at just for a inch model The SB features Quantum Dot tech and is Samsung s first new OLED TV in almost a decade nbsp Sam Rutherford EngadgetHowever I think the SB which starts at for a inch model is Samsung s most interesting TV for Not only is it the company s first new OLED TV in almost a decade it also features Quantum Dot technology and a new sub pixel architecture that delivers some truly impressive colors Unlike traditional OLED displays Samsung got rid of the traditional white sub pixel and instead uses blue sub pixels as the main source of illumination And when paired with the same Neural Quantum Processor used in the QNB the SB delivers better brightness than traditional OLEDs without washing out colors or reducing saturation Honestly the richness and vibrancy of this display is jaw dropping and I actually stopped in my tracks the first time I walked past it Now it s important to remember that the SB still isn t as bright as one of Samsung s QLED sets so for people watching TV in a room with lots of windows or tons of ambient light something like the K QNB would probably be a better option And while the SB which starts at for a inch model does get four HDMI ports that support Hz inputs sizes top out at just inches compared to inches for most of Samsung s QLED sets The Frame s new matte coating also makes the TV s art mode look much more lifelike nbsp Sam Rutherford EngFinally when it comes to Samsung s Frame TVs which starts at for a inch model the big change for is a new matte finish that reduces reflections and helps the set do an even better job of disguising itself as art when you re not watching it To me the matte finish gave things like brush strokes in paintings an extra level of texture resulting in a more lifelike appearance That said there is a downside because the anti reflective coating slightly reduces how much light gets through the TV s front glass Thankfully Samsung easily remedied that by increasing the Frame s overall brightness both in art mode and when showing content Here s a comparison showing the effect the Frame s left anti reflective coating has when light is shined on it versus last year s model right Note how the glare is much less harsh on the new Frame nbsp Sam Rutherford EngadgetBut perhaps my big takeaway after seeing Samsung s new TV lineup is that it feels like there s more choice than ever before when it comes to picking your perfect set If you want a super high res TV with excellent brightness that will look great even in bright rooms with lots of windows there s the QNB Alternatively if you want brilliant colors and deep inky blacks the SB represents a welcome return for Samsung to the OLED TV space which is a market its cross country rival LG has dominated in recent years And if you prefer a TV with a more subdued design that might blend in better with your decor there s the Frame and its updated matte finish All of Samsung s new TVs are available for pre order today with devices expected to begin shipping out sometime later this month |
2022-04-04 15:00:43 |
海外TECH |
Engadget |
'Fortnite' players raised $144 million for Ukraine relief efforts |
https://www.engadget.com/fortnite-ukraine-relief-total-epic-games-xbox-150039827.html?src=rss
|
x Fortnite x players raised million for Ukraine relief effortsEpic Games and Microsoft have wrapped up their campaign to support Ukraine relief efforts through Fortnite nbsp after raising an impressive million Both companies donated their proceeds from the game for the last two weeks to humanitarian causes supporting people affected by the war The funds will go to Direct Relief UNICEF UN World Food Program the United Nations High Commissioner for Refugees and World Central Kitchen Our deepest thanks to everyone who joined us in supporting humanitarian relief efforts for people affected by the war in Ukraine Together with the Fortnite community and Xbox we raised million USD for DirectRelief UNICEF WFP Refugees and WCKitchen pic twitter com lPAalmfJnーFortnite FortniteGame April The campaign aligned with the start of Fortnite s latest season meaning that many players were buying V Bucks to unlock the latest Battle Pass and scoop up new in game items Epic and Xbox donated their cuts of gifted Battle Passes Fortnite Crew subscriptions and gift cards redeemed during that time to relief efforts as well |
2022-04-04 15:00:39 |
ラズパイ |
Raspberry Pi |
Exploring cross-disciplinary computing education in our new seminar series |
https://www.raspberrypi.org/blog/cross-disciplinary-computing-education-research-seminars/
|
Exploring cross disciplinary computing education in our new seminar seriesWe are delighted to launch our next series of free online seminars this time on the topic of cross disciplinary computing running monthly from May to November As always our seminars are for all researchers educators and anyone else interested in research related to computing education Crossing disciplinary boundaries What do we mean by cross disciplinary The post Exploring cross disciplinary computing education in our new seminar series appeared first on Raspberry Pi |
2022-04-04 15:32:56 |
Cisco |
Cisco Blog |
Transforming Manufacturing with Digital Technology and Collaboration |
https://blogs.cisco.com/partner/transforming-manufacturing-with-digital-technology-and-collaboration
|
Transforming Manufacturing with Digital Technology and CollaborationDigital transformation is fueling what is often called the fourth industrial revolution To compete effectively manufacturers must switch from static to dynamic operations by harnessing the power of artificial intelligence robotics cloud computing supply chain technology and the Industrial Internet of Things IIoT |
2022-04-04 15:00:43 |
金融 |
RSS FILE - 日本証券業協会 |
PSJ予測統計値 |
https://www.jsda.or.jp/shiryoshitsu/toukei/psj/psj_toukei.html
|
統計 |
2022-04-04 16:00:00 |
金融 |
RSS FILE - 日本証券業協会 |
J-IRISS |
https://www.jsda.or.jp/anshin/j-iriss/index.html
|
iriss |
2022-04-04 15:39:00 |
金融 |
金融庁ホームページ |
金融安定理事会による「2022年の作業計画」について掲載しました。 |
https://www.fsa.go.jp/inter/fsf/20220404/20220404.html
|
作業計画 |
2022-04-04 17:00:00 |
金融 |
金融庁ホームページ |
審判期日の予定を更新しました。 |
https://www.fsa.go.jp/policy/kachoukin/06.html
|
期日 |
2022-04-04 16:00:00 |
金融 |
金融庁ホームページ |
資金決済法に基づく払戻手続実施中の商品券の発行者等一覧を更新しました。 |
https://www.fsa.go.jp/policy/prepaid/index.html
|
資金決済法 |
2022-04-04 15:10:00 |
ニュース |
ジェトロ ビジネスニュース(通商弘報) |
第3次コスタ内閣が発足、復興計画の効率的執行を目指す |
https://www.jetro.go.jp/biznews/2022/04/bb39d876dd2e437c.html
|
復興計画 |
2022-04-04 15:40:00 |
ニュース |
ジェトロ ビジネスニュース(通商弘報) |
タイ米USTR代表が議会公聴会で証言、対中政策で国内投資の重要性強調 |
https://www.jetro.go.jp/biznews/2022/04/0684974e4d915eed.html
|
国内投資 |
2022-04-04 15:30:00 |
ニュース |
ジェトロ ビジネスニュース(通商弘報) |
バイデン米大統領、国防生産法の活用で重要鉱物の国内生産増へ |
https://www.jetro.go.jp/biznews/2022/04/b199564a3a966e7b.html
|
米大統領 |
2022-04-04 15:20:00 |
ニュース |
ジェトロ ビジネスニュース(通商弘報) |
2022年のGDP成長率は5.3~6.3%、中銀が予測を下方修正 |
https://www.jetro.go.jp/biznews/2022/04/62c6bd3811bb3db8.html
|
下方修正 |
2022-04-04 15:10:00 |
ニュース |
BBC News - Home |
Ex-government ethics chief Helen MacNamara admits to lockdown party fine |
https://www.bbc.co.uk/news/uk-politics-60983517?at_medium=RSS&at_campaign=KARANGA
|
civil |
2022-04-04 15:22:19 |
ニュース |
BBC News - Home |
Dan Walker: Presenter to leave BBC Breakfast for Channel 5 |
https://www.bbc.co.uk/news/entertainment-arts-60986736?at_medium=RSS&at_campaign=KARANGA
|
front |
2022-04-04 15:02:15 |
ニュース |
BBC News - Home |
Easter travel disruption as flights cancelled |
https://www.bbc.co.uk/news/business-60976958?at_medium=RSS&at_campaign=KARANGA
|
delays |
2022-04-04 15:12:30 |
ニュース |
BBC News - Home |
Ukraine war: We will not rest until justice is done, says Johnson |
https://www.bbc.co.uk/news/uk-60985682?at_medium=RSS&at_campaign=KARANGA
|
graves |
2022-04-04 15:25:57 |
ニュース |
BBC News - Home |
Ukraine war: Ukraine investigates alleged execution of civilians by Russians |
https://www.bbc.co.uk/news/world-europe-60981228?at_medium=RSS&at_campaign=KARANGA
|
russian |
2022-04-04 15:10:43 |
北海道 |
北海道新聞 |
ロシアの人権理資格停止提起へ 米、国連総会で投票目指す |
https://www.hokkaido-np.co.jp/article/665446/
|
国連大使 |
2022-04-05 00:01:25 |
北海道 |
北海道新聞 |
温室ガス排出ピーク25年以前に IPCC、対策強化促す |
https://www.hokkaido-np.co.jp/article/665451/
|
産業革命 |
2022-04-05 00:15:00 |
北海道 |
北海道新聞 |
EU、戦争犯罪捜査チーム派遣へ ウクライナに |
https://www.hokkaido-np.co.jp/article/665450/
|
戦争犯罪 |
2022-04-05 00:09:00 |
コメント
コメントを投稿