投稿時間:2021-11-24 01:39:49 RSSフィード2021-11-24 01:00 分まとめ(41件)

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
IT 気になる、記になる… Microsoft、「Surface Pro 8」向けに2021年11月度のファームウェアアップデートをリリース https://taisy0.com/2021/11/24/148919.html microsoft 2021-11-23 15:51:56
AWS AWS Game Tech Blog How Adtech Platform AudioMob Is Changing The Mobile Game Monetization Through Amazon Web Services https://aws.amazon.com/blogs/gametech/how-adtech-platform-audiomob-is-changing-the-mobile-game-monetization-through-amazon-web-services/ How Adtech Platform AudioMob Is Changing The Mobile Game Monetization Through Amazon Web ServicesAudioMob was founded after we spotted a tremendous monetization opportunity for game developers Rewarded video ads in mobile games have made developers and publishers money but always at the expense of interrupting games Yet these interruptions don t just irritate players they can even push them away from a game entirely thereby damaging retention This can … 2021-11-23 15:41:18
python Pythonタグが付けられた新着投稿 - Qiita AtCoder B - Power Socket 解説 https://qiita.com/KKDDD/items/7d1b5306b31918388fef atcoderbpowersocket 2021-11-24 00:24:21
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) RSpecテストがローカルでは成功するがcircleCIでエラーになるため解決したい https://teratail.com/questions/370707?rss=all RSpecテストがローカルでは成功するがcircleCIでエラーになるため解決したい前提・実現したいこと投稿アプリを作成しています。 2021-11-24 00:57:00
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) Java シューティングゲームで複数個の弾を発射する方法 https://teratail.com/questions/370706?rss=all Javaシューティングゲームで複数個の弾を発射する方法引用テキストnbsp前提・実現したいことJavaでシューティングゲームを作成しています。 2021-11-24 00:39:21
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) google colaboratoryでのエラー https://teratail.com/questions/370705?rss=all 2021-11-24 00:27:36
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) javascript イベントハンドラ アロー関数 https://teratail.com/questions/370704?rss=all javascriptイベントハンドラアロー関数質問失礼いたします。 2021-11-24 00:10:07
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) C言語上での二次元配列におけるscanf前後での数値変化 https://teratail.com/questions/370703?rss=all scanfの前後で勝手に配列の中身が変化してしまうことはあるのでしょうか。 2021-11-24 00:04:58
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) ExcelのIF関数について https://teratail.com/questions/370702?rss=all ExcelのIF関数について初歩的な質問で申し訳ございません。 2021-11-24 00:04:55
Linux Ubuntuタグが付けられた新着投稿 - Qiita Ubuntu20.04にAzure開発環境をインストールする https://qiita.com/kannkyo/items/98a0252be6880e9eb393 UbuntuにAzure開発環境をインストールするはじめにUbuntuにAzure用の開発環境をインストールした際の手順です。 2021-11-24 00:22:25
AWS AWSタグが付けられた新着投稿 - Qiita 【SAP-C01試験対策】DDoS攻撃に対する対策 https://qiita.com/jellyk405/items/ec51d01363744c177bab 【SAPC試験対策】DDoS攻撃に対する対策はじめにAWS上のDDoS攻撃に対するセキュリティ技術を勉強するために以下の公式ドキュメントおよび研修を参考にしたので内容をまとめます。 2021-11-24 00:16:56
AWS AWSタグが付けられた新着投稿 - Qiita Amazon Linux 2022 Preview の様子見 https://qiita.com/98lerr/items/be600bbd5fdb463e9c05 詳細はわからないですが、「テスト終わってリリースしようとしたら、yumからとってきたrpmが更新されてて本番での動作が変わった」みたいな悲劇を避けられるものなのかと期待してます。 2021-11-24 00:10:46
AWS AWSタグが付けられた新着投稿 - Qiita Okta→AWSコンソールのSSO(SAML)とプロビジョニング https://qiita.com/urushibata/items/b125dbed229227a08395 ユーザープロビジョニングというとIDPでアカウントを作成するとSPserviceprovider側にもアカウントが作成され同期されるという認識でしたが、AWSにおいてはSSOするときにそのセッションにロールを付与し、仮想のIAMユーザーを作成し、接続させることをプロビジョニングとしていますと私は思っています。 2021-11-24 00:04:16
golang Goタグが付けられた新着投稿 - Qiita zinのLogin https://qiita.com/m_k_n/items/97218d944cfee28bf8dc 2021-11-24 00:21:19
golang Goタグが付けられた新着投稿 - Qiita Go 文法 2 https://qiita.com/m_k_n/items/3cb5c863f8ff4b7748f5 Go文法Go文法前回の続きフロー制御ifpackagemainimportfmtfuncmainsbazifsbusfmtPrintlnHelloelseifsbazelseiffmtPrintlnworldelseelsefmtPrintlnHelloworldifnnnにを代入nの余りがならばの判別式fmtPrintln偶数elsefmtPrintln奇数hogegobuildifgogosrchogeifgosrcworld偶数ifの判別の前に値をすることも可能forpackagemainimportfmtfuncmainforiiltifmtPrintlnihogegobuildforgogosrchogeforgosrcpackagemainimportfmtfuncmainsumforsumlt省略系whileみたいな感覚sumsumfmtPrintlnsumhogegobuildforgogosrchogeforgosrcSwicthpackagemainimportfmtfuncmainlangGoswitchlangcaseRubyfmtPrintlnThisisRubycaseGofmtPrintlnThisisGodefaultfmtPrintlnThisisaprogramminglanguagehogegobuildswitchgogosrchogeswitchgosrcThisisGopackagemainimportfmtfuncmainlangRubyswitchcaselangRubyfmtPrintlnThisisRubycaselangGofmtPrintlnThisisGodefaultfmtPrintlnThisisaprogramminghogegobuildswitchgogosrchogeswitchgosrcThisisRubySwitchにはパターンの書き方が存在する。 2021-11-24 00:15:04
golang Goタグが付けられた新着投稿 - Qiita Golang (文法) 1 https://qiita.com/m_k_n/items/780948c38c72a5eef85c 2021-11-24 00:05:47
Azure Azureタグが付けられた新着投稿 - Qiita Ubuntu20.04にAzure開発環境をインストールする https://qiita.com/kannkyo/items/98a0252be6880e9eb393 UbuntuにAzure開発環境をインストールするはじめにUbuntuにAzure用の開発環境をインストールした際の手順です。 2021-11-24 00:22:25
海外TECH MakeUseOf FlexiSpot Home Fitness: Black Friday Deals on Standing Desks, Bike Desks, and More https://www.makeuseof.com/flexispot-black-friday-deals-standing-desks/ FlexiSpot Home Fitness Black Friday Deals on Standing Desks Bike Desks and MoreIf simply sitting at your desk doesn t cut it for you check out Flexispot s range of standing and fitness desks 2021-11-23 15:55:22
海外TECH MakeUseOf The 7 Best Laptops for Freelancers https://www.makeuseof.com/best-laptops-for-freelancers/ multiple 2021-11-23 15:53:32
海外TECH MakeUseOf Improve Your WhatsApp Experience With These 10 Top Android Apps https://www.makeuseof.com/android-apps-enhance-whatsapp/ Improve Your WhatsApp Experience With These Top Android AppsEnhance WhatsApp on Android with these add on tools that let you save statuses message people without saving their number create stickers and more 2021-11-23 15:30:12
海外TECH MakeUseOf Is the PinePhone Pro the Linux Phone Daily Driver We've Been Waiting For? https://www.makeuseof.com/pinephone-pro-linux-phone/ Is the PinePhone Pro the Linux Phone Daily Driver We x ve Been Waiting For PINE has announced the upcoming release of the PinePhone Pro Let s take a look at its capabilities and see if it s a good daily driver candidate 2021-11-23 15:15:31
海外TECH DEV Community How The Cloud is Revolutionizing Gaming https://dev.to/codesphere/how-the-cloud-is-revolutionizing-gaming-3aa3 How The Cloud is Revolutionizing GamingThere s virtually no sector of the tech industry that hasn t experienced at least some changes with the advent of cloud computing One of the specific industries that is undergoing a shift of tectonic proportions is undeniably the gaming industry Whether its game streaming server hosting or indie development cloud is in the process of leaving a lasting mark on the gaming industry Let s take a look into how Game StreamingVirtually every big tech company has announced in the past couple of years that it s developing a cloud gaming platform and it s no surprise why Gaming is already a massive industry but someone s ability to purchase and buy a game is currently dependent on their ability to run it Now while I imagine many of us developers have no issue running these games not everyone is trying to dedicate gb of their hard drive to Call of Duty Cloud gaming works by streaming the game from the cloud to the gamer s local machine This means no downloads complex rendering or burdensome computing All you need is a good internet connection to run your favorite game There s already a laundry list of cloud gaming platforms many of which are already up and running Sony s Playstation NowGoogle s StadiaMicrosoft s Xbox Game PassAmazon s LunaNVIDIA s GeForce NowEA s Project AtlasAn added benefit is that cross platform development can become much easier if devs no longer have to build for specific platforms however this benefit is only going to kick in when games become cloud exclusive Server HostingAnother way in which the cloud has changed the gaming industry is by making it increasingly easier to host game servers For development companies it means being able to create multiplayer games without massive server racks occupying both your headquarters and your balance sheet Now you can set up your server on the cloud and have it scale as your player base grows Games tend to be especially prone to virality which makes the ability to scale your servers incredibly important That s why much of our emphasis on Codesphere is making a truly scalable cloud platform Additionally private server hosting for games Garry s Mod Minecraft and DayZ has become much easier All it takes to set up a server hosting company for your favorite game is some basic cloud knowledge So for everyday gamers the increase of the server hosting companies means cheaper rates for server hosting Indie DevelopmentLastly the advent of cloud computing means that the ability to build and secure backends is no longer limited to just the big guys Indie developers now have the ability to build multiplayer games without the massive IT costs of a huge game dev company If you re an indie dev looking for a simple cloud platform to get your game up and running check out what we re building at Codesphere We re trying to take the learning curve out of cloud computing and we need your help to make it happen Let us know what you think down below 2021-11-23 15:50:03
海外TECH DEV Community Correlate Security Findings With AWS Security Hub and Amazon EventBridge https://dev.to/aws-builders/correlate-security-findings-with-aws-security-hub-and-amazon-eventbridge-1hal Correlate Security Findings With AWS Security Hub and Amazon EventBridge AbstractRather than spending time manually reacting to security alerts or looking at the GuardDuty Security hub dashboard you can instead focus on activities such as enhancing application protection layers and improving your security program This blog is a combine of AWS services such as guard duty security hub event bridge step functions network firewall rule group lambda function and slack notification to provide the automation And we use Pulumi to deploy those services as code Table Of ContentsSolution overviewNetwork Firewall Rule groupDynamodb tableEventBridgeStep functionsLambda functionsUsing Pulumi to create infrastructure as codeConclusion Solution overview Amazon GuardDuty is a continuous security monitoring service that analyzes and processes data from VPC flow logs cloudTrail S data events etc Based on this data GuardDuty analysis and detection by using threat intelligence feeds signatures anomaly detection and machine learning in the AWS Cloud The automation provides in this blog post is focused on blocking traffic to and from suspicious remote hosts GuardDuty detection of unintended communication with remote hosts triggers a series of steps including blocking of network traffic to those hosts by using Network Firewall and notification of security operators All in serverless by using eventBridge with event pattern from aws securityhub source For pattern matches such as HIGH or CRITICAL severity findings as well as suspicious IP address the event rule triggers step functions for remediation AWS Step Functions is a serverless orchestration service that lets you combine AWS Lambda functions and other AWS services to build business critical applications Step Functions service also provides retry and error handling logic while Lambda functions interact with networking controls to block traffic and with a database to store data about blocked remote IP addresses How it works Network Firewall Rule group This rulegroup is used to block traffic to and from suspicious remote hosts using STATELESS type and action drop Dynamodb table The DDB tables is used to store the blocked IPs with attributes HostIp CreatedAtBilling Mode PAY PER REQUEST EventBridge Define rules with flowing patterns where the source is from aws securityhubcatch ipv detail findings ProductFields aws guardduty service action networkConnectionAction remoteIpDetails ipAddressV exists true detail type Security Hub Findings Imported region us west source aws securityhub Other findings detail findings Severity Label HIGH CRITICAL detail type Security Hub Findings Imported region us west source aws securityhub Step functions sechub record ip include three lambda functions add ip func update rule group func send finding funcsechub send findings which use lamdba function resource send finding funcsechub prune ip lambda functions get ip func remove ip func send finding func update rule group func Lambda functions add ip to ddb The function parses the event to get HostIp and then adds it to Dynamodb DDB table if it s actually new IP then return a record which includes IP list and flag NewIP True otherwise flag NewIP False due to IP already exists in DDBget ip from ddb This function is called by scheduled statemachine to get all blocked IPs in DDB which are expired blocking time gt hours remove ip from ddb Base on the input of expired IPs from previous step functions remove those IPs from DDB and then return the rest of IPsupdate nf rg This function override current Network firewall rule group with the input combine with currentsend gd finding This function send notification of success or failure for any blocking IPs or high critical findings We walked through all resources which are going to deploy in this solution see the flow more detail Using Pulumi to create infrastructure as code Source code in TypeScript aws guardduty sechub GitHub repository The following commands show how to deploy the solution using PulumiFirst need to set Pulumi configs such as AWS region AWS account AWS profile and webhook URL of slack channelpulumi config set aws region us west pulumi config set aws profile myprofilepulumi config set secret aws guardduty sechub webhook url ID gt Preview the stackpulumi previewDeploy stackpulumi upCheck result on Pulumi graph view Conclution In this blog post we walked through a solution to use AWS services including Amazon EventBridge AWS step function AWS Lambda and Amazon DynamoDB to correlate AWS Security Hub findings from multiple different AWS security services By automating blocking traffic from suspicious IP addresses and sending high and critical findings to slack we can prioritize and improve our security response References Automatically block suspicious traffic with AWS Network Firewall and Amazon GuardDutyCorrelate security findings with AWS Security Hub and Amazon EventBridge ltag user id follow action button background color important color df important border color important Vu Dao Follow AWSome Devops AWS Community Builder AWS SA ️CloudOpz ️ vumdao vumdao 2021-11-23 15:37:12
海外TECH DEV Community My Programmer Humor Videos https://dev.to/mihaha/my-programmer-humor-videos-1b40 My Programmer Humor VideosPresenting here the top programming funny videos I invested time to create for you to giggle a bit Aladdin Parody A Whole New Code Programmer Pick Up Lines Aladdin Parody The Stack Overflow song All voice overs are original it was a pleasure to create 2021-11-23 15:35:00
海外TECH DEV Community The end of text documentation! 👨‍💻👩‍💻 https://dev.to/magensmith/the-end-of-text-documentation-3e1o The end of text documentation ‍‍You ve been working on your task for two weeks fixing bugs adding features writing hundreds and maybe even thousands of lines of code ‍‍ having fun and then it comes the documentation phase ️Now you have to transfer your thoughts to T E X T It s boring it s long it s difficult but necessary I discovered a new tool last week that will help you make this annoying process much simpler and faster Unlike all the tools available today finally you have everything integrated into the IDE ‍‍This tool gives you a screen recorder that opens from the IDE and with few clicks your screen will be recorded you can even add a camera You will be able to explain everything you have done in your own words and the video will be saved in the cloud Your video will be attached directly to the lines of code you have written so anyone who will struggle to understand your code will be able to watch the video directly from the IDE If you are a video fan like me and you want to try something new go to the Jetbrains marketplace and install SpeaCode you won t be disappointed I promise Link to the plugin 2021-11-23 15:32:54
海外TECH DEV Community Fetching Data in React https://dev.to/bhagatpratik07/fetching-data-in-react-hni Fetching Data in React IntroductionThis blog post will teach you how to fetch data from an external API and use it in your React apps Before you start reading you should be familiar with React useState and useEffect hooks in React Methods of Fetching DataWe will look at the following ways to fetch data Using Fetch APIUsing async functionUsing AxiosUsing custom hooks Using Fetch APIThe Fetch API provides a JavaScript interface for accessing and manipulating parts of the HTTP pipeline such as requests and responses It provides a global fetch method that provides an easy logical way to fetch resources asynchronously across the network We will use the fetch method which takes a single argument i e the path you want to fetch data from and it returns a promise containing a response fetch then response gt response json then json gt console log json Using async functionThe async function returns a promise and the await keyword makes the function wait for a response Here s how we can use async await to fetch dataasync function fetchData const response await fetch const data await response json console log data Using AxiosAxios is a library that is used to fetch data and it already gives the result in JSON so we don t have to convert it First we have to install Axios with the following command npm install axiosTo use axios in our project we have to import it into our projectimport axios from axios React useEffect gt axios get then response gt console log response Here we used the get method to make a get request to our endpoint Using custom hookWe will make our custom react hook to fetch data which will take a single argument that is the endpoint we want to fetch the data from import useEffect from react const useFetch url gt useEffect gt fetch url then response gt response json then data gt console log data export default useFetch Like this blog if you found it helpful and connect with me on Twitter and LinkedIn Thank you for reading 2021-11-23 15:24:46
海外TECH DEV Community Cube Cloud Deep Dive: Starting a New Cube App https://dev.to/cubejs/cube-cloud-deep-dive-starting-a-new-cube-app-3dhp Cube Cloud Deep Dive Starting a New Cube AppCube has been an open source project since We try our best to listen to the community and our users to make it the best analytics API server on the market today We really appreciate all the help and sincere dedication our lovely community has done to provide feedback submit pull requests and feature ideas to improve Cube even more We hope the soon to be stars on GitHub are a representation of our dedication to making our community happy In this article I want to walk you through creating a new Cube App deployment on Cube Cloud and connecting it to your database If you prefer watching a video instead have a look at this short minute tutorial on our YouTube channel Before moving on I want to share a bit about the benefits of using Cube Cloud vs self hosting Cube yourself Why use Cube Cloud We launched Cube Cloud this October with the vision of making Cube accessible to everyone no matter the scale and DevOps experience level You already know Cube is an open source project with almost stars on GitHub It s packed full of cool features such as auto generating schemas auto generating dashboards a developer playground and much more It s easy to work with and developer friendly Self hosting Cube can come with its own set of complications due and pitfalls Let me explain Managed InfrastructureCube requires several pieces of infrastructure to work reliably at scale To get both high concurrency and high data size you need Compute resourcesRedisCube StoreAn API gatewayA refresh workerA load balanceroptionally a VPC configurationYou can mitigate this by using infrastructure as code tools like AWS CloudFormation Pulumi or Terraform and using Kubernetes as a container orchestrator Monitoring and ScalingMaintaining application up time is a serious responsibility To achieve this with self hosting you have to make sure that monitoring is configured for Cube and that you can scale Cube up if there s a spike in traffic With Cube Cloud both monitoring and auto scaling are available out of the box You also get query monitoring in the Queries tab in the sidebar The entire query history is available including metrics like query result size and time spent helping you dig into why some queries take longer than others You can see application performance metrics in the Metrics tab CachingA major problem when scaling Cube apps is optimizing pre aggregation build times Similarly when trying to determine the status of your pre aggregations you need to know whether they re built or not and when they were built In Cube Cloud we can check out the Pre Aggregations tab to see the status of all pre aggregations in your Cube deployment including whether they re building or not and even which of the partitions if any are being refreshed In production these pre aggregations are kept up to date automatically for you Development ToolsYou get GitHub integration with Cube Cloud Your deployment can watch a GitHub repository for changes and deploy updates Connect a deployment to GitHub from the Settings page and you re set You can also make changes directly in the Cube Cloud console by entering Development Mode You get a dedicated Git branch complete with a personal API URL and separate pre aggregations SupportIf you have paying customers having paid support is a lifesaver If something breaks and you need help fixing it having someone to call is a lifesaver Cube Cloud comes with support on the Enterprise plan so you can ping us whenever you hit a snag Sign Up to Cube CloudSigning up is simple and secure because you can also choose to sign up with your GitHub account Here s how you sign up Jump over to the sign up page and enter your email Once you click Sign Up you ll receive an email from us to set a password Next you select a subdomain for your Cube Cloud account With all this out of the way you can finally start creating Cube Deployments Let me explain how to create a deployment Create a Deployment in Cube CloudCreating a deployment consists of four main steps Create DeploymentSet Up the Cube AppSet Up the Database ConnectionGenerate the Data SchemaLet me break it down into even more detail Step Create DeploymentThe first step of creating a Cube App from scratch in Cube Cloud is to create a deployment Once you click the create deployment button it ll open up the first step in the deployment creation UI flow Here you choose what name to give your deployment and pick the cloud provider and region The reason why to choose either AWS or GCP is based on where you re hosting your own infrastructure and apps Let me give you an example Let s say you have a metrics dashboard that needs to consume data on us east on AWS Using the same AWS region to host the Cube deployment as where you are hosting this metrics dashboard will reduce the network delay and latency between Cube and your app Which database you re using is also important when choosing a cloud provider and region If you have data in BigQuery then you should not choose AWS If you re using AWS Redshift then vice versa applies Need a Dedicated VPC A reason for using a VPC is if you expect high throughput of up to and above millions of requests per day Using a VPC will give you a dedicated managed infrastructure that is ready to serve such high numbers of users Additionally if your company required security compliance like SOC using a VPC is mandatory The best part is that a VPC is readily available for you if you need it All you need to do is to reach out to us and ask for it Super simple But back to business Let s get back to creating the Cube app deployment After selecting a cloud provider and region add a name for your deployment and click next Step Set Up the Cube AppNext up the second step in creating a Cube App from scratch in Cube Cloud is to click the create button But before moving on I want to ask if you already have a Cube app If you do please jump over to my co worker Hassan s guide on migrating a Cube app to Cube Cloud In this tutorial I want to stick to creating a Cube App from scratch so let me continue where I left off Step Set Up the Database ConnectionAfter selecting the Create button and proceeding to create a Cube app from scratch you ll be prompted to select a database type This lets you choose from dozens of the most popular databases available on the market today I ll proceed with selecting PostgreSQL to hook up a sample e commerce database to show you how simple it really is The values I ll use are Hostnamedemo db cube devPortDatabaseecomUsernamecubePasswordIn the UI it ll look exactly like the image below Once you click the Apply button Cube Cloud will test if the connection was successful and proceed to the next step If you run into issues here make sure to allow the Cube Cloud IPs to access your database This means you need to open up your firewall to these IPs In the case of AWS this would mean adding a security group with allowed IPs Step Generate the Data SchemaStep four in this case consists of generating a data schema Start by selecting the database tables to generate the data schema from then hit generate Cube Cloud will generate the data schema and spin up your Cube deployment With this you re done You ve created a Cube deployment configured a database connection and generated a data schema You re ready for the last step running queries in the Playground Running Queries in Cube Cloud s PlaygroundBy clicking on the Playground in the left nav you ll open the Playground UI Here you can test queries by selecting from all the measures and dimensions in the data schema This lets you test different dashboards and visualizations for when you want to build your own metrics dashboards The image below showcases a bar chart with an Orders Count measure an Orders Status dimension and an Orders Created At time dimension grouped by day for the current month You can use the playground as a testing ground for all queries you want to run in your own dashboards The playground will also display how long a query took showing you the response time above the chart itself That s it You ve finished creating a Cube Deployment on Cube Cloud What About Query Acceleration Congrats You ve configured a Cube app in Cube Cloud You re ready to add pre aggregations and run the deployment in cluster mode We have detailed tutorials explaining these concepts for you to read here You can follow along with the tutorial to add pre aggregations to your data yourself We at Cube also hosted a workshop about pre aggregations that you can take a look at to learn more about query acceleration ConclusionDeploying a Cube App on Cube Cloud consists of four steps First select the cloud provider region and name Second select creating a Cube app from scratch Third connect a database Fourth generate a data schema You should keep in mind there are three ways of deploying Cube apps in Cube Cloud You can create one from scratch with the Cube CLI or with the GitHub integration If you choose to use Cube Cloud you ll get the added benefit of getting managed infrastructure that auto scales to your needs Cube Cloud also has some added features compared to self hosting Cube including query performance analysis query response times APM and pre aggregations enabled by default I hope you end up trying out Cube Cloud because you ll save time and energy by not managing infra and just focusing on building product value Sign up to Cube Cloud here to try it out for yourself Until next time stay curious and have fun coding Also feel free to leave Cube a on GitHub if you liked this article ️ 2021-11-23 15:11:46
海外TECH DEV Community The Quest for ReactiveScript https://dev.to/this-is-learning/the-quest-for-reactivescript-3ka3 The Quest for ReactiveScriptThis article isn t going to teach you about the latest trends in frontend development Or look in detail into the way to get the most performance out of your website Instead I want to write about something that I ve been playing with in my head for the past year but never can find the time to work on Reactivity as general purpose language If you want someone to blame Blame Jay Phelps I kid After a demo I made showing off the power of fine grained reactivity he got it in my head that we should look at this more as a generalized language I was content in my DSL bubble thinking of ways we can make building frameworks easier but he challenged me to think about it more generally Jay Phelps jayphelps RyanCarniato Let s chat some time I ve done an excessive amount of research on this topic in the context of languages eg Lucid FRTime etc and would love to learn more from you as well and swap opinions AM Jan I ve been meaning to take him up on his offer but in the meantime what I can do is write about it Because the last year I ve done a lot of searching and thinking into how I d approach this And thanks to more recent conversations around Svelte Vue Ref Sugar and my work on Marko etc this seems as good time as ever to share what I ve learned The Destiny OperatorOne of the best introductions I ve ever read to reactivity after the fact is What is Reactive Programming I can t promise it s the best introduction for the uninitiated But it introduced reactivity in a very simple way That reactivity is when an equation which holds true even after its values change If a b c then it is reactive if a still reflects this sum after b or c updates This article proposes the use the Destiny Operator lt to denote this relationship var a var b lt a a Assert AreEqual b A simple addition to the language but capable of doing so much Most importantly it highlights the difference between a reactive declaration and an assignment It makes no sense for b to ever be re assigned as then its relationship of always being one larger than a wouldn t hold Whereas a needs to be re assigned or this system isn t really doing much This is just the start In many ways this has been seen to be the ideal Reality is a bit more complicated than that We will return to the Destiny Operator a bit later IdentifiersIf you ve ever used a fine grained reactive library in JavaScript you ve seen the common pattern of using function getters setters They might be hidden behind proxies but at the core there is an accessor so that values can be tracked and subscriptions made const value setValue createSignal log the value now and whenever it changescreateEffect gt console log value setValue set a new valueIn fact I d say the majority of frontend JavaScript frameworks have fallen into this part reactive API language Reactive State Signal Observable Ref Derived Values Memo Computed Side Effects Effect Watch Reaction Autorun The example above uses Solid but you should be able to picture that pretty easily in React Mobx Vue Svelte etc They all look very similar For a more in detailed introduction check out A Hands on Introduction to Fine Grained ReactivityThe problem is no matter what we do with fine grained reactivity at runtime there is extra syntax There is no way at runtime to just have value be a value and be reactive It s going to be value or something value or value something A small ergonomic detail but one that there is a desire to solve The simplest compiler aided approach is decorate the variable identifiers to let it know it should compile to function calls I first saw this in the framework Fidan and later in some Babel plugins the community had created for Solid let value createSignal log the value now and whenever it changescreateEffect gt console log value value set a new valueWhat s great about this is no matter the source we can use this syntax sugar let value createCustomReactiveThing However now our signal is always treated as a value How would we pass it outside of this module context and retain reactivity Maybe we reference it without the Do we pass it in a thunk gt value do we invent a syntax for this Do we have control over if the reactive value is readonly As shown above derived reactive values probably should be I actually saw a version of this where single meant mutable and meant readonly The crux though is this syntax doesn t simplify the mental model You need to be aware exactly what is being passed around and what you are receiving You are saving typing some characters possibly as little as as the shortest way to express reactivity without compiler tricks is characters or v It s hard for me to consider adding all this is worth it Keywords Decorators LabelsSo how to do this better Well what if reactivity was a keyword decorator or label MobX has been doing this for ages with decorators on classes but Svelte has taken this to a whole new level The basic idea is signal value log the value now and whenever it changeseffect console log value value set a new valueSvelte realized that if it treated every variable as a Signal it could reduce that to let value log the value now and whenever it changes console log value value set a new valueIf this draws similarities to the Destiny Operator it should Svelte s label is really approaching it They recognized the Destiny Operator was insufficient as you don t only have reactive derivations but side effects like this console log In so you can use both define variables with reactive declarations like the Destiny Operator as well as reactive effectful expressions So we re done right Well no There are huge limitations of this approach How does reactivity leave this module There is no way to get a reference to the reactive signal itself just its value Note Svelte does have way binding syntax and export let as a way to do parent to child passing of reactivity But in general you can t just export or import a function and have it reactive without using an auxiliary reactive system like Svelte Stores How do we know what to do with import createCustomReactiveThing from somewhere else let value createCustomReactiveThing Is it reactive Can it be assigned We could introduce a symbol on our identifiers for this case but we are back to where we were with the last solution What if you wanted to extract out a derivation like doubleValue how would the template know what to do with it let value can this doubleValue value becomedoubleValue value Not intuitively We have a keyword label for it and it doesn t transpose Function DecorationWell composition is king Probably the single most important part of React s success and for many of us no composition is a non starter Svelte has composition and extensibility through its stores but the focus here today is in the reactive language where it falls short There is another approach that I first came across talking with the Marko team almost years ago Marko is an interesting language because it heavily values markup syntax and the maintainers had basically resolved that they wanted to bring their reactivity into their tags lt let value gt lt log the value now and whenever it changes gt lt effect console log value gt value set a new valueDefinitely foreign on the first look but by using tags they d basically solved Svelte s problem You knew these were reactive It is the syntax version of something similar to React s convention that use is a hook Interestingly enough about a year later Evan You independently came to the same conclusion with version of his Ref Sugar API for Vue Version was labels like above but he realized the shortcomings of that approach and ended up with let value ref log the value now and whenever it changeswatch value v gt console log v value set a new valueWell it s almost the same thing as the Marko example However interestingly this does highlight one thing Since Vue is using this as a bit of a syntax sugar like the identifier example earlier it needs to tell the compiler still when it wants to pass by reference instead of by value and there is the function for that Notice how watch here is just an ordinary function It couldn t know how to handle value any differently If left alone it would compile to watch value value v gt which would do the reactive access too soon outside a tracking scope There are some comments in the proposal asking for a watch to handle exactly that but I suspect they won t pass because that is specific behavior that function doesn t have Vue s goal is to be composable so having watch be special isn t acceptable That makes it basically a keyword as mywatch wouldn t be known to be given the same behavior unless we added another syntax or made more general changes to behavior In fact none of the solutions short of Marko s tags handle that case without extra syntax Marko can leverage the knowledge of being a tag to make some assumptions you can t make about an ordinary function And being tags we inadvertently stumbled on what I believe might be the actual solution Rethinking Reactive LanguageAll the approaches suffer from the same challenge How do we preserve reactivity We are always worried about losing it and we are forced into this pass by reference vs pass by value discussion But that is because we are living in an imperative world and we are a declarative girl paradigm Let me elaborate a bit Marko uses a lt const gt tag for declaring reactive derivations Our Destiny Operator so to speak This sometimes confuses people because derived values can change so how is it const Well it never gets re assigned and the expressions holds for all time When I was trying to explain this to someone new Michael Rawlings clarified it was the let Signal that was special not the const Derivation Every expression in our templates act like a derivation every attribute binding component prop Our lt const value x gt is no different than a lt div title name description gt Which got me thinking what if we ve been looking at this all backwards What if expressions were reactive by default and instead we needed to denote the imperative escape hatches Instead of a Destiny Operator we d need a side effect operator This seems crazy because would it be intuitive to change the semantic meaning of JavaScript yet keep the same syntax I assumed no but I mean we ve already seen this done to great success Svelte s scripts are nothing like plain JavaScript yet people seem to be accepting of those and some even advertising them as such I did poll a while back and while not conclusive the results suggested many developers are much more sensitive to syntax than semantics So the question is can we do something using the existing syntax of JavaScript and keep all the tooling advantages even TypeScript I mean completely mess with how it executes in the way things like Svelte React Hooks or Solid s JSX defies expectations but do so with pure JavaScript syntax and in way people can make sense of Well we can try Designing ReactiveScriptFor all of my what might sound like criticism over decisions made in the various approaches above there is a lot of great prior work to tap into I think Svelte today is a good starting point as it has simple syntax and already distorts the expected semantics Taking the example from above picture we want to hoist the console log into another function maybe imported from another module This isn t something Svelte does today but maybe something like this function log arg console log arg let value log the value now and whenever it changeslog value value set a new valueFor the sake of visualizing how things actually behave I m going to compile these down to Solid s explicit runtime syntax Although this being runtime based isn t a requirement function log arg createEffect gt console log arg const value setValue createSignal log the value now and whenever it changeslog value or log gt value setValue set a new valueAll function arguments get wrapped in functions or pass the function straight through All local scoped variables get called as functions How about if we want to create a derived value In our new reactive world that might look like let value const doubleValue value log double the value now and whenever it value changeslog doubleValue value set a new valueOr we could even hoist it out function doubler v return v let value const doubleValue doubler value Which could compile to function doubler v return gt v const value setValue createSignal const doubleValue doubler value You might be scratching your head at this example because well does anything ever run Well it doesn t unless it needs to As in it is used in a side effect denoted by We have a lazy evaluated language that only runs code when absolutely needed Our derived value is still assigned to a const so it remains consistent No need for new syntax to know exactly what its behavior is In a sense reactive values don t escape their local scope like in Svelte from a mutation standpoint but they do from a tracking standpoint The retains clear control while affording the convenience of local mutation This every expression is reactive can extend to language primitives as well In a similar way to how Solid transforms ternaries in JSX we could look at things like if and for statements and compile them accordingly let value if value lt log Small number else log Large number logs Small number value logs Large number This code would end up running both branches of the if once the condition changes And those side effects don t need to console logs at all and could be anything like maybe JSX What if you could write components like this and have it work with minimal executing fine grained reactivity function Component visible let firstName lastName if visible return lt p gt Hidden lt p gt only do this calculation when visible const fullName firstName lastName return lt gt lt input onInput e gt firstName e target value gt lt input onInput e gt firstName e target value gt lt p gt fullName lt p gt lt gt Just a tasteHonestly there is a ton of details to work through Like loops for example We naturally want a map operator rather than a for in this paradigm so how do we reconcile that However what this has going for it is it is analyzable and the pattern applied consistent Performance of such a system might require a lot more consideration I think this actually has more potential with additional analysis and compile time approaches Looking at what let const are actually stateful could inform what to wrap or not And once on that path well this goes many places It could be used as a tool for things like partial hydration to know exactly what code actually can update and be sent to the browser Honestly this is just an idea for now And I have a lot more thoughts on how this could function But with all the recent discussions I thought someone might be interested in exploring this and I encourage them to reach out and discuss 2021-11-23 15:07:50
海外TECH DEV Community mmm.page — Make livelier, free-form personal websites. Try editing the homepage itself. https://dev.to/xhfloz/mmmpage-make-livelier-free-form-personal-websites-try-editing-the-homepage-itself-egk mmm page ーMake livelier free form personal websites Try editing the homepage itself Hey all I ve spent the past few months working on a website builder works on desktop amp mobile that makes it easy to create automatically responsive collage like websites websites that allow you to overlap text images GIFs YouTube videos etc etc I launched a few months back and to my surprise it ended up on the front page of Hacker News and product of the week on Product Hunt Since then I ve patched up a lot of the builder based on user feedback and wanted to share it with everyone today Try here → MotivationWebsites have begun to look more and more similar to one another which makes sense given how tedious responsive design can be but I also lamented that increasingly rare personal website that I used to see everywhere So I wondered what if I could create a builder that was so easy to use one that would handle responsiveness performance usability deployment maintenance etc for you that more people could quickly launch a website of their own So this is my attempt at that Notable FeaturesAutomatically responsive Every website automatically works across all screen sizes try it with the the builder Smart embeds Paste in a supported link YouTube SoundCloud Bandcamp CodePen Spotify a few others and it will automatically embed playable content Actual drag and drop No grids or locking Overlap rotate and position just like you would with a scrapbook Custom domains Draw on your pages Draw doodle directly on your websites Free optional pro It s free forever Upgrade only if you need custom domains or more blocks pages FutureA lot more features coming Soonest are custom fonts custom code support Going into one of the biggest priorities will be the community discovery features LinksDiscord Twitter Showcase Try here →Follow xhfloz for updates 2021-11-23 15:07:27
海外TECH DEV Community UI design trends of today and how to apply them in your apps https://dev.to/notsidney/ui-design-trends-of-today-and-how-to-apply-them-in-your-apps-47kn UI design trends of today and how to apply them in your apps From outline icons to switch designs the UIs of major OSes are all starting to look similar If you re like me you get excited by major new software releases and enjoy reading roundups of every new feature and UI tweak comparing them to the previous version With the release of Windows Android and iOS this year and last year s macOS Big Sur I ve noticed quite a few similarities in the designs of the major operating systems And in some cases what appears to be convergence These range from the use of outline icons to variable UI fonts and inset elements These similarities show that designers are coming up with new standards for digital user interfaces and offer hints as to where UIs are headed over the next decade and how the thinking behind UI design is shifting I m a front end engineer at Rowy and I recently redesigned its UI with the primary goal of improving the information dense desktop experience I also wanted to move away from the era mobile first Material Design we were following to something more modern and better complements the UIs we see today The trends I noticed helped inform this redesign and will hopefully assist you when designing your apps Outline icons by default complementing textPersonalization based on the wallpaperRounded corners are harmoniousVariable UI fonts with optical sizesFocus on contentInset everythingDifferentiation beyond colorAnd a standard switch design Outline icons by default complementing textIcons play a significant part in UIs and have proven to be emblematic of the trends in UI design over the past few decades When graphical user interfaces were novel icons mimicked real world objects to as great detail as possible within the limitations of display technology they were made to bridge the user experience from the physical to the digital This can be seen from Susan Kare s icons for the original Macintosh to Microsoft s photorealistic set in Windows Vista and When UIs moved from this skeuomorphic style to a “flat style with Windows and iOS icon design also shifted to a monochromatic outline style And with the release of Android and Google s new version of Material Design called Material You or Material Design all major OSes now use this style But why does everyone use this style for icons Designers aren t just investing more into creating cohesive and complementary icon sets for design systemsーdesigners are making icons just like typographers make type This style recognizes how integral icons have become to the user experience as important as text itself Icons are designed with similar considerations to typefaces and often appear alongside text ーMaterial Design guidelinesIconography is designed to integrate seamlessly with San Francisco the system font ーApple Human Interface GuidelinesApple s SF Symbols is the prime example of this it s designed in the same nine weights as their system font and aligns with the text s cap height This also means icons can respect the user s accessibility settings for bolder UI text Apple s SF Symbols icon set is designed with the same nine weights as their system font Source Apple img alt From Apple images of the plus circle symbol followed by the capitalized word add In each the word is the same size but the symbol is a different size small medium and large parallel horizontal lines appear across all three images The top line shows the height of the capital letter A and the bottom line is the baseline under the word Small circle touches both lines Medium circle extends slightly above and below the lines Large vertical line of the plus sign almost touches both lt br gt height src dev to uploads s amazonaws com uploads articles pncqcvzqhodc png width They also align to the system font s cap height to better complement text Source AppleUber s design team similarly made icons to complement their UI font Uber Move set in three weights for different degrees of emphasis img alt Uber Move icon set in light medium and bold weights lt br gt height src dev to uploads s amazonaws com uploads articles fofevyfaegtb png width Source Uber Icons are designed to mimic our writing systemsSo it becomes clear why system icons are monochromatic and drawn with outlines instead of mimicking physical objects they mimic our writing systems Modern alphabets Latin in particular are fundamentally composed of lines instead of filled shapes They made a similar transition from pictographs that resemble physical objects like Egyptian hieroglyphs to more abstract representations of physical objects For example you don t need to draw a bird to talk about a bird you just write a set of letters or symbols that mean bird By designing icons that resemble text designers recognize that icons are a vital medium to communicate information to users Icons can break language barriers while text remains essential for those unfamiliar with icons And designing both to appear similar can reduce cognitive load when reading icons alongside text Another benefit of defaulting to outline icons is that filled icons can now be used to represent state or emphasis like bold text For instance “active states are represented with filled icons in Material Design and Apple suggests to “use the fill variant to indicate selection or “to give a symbol more visual emphasis in their Human Interface Guidelines Twitter s redesign takes this a step further with the active page being differentiated only by a filled icon and bold text without any color change img alt Twitter navigation UI with the Home page active The home icon is filled and the text is bold while other icons are outlined and in regular font weight lt br gt height src dev to uploads s amazonaws com uploads articles fiomqzwvgck png width Twitter only uses filled icons and bold text to differentiate the current page The jury is still out on whether this is accessible enough Predicting the future is a fool s errand but looking at the history of writing systems they ve seen convergence on what symbols represent what sounds and ideas the symbol a always means a and the letters ant mean the insect named ant There remain variations in how these symbols are drawn the capital A can have serifs or not but they all fundamentally look the same across different typefaces Iconography seems to be heading this way tooーthe “add folder icon above has the same basic design across Apple s Google s and Microsoft s icon sets an outline of a closed Manila folder with a symbol As icons become more commonplace in GUIs people tend to agree on what symbols represent what ideas and differences become purely stylistic just like text How can I achieve this When using icons in your apps you should use the icon set designed with the font you re using this is trivial if you re using system fonts which now all have system icon fonts But if you re using another UI font there probably isn t an icon set designed specifically for that font Using an outline icon set is sufficient such as the open source Feather icons or Iconic app And if you were using filled Material Icons like us you can easily switch to the outline style It seems Google has now made this style the default as part of Material Design Personalization based on the wallpaperPersonalization is becoming an increasingly important element of UI design While customization has been present since the s with custom wallpapers and themes designers are now finding more ways to personalize UIs throughout the system primarily from the user selected wallpaper Google s Material Design blog says it best “Users customize their desktops in the physical and digital worlds with images that are personal and provide comfort and joy The wallpaper is the first thing a user sees and serves as a backdrop for the UI So it s a no brainer to adapt the rest of the UI to this element The technique of blending the wallpaper into the UI has been around for a while from the semi transparent dock and menus in Mac OS X s Aqua interface to the translucent window title bars in Windows Vista and s Aero Glass theme iOS famously brought blurred backgrounds to many parts of its UI with entire screens like the Notification Center and Control Center using a blurred version of the user s wallpaper More recently the wallpaper has started to influence almost the entirety of the UI When Apple introduced dark mode in macOS Mojave they incorporated a tint in window backgrounds based on the wallpaper called Desktop Tinting According to the Human Interface Guidelines it “helps windows blend more harmoniously with their surrounding content Source AppleThey later expanded on this in their major redesign in Big Sur by applying Desktop Tinting to light mode as well On the left the window background is tinted purple to match the wallpaper On the right tinting is disabled and the window background is pure gray Windows introduces a similar element with its Mica material which their design guidelines describe as “an opaque material that incorporates the user s theme and desktop wallpaper to create its highly personalized appearance It also uses this tint as a signifier for the currently active window Taking it to the next level is Material You in Android which tints the app s background the bright accent colors for buttons and other controls and down to the more neutral text colors An entire color palette is generated from each user s unique wallpaper It s a critical element of their new design philosophy “Instead of form following function what if form followed feeling It s a radical rejection of the status quo in UI design which seeks a “universal design with the most technically superior interface to fulfill user needs It will be interesting to see if others follow suit in this philosophy Source Google Material Design built a color systemWhat the Material Design team left out of their announcements is how they achieved this especially since they say they “had to find a way for any color combination to also have accessible contrast … without testing each one Diving into the recently published Material color utilities repo on GitHub unveils all the mystery The Material team built their own color system hue chroma tone or HCT based on the CAM and CIELAB or LAB color appearance models CAM is a successor of LAB designed to match how humans perceive color Key to these models is the tone or L value which describes a color s perceived luminance or lightness with an L value of being black and being white This is very useful when creating accessible color palettes ensuring colors have enough contrast based on perceived luminance On the web the WCAG guidelines prescribe a minimum contrast of for body text Directly using perceived luminance as a value to describe a color makes this much more straightforward as the Material team explains “Unlike contrast ratio measuring contrast in L is linear and simple to calculate … a difference of guarantees a contrast ratio gt With this knowledge all that s left is to generate a palette of colors with different tones or L values and apply any hue to it Then use sufficiently contrasting pairs for UI elements For example a button can have a background color with L and white text L and it would easily pass the minimum contrast requirement L difference gt Source Google LCH for the rest of usThis is a powerful technique to effortlessly generate accessible colors but it doesn t require Material color utilities LAB can be represented as LCH luminosity chroma hue similar to Material s HCT where the L value can be used to calculate contrast This is a better representation than existing ones like HSL which can vary in perceived lightness even if the lightness value is the same You can learn more about LCH in this article Also LCH is making its way into web standards as part of CSS Color Level So you can write lch in CSS without needing to convert it to HSL or RGB but this is currently only supported in Safari Lea Verou who wrote the article linked above is part of the WC CSS Working Group developing this very standard So all you need is a starting color convert it to LCH and modify the L value to make a palette Then use a pair of colors that have a difference of or more in luminosity to ensure accessible contrast We can see how this technique is used in the Material color system below the tones in the palette match the LCH luminosity value They also modify the chroma similar to saturation and hue slightly across tones I made a small web app that displays the palettes generated by the Material color utilities to get the LCH values below Source GoogleBefore Material s HCT the design teams of Lyft and Stripe explored the same issue and Stripe also ended up using LCH I ve linked both of their explorations which are excellent reads How can I achieve this There are a few tools to convert to and from LCH Lea Verou made an LCH color picker the Colord website lets you convert from LCH to hex or RGB if you have a Mac Sindre Sorhus System Color Picker is excellent andAccessible Palette generates a palette using LAB LCH I used this technique to add theming to Rowy allowing users to choose their own accent color while maintaining accessibility and tinting key UI elements The source code has the exact LCH values I used Rounded corners are harmoniousWhen you have a box with rounded corners in a design and want to nest an inner box with a small gap the inner element should have a smaller corner radius with the difference being the gap size If you make the corner radii equal for both the inner box looks out of place This technique has been known for a while in digital design and is even part of the CSS spec Josh W Comeau joshwcomeau PSA if you nest elements with rounded edges you need to tweak the radius Otherwise you get chunky corners The formula I use outerRadius innerRadius outerSize innerSize Live demo codepen io joshwcomeau pe… PM Jan This is also present in hardware design the screen s rounded corners match the device frame on the iPad Pro and iPhone X designs On iPhones with rounded screens the dock matches the screen s curvatureーApple even provides the exact point size in the software You can also see other elements in the video player matching the screen curvature These values were measured using the image provided in Sketch s built in iOS App Icon template and the display corner radius for the iPhone from Kyle Bashour s ScreenCorners library The app icon radius remains consistent across the system so it does not match the screen s curvature Oddly this principle was not applied to UI elements which used a single corner radius In Material Design both dialogs and inner buttons have a corner radius of dp despite having a gap of dp in between macOS was similar in the Yosemite era design and Windows used square corners for almost all UI elements However with Big Sur and Windows this effect is approximated by increasing the corner radii of larger UI elements In macOS buttons now have a corner radius of pt and dialog windows pt plus they all use smooth corners to match the corners of Apple s hardware Meanwhile Windows famously rounds previously sharp corners with buttons at px and windows px It also seems that UIs are becoming more rounded in general Big Sur increases corner radii and uses smooth corners which look more rounded iOS introduces button styles with fully rounded corners Windows removed sharp corners on most UI elements andAndroid increased the radii for dialogs navigation drawers and fully round the corners of buttons in stark contrast to all previous versions of Material Design How can I achieve this Set the smallest UI elements to some base corner radius then set the larger containing elements like dialogs to a larger corner radius Try to make them proportional to the distance between the smaller element or double the smaller corner radius to simplify Here s how it looks in our app with the corner radii doubled Variable UI fonts with optical sizesWhen typefaces were first developed they were physical designs etched in metal with fixed font sizes When a typographer designed the same typeface for a different size they modified the design to be optimal by altering facets like spacing and proportion this is known as optical size You can learn more about optical size in this article Variable fonts are a new font format based on OpenType that allows the designer to customize specific variation axes or variables of a type design such as a non fixed weight slant and optical size You can learn more about variable fonts in this excellent Variable Fonts Primer which uses Roboto Flex a variable font extension of Google s Roboto typeface In all major OSes now use this variable font technology to implement optical sizes in UI typography Apple s system font San Francisco was released in with two optical sizes Display for sizes points and larger and Text for everything smaller In Apple released these fonts as a single variable font SF Pro with optical size as a variation axis Apple s system icons SF Symbols also use variable font techniques For Windows Microsoft redesigned its system font Segoe UI as Segoe UI Variable with its own optical size axis And as part of Material Design Google introduces GS Text and GS Variable an evolution of its corporate font Google Sans Also of note these typefaces are all different styles of sans serif San Francisco is neo grotesque Segoe is humanist and Google Sans is geometric How can I achieve this Variable fonts are a relatively new technology and producing them is expensive so there aren t as many of them around especially in the free and open source space So far the only open source variable font with optical sizes that I ve found is Roboto Flex but it doesn t seem to be finished yet Rasmus Andersson s increasingly ubiquitous Inter typeface has a display size in beta In the meantime using a more expressive typeface for prominent titles can elevate your design For Rowy I used Inter as the typeface in small text and Space Grotesk in headings for brand expression Focus on contentFlat design has been with us for over a decade and its primary goal is to focus on the content by stripping away the clutter and ornamentation of UI elements The iOS design guidelines state “a crisp beautiful interface help s people understand and interact with content while never competing with it The most recent OS releases iterate on this concept by having even less “chrome Navigation bars are transparent in iOS and Android and blend into the background until you scroll On the desktop macOS Big Sur blends the title bar and toolbar until you scroll or hover over the bar for a few seconds And some apps in Windows don t distinguish the title bar at all but house the content in a distinct card like layer These elements all achieve the same goal to reduce the amount of visual clutter around and elevate the visual prominence of the content How can I achieve this If you have a navigation bar docked to an edge blend it into the background when it doesn t need to be distinguished such as when the user hasn t scrolled And if you have primary content house it in a subtle layer distinct from the background We use a React UI library MUI which makes it easy for us to achieve this effect where the navigation bar is only distinguished on scroll Inset everythingIn a similar vein more UI elements are inset no longer taking the entire width of their containers When the iPhone X introduced an on screen home indicator in place of the home button Apple changed their guidelines to prescribe inset buttons with rounded corners eschewing the full width buttons introduced in iOS Best practices changed for many other elements fixed to the bottom of the screen to adapt to the new iPhone design With iOS Apple is insetting table views in more apps like Settings and Mail It seems to be in response to the growing size of iPhone screens with the guidelines noting “in a compact environment an inset grouped table can cause text wrapping especially when content is localized In macOS Big Sur they extend this design to the lists in Mail consistent with the iPadOS design It s also present in menus throughout the system including the menu bar Note the click targets extend to the edge of the menus like the previous full width design Windows shares the same style in its menus and navigation items Android s system UI and apps generally follow this style too This style could improve accessibility as the separation between elements and their containers now extends to all four sides but I haven t found any research supporting this When paired with harmoniously rounded corners it can make menus look more modern Differentiation beyond colorDesigners are adding more ways to display states without relying on color which is inaccessible for people with color blindness Here are some examples I noticed Spotify added dots below the shuffle and repeat buttons instead of relying solely on changing their color in Material Design displays a pill shaped indicator and uses filled icons for active pages in the navigation bar Windows adds a consistent distinct line to selected items in lists and navigation panes This informed the decision to redesign toggle buttons for Rowy And a standard switch designWith Android switches now have the same fundamental design across the major OSes This makes it easier for a user to switch between these platforms and reduces cognitive load Where is UI design headed The overarching theme I notice in all these design decisions is that designers put user interface design into perspective They re acutely aware of where digital interfaces fit in the human experience and interact with the physical world The convergence on outline icons to mimic text recognizes the importance of icons in communication Increasingly personalized interface elementsーespecially the direction Material You is takingーacknowledge how people like to make the things they use their own including the tech they use every day Harmoniously rounded corners and inset elements are inspired by physical objects and industrial design so our software matches the hardware more closely The use of variable fonts with optical sizes hearkens back to typography s origins and along with differentiating elements beyond color they improve usability for all especially those with disabilities The more minor things help too reducing visual clutter to elevate content allows users to focus on what they want to do And using a standard switch design eliminates any cognitive load required to figure out what a UI element does Photo by Vinicius amnx Amano on UnsplashThis kind of thinking behind UI design sets us up nicely for the next generation of computing centered on AR VR the metaverse where metaverse first experiences will have to answer how they improve the human experience and interact with the physical world Designers are already looking at how to adapt design systems for this change Looking at the decisions above applying color science Material s HCT takes viewing conditions into account and inset elements that elevate content help these UI elements transition from the D world to the D metaverse Hey  if you enjoyed this you can follow me on Twitter nots dney where I talk more about my work as a front end engineer Also check out Rowy where we re building an improved user experience for working on cloud platforms starting with Google Cloud and Firebase rowyio rowy Open source Airtable like experience for your database Firestore with GCP s scalability Build any automation or cloud functions for your product ️ GCP as easy as ABC Build on Google Cloud Platform in minutesManage Firestore data in a spreadsheet like UI write Cloud Functions effortlessly in the browser and connect to your favorite third party platforms such as SendGrid Twilio Algolia Slack and more Website • Documentation • Discord • TwitterLive DemoCheck out the live demo of Rowy Quick DeploySet up Rowy on your Google Cloud Platform project with this one click deploybutton DocumentationYou can find the full documentation with how to guideshere FeaturesPowerful spreadsheet interface for FirestoreCRUD operationsSort and filter by row valuesLock Freeze Resize Hide and Rename columnsMultiple views for the same collectionBulk import or export data csv jsonAutomate with cloud functions and ready made extensionsEffortlessly build cloud functions on field level triggers right in the browserUse any NPM modules or… View on GitHub 2021-11-23 15:02:42
海外TECH DEV Community Introducing Instant Rebalancing for a fully autonomous Kubernetes optimization platform https://dev.to/castai/introducing-instant-rebalancing-for-a-fully-autonomous-kubernetes-optimization-platform-525d Introducing Instant Rebalancing for a fully autonomous Kubernetes optimization platformAnyone who has ever worked with manual cost management tools knows how time consuming they can be Reaching an optimized state can take months without any guarantee of an ongoing optimized state  With CAST AI this is no longer the case Our platform now offers Instant Rebalancing a feature that automatically reduces cloud compute costs by or more instantly with zero impact to your application s availability and performance Built on top of our AI driven algorithms Instant Rebalancing enables you to analyze your Kubernetes cluster configuration and rightsize it to the most cost efficient compute resources available  Once you rebalance our AI automation engine will keep you in an optimized state without any additional human effort Cutting costs instantly and automatically The Instant Rebalancing feature allows you to automatically optimize a cluster from its current state to the most optimal configuration by seamlessly modifying compute resources in real time based on inventory availability and pricing That way you get to realize savings within just a few minutes  A substantial part of cloud cost optimization is rightsizing or using the best available resources to optimize your deployments We ve developed advanced algorithms that make rightsizing instant and as easy as clicking a button Customers can then integrate Instant Rebalancing into cluster onboarding or continuous optimization through Infrastructure as Code IaC Our platform provides them with significant cost savings by enabling them to quickly and easily get optimized and stay optimized ensuring a truly frictionless experience Laurent Gil Chief Product Officer at CAST AIInstant Rebalancing adds another critical building block to the CAST AI cloud cost optimization product suite Thanks to this new feature you can now seamlessly turn on cost driven autoscaling keeping your cloud expenses optimized over time even as prices and market conditions change  Instant Rebalancing also allows teams to benefit from Spot Instances offered at significantly discounted rates The feature works across all supported regions in AWS Google Cloud and Microsoft Azure  CAST AI is a great solution for anyone that has fairly sprawling infrastructure that is growing a little out of control and becoming difficult to manage Turning to containers and running applications in a much more consistent fashion without ever forgetting about the costs is a smart move Looking at the expertise of CAST AI in Kubernetes we are confident that these cost savings are going to be realized CAST AI gave us better visibility into our cloud resources and left us feeling in control Ryan Upton Architect at BoostrSee how Instant Rebalancing works in practiceAre you going to AWS re Invent Drop by booth to see a demonstration of the newest features including Instant Rebalancing between November and December in Las Vegas CAST AI team will be waiting for you at booth turn right immediately upon entering If you re looking for a personal demo of Instant Rebalancing or the entire platform make sure to book a time here 2021-11-23 15:02:19
Apple AppleInsider - Frontpage News Future MacBook Pro may gain retractable keyboard for thinness, screen protection https://appleinsider.com/articles/21/11/23/future-macbook-pro-may-gain-retractable-keyboard-for-thinness-screen-protection?utm_medium=rss Future MacBook Pro may gain retractable keyboard for thinness screen protectionApple has researched using a keyboard that expands up out of the MacBook Pro chassis and retracts again when the lid is closed The current keyboard on a inch MacBook ProScreens on laptops have always been delicate but perhaps never more so than now with the new inch MacBook Pro and revised inch MacBook Pro It s not that those are any more delicate it s that they are so much better that the thought of damaging them is painful Read more 2021-11-23 15:27:32
海外TECH Engadget Activision Blizzard’s latest anti-harassment effort is a ‘responsibility committee’ https://www.engadget.com/activision-blizzard-harassment-committee-151913561.html?src=rss Activision Blizzard s latest anti harassment effort is a responsibility committee Activision Blizzard is facing increasing scrutiny from the government and the games industry over its handling of the ongoing sexual harassment scandal and its latest effort might not help As Kotakureports the developer has formed a quot Workplace Responsibility Committee quot to help it implement new anti harassment and anti discrimination efforts While that sounds useful at first there s a concern the initial committee is more symbolic than functional The committee will launch with just two members both of whom chair Dawn Ostroff and Reveta Bowers are existing independent board members They in turn will report to the board and key Activision Blizzard executives ーincluding CEO Bobby Kotick who some argue is partly to blame for the scandal The duo will work with an outside coordinator and a consultant following the company s settlement with the EEOC but there s no mention of involving regular company staff or outsiders who weren t part of that court agreement As such it won t be surprising if the committee does little to satisfy critics Employees and others have called on Kotick to resign among other more substantial changes There s also low confidence in leadership s ability to police itself ーJennifer Oneal Blizzard s first female leader allegedly left her position feeling she was the target of discrimination by a seemingly irredeemable company culture Bloombergnoted that some board members including Ostroff are Kotick s longtime friends and connections for that matter The committee might need to take aggressive steps if it wants to prove it s more than a superficial gesture 2021-11-23 15:19:13
海外TECH CodeProject Latest Articles How To Unit Test Your API https://www.codeproject.com/Articles/5318075/How-To-Unit-Test-Your-API How To Unit Test Your APIUnit testing your Web Service API should be just that unit testing your API With the wrong approach though API testing can take over your whole testing plan A great unit testing strategy makes sure of two things You create good tests and you just test your API 2021-11-23 15:05:00
海外科学 NYT > Science The Hubble Telescope Checks In With the Most Distant Planets https://www.nytimes.com/2021/11/23/science/hubble-telescope-jupiter-saturn-uranus-neptune.html neptune 2021-11-23 15:04:09
ニュース BBC News - Home Covid: No extension to Scottish vaccine passport scheme https://www.bbc.co.uk/news/uk-scotland-scotland-politics-59389834?at_medium=RSS&at_campaign=KARANGA sturgeon 2021-11-23 15:44:07
ニュース BBC News - Home Bulgaria bus crash: Children among at least 46 killed https://www.bbc.co.uk/news/world-europe-59383852?at_medium=RSS&at_campaign=KARANGA macedonia 2021-11-23 15:02:50
ニュース BBC News - Home Meredith Kercher: Student's killer Rudy Guede ends sentence https://www.bbc.co.uk/news/world-europe-59388718?at_medium=RSS&at_campaign=KARANGA italy 2021-11-23 15:27:05
ニュース BBC News - Home Stop 'malicious hyping' of Peng case - China https://www.bbc.co.uk/news/world-asia-china-59385519?at_medium=RSS&at_campaign=KARANGA diplomatic 2021-11-23 15:10:04
ニュース BBC News - Home Covid: How do I get a lateral flow or PCR test? https://www.bbc.co.uk/news/health-51943612?at_medium=RSS&at_campaign=KARANGA covid 2021-11-23 15:44:23
ニュース BBC News - Home Covid passports: How do I get one and when will I need it? https://www.bbc.co.uk/news/explainers-55718553?at_medium=RSS&at_campaign=KARANGA events 2021-11-23 15:44:47

コメント

このブログの人気の投稿

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

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

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