読み飛ばしてください おはようございます、しなもんです。 Pythonの公式ドキュメントを読んでたら、なんか知らない便利機能がたくさん出てきました。 なんだこれ。 というわけでまとめてみました。 参考になれば幸いです。 f-stringsの拡張機能 f-strings、便利ですよね。大好きです。 そんなあいつには裏技があるみたいです。 デバッグ用の=演算子 Python 3.8以降、f-stringの中で=演算子を使用することで 変数名とその値を同時に表示できるらしい。
前置き こんにちは。データエンジニアの山口歩夢です! この度、技術書典16に向けて、Streamlitの入門書を執筆しました。 StreamlitはPythonで書かれたOSSのフレームワークで、こちらを使用することでWEB開発の知識がなくても非常に簡単にアプリケーションの作成をすることができます。 日本語の情報がまだ少なく、英語のドキュメントや記事で情報を集める必要がある中で、多くの方々に魅力を伝えたいと考え、今回執筆に至りました。 ※下記のリンクで電子版を販売開始しました! 謝辞 今回、こちらの技術書の作成にあたって、 Snowflake Superheroesの小宮山さん(@kommy_jp)に内容のレビューや表紙の絵の作成をしていただきました。 誠にありがとうございます 小宮山さんのSnowflakeについての著書はこちらです! コンテンツの内容 簡単にどんな内容を書いたのか解説さ
この記事ですることを3行で Pythonの標準ライブラリでできる並列実行を、あらためて総当たりで速度比較しよう ウォーターフォールチャートで、それぞれの並列処理の処理時間の特徴を可視化しよう boto3の実行をモデルケースにして、どの並列処理が一番早いのかを調べよう この記事の結論を先に Python 3.12から本格的に使えるようになったサブインタープリターは、CPUで実行する処理について言えば、従来のサブプロセスよりも高速 boto3の実行は、サブインタープリターよりも署名付きURLの非同期実行のほうが速い → S3からの10ファイルの取得であれば、実行時間を90%削減できます → Bedrockの3回実行であれば、実行時間を60%削減できます 今回使ったソースコードはこちらに置いています。 お手持ちの環境で再実行できるようにしていますので、気になる方はぜひ。 どうしてこの記事を書くの
※本記事で言及しているReflexのdiscord内に日本語チャンネルをつくってもらいました。もし、興味をもった人がいたら参加してみてください。 1.PythonだけでWebアプリをつくるライブラリが増えている 最近(2024.05)、Python界隈ではPythonだけでWebアプリが作れるライブラリが増えています。詳しくは他の記事を参照してもらえればと思います。 以下の記事がとても参考になりました。ありがとうございます。 2.ライブラリの分類 こうしたライブラリも大きくわけて2つの種類があるように思います。 ①データ解析の結果を表示するダッシュボードライブラリ ②汎用的なWebアプリをつくるローコードライブラリ ①ダッシュボード系ライブラリ たとえば、上記の記事にも出てきますし、ネットでもかなり情報の多い、StreamlitやDashは項番1のダッシュボードライブラリに該当すると思いま
動機 Pythonはグラフ描画系のライブラリが豊富です。例えば、 matplotlib / seaborn pyqtgraph plotly bokeh vispy などがあります。それぞれ長短あるのはまあ言うまでもないですが、統一的なAPIが欲しくなりますよね...ということで統一1 2したのがこちらになります。今後、ちょっとした解析、デスクトップアプリ、ウェブブラウザなど、様々な場面で同じコードで動かせたらきっと楽しいですね。 ラッパーを作るということは、APIの設計をより理想的にできるということでもあります。これまでのPlot系ライブラリの悪いところを一掃しましょう。 既存のPlot系ライブラリのダメなところ 1. IDEの型チェック・補完が効かない matplotlibはplt.subplotsやplt.errorbarなど、返り値が引数によって変ったり、*argsや**kwarg
案件でAWSの構成図を作成する機会があったので備忘兼ねて投稿します。 ※約5分で読めます 1. グループの内側から作成していく AWSの基本的なグループ構成はこんな感じ 添付の場合、個人的には Public subnet or Private subnet > Availability Aone > VPC > Region > AWS Cloudの順番で作成することをオススメします。理由は内側のグループが肥大すると外側のグループの手直しが発生するためです。 今回作成した時に外側から作成してしまい、めっちゃ時間がかかってしまいました... 2. グループの左上を掴む 日本語が下手ですみません。 なぜ左上を掴まないといけないか?試しにPublic subnetをクリックしてドラッグをすると、添付の様になりました。 クリックをするとグループの外から選択されてしまうため、選択したグループ内に存在
はじめに 34 歳のとき、勤めていた会社の経営が傾き早期退職を促されたのを契機に独立しました。その後、41 歳で Authleteオースリート 社を設立しました。諸般の事情で現在も Authlete 社の代表取締役という肩書きを持っていますが、経営者的な仕事は他の人に任せ (参照: シリコンバレーのプロフェッショナル CEO を迎えて米国市場に挑戦する日本のスタートアップの話)、50 歳目前の現在もプログラマとしてコードを書き続けています。 Authlete 社設立 (2015 年 9 月) から 8 年半弱経過したものの、まだまだ小さな会社で道半ばであるため、起業家として何か語るのは時期尚早ではあるものの、軽い体調不良が長引く中、『自分のエンジニアとしてキャリアを振り返ろう!』という記事投稿キャンペーンを見かけ、生きているうちに子供世代のエンジニアの方々に何か書き残しておこうと思い、文章
はじめに まず↓の記事を見てない方はぜひ見てください! 自分にとってはこの記事には「えっ、ナニコレ!」なテクニックが多く、特に解説もなかったのでいろいろ調べてたら休日が消えてました... なのでその時間の供養もかねて、自分が知らなかった部分を中心に、僭越ながら元記事の解説を書いてみたいと思います。 ちなみに、以下が元記事のコードそのままを実装したものです。たしかに掲載コードだけで要素がグリグリ動きますね。 See the Pen js-drag-move-original by www-tacos (@www-tacos) on CodePen. 初耳1: $img まずコードのここ <img id="$img" src="https://js.cx/clipart/ball.svg" width="40" height="40"> <script> $img.onpointermove
先日、Qiitaに投稿された一つの記事が注目を集めました。 元記事では、htmxというJavaScriptライブラリが英語圏で認知を獲得しているとして、インストールの仕方から使い方について公式のドキュメントの全体にわたって簡単に説明が行われています。 さまざまなプラットフォームでこの記事に対する反応を観察してみると、どちらかというと懐疑的な見方のほうが優勢のように見受けられます。ただ、多くのコメントは誤解に基づいているように見受けられました。「JSが要らない」といった元記事のミスリードによるところも大きそうですが1、なぜhtmxが大きく支持を得つつあるのかを理解するには、背景情報を含めて理解することが必要です。 htmxは、最近の複雑化するフロントエンド技術に対する単なる逆張りではありません。これまで30年ほどのあいだウェブ上のシステムを支え続けた「ハイパーメディア」の持つ強力さに今一度目
記事の概要 私(芝浦工業大学学部4年生)が大学2年時に1人で制作した、大学のポータルアプリ(ポータルサイトからスクレイピングして時間割などを表示する)が、大学に正式採用され、公式アプリ"ScombApp"としてリリースされるに至った経緯を時系列順に説明します。 ホーム画面 時間割画面 制作の動機 大学のポータルサイト使いにくいがち。 ポータルサイトのスマホアプリ版があれば便利そう。 他にやってる人いなさそうだし、最初に作ったらみんな使ってくれそう。 ポータルサイトの問題点 大学ポータルサイトで使いにくかった点を挙げていく。 とりあえずこれを克服することを目標にした。 ログインの時に自動補完が使えない 制作当時はBASIC認証で、スマホからだとログインの自動補完ができなかった。 毎回手打ちでパスワードを入力している人がほとんど ←!? 次の授業や教室を確認するだけでも、毎回手打ちログインが必
世の中には、一見関係なさそうな物理現象がITシステムに不可思議な影響を及ぼすことがあります 例えば,500マイル以上離れた場所にメールが送れないという話だったり 中国人のAさんがお茶を入れると会社のネットが繋がらなくなる という話があります。 私の場合は、祖母が就寝するとDBインサートが失敗する、という状況でした 実家の見守りシステム 問題が起きているのは、離れた実家にいる一人暮らしの祖母の状態を見守るために作成した自作のシステムです。 気温や湿度、CO2濃度、明るさ、部屋のドアの開閉、冷蔵庫の開閉の状況をモニタリングできるようにしています。 Raspberry Piに各種センサが接続され、定期的にInfluxDBに送信し、Grafanaという可視化ツールでいつでも見られるようにしています。 これらの情報を見ることで、祖母の家の部屋の温度が適切か、活動しているか、部屋にいるかなどが分かりま
この記事について この記事は、Linux上でコマンドをそこそこ実行してきた私が独断と偏見でよく使う5大コマンドをまとめたものです。 痒い所に手が届くような内容になることを願って記します…。 コマンドたち ①netstat -anp | grep "Listen " 実現できること LISTENしているポートを確認できます。 アプリケーションやミドルウェアに接続できない場合のトラブルシュートに使用できます。 使用方法 ポートの状況を調べたいサーバ上でコマンドを打つだけです。 127.0.0.53:53や:::80の箇所: LISTENしているIPアドレスとポート 0.0.0.0:*や:::*の箇所: 接続する側のIPアドレスとポート このような状況ではSSL設定したはずなのに、443ポートが開いていないぞというような形で調査ができます。 $ netstat -anp | grep "L
この記事はAWS(Amazon Web Services)Advent Calendar 2023 シリーズ2の17日目の記事として書かれました。 はじめに リージョン名をリソースに含める命名規則にしたとき、どのようにリージョン名を含めるか悩みませんか? 結論 空港コードを使いましょう。 エッジロケーションも全て含めたコード一覧 ※公式ではなく有志の善意で成り立っているリポジトリのためリンク切れの場合はご了承ください。 WorkSpacesに対応しているリージョンのコード一覧 drp-nrtでページ内検索すると出てきます。 日本語ページの情報更新が追いついていないことがあるので、英語ページを参照することをおすすめします。 詳細 命名においてリージョン名をどのように一意にするか AWSのリージョン名はxx-yyyy-zという規則になっています。(y部の文字数は可変) この規則に対してある程度
はじめに 昔の自分がやらかした過ちをここらへんで懺悔しておきます。 願わくば同じ失敗をしてしまう人が少しでも減りますように。 「いやこんなコマンド打たんだろ…」と思いますよね。なんか流れでやっちゃう時があるんです。ホントに。 【第1章】不穏な依頼・/直下の作業パス もう何年前になるでしょう。IT業界に就職して数年、とあるUNIX系OSで管理系機能はそれなりに理解し、開発にも操作にもすっかり慣れてきて、ちょっとした自信もついてきた頃のことでした。 先輩:「わたし君、明日お客さんセンターに搬送するマシンで最後にちょっとしたテストしたいんだ。やっといてくれないかな。オレ今日はもう用事があって。」 わたし君:「あ、いっすよ。どこに置きました?」 先輩:「作業ディレクトリ消しちゃった後だから、/直下にtest.tmpって作ってftpで入れてあるから実行権限付けて動かしてみて。じゃあ、お先~」 わたし
1. はじめに ソフトウェア開発のチームに、新しいメンバーが入ってくることはよくあります。 以前に新卒社員がチーム入ってきた場合の育成方法を紹介しました(こちら)。 今回は、新卒社員ではなく、他の会社から中途入社か同じ会社の部署異動で来る新メンバーの話です。 (エンジニアが数百人などで規模が大きい会社の場合、部署が違うと仕事のやり方が全く変わる場合があるので、今回は中途入社と他の部署からの異動を同じように「新メンバー」として扱います) 会社や部署が変わると仕事のやり方が大きく変わるため、仕事のやり方に戸惑うことが多いと思います。 本稿では、そのような「新メンバー」を活躍しづらくしてしまうアンチパターンとその対策を紹介します。 2. 中途入社や部署異動で来た新メンバーが適応することの困難さを理解する 中途入社や部署異動で来た新メンバーが組織に適応することは、新卒社員のそれとは別の難しさがあり
弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 はじめに VSCodeは世界で多くの人が使っているコードエディタです。 開発の際に使用している人も多いのではないでしょうか。 今回はそんなVSCodeの拡張機能を一挙に紹介していきます。 拡張機能 VSCodeは世界中で支持されているコードエディタですが、最大の魅力が「拡張機能」です。 機能を追加して、より自分が使いやすいコードエディタにすることができます。 拡張機能のインストール 拡張機能のインストールのやり方を説明します。 アクティビティバーの拡張機能マークをクリックする(四角が4つあるマークです) インストールしたい拡張機能を検索する 拡張機能を選ぶ インストールをク
↓PythonをSegmentation Faultで落とすのが最近流行っているようなので。 pythonを三行でセグフォらせる pythonを2行でセグフォらせる pythonを1行でセグフォらせる Pythonを33文字でセグフォらせる Pythonをctypesを使わずに1行でセグフォらせる Rustを5行でセグフォらせる 主語(Python)をC言語に変えるだけで途端につまらなくなりますが、やってることは同じです。 コード gcc 10.1.0で動作確認(警告は出ます) > gcc segf.c segf.c:3:4: 警告: データ定義が型または記憶域クラスを持っていません 3 | *a;main(){*a=0;} | ^ segf.c:3:5: 警告: 型がデフォルトの ‘int’ に ‘a’ の宣言内でなります [-Wimplicit-int] 3 | *a;main(){*
$ docker run -ti python:3.8-slim bash # pip install mysql-connector-python==8.0.20 # python >>> import random >>> import mysql.connector Segmentation fault 何が起こっているのか。 前提 mysql-connector-pythonは8.0.20からlibcrypto.so.1.1 とlibssl.so.1.1をbundleするようになりました。 $ pip show -f mysql-connector-python | grep lib Location: /usr/local/lib/python3.8/site-packages mysql-vendor/libcrypto.so.1.1 mysql-vendor/libssl.s
今朝起きたら、とんでもない論文を見つけました。 Othello is Solved ゲームの オセロが"解かれた(弱解決)" というのです。飛び起きました。それで、16時まで二度寝してから読みました。 注意すべきは、この論文が査読を経て公開されているわけではないこと、つまり形式上特にチェックを受けたものではないことです。ただ、タイトルからして非常に衝撃的ですので、個人的に読んでみました。この記事では、私がこの論文(およびソースコード)を読んでわかったことを、なるべくわかりやすくまとめます。随時更新します。 余談ですが、このタイトルはどうやら、チェッカーというゲームが以前弱解決された際の論文"Checkers Is Solved"のオマージュだろうという話です。 この記事には専門用語が出てくるので、最後の方に基礎知識として重要な用語や知識をまとめました。 お詫びと訂正 この記事の内容は、私が
はじめに この記事はAPIの基本的な実装方法を丁寧に解説します。基礎を学びたい方、今更聞けないような知識の振り返りを求める方の役に立つことを願っています。もう十分理解できている!という方は、目次から実装にとんでみてください。 具体的にはHTTPと呼ばれる通信方法を利用した、シンプルな本の貸し出しシステムの土台を考えます。要件の各ステップで、設計の基本原則やベストプラクティスについても触れながら、より実践的な知見を共有できればいいなと思います。 弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 基本用語 Webに関する基礎知識の解説記事はQiitaに豊富にあったので、要点を抑えつつリンクをまとめました。 WebAPI Web
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く