IT |
気になる、記になる… |
DJI、10月10日〜11日に「DJI Store Day」のセールを開催へ − 総額500万円分のクレジットが当たるキャンペーンも |
https://taisy0.com/2022/10/03/163080.html
|
action |
2022-10-03 07:31:15 |
IT |
ITmedia 総合記事一覧 |
[ITmedia PC USER] Windows 11 バージョン22H2向けプレビュー更新プログラムが公開 Microsoft Store更新問題などに対応 |
https://www.itmedia.co.jp/pcuser/articles/2210/03/news129.html
|
itmediapcuserwindows |
2022-10-03 16:40:00 |
IT |
ITmedia 総合記事一覧 |
[ITmedia Mobile] 65W出力ながら厚さ12mmの充電器、オウルテックが7280円で発売 |
https://www.itmedia.co.jp/mobile/articles/2210/03/news123.html
|
itmediamobilew |
2022-10-03 16:06:00 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
【パブリッシャー】Restfulサービスを利用した書き込みを試してみる |
https://qiita.com/Miki_Yokohata/items/955b57003c92c0bb8eb1
|
javascript |
2022-10-03 16:25:10 |
js |
JavaScriptタグが付けられた新着投稿 - Qiita |
JavaScriptでブラウザゲーム作ろう! |
https://qiita.com/inwan78/items/5c4440b4599dceb85268
|
切り替え |
2022-10-03 16:14:24 |
Ruby |
Rubyタグが付けられた新着投稿 - Qiita |
【Rails】重複処理防止機能の実装例 |
https://qiita.com/Terao-Takumi/items/125b6808ab3a5fc376b5
|
egatetablesservicenewcall |
2022-10-03 16:09:23 |
Docker |
dockerタグが付けられた新着投稿 - Qiita |
MacBook に ROS 環境を構築するまで |
https://qiita.com/GAI-313/items/663013597d279b5f1470
|
xquartzxxx |
2022-10-03 16:13:13 |
golang |
Goタグが付けられた新着投稿 - Qiita |
【Go】Templateで二次配列の要素を指定する |
https://qiita.com/konbu9640/items/e5929c42c573149405f2
|
arrayindexindex |
2022-10-03 16:15:21 |
Ruby |
Railsタグが付けられた新着投稿 - Qiita |
【Rails】重複処理防止機能の実装例 |
https://qiita.com/Terao-Takumi/items/125b6808ab3a5fc376b5
|
egatetablesservicenewcall |
2022-10-03 16:09:23 |
技術ブログ |
Developers.IO |
Amazon Location Service で Place ID が利用出来るようになりました |
https://dev.classmethod.jp/articles/amazon-location-service-search-using-placeids/
|
amazonlocationservice |
2022-10-03 07:26:24 |
技術ブログ |
Developers.IO |
Disaster Recovery for EC2 |
https://dev.classmethod.jp/articles/disaster-recovery-for-ec2/
|
awsel |
2022-10-03 07:24:17 |
技術ブログ |
クックパッド開発者ブログ |
DroidKaigi 2022に弊社の社員が登壇 & スポンサー企画のご案内 |
https://techlife.cookpad.com/entry/2022/10/03/163121
|
この記事ではクックパッドのエンジニアが登壇するトークの紹介とブースの案内をさせていただきます。 |
2022-10-03 16:31:21 |
海外TECH |
DEV Community |
5 webdev tips you may want to know 🔥 #3 |
https://dev.to/mustapha/5-webdev-tips-you-may-want-to-know-3-1fi7
|
webdev tips you may want to know Just a quick word before we start I m currently trying to grow a community over on twitter where I share technical tidbits I learned working in this industry for about years now I would be super happy and grateful if you could follow me there It will help me to make more content and articles every week Also English is not my first language so please let me know if you find any misspellings or awkward phrasing Enough talk let s jump right in The battery APIDid you know that browsers have a Battery API that provide information about the system s battery charge level You can listen to the level change event like this Focus withinThe focus within CSS pseudo class matches an element if it or any of its descendants are focused List markersYou can use the marker pseudo element to target the marker box of a list item Offset a text underlineDid you know that you can use the text underline offset property to specify the distance of an underlined text decoration applied using the text decoration property from its original position Animation transition ending eventIf you have a CSS animation or transition and you want to react to its ending Here s how to do it This can be useful if you want to perform an animation before removing and element from the DOM for example in case you are not using a framework that already does that for you That s all for now I hope you found this useful Leave a comment to let me know which tip if any you found useful Until next time have a nice week What to read next Mesmerizing animation using only CSS rotations ️ Mustapha Aouas・Nov ・ min read css html webdev watercooler |
2022-10-03 07:39:07 |
海外TECH |
DEV Community |
Reduct Storage Client SDK for JavaScript 1.0.0 was released |
https://dev.to/reduct-storage/reduct-storage-client-sdk-for-javascript-100-was-released-43p6
|
Reduct Storage Client SDK for JavaScript was releasedHey everyone It is a little update for people who follow the Reduct Storage project We released the next major version of Reduct Storage and broke compatibility with the current client SDKs No worries we ll fix everything soon Currently you can already you the storage engine with its JavaScript SDK npm i reduct js Check all the changes here |
2022-10-03 07:23:58 |
海外TECH |
DEV Community |
Electrify your NodeJS AWS Lambdas with Rust |
https://dev.to/aws-builders/electrify-your-nodejs-aws-lambdas-with-rust-rust-2c7m
|
Electrify your NodeJS AWS Lambdas with Rust IntroductionNodeJS runtime for AWS Lambda is one of the most used and for good reasons It is fast with a short cold start duration it is easy to develop for it and it can be used for Lambda Edge functions Besides these JavaScript is one of the most popular languages Ultimately it just makes sense to use JavaScript for Lambdas Sometimes we might find ourselves in a niche situation where would want to be able to squeeze out a little bit more performance from our Lambda In these cases we could rewrite our whole function using something like Rust or we could rewrite only a portion of our code using Rust and call it from a NodeJS host using a mechanism named foreign function interface FFI NodeJS provides an API for addons dynamically linked shared objects written usually in C As we might guess from the title we are not required to use C There are several implementations of this API in other languages such as Rust Probably the most knowns are node ffi or Neon In this article we would use Neon to build and load dynamic libraries in a NodeJS project Build a Dynamic Library with NeonTo make a function call to a binary addon from NodeJS we have to do the following Import the binary addon into our JavaScript code Binary modules should implement the Node API N API and usually they have to node extension Using the require function from CommonJS we can import them In the case of Neon this N API implementation is hidden from us we don t have to worry much about it as long as we don t have to do some advanced debugging In the implementation of the binary code we have to apply some transformation of the input data The types used by JavaScript may not be compatible with the types used by Rust This conversion has to be done for the input arguments and the returned types as well Neon provides the Rust variant of all the primitive JavaScript types and object types Implement our business logic in the native code Build the dynamic library Rust makes this step convenient by being able to configure the lib section in the project s toml file Moreover if we are using Neon to initiate our project this will be configured for us out of the box As for the first step we would want to create a Rust project with Neon dependency for building a dynamic library This can be done using npm init neon my rust lib To be more accurate this will create a so called Neon project which means it already has a package json for handling Node related things The project structure will look something like this my rust lib ├ーCargo toml├ーREADME md├ーpackage json└ーsrc └ーlib rsIf we take a look at the package json we will find something that resembles the following name my rust library version description My Rust library main index node scripts build cargo cp artifact nc index node cargo build message format json render diagnostics build debug npm run build build release npm run build release install npm run build release test cargo test author Ervin Szilagyi license ISC devDependencies cargo cp artifact Running npm install command our dynamic library will be built in release mode Is important to know that this will target our current CPU architecture and operating system If we want to build this package for being used by an AWS Lambda we will have to do a cross target build to Linux x or arm Taking a look at lib rs file we can see the entry point of our library exposing a function named hello The return type of this function is a string It is also important to notice the conversion from a Rust s str point to a JsString type This type does the bridging for strings between JavaScript and Rust use neon prelude fn hello mut cx FunctionContext gt JsResult lt JsString gt Ok cx string hello node neon main fn main mut cx ModuleContext gt NeonResult lt gt cx export function hello hello Ok After we built our library we can install it in another NodeJS project by running npm install lt path gt The lt path gt should point to the location of our Neon project Building a Lambda Function with an Embedded Dynamic LibraryIn my previous article Running Serverless Lambdas with Rust on AWS we used an unbounded spigot algorithm for computing the first N digits of PI using Rust programming language In the following lines we will extract this algorithm into its own dynamic library and we will call it from a Lambda function written in JavaScript This algorithm is good to measure a performance increase in case we jump from a JavaScript implementation to a Rust implementation First what we have to do is generate a Neon project After that we can extract the function which computes the first N digits of PI and wrap it into another function providing the glue code between Rust and JavaScript interaction The whole implementation would look similar to this use neon prelude use num bigint BigInt ToBigInt use num traits cast ToPrimitive use once cell sync OnceCell use tokio runtime Runtime neon main fn main mut cx ModuleContext gt NeonResult lt gt cx export function generate generate Ok Create a singleton runtime used for async function callsfn runtime lt a C Context lt a gt gt cx amp mut C gt NeonResult lt amp static Runtime gt static RUNTIME OnceCell lt Runtime gt OnceCell new RUNTIME get or try init Runtime new or else err cx throw error err to string fn generate mut cx FunctionContext gt JsResult lt JsPromise gt Transform the JavaScript types into Rust types let js limit cx argument lt JsNumber gt let limit js limit value amp mut cx Instantiate the runtime let rt runtime amp mut cx Create a JavaScript promise used for return Since our function can take a longer period to execute it would be wise to not block the main thread of the JS host let deferred promise cx promise let channel cx channel Spawn a new task and attempt to compute the first N digits of PI rt spawn blocking move let digits generate pi limit to i unwrap deferred settle with amp channel move mut cx let res Handle lt JsArray gt JsArray new amp mut cx digits len as u Place the first N digits into a JavaScript array and hand it back to the caller for i amp digit in digits iter enumerate let val cx number f from digit res set amp mut cx i as u val Ok res Ok promise fn generate pi limit i gt Vec lt i gt let mut q to bigint unwrap let mut r to bigint unwrap let mut t to bigint unwrap let mut i to bigint unwrap let mut res Vec lt i gt Vec new for in limit let digit BigInt amp i amp q amp r amp t res push digit to i unwrap let mut u BigInt amp i u amp u amp u r amp u amp q amp i r amp t digit q amp i amp i i i t u res What is important to notice here is that we return a promise to Javascript In the Rust code we create a new runtime for handling asynchronous function executions from which we build a promise that gets returned to JavaScript Moving on we have to create the AWS Lambda function targeting the NodeJS Lambda Runtime The simplest way to do this is to create a NodeJS project using npm init with app js file as the entry point and install the Rust dependency as mentioned above In the app js we can build the Lambda handler as follows Import the dynamic library using commonjsconst compute pi require compute pi rs Build and async handler for the Lambda function We use await for unpacking the promise provided by the embedded libraryexports handler async event gt const digits await compute pi generate event digits return digits event digits pi digits join This is it To deploy this function into AWS we have to pack the app js file and the node modules folder into a zip archive and upload it to AWS Lambda Assuming our target architecture for the Lambda and for the dependencies match we can not have an x native dependency running on a Lambda function set to use arm our function should work as expected or maybe not GLIBC not foundWith our Neon project we build a dynamic library One of the differences between dynamic and static libraries is that dynamic libraries can have shared dependencies that are expected to be present on the host machine at the time of execution In contrast a static library may contain everything required in order to be able to be used as is If we build our dynamic library developed in Rust we may encounter the following issue during its first execution lib libc so version GLIBC not found required by compute pi rs lib index node The reason behind this issue as explained in this blog post is that Rust dynamically links to the C standard library more specifically the GLIBC implementation This should not be a problem since GLIBC should be present on essentially every Unix system however this becomes a challenge in case the version of the GLIBC used at build time is different compared to the version present on the system executing the binary If we are using cross for building our library the GLIBC version of the Docker container used by cross may be different than the one present in the Lambda Runtime on AWS The solution would be to build the library on a system that has the same GLIBC version The most reliable solution I found is to use an Amazon Linux Docker image as the build image instead of using the default cross image cross can be configured to use a custom image for compilation and building What we have to do is to provide a Dockerfile with Amazon Linux as its base image and provide additional configuration to be able to build Rust code The Dockerfile could look like this FROM public ecr aws amazonlinux amazonlinux ENV RUSTUP HOME usr local rustup CARGO HOME usr local cargo PATH usr local cargo bin PATH RUST VERSION RUN yum install y gcc gcc c openssl devel curl sSf sh s no modify path profile minimal default toolchain RUST VERSION y chmod R a w RUSTUP HOME CARGO HOME rustup version cargo version rustc version WORKDIR targetIn the second step we will have to create a toml file named Cross toml in the root folder of our project In the content of this file we have to specify a path to the Dockerfile above for example target x unknown linux gnu dockerfile Dockerfile x This toml file will be used automatically at each build Instead of the base cross Docker image the specified dockerfile will be used for the custom image definition The reason for using Amazon Linux is that the Lambda Runtime itself is based on that We can find more information about runtimes and dependencies in the AWS documentation about runtimes Performance and Benchmarks Setup for BenchmarkingFor my previous article Running Serverless Lambdas with Rust on AWS we used an unbounded spigot algorithm to compute the first N digits of PI We will use the same algorithm for the upcoming benchmarks as well We had seen the implementation of this algorithm above To summarize our Lambda function written in NodeJS will use FFI to call a function written in Rust which will return a list with the first N number of PI To be able to compare our measurements with the results gathered for a Lambda written entirely in Rust we will use the same AWS Lambda configurations These are MB of RAM memory allocated and the Lambda being deployed in us east Measurements will be performed for both x and arm architectures Cold Start Warm StartUsing XRay we can get an interesting breakdown of how our Lambda performs and where the time is spent during each run For example here we can see a trace for a cold start execution for an x Lambda In the following we can see the trace for a warm start in case of the same Lambda The initialization cold start period is pretty standard for a NodeJS runtime In my previous article we could measure cold starts between ms and ms for NodeJS The cold start period for this current execution falls directly into this interval Performance ComparisonsAs usual I measured the running time of consecutive executions of the same Lambda function I did this for both x and arm architectures These are the results I witnessed Duration run Duration run Duration run Duration run Duration run x ms ms ms ms msarm ms ms ms ms msComparing them to vanilla NodeJS and vanilla Rust implementations we get the following chart for x With Graviton arm it looks similar According to my measurements the function with the dynamic library has a similar execution time compared to the one developed in vanilla Rust In fact it appears that might be a little bit faster This is kind of unexpected since there is some overhead when using FFI Although this performance increase might be considered a margin of error we should also regard the fact that the measurements were not done on the same day The underlying hardware might have been performed slightly better Or simply I was just lucky and got an environment that does not encounter as much load from other AWS users who knows Final ThoughtsCombining native code with NodeJS can be a fun afternoon project but would this make sense in a production environment In most cases probably not The reason why I m saying this is that modern NodeJS interpreters are blazingly fast They can perform at the level required for most of the use cases for which a Lambda function would be adequate Having to deal with the baggage of complexity introduced by a dynamic library written in Rust may not be the perfect solution Moreover in most cases Lambda functions are small enough that it would be wiser to migrate them entirely to a more performant runtime rather than having to extract a certain part of it into a library Before deciding to partially or entirely rewrite a function I recommend doing some actual measurements and performance tests XRay can help a lot to trace and diagnose bottlenecks in our code On the other hand in certain situations it might be useful to have a native binding as a dynamic library For example in the case of cryptographic functions like hashing encryption decryption temper verification etc These can be CPU intensive tasks so it may be a good idea to use a native approach for these if we are trying to do image processing AI data engineering or having to do complex transformations on a huge amount of data if we need to provide a single library developed in Rust company wise without the need for rewriting it for every other used stack We could wrappers such as Neon to expose them to other APIs such as the one of NodeJS Links and ReferencesForeign function interface NodeJS C addons GitHub node ffi Neon Node API N API node apiTokio Runtimes Building Rust binaries in CI that work with older GLIBC cross Custom Docker images custom docker imagesLambda runtimes Running Serverless Lambdas with Rust on AWS The code used in this article can be found on GitHub at |
2022-10-03 07:03:06 |
金融 |
RSS FILE - 日本証券業協会 |
協会員の異動状況等 |
https://www.jsda.or.jp/kyoukaiin/kyoukaiin/kanyuu/index.html
|
異動 |
2022-10-03 09:00:00 |
金融 |
RSS FILE - 日本証券業協会 |
つみたてNISA取扱い証券会社一覧 |
https://www.jsda.or.jp/anshin/oshirase/tsumitatenisaichiran.html
|
証券会社 |
2022-10-03 09:00:00 |
金融 |
日本銀行:RSS |
バーゼル委、CPMI、IOSCOが報告書「証拠金慣行の見直し」等を公表 |
http://www.boj.or.jp/announcements/release_2022/rel221003c.htm
|
iosco |
2022-10-03 17:00:00 |
金融 |
ニュース - 保険市場TIMES |
エレメント、「がんを経験した女性を支えるがん保険」リリース |
https://www.hokende.com/news/blog/entry/2022/10/03/170000
|
|
2022-10-03 17:00:00 |
海外ニュース |
Japan Times latest articles |
Sales data stolen from sushi chain rival shared within Kappa Create |
https://www.japantimes.co.jp/news/2022/10/03/national/crime-legal/papers-kappa-sushi-operator-sent-prosecutors/
|
company |
2022-10-03 16:47:30 |
海外ニュース |
Japan Times latest articles |
Medicine prize opens Nobel week clouded by war |
https://www.japantimes.co.jp/news/2022/10/03/world/nobel-prize-medicine-2022-preview/
|
Medicine prize opens Nobel week clouded by warBreast cancer discoveries and mRNA vaccines are potential winners when the Nobel Prize in physiology or medicine kicks off a week of announcements held under |
2022-10-03 16:33:18 |
ニュース |
BBC News - Home |
Plan to ditch 45p tax rate was distraction - chancellor |
https://www.bbc.co.uk/news/uk-63114279?at_medium=RSS&at_campaign=KARANGA
|
chancellorkwasi |
2022-10-03 07:45:35 |
ニュース |
BBC News - Home |
Newspaper headlines: Tories threaten rebellion as tax vote 'delayed' |
https://www.bbc.co.uk/news/blogs-the-papers-63112449?at_medium=RSS&at_campaign=KARANGA
|
papers |
2022-10-03 07:17:35 |
ニュース |
BBC News - Home |
Erling Haaland is Cristiano Ronaldo, Zlatan Ibrahimovic & more superstars in one |
https://www.bbc.co.uk/sport/football/63111430?at_medium=RSS&at_campaign=KARANGA
|
Erling Haaland is Cristiano Ronaldo Zlatan Ibrahimovic amp more superstars in oneWhy Manchester City s Erling Haaland is Cristiano Ronaldo Zlatan Ibrahimovic and other elite strikers in one player |
2022-10-03 07:33:29 |
北海道 |
北海道新聞 |
元代表の大山氏、アドバイザーに Vリーグ2部参入の三重 |
https://www.hokkaido-np.co.jp/article/739936/
|
女子 |
2022-10-03 16:28:12 |
北海道 |
北海道新聞 |
米ハリケーン、死者80人 孤立した島の復旧課題に |
https://www.hokkaido-np.co.jp/article/739945/
|
課題 |
2022-10-03 16:19:57 |
北海道 |
北海道新聞 |
「かっぱ寿司」社長辞任へ 逮捕受け、後任に山角氏 |
https://www.hokkaido-np.co.jp/article/739946/
|
営業秘密 |
2022-10-03 16:29:00 |
北海道 |
北海道新聞 |
細田議長、補充説明「早く出す」 旧統一教会との接点、11日にも |
https://www.hokkaido-np.co.jp/article/739847/
|
統一教会 |
2022-10-03 16:19:13 |
北海道 |
北海道新聞 |
北海道内835人感染 7月12日以来の千人未満 新型コロナ |
https://www.hokkaido-np.co.jp/article/739904/
|
北海道内 |
2022-10-03 16:25:46 |
北海道 |
北海道新聞 |
道内9月短観、2期連続改善 非製造業が回復けん引 |
https://www.hokkaido-np.co.jp/article/739937/
|
企業短期経済観測調査 |
2022-10-03 16:20:59 |
IT |
週刊アスキー |
港町・横浜の街並みと最新のデジタルアートの融合を楽しめる! JR横浜タワー アトリウム2階でソーシャルARアートフェスティバル「ミナトノARアートフェスティバル」を先行開催 |
https://weekly.ascii.jp/elem/000/004/107/4107486/
|
最大規模 |
2022-10-03 16:40:00 |
IT |
週刊アスキー |
牛丼×カレーの相性は…もちろん抜群! 吉野家から「牛カレー」の販売スタート! |
https://weekly.ascii.jp/elem/000/004/107/4107539/
|
販売 |
2022-10-03 16:40:00 |
IT |
週刊アスキー |
『Fall Guys』の限定コンテンツも!Amazonプライム会員向けサービス「Prime Gaming」2022年10月の特典を発表 |
https://weekly.ascii.jp/elem/000/004/107/4107524/
|
fallguys |
2022-10-03 16:10:00 |
コメント
コメントを投稿