hothero's TechNote

Will be sharing troubleshooting experiences, findings, tutorials, ...

javascript

facebook authorization with popup window (經由彈出視窗進行facebook認證) using PHP and javascript

一般使用facebook PHP SDK做登入都是採用getLoginUrl函式取得連結(如官方此範例),認證完後會轉址回來並帶些facebook認證確認的state、code等get參數,在使用者體驗上非常的不好,甚至有可能在已帶有get參數的頁面上再轉址回來後會導致異常。 在此使用Facebook PHP SDK 3.0搭配javascript的方式,用popup window做認證。今年年初Facebook PHP SDK 3.0的更新中已有搭配javascript的範例,但有認證成功後無窮reload迴圈的問題,網路上普遍是IE發生問題,筆者本身是在Mac的chrome有此問題(問題出在下方的程式碼)。 FB.Event.subscribe('auth.login', function(response) { // do something with response login(); }); 故我們得自己創建popup authorization window,流程如下: 使用者按下Facebook登入/認證按鈕 javascript產生一個window並且將其導向facebook登入/認證的網址

  • hothero
    hothero
image

How to download about 1 million images from google

這篇著重在如何使用Bulk Image Downloader這套軟體來下載將近1百萬張的含人臉影像,透過網路上有人整理好的眾多英國+美國的英文姓名,搭配自己寫的程式產生所有google query。 下載query產生器、美國&英國姓名、中文姓名產生器 Query產生器 ### 將英文名字全部複製至Input欄位內,並按下"Get all English" ### 將google image query的網址輸入至Pattern內,再將Output複製貼至Input內,並按下"Append each input to pattern" url pattern: "https://www.google.com.tw/search?num=10&hl=zh-TW&authuser=0&

  • hothero
    hothero
Python

[Note]使用python撰寫crawler筆記

這裡大概整理一下目前寫完python的crawler筆記,大概使用了lxml, readability這兩個framework以及一個繁簡轉換的現成python程式,twisted打算等後面優化時再使用。 python常識 程式碼內含有中文時,在最上方加入編碼資訊:#coding: utf-8 import的三種方式 ``` from lxml import * import lxml.html as H  # alias import urllib2, urllib ``` 若要參考外部 (external)的py檔案,直接把該程式檔放置相同目錄即可。例如下方的py檔案,我們可以import externalTest後,使用externalTest.test來呼叫 def test: print "hello world" 給與函式參數預設值 ``` def test(str=

  • hothero
    hothero
image

[Snippets]C# - 仿sikuli式的利用擷取圖片做按鍵精靈

最近有個需求是得去點擊某個程式的一些按鈕,但寫死座標位置使程式沒有彈性不是我的風格,最後就決定結合影像技術的方向來做一個仿sikuli利用截圖來點擊的偽按鍵精靈。以下是一些完成這目的的片段程式碼: Screenshot ``` int screenWidth = Screen.GetBounds(new Point(0, 0)).Width; int screenHeight = Screen.GetBounds(new Point(0, 0)).Height; Bitmap bmpScreenShot = new Bitmap(screenWidth, screenHeight);   // the final image used by memory reference Graphics gfx = Graphics.FromImage((Image)bmpScreenShot); gfx.CopyFromScreen(

  • hothero
    hothero
Matlab

Setting mex option of MATLAB on MAC to xcode compiler for solving many mex errors

mac的matlab時常在編譯mexfile發生錯誤,不外乎幾個問題:找不到gcc、找不到header files等等,一個最簡單的方式即是將matlab的mex compiler設定成xcode的compiler。筆者環境為:MATLAB R2011b、OSX 10.7.4。 設定 ``` vi ~/.matlab/R2011b/mexopts.sh 在約167行處或使用'/SDKROOT'搜尋,將SDKROOT的值改成" SDKROOT='/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk/' ",存檔後即可。 註:若環境不同需確認指令的matlab版號與SDKROOT路徑。

  • hothero
    hothero
apache

Setting MongoDB on MAMP

網路上充斥著安裝php_mongo相關的文章,但大多介紹的安裝方法都是在原生apache與php的環境下,故在此介紹的是如何讓MAMP可以跑起mongodb相關的module與class。 創mongo資料夾給MAMP ``` mkdir /Applications/MAMP/db/mongo mkdir /Applications/MAMP/db/mongo/tmp mkdir /Applications/MAMP/db/mongo/data mkdir /Applications/MAMP/db/mongo/bin <h2><span style="color: #3366ff;">下載相關套件</span><

  • hothero
    hothero
apache

Setting PHP on Windows IIS

大多數人普遍認為IIS只能運行一般網頁與ASP語言,但其實是可以透過CGI(Common Gateway Interface)將PHP運行在IIS上,不必另外裝apache,也不用擔心port衝到的問題。此篇將著重在設定部分,假設讀者們都已安裝好PHP(若無可透過官方PHP下載或WAMP等方式)。 此篇設定之環境為 Windows Server 2008 R2 PHP6 IIS 7.5 修改php.ini 將php.ini-recommended複製或直接更名成php.ini。修改以下資訊 (約在578行)將 ; extension_dir = "ext" 改成 extension_dir = "ext" (約在480行)將 ;cgi.force_redirect = 1 改成 cgi.force_

  • hothero
    hothero
aws

解決InnoDB分配記憶體錯誤問題

最近server很常因為InnoDB的分配記憶體給Buffer pool出錯導致mysql自動關閉,而使wordpress毀滅,找了很多方式還是沒個頭緒知道錯誤源頭是在哪。最後決定用最笨的方法,每天固定一個時段release memory,使每次InnoDB有需求時都能有空間分配。 大致上的mysql錯誤訊息如下: 120514 23:31:37 InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed; errno 12 120514 23:31:37 InnoDB: Completed initialization of buffer pool 120514 23:31:37 InnoDB: Fatal error:

  • hothero
    hothero
ruby

Filezilla Server 新增大量使用者與在Windows上創建大量資料夾

Filezilla Server中並無設定可在某一directory下自動創立與登入使用者同名資料夾的功能,當然也無一口氣建立大量使用者的方式,故在此主要方式為:找出Filezilla Server儲存使用者相關設定的檔案位置、利用windows command line創建大量資料夾給這些使用者、寫一script產生大量使用者設定內容。 在Windows上創建大量資料夾 ``` for /L %a in (1 1 36) do mkdir team%a <ul> <li><span style="line-height: 22px;">/L: 代表後面的(1 1 36)並非一個list,而是指loop從1到36,每次間隔1。

  • hothero
    hothero
ruby

[Troubleshooting]incompatible character encodings: UTF-8 and ASCII-8BIT

最近把放在heroku上的rails專案,其上傳檔案paperclip的storage改至S3上,當一上傳中文檔名便會發生"incompatible character encodings: UTF-8 and ASCII-8BIT"這樣的編碼問題。若錯誤訊息是"... ASCII-8BIT and UTF-8",則解法1的編碼需改成UTF-8。 解法1(適用於筆者) 註:在處理上傳的params前加入這兩行,team為該model name,avatar為檔案上傳的名稱,可依照需求自行修改。 params[:team][:avatar].original_filename.force_encoding('ASCII-8BIT') params[:team][:avatar].headers.force_encoding('ASCII-8BIT') 解法2 針對config/

  • hothero
    hothero
mysql

Install phpMyAdmin, PHP with Nginx on Ubuntu Server 12.04 LTS

PHP & CGI ``` sudo apt-get install php5-fpm sudo apt-get install php5-cgi php5-mysql php5-curl php5-gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl   # 可按照自己需求刪減 sudo vi /opt/nginx/conf/nginx.conf   # 或是/etc/nginx/sites-enabled/default <!--more--&

  • hothero
    hothero
apache

解決AWS Server &quot;mountall: Disconnected from Plymouth&quot;與apache2 rewrite之wordpress permalink問題

前幾天我在AWS 上的Ubuntu Server(也就是本站的server)毫無預警的毀滅.....server壞掉打不開、重開機也沒用,只留下一長串的Server Logs跟我乾瞪眼==  這串System Log我想最關鍵的就是最後一行"mountall: Disconnected from Plymouth",以此行去Google可以發現是Ubuntu 10.4的kernel問題,但也沒一個人可以講出最關鍵的原因。 但茫茫大海中的一個明燈表示"將Instance Type從micro改成small便可正常運行",為了我的資料冒著花錢的風險也要嘗試,所幸成功也救回了所有檔案。 Rewrite 救回檔案的步驟大概如下:改成small instance type成功Run起Server -> 開啟FTP下載var/www、/etc/apache2兩處有關server檔案與設定檔 -> 架起新Server環境 ->

  • hothero
    hothero
javascript

[整理]Javascript 打亂(obfuscation) / 編碼(encoding)器

在此整理出幾類常見的javascript打亂/編碼器: *推薦 (註:這兩個都是實務上常見的。不只會替代原帶有含意的變數名稱為單個英文字母,也會一併壓縮檔案大小) http://dean.edwards.name/packer/ http://javascriptcompressor.com/ Javascript Compiler (註:單純把js檔案大小壓縮) http://closure-compiler.appspot.com/home(Google提供,線上版) http://developer.yahoo.com/yui/compressor/(Yahoo所提供,但需下載額外的jar檔跑。也可替代名稱,但須額外下載jar檔略顯麻煩) For fun (註:這些都使用特殊的方式加密與編碼,雖可一眼看不出是什麼程式碼,但卻導致所需檔案大小成長N倍。在速度競爭的網路時代中勢必不被愛載) http:

  • hothero
    hothero
aws

Set up FTP Server on Amazon EC2

sudo yum install vsftpd       # installation sudo vi /etc/vsftpd/vsftpd.conf # 進入設定檔修改成我們需要的設定 sudo service vsftpd start sudo service vsftpd restart chkconfig vsftpd on # 開機時便能自動啟動ftp server 設定檔修改 關閉匿名使用者的登入:anonymous_enable=NO(約在12行) 使本機的使用者可登入FTP:local_enable=YES(約在15行) 加入以下4行(為使FTP能順利通過AWS的防火牆),且注意等號間不可有空白: pasv_max_port=41000 pasv_

  • hothero
    hothero
TroubleShooting

Error : cache: [GET /admin] miss&quot; on Heroku

最近將Rails專案(3.2 with ruby 1.9.3)放置heroku發生了/admin 連結miss的問題,查了很久發現不是rails_admin的問題,而是cancan這套認證gem的問題。 解決方法 1. 將application_controller.rb內的cancan設定改成: {% codeblock lang:ruby %} rescue_from CanCan::AccessDenied do |exception| redirect_to root_url, :alert => exception.message end 2. 在routes.rb內的root :to =&gt; "

  • hothero
    hothero
ruby

Active Directory Users密碼過期問題與大量reset密碼 on Windows Server 2008 R2

Windows Server 2008 R2中的Active Directory Users新增時會預設42天後密碼自動失效,需要管理者重新reset密碼方能重新使用。在此分享幾個PowerShell指令獲取想要的資訊與利用cmd大量修改user屬性。 Powershell ### 取的所有密碼過期的users ``` get-aduser -filter {Enabled -eq $True} -properties passwordExpired | where {$_.passwordExpired} | Select DistinguishedName <h3><!--more-->取得所有"password never expires"屬性為false的users,並把結果輸出到C:\temp.txt此檔案(這是我需要的)。</h3> 註:此輸出的temp.txt檔為UCS-2編碼,

  • hothero
    hothero
You've successfully subscribed to hothero's TechNote!