並び順

ブックマーク数

期間指定

  • から
  • まで

201 - 240 件 / 309件

新着順 人気順

イテレータの検索結果201 - 240 件 / 309件

  • Google Apps Script で6分制限を超えるためのライブラリを作った - Link and Motivation Developers' Blog

    自己紹介 はじめまして。リンクアンドモチベーション プロダクトデザイン室 データユニットに所属している みく@Ryo Koizumi です。好きな食べ物はチョコレートです。 データユニットはヘルススコアを用いた既存事業の収益改善から、データを用いた新規事業の模索まで幅広く行うユニットです。チーム内でもデータサイエンティストをはじめPdMやデータエンジニアなどさまざまな役割のメンバーがおり、社内スタートアップという自己定義のもとに日々邁進しています。 その中でも自分はアプリケーション開発の経験が長いため、データサイエンティストが作成したモデルのアプリケーションへの組み込みや、DevOpsの整備、データ収集や可視化などデータエンジニアリング全般を担当しており、チームの生産性とケイパビリティを最大化するための活動を行っています。 今回は、データの収集において直面した Google Apps Sc

      Google Apps Script で6分制限を超えるためのライブラリを作った - Link and Motivation Developers' Blog
    • yield の使い方

      Python のキーワード yield の使い方について説明します。 目次 yield とは yield でジェネレータを作る yield でコンテキストマネージャを作る yield from でジェネレータを入れ子にする その他の使い方 yield とは yield は英語で「生み出す」「生む」「起こす」といった意味の単語とのことで、 Python における「 yield 」は、 コードを構成する構成要素(「キーワード」)のひとつで、 yield 式を作るためのもの です。 def get_abc(): yield 'a' yield 'b' yield 'c' print(list(get_abc())) # => ['a', 'b', 'c'] print(list(get_abc())) # => ['a', 'b', 'c'] 「 yield 式 」は、関数(あるいはメソッド)の

        yield の使い方
      • Python: TFRecord フォーマットについて - CUBE SUGAR CONTAINER

        TFRecord フォーマットは、TensorFlow がサポートしているデータセットの表現形式の一つ。 このフォーマットは、一言で表すと TensorFlow で扱うデータを Protocol Buffers でシリアライズしたものになっている。 特に、Dataset API との親和性に優れていたり、Cloud TPU を扱う上で実用上はほぼ必須といった特徴がある。 今回は、そんな TFRecord の扱い方について見ていくことにする。 使った環境は次のとおり。 $ sw_vers ProductName: macOS ProductVersion: 11.5 BuildVersion: 20G71 $ python -V Python 3.9.6 $ pip list | grep -i tensorflow tensorflow 2.5.0 tensorflow-datasets

          Python: TFRecord フォーマットについて - CUBE SUGAR CONTAINER
        • 「Rust 1.51.0」安定版がリリース

          従来は、Rustを使用してライフタイムあるいは型をまたいだパラメータ化が可能だったが、型の値を簡単にジェネリックスにできなかったことから、「Rust 1.51.0」では任意の整数、bool型、char型の値に対してジェネリックスなコードの記述が可能になり、型と長さ全体でジェネリックスな独自の配列構造体を使えるようになっている。 また、const generics安定化の一環として、それを使用するstd::array::IntoIterも安定化し、IntoIterによって任意の配列に対して値によるイテレータを作成できるようになった。 依存関係に関しては、Cargo.tomlに新しくresolverオプションが追加され、パッケージが通常の依存関係と開発の依存関係として共有されている場合は、開発の依存関係の機能は現在のビルドに開発の依存関係が含まれている場合にのみ有効となり、パッケージが通常の依

            「Rust 1.51.0」安定版がリリース
          • 基本トレイト - あるマのメモ書き

            概要 Rustの型(struct, enum)は継承が不可。 メソッドは実質関数に過ぎない。 ある特定の振る舞いの抽象化はトレイトを通して実現する。 (この点からRustの型はHaskellのdata型、トレイトは型クラスに対応すると考えることが出来る。) 標準スタンダードライブラリではすでに共通の処理がまとめられた基本的なトレイトが定義されている。 Rustで開発を行うにあたってこれらの基本トレイトの理解は欠かせない。 基本トレイト ToString 型が文字列に変換できることを表すトレイト。 to_string() メソッドを持つ // ジェネリックスを使った宣言 fn to_string1<T: ToString>(item: &T) -> String { item.to_string() } // impl トレイトを使った宣言。`to_string1`メソッドの糖衣構文となる

              基本トレイト - あるマのメモ書き
            • 最強のC++実装TOMLパーサーが完成した - in neuro

              ここ1, 2週間費やしていた作業が完了し、めでたくtoml11のバージョン2.0.0をリリースした。 github.com このバージョンアップで、 コードが凄まじく美しくなり、 エラーメッセージが最強になり、 TOML v0.5.0 (最新) に対応した。 せっかくなのでこの記事で何をしたのか書いていこうと思う。宣伝ついでに、自分でパーサを書く人(最近はフルスクラッチ自作コンパイラが流行っているので)の一助になれば良いのだが。 TOML 0.5.0への対応 TOML v0.5.0では、それなりの数のアップデートが入った。toml11 v2.0.0ではその全てに対応している。順を追って説明していこう。 dotted keys まず、以前からネストされたテーブルの名前は.で繋げていた。 [a] n = 10 [a.b] # <- これ m = 20 # {"a" : {"n":10, "b"

                最強のC++実装TOMLパーサーが完成した - in neuro
              • Flaskのストリーミングを利用してみる | himenon.github.io

                FlaskにStreaming Contentsというものが存在したので、 この実装方法を見てみる。 http://flask.pocoo.org/docs/0.12/patterns/streaming/基本​本記事中ではサンプルコード の一部を使って解説しながら進めていくので、サンプルコードを適宜参照してほしい。 まずは、コードを書いてみる。適当なディレクトリ(ここではmyapp)にserver.pyを用意する。 @app.route('/hello-world') def hello_world(): def generate(): for comment in get_comments(): yield '<li>' + comment + '</li>' time.sleep(0.5) # 動作をわかりやすくするために追加 return Response(generate())

                  Flaskのストリーミングを利用してみる | himenon.github.io
                • Rustの型変換

                  Rustの型変換まわりを頭の整理がてらまとめました。 cast Rustではas演算子でキャストを行えます。 as演算子は数値やbool, char, ポインタ等一部の型のみで利用できます。 as演算子はパニックを起こさないので安心して利用できます。 整数のキャストの例を載せておきます。 // 整数のサイズが変わらない場合はデータ自体に変更はなく、 // 型の解釈が変わるだけ let x: u8 = 150; let y = x as i8; assert_eq!(y, -106); assert_eq!(format!("{:b}", x), "10010110"); assert_eq!(format!("{:b}", y), "10010110"); // 整数のサイズが小さくなる場合は上位ビットが切り詰められる let x: u16 = 500; let y = x as i8;

                    Rustの型変換
                  • とほほのPython入門 - とほほのWWW入門

                    とほほのPython入門 トップ > Python入門 目次 索引 概要 Pythonとは 参考リンク インストール Pythonの実行 対話モード キーワード Python 3 構文 Hello world! 文・式 コメント(#) インデント エンコードルール(coding:) print文 数値・文字列・型 整数(int) 長整数(long) 浮動少数点数(float) 虚数(complex) 論理値(bool) 値無し(None) 文字列(str) エスケープシーケンス(\x) 文字列のフォーマット(%) 変数・定数 変数 定数 ドキュメントストリング(__doc__) リスト・タプル・辞書 リスト(list) タプル(tuple) 辞書(dict) リスト関数(map(), filter(), reduce()) リストの内包表記 セット(set) 演算子 算術演算子(+, -,

                    • 12月新刊情報『JavaScript 第7版』

                      David Flanagan 著、村上 列 訳 2021年12月2日発売予定 784ページ ISBN978-4-87311-970-0 定価5,060円(税込) JavaScriptは最も多くのソフトウェア開発者に使用されているプログラミング言語です。JavaScriptを包括的に解説する本書は、第6版から大幅に加筆および更新し、全面改訂しました。 はじめにJavaScript言語仕様の基本的な構文と機能について豊富なサンプルコードを使って学習します。そしてJavaScript標準ライブラリを詳述し、Webブラウザで使われるクライアントサイドJavaScriptやNode.jsで使われるサーバサイドJavaScriptについてわかりやすく説明します。またNode形式と標準形式のモジュールの使い方、イテレータとジェネレータ、async/awaitやPromiseなどの非同期プログラミングの新

                        12月新刊情報『JavaScript 第7版』
                      • Rust 1.65を早めに深掘り - あずんひの日

                        こんにちは、あずんひ(@aznhe21)です。この歳になってついに運転免許の取得を決意しました。 さて、本日11/4(金)にRust 1.65がリリースされました。 この記事ではRust 1.65での変更点を詳しく紹介します。 もしこの記事が参考になれば、記事末尾から活動を支援頂けると嬉しいです。 11/4はテレビドラマ「TRICK」の登場人物上田次郎の誕生日 ピックアップ 関連型でジェネリクスが使えるようになった letによる束縛でパターンとelseを書けるようになった 名前付きブロックにより処理途中で抜けられるようになった バックトレースの取得・管理ができるようになった RLSの終焉 安定化されたAPIのドキュメント core::ops::Bound::as_ref core::pointer::cast_mut core::pointer::cast_const std::backt

                          Rust 1.65を早めに深掘り - あずんひの日
                        • Rustで文字列イテレータを連結するときに便利な itertools::join は結構遅い - Qiita

                          TL;DR Rustで、 「文字列(String or &str)のベクタなどに対して、何らかの処理を施した上で、スペース区切りで連結したい」 というような状況は時たま出てくるかと思います。 これを実現する方法は何通りも考えることができ、そしておそらく最もシンプルかつ可読性が高い方法は itertools - crates.io の itertools::join メソッドを使うことだと思います。 が、 itertools::join は他の方法に比べてパフォーマンスが結構悪いです。 パフォーマンスを求める場合は、以下のようにいったん collect でベクタにしてから join するのが良さそうです。 ベンチマークをとる ベンチマークをとって調べてみましょう。bencher を利用します。 シチュエーションとしては、「\tRust\tが1万個含まれるベクタを用意して、それぞれの先頭と末尾

                            Rustで文字列イテレータを連結するときに便利な itertools::join は結構遅い - Qiita
                          • AWS CLIを使ってKinesis Data Streamsのレコードをシーケンス番号から取得してみた | DevelopersIO

                            Amazon Kinesis Data Streamsのストリームにレコードを追加すると、時間とともに単調増加するシーケンス番号が割り振られ、ポインターとしてデータが保存されます。 このようにすることで、シャード内ではレコードが時系列順に並びます。 逆に、ストリーム内のデータにアクセスする場合、シャードを指定し、イテレーターを移動させながら、シーケンシャルにレコードをアクセスします。 Producerはシャードを束ねたストリームに対して操作しますが、Consumerは特定のシャードに対して操作します。 ご注意ください。 本記事では シャード番号 シーケンス番号 が与えられた時に、その実レコードを AWS CLIで取得する方法を紹介します。 Kinesisストリームを処理するワーカーにデッドレターキュー(DLQ)を設定し、エラーの原因になったレコードを確認するようなユースケースを想定していま

                              AWS CLIを使ってKinesis Data Streamsのレコードをシーケンス番号から取得してみた | DevelopersIO
                            • 今日は YAPC::Kyoto 2023 の日です - Pixel Pedals of Tomakomai

                              昨日 に引き続き、今日は Perl 神社 に来ていますので、自分用にメモを残しておきます。 オープニング YAPC Kyoto 成功祈願の様子の動画 開発成就、成果達成! YAPC Kyoto 2020 年から3年ぶりに焼き直し Reboot 蓋付きペットボトル、会場配布のもの、以外は飲食禁止 禁煙 疫病対策はマスク、アルコール消毒、ソーシャルディスタンス no photo のタグを付けてる人は写真を撮らないよう CoC 守りましょう #yapcjapan 、 #yapc_sp #yapc_gy 、 #yapc_do Perl神社の参拝回数、金額に上限はありません( TPF に寄付) Helpfeel さんのスポンサーセッション 会場名をつけた Gyazo, Scrapbox, Helpfeel なんだけど、 2 つしかつけられなかった 【企画】春のエンジニア ぶつかり稽古 2023 秋の

                                今日は YAPC::Kyoto 2023 の日です - Pixel Pedals of Tomakomai
                              • 【Python】mapの正しい使い方 - Qiita

                                この真意をmap(function, list)を整形していきながらわかりやすく解説します。 整形途中の定義には?マークを付けます 学びたての認識 listの各要素に対して一定の処理を行ったモノを使いたい場合はmap関数を使います。戻り値はmapオブジェクトというもので、一種のイテレータです。イテレータとは、for文で回すことができるオブジェクトのことです。mapオブジェクトはlistではありません。 >>> iterable = map(int, ["1", "2", "3", "4", "5"]) >>> for i in iterable: ... print(i) ... 1 2 3 4 5

                                  【Python】mapの正しい使い方 - Qiita
                                • Python のイテレータってなに? | 民主主義に乾杯

                                  # 1. イテレータを触ってみる。 # 1.1. コードから触ってみる。 イテレータとは、list, tuple, set などの集合を表現するオブジェクトを iter 関数 を使って コピー したようなものです。 # # 対話モード >>> に # コピペで実行できます。 # リスト = [1, 2, 3, 4] イテレータ = iter(リスト) イテレータ list(イテレータ)

                                  • Go Cloud#3 Go CloudのDocStoreを使う | フューチャー技術ブログ

                                    TIG DX Unitの渋川です。今回はGo Cloudの紹介の連載の第3弾です。 Go Cloud#1 概要とBlobへの活用方法 Go Cloud#2 Pub/Subの概要紹介 Go Cloud#3 Go CloudのDocStoreを使う(この記事です) Go Cloud#4 URLを編集するパッケージ Go Cloud#5 AWSのローカルモック環境であるLocalStackを活用する Go Cloud#6 GCPのローカルエミュレータを活用する Go Cloud#7 PubSubドライバー(pubだけ)を実装してみる Go Cloudにはいろいろ便利な機能がありますが、ほとんどの機能は既存のAPIへの薄いラッパーだったりします。そんな中、よくぞ実装したな、と思われるのがDocStoreです。 DocStoreはFireStoreやDynamoDB、MongoDBへの透過的なアクセ

                                      Go Cloud#3 Go CloudのDocStoreを使う | フューチャー技術ブログ
                                    • もう一度理解する、JavaScriptの配列とコピー - Qiita

                                      この記事はKobe University Advent Calendar 2019の23日の記事です。一日の遅刻です。いい加減に遅刻癖がつきそうな感じなので本当によくないですね、申し訳ないです。 みなさんは配列をコピーするとき、array.slice()を使っていますか?それとも、[...array]でしょうか。1 本記事では、なんとなく曖昧になっているかもしれないJavaScriptでの配列のコピーについて、もう一度おさらいして理解を深めなおすことを目指します。 「配列」の「コピー」とは? そもそも、配列をコピーする、とは、どのような操作のことを指すのでしょうか。 これはコピーではない、というのは、みなさんもご存知の通りのことと思います。2 記事に入るにあたって、まずはJavaScriptの配列とはどのようなものなのか、コピーするとはどういうことかを、ここでおさらいしてみることにしましょ

                                        もう一度理解する、JavaScriptの配列とコピー - Qiita
                                      • クロージャ:環境をキャプチャできる匿名関数 - The Rust Programming Language 日本語版

                                        クロージャ: 環境をキャプチャできる匿名関数 Rustのクロージャは、変数に保存したり、引数として他の関数に渡すことのできる匿名関数です。 ある場所でクロージャを生成し、それから別の文脈でクロージャを呼び出して評価することができます。 関数と異なり、呼び出されたスコープの値をクロージャは、キャプチャすることができます。 これらのクロージャの機能がコードの再利用や、動作のカスタマイズを行わせてくれる方法を模擬しましょう。 クロージャで動作の抽象化を行う クロージャを保存して後々使用できるようにするのが有用な場面の例に取り掛かりましょう。その過程で、 クロージャの記法、型推論、トレイトについて語ります。 以下のような架空の場面を考えてください: カスタマイズされたエクササイズのトレーニングプランを生成するアプリを作るスタートアップで働くことになりました。 バックエンドはRustで記述され、トレ

                                        • Python処理系入門 〜1 + 1 で学ぶ処理系解読の基礎〜 - yigarashiのブログ

                                          この記事は CAMPHOR- Advent Calendar 2018 4日目の記事です. 1. はじめに プログラミング言語 Python は汎用の動的型付き言語で,機械学習や Web 開発を中心に幅広く使われています.特にここ数年の Python 人気は凄まじいものがあり,某大学生協の本屋では,プログラミング系の平積みコーナーが一面Python 関連書籍で埋め尽くされています.所属しているコミュニティの関係でプログラミング初心者の学生にもよく会うのですが,第一言語が Python という方が非常に多く,まさに猫も杓子も Python といった状況です. そんなわけで,人々がこぞって Python でプログラムを書いているわけですが,「Python 自体がプログラムである」という事実に目を向けたことのある人は非常に少ないと思います.みなさんが Python のプログラムを書いて実行する時

                                            Python処理系入門 〜1 + 1 で学ぶ処理系解読の基礎〜 - yigarashiのブログ
                                          • lower_bound で混乱している人かわいそう - えびちゃんの日記

                                            言語さんサイドにも問題があるというのはそうかも。 とはいえ、理解が足りないまま「わかりにくい」と言っている人はかわいそうなので、解説をします。 名前について なんで「x 以上の最小値を得る関数」が lower_bound と呼ばれているのかわからん*1 まず、それを得る関数ではないです。イディオムとしてそう覚えてしまっているような人が多いため、こうなってしまう人が多い気はします。 実際には値ではなくイテレータを返すもので、「x と等価 (equivalent) な値がある区間の下限の位置」が返ってきます。ここでの equivalent というのは == とは違う概念なのですが、とりあえず(int のような型では)== と同一視してよいので、詳細は後述とします。 また、upper_bound についても同様で、「x より大きい最小値を得る関数」ではなく、「x と等価な値がある区間の上限の位置

                                              lower_bound で混乱している人かわいそう - えびちゃんの日記
                                            • C++ の小手先の速度改善 - Qiita

                                              class Foo{略}; void hoge( Foo const & f ); void fuga( Foo const * fp ); Foo piyo(); という状況で hoge( piyo() ); と書けるから。 ポインタで受ける fuga を呼ぶためには一回変数に受けないといけないのでめんどくさい。 もちろん(速度目的ではなく)ポインタの指す先を書き換えてほしいということでポインタを使うことは大いにある。 ムーブセマンティクス ユーザー定義クラスで適切に定義するとめちゃくちゃ速くなることがある。 ユーザー定義クラス以外では、コンパイラが勝手にやってくれるので、あんまり意識して書く必要はないんじゃないかな。 ※ ユーザー定義クラスに適切に move を入れるのはあまり小手先という気がしない。 noexcept ユーザー定義クラスで move コンストラクタを noexcept

                                                C++ の小手先の速度改善 - Qiita
                                              • RISC-V で自作OS - 借り初めのひみつきち

                                                じだいは RISC-V です。 github.com RISC-V とは Windows でよく使われている x86 は 40 年以上前から基本的に互換性を持ったまま拡張を続けた結果、現代ではほとんど必要ない機能との互換性のためにかなり複雑な仕様になっています。 また、 Arm に比べると高価で発熱が多く構成の自由度が低いので Windows 以外の用途ではあまり使われません。 Windows 以外でメジャーな Arm は組み込みからサーバーまで幅広い用途に使われますが、ライセンスやロイヤリティの関係でベンダーの自由度が制限されていて離れるベンダーが増えてきています。 ある程度の性能が必要なコンピュータは今までは x86 か Arm の実質2択でしたが、最近はシンプルで自由な RISC-V が注目されています。 RISC-V の命令セット RISC-V の命令セットは、32bit 基本命令

                                                  RISC-V で自作OS - 借り初めのひみつきち
                                                • 独習C# 第5版 を読んだレビュー - Qiita

                                                  はじめに このたび、独習C# 第5版を著者の山田祥寛さんよりご献本いただきました。 今回はこちらの書籍についてレビューをしていきます。 書籍について 独習C# 第5版はタイトルのとおり、C#について解説されている技術書です。 C#の基礎となる.NET環境の解説からはじまり、基礎的な概念、制御構文、標準ライブラリ、踏み込んだ上級者向けの機能と網羅的に解説しています。 また最新のC# 10にも対応しており、C#7以降に登場した機能については目次や章題にそのことが明記してあります。 このためすでにC#についてある程度触れている方が、最新のC#に追いつくための学習資料として使うこともできるようになっています。 この書籍の特徴 C#の言語機能について網羅して解説している 2022年時点で最新のC# 10の機能にも対応 C# 7以降に登場した機能については目次や章題で把握できるようになっている 各章の

                                                    独習C# 第5版 を読んだレビュー - Qiita
                                                  • Python for文まとめ - Qiita

                                                    0 はじめに この記事について 殆どのプログラミング言語にはfor文なるものが存在します。 for文には、その言語の熟練度と言っても過言ではない程、色々な使い方が存在するものです。 この記事ではPythonでのfor文の用法をまとめてみました。 私の知る限りの用法をまとめましたので、参考にして頂けますと幸いです。 Pythonを少しでもわかる方が対象です。 for文とは for文は次のような事ができます。 ①ある操作を指定した回数繰り返す ②イテレータの要素を1つずつ見ていく イテレータとは簡単に言えば「何かが集まったもの」です。 文字列や配列などがイテレータに該当します。 又、①も実は②に含まれると言うことができます。 発展的な話題なのでそれについては後述します。 1 基本 1-0 カウント変数 for文にはカウント変数というものが存在します。 カウント変数はfor文を回すごとに指定した

                                                      Python for文まとめ - Qiita
                                                    • GAS の各種イテレーターを for ... of で使える反復可能オブジェクトにする - Qiita

                                                      2020年のビッグニュースの一つとして、GAS で新しい JavaScript エンジンである V8 ランタイム(以下 V8)がサポートされたことでしょう。 V8 によって ES2015 以降の構文が(試した限りでは ES2019 の構文まで)使えるようになったため、モダンな文法を使ってプログラムを読みやすくすることが容易にできるようになりました。従来だと Clasp でローカルにソースコードを持ってきてローカルでは TypeScript で……という手段で ES2015 以降の文法を書くことができましたが、GAS 自体で公式サポートされることで楽が出来るしカジュアルに書きたい人と共同開発しやすいしと嬉しいことばかりです。 そんな ES2015 以降の文法で目を引くのがいわゆる for...of 文でしょう。 for...of 文とは for...of 文と呼ばれるものは、従来からある f

                                                        GAS の各種イテレーターを for ... of で使える反復可能オブジェクトにする - Qiita
                                                      • Pythonで多重forループを避ける簡単な手法 - Qiita

                                                        はじめに プログラミングにおいて多重forループ(ネスト) はもっとも避けたい処理のうちの1つだと思います。一か月ほど前に「なぜ我々は頑なにforを避けるのか」という記事がバズっており、2020/11/3現在で1000以上のLGTMが付いていることからも、多くの人はforループをあまり使いたくないのではないでしょうか。 Pythonには簡単に多重forループを避けることができる手法がいくつか存在するので、自分がよく使うものをまとめてみました。他にもあれば、ぜひコメントで教えてください。 そもそも、なぜ多重forループを避けたいのか 人それぞれいろんな理由があると思いますが(上記の記事にも色々詳しく考察されています)、個人的には以下の2点です。 1. 読みづらい 多重forループの例題として、3桁それぞれで0~9のfor文を回すことで0~999を全探索して、500以上かつゾロ目である数字を探

                                                          Pythonで多重forループを避ける簡単な手法 - Qiita
                                                        • SDK Platform-Tools リリースノート  |  Android Studio  |  Android Developers

                                                          Android SDK Platform-Tools は Android SDK のコンポーネントです。 Android プラットフォームとインターフェースするツール(主に adb と fastboot)が含まれます。 Android アプリの開発には adb が必要ですが、アプリ デベロッパーは通常、Studio がインストールするコピーのみを使用します。このダウンロードは、Studio をインストールせずに、コマンドラインから直接 adb を使用する場合に便利です (Studio をすでにインストールしている場合は、Studio がそのコピーを自動的に更新するので、インストール済みのそのコピーを使用することもできます)。デバイスのブートローダーのロックを解除し、新しいシステム イメージを書き込む場合は、fastboot が必要です。このパッケージには以前 systrace が含まれてい

                                                            SDK Platform-Tools リリースノート  |  Android Studio  |  Android Developers
                                                          • Google Cloud Storageのサブディレクトリ一覧をPythonで取得する方法 - 新しいことにはウェルカム

                                                            Google Cloud Storageのサブディレクトリ一覧を、GCP Pythonライブラリを使って取得したかったのですが、 ハマったので、その経緯と方法のメモ書きです。 他の言語のライブラリも、Pythonライブラリ同様APIラッパーなので、応用可能かと思います。 NG 例 最初、下記の方法でサブディレクトリが取得できないかなと試してみましたがダメでした。 from google.cloud import storage client = storage.Clinet() bucket = client.get_bucket('xxxx') dirs = bucket.list_blobs(prefix="a/", delimiter="/") [print(x) for x in dirs] # "a/" ハマりポイント Gooble Cloud Storageも、AWS S3同様

                                                              Google Cloud Storageのサブディレクトリ一覧をPythonで取得する方法 - 新しいことにはウェルカム
                                                            • ハッシュ集合 - Rust By Example 日本語版

                                                              ハッシュ集合 値がなく、キーだけのHashMapを想像してみてください。これはハッシュ集合(HashSet)と呼ばれるものです。(HashSet<T>は、実際にはHashMap<T, ()>のラッパーです。) 「何の意味があるの?フツーにキーをVecに入れればいいじゃん」そう思いましたね? それは、HashSet独自の機能として、要素に重複がないということが保証されるためです。これは全ての集合(set)型がもつ機能です。HashSetはその実装の1つであり、他にはBTreeSet等があります。 HashSetに、すでに存在する値を加えようとすると、(すなわち、加えようとしている値のハッシュ値と、要素中のいずれかの値のハッシュ値が等しい場合、)新しい値によって古い値が上書きされます。 これは、同じ値を2つ以上欲しくない場合や、すでにある値を持っているか知りたい場合にとても有効です。 しかし、

                                                              • iOSのAPIリクエストのCombine実装 - R-Hack(楽天グループ株式会社)

                                                                みなさんこんにちは。ラクマでiOSエンジニアをしているdarquroです。 ラクマは去年12月のリリースでサポートOSをiOS13以上にしました。 それに伴い、Combine Frameworkの利用もプロダクションコードに本格導入しました。 ラクマiOSアプリのアーキテクチャはMVP+Clean Architectureを採用しており、RxSwiftの置き換えではなく、現在はUIのバリデーションの一部やAPIリクエストの一部で使用している形になります。 今回の投稿では、Combine Frameworkの各プロトコルやイテレータなどのおさらいをして、APIリクエストの部分の実装、UnitTestでハマったポイントなどをご紹介したいと思います。 環境 Xcode: 12.3 Swift: 5 それじゃいくで!! まずはCombineについておさらい Publisherは 値を渡す 、 完了

                                                                  iOSのAPIリクエストのCombine実装 - R-Hack(楽天グループ株式会社)
                                                                • [解決!Python]リスト(配列)をソートしたり、逆順にしたりするには(sort/reverseメソッド、sorted/reversed関数)

                                                                  [解決!Python]リスト(配列)をソートしたり、逆順にしたりするには(sort/reverseメソッド、sorted/reversed関数):解決!Python sortメソッドやsorted関数でリスト(配列)の要素をソートしたり、reverseメソッドやreversed関数で要素を逆順に並べたりする方法を紹介する。 # リストの要素をソートする(インプレース) mylist = [18, 0, 16, 6, 15, 7, 9, 1, 2, 5] mylist.sort() print(mylist)  # [0, 1, 2, 5, 6, 7, 9, 15, 16, 18] # リストの要素をソートした新しいリストを作成する mylist = [18, 0, 16, 6, 15, 7, 9, 1, 2, 5] newlist = sorted(mylist) print('mylis

                                                                    [解決!Python]リスト(配列)をソートしたり、逆順にしたりするには(sort/reverseメソッド、sorted/reversed関数)
                                                                  • Python の open 関数と io モジュールをきちんと使うために - 朝日ネット 技術者ブログ

                                                                    はじめに 開発部の ikasat です。 Python の言語・ライブラリ・処理系はプログラマのタスクを手早く簡単にこなせるようにするために設計されており、数行程度のコードを書いただけでも内部で様々なことをやってくれます。 しかし、この便利さが特定のユースケースにおいては逆にお節介になってしまうこともあり、また内部動作が複雑であることにより挙動を修正する方法も分からなくなりがちです。 特に組み込みの open 関数や標準入出力 (sys.stdin, sys.stdout) はその最たる例であり、UnicodeEncodeError / UnicodeDecodeError や TypeError: a bytes-like object is required は Python を使った人であれば誰もが見たことのあるエラーメッセージでしょう。 私自身これまでこの類のエラーが出た時には検索

                                                                      Python の open 関数と io モジュールをきちんと使うために - 朝日ネット 技術者ブログ
                                                                    • 命名 - Rust APIガイドライン

                                                                      以下に例を挙げます。 str::as_bytes()はコストなしに、strをUTF-8バイト列として見たビューを返します。 入力は借用された&strで出力は借用された&[u8]です。 Path::to_strはOSの与えるパスのバイト列に対し、コストの高いUTF-8チェックを行います。 入出力はともに借用されています。小さくない実行時コストがあるため、これをas_strと呼ぶことはできません。 str::to_lowercase()はUnicode規格に沿ってstrを小文字に変換したものを返します。 この処理は文字列のデコードを含み、またメモリの確保も行うでしょう。 入力は借用された&strで出力は所有されたStringです。 f64::to_radians()は浮動小数点数で表された角度を度からラジアンに変換します。 入力はf64です。これが&f64でないのは、コピーに殆どコストが掛から

                                                                      • さよならPython2…!Python2→3に移行したときの思い出 - paiza times

                                                                        秋山です。Pythonエンジニアです。 みなさんPythonは好きですか? 年が明けて2020年1月1日になれば、Python2系のサポートが終了します。感慨深いものがありますね(?)。 www.infoq.com Python3.0が2008年12月3日にリリースされて、もう11年がたちます。 2から3に移行するとき、互換性がなくてみんなが文句を言っていたことも今は懐かしい思い出ですね(?)。 4月15日に開催されるPyCon2020では、みんなでPython2の最後のカタルシス(?)を楽しむらしいです。楽しそうですね。 というわけで、2019年の大みそかに、Python2との思い出を書きたいと思います。 (※正確には2019年10月19日にリリースされた2.7.17が最後のサポートアップデートで、2020年1月1日がサポートが終了、1月中にコードフリーズした上で本当に最後の最後のアップ

                                                                          さよならPython2…!Python2→3に移行したときの思い出 - paiza times
                                                                        • DynamoDBのORM「PynamoDB」を使ってみる | DevelopersIO

                                                                          PynamoDB PynamoDBはDynamoDBのPython用クライアントです。 SQLAlchemyなどのORMのようにDynamoDBを操作することができます。 Boto3などを使ってDynamoDBを操作していると、dict⇄データクラスの変換が発生してコードが冗長になる気がします。 また、dict型だとインテリセンスの問題もあります。クラスになっているとその辺りは楽になる気がします。 インストール pipでインストール可能です インストール pip3 install pynamodb 使ってみる テーブルの定義 テーブルの定義 from pynamodb.models import Model from pynamodb.attributes import UnicodeAttribute, NumberAttribute class User(Model): class M

                                                                            DynamoDBのORM「PynamoDB」を使ってみる | DevelopersIO
                                                                          • Rustゲームエンジンbevyでテトリスを作る

                                                                            bevyは 2020 年に登場した rust 製のゲームエンジンです。 Entity-Component-System(ECS) によるデータ指向設計を採用しており、そのような rust 製ゲームエンジンは他にもいくつかあるのですが、中でも bevy はピュアな rust の関数や構造体で振る舞いを記述するという特徴を持っています。私はいくつかの rust 製ゲームエンジンを触ってみて、bevy の書きごこちが一番気に入りました。 一方、現状の公式 bevy チュートリアルでは、コンソール上にhello world!などのメッセージを表示するところまでしか扱っておらず、ゲームエンジンに期待する機能であるオブジェクトの描画・生成・削除、毎フレームごとの処理の記述などを理解するにはexampleや本体のコードを参照するなど、それなりに険しい道をいく必要があります。 私の場合、bevy でスネー

                                                                            • huggingface/transformersでストリーミング - cockscomblog?

                                                                              AIにテキストを生成させるサービスでは、テキスト生成の速度が遅いとユーザー体験がよくない。ChatGPTは、生成されたテキストが一度に表示されるのではなく、少しずつ表示されるUIになっている。このことで、テキスト生成の完了まで待たずに結果を確かめられる。 テキスト生成の結果を少しずつ表示するためには、生成途中のテキストがストリーミングで返される必要がある。OpenAIのAPIにはstreamオプションがあり、有効にするとserver-sent eventsで結果を返してくれる。 huggingface/transformersのStreamer OpenAI APIではなく、自分たちでhuggingface/transformersを動かしている場合、ストリーミングは困難だった。transformersにはストリーミングをサポートするAPIがなかったためである。 ところが、最近になってこれ

                                                                                huggingface/transformersでストリーミング - cockscomblog?
                                                                              • Javaバージョン履歴 - Wikipedia

                                                                                この記事は検証可能な参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方) 出典検索?: "Javaバージョン履歴" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL(2021年6月) 本稿ではJavaプラットフォームの基準であるスタンダード版のメジャーバージョン履歴を説明する。その他にもエンタープライズ版、マイクロ版、カード版といった周辺エディションが存在し、それぞれが個別にメジャーバージョン改訂を行っているが、いずれもスタンダード版改訂を基準にしそれに後発する時系列でリリースされている。 バージョン一覧[編集] JDK 1.0 (1996年1月23日)[編集] Javaプラットフォームの初回バージョンは、ブランド名「Java」プ

                                                                                • イテレータによってGoはどう変わるのか

                                                                                  イテレータによって Goはどう変わるのか Go Conference 2024

                                                                                    イテレータによってGoはどう変わるのか