感想2就沒啥好說的.........
第一就是觸控板非常不靈敏
不知道是不是程式沒寫好, 有時候去滑他
滑~~~~~沒反應....
這很明顯可以看出
我也看過有人反映~~~~~~顯然不只是我~~~~
再來就是螢幕的問題
色彩不鮮豔就算了~~~~~說實在畫面真的很難看
顏色很不飽和~~~~
但這不是重點
重點是........
平常上班~~要去吃飯了
start+L鎖定電腦
fn+f7讓螢幕暗下來..............
好像哪裡怪怪的
拉近點看.......
看出是甚麼了嗎...........要不要思考下~~答案在下面XD
是鍵盤印...........幹...........................
他媽的蝦爆了.................................................................
所以平常的螢幕清潔=狗屁
反正蓋下去他會在幫你印上去
Javascript ~ sort array
var array = [[1, "grape", 42], [2, "fruit", 9]];
array.sort(function(a, b)
{
if (a[1] == b[1]) { return 0; }
if (a[1] > b[1])
{
return 1;
}
else
{
return -1;
}
});
reference
http://stackoverflow.com/questions/5503900/how-to-sort-an-array-of-objects-with-jquery-or-javascript
PHP ~ curl 使用感想XD
有些網頁
可能不是簡單的對他要求網址就會把他的網頁傳回來給你
雖然大多是這樣~
但有些網頁是要透過post傳資料後才回傳結果給你
如果想透過程式去抓取這些資料
則要模擬你發送這些資訊給對方server, 對方再回傳東西
如果用PHP可能可以用Peal的HTTP_Request2或是curl做到
但還有一種少數情況.....
不是假裝發post資料給對方server他就認你
我就遇到這問題.......
他還會看你是從哪裡來的
再看要不要傳資料給你
今天解決這問題也是我透過firebug監看網頁上操作時發送的資訊
才發現可以再嘗試多傳送這些參數給server看他認不認得出是正常使用者去瀏覽她的網頁
多次嘗試終於........我找到要多傳哪個關鍵參數給server
他才真的以為我是正常管道去讀取這網頁
我也是搞好久才發現到這個.....
就是Request Headers那一排
這邊firebug很清楚明瞭的列出傳了那些header過去
於是我才想到......可以不只傳post還可以傳假的header資訊給他試試看
過程我試了改 Agent, cookie, host, Referer
試到Referer
才成功............
因為不知道怎麼傳這些header參數所以也是一直google找資料= =
最後弄出來真的......好家在0rz
這邊我是用curl做的
才發現php的curl真的很強大,還可以亂真的XD
curl_setopt($ch, CURLOPT_REFERER, 'http://www.xxxxx.com.tw/ggggggxxxx');
這段code就是傳header跟server說我是從哪裡來的
如果沒傳, 他就以為你亂搞
可是有傳~~~~他就覺得你是正常人~~~~才回傳資料給你
可能不是簡單的對他要求網址就會把他的網頁傳回來給你
雖然大多是這樣~
但有些網頁是要透過post傳資料後才回傳結果給你
如果想透過程式去抓取這些資料
則要模擬你發送這些資訊給對方server, 對方再回傳東西
如果用PHP可能可以用Peal的HTTP_Request2或是curl做到
但還有一種少數情況.....
不是假裝發post資料給對方server他就認你
我就遇到這問題.......
他還會看你是從哪裡來的
再看要不要傳資料給你
今天解決這問題也是我透過firebug監看網頁上操作時發送的資訊
才發現可以再嘗試多傳送這些參數給server看他認不認得出是正常使用者去瀏覽她的網頁
多次嘗試終於........我找到要多傳哪個關鍵參數給server
他才真的以為我是正常管道去讀取這網頁
我也是搞好久才發現到這個.....
就是Request Headers那一排
這邊firebug很清楚明瞭的列出傳了那些header過去
於是我才想到......可以不只傳post還可以傳假的header資訊給他試試看
過程我試了改 Agent, cookie, host, Referer
試到Referer
才成功............
因為不知道怎麼傳這些header參數所以也是一直google找資料= =
最後弄出來真的......好家在0rz
這邊我是用curl做的
才發現php的curl真的很強大,還可以亂真的XD
curl_setopt($ch, CURLOPT_REFERER, 'http://www.xxxxx.com.tw/ggggggxxxx');
這段code就是傳header跟server說我是從哪裡來的
如果沒傳, 他就以為你亂搞
可是有傳~~~~他就覺得你是正常人~~~~才回傳資料給你
PHP ~ get number only
$output = preg_replace ( '/[^0-9]/', '', $string );
reference
http://stackoverflow.com/questions/5474088/php-regular-expression-filter-number-only
reference
http://stackoverflow.com/questions/5474088/php-regular-expression-filter-number-only
CKEditor ~ min height
var config ={
extraPlugins : 'autogrow',
removePlugins : 'resize',
defaultLanguage :'zh',
autoGrow_minHeight : 20,
toolbar : [
{ name: 'document', items : [ 'Source' ] },
{ name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
{ name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
{ name: 'links', items : [ 'Link','Unlink','Anchor' ] },
{ name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ] },
{ name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },
{ name: 'colors', items : [ 'TextColor','BGColor' ] },
{ name: 'tools', items : [ 'Maximize', 'ShowBlocks','-','About' ] }
]
};
$('#schedulePanel textarea.editor').ckeditor(config);
reference
http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.dialogDefinition.html
extraPlugins : 'autogrow',
removePlugins : 'resize',
defaultLanguage :'zh',
autoGrow_minHeight : 20,
toolbar : [
{ name: 'document', items : [ 'Source' ] },
{ name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
{ name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
{ name: 'links', items : [ 'Link','Unlink','Anchor' ] },
{ name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ] },
{ name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },
{ name: 'colors', items : [ 'TextColor','BGColor' ] },
{ name: 'tools', items : [ 'Maximize', 'ShowBlocks','-','About' ] }
]
};
$('#schedulePanel textarea.editor').ckeditor(config);
reference
http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.dialogDefinition.html
PHP ~ use curl do POST
$toURL = "http://SomeDomain/SamplePath?SomeVar=XX";
$post = array(
"a"=>"123",
"b"=>"321",
);
$ch = curl_init();
$options = array(
CURLOPT_URL=>$toURL,
CURLOPT_HEADER=>0,
CURLOPT_VERBOSE=>0,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_USERAGENT=>"Mozilla/4.0 (compatible;)",
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>http_build_query($post),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
source
http://blog.roodo.com/esabear/archives/16358749.html
$post = array(
"a"=>"123",
"b"=>"321",
);
$ch = curl_init();
$options = array(
CURLOPT_URL=>$toURL,
CURLOPT_HEADER=>0,
CURLOPT_VERBOSE=>0,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_USERAGENT=>"Mozilla/4.0 (compatible;)",
CURLOPT_POST=>true,
CURLOPT_POSTFIELDS=>http_build_query($post),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
source
http://blog.roodo.com/esabear/archives/16358749.html
Asus ~ UX31A 使用感想
鍵盤問題一堆......
爛得要命
雖然現在看似是好了~~~~但也很擔心哪天又再度發作
關於買這台NB發生的鍵盤問題~
ASUS Zenbook UX31A 鍵盤問題層出不窮
http://www.mobile01.com/topicdetail.php?f=233&t=3048723&p=1
再來是平常使用遇到個問題.....
Fn+F2無法關閉無線網路
莫名其妙的問題.......當我不想無線網路自動連上無線網路寧願用網路線比較快的時候
就遇到這問題~~~~我也是因為這種情況才發現的
無線網路根本關不了XD
可以發現右下方的無線根本沒反應.........
會發光的鍵盤XD
不知道是為那些特殊需求的使用者而設計
我個人一開始覺得很酷~~~但覺得浪費電馬上就把他關了
基本上我覺得很礙眼..........很沒必要= =
可是蠢的是.........關了他似乎不會記得我的設定一樣.....
每次開機他都自動亮起來
或是有時候電腦一段時間沒用螢幕自動關閉省電
這時候要回來用電腦~~~摸一下
鍵盤很神奇的自動亮起來了...........無言
然後我又要再手動把他的燈關閉
總之這動作我已經做了好幾百遍~~~煩
沒有Home, End, PageUp, PageDown鍵
其實這些按鍵有時候上網都會用到說
這就算了.......但我要寫程式呀XD
使用頻率雖然不高~~~~但也是會按到
但最悽慘的是上ptt的時候........這些鍵超常用 .......真的哭哭了0rz....
他要配合Fn+上下左右才可以變成這些鍵的功能~~~~講真的...很不習慣.....與其不去使用
因為牠的上下左右也異常難按
右邊的接口是個尷尬的地方
當插了電源~外接硬碟~外接螢幕
整個就是#@%%$#^$#%^&#^%@
但會提到這點的原因是
他的外接螢幕那轉接頭超鬆
我就是因為後來再把外接硬碟插進去~~~~他鬆鬆的
不小心就掉了......所以使用這項絕技要小心點~~~~要先喬好位置在插進去
插進去後還要小心線的走勢~~~免得把轉接頭推到一下就掉了XD
以上就是我使用這台NB一個月不到兩個月的感想......
至於其他都沒甚麼好說的~~~
速度上蠻快的~~~~因為是SSD = =
但美中不足就是記憶體才4G.........當初店家那臭老頭還說可以換RAM
狗屁...........哭哭
買這台NB真是悔不當初
應該先把壞的NB送修~~~~忍一忍~~~~買台Mac才對
phpQuery ~ remove tag in html
此範例為使用phpQuery進去把該物件的img標籤取代掉
然後再取html出來
$feature = pq('blockquote:eq(0)');
foreach ($feature->find('img') as $img) {
$img = pq($img);
$img -> replaceWith('');
}
$feature = pq($feature) -> html();
然後再取html出來
$feature = pq('blockquote:eq(0)');
foreach ($feature->find('img') as $img) {
$img = pq($img);
$img -> replaceWith('');
}
$feature = pq($feature) -> html();
jQuery ~ move Table tr
$(document).ready(function(){
$(".up,.down").click(function(){
var row = $(this).parents("tr:first");
if ($(this).is(".up")) {
row.insertBefore(row.prev());
} else {
row.insertAfter(row.next());
}
});
});
reference
http://stackoverflow.com/questions/1569889/jquery-move-table-row
$(".up,.down").click(function(){
var row = $(this).parents("tr:first");
if ($(this).is(".up")) {
row.insertBefore(row.prev());
} else {
row.insertAfter(row.next());
}
});
});
reference
http://stackoverflow.com/questions/1569889/jquery-move-table-row
CKEditor ~ custom toolbar
var config ={
extraPlugins : 'autogrow',
removePlugins : 'resize',
defaultLanguage :'zh',
toolbar : [
{ name: 'document', items : [ 'Source' ] },
{ name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
{ name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
{ name: 'links', items : [ 'Link','Unlink','Anchor' ] },
{ name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ] },
{ name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },
{ name: 'colors', items : [ 'TextColor','BGColor' ] },
{ name: 'tools', items : [ 'Maximize', 'ShowBlocks','-','About' ] }
]
};
$('#schedulePanel textarea.editor').ckeditor(config);
extraPlugins : 'autogrow',
removePlugins : 'resize',
defaultLanguage :'zh',
toolbar : [
{ name: 'document', items : [ 'Source' ] },
{ name: 'clipboard', items : [ 'Cut','Copy','Paste','PasteText','PasteFromWord','-','Undo','Redo' ] },
{ name: 'basicstyles', items : [ 'Bold','Italic','Underline','Strike','Subscript','Superscript','-','RemoveFormat' ] },
{ name: 'links', items : [ 'Link','Unlink','Anchor' ] },
{ name: 'insert', items : [ 'Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak','Iframe' ] },
{ name: 'styles', items : [ 'Styles','Format','Font','FontSize' ] },
{ name: 'colors', items : [ 'TextColor','BGColor' ] },
{ name: 'tools', items : [ 'Maximize', 'ShowBlocks','-','About' ] }
]
};
$('#schedulePanel textarea.editor').ckeditor(config);
Discuz ~ 修正編輯器嵌入影片網址問題
這問題就是user輸入不符規定的youtube網址
Discuz認不出她是啥東西
就直接把網址show出來而不是嵌入影片至文章
我的解決方法是改編輯器的javascript
早在user發文章之前就透過js把網址修改成Discuz認得出的youtube網址格式
網址例子
http://www.youtube.com/watch?v=U4UwoDtTAD4
https://www.youtube.com/watch?v=U4UwoDtTAD4
http://www.youtube.com/watch?feature=player_embedded&v=U4UwoDtTAD4
https://www.youtube.com/watch?feature=player_embedded&v=U4UwoDtTAD4
http://youtu.be/U4UwoDtTAD4
以上只有第一個符合可以正常顯示
下面4個都不行
所以做法就是用正規表示法抓出v的值再把這個v放到正規網址上就好
可是我正規表示法不熟....所以用很蠢的作法....
但可以working就好XD
修改static/js/editor.js裡
case 'vid':
裡面的input加入onblur事件
<input onblur="modifyVideoUrl(this)" type="text" value="" id="' + ctrlid + '_param_1" style="width: 220px;" class="px" />
新增function
function modifyVideoUrl(e) {
var v = jQuery(e).val();
v = v.replace('http://www.youtube.com/watch?v=', '');
v = v.replace('https://www.youtube.com/watch?v=', '');
v = v.replace('http://www.youtube.com/watch?feature=player_embedded&v=', '');
v = v.replace('https://www.youtube.com/watch?feature=player_embedded&v=', '');
v = v.replace('http://youtu.be/', '');
jQuery(e).val('http://www.youtube.com/watch?v=' + v);
}
Discuz認不出她是啥東西
就直接把網址show出來而不是嵌入影片至文章
我的解決方法是改編輯器的javascript
早在user發文章之前就透過js把網址修改成Discuz認得出的youtube網址格式
網址例子
http://www.youtube.com/watch?v=U4UwoDtTAD4
https://www.youtube.com/watch?v=U4UwoDtTAD4
http://www.youtube.com/watch?feature=player_embedded&v=U4UwoDtTAD4
https://www.youtube.com/watch?feature=player_embedded&v=U4UwoDtTAD4
http://youtu.be/U4UwoDtTAD4
以上只有第一個符合可以正常顯示
下面4個都不行
所以做法就是用正規表示法抓出v的值再把這個v放到正規網址上就好
可是我正規表示法不熟....所以用很蠢的作法....
但可以working就好XD
修改static/js/editor.js裡
case 'vid':
裡面的input加入onblur事件
<input onblur="modifyVideoUrl(this)" type="text" value="" id="' + ctrlid + '_param_1" style="width: 220px;" class="px" />
新增function
function modifyVideoUrl(e) {
var v = jQuery(e).val();
v = v.replace('http://www.youtube.com/watch?v=', '');
v = v.replace('https://www.youtube.com/watch?v=', '');
v = v.replace('http://www.youtube.com/watch?feature=player_embedded&v=', '');
v = v.replace('https://www.youtube.com/watch?feature=player_embedded&v=', '');
v = v.replace('http://youtu.be/', '');
jQuery(e).val('http://www.youtube.com/watch?v=' + v);
}
LINQ ~ where clause example
dynamic labor = ctx.Qoo.Where(l => l.xxxID== xxxID).Select(l => l).ToList().Select(l =>
{
dynamic aaa = new ExpandoObject();
aaa.ooo= l.ooo;
aaa.yyy= l.yyy;
aaa.hhh= l.hhh;
return aaa;
}).ToArray();
reference
http://stackoverflow.com/questions/8663897/why-is-linq-wherepredicate-first-faster-than-firstpredicate
{
dynamic aaa = new ExpandoObject();
aaa.ooo= l.ooo;
aaa.yyy= l.yyy;
aaa.hhh= l.hhh;
return aaa;
}).ToArray();
reference
http://stackoverflow.com/questions/8663897/why-is-linq-wherepredicate-first-faster-than-firstpredicate
Windows ~ modify desktop path
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
裡面有個Desktop值改成想要的路徑就是了
reference
http://www.pczone.com.tw/vbb3/archive/t-129170.html
裡面有個Desktop值改成想要的路徑就是了
reference
http://www.pczone.com.tw/vbb3/archive/t-129170.html
Filezilla ~ backup Site Manager settings
進入目錄全部複製起來
開資料夾打網址
%APPDATA%\FileZilla
reference
http://forum.filezilla-project.org/viewtopic.php?f=2&t=20341
開資料夾打網址
%APPDATA%\FileZilla
reference
http://forum.filezilla-project.org/viewtopic.php?f=2&t=20341
Visual C++ ~ error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS.
這問題是發生在用OpenCV的時候
裡面有段code使用fopen
但vs覺得他不安全就不給編譯= =
解決方法就是改Preprocessor Definitions
Project -> Properties(Alt+F7) -> Configuration Properties -> C/C++ -> Preprocessor ->
Preprocessor Definitions.
新增
USE_STANDARD_FILE_FUNCTIONS
_CRT_SECURE_NO_WARNINGS
就可以了
reference
http://darmawan-salihun.blogspot.tw/2011/07/crtsecurenowarnings-error-message-in.html
裡面有段code使用fopen
但vs覺得他不安全就不給編譯= =
解決方法就是改Preprocessor Definitions
Project -> Properties(Alt+F7) -> Configuration Properties -> C/C++ -> Preprocessor ->
Preprocessor Definitions.
新增
USE_STANDARD_FILE_FUNCTIONS
_CRT_SECURE_NO_WARNINGS
就可以了
reference
http://darmawan-salihun.blogspot.tw/2011/07/crtsecurenowarnings-error-message-in.html
Visual c++ ~ OpenCV
架設OpenCV環境至Visaul Studio C++專案
參考~
http://jepsonsblog.blogspot.tw/2012/07/installation-guide-opencv-24-with.html
參考~
http://jepsonsblog.blogspot.tw/2012/07/installation-guide-opencv-24-with.html
download Autoblog wallpaper javascript
會寫這支javascript是因為平常看autoblog的gallery
例如網址
http://www.autoblog.com/photos/2012-pagani-huayra-first-drive/#photo-5378629/
我都會邊看圖邊按下載桌布
DOWNLOAD WALLPAPER
這顆按鈕
可是這樣慢慢點慢慢看很費時間
後來我autoblog待看,下載的車就越積越多
0rz...............
我就想說乾脆叫程式下載就好
省時省力
而且抓下來的圖直接點了就可以看, 還是桌布size的圖片
就研究了一下他的gallery這支網頁的原始碼跟javascript
發現可以透過javascript一直跑回圈下載圖片
就自己寫了一隻js
之後進入網頁後開console貼上這段js給他run, 就可以開始下載了
超省時省力XD
var i = 0;
var totalItems = $('.thumbnails li').length;
var sleepSecond = 3500;
function xxx() {
if (i < totalItems) {
$('.thumbnails li:eq(' + i + ')').mousedown();
$('#gallery_wallpaper a').click();
i++;
setTimeout("xxx()", sleepSecond);
} else {
alert('over.')
}
}
xxx();
大致上就是每抓一次圖等待3.5秒在抓一次
抓取所有項目圖片項目的長度, 在一個一個觸發點下去項目的事件切換圖片後
在去處發點下載桌布的按鈕的程式
例如網址
http://www.autoblog.com/photos/2012-pagani-huayra-first-drive/#photo-5378629/
我都會邊看圖邊按下載桌布
DOWNLOAD WALLPAPER
這顆按鈕
可是這樣慢慢點慢慢看很費時間
後來我autoblog待看,下載的車就越積越多
0rz...............
我就想說乾脆叫程式下載就好
省時省力
而且抓下來的圖直接點了就可以看, 還是桌布size的圖片
就研究了一下他的gallery這支網頁的原始碼跟javascript
發現可以透過javascript一直跑回圈下載圖片
就自己寫了一隻js
之後進入網頁後開console貼上這段js給他run, 就可以開始下載了
超省時省力XD
var i = 0;
var totalItems = $('.thumbnails li').length;
var sleepSecond = 3500;
function xxx() {
if (i < totalItems) {
$('.thumbnails li:eq(' + i + ')').mousedown();
$('#gallery_wallpaper a').click();
i++;
setTimeout("xxx()", sleepSecond);
} else {
alert('over.')
}
}
xxx();
大致上就是每抓一次圖等待3.5秒在抓一次
抓取所有項目圖片項目的長度, 在一個一個觸發點下去項目的事件切換圖片後
在去處發點下載桌布的按鈕的程式
C++ ~ get char ASCII code
char c= 'a';
int z = c;
cout<<z<<"\n";
reference
http://www.velocityreviews.com/forums/t290064-c-getting-the-ascii-value-of-a-char.html
int z = c;
cout<<z<<"\n";
reference
http://www.velocityreviews.com/forums/t290064-c-getting-the-ascii-value-of-a-char.html