ROBOT |
ロボスタ |
トヨタ 「歩く」をアシストするモビリティ「C+walk S」を発売 立ち乗り「C+walk T」、「C+pod」も一部改良 |
https://robotstart.info/2023/03/31/toyota-c_walk_s.html
|
|
2023-03-31 06:14:32 |
IT |
ITmedia 総合記事一覧 |
[ITmedia エンタープライズ] 仮想企業体でサプライチェーン全体の情報流通基盤を構築へ メタルワンら |
https://www.itmedia.co.jp/enterprise/articles/2303/31/news178.html
|
itmedia |
2023-03-31 15:30:00 |
IT |
ITmedia 総合記事一覧 |
[ITmedia PC USER] 「Microsoft Surface」が31日限定で最大25%オフ 仕事にも勉強にも趣味にも便利! |
https://www.itmedia.co.jp/pcuser/articles/2303/31/news148.html
|
amazon |
2023-03-31 15:15:00 |
IT |
ITmedia 総合記事一覧 |
[ITmedia PC USER] TeamGroup、PCIe Gen3対応のスタンダードM.2 NVMe SSD |
https://www.itmedia.co.jp/pcuser/articles/2303/31/news189.html
|
dqlcnand |
2023-03-31 15:10:00 |
IT |
情報システムリーダーのためのIT情報専門サイト IT Leaders |
DAL、データ連携ソフト新版「ACMS Apex V1.7」、通信ポートの利用状況を把握可能に | IT Leaders |
https://it.impress.co.jp/articles/-/24665
|
DAL、データ連携ソフト新版「ACMSApexV」、通信ポートの利用状況を把握可能にITLeadersデータ・アプリケーションDALは年月日、EDI電子データ交換ソフトウェア新版「ACMSApexV」を販売開始した。 |
2023-03-31 15:43:00 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
【React × TypeScript】ReduxのStateを更新時にリロードなしで画面描画する方法 |
https://qiita.com/curry__30/items/e1ae743dc994ccf26ad4
|
notion |
2023-03-31 15:44:12 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
BingAIに聞きながらページネーション機能を実装する(JavaScript編) |
https://qiita.com/fsd-masa/items/a488e58d7596d0eeb054
|
bingai |
2023-03-31 15:38:05 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
【ブックマークレット紹介】lazyloadを手軽に目視確認することができるツール |
https://qiita.com/MEMkudo/items/30700876c86b06474b7e
|
lazyload |
2023-03-31 15:17:05 |
Linux |
Ubuntuタグが付けられた新着投稿 - Qiita |
ChatGPT API で C# でコマンドラインで会話する (人格を設定) |
https://qiita.com/fsdg-adachi_h/items/8af59ab0a7a52724d064
|
ubuntu |
2023-03-31 15:59:41 |
AWS |
AWSタグが付けられた新着投稿 - Qiita |
AWS Fargate, ECSを用いたコンテナ運用設計、構築をしてみた。~ECRへのビルド~ |
https://qiita.com/bakuchiku/items/6ffd113fa869375d78ab
|
awsfargateecs |
2023-03-31 15:42:51 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
Docker Registry HTTP API V2で様々なコンテナレジストリからタグの一覧を取得する |
https://qiita.com/inajob/items/d4e13f85eb855e760e76
|
githubco |
2023-03-31 15:58:45 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
Dockerコンテナ間でSSH通信を行う |
https://qiita.com/haru_go/items/40afcabd6c4505ea6bd2
|
docker |
2023-03-31 15:06:52 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
docker コンテナで構築するGitlabでLDAP連携(OpenLDAP)する方法 |
https://qiita.com/v1tam1n/items/2b780fa7fb6ae133bf8b
|
eversionvgitlabgitlabeeee |
2023-03-31 15:03:03 |
技術ブログ |
Developers.IO |
「Application Composerのすすめ」というタイトルで登壇予定だった資料を公開します #reInvent |
https://dev.classmethod.jp/articles/regrowth-2022-app-composer/
|
applicationcomposer |
2023-03-31 06:57:53 |
技術ブログ |
Developers.IO |
AWS Chatbot から AWS ドキュメントやリソースを検索することが可能になりました! |
https://dev.classmethod.jp/articles/aws-chatbot-search-resources-content/
|
awschatbot |
2023-03-31 06:48:32 |
技術ブログ |
Developers.IO |
ペイロードサイズが2GBまで対応されたAmazon SNSのPythonライブラリ「Extended Client Library for Python」を試してみた |
https://dev.classmethod.jp/articles/tried-amazon-sns-python-extended-client-lib/
|
amazonsns |
2023-03-31 06:41:49 |
技術ブログ |
Developers.IO |
BrazeのAPIを使ってカスタムイベントをBigQueryにエクスポートする |
https://dev.classmethod.jp/articles/braze-customevents-bigquery/
|
bigquery |
2023-03-31 06:32:33 |
技術ブログ |
Developers.IO |
AWS Builder Labs (セルフペースラボ) の Introduction to Amazon Relational Database Service (RDS) (Windows) をやってみた |
https://dev.classmethod.jp/articles/aws-builder-labs-introduction-to-amazon-relational-database-service-rds-windows/
|
amazon |
2023-03-31 06:28:00 |
海外TECH |
DEV Community |
What’s wrong with HTML number input |
https://dev.to/titovmx/whats-wrong-with-html-number-input-f57
|
What s wrong with HTML number inputThe software development job is a daily problem solving process Developers love picking up sophisticated issues from the backlog and avoiding trivial ones However any task can turn into an adventure with a ton of surprises and elements of a detective job when the developer is investigating a problem and discovering reasons for unexpected behavior In this article I am sharing my personal experience in creating a configurable input to type numbers facing pitfalls along the way and eventually I will suggest a solution for this problem RequirementsLet s look at what actually had to be done The task is to add number input The context is that this input is a part of the application builder so users are creating their apps from a predefined set of components The input has the following requirements The component should be configurable Particularly it has three essential properties defaultValue number should be applied when the input is empty and not touched allowDecimals boolean should allow typing a decimal value increasing and decreasing by arrows should add and subtract accordingly and keep the decimal part If the prop is switched from true to false decimal value should be floored allowNegative boolean should allow typing negative values If the prop is false the minimum possible value is If the prop is switched from true to false negative value should be changed to The value can be changed with the help of arrow buttons arrow keys or manually typed Depending on chosen settings the input should not allow typing invalid numbers In other words allowed symbols are digits optionally separators and a sign The UI should be customized including arrow buttons Restrictions by the specificationThe first idea is to use a usual HTML input with a type number It already has min max and step properties that look exactly like what we need to customize behavior according to requirements However the HTML specification and browser implementations have a few peculiarities Setting a minimum value restricts values that a user can choose using up and down arrows but it is still necessary to handle and validate manual user input The same for typing decimal numbers Decimal separatorChrome works with both “ and “ Firefox and Safari require “ as a separator the value with a comma is considered to be invalid While English speaking countries use a decimal point as a preferred separator between integer and fractional parts many countries use a comma as a separator as well Most of the standards System of Units versions of ISO before ISO stipulate that both a point and a comma can be used equally From this perspective Chrome s behavior looks preferable and should be consistent among different browsers On type validationChrome filters prohibited values such as letters and punctuation marks except decimal separators Firefox and Safari allow typing any symbols Instead they mark the input as invalid and the value is an empty string Again the support of Chrome s behavior looks preferable because it helps a user doesn t provide opportunities for invalid input and eliminates the necessity of additional validation messages By default increment decrement of decimals works in a different way than what was expected It always tries to round a number and ignores a fractional part Let s say we have then adding one will result in not The step can have a value equal “any that makes increment decrement behavior as was expected However it doesn t work in the current versions of Firefox All the things above are actually reasonable Chrome s input looks almost perfect so far Despite Firefox and Safari providing worse UX they have lower usage and these shortages could be ignored for the first version The worst thing is when the customization of up and down arrows comes For this purpose input component was added along with a custom controls component export const NativeNumericInput value onValueChange gt const min allowDecimals useConfigContext const displayValue setDisplayValue useState const inputRef useRef const max Number MAX SAFE INTEGER const canIncrement value lt max const handleIncrement gt inputRef current stepUp const newValue inputRef current value onChange Number newValue const canDecrement value gt min const handleDecrement gt inputRef current stepDown const newValue inputRef current value onChange Number newValue const handleValueChange e gt const newValue e target value setDisplayValue newValue if newValue onValueChange null return onValueChange Number newValue return lt div className native input container gt lt label htmlFor native input gt Native Input lt label gt lt br gt lt input ref inputRef type number id native input min min step allowDecimals any value displayValue className input with custom controls onChange handleValueChange gt lt NumericInputControls canIncrement canIncrement canDecrement canDecrement onIncrement handleIncrement onDecrement handleDecrement gt lt div gt const NumericInputControls canIncrement canDecrement onIncrement onDecrement gt return lt div className numeric input controls gt lt button onClick onIncrement disabled canIncrement gt lt button gt lt button onClick onDecrement disabled canDecrement gt lt button gt lt div gt The input component receives value as a prop min property from the configuration which is if allowNegative false and set max to define when the buttons should be disabled NumericInputControls is just a presentation component The increment and decrement handlers use stepUp and stepDown methods respectively It works fine for integers and doesn t work for decimals The reason is that value of the step attribute is any and these methods throw an error INVALID STATE ERR It is happening because their internal behavior multiplies the step value by n where n is an argument of the function whose default value is This leads us to write our own implementation of increment and decrement functions Also it means that buttons will work the same way in all browsers including Firefox But the keyboard events for ArrowDown and ArrowUp are still based on the native implementation of number input Considering the fact that the benefits of specific input are not used anymore it appears that rewriting the component with a standard text input is not much harder but allows to implement of consistent behavior for all necessary features on type validation decimal separators increment and decrement for decimals Solution based on text inputLet s first check how increment and decrement functions changed const handleIncrement gt const newValue preciseMathSum value defaultValue handleControlsValueChange Math min max newValue const handleDecrement gt const newValue preciseMathSubtract value defaultValue handleControlsValueChange Math max min newValue const handleControlsValueChange value gt setDisplayValue value toString onValueChange value There are methods preciseMathSum and preciseMathSubtract to solve a floating number precision issue so fraction part length will be kept and expected Also the usage of Math min and Math max helps to avoid exiting the range of allowed values The minimum value depends on allowNegative setting so it is either or Number MIN SAFE INTEGER The maximum allows operating with numbers no more than Number MAX SAFE INTEGER accordingly The next step is to return the keyboard support that we lost by switching off the number input behavior useEffect gt const handleKeydown e gt if e code ArrowDown amp amp canDecrement handleDecrement e preventDefault else if e code ArrowUp amp amp canIncrement handleIncrement e preventDefault inputRef current addEventListener keydown handleKeydown return gt inputRef current removeEventListener keydown handleKeydown canIncrement canDecrement It checks for the possibility to change the input and does the same increment and decrement operations on the keydown event only for two arrows The last step is to verify that the user is not allowed to put invalid values into an input These restrictions are different depending on the component settings The user is able to type “ “ and “ only if negative and decimal numbers are allowed const handleValueChange e gt const newValue e target value if isValidNumberInput newValue allowDecimals allowNegative return setDisplayValue newValue if newValue onValueChange null return const newValueWithDecimalPoint newValue replace const newNumericValue Number newValueWithDecimalPoint if newValueWithDecimalPoint amp amp Number isNaN newNumericValue onValueChange newNumericValue All the logic is encapsulated in isValidNumberInput utility function It checks an input to be either a valid number or unfinished input which could become a valid number Internally it uses pattern matching and checking edge cases also considering allowDecimals and allowNegative values It would be more clear with examples isValidNumberInput allowDecimals false allowNegative false returns falseisValidNumberInput allowDecimals false allowNegative true returns trueisValidNumberInput allowDecimals false allowNegative true returns trueisValidNumberInput allowDecimals false allowNegative true returns falseisValidNumberInput allowDecimals false allowNegative false returns falseisValidNumberInput allowDecimals true allowNegative false returns trueisValidNumberInput allowDecimals true allowNegative false returns trueisValidNumberInput allowDecimals true allowNegative false returns falseAfter this verification the input will be converted to a number and committed if possible If it is not a number yet it is only set as a display value for controlled input the actual value is kept the same Note alternatively it is possible to build one regex to check the input for necessary conditions and even add it as a pattern prop to the input However I personally prefer to have simpler regex and additional conditions that could be more readable Also putting this logic in the method allows us to cover it with unit tests ConclusionThere is a repository with the demonstration code that is also published with Vercel if you want to play around with this case Despite the fact that I had to implement this task twice it was a nice exercise and interesting diving into the HTML specification I hope you also enjoyed this small journey and found something useful for you |
2023-03-31 06:39:03 |
海外TECH |
CodeProject Latest Articles |
Solving differential equations - General theory and numerical integration |
https://www.codeproject.com/Articles/5354504/Solving-differential-equations-General-theory-and
|
differential |
2023-03-31 06:46:00 |
医療系 |
医療介護 CBnews |
陽性者増は「変異株置き換わりや接触機会増が影響」-東京都コロナモニタリング会議の専門家意見 |
https://www.cbnews.jp/news/entry/20230331153208
|
新型コロナウイルス |
2023-03-31 15:45:00 |
金融 |
JPX マーケットニュース |
[東証]新規上場の承認(ETF):NEXT FUNDS ブルームバーグ・ドイツ国債(7-10年)インデックス(為替ヘッジあり)連動型上場投信他1銘柄(野村アセットマネジメント) |
https://www.jpx.co.jp/news/1070/20230331-01.html
|
野村アセットマネジメント |
2023-03-31 15:30:00 |
金融 |
JPX マーケットニュース |
[東証]新規上場銘柄の売買に関する規制措置:(株)Fusic |
https://www.jpx.co.jp/news/1030/20230331-02.html
|
fusic |
2023-03-31 15:15:00 |
金融 |
JPX マーケットニュース |
[東証]制限値幅の拡大:1銘柄 |
https://www.jpx.co.jp/news/1030/20230331-01.html
|
東証 |
2023-03-31 15:15:00 |
金融 |
JPX マーケットニュース |
[東証]新規上場(2日目)の初値決定前の気配運用について:(株)Fusic |
https://www.jpx.co.jp/news/1031/20230331-01.html
|
fusic |
2023-03-31 15:15:00 |
金融 |
JPX マーケットニュース |
[OSE]特別清算数値(2023年3月限):FTSE中国50 |
https://www.jpx.co.jp/markets/derivatives/special-quotation/
|
特別清算 |
2023-03-31 15:15:00 |
金融 |
JPX マーケットニュース |
[OSE]特別清算数値(2023年3月第5週限):日経225 |
https://www.jpx.co.jp/markets/derivatives/special-quotation/
|
特別清算 |
2023-03-31 15:15:00 |
金融 |
JPX マーケットニュース |
[東証]上場廃止等の決定:(株)テクノアソシエ |
https://www.jpx.co.jp/news/1023/20230331-13.html
|
上場廃止 |
2023-03-31 15:10:00 |
金融 |
JPX マーケットニュース |
[東証]上場廃止等の決定:日新電機(株) |
https://www.jpx.co.jp/news/1023/20230331-12.html
|
上場廃止 |
2023-03-31 15:10:00 |
金融 |
日本銀行:RSS |
(金研ニュースレター)金研設立40周年記念対談「イノベーションセンターとしての金研」第1回 |
http://www.boj.or.jp/about/release_2023/rel230331b.htm
|
設立 |
2023-03-31 16:00:00 |
海外ニュース |
Japan Times latest articles |
A’s rally past Angels to spoil Shohei Ohtani’s strong Opening Day outing |
https://www.japantimes.co.jp/sports/2023/03/31/baseball/mlb/shohei-ohtani-angels-athletics-march-31-2023-loss-mlb/
|
A s rally past Angels to spoil Shohei Ohtani s strong Opening Day outingOhtani didn t get a decision in the game despite leaving with a lead after six innings during which he limited the A s to two |
2023-03-31 15:16:37 |
海外ニュース |
Japan Times latest articles |
Fury and sadness in Indonesia after FIFA pulls Under-20 World Cup |
https://www.japantimes.co.jp/sports/2023/03/31/soccer/indonesia-fifa-under-20-world-cup/
|
israel |
2023-03-31 15:06:42 |
ニュース |
BBC News - Home |
Fire services: Shocking bullying and abuse widespread, report says |
https://www.bbc.co.uk/news/uk-65128073?at_medium=RSS&at_campaign=KARANGA
|
iceberg |
2023-03-31 06:36:06 |
ニュース |
BBC News - Home |
UK economy grew at the end of last year |
https://www.bbc.co.uk/news/business-65128313?at_medium=RSS&at_campaign=KARANGA
|
figures |
2023-03-31 06:53:00 |
ニュース |
BBC News - Home |
Formula 1: Fernando Alonso tops rain-affected Australian GP second practice |
https://www.bbc.co.uk/sport/formula1/65134154?at_medium=RSS&at_campaign=KARANGA
|
Formula Fernando Alonso tops rain affected Australian GP second practiceFernando Alonso sets the early pace in second practice at the Australian Grand Prix before rain affects the majority of the session |
2023-03-31 06:13:00 |
ニュース |
BBC News - Home |
Anthony Joshua v Jermaine Franklin: Does Briton need to revert back to his old, ruthless self? |
https://www.bbc.co.uk/sport/boxing/65115365?at_medium=RSS&at_campaign=KARANGA
|
Anthony Joshua v Jermaine Franklin Does Briton need to revert back to his old ruthless self Anthony Joshua returns to the O Arena to face Jermaine Franklin on Saturday With his career on the line does the British heavyweight need to revert back to his old ruthless self |
2023-03-31 06:47:11 |
ニュース |
BBC News - Home |
Roberto de Zerbi: Why Brighton boss is set to be 'one of the very best' |
https://www.bbc.co.uk/sport/football/65128647?at_medium=RSS&at_campaign=KARANGA
|
europe |
2023-03-31 06:03:08 |
ビジネス |
東洋経済オンライン |
実例で紹介「職場にいる嫌な上司」への撃退法2つ 「手柄は自分、ミスは部下」にどう対抗するか? | リーダーシップ・教養・資格・スキル | 東洋経済オンライン |
https://toyokeizai.net/articles/-/658687?utm_source=rss&utm_medium=http&utm_campaign=link_back
|
中小企業 |
2023-03-31 15:30:00 |
ニュース |
Newsweek |
ハリー・スタイルズ、激写されたエムラタとの路チューに「キス下手」「ぎこちない」とファンの声 |
https://www.newsweekjapan.jp/stories/culture/2023/03/post-101257.php
|
|
2023-03-31 15:20:00 |
マーケティング |
MarkeZine |
高校生のドラマ視聴、テレビ放送とTVerが上位に/橋本環奈、浜辺美波に注目【LINEリサーチ調査】 |
http://markezine.jp/article/detail/41830
|
橋本環奈 |
2023-03-31 15:15:00 |
IT |
週刊アスキー |
箱庭SLG『プリティ・プリンセス マジカルガーデンアイランド』が7月6日に発売決定 |
https://weekly.ascii.jp/elem/000/004/131/4131004/
|
nintendo |
2023-03-31 15:50:00 |
IT |
週刊アスキー |
美を追求した楊貴妃好みのメニューが揃い踏み! チャイニーズアフタヌーンティー「シノワ・プランセス」 |
https://weekly.ascii.jp/elem/000/004/130/4130969/
|
中国料理 |
2023-03-31 15:40:00 |
IT |
週刊アスキー |
アップル「iPhone 15 Pro」非物理式ボタン、電源オフ時でも作動か |
https://weekly.ascii.jp/elem/000/004/130/4130900/
|
iphonepro |
2023-03-31 15:30:00 |
IT |
週刊アスキー |
お花見シーズン限定の桜メニュー! Eggs ’n Things、「桜パンケーキ」「あんバタークレープ」4月17日まで |
https://weekly.ascii.jp/elem/000/004/130/4130968/
|
eggsnthings |
2023-03-31 15:30:00 |
IT |
週刊アスキー |
「Xbox Elite ワイヤレス コントローラー シリーズ 2 Core」の新色が本日発売! |
https://weekly.ascii.jp/elem/000/004/130/4130973/
|
xboxelite |
2023-03-31 15:20:00 |
IT |
週刊アスキー |
KDDI、新規契約などの事務手数料を3300円→3850円に値上げ 横並びから外れる |
https://weekly.ascii.jp/elem/000/004/131/4131003/
|
auuqmobilepovo |
2023-03-31 15:20:00 |
マーケティング |
AdverTimes |
ハラミちゃんと山寺宏一が「高速」で行動!?包装資材商社が初めてのテレビCM |
https://www.advertimes.com/20230331/article415422/
|
包装資材 |
2023-03-31 06:30:50 |
マーケティング |
AdverTimes |
自治体「初」のAI職員採用など話題化の裏にはエンタメ性と対応力 |
https://www.advertimes.com/20230331/article415305/
|
鳥取県 |
2023-03-31 06:04:05 |
コメント
コメントを投稿