Tag Archives: binary

計算圓周率 Pi 的公式...

在 Twitter 上看到這個: A shocking formula to calculate any digit of Pi without having to know any preceding digits. https://t.co/bcZ7h9pMpZ pic.twitter.com/bW9UIv7vL5 — Cliff Pickover (@pickover) March 3, 2017 利用這個公式 (Bailey–Borwein–Plouffe formula),可以直接對二進位 (四進位、八進位、十六進位、...) 直接計算出某個位數的值...

Posted in Computer, Murmuring, Programming, Science|Tagged , , , , , , , , |Leave a comment

Google Play Store 將支援 Brotli 壓縮

在「Intern Impact: Brotli compression for Play Store app downloads」這邊介紹了 Google Play Store 引入 Brotli 的情況。 選擇 Brotli 除了是 Google 自家研發出來的東西以外,另外是考量到 Brotli 的壓縮與解壓縮速 (尤其是後者) 不會增加太多,卻可以多出不少壓縮率。維基百科這邊說明的是文字的部份: Replacing deflate with brotli typically gives an increase of 20% in compression density for text files, … Continue reading

Posted in Computer, Murmuring, Network, Software, WWW|Tagged , , , , , , , , , |Leave a comment

Google 再次改善 Android 的 APK 更新,讓下載的量更小

Google 的人再次更新了演算法,將下載的量再次減少,從本來的 47% 降到 65%:「Saving Data: Reducing the size of App Updates by 65%」。 今年七月的時候,更新演算法導入了 bsdiff,使得本來要抓整包 APK 的量,變成抓 diff 的部份,這使得下載的流量降了 47%:「Improvements for smaller app downloads on Google Play」。 Using bsdiff, we were able to reduce the size of app updates … Continue reading

Posted in Computer, Murmuring, Network, Programming|Tagged , , , , , , , , , , , |3 Comments

Facebook 備份 MySQL 資料並且確認正確性的方法

Facebook 再多花了一些篇幅數對於 MySQL 資料備份以及確認正確性的方法:「Continuous MySQL backup validation: Restoring backups」。 首先是 Continuous Restore Tier (CRT) 這塊,可以看到他們在這塊很仰賴 HDFS 當作備份的第一層基地,包括了 Full logical backups (用 mysqldump)、Differential (diff) backups 以及 Binary log (binlog) backups (stream 進 HDFS)。 另外上了 GTID,對於後續的處理會比較方便: All of our database servers also … Continue reading

Posted in Computer, Database, Murmuring, MySQL, Network, Social, Software|Tagged , , , , , , , , , , , , , , , , |Leave a comment

Golang 1.7

Golang 1.7 主打更小的 binary size:「Smaller Go 1.7 binaries」: Typical programs, ranging from tiny toys to large production programs, are about 30% smaller when built with Go 1.7. 還附了一張經典的「Hello, world」程式的分析: 由於現代 CPU 的速度與 L1/L2/... cache 有緊密關係,當 binary size 變小時,常常會伴隨著 memory access … Continue reading

Posted in Computer, Murmuring, Programming, Software|Tagged , , , , , |Leave a comment

0.1 + 0.2 = 0.30000000000000004

看到「http://0.30000000000000004.com/」這個網站對經典的 0.1 + 0.2 問題整理了各語言的結果。這個網址名稱也很機車啊 XD 開頭的說明講述 IEEE 754 二進制表示法的問題: Your language isn't broken, it's doing floating point math. Computers can only natively store integers, so they need some way of representing decimal numbers. This representation comes with some degree … Continue reading

Posted in Computer, Murmuring, Programming|Tagged , , , , , , , |Leave a comment

Command Line 下把 Hex 轉成 Base64...

每次都忘記,寫一篇之後查比較方便... 重點在對 xxd 的變化應用,而 xxd 被包在 Vim 裡,所以應該都會裝... 吧... xxd 預設是把 binary 轉成 hex,但你可以用 -r 參數變成反向,也就是 hex 轉 binary。 所以剩下的就很簡單了,先把 hex 轉成 binary 再轉成 base64: echo 0123456789ABCDEF | xxd -r -p | base64 這邊有裝 Base64 所以可以直接用,如果沒有的話,可以用 OpenSSL 替代: echo 0123456789ABCDEF … Continue reading

Posted in Computer, Editor, Murmuring, Software, Vim|Tagged , , , , , |1 Comment

將 latin1 的表格轉換成 UTF-8 表格...

Percona 的人寫了一篇「utf8 data on latin1 tables: converting to utf8 without downtime or double encoding」,告訴你怎麼將 latin1 的 TEXT 欄位轉成 UTF-8,文章內有提到利用 BLOB 轉。 不確定同樣方式能不能做在 VARCHAR 上面 (用 BINARY 轉?),但不知道會不會有 UNIQUE + prefix support 的問題?有遇到再來測試看看...

Posted in Computer, Database, Murmuring, MySQL, Software|Tagged , , , , , , , |1 Comment