Skip to content

Zeroplex 生活隨筆

軟體開發、伺服器和生活瑣事

小 縮小字型大小。 中 重設字型大小。 大 放大字型大小。

月份: 2009 年 8 月

縮短網址 vs. Hash

Posted on 2009 年 8 月 8 日2021 年 3 月 12 日 By 日落 在〈縮短網址 vs. Hash〉中有 3 則留言

一直到剛剛才想通為什麼大多數的縮短網址會使用 Hash 產生 key,果然不先死過一次不知道為什麼要這樣作。

先從 key 開始起吧,為了讓 key 更短通常會使用更多的文字或符號,從數字、英文大小寫甚至特殊符號。假設使用數字和英文大小寫作組合,每一位數都有 62 種組合 (10 + 26 + 26),用四個位數的話可以儲存約一千五百萬比資料,這對我這種小網站應該很夠用了。

還沒想通資料量和 hash 有何關係?那就來看看新增時到底要作哪些事情:

  1. 查詢資料是否已經存在
  2. 產生網址與 key 的對應
  3. 儲存結果

問題很明顯出在第一步驟,一千萬筆資料 query 一次到底要花多久的時間?有作索引也要花超過十秒,沒作索引花個半小時可能也算快。

如果將步驟改成這樣:

  1. 將網址作 Hash
  2. 使用 Hash 的結果查詢資料是否存在
  3. 檢查是否發生碰撞
  4. 儲存結果

在第一步先產生 hash 結果就可以減少搜尋的範圍,範圍縮小就可以減少第二步驟查詢所需要的時間。

現在開始後悔沒有好好學演算法了,我要怎麼自己寫一個 hash 函式出來啊???

Tags:PHP, 生活雜記, 資訊學習

原來 FreeBSD 不需要 dos2unix 工具

Posted on 2009 年 8 月 6 日2021 年 3 月 12 日 By 日落 在〈原來 FreeBSD 不需要 dos2unix 工具〉中有 2 則留言

從 Windows 複製到 FreeBSD 的檔案,通常會因為換行字元不同,在 FreeBSD 開起來以後會在行尾看到「^M」的符號。

一般狀況下可以用 dos2unix 工具作轉換,不過 FreeBSD ports 裡面並沒有這個套件,不過後來查一下資料發現其實不用這麼麻煩,下個指令就好了:

cat file | col -b > new_file
Tags:FreeBSD, Linux

FAMP:FreeBSD + Apache + MySQL + PHP

Posted on 2009 年 8 月 5 日2021 年 3 月 12 日 By 日落 在〈FAMP:FreeBSD + Apache + MySQL + PHP〉中有 1 則留言

Install Apache

cd /usr/ports/www/apache22
make WITH_MPM=worker WITH_THREADS=yes install clean

for subversion:

make WITH_MPM=worker WITH_THREADS=yes WITH_AUTH_MODULES=yes WITH_DAV_MODULES=yes WITH_SSL_MODULES=yes WITH_PROXY_MODULES=yes WITH_BERKELEYDB=db42 install clean

然後到 /boot/loader.conf 加入一行

accf_http_load="yes"

讓 Apache 開機時自動啟動,到 /etc/rc.conf 加入一行

apache_enable="YES"

若有看到以下錯誤訊息:

Invalid argument: Failed to enable the 'httpready' Accept Filter

檢查一下核心設定檔是否有加上:

options         ACCEPT_FILTER_HTTP

Install MySQL

cd /usr/ports/databases/mysql51-servermake install clean

如果希望 MySQL 支援 Big5 編碼,請在 Makefile ONFIGURE_ARGS 參數後面新增:「–with-charset=big5」

CONFIGURE_ARGS= --localstatedir=/var/db/mysql --without-debug --without-readline --without-libedit --with-libwrap --with-mysqlfs --with-low-memory --with-comment='FreeBSD port: ${PKGNAME}' --enable-thread-safe-client --with-charset=big5

不過這個缺點是會讓 MySQL 建立新的資料庫時,預設的編碼都選擇 big5,而 big5 已經越來越少用了,所以建議以加上參數的方式,更改對 big5 的支援。

make WITH_CHARSET=utf8 WITH_XCHARSET=all WITH_COLLATION=utf8_general_ci install clean

設定開機自動啟動,在 /etc/rc.conf 加入一行

mysql_enable="YES"

請將適合的 MySQL 設定檔複製到 /etc 底下:

cp /usr/local/share/mysql/my-medium.cnf /etc/my.cnf

Install PHP

cd /usr/ports/lang/php5make install clean

修改 Apache 設定檔

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

參考資料:
http://blog.twku.net/2005/10/15/18/

ps.餅乾又出現了 0.0

最後修改日期:2009/08/06

Tags:FreeBSD, 作業系統, 網路架站

敗家

Posted on 2009 年 8 月 5 日2021 年 3 月 12 日 By 日落 在〈敗家〉中尚無留言

前幾天買了 zbla.us 這個網域,終於可以來規劃一個較完整的網站了。

會選擇用 zbla 當作網域有幾個原因,最簡單的意思就是「聽 zero 在 bla bla bla」。若以讀音來解釋,可以把 zbla 當作斑馬,意思是「肝不好生活就是黑白的」,當然你翻譯成「黑白買」也可以啦,因為真的是買好玩的….. Orz

以後打算找一些工具架站,大多應該都是資工相關的吧,目前預計提供以下幾個服務:

  • Wiki
  • SVN
  • Redmine
  • 縮短網址 (trying)
  • 增長網址 (Kuso 是一定要的!)

另外 zbla.us 已經啟用了幾個子網域,大家有興趣的話可以先去搶頭香 XD

Tags:生活雜記, 網路架站, 資訊學習

文章分頁

上一頁 1 2 3

其他

關於我  (About me)

  文章 RSS Feed

  留言 RSS Feed

Apache AWS Bash C/C++ Docker FreeBSD GCP Git Google Java JavaScript Laravel Linux Microsoft MSSQL MySQL Nginx PHP PHPUnit PostgreSQL Python Qt Ubuntu Unix Vim Web Windows WordPress XD 作業系統 分享 好站推薦 專題 攝影 新奇搞笑 新聞 旅遊 生活雜記 程式設計 網路架站 網頁設計 資訊學習 資訊安全 遊戲 音樂


創用 CC 授權條款
本著作係採用創用 CC 姓名標示-相同方式分享 4.0 國際 授權條款授權.