IT |
ITmedia 総合記事一覧 |
[ITmedia News] 今年は無料──ポケモンGOで冬の大型イベント「GO Tour:ホウエン」25日から ゲンシカイキ初実装 |
https://www.itmedia.co.jp/news/articles/2302/24/news180.html
|
gotour |
2023-02-24 20:50:00 |
IT |
ITmedia 総合記事一覧 |
[ITmedia News] 気象庁が新スパコン導入、性能は現行機2倍 「線状降水帯」の予測精度向上に |
https://www.itmedia.co.jp/news/articles/2302/24/news178.html
|
itmedia |
2023-02-24 20:30:00 |
IT |
ITmedia 総合記事一覧 |
[ITmedia News] スマホ販売の約15%で“極端な廉売”横行 背景にキャリアの「代理店評価制度」 公取委調査 |
https://www.itmedia.co.jp/news/articles/2302/24/news177.html
|
itmedia |
2023-02-24 20:30:00 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
Sphinx+VSCodeでプレビューを見たい! |
https://qiita.com/1taroh/items/044f3cd58a7e39b85379
|
extensionpack |
2023-02-24 20:33:28 |
python |
Pythonタグが付けられた新着投稿 - Qiita |
FastAPIの422エラー(Unprocessable Entity)をデバッグする |
https://qiita.com/kurumaebi65/items/74e2edf8a394cf086c9a
|
fastapi |
2023-02-24 20:27:18 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
DatabricksにおけるAmazon Rekognitionの活用 |
https://qiita.com/taka_yayoi/items/136fc8f72157edea36b2
|
amazonrekognition |
2023-02-24 20:27:58 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
DockerfileだけでGoの最小構成の環境を構築してみた(爆速構築) |
https://qiita.com/kyoto-kanko/items/47f296fc11061b9b74fd
|
docker |
2023-02-24 20:29:37 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
データーサイエンス SQL100本ノック編(SQL1~20問) |
https://qiita.com/pon_kk24/items/27265fa3524dade071a7
|
twitter |
2023-02-24 20:19:11 |
golang |
Goタグが付けられた新着投稿 - Qiita |
DockerfileだけでGoの最小構成の環境を構築してみた(爆速構築) |
https://qiita.com/kyoto-kanko/items/47f296fc11061b9b74fd
|
docker |
2023-02-24 20:29:37 |
Git |
Gitタグが付けられた新着投稿 - Qiita |
GitとGithub基礎まとめ |
https://qiita.com/keita1899/items/38b7e78f22d3f58dc9d4
|
github |
2023-02-24 20:06:53 |
技術ブログ |
Developers.IO |
S3 をソースとする CodePipeline のトリガーにちょっとハマった話 |
https://dev.classmethod.jp/articles/codepipeline-s3-trigger-hooked-on/
|
codepipeline |
2023-02-24 11:09:07 |
海外TECH |
MakeUseOf |
Federal Judge Rules That Emojis Count as Financial Advice |
https://www.makeuseof.com/federal-judge-rules-emojis-count-financial-advice/
|
water |
2023-02-24 11:45:17 |
海外TECH |
MakeUseOf |
What Are Logitech’s Unifying and Bolt Wireless Technologies? |
https://www.makeuseof.com/what-are-logitechs-unifying-bolt-wireless-technologies/
|
wireless |
2023-02-24 11:30:17 |
海外TECH |
MakeUseOf |
5 Things You Can Buy With Your Apple Gift Cards or Apple Account Balance |
https://www.makeuseof.com/things-you-can-buy-with-apple-gift-cards/
|
learn |
2023-02-24 11:16:17 |
海外TECH |
DEV Community |
Neden IQ Testi yaptırmalısınız? |
https://dev.to/iqsertifikasi/neden-iq-testi-yaptirmalisiniz-3bi8
|
Neden IQ Testi yaptırmalısınız IQ Intelligent Quotient kelime öbeğinin kısaltmasıdır IQ testi bireylerin zeka seviyelerini ölçmek için tasarlanmışbir standart testtir IQ testleri belirli bir yaştaki bireylerin zeka seviyelerini ve zeka potansiyellerini ölçmek için kullanılır IQ testleri bireylerin matematiksel sözel ve uzamsal yeteneklerini ölçerek bir genel zeka seviyesi skoru hesaplarlar Bu puan bireylerin diğerlerine kıyasla zeka seviyesini belirlemek için kullanılır IQ testi sonuçları insanların birçok alanda başarıya ulaşmalarına yardımcıolabilir Örneğin yüksek bir IQ seviyesi akademik başarı işperformansıve liderlik becerileri ile ilişkilidir Ayrıca yüksek bir IQ seviyesi bireylerin problemleri çözme analiz etme ve yaratıcılık gibi zeka gerektiren becerileri geliştirmelerine de yardımcıolabilir IQ Testi Nedir ve Nasıl Yapılır IQ testleri bireylerin zeka seviyelerini ölçmek için tasarlanmışstandart testlerdir IQ testleri matematiksel problemleri çözme sözel ve uzamsal becerileri ölçen sorular içerir IQ testleri her yaştan bireyler için farklıdüzeylerde hazırlanır Örneğin çocuklar için hazırlanan IQ testleri basit matematiksel problemler ve kelime anlama sorularıiçerirken yetişkinler için hazırlanan IQ testleri daha karmaşık sorular içerebilir IQ testleri belirli bir zamanda belirli bir yerde ve belirli bir şekilde yapılmalıdır Bu sonuçların tutarlıve güvenilir olmasınısağlar IQ testi yapılırken bireyler genellikle sınav salonunda bir masa ve sandalyeye oturtulurlar Test genellikle bir saat kadar sürer IQ Testi Yaptırmanın FaydalarıIQ testleri birçok alanda başarıya ulaşmaya yardımcıolabilecek birçok fayda sağlar İşte IQ testi yaptırmanın bazıfaydaları Kariyer Planlama IQ testi sonuçları bireylerin işseçimlerini yapmalarına yardımcıolabilir Yüksek bir IQ skoru belirli bir meslekte başarılıolma ihtimalinin yüksek olduğunu gösterir IQ testi sonuçları bireylerin hangi alanlarda daha fazla gelişim göstermeleri gerektiğini de gösterir Akademik Başarı Yüksek bir IQ skoru akademik başarıya ulaşma ihtimalini artırır IQ testi sonuçları bireylerin hangi konularda daha fazla çalışmalarıgerektiğini de gösterir Liderlik Becerileri Yüksek bir IQ skoru liderlik becerilerinin geliştirilmesine yardımcıolabilir IQ testi sonuçları bireylerin problem çözme ve analiz etme becerilerini artırarak liderlik becerilerini geliştirmelerine yardımcıolur Kişisel Gelişim IQ testi sonuçları bireylerin zayıf ve güçlüyönlerini belirlemelerine yardımcıolur Bu kişisel gelişimlerini artırmak ve kendilerini geliştirmek için hangi alanlarda çalışmalarıgerektiğini gösterir IQ Testinin Sınırlamalarıve EleştirileriIQ testleri bazıeleştirilerin hedefi olmuştur İşte IQ testinin sınırlamalarıve eleştirileri Sadece ZekayıÖlçer IQ testleri sadece bireylerin zeka seviyelerini ölçer Diğer beceriler özellikle sosyal ve duygusal beceriler gibi IQ testi sonuçlarına yansımaz Kültürel Farklılıklar IQ testleri kültürel farklılıklar nedeniyle yanıltıcısonuçlar verebilir Örneğin bazıkültürlerde matematiksel problemler daha az önemli olabilirken sözel beceriler daha fazla önemlidir Zaman Sınırlaması IQ testleri belirli bir süre içinde tamamlanmasıgereken birçok soru içerir Bu bireylerin stres altında performans göstermelerine neden olabilir ve sonuçlarıyanıltıcıhale getirebilir Genetik ve Çevresel Faktörler IQ genetik ve çevresel faktörlerin bir kombinasyonudur IQ testi sonuçları bireylerin genetik potansiyellerini yansıtmakla birlikte çevresel faktörlerin etkisini de yansıtır SonuçIQ testleri bireylerin zeka seviyelerini ölçmek için tasarlanmıştır Bununla birlikte testlerin sınırlamalarıda vardır ve sonuçlarıyorumlama konusunda dikkatli olunmasıgerekir IQ testi sonuçları bireylerin akademik mesleki ve kişisel gelişimlerine yardımcıolabilir IQ testi sonuçlarına dayanarak kişilerin zeka seviyelerinin kesin bir şekilde belirlenmesi mümkün değildir Ayrıca sadece zekayıölçen bir test olmasınedeniyle diğer becerileri ve özellikle sosyal ve duygusal becerileri ölçme konusunda sınırlıdır Sonuçolarak IQ testi sonuçları bireylerin güçlüve zayıf yönlerini belirlemelerine yardımcıolur ve bireylerin kariyerleri akademik başarılarıve kişisel gelişimleri üzerinde olumlu bir etkiye sahip olabilir Ancak test sonuçlarına dayanarak karar vermeden önce testlerin sınırlamalarının ve testin yorumlanmasıkonusunda dikkatli olunmalıdır Sonuçolarak IQ testi yaptırmak bireylerin zeka seviyelerini ve belirli becerilerini öğrenmelerine ve bu becerileri geliştirmelerine yardımcıolabilir Ancak testin sınırlamalarıgöz önünde bulundurulmalıve sonuçlarının sadece bir gösterge olduğu unutulmamalıdır IQ testi sonuçları bireylerin kariyerlerinde akademik başarılarında ve kişisel gelişimlerinde faydalıolabilir ancak yalnızca bu sonuçlara dayanarak karar vermek yerine daha kapsamlıbir değerlendirme yapılmasıönerilir |
2023-02-24 11:24:55 |
海外TECH |
DEV Community |
Add an Options Page to Chrome Extension |
https://dev.to/codegino/add-an-options-page-to-chrome-extension-4p3e
|
Add an Options Page to Chrome ExtensionLearn how to add an options page to your Chrome Extension IntroductionThis is a continuation of the previous article about creating a Chrome Extension using Svelte and Tailwind This article will focus on adding an Options page to the extension What is a Chrome Extension A Chrome extension is a software program that extends the functionality of Google Chrome It modifies the browser s behavior and adds new features What is a Google Extension Options Page The Options Page is a page that allows users to configure the extension It is a page that is opened when the user right clicks on the extension icon in the toolbar then clicks the Options menu By default the Options option is not available We will add it in the next section Project setup Clone the repo from the previous blogThe easiest way is to use degit npx degit codegino svelte tailwind chrome plugin intro my target folder Install the dependencies cd my target foldernpm install Create the content of the options page lt src options index html gt lt DOCTYPE html gt lt html gt lt head gt lt meta charset UTF gt lt title gt Popup lt title gt lt head gt lt body gt lt div id app gt lt div gt lt script type module src index ts gt lt script gt lt body gt lt html gt It is important to match the absolute file path with the one in the manifest file Create the options script src options index tsimport app css import Options from components Options svelte const target document getElementById app async function render new Options target document addEventListener DOMContentLoaded render Create the Options Svelte componentNOTE I m using Svelte here because it was a focus of the previous blog Do not focus too much on the content of this component because an Options page could contain anything This example contains a simple form that allows the user to update the count from the input field to the local storage src components Options svelte lt script lang ts gt import onMount from svelte let count let message string null onMount gt chrome storage sync get count data gt count data count const handleSave gt chrome storage sync set count then gt message Updated setTimeout gt message null lt script gt lt div class flex flex col py px bg blue h screen gt lt h class mb gt Options Page lt h gt if message lt span class font bold text blue gt message lt span gt if lt form on submit preventDefault handleSave class flex flex col gap gt lt div class flex items center gap w full gt lt label for count class text lg font bold text gray gt New Count lt label gt lt input type number id count name count class border border gray rounded md p flex bind value count gt lt div gt lt i gt Add other configurations here lt i gt lt button class w full bg blue text white text base font bold py px rounded type submit gt Save lt button gt lt form gt lt div gt Update the manifest fileThe manifest file contains the necessary information for the browser to load the extension For more information check out the Chrome Extension ManifestSimply add the options ui property to the manifest file manifest json name Svelte Tailwind Chrome Extension description Sample Extension using Svelte and Tailwind version manifest version action default popup src popup index html options ui page src options options html permissions storage Build and load the extensionRun npm run dev or npm run buildOpen the chrome extension page by typing chrome extensions in the address barEnable the developer modeClick on the Load unpacked buttonSelect the dist folderOpen the extension menu then click the loaded extension Open the options in a new tabBy default the options page is opened in a popup We can change this behavior by adding the open in tab property manifest json options ui page src options options html open in tab true Now the options page will be opened in a new tab RepositoryCheck the source code here What s next Sync plugin contents without reloading Add a content script Add a background script Add a dev tools page Deploying the extension |
2023-02-24 11:23:44 |
海外TECH |
DEV Community |
How to create and visualize a cardioid using javascript |
https://dev.to/eyudinkov/how-to-create-and-visualize-a-cardioid-using-javascript-33l4
|
How to create and visualize a cardioid using javascriptHello everyone Today we re going to create and visualize a cardioid using javaScript and canvas Let s get started PreparationA cardioid is a geometric shape that resembles a heart It is formed by tracing the path of a point on a circle that is rolling around another circle of the same size The resulting curve has a single cusp at the origin which gives it its characteristic heart shape Cardioids are fascinating mathematical shapes that can be used in many different applications from engineering to art In this article we will explore how to create a cardioid using javascript and the canvas We will use the canvas to draw the curve of the cardioid and javascript to calculate the coordinates of each point along the curve We will also discuss the underlying mathematics behind the cardioid and provide a step by step guide for creating one By the end of this article you will have a deeper understanding of cardioids and how to create them using javascript and canvas TheoryWe start with a circle of radius r centered at the origin and a fixed point P on the circle We will draw a pencil of lines through P and rotate it around the circle To draw each line we calculate the angle between the x axis and the line using the formula theta π N i where i is the index of the line For any angle theta the line passing through P and intersecting the circle at angle theta is given by the equation xcos theta ysin theta rcos theta To find the intersection points of the line and the circle we substitute the equation of the line into the equation of the circle and solve for x and y This gives us a system of equations xcos theta ysin theta rcos theta x y r By solving this system of equations for x and y we get x rcos theta rcos theta y rsin theta rsin theta These equations give us the coordinates of the point of intersection of the line passing through P and intersecting the circle at a given angle theta To draw the cardioid we simply plot the points of intersection as we vary the angle theta from to π and connect them with a smooth curve Environment setupLet s define the Cardioid class that will store the state of the cardioid and have two main methods drawing the cardioid on the screen and getting color of the line class Cardioid constructor get color draw Next we re going to define a new class called Canvas that will create the canvas element and call the draw method of the Cardioid class class Canvas constructor id this canvas document createElement canvas this canvas id id this canvas width window innerWidth this canvas height window innerHeight document body appendChild this canvas this ctx this canvas getContext d draw const cardioid new Cardioid this ctx const draw gt this ctx fillRect this canvas width this canvas height cardioid draw requestAnimationFrame draw draw Consequently the preparatory phase of the project has been finalized and we can now proceed to the implementation of its principal functionalities CardioidTo generate the most basic form of the cardioid the initial parameters of the class are defined as the radius of the circle the quantity of lines and the coordinates of the screen center to set the offset of the points class Cardioid constructor ctx this ctx ctx this radius this num lines this translate window innerWidth window innerHeight get color draw The Cardioid class includes a draw method that is responsible for rendering the cardioid on a canvas element The method does not take any arguments as the required parameters are specified in the constructor To draw the cardioid the draw method loops over the number of lines defined in the constructor calculating the two points of intersection for each line using the theory above Nevertheless in order to connect two pairs of points with a line it is necessary to decompose the original equations for x and y into a set of two equations of the following form x rcos theta offsetXy rsin theta offsetYx rcos theta offsetXy rsin theta offsetYThus the following implementation is obtained class Cardioid constructor ctx this ctx ctx this radius this num lines this translate window innerWidth window innerHeight get color draw this ctx lineWidth for let i i lt this num lines i const theta Math PI this num lines i const x this radius Math cos theta this translate const y this radius Math sin theta this translate const x this radius Math cos theta this translate const y this radius Math sin theta this translate this ctx strokeStyle this color this ctx beginPath this ctx moveTo x y this ctx lineTo x y this ctx stroke Let s see how the cardioid looks in real time Since the cardioid resembles a heart we can incorporate a beating effect This can be accomplished by selecting a sin function to modulate the radius of the cardioid as follows y abs sin x As a result we get the following picture Next let s depart from the standard procedure for constructing a cardioid and introduce a variable factorthat depends on time Additionally instead of simply doubling the value of the angle theta we will use this variable to compute the second pair of points factor timeNext let s modify the approach of calculating the time value To achieve this we can define the startTime value as performance now within the constructor of the Cardioid class and subsequently implement the time getter as the difference between performance now and startTime get time return performance now this startTime The resulting outcome is presented below ConclusionIn conclusion we have explored the theory of the cardioid as the envelope of a pencil of lines and demonstrated how this concept can be used to create cardioids in javascript using the canvas element Furthermore we have showcased various techniques that can be used to add visual effects to the cardioid such as a beating effect and dynamic colors By leveraging the power of javascript and the canvas element the possibilities for creating engaging and interactive cardioids are endless and you can try to create your own implementation right now |
2023-02-24 11:19:51 |
海外TECH |
DEV Community |
How to Build a React Admin Panel with Mantine and Strapi |
https://dev.to/refine/how-to-build-a-react-admin-panel-with-mantine-and-strapi-58i9
|
How to Build a React Admin Panel with Mantine and StrapiAuthor Joseph Mawa IntroductionBuilding complex data intensive front end user interfaces UIs such as admin panels dashboards and other internal tools from scratch can be a daunting and laborious process React frameworks such as refine make the process easier because that is a problem they are attempting to solve refine is a free open source and MIT licensed React framework for building CRUD apps It has integrations for popular UI frameworks and design systems such as Material UI Chakra UI Ant Design and Mantine You can build any CRUD app like React admin panel Though it comes with several features out of the box refine is customizable If you don t fancy any of the above UI frameworks or design systems you can also use headless refine Every data intensive front end application must source data from somewhere refine has integrations for popular content management systems and cloud databases such as Strapi Hasura and Firebase All the above integrations are opt in In this article we will build a simple React Admin Panel using refine We will use Mantine as the UI component library and Strapi as our back end service What is Strapi Strapi is a popular open source headless CMS built using Node It is flexible and has an intuitive UI The refine ecosystem has data providers for the most popular content management systems such as Strapi and cloud databases like Firebase and Supabase While creating a project using the refine command line tool select Strapi as your back end service The refine command line tool will bootstrap a refine application with all the requisite packages and functionalities You don t need a Strapi instance to learn how to use Strapi with refine The refine ecosystem has a fake Strapi API that you can use when learning to integrate Strapi in a refine project The refine command line tool will install the pankod refine strapi v data provider when you choose it as your back end service during project creation You can then import and use it in your application like so import Refine from pankod refine core import DataProvider from pankod refine strapi v function App return lt Refine dataProvider DataProvider process env API URL api axiosInstance gt What is Mantine Mantine is a free open source MIT licensed React components library Mantine can help you build fully functional and accessible web applications fast You can use it with most modern React frameworks such as Next Gatsby and Remix As highlighted above one of the benefits of using refine is the built in support for most of the popular design systems UI frameworks and component libraries Mantine is one of the component libraries for which refine has built in support When creating a refine application using create refine app select Mantine as the UI framework in the command prompt The refine command line tool will bootstrap a refine application and install the necessary Mantine packages You can then import the refine Mantine components and hooks you want to use from the pankod refine mantine package like so import Edit useForm useSelect from pankod refine mantine The refine ecosystem comprises several hooks and components for Mantine You can read the refine Mantine API documentation for more on the different Mantine hooks and Components and how to use them Setting up a refine applicationIn this article you will learn to create a simple React admin panel with refine and Mantine using Strapi as a headless content management system Follow the steps below to bootstrap a refine application using create refine app I assume you have the prerequisite tools highlighted above Step ーCreate a refine appNavigate to the directory you want to create the refine app and run the command below on the terminal Using npmnpm create refine app latest Using pnpmpnpm create refine app latestBe sure to respond to the command line prompts during the installation Select refine react as the project template and Strapi version as the back end service You can choose the default for the other options Check the guide below if you don t know how to respond to a question Downloaded remote source successfully Choose a project template ·refine reactWhat would you like to name your project ·refine demo appChoose your backend service to connect ·data provider strapi vDo you want to use a UI Framework ·mantineDo you want to add example pages ·noDo you want to add dark mode support ·noDo you want a customized layout ·noDo you need in Internationalization support ·noDo you want to add kbar command interface support ·noChoose a package manager ·npmWould you mind sending us your choices so that we can improve superplate ·yes Step ーLaunch the development serverAfter successfully bootstrapping a refine application open the project directory in a text editor like VS Code and run the command below to launch the development server Using npmnpm run dev Using yarnyarn run dev Using pnpmpnpm run devThe command above launches the development server on local host on port in your default web browser The landing page should look like the image below If your landing page is similar to the screenshot above you have successfully created a refine project We will build a React admin panel by modifying the project you have just created Built in refine hooks and components for Mantinerefine has several built in hooks and components for Mantine Most built in refine Mantine hooks and components directly export or use their corresponding core Mantine hooks and components internally useForm For form managementOne of the hooks we will use a lot in this article is the useForm hook As its name suggests you can use it to manage forms when working with Mantine and refine It is based on and has all the features of the core Mantine and refine useForm hooks with additional features The refine documentation does a great job of explaining the useForm hook Check it out to understand the useForm hook in depth and how to use it import useForm from pankod refine mantine const saveButtonProps getInputProps useForm initialValues title status validate title value gt value length lt Post title should be atleast characters long null status value gt value length lt Status is required null useTable For table managementAnother hook that we will use in this article is the useTable hook It is part of the refine react table package The refine react table package is an adapter for the TanStack Table It has all the features of the TanStack Table package out of the box It also has features for filtering sorting and pagination Similarly we will use basic layout and UI components such as List Create Edit and Show As I pointed out above the refine documentation explains them well Refer to the appropriate sections of the refine documentation to understand a component that might be unfamiliar to you How to build a React admin panel with refine Mantine and StrapiIn this section we will build a React admin panel with CRUD functionality using refine Mantine and Strapi We will utilize a fake Strapi version API Follow the steps below if you have created a refine project by following the steps under the Creating a refine application section above How to list recordsYou should now have your application s authentication pages if you followed the previous step However logging in using the credentials I mentioned will open a non existent page We need to fetch the list of posts from our Strapi API and display it when you log in Let us start by creating an interface for the data from our Strapi API Create a src interfaces index d ts file You can copy and paste the code below into it src interfaces index d tsexport interface ICategory id number title string export interface IPost id number title string content string status published draft rejected category ICategory createdAt string The above interface should give you an idea of the shape of the data returned from the API The Strapi API has the posts and categories collections There is a relation between the two collection types Read the documentation to understand how the Strapi version data provider works Since we will work with blog posts let us create a posts directory and keep all our component files in it Create an src pages posts list tsx file and copy and paste the code below into it src pages posts list tsximport React from react import IResourceComponentsProps from pankod refine core import useTable ColumnDef flexRender from pankod refine react table import List Table Pagination DateField CreateButton from pankod refine mantine export const PostList React FC lt IResourceComponentsProps gt gt const columns React useMemo lt ColumnDef lt any gt gt gt id id accessorKey id header Id id title accessorKey title header Title cell function getValue return getValue id createdAt accessorKey createdAt header Created At cell function render getValue return lt DateField format LL value getValue lt any gt gt const getHeaderGroups getRowModel setOptions refineCore setCurrent pageCount current tableQueryResult data tableData useTable columns setOptions prev gt prev meta prev meta return lt List createButtonProps CreateButton gt lt Table highlightOnHover striped withBorder withColumnBorders gt lt thead gt getHeaderGroups map headerGroup gt lt tr key headerGroup id gt headerGroup headers map header gt return lt th key header id gt header isPlaceholder amp amp flexRender header column columnDef header header getContext lt th gt lt tr gt lt thead gt lt tbody gt getRowModel rows map row gt return lt tr key row id gt row getVisibleCells map cell gt return lt td key cell id gt flexRender cell column columnDef cell cell getContext lt td gt lt tr gt lt tbody gt lt Table gt lt br gt lt Pagination position right total pageCount page current onChange setCurrent gt lt List gt In the PostList component above we used the useTable hook from the refine react table package The useTable hook is headless by design Therefore the responsibility for managing the UI lies with you We imported several other UI components from the pankod refine mantine package I won t explain them here Read the refine Mantine or the core Mantine documentation Create a src pages posts index tsx file and add the following export statement to it src pages posts index tsexport from list Adding resources and connect pages to refine appNow we are ready to start connecting to our API by adding a resource to our applicationRefer to documentation for more info about resources conceptFinally import the PostList component you created above into the App tsx component and add it to the resources prop of the Refine component like so src App tsx highlight next lineimport PostList from pages posts function App return lt MantineProvider theme LightTheme withNormalizeCSS withGlobalStyles gt lt Global styles body WebkitFontSmoothing auto gt lt NotificationsProvider position top right gt lt Refine highlight start LoginPage AuthPage resources name posts list PostList highlight end gt lt NotificationsProvider gt lt MantineProvider gt Setting AuthProviderSimilarly create refine app bootstraps a refine application with default AuthProvider You should have the src authProvider ts file if you created the application using create react app while following the steps above Of particular interest is the login method of the authProvider We will use email and password to log into our application Be sure the login method has the code below src authProvider tsexport const authProvider AuthProvider highlight start login async email password gt const data status await strapiAuthHelper login email password highlight end if status localStorage setItem TOKEN KEY data jwt set header axios instance axiosInstance defaults headers common Authorization Bearer data jwt return Promise resolve return Promise reject After setting up your resources and providers as described above the landing page should redirect you to the login page The login page looks like the image below For this demonstration use the credentials below to log into an existing account It is a fake Strapi instance set up for development Be sure to use it responsibly Email demo refine devPassword demodemoWhen you log into your refine application you should have a table similar to the image below Though still incomplete it is a simple React admin panel How to handle relational dataAs highlighted in the previous section our Strapi API has posts and categories collections with relational fields However Strapi version doesn t populate relational data out of the box when fetching entries in a collection Refer to documentation for more info about relation populate Refer to tutorial section for more info about handling relationships Therefore for our data provider to return the categories for each post we need to specify using the populate field of the metaData property in the object we pass to the useTable hook src pages posts list tsx import useTable from pankod refine react table const getHeaderGroups getRowModel setOptions refineCore setCurrent pageCount current tableQueryResult data tableData useTable columns highlight start refineCoreProps metaData populate category highlight end After modifying your code like in the example above the data provider will also fetch the category for each post Each post object in the array that the useTable hook returns will contain the category field Since each post object now has a category field we need to add a category column to our table Modify the column array which you passed to the useTable hook to include the Category column like in the example below src pages posts list tsx const columns React useMemo lt ColumnDef lt any gt gt gt highlight start id category header Category accessorFn category gt return category title highlight end The code above should modify your table to include a Category column like the image below How to create a recordIn the previous sections you learned how to fetch the list of posts from the Strapi API whenever the user logs in However in an React admin panel you should also be able to create a new record And that is what you will learn in this section By default refine adds a create button to the List component You should see it in the top right corner However clicking the create button will open a non existent page We need to create a component that will render when a user clicks the create button The component will contain the form we shall use to create a new post Create the src pages posts create tsx file You can copy and paste the code below into it pages posts create tsximport Create useForm TextInput useSelect Select from pankod refine mantine import ICategory from interfaces export const PostCreate gt const getInputProps saveButtonProps refineCore formLoading useForm initialValues title category id status validate title value gt value length lt Title should be atleast characters long null category id value gt value length lt Title is required null status value gt value length lt Status is required null const selectProps useSelect lt ICategory gt resource categories return lt Create isLoading formLoading saveButtonProps saveButtonProps gt lt TextInput mt sm required true label Title getInputProps title gt lt Select mt label Status required true placeholder Pick one getInputProps status data label Published value published label Draft value draft label Rejected value rejected gt lt Select mt label Category required true placeholder Select category getInputProps category id selectProps gt lt Create gt In the above example we used the useForm hook to manage the form We passed the initial input values and field validation methods to the useForm hook Open the src pages posts index tsx file you created in one of the previous sub sections and add the export statement below pages posts index tsx highlight next lineexport from create You can now import the PostCreate component into the App tsx file and add it to the list of resources like so import highlight next line PostCreate from pages posts function App return lt MantineProvider theme LightTheme withNormalizeCSS withGlobalStyles gt lt Global styles body WebkitFontSmoothing auto gt lt NotificationsProvider position top right gt lt Refine resources name posts list PostList highlight next line create PostCreate gt lt NotificationsProvider gt lt MantineProvider gt Clicking the create button will now navigate you to the posts create page The posts create page looks like the image below You can use it to create a new post After filling and submitting the form with details of your post it should now be available in the list of all posts How to edit a recordIn the previous section we looked at creating a new post It is also possible to edit an existing record To edit records in our table let us add an Actions column The column will have a button to edit the contents of each row in the table To add a new column to our table add a column object to the columns array we created in the PostList component We will render an EditButton in our new column pages posts list tsximport highlight start EditButton Group highlight end from pankod refine mantine const columns React useMemo lt ColumnDef lt any gt gt gt highlight start id actions accessorKey id header Actions cell getValue gt return lt Group gt lt EditButton hideText size xs recordItemId getValue as number variant subtle gt lt Group gt highlight end After adding the code above your table should include the Actions column Clicking the edit button at the moment will again redirect you to a non existent page Let us create the component that will render when a user clicks the edit button The component will contain a form for editing the contents of a specific record in our collection Create the src pages posts edit tsx file into which copy and paste the code below pages posts edit tsximport Edit useForm TextInput Select useSelect from pankod refine mantine import ICategory from interfaces export const PostEdit gt const getInputProps saveButtonProps refineCore queryResult useForm initialValues id title category id refineCoreProps metaData populate category validate title value gt value length lt Title should be atleast characters long null category id value gt value length lt Title is required null const postData queryResult data data const selectProps useSelect lt ICategory gt resource categories defaultValue postData category id return lt Edit saveButtonProps saveButtonProps gt lt TextInput mt sm disabled label Id getInputProps id gt lt TextInput mt sm required label Title getInputProps title gt lt Select mt label Category required placeholder Select category selectProps getInputProps category id gt lt Edit gt Add the export statement below to the src pages posts index tsx file pages posts index tsx highlight next lineexport from edit Finally add the PostEdit component to the resources prop of your Refine component import highlight next line PostEdit from pages posts function App return lt MantineProvider theme LightTheme withNormalizeCSS withGlobalStyles gt lt Global styles body WebkitFontSmoothing auto gt lt NotificationsProvider position top right gt lt Refine resources name posts list PostList create PostCreate highlight next line edit PostEdit gt lt NotificationsProvider gt lt MantineProvider gt Clicking the edit button should now redirect you to a page for editing the contents of a specific record The edit page will look like the image below How to delete a recordYou can use two methods to delete records in a collection These methods are Using the delete action button on each table rowUsing the delete button on the edit page How to add delete action button on each table rowAdd the following import statement at the top of the list tsx file in the src pages posts directory pages posts list tsximport highlight next line DeleteButton from pankod refine mantine We will add the DeleteButton we imported above to every row in our table under the Actions column The columns array we declared while creating the table in one of the sections above contains an object with the id actions That object defines our Actions column We will add the DeleteButton to it The cell method of the Actions column object returns the Group Mantine UI component Add the DeleteButton so that it is a child of the Group component like so pages posts list tsx const columns React useMemo lt ColumnDef lt any gt gt gt id actions accessorKey id header Actions cell getValue gt return lt Group noWrap gt lt EditButton hideText size xs recordItemId getValue as number variant subtle gt highlight start lt DeleteButton hideText size xs recordItemId getValue as number variant subtle gt highlight end lt Group gt After making the above changes your table will have the delete action button like in the image below Click the delete button to delete a specific record How to add delete button on the edit pageInstead of adding a delete button to each row in a table you can also add it to the edit page This time we will modify the resources prop of the Refine component Add the canDelete prop to the posts resource like so src App tsx function App return lt MantineProvider theme LightTheme withNormalizeCSS withGlobalStyles gt lt Global styles body WebkitFontSmoothing auto gt lt NotificationsProvider position top right gt lt Refine resources name posts list PostList create PostCreate edit PostEdit highlight next line canDelete true gt lt NotificationsProvider gt lt MantineProvider gt Your edit page should now include a delete button on the bottom right How to implement mutation modeMutation mode is a handy feature in refine when performing side effects It can help you provide a better user experience to your clients You can configure your refine app to use any of the three mutation modes below PessimisticOptimisticUndoable Pessimistic mutation modeWith pessimistic mutation mode refine initiates the mutation immediately It applies UI updates and redirects after the mutation update returns successfully The pessimistic mode is the default mutation mode Optimistic mutation modeWhen using the optimistic mutation mode refine applies the mutation locally and immediately updates UI and redirects without waiting for a response from the server It updates the UI accordingly in case there is an error Undoable mutation modeWith the undoable mutation mode refine applies the mutation locally updates the UI and redirects It then waits for a customizable timeout before making the mutation You can cancel the mutation update within the timeout It also updates the UI if the mutation update returns an error You can configure the mutation mode using the options prop of the Refine component src App tsx function App return lt MantineProvider theme LightTheme gt lt Global styles body WebkitFontSmoothing auto gt lt NotificationsProvider position top right gt lt Refine highlight next line options mutationMode optimistic gt lt NotificationsProvider gt lt MantineProvider gt How to share the current page with filtersWith refine it is possible to sync the URL with the contents of a page Assuming the posts page has a multi page table sorted in ascending order you can display the currently active page and the sort order in the URL using query parameters You can activate this feature by setting the syncWithLocation property of the options prop to true function App return lt MantineProvider theme LightTheme gt lt Global styles body WebkitFontSmoothing auto gt lt NotificationsProvider position top right gt lt Refine highlight next line options syncWithLocation true gt lt NotificationsProvider gt lt MantineProvider gt Using the refine Mantine inferencerIn the previous sections we performed CRUD operations by building components from scratch The refine ecosystem has the Inferencer package for generating CRUD pages based on the responses from your API The sole purpose of the Inferencer is to set you off by generating CRUD pages You can then customize the components to suit your needs Depending on your design system or component library import Inferencer from the pankod refine inferencer package Since we are using Mantine as our components library import and add MantineInferencer to the resources prop of the Refine component like so src App tsx highlight next lineimport MantineInferencer from pankod refine inferencer mantine function App return lt MantineProvider theme LightTheme withNormalizeCSS withGlobalStyles gt lt Global styles body WebkitFontSmoothing auto gt lt NotificationsProvider position top right gt lt Refine highlight start resources name posts list MantineInferencer create MantineInferencer show MantineInferencer edit MantineInferencer canDelete true name categories list MantineInferencer create MantineInferencer show MantineInferencer edit MantineInferencer highlight end gt lt NotificationsProvider gt lt MantineProvider gt The code above will generate CRUD pages for you out of the box Each of the other design systems or component libraries which refine supports has its corresponding Inferencer Import and add it to your lt Refine gt component as in the above example ConclusionWhen looking to build a React admin panel refine is one of the react frameworks worth exploring As highlighted above it supports most of the popular design systems and UI frameworks like Material UI Ant design Chakra UI and Mantine Furthermore refine has out of the box support for authentication in routing and state management The refine command line tool can get you up and running instantly with all the necessary configurations for a basic refine project You can modify the default settings to suit your needs All the refine features I have highlighted above will significantly increase your development speed improve your development experience and reduce time to production especially when building complex front end applications |
2023-02-24 11:03:41 |
海外TECH |
DEV Community |
10 Game-Changing No Code/Low Code Tools Every Developer Should Know About |
https://dev.to/thenomadevel/10-game-changing-no-codelow-code-tools-every-developer-should-know-about-2a4l
|
Game Changing No Code Low Code Tools Every Developer Should Know AboutHey your boy Noma is back with another bonker so as technology continues to advance it is becoming easier for people to perform tasks without requiring any coding skills No code tools have made it possible for people to create software websites and applications without the need to learn coding languages like HTML CSS or JavaScript These tools offer an intuitive interface and pre built modules allowing people to create what they need by dragging and dropping elements In this article we will highlight the best no code tools that can make our work easier ️⃣Browse AIBrowse AI is a no code tool that allows users to create custom AI models without writing any code The platform provides pre built models for image recognition sentiment analysis and language translation Users can also train their own custom models by uploading their own data sets Browse AI is a great tool for businesses that want to incorporate AI into their workflows but do not have the resources to hire a data scientist ️⃣Softr StudioSoftr Studio is a no code platform that enables users to build web applications and websites using pre built templates and drag and drop functionality Users can choose from a variety of pre built modules including forms maps and calendars to create their own custom web applications The platform also provides a built in database and analytics tools making it easy to track user behavior and optimize your app ️⃣RoboflowRoboflow is a no code computer vision platform that allows users to train deploy and manage their own custom computer vision models Users can upload their own data sets choose from a variety of pre built models and use Roboflow s drag and drop interface to train their own custom models The platform is a great tool for businesses that want to incorporate computer vision into their workflows but do not have the resources to hire a computer vision engineer ️⃣Teachable MachineTeachable Machine is a no code machine learning platform that enables users to train their own custom machine learning models using their own data sets Users can train models for image classification object detection and sound classification among other things The platform is a great tool for developers designers and entrepreneurs who want to incorporate machine learning into their workflows but do not have a background in data science ️⃣FelvinFelvin is a no code tool that allows users to automate their workflows using pre built modules and drag and drop functionality Users can choose from a variety of pre built modules including email automation web scraping and data analysis to create their own custom workflows The platform is a great tool for businesses that want to automate their repetitive tasks without hiring a developer ️⃣Brancher AIBrancher AI is a no code tool that allows users to create custom deep learning models without writing any code The platform provides pre built modules for image classification object detection and speech recognition among other things Users can also train their own custom models by uploading their own data sets Brancher AI is a great tool for businesses that want to incorporate deep learning into their workflows but do not have the resources to hire a deep learning engineer ️⃣Bardeen AIBardeen AI is a no code platform that enables users to build custom chatbots without writing any code Users can choose from a variety of pre built modules including natural language processing sentiment analysis and intent recognition to create their own custom chatbots The platform is a great tool for businesses that want to automate their customer support without hiring a developer ️⃣RetuneRetune is a no code tool that allows users to create custom websites and landing pages using pre built templates and drag and drop functionality Users can choose from a variety of pre built modules including forms pricing tables and image galleries to create their own custom websites The platform is a great tool for businesses that want to create a professional looking website without hiring a web developer ️⃣TiledeskTiledesk is a no code tool that allows users to create custom chatbots and messaging apps using pre built templates and drag and drop functionality Users can choose from a variety of pre built modules including message routing message templates and integrations to create their own custom chatbots and messaging apps The platform is a great tool for businesses that want to automate their messaging workflows without hiring a developer ChatbotkitChatbotkit is a no code tool that enables users to build custom chatbots for their websites and messaging platforms without writing any code Users can choose from a variety of pre built modules including natural language processing sentiment analysis and intent recognition to create their own custom chatbots The platform is a great tool for businesses that want to automate their customer support and increase customer engagement without hiring a developer In conclusion no code tools have revolutionized the way we work by enabling us to create automate and manage workflows without requiring any coding skills The ten tools we have discussed are some of the best in the market each with its unique features and functionalities that can make our work easier and more efficient However the world of no code tools is vast and there are several other tools out there that could make our work even easier If you know of any other no code tools that you think could be beneficial to the Futurepedia community we encourage you to chime in and share your suggestions At Futurepedia we are always on the lookout for innovative tools and technologies that can help our community stay ahead of the curve and achieve their goals more efficiently With the increasing demand for no code tools it is clear that they are here to stay We believe that the use of these tools will continue to increase in the future as more individuals and businesses recognize their potential and embrace them as a vital part of their workflows So let s continue to explore the world of no code tools and discover new and innovative ways to simplify our work and increase our productivity Follow me on Twitter and Instagram for regular updates on the latest AI tools and techniques and to never miss any useful information like this again Are you tired of the daily commute and ready to take your career to the next level with a remote job Look no further The Remote Job Hunter s Handbook is here to guide you through the process of finding and landing your dream work from home opportunity With practical tips and real life examples this ebook covers everything you need to know about the remote job search including how to Identify the best remote job opportunities for your skills and experienceTailor your resume and cover letter for a remote job applicationNetwork and connect with remote employersPrepare for and ace virtual interviewsOnboard and thrive in your new remote roleDon t miss out on this valuable resource for anyone looking to join the growing number of professionals working remotely Get your copy of The Remote Job Hunter s Handbook today only on Gumroad |
2023-02-24 11:00:43 |
Apple |
AppleInsider - Frontpage News |
Apple MR headset may be delayed by software problems |
https://appleinsider.com/articles/23/02/24/apple-mr-headset-may-be-delayed-by-software-problems?utm_medium=rss
|
Apple MR headset may be delayed by software problemsAnalyst Ming Chi Kuo reports that Apple s Mixed Reality headset has slipped because of software development issues and fewer than may be made in all of Apple MR headset renderAs Kuo reports of changes in hardware development of the Apple MR headset he s now also saying that according to his sources there are software issues He has no details of what they are or their severity but it s sufficient to mean that shipping of the headset may be delayed Read more |
2023-02-24 11:59:14 |
Apple |
AppleInsider - Frontpage News |
Suppliers are backing away from Apple AR, says Kuo |
https://appleinsider.com/articles/23/02/24/suppliers-are-backing-away-from-apple-ar-says-kuo?utm_medium=rss
|
Suppliers are backing away from Apple AR says KuoWith news of Pegatron moving AR headset production to a subsidiary analyst Ming Chi Kuo says firms are gradually withdrawing from working with Apple AR Apple s headset could arrive at WWDCKuo has most recently predicted a spring launch for Apple s augmented reality AR or what is more often now being called mixed reality MR headset He s also at times predicted late and the typically accurate analyst was once consistently predicting Read more |
2023-02-24 11:39:58 |
Apple |
AppleInsider - Frontpage News |
Pan's Snap Filter for iPhone 14 review: MagSafe makes physical filters a snap |
https://appleinsider.com/articles/23/02/24/pans-snap-filter-for-iphone-14-review-magsafe-makes-physical-filters-a-snap?utm_medium=rss
|
Pan x s Snap Filter for iPhone review MagSafe makes physical filters a snapPan s Snap Filter for the iPhone Pro Max brings high quality physical filters to the camera easily through MagSafe ーwith one big caveat Pan s Snap FilterMagSafe has been around since the iPhone was released in but it has been limited in scope to stands chargers and batteries until recently The newest MagSafe accessory category is photography related accessories Read more |
2023-02-24 11:22:46 |
海外TECH |
Engadget |
YouTube is testing a '1080p Premium' playback option |
https://www.engadget.com/youtube-testing-1080p-premium-playback-option-112835174.html?src=rss
|
YouTube is testing a x p Premium x playback optionSome YouTube viewers have reported seeing a new option for video quality in the website s drop down menu In addition to the basic p playback option they re also seeing another one labeled p Premium with a note beneath it that says it offers quot Enhanced bitrate quot A spokesperson told The Verge that the website is testing the new video quality which is currently available to quot a small group of YouTube Premium subscribers quot They described it as an quot enhanced bitrate version of p which provides more information per pixel that results in a higher quality viewing experience quot Also there s supposed to be no change to the quality of the standard p resolution which some people might not consider the good news YouTube deems it to be nbsp Based on several comments on the Reddit thread discussing the test viewers find the standard p resolution on the website to be poor in quality But a higher bitrate which is used as a measurement for the amount of video data transferred within a certain timeframe could mean getting better images without having to bump up the resolution As XDA Developers notes switching to K would give users access to better and sharper looking videos but they d have to stream a much bigger file that could cost them more or eat up more of their data allowance nbsp The enhanced p option is just a test feature at this point though and YouTube might not approve it for a wide rollout at all If it does make its way out of the experimental phase only viewers paying for YouTube Premium will be able to access it The subscription service will cost users a month for an individual account or a month for a family plan nbsp |
2023-02-24 11:28:35 |
医療系 |
医療介護 CBnews |
資格確認書の無償発行に異論なし-社保審・医療保険部会 |
https://www.cbnews.jp/news/entry/20230224203217
|
健康保険証 |
2023-02-24 20:45:00 |
医療系 |
医療介護 CBnews |
「かかりつけ医機能」政省令や通知もフォローへ-政府の全世代型社保構築会議 |
https://www.cbnews.jp/news/entry/20230224200231
|
厚生労働省 |
2023-02-24 20:15:00 |
医療系 |
医療介護 CBnews |
BA.5・BQ.1.1・BQ.1の割合が下がる-東京都がゲノム解析の結果公表 |
https://www.cbnews.jp/news/entry/20230224194805
|
新型コロナウイルス |
2023-02-24 20:10:00 |
ニュース |
BBC News - Home |
Ukraine war: King praises 'courage' of Ukraine on anniversary |
https://www.bbc.co.uk/news/uk-politics-64749277?at_medium=RSS&at_campaign=KARANGA
|
invasion |
2023-02-24 11:17:42 |
ニュース |
BBC News - Home |
Junior doctors to strike on 13 to 15 March |
https://www.bbc.co.uk/news/health-64758661?at_medium=RSS&at_campaign=KARANGA
|
marchthey |
2023-02-24 11:43:33 |
ニュース |
BBC News - Home |
Family launches legal action over mother's death in Tenerife crash |
https://www.bbc.co.uk/news/uk-england-derbyshire-64745928?at_medium=RSS&at_campaign=KARANGA
|
daughter |
2023-02-24 11:22:14 |
ニュース |
BBC News - Home |
Europa League last 16: Man Utd to play Real Betis, Arsenal face Sporting Lisbon |
https://www.bbc.co.uk/sport/football/64755066?at_medium=RSS&at_campaign=KARANGA
|
Europa League last Man Utd to play Real Betis Arsenal face Sporting LisbonManchester United will play Real Betis in the Europa League last after beating Barcelona while Arsenal face Sporting Lisbon |
2023-02-24 11:48:42 |
ニュース |
BBC News - Home |
Six Nations 2023: France v Scotland - Hamish Watson replaces Luke Crosbie |
https://www.bbc.co.uk/sport/rugby-union/64756630?at_medium=RSS&at_campaign=KARANGA
|
Six Nations France v Scotland Hamish Watson replaces Luke CrosbieFlanker Hamish Watson replaces Luke Crosbie in the only change to Scotland s line up for Sunday s Six Nations match against France |
2023-02-24 11:50:26 |
ニュース |
Newsweek |
火星探査車が30センチの鉄隕石を発見した |
https://www.newsweekjapan.jp/stories/world/2023/02/30-65.php
|
【画像】「キュリオシティ」の影からみた「カカオ」鉄隕石の多くは溶解した小惑星の核に由来する「キュリオシティ」は年月にも、アイオリス山の下部でゴルフボールくらいの大きさの球状の鉄隕石「エッグロック」を発見し、マストカメラと「ケムカムChemCam」でその姿を撮影している。 |
2023-02-24 20:45:15 |
コメント
コメントを投稿