プログラミング言語のPythonは数々の魅力を持ち、高い人気を誇る。ただし人によっては不満点もあるだろう。筆者の独断と偏見でPythonの“マル”と“バツ”を紹介する。 出典:日経ソフトウエア、2024年7月号 pp.24-37 「ここがイイ!ここが不満!Pythonの“マル”と“バツ”」を改題、編集 記事は執筆時の情報に基づいており、現在では異なる場合があります。
プログラミングは利用する言語の理解や専門知識、さらに経験が求められる。知識や経験が乏しい場合、「ChatGPT」や「Copilot」「Gemini」といった対話型生成AI(人工知能)でプログラミングを学んでみよう。ソースコードの生成、既存のソースコードの手直しや解説、コマンドの使い方など活用できる場面は多い。 これら生成AIが対応できるプログラミング言語は多い。「理解している」プログラミング言語をChatGPTに尋ねたところ、「Python」「JavaScript」「Java」「C++」「C#」「Ruby」「Swift」「Go」「Rust」「PHP」「SQL」などを示した。CopilotはPython、Ruby、JavaScript、Java。GeminiはPython、JavaScript、Java、C++、C#に加えて日本語のプログラミング言語である「なでしこ」「プロデル」「ドリトル」
ITの力によって、「何かを制作して広く公開する」という行為の難易度は大幅に低下しています。そこで、今回はウェブサイトやウェブサービスの開発を始め、3DCG映像や機械学習、セキュリティなど「ものを作る側」になりたい人を強力にサポートしてくれる動画形式の講座を夏のビッグセール開催中のUdemyからピックアップしてみました。 オンラインコース - いろんなことを、あなたのペースで | Udemy https://www.udemy.com/ ・目次 ◆1:とんでもないボリュームでコスパ抜群・基本的なウェブ開発知識をまとめて習得できる講座 ◆2:STUDIOを使用して簡単に手っ取り早くウェブサイトを制作する講座 ◆3:ウェブサービス開発で人気のフレームワーク「Next.js」について一気に学べる講座 ◆4:ゲームエンジン「Unreal Engine 5」を使用してリアルな3DCG映像を制作する講座
Python版の「LangChain」のクイックスタートガイドをまとめました。 ・langchain 0.3.0 1. LangChain「LangChain」は、「大規模言語モデル」 (LLM : Large language models) と連携するアプリの開発を支援するライブラリです。 「LLM」という革新的テクノロジーによって、開発者は今まで不可能だったことが可能になりました。しかし、「LLM」を単独で使用するだけでは、真に強力なアプリケーションを作成するのに不十分です。真の力は、それを他の 計算 や 知識 と組み合わせた時にもたらされます。「LangChain」は、そのようなアプリケーションの開発をサポートします。 3. LangChain のモジュール「LangChain」は、言語モデル アプリケーションの構築に使用できる多くのモジュールを提供します。モジュールを組み合わせて
Structured Outputsは、Chat Completions APIから得られる返答のデータの構造と型を強制するための機能で、最近OpenAIのSDKにも追加されました。 https://platform.openai.com/docs/guides/structured-outputs/ui-generation この機能を利用することで、簡単な文章校正ツールを作ることができます。 仕組み 文章データをOpenAIのAPIに送信する際に、各行に番号を付与します。これにより、GPTは各文がどの行にあるかを特定できるようになります。 文章に対する指示をプロンプトに添えます。例えば、「前提情報が足りない部分を指摘して」といった指示を加えます。 返答をStructured Outputsで制限することで、「何行目に対するコメント」という形式の結果を得ることができます。 この方法は「L
はじめに 前回の記事では、1/4円の積分から円周率を求めるプログラムを使って、doループとファイルの書き出しというFortranを使った計算をするときに最も基本的でよく使うであろう機能を紹介しました。 その時には、積分計算の際に使われる分割数については、分割数が書かれただけのテキストファイルを用意し、結果を出力するファイルの名前については、プログラム本体に書いて指定していました。 しかし、実際の計算では、設定すべき変数の数が膨大になる場合があります。前回のような運用では行き詰まること必至です。前回のような書式のテキストファイルで変数の値を与える場合、何行目にどの変数の値を書いておく、というのを覚えておかなければならないですし、設定した値をあとから見直すのも難しいでしょう。 このような場合、namelistという機能を使うと便利です。ある決められた書式で書くことで、たくさんの変数の値を簡単に
Pythonコンサルタントのセバスティアン・ウィトウスキー氏が、本業とは別のサイドプロジェクトで200万円以上を稼いだ経験をブログで共有しています。 I've Built My First Successful Side Project, and I Hate It https://switowski.com/blog/i-have-built-my-first-successful-side-project-and-i-hate-it/ ウィトウスキー氏は欧州原子核研究機構(CERN)でソフトウェアエンジニアとしてのキャリアをスタートし、CERNで作成された出版物のデジタルライブラリーであるCERN Document Serverの構築に携わったという人物です。その後、独立系のPythonコンサルタントに転身し、記事作成時点では金融業界やエネルギー取引業界をメインに活動しています。 そん
GitHubは2024年8月14日(米国時間)、「GitHub Advanced Security」(GHAS)機能の一部として、AI(人工知能)を用いてコード内の脆弱(ぜいじゃく)性の迅速な修正を支援する「Copilot Autofix」の一般提供を開始した。 GHASは、「GitHub Enterprise Cloud」のエンタープライズアカウントで利用できる。Copilot Autofixは同日から、GHASのコードスキャン設定でデフォルトで有効化された。 Copilot Autofixで短縮できる時間 関連記事 GitHubが脆弱性のあるコードの修正機能β版を「GitHub Advanced Security」利用者に提供開始 GitHubは「GitHub Advanced Security」の利用者を対象に、コードスキャン自動修正機能パブリックβ版の提供を開始した。「JavaSc
Welcome back to another watchTowr Labs blog. Brace yourselves, this is one of our most astounding discoveries. SummaryWhat started out as a bit of fun between colleagues while avoiding the Vegas heat and $20 bottles of water in our Black Hat hotel rooms - has now seemingly become a major incident. We recently performed research that started off "well-intentioned" (or as well-intentioned as we ever
技術的に言えば、コンテナはカーネルのネームスペース・コントロールグループ・root権限とシステムコールの制限によって隔離されたプロセスです。これが何を意味するかは、次章以降で説明します。 その前に、コンテナ化の目的について考えてみましょう。そもそも、なぜプロセスとプロセスを分離するのでしょう?単に同じシステム上でプログラムを同時に走らせるだけではダメなのでしょうか? 特に企業にはプロセス同士を分離する多くの理由があります。例えばセキュリティの観点から、あるプログラムが他のプログラムのデータにアクセスできないように、プロセス分離を考える必要があるかもしれません。またプロセスが root 権限やシステムコールへのアクセス権を持っていないことを明確にする必要があるかもしれません。 あるいは、単純に資源効率やITハイジーン(IT環境の衛生管理)の観点からかもしれません。 あるマシンで、Python
1. はじめに MapReduceは大規模データ処理のための強力なプログラミングモデルです。本記事では、Google Colab環境でPythonを使用してMapReduceの概念を学び、効率的なデータ処理パイプラインを構築する方法を解説します。 MapReduceの概要 MapReduceは主に2つの段階から構成されています: Map: 入力データを key-value ペアに変換する Reduce: 同じキーを持つ値をまとめて処理する これらの操作を組み合わせることで、大規模なデータセットを効率的に処理することができます。 記事の目的 本記事の目的は以下の通りです: MapReduceの基本概念を理解する Google Colabの制限に対応しつつ、Pythonで効率的なMapReduce処理を実装する方法を学ぶ 実践的な例を通じてMapReduceの活用方法を習得する 2. MapR
Although JavaScript regexes used to be underpowered compared to other modern flavors, numerous improvements in recent years mean that’s no longer true. Steven Levithan evaluates the history and present state of regular expressions in JavaScript with tips to make your regexes more readable, maintainable, and resilient. Modern JavaScript regular expressions have come a long way compared to what you
ChatGPT は,かく語りき... Pythonは世界中で広く使われており、その豊富なライブラリと簡単な構文のおかげで、多くの開発者にとっては第一選択のプログラミング言語です。しかし、Pythonを使う上での欠点が見え始めると、特に性能やスケーラビリティの要求が高まるプロジェクトでは、その限界が顕著になります。ここでは、実際の例をいくつか挙げながら、なぜPythonを捨ててJuliaに移行するべきかを説明します。 1. 速度の違い:Pythonは遅すぎる Pythonはインタープリタ型の言語であり、その動的型付けシステムが柔軟性をもたらす一方で、処理速度には犠牲があります。例えば、数値計算やデータ処理で多くの反復処理を行うコードでは、Pythonのパフォーマンスの限界がすぐに見えてきます。 例: 次のPythonコードでは、100万回のループでリストの合計を計算します。 def sum_
Pythonで並列処理するときのコードの雛形です。タスクを何件処理したかの進捗も表示します。自身の備忘録用に投稿しておきます import dataclasses import logging import random import sys import threading import time from concurrent.futures import ThreadPoolExecutor from typing import List # ログ設定 logger = logging.getLogger() logger.setLevel(logging.INFO) log_format = logging.Formatter("%(asctime)s [%(levelname)8s] %(message)s") # 標準出力へのハンドラ stdout_handler = logg
私がRecursionでプログラミング学習を開始したのは2020年の9月。気づけば4年も経ちました。この4年の間に息子が誕生し、引っ越しも就職もして、以前よりは学習量が少し減ってしまいました。でも未だに細々と続けているのは、いつか誰かの役に立つプロダクトを作れたらいいなと思っているから。 全く初心者状態から始めたにも関わらず、いろいろと自分の手で作れるようになってきてました。本当にRecursionは感謝でいっぱい。もっともっといろんな人に広まってほしい思いから、Recursionを大々的に宣伝しよう。 ・Recursionってどんなことが出来るようになるの?と気になってる。 ・AIの発達でこれからエンジニアになるのは遅いんじゃ?と迷っている。 そんな方に向けて私が思っている正直な感想とおすすめしたい理由7つをお伝えします。 この記事はアフィリエイト広告を貼っています。クリックして登録して
■ Python 3 ■ ラムダ式 今回はラムダ式から。 Javaもそうですが、最近は短縮した記載方法として「ラムダ式(Lambda Expressions)」をよく耳にしますね。 Pythonにも同様に「ラムダ式」はあるようです。 書き方はこんな感じ。 lambda <引数>:<式> lambdaという予約語を使い、引数として渡した変数を使って式を定義する無名関数です。 例えば、「2乗」「3乗」「4乗」した値を返すラムダ式を書くとこんな感じ。 あとは、これを呼ぶだけ。 もちろん、1回だけ行う処理であれば、そのまま処理を書くか、ラムダ式を直接組み込んでしまえば良いですし、汎用的にするなら関数化するのが正しいので、上記のような書き方はあまりしないでしょうね。 ■ 関数内関数 あまり用途があるのかわかりませんが、関数内関数も定義は可能で、しかも、内側の関数に渡す数値を外側の関数に定義しなくても
はじめに 7月からOptunaHubという新しいOptuna向け機能共有プラットフォームのベータ版を提供中です。今回は新たに導入されたImplicit Natural Gradient Optimization (INGO) [1]という自然勾配法ベースの最適化アルゴリズムについて紹介します。INGOは進化計算における強力な手法である CMA-ES (共分散行列適応進化戦略) に近いアルゴリズムで、本記事の実験ではCMA-ESよりも良い性能を示しました。 OptunaHubに登録されたINGOアルゴリズム この節ではOptunaHubに登録したINGOのSamplerを実際に実行してみます。今回の実装はYuhei Otomoさんに協力して頂きました。実装はこちらで見ることができます。 このSamplerの実装にあたり、簡単な単体テストでの動作確認やベンチマーキング結果が論文の主張と整合して
TL;DR CARTA MARKETING FIRMのデータサイエンスチームは、8年間にわたり機械学習基盤を進化させてきました。Luigi、AWS SageMaker、Prefectと変遷する中で、「データサイエンティストが最も付加価値を生み出す部分に集中し、時間を費やすことができる基盤」という目標に着実に近づいています。 Luigiでは開発環境構築や運用負荷が高く、柔軟性に欠けていました。 SageMakerではインフラ構築の複雑さやStep Functionsの制約が課題でした。 Prefectの導入により、Pythonのみでインフラからバッチ処理まで記述可能になり、A/Bテストの実施が容易になりました。また、ログ監視の一元化により運用効率が大幅に向上しました。 この進化を通じて、データサイエンティストの生産性と施策の実験サイクルが大幅に改善されました。 概要 CARTA MARKET
きっかけ Pythonで数値計算とかデータ解析とか触ってみた。 Rubyでもやりたくなった。 DaruやRoverと言うものを知った。 意外とちゃんと機能が揃っており(失礼)楽しく使っている。 が、CSVやExcelの読み込みがpandasよりどうもややこしい。 特にExcelだとGemが乱立している状態で厄介に感じた。 というわけで、これもっとシンプルにできないかな?と思ってやってしまった。 そしたら、あれ?これ意外と便利じゃない?と思ったので記事にする。 この記事は Yomiseという自作gemの紹介です。ぶっちゃけ宣伝です。 始め方 ここにあります。 まずはGemのインストール。 これをやるとDaruやRoverがない場合に一緒にインストールできます。つまり、とりあえずRubyでデータ解析したいって人はyomiseをインストールすると始められます。 使い方 読み込むだけなら至ってシン
LangGraphとは? LLMで「AIエージェント」を開発するための便利なライブラリがLangGraphです。 LLMアプリ開発のフレームワークで有名なLangChain社が開発しています。 LangChainだけを使ってAIエージェントを作ることももちろんできますが、LLMの推論に基づいて行動を計画させる場合、なかなか思いどおりに動いてくれない場合は多々あります。 これを解決するのがLangGraphで、エージェントの動作をグラフ(点と線の組み合わせ)で定義することができます。 グラフって何? 「グラフ理論」のグラフです。クラスメソッドさんの以下記事が概要を掴みやすいです。 公式ハンズオンをAWSでやってみよう LangGraphの公式ページにサンプルコードやチュートリアルがいくつも掲載されているのですが、OpenAIやAnthropicのAPIをそのまま使う例となっています。 日本の
The Go Blog Range Over Function Types Ian Lance Taylor 20 August 2024 Introduction This is the blog post version of my talk at GopherCon 2024. Range over function types is a new language feature in the Go 1.23 release. This blog post will explain why we are adding this new feature, what exactly it is, and how to use it. Why? Since Go 1.18 we’ve had the ability to write new generic container types
「C」が過去最低の4位、「Python」は引き続き独走 2024年9月版プログラミング言語人気ランキング:「TIOBEインデックス」発表 プログラミング言語の人気ランキング「TIOBEインデックス」の2024年9月版が公開された。首位の「Python」が2カ月連続で同言語として過去最高のレーティングを更新し、「C」が史上初めて4位に沈んだ。 ソフトウェア品質の評価と追跡を手掛けるTIOBE Softwareは、2024年9月版の「TIOBEプログラミングコミュニティーインデックス」(通称「TIOBEインデックス」)を発表した。TIOBEインデックスは、プログラミング言語の人気を示す指標で、同社が毎月1回更新している。 レーティングと順位 2024年9月のランキングでは、「Python」が20.17%のレーティングで首位を維持した。Pythonのレーティングは8月に初めて18%を超え、2カ月
どんな人向けの記事? 医薬品のような難しい検索ニーズにこたえるためにベクトル検索を利用する知見を見てみたい MySQLの全文検索と、ベクトル検索の精度や速度を比較してみたい ベクトルDBとEmbeddingモデルを利用した簡単なベクトル検索の実装方法を知りたい 医薬品の検索ニーズは多様なので、ベクトル検索で解決できるか試したい 1つの医薬品を指す名称は、複数存在するため医薬品検索は意外と面倒な問題です。 例えば、日本人なら頭痛や生理痛、発熱したときに「ロキソニン」を飲んだことがあるかもしれません。この名称は商品の名称ですが、成分の名称は「ロキソプロフェンナトリウム水和物」です。 さらに、ロキソプロフェンには錠剤以外にもテープやパップといった剤形の違いがあります。 そして最後に、ロキソプロフェンを作っている会社は複数あるので、末尾に「トーワ」や「ファイザー」などの組み合わせが存在します。ロキ
ねこばく!幼女が猫を爆発させて限界に挑むゲーム https://unityroom.com/games/yoko スマホでも動きます(Androidは未確認) タイトルがひどいのはAIのせいです。相談してこんなものが出てきたら採用するしかないじゃない。 よくYouTuberが取り上げてアクセス数が急上昇する現象がありますが、はてなにはどれほどのバズ力があるのか、というテスト。 過去にこういったことを試した人はいないと思います。いる?いない…よね? まあ、この日記が人目に付かず終わる可能性が一番高いとは思っていますが。 で、はてなーが知りたいのは結果よりも経過でしょ?わかります。 さて、いきなり重くなりますが、実は今、うつで休職中です。 うつは良くなったり悪くなったりを繰り返しながら治っていくものですが、悪いときはとにかく寝ているしかできません。 問題なのはそこそこ良いときで、何もしないと暇
画像生成AI「Stable Diffusion」開発者たちが突然発表した新モデル「FLUX.1」、これが楽しすぎてはまりこんでいます。 【もっと写真を見る】 画像生成AI「Stable Diffusion」開発者たちが突然発表した新モデル「FLUX.1」、これが楽しすぎてはまりこんでいます。私の本業はゲーム会社。出展を予定している東京ゲームショウまで1ヵ月で、やらないといけないことが山積みなのに、FLUX.1が面白すぎて魅力に抗えません。 わずか30分の学習で画風が安定 FLUX.1が決定的に変えてきそうなのはLoRAです。LoRAは学習済みのウェイトモデルを利用することで、少ない枚数であっても学習ができるということで、画像生成AIの分野では広く普及している手法です。FLUX.1は、Stable Diffusionで使われてきたLoRAの方法論を動かすことができることがわかっています。 そ
画像引用:https://eng-entrance.com/java-array-basic コンパイル言語(CとかJava)は、配列に型を定義するのがだ、Pythonは配列に型を定義しなくても問題なく実行できてしまう。 intとstrを混在する配列を書けてしまう 例えば以下のコードは問題なく定義できてしまう。うほっ。マジっすか。 obj_array = [1, 2, 3, 4, 5, 'a'] print("元の配列:", obj_array) int型であることを明確に定義 もし配列の各要素がint型であることを明確に定義したい場合は、以下のようにarray.array()の第一引数にintの意味のiのtypecodeを指定する。うほっ。iというタイプをミスりそう。 int_array = array.array('i', [1, 2, 3, 4, 5]) print("元の配列:",
With Dokku, you can turn a VPS into a powerful serverless platform What is Dokku? Dokku is an open-source Platform as a Service (PaaS) that runs on a single server of your choice. It’s like Heroku, but you own it. It is a great way to get the benefits of Heroku without the costs (Heroku can get quite expensive!). I need to deploy many applications for my LLM consulting work. Having a cost-effectiv
参考文献 ※1 EDINET API機能追加に係る利用者向け説明会資料 ※2 EDINET API仕様書 Version2 ①会社名の選択 まず会社一覧及び、会社のEDINETコードが必要になってきます。 これについてはAPIで取得する方法はなく公式サイトからZIPを落としてくるか ここからプログラム的に自動でダウンロードする必要があります。 今回は手動であらかじめダウンロードしたものを使います。 公式サイトからダウンロードすると毎回リンクが変わる、上記の直接リンクだと固定という謎仕様のようです(ドキュメントにもそうかいてある) ZIPを展開するとShift-JISのCSVが手に入ります。文字コードに注意しましょう。EDINETからダウンロードするCSVはUTF16なのにこっちはShiftJISなのです。 中身は上記のようなもになっています。 末尾に0がついているものの証券コードも入ってい
0. はじめに 株式会社ディー・エヌ・エーに入社し,MLOps エンジニアをやっている @a5chin です. 0.1. 背景 2024/08/20 に Astral 社から以下のブログが発表されました. Python のランタイム・パッケージングを uv 一つで置き換えることができるという発表でした. Today, we're announcing a series of features that extend uv beyond a pip alternative, and into an end-to-end solution for managing Python projects, command-line tools, single-file scripts, and even Python itself. 本記事では,以前に紹介した『【Rye + uv + Ruff】Doc
はじめに2024年8月17日に発売された、Software Design 2024年9月号の第二特集である、「Goのエラーハンドリングと向き合う ベストな設計戦略を徹底解剖」 の2章を後藤、3章を渋川で執筆し寄稿させていただきました。 このような貴重な機会をいただいた栗木さんをはじめ技術評論社の方々には、心からお礼申し上げます。 みどころGo言語初心者から熟練者まで楽しんでいただける内容になっていると思います。 Go言語を利用する上でエラーハンドリングは必須の知識になるので、ぜひご一読ください。Goに馴染みのない方でもGo特有のエラー処理の方法を知ることで、普段触れている言語の理解を深めることができると思います。他言語と比較した、Go言語のエラーの特徴もみどころの一つです。 【第2特集】Goのエラーハンドリングと向き合う 第1章 Goのエラー処理を理解する/mattnさん 第2章 失敗しな
📝Topics MySQL9.0アップデートについて 今までで一番自分を褒めたいと思ったパフォーマンスチューニング MySQLとPostgreSQLでチューニングの違い MySQLの使えるメモリがどんどん減っていく、なぜ? ※内容は変更の可能性があります、ご了承ください。 🧑💻こんな方におすすめ yokuさん×soudaiさんの話を聞きたい方 現在直面しているDBに対する課題の最適解を聞きたい方 他社や他者が経験しているDBに関する経験を聞きたい方 DBのより良いパフォーマンスチューニングを模索している方 ☑️イベントのゴール yokuさん、soudaiさん含め他社のDB取り組みや事例を知れた 自身の開発現場に活かせる工夫や運用方法を学ぶことができた DBパフォーマンスチューニングの具体例を学ぶことができた 🎤登壇者 yoku0825(@yoku0825) 日本MySQLユーザ会
はじめに 本記事では中間証明書が正しく設定されていないWebサーバーへのリクエスト時に、各アプリケーションがどのような動作をするかについて調査した結果をまとめます。最初に前提知識や調査に至った理由を書き、その後に調査結果を述べます。 前提知識 本記事を読むにあたって簡単なSSL/TLSの基本的な知識が必要です。 サーバー証明書/中間CA証明書/ルート証明書の違いとは? サーバー側ですべき設定 WebサイトをSSL化するためには、サーバー側がサーバー証明書と中間証明書を設定する必要があります。しかし、Webサーバーで中間証明書を設定する場合、Webサーバーソフトによっては中間証明書を設定する項目がない場合があります。例えば"Nginx"には中間証明書を直接指定するディレクティブが用意されていないため、サーバ証明書と中間証明書を結合したものを"ssl_certificate"で指定します。"A
ダイエットネタを記事にしたとてアクセスが増えるわけでもないのだが、自分の中では最大の関心事である。記録するのが目的の本ブログであるから、書かないわけにはいかない。 ジョギング開始時から計算上10kgの脂肪を燃焼し、体重は7.8kg減少した。とくにベースブレッド・あすけんを始めてからの減りがエグい。 driveon43.com driveon43.com ベースブレッドとあすけんを始めてから痩せたと何度も書いている。ランニング再開時からの体重計データを追加して、運動も大事だが栄養バランス法がもっと大事という体験を書き残したい。 体重変化グラフのアップデート CPT-4oを使ってグラフ化する データがばらけるようにデータを追加、そして間引き Canvaで追加情報を書き込む 「ベースブレッド・あすけん」前と後の体重の減少率 最後に 体重変化グラフのアップデート 以前作成したグラフの焼き直しである
8月29日、GoogleはGemini in BigQueryの複数の新機能を正式に提供開始した。 Gemini in BigQueryとは、Google Cloudのデータ分析プラットフォームであるBigQueryにAI機能を統合した新しいサービスであり、データ分析作業の効率を飛躍的に向上させる。これにより、ユーザーはAIを活用して複雑なデータセットの分析や重要な情報の抽出を、より簡単かつ迅速に行うことができる。 特に注目すべきは、自然言語での指示を通じてAIが適切なSQLクエリやPythonコードを生成する機能である。たとえば、ユーザーは次のように指示を出すことができる: 「このテーブルの各製品ごとの総売上を計算して。」 「pandasを使って、製品の売上と顧客レビュー数の相関を求めるPythonコードを書いて。」 「サブスクライバータイプ別に平均旅行時間を計算して。」 これらの指示を
趣味の必要上どうしても、ウランゲル語の書類の内容を把握する必要が出てきた。ウランゲル公国に於ける初期国際鉄道の接続について、調べねばならなくなったからだ。具体的には戦間期からWW2までの間である。できれば43年ポポフ攻勢までの期間が有難い(以降は接続が断たれるので興味の範囲から外れる) 文書自体は公国公文書館がネットに画像を上げている。ウランゲル日報(一般紙)のバックナンバーは月15ウランで利用可能で初月は無料だ。驚くなかれクレカが使える。念入りに探せば現地OB会やら組合やらの会誌がPDFで転がっている。ロシアとポーランドには、市販本をぶっこ抜いたファイルが転がっている。これらをつなぎ合わせれば概要は分かるはずだ。 ウランゲルは欧州語族ではマイナーではあるものの、幸いグーグル翻訳のラインナップに含まれている。鉄道用語自体は、英国から技術導入していることもあって英語に近いからある程度類推でき
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く