投稿時間:2022-01-10 20:34:07 RSSフィード2022-01-10 20:00 分まとめ(33件)

カテゴリー等 サイト名等 記事タイトル・トレンドワード等 リンクURL 頻出ワード・要約等/検索ボリューム 登録日
TECH Engadget Japanese 組み立て一切不要、足枠をつけるだけ。頑丈でワイルドなアイアン焚き火台 https://japanese.engadget.com/iron-firepit-101553505.html 足枠をつけるだけで初心者でも簡単に使いこなせる薪を燃やして料理をしたり、焚き火を観賞したりしてキャンプを楽しめるシンプルなデザインでインスタ映えも狙えるこの焚き火台で暖をとったり、揺らめく炎を眺めたり、家族や友人とキャンプを楽しんでください。 2022-01-10 10:15:53
python Pythonタグが付けられた新着投稿 - Qiita Python WebフレームワークPlotly Dashで資産管理アプリを作成 https://qiita.com/momiji777/items/b830735fdf4fcc28684e PythonWebフレームワークPlotlyDashで資産管理アプリを作成DashとはDashは、データ可視化インターフェースを構築するためのオープンソースフレームワークです。 2022-01-10 19:15:15
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) 自然言語処理で長文を扱う方法 https://teratail.com/questions/377502?rss=all 自然言語処理 2022-01-10 19:52:41
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) sliderがうまく実装できない https://teratail.com/questions/377501?rss=all sliderがうまく実装できない前提・実現したいこと上記のプラグイン方法に乗っ取り、サイトに乗っ取りスライダーを実装したのですが、backgroundに画像が表示されません。 2022-01-10 19:50:20
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) kaggleで機会学習modelを学習させている時にタイムアウトする https://teratail.com/questions/377500?rss=all kaggleで機会学習modelを学習させている時にタイムアウトするkaggleってGPUを使っても計算に数時間かかる学習ってありますよね。 2022-01-10 19:47:59
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) input要素に入れた数字を表示させるためには https://teratail.com/questions/377499?rss=all input要素に入れた数字を表示させるためには前提・実現したいことpythonで財務諸表を自動で分析できるようなシステムを作っています。 2022-01-10 19:45:44
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) pyxel editerを開きたい https://teratail.com/questions/377498?rss=all pyxelediterを開きたいpyxelnbspediterを開きたいanaconda環境のpythonでpyxelnbspediterを利用したいのですが、ターミナルから実行しようとしても下記のメッセージが出てきて実行できません。 2022-01-10 19:42:23
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) Seleniumで、複数あるクラスの要素を取得しようとするとNoSuchElementExceptionまたは要素数0 https://teratail.com/questions/377497?rss=all Seleniumで、複数あるクラスの要素を取得しようとするとNoSuchElementExceptionまたは要素数前提・実現したいことPythonでのWebスクレイピングをしようとしています。 2022-01-10 19:22:02
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) 分散が使用できないので、困っています。悲😢 https://teratail.com/questions/377496?rss=all 分散が使用できないので、困っています。 2022-01-10 19:16:23
Program [全てのタグ]の新着質問一覧|teratail(テラテイル) ユーザーがRegisterをクリックし新規登録を行なったら、自動的に空のプロフィールが作られるようにしたい。 https://teratail.com/questions/377495?rss=all ユーザーがRegisterをクリックし新規登録を行なったら、自動的に空のプロフィールが作られるようにしたい。 2022-01-10 19:02:56
Ruby Rubyタグが付けられた新着投稿 - Qiita Ruby &= https://qiita.com/ktsgmr/items/2d75f5781cab4dcfbfe9 2022-01-10 19:23:00
Linux Ubuntuタグが付けられた新着投稿 - Qiita WindowsでLinux環境を整えてみた https://qiita.com/One-11/items/5ec7f408aab67d7bc1ce インストール中に追加タスクの選択が求められたときは、コードコマンドを使用してWSLでフォルダーを簡単に開くことができるように、PATHへの追加オプションがオンになっていることを確認してください。 2022-01-10 19:32:55
AWS AWSタグが付けられた新着投稿 - Qiita AWS ソリューションアーキテクト対策 https://qiita.com/tatsuya11bbs/items/ceab7976a1651e342fe8 フェイルオーバーするとRDSはDBインスタンスのCNAMEレコードをスタンバイから切り替えて、新しいプライマリに昇格【RDS暗号化】RDSの暗号化されたDBインスタンスDBでは、基盤となるストレージに保存されているデータが暗号化され、自動化されたバックアップ、リードレプリカ、スナップショットも同様に暗号化される【RDSのスケールアップ】インスタンスサイズの変更インスタンスタイプの変更ストレージタイプの変更【リードレプリカ】RDSにおいてDB読み取り処理をオフロードすることできる機能読み込み専用マスターの複製DBマスターの読み取りにかかる負荷を軽減でき、これによりマスターのパフォーマンスが向上【レプリケーションラグ】リードレプリカは非同期にレプリケートレプリケーションデータが遅れることが多く、最新のトランザクションのいくつかを表示できないことあり【IAMデータベース認証】通常のパスワードを使ったデータベースの認証の代わりが権限を付与したIAMロールを用いることで認証を行う【RDSプロキシ】アプリケーションとRDSの間に配置され、ProxyとしてDBへの接続を効率的に管理高速フェイルオーバーによる可用性の向上Lambdaを利用してRDSのデータベースnに接続する際は、RDSプロキシをエンドポイントの代わりに利用して、接続することでコネクションを効率的に実行することができる「接続が多すぎる」エラーが頻繁に発生するDBインスタンスやクラスターは、プロキシ経由が良いLambdagtRDSProxygtRDSGood【ストレージオートスケーリング】実際にストレージが少なくなって来ると自動でストレージがサイズアップしてくれるようになり、実際に使う分αだけ支払えば良い️【読み取りリクエストが急増した時の対応】リードレプリカ増設コスト低いインスタンスタイプの性能変更キャッシュレイヤーでElastiCacheコスト高Aurora大規模なクエリ処理が発生するRDBクラウド専用の分散型のRDSMySQLと比べて最大倍、標準的なPostgreSQLと比べて最大で倍高速商用DBと同等のセキュリティ、可用性とかをで実現最大のリードレプリカを利用した高速読み込みが可能AuroraはクラスターがつのAZに分散されて構成され、さらにRDSと同様にマルチAZのフェールオーバー構成を有効化することが可能フェールオーバーの実行時間はAuroraレプリカを作成している場合はs以内に完了【AuroraMultiMaster】全てのDBインスタンスで書き込みオペレーションを実行️DBの書き込み操作のためダウンタイムを許容できない時使用【AuroraServerless】自動でスケールして、アクセスがなければ勝手に停止するAWSのMySQLPostgreSQLインフラ【AuroraGlobalDatabase】Auroraクラスターを複数のリージョンにまたがって構築AWSリージョン障害時の災害復旧実現世界中からデータベースを高速に読み書き実現プライマリ・リージョンから別リージョンへ低レイテンシーにデータがレプリケート書き込み転送機能有効にするとセカンダリリージョンでは読み込みだけでなく書き込みも可能DynamoDBマネージドのNoSQLデータベースサービスデータがつのAZに分散して格納されるため耐久性が高く、格納容量に上限がないまた、keyvalue形式で簡易に操作できるかつレイテンシーが低いため、キャッシュやwebセッションの格納先としても利用小規模データを保存、処理するためにはNoSQLDBを利用することが最適API経由操作キーに対するvalueのCRUD操作は可能、ただしJOINTransactionCommitrollbackは不可ReadWriteが多いシステムにgoodWEBセッション管理Sオブジェクトのメタデータの保存に使用データサイズは無制限、つのデータはKBに制限【DAXDynamoDBAccelerator】DynanoDBに特化したインメモリキャッシュ→DynamoDBテーブルへの数ミリ秒のレイテンシーを数マイクロ秒に短縮DAXは、開発者がキャッシュの無効化、データ入力、クラスターの管理を実施する必要なし【DynamoDBストリーム】テーブル上の作成、更新、削除の時に別のAWSサービスほぼlambdaをトリガーとする機能トリガーを利用してLambdaを実行するなどDynamoDBテーブルに保存された項目の追加・変更・削除の発生時の履歴をキャプチャできる機能データの保存過去時間以内のデータ変更の履歴を保存し、時間を経過すると削除されるデータ容量はマネージド型で自動的に管理データ保存の順番操作が実施された順番に応じてデータはシリアライズされる【DynamoDBグローバルテーブル】ほかのリージョンにテーブルのレプリカ作成グローバルテーブルを作成するためにはまずつのDynamoDBテーブルを作成してストリームを有効にする【DynamoDBAutoScaling】テーブルとインデックスを監視してアプリケーショントラフィックの変化に応じて、自動的にスループットを調整DynamoDBテーブルを作成するとAutoScalingがデフォルトで有効CloudWatchのモニタリングに基づいてトラフィックパターンに応じてプロビジョンスループット性能をユーザーにかわって動的に調整【整合性モデル】結果整合性強い整合性【料金】キャパシティユニットreadwriteストレージ容量データ転送量ElastiCache大量かつミリ秒未満の応答時間のデータを扱うアプリケーションのインメモリデータストアとして活用キャッシュエンジンは、RedisとMemcachedが選択可能ユーザー行動データの高速な処理には最適なDBノード、シャード、クラスタの単位が存在するユースケースセッション管理メタデータの蓄積、ソーシャルメディアのデータ分析、DBキャッシュ処理、PubSub処理、ランキング、レコメンデーションノードNodeキャッシュサーバで、ElastiCacheの最小単位選択したノードタイプによって性能メモリやCPUなどが異なるシャードShardノードをまとめるグループつのシャードにプライマリノード個と、リードレプリカ読み込み専用個持つクラスタシャードをまとめるグループクラスタ毎にキャッシュエンジンを選択可能クラスタモードは有効と無効を選択可能インメモリキャッシュパターンCDNのデータベース版頻繁にアクセスするデータをDBではなくインメモリキャッシュに格納することで、DBの負荷を軽減する設計パターンRedisMemcached・高速に値をReadWriteできるインメモリキャッシュ型DB・シングルスレッド・スナップショット機能がある・データを永続化できる・高速に値をReadWriteできるインメモリキャッシュ型DB・マルチスレッド・スナップショット機能がない・データを永続化できない・フェイルオーバーや復元できない・複雑なデータ型が必要な時・永続化が必要な時・フェールオーバーが必要な時・pubsubが必要な時・シンプルなデータ型だけで充分な時・マルチスレッドが必要な時・バックアップと復元の機能がない・キーストアに永続性がないRedisインターネットスケールのリアルタイムアプリケーションにミリ秒未満のレイテンシーで動作する超高速インメモリデータストアRedisゲームリーダボード、機械学習、メディアストリーミング、リアルタイム分析、セッションストアRedisをDynamoDBと統合することもできるが、DynamoDBにフィットしているDAXを使うことに比べるとはるかに複雑ElastiCacheforMemcachedはSの静的コンテンツを配信するためのキャッシュとしては使用できない移行関連①AWSApplicationDiscoveryServiceADS移行計画を支援するサービス②AWSDatabaseMigrationServiceDMSデータベースを短期間で安全にAWSに移行することが可能DB移行ツール③AWSServerMigrationServiceSMS仮想マシンの移行サービスVMwareHyperVAzure上の仮想サーバーをAMIとしてAWSに移行手間がかからない無料④AWSSchemaConversionToolあるDBエンジンにおける既存のDBスキーマを、別のDBエンジンのスキーマに変換するツールLB【ConnectionDraining】バックエンドのサーバーがELBから切り離されてもセッションを持ち続ける機能バックエンドのECを登録解除しても処理中のリクエストが終わるまで一定期間待つソフトウェアのメンテナンスなどで使える機能既存の接続を開いたまま、登録解除または異常なインスタンスへのELBのリクエスト送信を停止することができるこれにより、LBは登録解除または異常なインスタンスに対して行われた実行中のリクエストを完了するトラフィック処理を実施LBが接続を維持する最大時間を指定sデフォルトはs【スティッキーセッション】セッションの維持を行う機能→クライアントからのリクエストを毎回同じインスタンスに転送する機能のことHTTPレスポンスにELBでCookieを埋め込んでそのCookieを基にバインド先のインスタンスを固定する送信先のECが障害によってダウンした場合は、セッションが途切れる問題が発生するのでELBによるスティッキーセッションは一時的に利用が良い【CrossZoneLoadBalancing】配下のECの負荷分散に応じて、複数のAzにまたがるECインスタンスに均等に負荷分散を行う各LBはすべてのAZの有効なインスタンスにリクエストを分散するこれによりクライアントのDNSキャッシュが効いていてもバックエンドのインスタンスには適切に負荷分散がかけられるALBでは常にクロスゾーンバランシングが有効になっている【ProxyProtocolプロキシプロトコル】HTTPでいうところのXForwadedforをHTTP以外で使いたい時のプロトコルEBSElasticBlockStoreECインスタンスに接続して利用できるブロックレベルのストレージOSから見えるストレージボリュームで、アプリケーションやユーザーデータなどを格納スナップショットでバックアップされSに保存、増分バックアップスナップショットはEBSの利用状況に関係なく、非同期に作成ストレージタイプ名称説明①汎用SSDGPGP・デフォルトのボリュームタイプ・安定したIO性能が利用できる・ストレージの読み書きに関しては課金されない②プロビジョンドIOPSSSDioioioblockexpress・汎用SSDよりも高いIO性能が求められるケース・複数のECへの接続が可能・ストレージ容量だけでなく指定したIOPS数に対しても課金されるため注意。 2022-01-10 19:23:37
AWS AWSタグが付けられた新着投稿 - Qiita AWS ALB パスベースルーティングを実装してみました。(EC2 + ALB + Apache) https://qiita.com/kuromame1020611/items/3e1ffc890bc8ade18da5 ホストパス転送先yamadatestlocalhogeまたはhogetargetgroupyamadatestlocalhogeまたはhogetargetgroupRoute、プライベートホストゾーン設定①AWS管理コンソールgtRoutegtホストゾーンgtホストゾーンの作成をクリックします。 2022-01-10 19:06:08
海外TECH DEV Community clay.css - micro CSS util for creating claymorphic UI https://dev.to/adrianbdesigns/claycss-micro-css-util-for-creating-claymorphic-ui-cmc clay css micro CSS util for creating claymorphic UI clay cssExtensible and configurable micro CSS util class and SASS mixin for adding claymorphism styles to your components Check out the repository and the demo page AboutClaymorphism is a fresh new concept The name was coined by MichałMalewicz and the designers are excited to explore the possibilities of this approach to UI design It features inflated fluffy D elements which look charming and introduce a much more vibrant look compared to the usual flat designs What sets claymorphism apart from neumorphism is that it floats above the background instead of being connected to it eliminating accessibility issues and design restrictions of the latter Installation CDN lt link rel stylesheet href gt NPMnpm i claymorphism cssyarn add claymorphism css ManualDownload and add the dist clay css or dist clay scss manually UsageThis is a minimal single class CSS util that applies only basic claymorphism styles BackgroundBorder radiusOne outset shadowTwo inset shadows lt div class clay gt Fluffy ipsum dolor sit amet consectetur lt div gt This CSS class allows you to easily change the claymorphic styles via CSS properies These changes and additional styles should be applied with the extending class lt div class clay card gt Fluffy ipsum dolor sit amet consectetur lt div gt card Modify clay css properties clay background fdd clay border radius px Extended styles color fff padding px Options CSS Variables clay background clay border radius clay shadow outset clay shadow inset primary clay shadow inset secondary SASS MixinSASS mixin allows you more flexibility in applying claymorphism styles to your components For example this way you can easily add styles to pseudo elements or pseudo selectors or use the mixin in other SASS mixins or functions import claymorphism css dist clay scss import include clay background value border radius value shadow outset value shadow inset primary value shadow inset secondary value Demo pageCheck out the demo page 2022-01-10 10:55:33
海外TECH DEV Community How to set up Vue with Tailwind CSS and Flowbite https://dev.to/themesberg/how-to-set-up-vue-with-tailwind-css-and-flowbite-3g4n How to set up Vue with Tailwind CSS and FlowbiteVue js is a popular front end library used by websites such as Behance Nintendo Gitlab Font Awesome and more that you can use to build modern web applications By installing Tailwind CSS and Flowbite you can build your project even faster using the utility first approach from Tailwind and the interactive components from Flowbite Install Tailwind CSS with Vue jsFollow the next steps to install Tailwind CSS and Flowbite with Vue and Vite Create a new Vite project running the following commands in your terminal npm init vite my projectcd my projectInstall Tailwind CSS npm install D tailwindcss postcss autoprefixernpx tailwindcss init pConfigure the template paths inside the tailwind config js file module exports content index html src vue js ts jsx tsx theme extend plugins Create a new src index css file and add the Tailwind directives tailwind base tailwind components tailwind utilities Import the newly created CSS file inside your src main js file import createApp from vue import App from App vue add thisimport index css createApp App mount app Install Flowbite by running the following command in your terminal npm install themesberg flowbiteRequire Flowbite as a plugin inside your tailwind config js file module exports plugins require themesberg flowbite plugin Import the Flowbite JavaScript file inside your main src main js file import themesberg flowbite Now you can start the local server by running npm run dev in your terminal Flowbite components in Vue jsYou can start using all of the components from Flowbite in your Vue js project as long as you ve properly followed the instructions above and installed both Tailwind CSS and Flowbite The interactive elements such as the dropdowns modals and tooltips will work based on the settings that you apply using the data attributes Here s an example of a modal component that you can use by adding inside your App vue template file lt template gt lt img alt Vue logo src assets logo png gt lt HelloWorld msg Hello Vue Vite gt lt Modal toggle gt lt button class block text white bg blue hover bg blue focus ring focus ring blue font medium rounded lg text sm px py text center dark bg blue dark hover bg blue dark focus ring blue type button data modal toggle default modal gt Toggle modal lt button gt lt Main modal gt lt div id default modal aria hidden true class hidden overflow y auto overflow x hidden fixed right left top z justify center items center h modal md h full md inset gt lt div class relative px w full max w xl h full md h auto gt lt Modal content gt lt div class relative bg white rounded lg shadow dark bg gray gt lt Modal header gt lt div class flex justify between items start p rounded t border b dark border gray gt lt h class text xl font semibold text gray lg text xl dark text white gt Terms of Service lt h gt lt button type button class text gray bg transparent hover bg gray hover text gray rounded lg text sm p ml auto inline flex items center dark hover bg gray dark hover text white data modal toggle default modal gt lt svg class w h fill currentColor viewBox xmlns gt lt path fill rule evenodd d M a L l a L l a L l a L a z clip rule evenodd gt lt path gt lt svg gt lt button gt lt div gt lt Modal body gt lt div class p space y gt lt p class text base leading relaxed text gray dark text gray gt With less than a month to go before the European Union enacts new consumer privacy laws for its citizens companies around the world are updating their terms of service agreements to comply lt p gt lt p class text base leading relaxed text gray dark text gray gt The European Union s General Data Protection Regulation G D P R goes into effect on May and is meant to ensure a common set of data rights in the European Union It requires organizations to notify users as soon as possible of high risk data breaches that could personally affect them lt p gt lt div gt lt Modal footer gt lt div class flex items center p space x rounded b border t border gray dark border gray gt lt button data modal toggle default modal type button class text white bg blue hover bg blue focus ring focus ring blue font medium rounded lg text sm px py text center dark bg blue dark hover bg blue dark focus ring blue gt I accept lt button gt lt button data modal toggle default modal type button class text gray bg white hover bg gray focus ring focus ring gray rounded lg border border gray text sm font medium px py hover text gray focus z dark bg gray dark text gray dark border gray dark hover text white dark hover bg gray gt Decline lt button gt lt div gt lt div gt lt div gt lt div gt lt template gt 2022-01-10 10:30:16
海外TECH DEV Community AWS Step Functions - Refactor to native integrations with AWS API https://dev.to/aws-builders/aws-step-functions-refactor-to-native-integrations-with-aws-api-2028 AWS Step Functions Refactor to native integrations with AWS APIIn this article I will describe how I got rid of two Lambda functions in my Data Lake loading process All thanks to the change announced in October Step Functions received native API integrations with over AWS services Yep I call them native API integrations because for me it s cloud native low code solution AWS refers to them as AWS SDK Service Integrations which is also fine Anyhow I must admit that I waited for this particular update since summer What has changed in Step Functions Some prelude to the update has been available for a long time I m talking about this new way of calling Lambda functions from Step Functions The difference is only visible in a language defining the machine In the old configuration we defined a Lambda call like that StateName Type Task Resource GetAtt functionName Arnand in the new way like that StateName Type Task Resource arn aws states lambda invoke Parameters FunctionName GetAtt functionName Arn Payload At first glance you can notice differences Instead of your own resource we use a universal client in the Resource field and provide the function name as a parameter This change to us users had no significance both excerpts are equivalent However I m eager to speculate that it was a milestone step on the way to providing the native integration of Step Functions with other AWS services via API From now on we have access to different integrations that we call similarly StateName Type Task Resource arn aws states aws sdk lt service gt lt action gt Parameters ParametrApi value ParametrApi valueAWS SDK feels like home In this way you can copy a file from S arn aws states aws sdk s copyObject run the EC instance arn aws states aws sdk ec startInstances and so on There are myriad possibilities But how much does it cost And here is the biggest deal it costs nothing I repeat it s free I m talking about the SDK API call if it is free and most of them are For the state machine and the operation of the invoked service of course we pay as we used to be If it does not cost anything then it is worth replacing Lambda functions that invoke other services with native integration Thanks to that we re going to save on Lambda cost but also in terms of implementation developer s time Because as always No code is the best code And how much does it actually take to refactor The over mentioned developer s time savings I must admit was not so obvious When I refactored two functions to native integrations it took me hours A lot of time but we all know that That s how it looked in my case because AWS API does not response with exactly what I needed at the moment Variable names returned by AWS API must be processed which is difficult as there is no Lambda function at your disposal And I didn t read the documentation RefactoringIn my case I changed the left implementation to the right one I remind you the entire process loads data to a Data Lake hence references to the Glue service In your case this may be any other AWS service The entire state machine is called with a Payload where the Glue Crawler name is given The former Lambda function expected a variable named crawlerName while API method named StartCrawler requires Name That was not so difficult to solve StartCrawler Type Task Resource arn aws states aws sdk glue startCrawler Parameters Name crawlerNameHowever a big problem for me was to embrace the output data from this step because startCrawler does not return any data and by default Step Functions relays the current result to the next step Two steps further GetCrawler will need a Crawler name to check a condition Has Crawler finished running I solved the problem by reaching for a global context of the state machine and using the ResultSelector filter to build my own object at the state exit StartCrawler Type Task Resource arn aws states aws sdk glue startCrawler Parameters Name crawlerName ResultSelector crawlerName Execution Input crawlerNameThis is just an illustrative example and does not include error handling and mapping them to the exit state That mapping realized what I required an exit state with a variable crawlerName and proper value The next step was to get the current state of the Crawler using the GetCrawler method in the loop that lasts until it is done I used a similar solution here as before The value of state is used by the condition Has Crawler finished running in a loop and crawlerName is used as an input parameter for the next state GetCrawler Crawler State comes from the results returned by the API getCrawler ResultSelector crawlerName Execution Input crawlerName state Crawler State Was it worth changing Of course it was Firstly no code is the best code Here we replace the custom Lambda with declarative definition of states This means that any person in the world knowing Step Functions will understand how it works without deep diving into our beautiful Lambda code Secondly practice makes perfect Juggling Mapping values on the output is only difficult at the beginning When you figure out how this works you get more efficient in writing them I hope this article will help you avoid many problems I have encountered Thirdly native integrations are so versatile that from now on practically every state machine you will use them This means that the investment in mastering them will definitely pay off in the future projects Fourthly the declarative code of the states is easier to reuse copy paste than the Lambda code 2022-01-10 10:18:08
海外TECH DEV Community JavaScript Framework: What it is and Why It is the best for Web Development https://dev.to/positiwise/javascript-framework-what-it-is-and-why-it-is-the-best-for-web-development-48je JavaScript Framework What it is and Why It is the best for Web DevelopmentWith the immense growth seen in users trust with online platforms several organizations are moving to establish their brand over the internet The very first thought in every individual s mind is to develop a website or a web app as it is the most reliable and appropriate way to check whether their enterprise can adapt to the change or not A primary reason for selecting the website as the first choice is that whenever anyone wants to know about your company and offered services people prefer to navigate web pages rather than download an application To build an attractive and robust website the markup language is used to construct its structure and CSS is preferred to add some color effects to the website But the main issue occurs when the expected user engagement rate is not achieved Further JavaScript is considered the most accurate technology because it can add responsiveness to the business s digital solution to reinforce and boost the user base With a website embedded with JavaScript code you can assure a rapid increase in users and lower bounce rates Moreover several other benefits can be achieved by learning and utilizing the different frameworks based on JavaScript This technology can fulfill your full stack requirements by ensuring a high return on investment Let s move on and understand JavaScript its features what type of web apps are crafted with it and why it is selected for Web Development What is JavaScript FrameworkJavaScript is a programming language used to write code for both client and server side as it makes the connection stronger between the systems in a virtual environment The primary purpose of JS is to link the interface with the backend so that stable cooperation can be maintained between all the components A static page is easily converted into a responsive one as JS adds its behavior It is the most popular scripting language used by Web Developers to Ethical Hackers as its code is understood and executed by every browser With its ample community support JS is strengthened with advanced security mechanisms and in built packages to improve user experience Why JavaScript is popular backend technology for Web DevelopmentUsers always raise questions about the popularity of JavaScript and want to know why most Web Development companies prefer this framework The reason behind the extensive use of JavaScript is its full stack development modules As a result a full fledged feature rich application can be created flawlessly fulfilling any business requirement Furthermore several frameworks such as Angular Vue Node Express Meteor jQuery and much more are available to design the solution as per your business needs In addition most of the JavaScript based frameworks are furnished and backed by tech giants like Google and Facebook which leads to building trust over this technology Moreover numerous templates and pre build JavaScript codebases are available in online repositories and all these are freely accessible to reduce cost and effort during software development Also all the modern browsers are crafted by focusing on running JS as it extends the capacity for handling server logic in an effective manner Competent Features of JavaScriptJS is a powerful web development mechanism inclusive of many incorporated modules and functions for providing cutting edge services to end users It is the powerhouse of a web application as it activates the logic and implements them while the user is navigating over the website Discover some of the exclusive attributes of JS which makes it a well known development tool User Input ValidationMost of the websites display forms to the users for filling out login details to check out from the shopping cart to fill contact forms and so forth In other programming languages third party APIs are used to protect data collected from forms whereas in JavaScript user data validation is enabled by default Input validation leads to maintaining security over the organizational network as SQL injection attacks are prevented Also it ensures that required information is entered by the end users instead of any garbage value which can disrupt the smooth functioning of the overall system Rapid ExecutionAny instruction forwarded by the user is executed at that time only as JS doesn t require any external resources and support It is free from the boundary of any backend server and its code is run without compiling it every time In addition JIT is supported by all the major browsers which is the leading platform for running the JS codebase Moreover waste value generation is eliminated with JIT and productivity is optimized along with improved storage space Less memory is utilized by this compiler which reduces the probability of page faults as pages are stored in the same memory bits embarking on making JS faster InteractivityAn appealing and enchanting web application is considered a vital asset to engage visitors and convert them into potential customers You can do wonders by adjoining JavaScript frameworks within the website s architecture as it makes it possible to fabricate rich UI with pop ups accordions animations video streaming mega menus and a lot more Subtler operations can also be performed with it such as displaying pop ups based on the information inputted by the user in any form In addition SEO strategies can be utilized to improve the rank of your website across browsers for reaching out to the targeted audience in an organic way Browser and Operating System DetectionEvery individual user has more than one device each running on a different operating system and using multiple browsers for accessing web solutions For allowing users to take advantage of the authentic services across browsers built in JavaScript functions are employed It assists in discovering the type and version of system software installed on the device and checking the compatibility of your business solution with it Also it aids in generating the relevant output for the data entered by an authorized associate for completing the core operations Reliable Plugin and API CompatibilityWhenever you visit a website you see chatbots banner ads forms and buttons for sharing information over other platforms Most of the time all these functionalities are offered through third party JavaScript plugins In addition such elements are easy to configure with JS because of their easy code advancement and maintenance Also custom APIs and plugins are developed to elongate the web solution s capabilities You can be confident about the Quality of Service as security systems and integral architecture will conserve the website s performance AJAXAsynchronous JavaScript and XML allow the web pages to link with the web server in the background and process commands without reloading the page after every user request A more pleasing web experience is availed with this characteristic of the JavaScript framework as the page doesn t flicker and requires information is displayed on the screen Furthermore it saves time and server bandwidth utilization by reloading the web page partially or only a single portion where content needs to be changed Besides this communication between web server and website is performed in the background for providing an impeccable experience to stakeholders Diversified Web App Development Portfolio of JSIt is essential to know what type of applications can be fabricated using JavaScript as you will get a better insight into the potential of JavaScript in Web Development WebsitesThe primary purpose of JavaScript is to add interactivity to static websites to make them dynamic for a better user experience It is preferred for designing the front end by blending its intelligent libraries with HTML and CSS To load web pages faster and for processing simple logical functions JS is a must for any web portal Web Based ApplicationsWith various tools available for writing JavaScript code complex applications connected with the internet and the intranet can be constructed Also all the functions are executed in the background and the user cannot detect them which serves as an advantage from the cyber security perspective Server ApplicationsNodeJS framework entitles the developers to run server side scripts using JS programming language for faster deployment and minimize the probability of server crash and downtime With a JS based backend multiple instructions can be comfortably handled but it is only considered for applications consuming less processing power Browser based GamingWith games produced to run in browsers users benefit significantly as they don t have to download any extra software on their system In addition by combining HTML with JavaScript responsiveness is added and allows users to connect with their friends and play multiplayer games from a remote location ConclusionJavaScript Development is a scalable software development framework which is exceptionally appraised for developing web based applications through its extensive libraries and modules Moreover its compatibility with browsers and HTML makes it a crucial website unit with a beautiful and enticing user interface Besides this JS can be used for both frontend and backend development as it offers a highly extensible architecture for converting the solution of your imagination into reality 2022-01-10 10:11:01
海外TECH DEV Community How trip yourself up with React hooks and break production https://dev.to/griffadev/how-trip-yourself-up-with-react-hooks-and-break-production-1h0p How trip yourself up with React hooks and break productionReact is so ubiquitous now it s pretty difficult to avoid it if you want to be employed and working in Web application development React hooks in some ways pushed the ecosystem forward but in other ways have made React applications harder to debug and easier to subtly break things without realising if you stop following the rules In this article is a story and some lessons about how I corrected some React code to follow the rules of hooks and broke the feature because the existing code happened to violate some of the other React rules in a way that was not immediately obvious Writing about React is scaryWhenever I write a React article I question whether or not it is a good idea to do so because with its popularity can come some unhelpful comments and responses To get this out of the way early here some replies on some previous comments I ve received on React articles Your team just wrote sloppy react code End of story I d hate to work on a team with this person jeez React is NOT a framework it s a JavaScript library I call it a framework just because it annoys people for some reason and I will continue to do so This is just an opinion piece It s a blog post Anyways to the article I promise the above is the only sarcastic cynical part of the post and I think that there is some useful learning in this story to help me grow and hopefully others can find it useful to when working with the React framework The scenarioThe codebase that I work on is not open source however the issue that I ran into could be extracted distilled into some example code as the core problems with the code centre around using some of the built in React hooks such as useMemo and handling the mutation of state To demonstrate the problem I developed a completely unoriginal Todo list example hopefully the mundaneness of the code will help to skip over the boring bits and get to the issues with the code more quickly To demonstrate the problem with the code I have developed examples all implementing the same Todo application one with the original implementation before I refactored and broke itone with my refactor which broke the code in a specific wayone with the changes I d probably make in addition to my original refactor to fix the code Full code examples will be available at the end of each section In order to reproduce the bug I experienced in the other codebase I needed the following Some code to add some state from some data from the server React Context API Technically optional use of useMemo to transform some data from the server A button to save the state to the serverSome optimisation logic to check if we should submit the changes to the server or not ImplementationThe implementation of the TodoList isn t too important I scaffolded it out using vite The important aspects of the code in this article live inside of a custom Context provider that implements the functionality of the TodoList Here is the outline of the top level App component import React from react import AddTodo from AddTodo import App css import SaveMessage from SaveMessage import SaveTodos from SaveTodos import TodoProvider from TodoContext import TodoList from TodoList function App return lt TodoProvider gt lt div className App gt lt div className Flex gt lt h gt Todo list lt h gt lt SaveTodos gt lt div gt lt SaveMessage gt lt AddTodo gt lt div gt lt h gt Items to do lt h gt lt TodoList gt lt div gt lt div gt lt TodoProvider gt export default App The TodoProvider is where we will focus on this article it allows me to implement the logic for adding deleting and saving todo items and share this between components Each of the components use aspects of the context provided by TodoProvider for example here is how the AddTodo component accesses the functionality to add a todo item import useTodos from TodoContext export const AddTodo gt const addTodo useTodos return lt form onSubmit e gt e preventDefault const formEntries new FormData e target addTodo formEntries get message gt lt input className Input SearchBox name message placeholder New item id addItem type text gt lt button className Button type submit gt lt span role img aria label Add item gt lt span gt lt button gt lt form gt I ll add in full code sandbox links at the end of each section The original implementationRemember this code is not the actual code from the codebase that I work on but is an example distilled from the issue that I came across The first thing that the TodoProvider does is fetch some data from the server in this case I ve hardcoded a json file with some todo items in it todos id message Go to the supermarket done false id message Mow the lawn done true id message Clean the kitchen done true id message Book restaurant reservation done false Below I setup a context and fetch the JSON It might seem odd to you that I am setting the API response into useState this is a little contrived and just for the demo before I get any your code sucks comments In the case of the real codebase this would have been a graphql useQuery hook There is a good reason why I am storing the response and not the the TODOs themselves because I need to do a transform on the data and this is the closest way I could mimic was the original code was doing without introducing some fancy http client hook like react query export const TodoContext createContext export const TodoProvider children gt const apiResponse setApiResponse useState undefined const draftTodos setTodoList useState useEffect gt const fetchTodos async gt const res await fetch todos json const response await res json setApiResponse response fetchTodos Transforming the data use of useCallback looks odd here We ll get to that const existingTodos useCallback gt const todoMap new Map apiResponse todos forEach todo gt todoMap set todo id todo return todoMap apiResponse return return lt TodoContext Provider value code coming soon gt children lt TodoContext Provider gt The second part of the code uses useCallback to create a function that converts the array of items into a map of todo items where the key is the id e g id message Go to the supermarket done false id message Mow the lawn done true id message Clean the kitchen done true id message Book restaurant reservation done false If you think the use of useCallback here is strange and useMemo would make sense we both had the same thought and I wonder if you would end up introducing the same bug that I did by refactoring and correcting the code Now we re fetching Todo Items we want a way of adding new items Before we do that I m going to introduce a new concept to the above implementation the notion of draft todos these are modified or new todo items which have not been saved back to the server just yet To make that happen I add in export const TodoProvider children gt New line here const draftTodos setTodoList useState const apiResponse setApiResponse useState undefined useEffect gt const fetchTodos async gt const res await fetch todos json const response await res json setApiResponse response fetchTodos const existingTodos useCallback gt const todoMap new Map apiResponse todos forEach todo gt todoMap set todo id todo return todoMap apiResponse Other new line useEffect gt pass in initial items from server if draftTodos amp amp existingTodos size this is strange because useCallback was used setTodoList existingTodos existingTodos return return lt TodoContext Provider value todoItems draftTodos Array from draftTodos values gt children lt TodoContext Provider gt The purpose of the useEffect is so that on initialisation the draft todos equal the existing todo items In the new lines if it wasn t clear before hopefully it would be now that useCallback here is quite strange indeed because in order to read the existing you need to execute the existingTodos as a function The keen eyed here will notice that this means a new map is being created each time you call the function resetting the data back to the initial state from the json file This also means the reference to the Map is different each time meaning unless you pass the output of the function around you aren t comparing the same map This is key to the issue later on when useMemo is used instead Adding and removing Todo itemsThese next two lines are more or less the existing code which was in place to add or remove items and were exported onto the context lt TodoContext Provider value todoItems draftTodos Array from draftTodos values removeTodo id gt if draftTodos delete id setTodoList new Map draftTodos addTodo message gt if message return const todo new web api Support gradually increasing id crypto randomUUID message done false if draftTodos has todo id return draftTodos set todo id todo setTodoList new Map draftTodos gt children lt TodoContext Provider gt These code examples also looked a little off to me too but I couldn t quite understand why or put two and two together at first What the code is doing Adding or Removing item from todo listMaking a new Map with the entries from the previous map and setting it to the state There was in fact a comment next to the new Map line which mentioned that this is needed in order to cause React to update but it hadn t quite clicked with me that this was a bit of a problem If you hadn t noticed already the lines above were mutating the previous map in both the add and remove methods and then making a copy of it polluting the previous data Without any other changes this might not be a big deal at all a bit bad in terms of best practice of not mutating objects in React especially those used as state but it works but now let s take a look at the code for saving the new items Saving items to the server The code below is quite contrived and is missing the context as to why it was needed But what the code does is check if the data had changed before sending it it was a bit of an optimisation and there were other reasons too but that s not important let s take a look lt TodoContext Provider value save gt contrived code for the demonstration in the real app this was responsible for deciding if a request should be sent to server or not const existingTodoKeys Array from existingTodos keys const draftTodoKeys Array from draftTodos keys let todosHasChanges existingTodoKeys length draftTodoKeys length now check entries using ids unless we know they have changed based on length there are better ways of detecting changes but this demonstrates the issue if todosHasChanges const existingTodoValues Array from existingTodos values const draftTodoValues Array from draftTodos values for let todoIndex todoIndex lt draftTodoKeys length todoIndex now check each entry if existingTodoKeys todoIndex draftTodoKeys todoIndex existingTodoValues todoIndex done draftTodoValues todoIndex done todosHasChanges true break if todosHasChanges send off request to server gt children lt TodoContext Provider gt Most of the above code doesn t matter but the general idea is that the two maps are being compared to one another Here again strikes the existingTodos which as we established before essentially resets the Map back to the original data from the server It is in fact this property of code with the useCallback ensuring that existingTodos is the original data from the server that makes this code work at all because the add and remove operations mutate the original array If it wasn t for existingTodos always fetching the un mutated data the code would not function I suggest that this is an extremely obscure bug that only happens to not presents itself because of the use of useCallback to expose a function negates the mutation operations on the original map instead of useMemo for example Sadly for me I didn t notice this at the time and I refactored it I ve published a code sandbox with the full code for this example that uses useCallback How I broke productionAs suggested to earlier when working in this area of the code I took the chance to tidy up the code to use useMemo instead of useCallback Unfortunately this made the code fall over and to make things even more fun I was going on vacation later that week luckily someone in my team came in and reverted back to using useCallback hopefully I ll be able to make the change to make the code less of a trap with the mutation of the Maps when I return which I ll discuss at the end main change change to use useMemo which means existingTodos is the todos not a function const existingTodos useMemo gt const todoMap new Map apiResponse todos forEach todo gt todoMap set todo id todo return todoMap apiResponse useEffect gt removed existingTodos from being a function if draftTodos amp amp existingTodos size setTodoList existingTodos existingTodos And inside of the save function removed existingTodos as its not a function anymore save gt const existingTodoKeys Array from existingTodos keys const existingTodoValues Array from existingTodos values This change got through testing and code review and was seemingly correct However due to the mutating of the original Map in the add remove functions which I d missed the first time you added or deleted something it would not be tracked as a change meaning if you only added or removed one item in the list the request would not be sent to the server because the entries in the existingTodos had been mutated making the Maps essentially equal not in terms of reference but contents which is what the server cared about Here is a code sandbox with the full code and demo that introduces the bug Note that the checking and unchecking of items in the demo does not have an issue with mutating the original Map Missed in testingAs noted above the issue where changes are incorrectly not reported only appears for the first change The reason being that if you make two changes the code happens to work sort of because the array set by useMemo in this example never changes after its been mutated the one time but the code for adding or removing items will stop modifying the original Map after the first mutation instead it uses the latest draft todos map Incidentally the real testing scenario was a bit more complex and involved reordering items so you might be able to see how this scenario could get missed This would be incredibly difficult to unit test as well with the code being split across contexts and multiple components unless you were testing the full end to end interactions you might not catch this at all My suggested fixThe fix for the code is quite straight forward and goes back to the original highlighted issue the add and remove functions mutating the original map they should not do this Alternatively before setting the existing entries to the draftTodos variable you could make a copy then either would work although I think I prefer avoiding mutations at the point of new data in the add and remove functions removeTodo id gt make a copy first const newTodos new Map draftTodos if newTodos delete id setTodoList newTodos addTodo message gt if message return const todo id crypto randomUUID message done false if draftTodos has todo id return make a copy first const newTodos new Map draftTodos newTodos set todo id todo setTodoList new Map newTodos Here is a code sandbox of what I believe is functional code LearningsI suppose one of the main lessons here is to always be aware of where code could potentially be mutating state especially before introducing something like a useMemo into the code base More importantly when refactoring code from an uncommon pattern the useCallback to something more typical it s important to fully understand why that code might have happened in the first place it s likely it might be a workaround for another issue Another learning on my part is that this would had made good sense to start a dialogue with the person who wrote the original code although that s easy to say in retrospect there are many contributors Perhaps code comments might have saved this or some more unit tests it s hard to say I can say for sure that we did do lots of testing in this area before shipping the bug to production but I suppose because it s a bug that only happens on the first mutation and fixes itself if you do subsequent changes that might help to explain why it was missed It s possible that some end to end test automation of this functionality might have caught this as it seems likely that a human tester would go for the more complex scenario over a more basic test e g a single mutation which might be present in an automated test Variable names can lie the name of the variable also had the word existing in it in the other codebase too making it seem like this variable reference was representative of the original unmodified state but due to the mutations it was not I suppose it s a learning that you cannot always trust that a variable is what is says it is Maybe just don t useMemo or useCallback or things that complicate the code the work this component was doing to convert an array into a map and ensure it wasn t happening every render could well be redundant or overkill part of my issue with react hooks is they can force you to introduce complexity for something as simple as converting from one data type to another and in doing this you can get struck by subtle bugs such as code mutating objects incorrectly or the incorrect use of react hooks ghastly dependency arrays SummaryI suppose some people might read this and have the take that you should simply Get Gud but I d suggest to take a step back and think about how ubiquitous React is and how many developers of differing experience can be working on a code base I think it s examples like this which help to show that it s super easy to break things by modifying to use a different React hook or mutating something that should not have been mutated and no Typescript can t save you here this was a Typescript codebase It might also be a fair argument to suggest that the bug presented here is not React specific but I can say for sure the complexity that React can bring just to avoid rendering or not rendering does not help If you want to read about another instance of discussing bugs and areas of growth I wrote about another scenario here from my previous role Memory leaks and why should you never write such bad code Thank you for reading If you want to read more of my work please follow me on dev to or on Twitter griffadev or get me a coffee if you feel like it 2022-01-10 10:10:34
海外TECH DEV Community New in CSS https://dev.to/sibaspage/new-in-css-2b1p New in CSS Declare Variable root global primary color e a color var global primary color SupportsIt allows you to do the same depending on what CSS properties and values the user browser supports supports display grid main content display grid content visibilityIt is a really cool new CSS feature to improve site performance It basically works like lazy loading only not for images but any HTML element You can use it to keep any part of your site from loading until it becomes visible sec viewport content visibility auto Scroll SnapScroll snapping gives you the option to lock the user s viewport to a certain parts or element of your site container scroll snap type y mandatory is and whereIt allow you to reduce repetition in CSS markup by shortening lists of CSS selectors Before main a hover sidebar a hover site footer a hover markup goes here After is main sidebar site footer a hover markup goes here where main sidebar site footer a hover markup goes here 2022-01-10 10:09:13
Apple AppleInsider - Frontpage News EU carriers want Apple's Private Relay blocked https://appleinsider.com/articles/22/01/10/eu-carriers-want-apples-private-relay-blocked?utm_medium=rss EU carriers want Apple x s Private Relay blockedFour European carriers have written to the European Commission claiming that Apple s Private Relay in iOS undermines digital sovereignty and that it should be stopped Apple s Private Relay currently still in beta is a VPN like service for iOS iPadOS and macOS Monterey which shields users from having their precise location data revealed It has already been revealed that Apple is not implementing the feature in all countries and now European carriers are asking for local exclusion too A letter to the European Commission sent in August and now seen by The Telegraph four carriers have raised their objections T Mobile Orange Vodafone and Telefonica jointly say that Apple s service will have significant consequences in terms of undermining European digital sovereignty Read more 2022-01-10 10:42:06
海外TECH Engadget Scientists observe a red supergiant going supernova for the first time https://www.engadget.com/scientists-see-a-red-giant-star-go-supernova-for-the-first-time-104442583.html?src=rss Scientists observe a red supergiant going supernova for the first timeDespite the massive number of stars in the sky spotting one in the throes of a supernova is still an incredibly rare event Now astronomers have captured a red supergiant before during and after a supernova explosion for the first time gathering crucial new information about these dramatic events quot This is a breakthrough in our understanding of what massive stars do moments before they die quot said lead author Wynn Jacobson Galán UC Berkeley quot Direct detection of pre supernova activity in a red supergiant star has never been observed before in an ordinary Type II supernova For the first time we watched a red supergiant star explode quot Using the Pan STARRS telescope in Maui Hawai i scientists detected the doomed red supergiant star in the summer of thanks to the huge amount of light it was emitting Later in the fall when it went supernova the team captured the powerful flash using the Hawai i based Keck Observatory s Low Resolution Imaging Spectrometer LRIS They also captured the very first spectrum of the supernova known as SN tlf The observations showed that the star likely ejected massive amounts of dense circumstellar material just ahead of the explosion Previous observations showed that red giants were relatively calm before going supernova so the new data suggests that some may change their internal structure significantly before exploding That could then result in tumultuous gas ejections moments before collapse nbsp SN tlf is located in the NGC galaxy about million light years from Earth and was about times more massive than the Sun Stars go supernova when they run out of fuel and collapse on their own gravity fueling a massive carbon fusion explosion For that to happen they must be large enough to solar masses or they ll simply collapse into white dwarf star like our Sun eventually will Any larger than that and they could collapse into a black hole nbsp The discovery will now allow scientists to survey red supergiant stars looking for similar types of luminous radiation that could signal another supernova quot Detecting more events like SN tlf will dramatically impact how we define the final months of stellar evolution in the quest to solve the mystery on how massive stars spend the final moments of their lives quot said Jacobson Galán 2022-01-10 10:44:42
海外ニュース Japan Times latest articles Yokozuna Terunofuji takes down Wakatakakage on Day 2 on New Year Basho https://www.japantimes.co.jp/sports/2022/01/10/sumo/basho-reports/terunofuji-wins-second-match/ championship 2022-01-10 19:01:29
ニュース BBC News - Home Novak Djokovic: Judge orders immediate release of tennis star https://www.bbc.co.uk/news/world-australia-59932430?at_medium=RSS&at_campaign=KARANGA grounds 2022-01-10 10:33:09
ニュース BBC News - Home Barry Bennell: Men lose case against Manchester City over abuse https://www.bbc.co.uk/news/uk-england-manchester-59934051?at_medium=RSS&at_campaign=KARANGA scout 2022-01-10 10:45:05
ニュース BBC News - Home Michael Gove misses interview slot after getting stuck in BBC lift https://www.bbc.co.uk/news/uk-politics-59935551?at_medium=RSS&at_campaign=KARANGA interview 2022-01-10 10:13:32
LifeHuck ライフハッカー[日本版] 冬の夜でも安全にランニングをする方法 https://www.lifehacker.jp/2022/01/how-to-safely-exercise-in-the-dark.html 方法 2022-01-10 20:00:00
北海道 北海道新聞 国内のコロナ感染、6000人超 連休明けに再拡大の恐れ https://www.hokkaido-np.co.jp/article/631822/ 新型コロナウイルス 2022-01-10 19:15:00
北海道 北海道新聞 スリランカ、中国に債務緩和要求 コロナによる経済苦境で https://www.hokkaido-np.co.jp/article/631818/ 要求 2022-01-10 19:07:00
北海道 北海道新聞 照ノ富士、若隆景下して2連勝 貴景勝は黒星、正代と御嶽海連勝 https://www.hokkaido-np.co.jp/article/631817/ 両国国技館 2022-01-10 19:04:00
北海道 北海道新聞 12日から北日本、北陸で暴風雪 気象庁、警戒呼び掛け https://www.hokkaido-np.co.jp/article/631816/ 冬型の気圧配置 2022-01-10 19:04:00
北海道 北海道新聞 神恵内村長選 選挙戦の公算大 36年ぶり 住民驚き https://www.hokkaido-np.co.jp/article/631814/ 任期満了 2022-01-10 19:01:00
ビジネス 東洋経済オンライン 宇宙にエイリアンがいるのか本気で考えてみたら 「フェルミのパラドックス」vs.「浸透理論」 | 宇宙 | 東洋経済オンライン https://toyokeizai.net/articles/-/479701?utm_source=rss&utm_medium=http&utm_campaign=link_back 地球外知的生命 2022-01-10 19:30:00

コメント

このブログの人気の投稿

投稿時間: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件)