IT |
気になる、記になる… |
インド初のApple Storeは来月オープンへ |
https://taisy0.com/2023/03/20/169780.html
|
apple |
2023-03-20 13:24:57 |
AWS |
AWS Networking and Content Delivery |
Visitor Prioritization on e-Commerce Websites with CloudFront and CloudFront Functions |
https://aws.amazon.com/blogs/networking-and-content-delivery/visitor-prioritization-on-e-commerce-websites-with-cloudfront-and-cloudfront-functions/
|
Visitor Prioritization on e Commerce Websites with CloudFront and CloudFront FunctionsWhen we wrote the previous post Visitor Prioritization on e Commerce Websites with CloudFront and Lambda Edge five years ago Visitor Prioritization was a relatively new concept Since then we saw a huge need for traffic shaping throttling and request prioritizing especially in the gaming and media industries Of course e Commerce sites still require this capability for … |
2023-03-20 13:43:13 |
AWS |
AWS - Webinar Channel |
Amazon S3: Configuring Access Policies |
https://www.youtube.com/watch?v=U6UFgUlSapY
|
Amazon S Configuring Access PoliciesAt creation and by default all S resources are private and can only be accessed by the resource owner or account administrator This security design lets you configure finely tuned access policies that align to organizational governance security and compliance requirements In this video learn the different ways you can manage access to your data using AWS Identity and Access Management IAM and S bucket policies Learning Objectives Objective Review the different Amazon S access management options Objective Consider different access management options for different use cases Objective Learn how to set up different access management policies To learn more about the services featured in this talk please visit |
2023-03-20 13:32:55 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
Pythonの勉強 #自分用 |
https://qiita.com/Hayatu2/items/3dfc7b289042968359be
|
piplist |
2023-03-20 22:57:51 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
TechFUL 難易度5「Heisei」 |
https://qiita.com/uiuiuiuiui/items/1827d306c27788e3500e
|
heisei |
2023-03-20 22:38:20 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
AIにフリー素材の画像モデルさんを学習させていろんな商品のモデル画像を生成する |
https://qiita.com/john-rocky/items/c4dd11b09df491daab04
|
限り |
2023-03-20 22:28:09 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
[python3] loggingのタイムスタンプを変更する |
https://qiita.com/gunkan8mmt/items/193d01a39a228478e8bd
|
logging |
2023-03-20 22:06:41 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
Bootstrap5のモーダルウィンドウをJavaScriptで制御する |
https://qiita.com/yutami/items/4d55a9f035b6d05f9787
|
bootstrap |
2023-03-20 22:34:09 |
Linux |
Ubuntuタグが付けられた新着投稿 - Qiita |
Ubuntu: find の使いそうなコマンドまとめ |
https://qiita.com/baku2san/items/5ccc091478cd37e66460
|
namemtimemmin |
2023-03-20 22:36:59 |
Ruby |
Railsタグが付けられた新着投稿 - Qiita |
N + 1問題とは |
https://qiita.com/30113011tr/items/38850157fe7ec419b8b3
|
記事 |
2023-03-20 22:53:20 |
Ruby |
Railsタグが付けられた新着投稿 - Qiita |
非同期通信でいいね機能実装 |
https://qiita.com/Bjp8kHYYPFq8MrI/items/9ec2401038a9813a0897
|
非同期 |
2023-03-20 22:49:29 |
Ruby |
Railsタグが付けられた新着投稿 - Qiita |
RailsアプリケーションにAWS X-Rayを導入した話 |
https://qiita.com/Dai_Kentaro/items/9ee9b16c42f3112a8f89
|
newreli |
2023-03-20 22:46:32 |
技術ブログ |
Developers.IO |
boto3でSecurity Hubを有効化する際に統合コントロール結果をオフにしてみた |
https://dev.classmethod.jp/articles/enable-security-hub-without-consolidated-control-findings/
|
awssecurityhub |
2023-03-20 13:24:07 |
海外TECH |
Ars Technica |
The SpaceX steamroller has shifted into a higher gear this year |
https://arstechnica.com/?p=1925167
|
yearwe |
2023-03-20 13:40:55 |
海外TECH |
Ars Technica |
Microsoft plans mobile games app store to rival Apple and Google |
https://arstechnica.com/?p=1925180
|
activision |
2023-03-20 13:30:16 |
海外TECH |
MakeUseOf |
JMGO N1 Ultra Review: 4K UHD Triple Color Laser Projector |
https://www.makeuseof.com/jmgo-n1-ultra-review/
|
colors |
2023-03-20 13:16:17 |
海外TECH |
MakeUseOf |
The Best VR-Ready Gaming Laptops |
https://www.makeuseof.com/tag/vr-gaming-laptop/
|
games |
2023-03-20 13:01:16 |
海外TECH |
DEV Community |
Empowering Digital Creators: A Technical Guide on How to Create an NFT (Digital Collectible) to say “Thank You” |
https://dev.to/mbogan/empowering-digital-creators-a-technical-guide-on-how-to-create-an-nft-digital-collectible-to-say-thank-you-cd
|
Empowering Digital Creators A Technical Guide on How to Create an NFT Digital Collectible to say “Thank You Let s walk through the process of creating a digital collectible or NFT on Ethereum using Infura and Truffle IntroductionFor years creators have been at the mercy of platforms Historically these platforms have not only taken or more of a creator s revenue but they have also locked down the communications between creators and their fans In this article we ll look at a way to bypass this centralized control and connect with fans without an intermediary Using Infura Ethereum Smart Contracts and Next we ll create an app that allows creators to accept tips from fans and then directly reward those fans with your own “Thank You NFT non fungible token and digital collectible that can be displayed traded sold and collected It s a great way to reward fansーand to keep the control in the hands of the creators Let s start building What We re BuildingThis tutorial is divided into two parts In the first part we ll walk through a step by step guide and deploy a smart contract using Solidity Infura and Truffle that will create the digital collectible on the Ethereum Blockchain Goerli test network We ll use the test network to save on costsーbut it can easily be deployed to mainnet when you are ready In the second part we ll deploy a Next app that interfaces with our contract It will allow anyone in the world to donate money using a MetaMask wallet in exchange for the “Thank You collectible This collectible can be bought sold and traded on popular NFT marketplaces such as OpenSea If you need an intro to any of these concepts or a primer on how to code in Solidity ConsenSys has a good collection of beginner tutorials Part Build the Smart Contract with Infura and Truffle Step Install npm and NodeWe will build our project using Node and npm In case you don t have these installed on your local machine you can do so here To ensure everything is working correctly run the following command node vIf all goes well you should see a version number for node Step Sign Up for an Infura AccountIn order to deploy our contract to the Goerli network and eventually to a mainnet we will need an Infura account Infura gives us access to RPC endpoints that in turn allow for fast reliable and easy access to the blockchain of our choice in our case Ethereum Sign up for a free account here Once you ve created your account navigate to the dashboard and select Create New Key For network choose Web API and name it Thank You NFT Once you click on Create Infura will generate an API key for you and give you RPC endpoints to Ethereum Ls and non EVM Ls and their corresponding testnets automatically For this tutorial we are only interested in the Ethereum Goerli RPC endpoint This URL is of the form ←API KEY→ Step Create a MetaMask Crypto Wallet and Get goerliETH from a FaucetIn order to deploy our contract we are required to have a wallet with enough tokens to pay for gas Gas is used to pay for transaction fees on Ethereumーin this case the deployment of our contract to the blockchain On mainnet you would need the cryptocurrency ETH But since we are deploying on a testnet we can use goerliETH which is free In case you haven t already install the MetaMask extension on your favorite browser and follow the instructions carefully to set up your new wallet MetaMask is the most popular and easy to use self custodial digital wallet in the world As part of the setup you will be given a word mnemonic to keep your wallet safe as well as to generate private keys for your wallets Keep this handy We will need it in a later step Finally acquire some test goerliETH tokens from the Infura faucet Once this is done you should be able to see a small amount of goerliETH in your MetaMask wallet when you switch to the Goerli test network Step Create a Node Project and Install DependenciesLet s set up an empty project repository by running the following commands mkdir ty nft amp amp cd ty nft npm init yWe will be using Truffle a world class development environment and testing framework for EVM smart contracts to build and deploy our smart contract Install Truffle by running npm install ーsave truffleWe can now create a bare bones Truffle project by running the following command npx truffle initTo check if everything works properly run npx truffle testWe now have Truffle successfully configured Next let s install the OpenZeppelin contracts package This package will give us access to the ERC base implementation as well as a few helpful additional functionalities ERC is the open standard that defines how to build NFTs on Ethereum npm install openzeppelin contractsTo allow Truffle to use our MetaMask wallet sign transactions and pay gas fees on our behalf we will need another package called hdwalletprovider Install it by using the following command npm install truffle hdwallet providerFinally in order to keep our sensitive wallet protected and RPC endpoint information safe we will use the dotenv package npm install dotenv Step Create your NFT CollectionNow let s create the smart contract that controls our NFT creation Open the project repository in your favorite code editor e g VS Code In the contracts folder create a new file called ThankYouNft sol quick note ConsenSys Infura just released a new NFT API that makes creating NFTs really easy and can replace some of these steps We re going to write an ERC contract that has the following functionality The ability for anyone to mint an NFT in exchange for a donation amount greater than or equal to a certain minimum The ability for the owner or creator to withdraw any money sent to the contract as a donation The SVG image and associated metadata of all Thank You NFTs stored on chain Add the following code to ThankYouNft sol SPDX License Identifier MITpragma solidity import openzeppelin contracts token ERC ERC sol import openzeppelin contracts token ERC extensions ERCEnumerable sol import openzeppelin contracts token ERC extensions ERCURIStorage sol import openzeppelin contracts access Ownable sol import openzeppelin contracts utils Counters sol import openzeppelin contracts utils Base sol import openzeppelin contracts utils Strings sol contract ThankYouNft is ERC ERCEnumerable ERCURIStorage Ownable using Counters for Counters Counter Counters Counter private tokenIds Define a Donation object struct Donation uint id uint amount address donor string donorName Donation donations constructor ERC Thank You NFT TYN Donate money and mint thank you NFT function mintThankYou string memory donorName public payable require msg value gt ether Smallest donation is ETH string memory metadata generateMetadata tokenIds current donorName donations push Donation tokenIds current msg value msg sender donorName mintSingleNft metadata Generate NFT metadata function generateMetadata uint tokenId string memory donorName public pure returns string memory string memory svg string abi encodePacked lt svg xmlns preserveAspectRatio xMinyMin meet viewBox gt lt style gt base fill white font family serif font size px lt style gt lt rect width height fill orange gt lt text x y class base dominant baseline middle text anchor middle gt lt tspan y x gt Thank You for Donating lt tspan gt lt tspan y x gt donorName lt tspan gt lt text gt lt svg gt string memory json Base encode bytes string abi encodePacked name Thank You NFT Strings toString tokenId description A token of thanks for donating image data image svg xml base Base encode bytes svg attributes trait type Donor value donorName string memory metadata string abi encodePacked data application json base json return metadata Mint a single NFT with on chain metadata function mintSingleNft string memory tokenURI private uint newTokenID tokenIds current safeMint msg sender newTokenID setTokenURI newTokenID tokenURI tokenIds increment Get tokens of an owner function tokensOfOwner address owner external view returns uint memory uint tokenCount balanceOf owner uint memory tokensId new uint tokenCount for uint i i lt tokenCount i tokensId i tokenOfOwnerByIndex owner i return tokensId Withdraw ether donations made function withdraw public payable onlyOwner uint balance address this balance require balance gt No ether left to withdraw bool success msg sender call value balance require success Transfer failed The following functions are overrides required by Solidity function beforeTokenTransfer address from address to uint tokenId uint batchSize internal override ERC ERCEnumerable super beforeTokenTransfer from to tokenId batchSize function burn uint tokenId internal override ERC ERCURIStorage super burn tokenId function tokenURI uint tokenId public view override ERC ERCURIStorage returns string memory return super tokenURI tokenId function supportsInterface bytes interfaceId public view override ERC ERCEnumerable returns bool return super supportsInterface interfaceId Make sure the contract is compiling correctly by running npx truffle compile Step Update Truffle Config and Create a env FileCreate a new file in the project s root directory called env and add the following contents INFURA API KEY Your API Key gt MNEMONIC lt Your MetaMask Secret Recovery Phrase gt Next let s add information about our wallet the Infura RPC endpoint and the Goerli network to our Truffle config file Replace the contents of truffle config js with the following require dotenv config const HDWalletProvider require truffle hdwallet provider const INFURA API KEY MNEMONIC process env module exports networks development host port network id goerli provider gt new HDWalletProvider MNEMONIC INFURA API KEY network id Step Deploy the ContractLet us now write a script to deploy our contract to the Goerli blockchain In the migrations folder create a new file called deploy contract js and add the following code Get instance of the NFT contractconst nftContract artifacts require ThankYouNft module exports function deployer Deploy the contract deployer deploy nftContract We re all set Deploy the contract by running the following command truffle migrate network goerliIf all goes well you should see output containing the contract address that looks something like this Starting migrations gt Network name goerli gt Network id gt Block gas limit xcc deploy contract js Deploying ThankYouNft gt transaction hash xafabeacedceecbebeabaebdacdcd gt Blocks Seconds gt contract address xEBCcAfcaCAeebbED gt block number gt block timestamp gt account xcFcbFaccCdACEeE gt balance gt gas used xeafcf gt gas price gwei gt value sent ETH gt total cost ETH gt Saving artifacts gt Total cost ETHSummary gt Total deployments gt Final cost ETHYou can search for your contract address on Goerli etherscan and see it live Congratulations You ve successfully deployed the contract to Goerli Now let s deploy a Next frontend that interfaces with the contract and allows anyone to call the mintThankYou function to make a donation and mint the digital collectible for themselves Part The Frontend Step Download Boilerplate Code and Install DependenciesWe already have a boilerplate repository available for you to download This implements certain standard functionality such as connect wallet Download or clone the repository from here Next open the repository in your terminal and run npm installThis will install all necessary dependencies and set up a Next app for you Step Add ABI File and ConstantsOpen this repository in your favorite code editor and create a new folder called contracts Go back to the repository in Part and copy the ThankYouNft json file available in the build folder then paste it in the aforementioned contracts folder This is the contract ABI basically the interface which will be important while invoking functions on it Next create a folder called data and in it create a file called constants js with the following information const apiKey lt INFURA API KEY gt const ownerAddress lt Wallet address gt const contractAddress lt Address of deployed NFT contract from Part gt export apiKey ownerAddress contractAddress Step Populate the index js FileWe can now write the crux of our app in the index js file which will enable creating NFTs Once users have connected their wallet to our app they will be able to see a form where they ll be asked to input their name and donation amount Once they do this they can initiate the donation and NFT mint process Add the following code Standard Next and CSS importsimport Head from next head import Fragment useState useEffect from react import styles from styles mainpage module css import useRouter from next router Imports from the constants js fileimport apiKey contractAddress from data constants Wagmi import for connected wallet infoimport useAccount from wagmi Ethers for invoking functions on smart contractimport ethers from ethers Contract ABI importimport contract from contracts ThankYouNft json Extract ABI from the ABI JSON fileconst abi contract abi export default function Home Standard Next router definition const router useRouter Get connected wallet address and connection status const address isConnected useAccount Donor name const donorName setDonorName useState null Tip amount const amount setAmount useState null Page mounting info to prevent hydration errors const hasMounted setHasMounted useState false Minting state const isMinting setIsMinting useState false Flag to check if minting has succeeded const success setSuccess useState false Form error message const formError setFormError useState null Mounting fix to avoid hydration errors useEffect gt setHasMounted true Do not render until entire UI is mounted if hasMounted return null Redirect to Connect page if wallet is not connected if isConnected router replace connect Handlers for form inputs const amountHandler e gt setAmount e target value const nameHandler e gt setDonorName e target value Mint function invoked when form is submitted const mintNft async e gt e preventDefault setFormError false Basic check for correctness of data if donorName length parseFloat amount lt console log Incorrect form input setFormError true return try Get MetaMask Ethereum instance const ethereum window if ethereum Reset states setIsMinting true setFormError false setSuccess false Define provider signer and an instance of the contract const provider new ethers providers WebProvider ethereum const signer provider getSigner const nftContract new ethers Contract contractAddress abi signer Call the mint function console log Initialize payment let nftTxn await nftContract mintThankYou Satoshi value ethers utils parseEther console log Mining please wait await nftTxn wait console log Mined see transaction nftTxn hash Set final states setIsMinting false setSuccess true setDonorName null setAmount null else console log Ethereum object does not exist catch err Something wrong has happened Set error and minting states setIsMinting false setFormError true console log err return lt Fragment gt lt Head gt lt title gt Tip and Mint a Thank You NFT lt title gt lt Head gt lt div className styles jumbotron gt lt h gt Tip and Mint a Thank You NFT lt h gt Main Form lt form onSubmit mintNft className styles mint form gt lt input type text id name name name placeholder Your Name onChange nameHandler value donorName gt lt input type number id amount name amount min placeholder Donation Amount in ETH min ETH onChange amountHandler value amount step gt lt button type submit gt Tip lt button gt lt form gt Helpful messages for end user to know what s going on isMinting amp amp lt p gt Your NFT is minting lt p gt success amp amp lt p gt Thank you for your donation Check out your NFT on OpenSea lt p gt formError amp amp lt p gt Something went wrong Try again lt p gt lt div gt lt Fragment gt We re all set Let s deploy this app to localhost by running npm run devOnce you connect your wallet and complete the minting process you should see a success message at the bottom that looks something like this You now have your own NFT You can now search for your wallet address or the contract address on the NFT platform OpenSea This will allow you to view your NFT and the corresponding collection ConclusionDigital Collectibles NFTs have massive potential to revolutionize the creator economy and put the power directly into the hands of the creators and their fans Using the app that we built with the ConsenSys suite Infura Truffle and MetaMask creators can get tips from around the world withdraw those amounts at any time not pay commissions and create a digital collectible that directly connects them with their fans And this was just a start Check out more information on Ethereum smart contracts and the digital collectible NFT world |
2023-03-20 13:41:11 |
海外TECH |
DEV Community |
Docusaurus - Or the simpliest way to do a technical documentation |
https://dev.to/mxglt/docusaurus-or-the-simpliest-way-to-do-a-technical-documentation-4om4
|
Docusaurus Or the simpliest way to do a technical documentationWhen we work on projects whatever they have a huge number of features or simply they are exposed to the clients we want to have them documented to help other devs or customers to be able to use it easily Often this documentation is really small put all other the place lost in a middle of a Confluence or it never exists So today we will see how Docusaurus will help us to manage this kind of issue What is Docusaurus Docusaurus is an open source project which helps to create a technical documentation from Markdown files Once compiled and deployed you will have a static web site with contains all your documentation with a great presentation without losing time on configurations or deployment Why docusaurus Because it s principal objective is turned on the quick and simple creation of a technical documentation and not only a static web site Other tools that I ve talked about before are more focused on creating a static web site or blog but not a technical documentation which makes it a huge difference For example Docusaurus will display two navigation bars One on the left to display all the topics and subtopics of your documentation One on the right to display all the titles and subtitles of the current documentation page A simple feature which can make all the difference Some other useful features search bar is directly integrated you don t need to install an external plugininternationalisation is available and can easily be setupblog if you want to post some articles about your project I will stop here about all the features because there are a lot of them ConclusionTo end this post Docusaurus is really a tool which must be tested because it has everything to simplify your life and create easily a documentation for all your projects LinksDocusaurus I hope it will help you |
2023-03-20 13:23:00 |
海外TECH |
DEV Community |
Docusaurus - Ou la manière la plus simple de créer votre documentation technique |
https://dev.to/mxglt/docusaurus-ou-la-maniere-la-plus-simple-de-creer-votre-documentation-technique-26gj
|
Docusaurus Ou la manière la plus simple de créer votre documentation techniqueQuand on travaille sur des projets qu ils soient gigantesques par leur fonctionnalitéou simplement car ils sont exposés àdes clients on veut qu ils soient documentés afin que les autres devs ou les clients s y retrouvent sans encombres Bien souvent cette documentation est éparpillée perdue dans un confluence impossible àretrouver ou tout simplement elle n existe pas Aujourd hui on va donc voir comment Docusaurus va nous aider simplement àgérer ça Qu est ce que Docusaurus Docusaurus est un outil open source qui permet la création d une documentation àpartir de fichiers Markdown Une fois compiléet déployé il vous expose l ensemble de vos fichiers markdown en une belle documentation technique sans que vous ayez eu àperdre du temps sur de nombreuses configurations De plus avec les outils et exemples déjàprésents il n y a que peu de chance aussi que vous perdiez du temps sur son déploiement C est con àdire comme ça mais ça fait un sacrégain de temps sur le long terme Pourquoi docusaurus Son objectif principal est véritablement tournévers la création simple et rapide d une documentation technique et non d un site statique Ce qui est une grande différence D autres outils dont j ai déjàpu parler par le passé sont plus tournés vers la création d un site statique ou d un blog donc les fonctionnalités notamment vis àvis de l organisation et de la navigation sont complètement différents Par exemple Docusaurus va proposer deux barres de navigation Une sur la gauche pour permettre de naviguer dans les différents sujets et sous sujets Une sur la droite pour permettre de naviguer entre les différents points et sous points de la documentation actuelle Autre point très utile la recherche directement intégrée dans votre documentation Pas besoin d aller chercher un module externe pour cela c est déjàprésent pour vous Idem pour l internationalisation et l intégration d un blog àcôté Je vais m arrêter làpour les détails des fonctionnalités car il y en a pas mal et le plus simple est d aller les tester par vous même ConclusionPour conclure Docusaurus est véritablement un outil qui mérite d être testécar il a tout ce qu il faut pour vous plaire Simple et efficace il pourra rapidement devenir votre alliépour faciliter la documentation de tous vos projets LiensDocusaurus J espère que ça vous aidera |
2023-03-20 13:22:00 |
海外TECH |
DEV Community |
Meme Monday 🧵 |
https://dev.to/ben/meme-monday-54i0
|
Meme Monday Meme Monday Today s cover image comes from last week s thread DEV is an inclusive space Humor in poor taste will be downvoted by mods |
2023-03-20 13:06:55 |
海外TECH |
DEV Community |
Why I decided to learn (and teach) Clojure |
https://dev.to/marciofrayze/why-i-decided-to-learn-and-teach-clojure-567f
|
Why I decided to learn and teach ClojureIn I started to learn more about the universe of Functional Programming This paradigm was gaining traction and most object oriented programming languages were adding more and more features inspired by this paradigm including the language that I used the most Java After the JDK release in March it became common to hear Java developers using terms like functional programming streams optional map flat map etc But many people around me still ignored these new features and I confess it took me a while to adopt them The ideas sounded very interesting but putting them into practice turned out to be more difficult than I expected After much trial and error I decided to dig deeper into the concepts The book Functional Thinking helped me take my first steps in the right direction In parallel I decided to learn a functional first programming language instead of trying to partially apply the functional paradigm in an object oriented language After doing a lot of research I chose to learn Elm The fact that it is a pure and immutable functional language caught my attention Also it is focused on webapps development and until then I hadn t found any solution for developing web pages that I liked After going through the whole Introductory Guide to the Elm Language and reading the Elm in Action book I already felt quite comfortable developing webapps in this paradigm I liked Elm so much that I started a project to teach programming to beginners using this language and made the first classes available on the website elm dev br in Brazilian Portuguese But there was a serious problem that I still had to face Elm is a language designed for webapps development and works very well for that but I was looking for a general purpose solution that could also be used in backends development So I started hunting for another language again Elm is a statically typed language inspired by Haskell The natural step would be to use Elm on the frontend and Haskell on the backend And that s what I tried to do I read with some difficulty the Learn You a Haskell for Great Good book available for free here and learned a lot of cool stuff But creating a complete backend using Haskell proved to be more than I could chew So I decided to look for alternatives During this whole process the word Lisp kept popping into my head From time to time I would come across a video of someone influential in the community talking about it like this video or this twit by John Carmack founder of id Software It felt mystical And the fact that Nubank adopted Clojure brought a very real and pragmatic case study of the use of a Lisp dialect here in Brazil Until then I was postponing studying it because I was prioritizing statically typed languages and the most famous dialects of Lisp are dynamic languages But in early I finally decided to give it a chance I chose the language Clojure and started reading the Getting Clojure book Unlike my Haskell studies I managed to read this book in just a few days At the same time I started taking Clojure classes at Alura a popular online programming school in Brazil which helped me to see how to program in this language in hands on It was a good combination in the book I learned the concepts of the language more deeply and in the course I reviewed these concepts and learned the more practical parts Clojure s key featuresLisp is not a programming language but a family of languages with many dialects The most famous dialects include Common Lisp Clojure Scheme and Racket So after deciding that I was going to learn Lisp I had to choose one of its dialects Clojure stood out to me for two reasons it uses the Java Virtual Machine enabling interoperability with Java applications which as I said at the beginning of the article is the language I usually use in the backend it predominantly uses the functional paradigm Some Lisp dialects like Common Lisp are multiparadigm but as my intention was to go deeper into the universe of functional programming it made sense to adopt a dialect that was functional first The experience of programming in Clojure was quite liberating Practice TDD together with REPL Driven Development technique quite widespread inside the Clojure community makes the feedback loop very fast The fact that Clojure is a dynamic language also contributes to that Another characteristic of Clojure is that it is an impure language that is we can have side effects at any time The main advantage of this is that it makes the language easier to learn although it brings with it a host of other problems that don t happen in purer languages like Elm or Haskell But although it is an impure language it encourages a series of good practices that significantly reduces the potential problems of this approach Getting started with ClojureClojure might be intimidating at first but after a few hours you get used to it s syntax and it s actually quite easy to learn That s why I also chose this language to share with other developers the basic fundamentals of functional programming If books are your thing I recommend starting with Getting Clojure which as I said earlier is a great way to understand the basic principles behind Clojure But if you are looking for a free option you may start with the online version of the Clojure for Brave and True book Another option more focused on the foundations of the paradigm and that addresses languages other than Clojure is the book Functional Thinking by Neal Ford I created a hours course on Introduction to Functional Programming with Clojure with optional payment yes you can enroll for free if you want to But right now it s only available in my native language Brazilian Portuguese And you what is your favorite paradigm Have you tried programming using the functional paradigm What were your main difficulties Share your experiences in the comments Did you like this text Checkout my other articles at and follow me on twitter |
2023-03-20 13:06:24 |
海外TECH |
DEV Community |
CSS Is Dead! |
https://dev.to/alvaromontoro/css-is-dead-1i4
|
CSS Is Dead This is the comic I coded this week for comiCSS It is a silly joke drawn with HTML and CSS you can see the source code here The design for this cartoon was inspired by two different drawings that I saw on Dribble La Santa Muerte by Christian KornDeath amp Coffee by David EspinosaI also created an animated version of the comic available in Spanish too I hope you enjoy it NOTE The animation only plays once You may need to click on the Rerun button in the bottom right corner It was actually a lot of fun trying to animate the drawing I normally don t do much animation mostly just drawing and of course laying out content and website styling I mean from a creative perspective So it was quite a challenge to be honest I liked the result but I m not fully sold on things like eye movement or how Death restarts walking I need to explore the animation properties and try to create new things that move and behave more naturally LinksPermanent link to this comic Image URL for hot linking Code URL to view CSS source |
2023-03-20 13:05:19 |
海外TECH |
DEV Community |
Make a video about the best contributor of the month with React and NodeJS 🚀 |
https://dev.to/novu/make-a-video-about-the-best-contributor-of-the-month-with-react-and-nodejs-2feg
|
Make a video about the best contributor of the month with React and NodeJS TL DRSee the cover of the article We are going to create this We will take an organization on GitHub review all their repositories and check the number of merged requests done by every contributor during the month We will declare the winner by the one with the most amount of pull requests by creating the video In my case I didn t win and still made the video About the technologiesWe are going to use Remotion and GitHub GraphQL Remotion is an excellent library most video libraries are very complicated You need to deal with layers and animate everything by code Remotion is different It lets you write plain React JSX CSS and then use web scrapers to record the screen It sounds hacky but it s incredible We are going to use GitHub GraphQL and not GitHub REST API it s faster and it has better limits than the REST API Novu the first open source notification infrastructureJust a quick background about us Novu is the first open source notification infrastructure We basically help to manage all the product notifications It can be In App the bell icon like you have in the Dev Community Websockets Emails SMSs and so on I would be super grateful if you can help us out by starring the library Let s startWe will start by initiating a new Remotion project by running the commandnpx create video blank What would you like to name your video ›contributor of the monthOnce finished go into the directorycd contributor of the monthWe can now preview Remotion by runningnpm run startNow let s go ahead and design our video Create a new folder called public and add the following picture We will put the face of the contributor in the middle and the name on top Now let s open our Root tsx file and change to code into this import Composition from remotion import MyComposition from Composition export const RemotionRoot React FC gt return lt gt lt Composition id Contributor component MyComposition durationInFrames fps width height defaultProps avatarUrl name Nevo David gt lt gt let s talk about what s going on here We said that our Frame Per Second fps is and the durationInFrames is It means that durationInFrames fps seconds of the video seconds We set the width and the height of the video based on our picture from the previous step And we put some defaultProps We are going to get the best contributor of the month based on GitHub When we run Remotion Previewer we don t have those parameters so our best option is to give some default parameters and later replace it by the one we send from our NodeJS renderer Party Confetti how can we show enough respect without confetti Let s install it npm install remotion confettiopen our Composition tsx and replace it with the following code import AbsoluteFill Img staticFile from remotion import Confetti ConfettiConfig from remotion confetti import FC from react const confettiConfig ConfettiConfig particleCount startVelocity colors ff ffffff ff spread x y scalar export const MyComposition FC lt avatarUrl string name string gt props gt const avatarUrl name props return lt AbsoluteFill gt lt Confetti confettiConfig gt lt AbsoluteFill gt lt h style textAlign center fontSize color white float left textShadow px px px marginTop marginLeft gt name lt h gt lt AbsoluteFill gt lt AbsoluteFill style background white width height borderRadius position absolute left top overflow hidden gt lt Img style minWidth minHeight src avatarUrl gt lt AbsoluteFill gt lt Img src staticFile background contributor png width height gt lt AbsoluteFill gt So we are starting with some imports AbsoluteFill it s basically a div but Remotion knows how to work with it Img it s the same as img but Remotion knows how to deal with it staticFile the function to load our background imageConfetti the component we have just installed to show confetti on the screen ConfettiConfig Configuration to pass to our Confetti component Next let s talk about the component FC lt avatarUrl string name string gt Those are basically the defaultProps we have passed from the previous step later we will pass the defaultProps dynamically from JS lt AbsoluteFill gt We have placed multiple AbsoluteFill with inline styling around the document to place the elements on the document such as the contributor name and contributor picture const confettiConfig ConfettiConfig particleCount startVelocity colors ff ffffff ff spread x y scalar ConfettiConfig I have put a high velocity to see particles all around the screen and some colors that are different than the dots we have on the screen I have placed it in the middle behind the avatar picture using the x and y and I have put in the scalar to make the particles a little bit bigger From here you can already see inside the preview that we have a final animation of our contributor I don t know about you but this was super easy Now comes the harder part Getting the information from GitHubWe are going to extract our contributor of the month And here is how it s going to go We will create a new GitHub developers API key that we can use to get information from GitHub We will get all the repositories of a GitHub organization We will fetch all the merged pull requests of the GitHub repository until the last one of the month We will count the contributors with the most amount of merged pull requests We will send those parameters into our Remotion project and render it I hope you are excited Let s start We need to install two more libraries moment so we can check that the time of the pull request is within the month octokit rest to send GraphQL requests to GitHub So let s install themnpm install moment types moment octokit rest saveNow let s go to GitHub and create our token Head over to your tokens in settingscreate a new classic token with the following permissions Click on “Generate Token and copy the requested key Let s create the GitHub service and the root of our scheduler touch scheduler tsmkdir servicescd servicestouch github tsLet s open our github ts file and add some code First we will import Octokit and set our token from the previous step const rest new Octokit auth token Now let s create a new class and create our first static function to get all the repositories from the organization export class GitHubAPI public static getOrganization return rest graphql organization login novuhq id name login url avatarUrl repositories first privacy PUBLIC isFork false totalCount pageInfo startCursor endCursor hasNextPage hasPreviousPage nodes id name description url stargazerCount Pretty straightforward function It will get all the repositories from the Novu organization you can change it to any org you want In the final code repository I have put an example using dotenv Now let s create our next function for getting all the contributors from the repository Here it can be a little tricky We can only take a maximum of results every time We are going to do the following Get the first results Remove all the bots from the results If the last element of the array is in a date within this month we will get the next results in a recursive way Repeat the process until the last results are not within our month static async topContributorOfRepository repo string after string Promise lt Array lt avatarUrl string login string gt gt const allPulls await rest graphql query repository name repo owner novuhq pullRequests states MERGED after after after first orderBy field CREATED AT direction DESC pageInfo endCursor hasNextPage nodes createdAt author login url avatarUrl const filterArray allPulls repository pullRequests nodes filter n gt moment n createdAt add month isAfter moment amp amp n author url indexOf apps amp amp n author url return filterArray map p gt login p author login avatarUrl p author avatarUrl allPulls repository pullRequests nodes length amp amp moment allPulls repository pullRequests nodes slice createdAt add month isAfter moment amp amp allPulls repository pullRequests pageInfo hasNextPage await GitHubAPI topContributorOfRepository repo allPulls repository pullRequests pageInfo endCursor So our function has two parameters “repo and “after Since we will iterate over all the repositories from the first step we need a “repo parameter “after is for the recursive part every time we pass it we will get the next In await rest graphql we can see the GraphQL code We are passing the repo name org name and states we want only merged requests pull requests and we tell them to order it by the time they were created in descending order After that we have the filterArray variables that filters all the results with the following parameters Not a bot we can know if the user is a bot if inside their URL they have apps users URLs are usually “github com nevo david Date matching we check that it s within the month by adding the createdAt one month and checking if it s greater than today Let s say we are in March Here are a few examplesIf the pull request was on March we add it one month It will be on April it s bigger than our current date and it s valid If the pull request was on January we add it one month It will be on February smaller than our current date and invalid After we have filtered the results we will return a recursive array The current filtered array conditional recursive if the last item is valid and GitHub says there are more rows to fetch trigger the function again with the next rows Now we just need one more function to merge it allstatic async startProcess const orgs await GitHubAPI getOrganization organization repositories nodes map p gt p name const loadContributors Array lt login string avatarUrl string gt for const org of orgs loadContributors push await GitHubAPI topContributorOfRepository org const score Object values loadContributors reduce all current gt all current login all current login name current login avatarUrl current avatarUrl total all current login total return all as key string avatarUrl string name string total number reduce all current gt if current total gt all total return current return all name avatarUrl total as name string total number return score We grab all the org and extract only the name from them we don t need the other parameters We iterate over the names and get all the contributors we put everything into one array and flat it It will look something like nevo david “tomer “tomer “nevo david “dima In the end we have another function that merges the results and returns the contributor with the most amount of pull requests The full code should look like this import Octokit from octokit rest import moment from moment const rest new Octokit auth key process env GITHUB TOKEN export class GitHubAPI public static getOrganization return rest graphql organization login novuhq id name login url avatarUrl repositories first privacy PUBLIC isFork false totalCount pageInfo startCursor endCursor hasNextPage hasPreviousPage nodes id name description url stargazerCount static async topContributorOfRepository repo string after string Promise lt Array lt avatarUrl string login string gt gt const allPulls await rest graphql query repository name repo owner novuhq pullRequests states MERGED after after after first orderBy field CREATED AT direction DESC pageInfo startCursor endCursor hasNextPage hasPreviousPage nodes createdAt author login url avatarUrl const filterArray allPulls repository pullRequests nodes filter n gt moment n createdAt add month isAfter moment amp amp n author url indexOf apps amp amp n author url return filterArray map p gt login p author login avatarUrl p author avatarUrl allPulls repository pullRequests nodes length amp amp moment allPulls repository pullRequests nodes slice createdAt add month isAfter moment amp amp allPulls repository pullRequests pageInfo hasNextPage await GitHubAPI topContributorOfRepository repo allPulls repository pullRequests pageInfo endCursor static async startProcess const orgs await GitHubAPI getOrganization organization repositories nodes map p gt p name const loadContributors Array lt login string avatarUrl string gt for const org of orgs loadContributors push await GitHubAPI topContributorOfRepository org const score Object values loadContributors reduce all current gt all current login all current login name current login avatarUrl current avatarUrl total all current login total return all as key string avatarUrl string name string total number reduce all current gt if current total gt all total return current return all name avatarUrl total as name string total number return score We have our video ready We have our GitHub code ready All that is left is to merge them To use the Remotion server renderer we need to install it so let s do it npm install remotion renderer remotion bundler saveWe want to run our renderer every month So let s install the node scheduler npm install node schedule saveLet s write our processing function It s pretty straightforward const startProcess async gt const topContributor await GitHubAPI startProcess const bundleLocation await bundle path resolve src index ts gt undefined webpackOverride config gt config const comps await getCompositions bundleLocation inputProps topContributor const composition comps find c gt c id Contributor await renderMedia composition serveUrl bundleLocation codec gif outputLocation out contributor gif inputProps topContributor First we use the function to get the top contributor from our GitHub service Second we load the Remotion bundler We set it to our index ts file which is the root of our Remotion video creator Third we load all the compositions in our case we have one and pass the inputProps with what we got from GitHub it will replace the defaultProps that we put in the first step Forth We look for our composition it s silly because we have one we could just do comps but it s more about making a point Fifth We render the media and create a gif with the contributor of the day We pass the inputProps again honestly this is in the Remotion documentation and I am not really sure why we need to pass it twice All we need to do is to create a schedule to run every st of the month and trigger the function schedule scheduleJob gt startProcess The “ is a way to write cron you can easily play with it here Here is the full code of the page import schedule from node schedule import bundle from remotion bundler import getCompositions renderMedia from remotion renderer import path from path import GitHubAPI from services github schedule scheduleJob gt startProcess const startProcess async gt const topContributor await GitHubAPI startProcess const bundleLocation await bundle path resolve src index ts gt undefined webpackOverride config gt config const comps await getCompositions bundleLocation inputProps topContributor const composition comps find c gt c id Contributor await renderMedia composition serveUrl bundleLocation codec gif outputLocation out contributor gif inputProps topContributor You can start the project by runningnpx ts node src scheduler tsAnd you are done You can share it over Discord Twitter or any channel somebody can see it I encourage you to run the code and post your rendered video in the comments You can find the source code here Can you help me Creating tutorials takes a lot of time and effort but it s all worth it when I see the positive impact it has on the developer community If you find my tutorials helpful please consider giving Novu s repository a star Your support will motivate me to create more valuable content and tutorials Thank you for your support ️️️️ |
2023-03-20 13:04:13 |
Apple |
AppleInsider - Frontpage News |
This Steve Jobs autograph costs more than a Tesla Model S |
https://appleinsider.com/articles/23/03/20/this-steve-jobs-autograph-costs-more-than-a-tesla-model-s?utm_medium=rss
|
This Steve Jobs autograph costs more than a Tesla Model SAn award plaque signed by Apple co founder Steve Jobs is up for sale a rare item as Jobs didn t sign things often Steve JobsMoments in Time buys and sells original letters and other documents that feature autographs and they recently put a unique piece of Apple history up for sale at which is more than a Tesla Model S at Read more |
2023-03-20 13:51:21 |
Apple |
AppleInsider - Frontpage News |
Microsoft's app store for iPhone could arrive as soon as 2024 |
https://appleinsider.com/articles/23/03/20/microsofts-app-store-for-iphone-could-arrive-as-soon-as-2024?utm_medium=rss
|
Microsoft x s app store for iPhone could arrive as soon as Microsoft s gaming chief has his eye on the iPhone and has said that the company is planning its own store to bring Xbox games to Apple hardware outside of the App Store once EU rules come into forceThe European Union s Digital Markets Act will make major changes in March including enabling third party digital storefronts to coexist on the iPhone and iPad alongside the App Store It seems that Microsoft wants to capitalize on the situation According to Microsoft Gaming chief executive Phil Spencer Microsoft wants to open up its own app store for iOS and Android Pending the clearance of its billion acquisition of Activision Blizzard that storefront could go live in at the earliest Read more |
2023-03-20 13:32:50 |
Apple |
AppleInsider - Frontpage News |
Daily Deals: $199 Apple Watch, $600 off 16" MacBook Pro, up to 25% off Google Pixel Buds, more |
https://appleinsider.com/articles/23/03/20/daily-deals-199-apple-watch-600-off-16-macbook-pro-up-to-25-off-google-pixel-buds-more?utm_medium=rss
|
Daily Deals Apple Watch off quot MacBook Pro up to off Google Pixel Buds moreToday s top finds include off an iPhone Pro case with MagSafe a Philips Hue Play HDMI sync box for off a Microsoft Surface Pro X MacBooks from and a Apple Watch SE Save on Apple Watch Series The AppleInsider team scours the web for stellar deals at online stores to develop a list of unbeatable deals on popular tech items including discounts on Apple products TVs accessories and other gadgets We share our top finds in our Daily Deals list to help put more money back in your pocket Read more |
2023-03-20 13:32:42 |
海外TECH |
Engadget |
Apple's AirTag 4-pack is on sale for $90 |
https://www.engadget.com/apple-airtag-4-pack-sale-134557134.html?src=rss
|
Apple x s AirTag pack is on sale for Anyone looking to keep track of all their devices is in for a little treat Apple s AirTag four pack is currently on sale for It equates to a percent discount knocking off a bit but the lowest we ve seen was Still not a bad deal now though if you ve been hesitant to spring for the four pack A single AirTag is available for making the four pack sale almost into a buy three get the fourth free affair AirTags are one of the best Bluetooth trackers on the market seamlessly pairing to your iPhone and clearly visible in the Find My app Newer phones provide detailed directions to your lost items and everyone has the ability to make an AirTag chime nbsp AirTags are small at about an inch and a quarter in length and width A slight downside to them is their lack of a keyring area which many rival devices offer by default You ll have to buy a pouch or accessory if you want to hook one to your keys but AirTags can easily slip into a suitcase or bag with ease This article originally appeared on Engadget at |
2023-03-20 13:45:57 |
海外TECH |
Engadget |
Kamado Joe's new ceramic grill has built-in smart features and one-button ignition |
https://www.engadget.com/kamado-joe-konnected-joe-grill-price-specs-133020818.html?src=rss
|
Kamado Joe x s new ceramic grill has built in smart features and one button ignitionCeramic kamado style grills have been some of the best grilling gear available for backyard cooks for a long time However it takes practice to master lighting them and maintaining proper temperatures Kamado Joe aims to get rid of those frustrations with its latest smart grill The Konnected Joe is equipped with a push button charcoal igniter and a digitally controlled fan system The former gets the grill going and while the latter keeps the heat level where you need it nbsp The Konnected Joe is a true kamado grill at its core The ceramic chamber has trademark Kamado Joe design features like an Air Lift hinge that raises the lid with ease two tier cooking inside side shelves and a slide out ash drawer for quick cleaning The inch diameter cooking surface offers square inches of grilling space The company says this is enough room for burgers four whole chickens or two pork butts In the bottom of the cooking chamber Kamado Joe has added a so called Automatic Fire Starter that ignites charcoal with a simple button press The company says this tool can have your grill ready to use in less than minutes nbsp Kamado JoeThe smart grilling features center around Kamado Joe s Kontrol System This setup includes the Kontrol Board digital display the Kontrol Fan that maintains temperature and the Kontrol Tower vent up top The entire system is controlled from the Kamado Joe app where you can adjust and monitor grill temps keep tabs on food temperatures up to three probes at once and check in on cook times Plus you can do all of this without being near the grill The Konnected Joe has a temperature range of degrees Fahrenheit so you can expect to do low and slow smoking high heat searing and everything in between An Automatic Cook Mode puts step by step guidance on the grill s display and a Classic Cook Mode allows you to do everything manually nbsp The Konnected Joe is less than the WiFi equipped Pellet Joe that debuted in Pre orders start today at the company s website The Home Depot and other retailers Kamado Joe says the grill will begin shipping in June This article originally appeared on Engadget at |
2023-03-20 13:30:20 |
海外TECH |
Engadget |
The best smart light bulbs for 2023 |
https://www.engadget.com/best-smart-led-light-bulbs-143022856.html?src=rss
|
The best smart light bulbs for One of the best places to start when building a smart home ecosystem is smart light bulbs Not only are they relatively affordable compared to other IoT gadgets often costing between and a bulb but they can also completely change the feel of your home You can go from boring and analogue to colorful and automated within minutes and there are endless possibilities when it comes to using smart light bulbs to create funky colored light scenes setting schedules and more But like the rest of the smart home space over the last few years there are now more players in smart lighting than ever before We tested out some of the most popular smart lights on the market and found that most of them are quite good but there are differences in compatibility color quality and mobile app usability that are worth considering before deciding which smart bulb system will be right for your home What to look for in smart light bulbsConnectivity To hub or not to hub One of the biggest appeals of smart lights is being able to control them from your phone Most of them are able to do so by connecting to it via WiFi or Bluetooth or via an external hub which handles the connection for them Bluetooth connectivity limits the range in which you ll be able to control the light so it s only best for a limited number of bulbs and ones you don t expect to control when you re away WiFi smart lights are easy to set up and can be cheaper overall since they don t require a hub to connect them However having something like a central Zigbee hub can make your whole system more reliable since its connection is separate from your home s WiFi network For that reason hub based bulbs tend to be more expandable so we mainly recommend those if you want to eventually have dozens of smart lights around your home White or color Most smart bulbs you ll find today are “white and color bulbs meaning they can glow in vibrant blues pinks greens and everything in between as well as shine with different temperatures of white But there are some white only bulbs out there and they are often a bit more affordable than their color counterparts While we recommend springing for the white and color devices if you d prefer white only make sure you re getting a bulb that can span the color temperature spectrum typically from about to Kelvin offering you various levels of warm and cool white light App featuresOne of the perks of smart lights is the amount of control you have over them thanks to their various app connected capabilities Most companion apps let you do things like set lighting schedules group individual lights into room designations and create your own custom light “scenes with different colors But we have seen other features that aren t as ubiquitous like vacation mode for automatically turning lights on and off to enhance your home security and sync with media which changes the colors of lights depending on the music you re listening to or the game you re currently live streaming Smart home compatibilityIf you use a smart assistant like Amazon s Alexa or the Google Assistant regularly make sure the smart lights you get work with your favorite All of the bulbs we tested supported both Amazon s and Google s virtual assistants allowing you to use voice commands to turn lights on and off dim them and more The wildcard here is Siri and Apple s HomeKit while numerous smart bulbs have added HomeKit to their list of compatible connections not all lights support Apple s smart home framework ExpandabilityWe alluded to this above but you ll want to consider how many smart lights you eventually want in your home Some brands and systems are easier to expand than others and we generally recommend going for hub based bulbs if you plan on putting smart lights in every room in your home If you re only looking to deck out your home office or living room with some fancy lights WiFi options should serve you well Thankfully these are some of the most affordable smart home devices you can get so even if you don t have a clear answer to this question now you can reconsider your options down the line if you do decide to outfit your home with multiple smart bulbs Best overall Philips Hue White Color AmbianceIf you ve done any research into smart lights you ve probably come across Philips Hue bulbs The range is popular for a variety of reasons and we agree they re the best smart light bulbs you can get thanks to their wide compatibility easy to use mobile app and their expandability Particularly if you know you want to outfit more than one room in your home with these IoT devices Philips Hue is the way to go The first thing that s important to know about Hue bulbs is that they are now Bluetooth enabled That means you can buy a few to try out first then easily expand your system with a hub when you want to add more lights to your home Previously the hub was required for any and all lights but now it s much easier to dip your toe into the range before fully taking the plunge Like all of the other smart lights we tested you only need to screw in a Philips Hue bulb turn on your light and follow the instructions in the mobile app to start using it Even if you only have the lights in one room to start we still recommend grouping them into their own “room in the Hue app so you can easily control the entire space s environment at once Hue s White Color bulbs provide a range of warm to cool whites and millions of colors to experiment with Colors are rich and vibrant and Philips pre programmed scenes such as Energize Bright and Relax let you quickly emulate your old “dumb lights with different warmth levels of white light You can pick from a number of color scenes in the app too but it s also easy to create your own color temperature So if you ve always wanted to flood your office with a rainbow of colors while you re live streaming on Twitch you can find the precise presets you want save them and then turn them on with just a few taps in the app The Hue app is pretty easy to use and the bulbs support voice commands from Amazon s Alexa and the Google Assistant That means you don t even have to open the app to control your lights you can simply say “Alexa turn off the bedroom lights and only the lights in that designated room will extinguish You ll be able to add up to bulbs to your system using Bluetooth alone at which point you ll have to add a Philips Hue hub into the mix to support up to lights The hub also enables things like HomeKit connectivity light schedules and automations home and away modes and syncing with movies and music Arguably the most useful of those features is automations which lets you set on off schedules for your lights including automatically turning the lights off when you leave the house It s understandable why Philips would make these few features exclusive to those with Hue hubs adding a hub into the mix makes the system more reliable allowing you to do more with increasing numbers of connected lights plus it will encourage many to invest in a hub and more Hue bulbs over time We like Hue s hub not only for its reliability but also because it allows finer and more flexible control over your devices So if you re on vacation and want to turn on your living room lights to see what s going on you can do that Expandability goes beyond the number of lights you have in your home It also includes multiple smart bulbs you can install outside too The Hue range has a ton of indoor and outdoor bulbs to choose from including recessed lights outdoor pedestal and flood lights light strips and more It s one of the few ranges available today that gives you a ton of options to make every bulb in and out of your home smart which is important to consider if you know you want to go all in on the smart light front But that brings us to the biggest downside of Philips Hue which is the price Hue bulbs are on the expensive side with a two pack of White Color Ambiance bulbs costing If you re looking for cheap bulbs to test out smart lighting some of our other picks below like the Kasa smart light bulb will be better choices since most of them have lower prices per bulb However if smart lighting is something you want to invest in going forward we recommend going with one of Philips Hue starter kits the White Color Ambiance starter kit including three bulbs a hub and a smart button comes in at which is cheaper than if you were to buy all of those components separately Runner up LIFX Color AOverall LIFX s color smart lights are similar to Hue s White Ambiance bulbs in that they re easy to set up they offer striking saturated colors and work with three major platforms Alexa Google Assistant and HomeKit But the main difference is the LIFX bulbs are WiFi only so you can t connect them to a hub even if you wanted to and some are slightly more expensive than Hue devices The Color A bulb which supports lumens normally costs but there s an lumen equivalent that s a bit cheaper coming in at per bulb LIFX s mobile app is also undoubtedly the slickest we tested While that may not mean much to you it s worth mentioning because mobile apps are the way most people interact with their smart lights on a daily basis The homepage features all of the room groups in your household along with the names of the lights in each room You can easily turn a whole room or a specific light on with just a tap and do the same for all of the lights in your home LIFX lights support scheduling so you can program lights to work for you so you rarely if ever have to control them manually plus there are a plethora of scenes and effects to choose from While all of the color lights we tried had pre made scenes or presets ready to go in the app Philips Hue and LIFX clearly had the most out of them all Personally I found LIFX s scenes and additional effects to be a bit more fun and engaging than Hue s You can pick from scenes like “spooky or “pastel and use effects like “strobe if you want to make your living room feel a bit more like a nightclub While most people probably won t use these niche scenes and effects on a regular basis they re great perks to have when you re entertaining or just want to set the right vibe for your next movie night or game streaming session LIFX has a number of products in its ecosystem from standard A bulbs to lightstrips to candles It has switches too so you can physically control your smart lights if you wish But Philips Hue has all of those options too and more including not just switches but standalone floor lamps outdoor spotlights downlights light bars and motion sensors You ll have more options with Hue if you want to convert all of your home s lights to smart ones and have multiple ways to control them too Best budget TP Link Kasa Smart WiFi Light BulbTP Link s Kasa brand is known for its solid yet affordable smart home devices and its smart lights are no different We tested out the WiFi only multicolor smart light bulbs and found them easy to install and use and they provide a bunch of features at an affordable price a four pack of multicolor bulbs will only set you back Besides having a simple installation process Kasa s multicolor smart lights stayed reliably connected the whole time we tested them and the companion mobile app is simple and clean All of the main functions for each light live in that bulb s dedicated page in the app allowing you to change brightness white levels color schedules and more without navigating through a bunch of different menus Changing colors is nearly instantaneous and the light changes as you drag your finger across the color wheel in the app Editing the four presets you re able to save takes only a few taps as does grouping multiple bulbs into rooms and creating lighting schedules For the latter if you do set on off schedules the app will show you the next step in that schedule i e off at pm next to each individual light There s also a handy “usage section in each light s page that shows you the bulb s energy use over time plus an estimate of how much energy you re saving by using a smart light instead of a regular one This is something that would be fun to observe over many weeks and months of using these bulbs especially if conserving energy is one of the main reasons you invested in smart lights in the first place TP Link claims you can connect “unlimited smart devices to its mobile app which technically means you can have as many Kasa smart lights in your home as you d like We only tested a few together so we can t say for sure how dozens of connected devices would affect app speed and light response time These are WiFi only bulbs which means connecting them to a Zigbee hub isn t an option so keep that in mind before deciding to invest in a house full of these gadgets It s also worth noting that these lights aren t compatible with Apple s HomeKit although you can control them using Alexa and Google Assistant commands Best all white LIFX White EMaybe you don t want to bother with colored lights If that s the case LIFX s White E is your best bet You get all of the non color features in the mobile app that we explained above including schedules and virtual assistant controls but in a more basic light bulb that only costs My biggest gripe is that it doesn t span the cool to warm temperature range that other bulbs do Rather you re stuck with just one shade of white K which is on the warmer side This makes the LIFX bulb better for intimate settings like a bedroom or a living room but since it s not overly warm it could work in a home office too It s also dimmable so you can control its brightness If you have a specific use case in mind for your smart lights that doesn t involve a rainbow of colors then a LIFX bulb will more than suffice They would work well in a child s room for instance allowing you to set wake up and sleep schedules that gradually turn on and off the lights or in a home office where you just want a bit more control over your lights without extra frills Honorable mention Sengled Smart Light BulbsSengled s Smart Light Bulbs deserve a shout because they re essentially more affordable versions of the best bulbs mentioned here just with a few compromises Key among those is that their colors are less nuanced than most others we tested and the mobile app is less polished That said you re still getting millions of colors out of Sengled s smart lights and the app is easy to use It also provides all of the features you d want from a smart light bulb including grouping schedules and automations The fact that the Sengled mobile app isn t as slick as Hue s or LIFX s may actually work in its favor with newbies the basic controls and labels will be very easy for smart home novices to understand The bulbs we tested were WiFi based so they do not require a hub However Sengled has a bunch of other smart lights that work via WiFi Bluetooth or hub connectivity A pack of four WiFi color bulbs will set you back while a set of six Zigbee hub based lights costs only Overall Sengled s devices are much more affordable than Hue s making them a good budget option regardless of whether you want to stick to WiFi or invest in a smart home hub like Sengled s own or a smart device like Amazon s Echo with a built in hub Best smart lamp Philips Hue Signe Table LampPhilips Signe table lamp is a slick way to add a wash of color into your living room or a more controllable light source on your desk The nearly two foot tall lamp can be customized with up to three colors of light at once plus it supports a full array of cool and warm hues as well Shine it towards a wall to set the mood with colored lights during your game night or use it to give yourself sufficient lighting during your next Zoom meeting you can make it as fun or as practical as you need It also supports effects like “candle and “fireplace both of which produce moving light that emulates flickering flames We also appreciate that the Signe lamp is a totally standalone device like most of Philips new Hue bulbs you don t need a Hue bridge to use it But if you have one you ll be able to do things like control the lamp when you re away from home The Signe lamp is a splurge though coming in at over It s certainly worth it if you need just one powerful light source but a more affordable alternative would be the Philips Hue Go portable table lamp It too supports millions of colors and a full spectrum of warm and cool light but it runs on a rechargeable battery and can be used wirelessly Depending on the setting you choose you ll get up to hours of continuous use making it a good option if you want a controllable light that can go anywhere you need it without fuss Best smart light strip Govee M RGBIC LED Strip LightLight strips can bring illumination to hard to reach places or give a whole new vibe to your living room or office The latest light strip from Govee the M RGBIC model gets super bright and supports a wide range of colors It s WiFi connected but requires no central hub so even if you have other smart lights throughout your home this one will fit in easily One strip measures nearly feet long and it s divided into segments that you can control individually from within the Govee app We ll get into the app features but it s worth noting where the M sits in the smart light strip space There are various different lengths out there and you can even find some two packs that will cover up to feet The foot length is pretty common in single packs although you can find some that run up to feet long You can expect to pay to for a basic multi color foot light strip and the price will go up from there depending on how many segments the strip has the color range it supports if it s WiFi connected and other additional features Govee s M Light Strip is on the higher end of the spectrum coming in at for feet of light but it still costs less than arguably its biggest competitor Philips Hue Light Strips which come in at per foot strip I was impressed by not only the color spectrum the M Light Strip supports but also how bright it is This strip gets almost blinding and I usually had it operating at just percent of its full brightness While you can t control each individual light on the strip you can customize all segments in the Govee app The sheer number of options and effects Govee provides is remarkable the “effects lab gives you pre made basic colors scenes that mimic sunrises starry nights different kinds of movies like thrillers and dramas gaming genres and more On top of that you can make your own custom scenes and choose to share them with others in Govee s Explore page as well as your favorite colors and hues that you can save for frequent use The strip s color is saturated and vibrant combine that with the overall brightness and it was easily able to give my office an attractive ambient glow when positioned around the periphery of my couch Aside from the higher price tag my only other complaint about the M light strip is actually Govee s mobile app It s a bit chaotic and takes some getting used to so it might not be the best choice for anyone that wants something basic However I was able to get the hang of all the controls and then some after about a half hour And you can always default to using Alexa or Google Assistant voice commands to control your light strip if you prefer or you can set automations in the app that can take care of all your most used controls This article originally appeared on Engadget at |
2023-03-20 13:15:12 |
海外TECH |
Engadget |
Samsung's expanded OLED TV lineup includes a new lower-priced series |
https://www.engadget.com/samsungs-expanded-oled-tv-lineup-includes-a-new-lower-priced-series-130035154.html?src=rss
|
Samsung x s expanded OLED TV lineup includes a new lower priced seriesSamsung is finally offering more than one OLED TV series The company is expanding its Quantum Dot OLED range to add a more affordable SC family pictured above You ll have to settle for a scaled back version of object tracking sound and won t get the SC s near flush wall mounting or external connection box You ll still get a punchy QD OLED image AI based HDR mapping Dolby Atmos audio and syncing with Samsung soundbars The SC starts at for a inch model and scales up to for a inch version A inch set is quot coming soon quot Conveniently those prices match what LG is asking for equivalent C TVs ーSamsung is clearly eager to upstage its main rival although it still doesn t offer Dolby Vision HDR You ll also have more options if you re willing to spend extra on the SC In addition to the already shipping inch model Samsung is adding more reasonable inch and inch screens Those prices are higher than last year s models but match the prices of LG s G line Samsung claims a slightly brighter nit output and a Hz refresh rate for compatible PC games Both the SC and SC are rolling out today It s too soon to say if Samsung or LG has the best OLED TV family this year but it may come down to differences like Dolby Vision support or a brighter picture However it s safe to say Samsung is now fully invested in OLED TVs after avoiding them for years The extra competition may be good news if it leads to more aggressive pricing and feature upgrades This article originally appeared on Engadget at |
2023-03-20 13:00:35 |
Cisco |
Cisco Blog |
Trickle Up: Leveraging technology to build economic opportunity and drive inclusion for women in extreme poverty |
https://feedpress.me/link/23532/16031526/trickle-up-leveraging-technology-to-build-economic-opportunity-and-drive-inclusion-for-women-in-extreme-poverty
|
Trickle Up Leveraging technology to build economic opportunity and drive inclusion for women in extreme povertyTrickle Up is a Cisco nonprofit partner that supports women in extreme poverty by helping them build economic opportunity |
2023-03-20 13:00:59 |
海外TECH |
CodeProject Latest Articles |
Controlling Service Startup Order in Docker Compose |
https://www.codeproject.com/Articles/1260230/Controlling-Service-Startup-Order-in-Docker-Compos
|
correct |
2023-03-20 13:40:00 |
金融 |
RSS FILE - 日本証券業協会 |
J-IRISS |
https://www.jsda.or.jp/anshin/j-iriss/index.html
|
iriss |
2023-03-20 14:41:00 |
ニュース |
BBC News - Home |
Brexit: DUP will vote against Windsor Framework plans |
https://www.bbc.co.uk/news/uk-northern-ireland-65008991?at_medium=RSS&at_campaign=KARANGA
|
issues |
2023-03-20 13:53:27 |
ニュース |
BBC News - Home |
RMT members at Network Rail vote to accept pay deal |
https://www.bbc.co.uk/news/business-65015207?at_medium=RSS&at_campaign=KARANGA
|
dealrail |
2023-03-20 13:58:39 |
ニュース |
BBC News - Home |
BBC advises staff to delete TikTok from work phones |
https://www.bbc.co.uk/news/uk-65008599?at_medium=RSS&at_campaign=KARANGA
|
popular |
2023-03-20 13:45:38 |
ニュース |
BBC News - Home |
Somalia drought may have killed 43,000 last year - UN |
https://www.bbc.co.uk/news/world-africa-65015084?at_medium=RSS&at_campaign=KARANGA
|
unhalf |
2023-03-20 13:45:49 |
ニュース |
BBC News - Home |
Bryn Hargreaves: Body of missing former Wigan Warriors star found |
https://www.bbc.co.uk/news/uk-england-manchester-65014006?at_medium=RSS&at_campaign=KARANGA
|
hargreaves |
2023-03-20 13:21:12 |
ニュース |
BBC News - Home |
Is this a banking crisis - how worried should I be? |
https://www.bbc.co.uk/news/business-64951630?at_medium=RSS&at_campaign=KARANGA
|
credit |
2023-03-20 13:53:42 |
コメント
コメントを投稿