PostgreSQL, but faster. Built for lightning-fast ingest and querying of time-based data. Timescale Products
![Time-series compression algorithms, explained](https://cdn-ak-scissors.b.st-hatena.com/image/square/8ddb6336292cc33dc8b25e4d7dc46942727ac6a4/height=288;version=1;width=512/https%3A%2F%2Fwww.timescale.com%2Fblog%2Fcontent%2Fimages%2Fsize%2Fw1200%2F2020%2F04%2Fminiature-town-1465321573Cc4.jpg)
Pythonがファイルを開くときなどに使われるエンコーディングはロケール(WindowsではANSIコードページ)依存でした。 Unixの世界ではどんどんUTF-8ロケールが一般的になっている一方、WindowsのANSIコードページはなかなかUTF-8になりません。 そのために、Unixユーザーが open(filepath) のようにエンコーディングを指定しないままUTF-8を仮定するコードを気軽に書いてしまって、Windowsユーザーがエラーで困るといった問題が発生します。 また、Windowsでもメモ帳(Notepad.exe)やVSCodeはすでにUTF-8をデフォルトのエンコーディングで使用しています。ANSIコードページがUTF-8になるのを待っていたらどんどん周りの環境から置いていかれ、レガシー化してしまいます。 Pythonがデフォルトで利用するエンコーディングをWind
はじめに Println で標準出力してみると以下のように表示されるかと思います。(SHIFT-JIS形式なのでmacでみると文字化けしていますがひとまず置いておきます) 日本では一般的に CSV ファイルは Shift_JIS でエンコードされている事が多いです。Go 言語は内部のエンコーディングが UTF-8 なので、Shift_JIS な CSV ファイルを読み込むと文字化けします。 そこで便利なのが エンコーディングの変換は golang.org/x/text/transform が便利です。このパッケージと、golang.org/x/text/encoding/japanese を使う事で、os.Open で開いたファイルがさも初めから UTF-8 であるかの様に扱う事ができます。 どんな風に扱うか japanese パッケージには japanese.ShiftJIS や jap
Windows PowerShellを使えば、文字コードを簡単に調べることができる。パターンさえ覚えれば、プログラミングの知識は不要で、アプリを別途インストールする必要もない コンピュータを使っていると、文字コードを調べなければならないことがある。昔なら文字コードは8bitしかなかったので、ASCIIコード表からすぐだったが、現在は多数の言語の文字を収録したUnicode(ユニコード)が一般的なので、一覧表から調べることは難しい。 文字1つぐらいならインターネット検索でもなんとかなるが、2つ、3つとなると面倒だ。かといって、文字コードを調べるソフトウェアを探してインストールするのもまた面倒。こういうときには、Windowsの標準機能を使うといい。 Windowsには、「文字コード表」というプログラムもあるが、一覧から文字を探して、そのコードを表示することはできるが、文字そのものから直接コー
When you open a document with an encoding different than the one it was created with, it's not possible to display the original text, and instead a garbled mess of corrupted characters are printed out. These are called "mojibake" in Japanese, and the word has also been borrowed into English. While mojibake aren't readable by humans, it turns out that different kinds of mojibake have different visu
GoではJSONを扱うときでもしっかり型定義に当てはめて利用するのが一般的だ。 しかし、外部から受け取ったJSONデータは型に当てはめつつ併せて生データも保存しておきたいときがある。 Defind Typeをうまく使うとシンプルなUnmarshalJSON(data []byte)メソッドを定義できる。 type Event struct { ID string `json:"id"` Type string `json:"type"` Payload Payload `json:"pyload"` // 構造体にマッピングする前のJSONを保存しておきたい Raw json.RawMessage `json:"-"` } TL;DR 外部から受け取るJSONは構造が不意に変わることを想定したいときがある UnmarshalJSON(data []byte)メソッドを使うと独自のJSONパ
こんにちは、技術開発室の滝澤です。 最近(2021年春)、Go言語でメールパーサーを書く機会があり、備忘録的な意味でも知見をまとめておこうかなと思い、この記事を書きました。 メールパーサーを書いていて考慮しないといけないことの一つは、文字エンコーディング(charset)が正しく指定されていないメールがときどきあることです。 MIME(Multipurpose Internet Mail Extensions)関連のインターネット標準であるRFCが公開された1990年代や世間一般にインターネットメールが利用され始めた2000年代初期ならともかくとして、2021年にもなってまだその点を考慮しないといけないのはなかなかつらいことです。 そのようなメールを取り扱うときには、文字エンコーディングの検出を行う必要があります。本記事ではその文字エンコーディングの検出方法について書いてみました。 なお、
他にもまだまだあると思いますが、自分が見たことがあるのは上記になります。 それぞれ見比べてみると、やはりエンコード・デコード両方に対応しているライブラリが人気があるようです。 この中で特に人気のある easyjson , gojay , json-iterator/go でベンチマークをとってみた結果、パフォーマンスの良い順に並べると次のようになりました。 gojay > json-iterator/go > easyjson > encoding/json 設計方針の違いがそのまま速度に現れているようにも見えますが、理論上最速にできるはずの easyjson が遅かったりと実装の良し悪しも影響しているようです。 一番遅いのは encoding/json です。そもそも encoding/json が遅いから新しい JSONライブラリを作ろうとしているはずなので、一番遅いのは仕方ないのです
先日、きりきりやままさんがこのような記事を公開していました UTF-8 の文字列をできる限り Shift_JIS に変換したい - きりきりやま それでは実際にそのような文字列変換を行うにはどうすればよいのか、またコメントでiconvについて触れられていたので、この記事ではUnicodeにおけるNFKC正規化をどうやって行うのか試してみることにしました。 追記 GoとPythonとJavaScriptでの例を足しました。またいくつかのscriptにおいてブラウザ上で実行できるURLを添付しました。 (2020-08-17 16:22) “Go” に表記を統一しました。 (2020-08-17 17:00) Ruby 僕にとって文字列処理といえばRubyなので、まずは以下のようなscriptを書いてみました。 puts "\u304c" puts "String#encode('Shift_
zip の中のファイル名 zip ファイルを展開(解凍)すると、書庫内の各データは元のファイル名で展開されます。すなわちファイル名情報も zip ファイル内に格納されています。 zip ファイル内に格納されている各ファイル名のエンコーディングは、現バージョンの zip の仕様だと UTF-8 フラグの有無を指定することができるようですが、 UTF-8 以外のエンコーディングを具体的に指定することができません。 歴史的に、従来より日本語ロケールの Windows で zip ファイルを作成すると(ツールにもよりますが)、ファイル名情報は Shift_JIS (CP932) で書き込まれます。最近の Linux や Mac は UTF-8 がほとんどです。 異なる OS で作成された zip ファイルを展開するときに、 UTF-8 フラグが付いていれば(最近の展開ツールであれば)問題なく展開す
データアナリティクス事業本部の森脇です。 Go言語で文字コードを変換するための方法について調べました。 使用するGo言語のバージョンは1.13.6です。 パッケージのインストール 文字コード変換を行うために、準標準パッケージであるgolang.org/x/textを使用します。 $ go mod init example.com/moriwaki/iconv go: creating new go.mod: module example.com/moriwaki/iconv $ go get -u golang.org/x/text go: finding golang.org/x/text v0.3.2 go: downloading golang.org/x/text v0.3.2 go: extracting golang.org/x/text v0.3.2 $ cat go.mod
はじめまして。2018年1月に入社した奥田(@yag_ays)です。 先日、scikit-learn-contribの1つであるCategory Encodersの最適化を実装したPull Requestがマージされたので、そこに至るまでのプロファイルや最適化の過程を紹介したいと思います。 普段、私の仕事は機械学習やデータ分析がメインで、あまりPythonの処理レベルで早いコードを書いたりすることはありません。もちろん最適化なんてことについては、あまり経験を持っていない素人なのですが、この記事が皆さんのプロジェクトを最適化する際の参考になれば幸いです。 tl;dr scikit-learn-contribの中のcategory_encodersの実行速度を最適化した Pythonのプロファイリングにはline_profiler、デバッグにはpdbが便利 Pandasのカラムをfor文で書き
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く