git pull https://github.com/damody/4ipnet-feeds.git master
git pull <remote> <branch>
很簡單吧!
]]>根據rick68的說法 有BCP這招
]]>我覺得他的未來應該是自動記錄
在你使用的電腦上自動記錄你的行為
你看過的網頁、做過的事,自己整理記錄起來,
類似timesnapper
不過有一些隱私的問題要解決
總之不能分享的話隱私記錄詳細一點大家也可以接受吧?
也許配合錄音筆之類的。
]]>check
這兩個巨集,直接衝突~
記得要搜尋取代喔
或是define undef
還有 vertices_begin跟vertices_end要自己實作
不然會莫名的出現FTickerObjectBase的簽名
class RBFMesh : public BasicMesh
{
public:
BasicMesh::VertexIter vertices_begin()
{
return VertexIter(*this, VertexHandle(0));
}
//-----------------------------------------------------------------------------
BasicMesh::VertexIter vertices_end()
{
return VertexIter(*this, VertexHandle(int(n_vertices())));
}
};
像這樣自己實作。
]]>
用XXXfactory class就好
但要加入場景變 actor 的話
除了原來的兩個class
還要加入
XXXcomponent
XXXactor
XXXactorfactory
要有縮圖的話要加入
XXXThumbnailRenderer
大概就這樣吧
可以參考paper2D
]]>Donate Damody |
簡單的小工具,請大家多多支持作者,啊哈哈(苦笑)。
好用的話請捐錢給我謝謝
因為google api call多了是要錢的
AutoShortURL
是一個可以自動把複製到的網址轉成google 短網址的軟體
新增功能 會自動備份轉換後的網址 在執行目錄下產生 website.log 存你所有轉換的網址
大家可以撘配
http://goo.gl/VJSL ditto Clipboard Manager
來使用會更方便
在ptt的介紹文
https://www.ptt.cc/bbs/EZsoft/M.1431407897.A.BBD.html
]]>
需要先註冊unreal engine 4
https://www.unrealengine.com/ue4-on-github
大家快去註冊吧~
以後編譯的library應該都以for unreal 為優先,
因為他的blueprint連連看真的太猛了~
]]>裡面有很多我自己編譯的library
但不重要,重點在zlib的連結順序要對
// zlib must linked first and other must after opencv linked
AddThirdPartyPrivateStaticDependencies(Target, "zlib", "OpenCV");
// for opencv need
AddThirdPartyPrivateStaticDependencies(Target,
"libJasper",
"libJPG",
"UElibPNG",
"libTiff",
"UEOpenEXR",
"cuda"
);
emcmake cmake .. 預設的
但這樣會編不出.bc 如果你是要.js執行檔就沒問題
但要編譯library會編不出來,要去
C:\Program Files\Emscripten\emscripten\1.25.0\cmake\Modules\Platform\Emscripten.cmake
的第113 115行把
#SET(CMAKE_STATIC_LIBRARY_SUFFIX ".bc")
的#號去掉
然後我是使用mingw32-make來編,我編library要用release
整個指令就會長這樣
emcmake cmake .. -DCMAKE_MAKE_PROGRAM=mingw32-make -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release
.bc檔要看別人的cmake怎麼寫的
有時不會在lib裡面,怪怪 怪怪怪?
總之就把openmesh編過了。
先載ue4.6的code
跟Emscripten 1.25
成功的話按了 GenerateProjectFiles.bat 的ue4.sln
裡面會出現HTML5的組態
把HTML5 with Development編過 不然會有ue4game.js找不到的問題
再把Win64 with Development editor編過就好
有用Substance的銅學要加這段在
Substance\Source\SubstanceCore\Private\framework\details\detailssync.h
#ifdef __EMSCRIPTEN__
#ifdef AIR_USE_WIN32_SYNC
#undef
#endif
#ifndef AIR_USE_PTHREAD_SYNC
#define AIR_USE_PTHREAD_SYNC
#endif
#endif
當然還是不能用啦。
]]>2. 不管是什麼兵種什麼武器,很少有一擊必殺的傷害
所以不像現代戰爭需要掩護
3. 移動應該有分保持陣形跟破壞陣形的移動
4. 要有單鍵"散開"就把一個隊伍像圓一般散開
跟集合,大家一起集合,
此時用保持陣形的移動,就可以移動中散開跟集合
5. 缺少移動攻擊單位
6. 太多細節操作需要簡化
像是發展經濟、發展軍事,
可以直接調整做各個工作的人,
或是只讓電腦控制村民,玩家控制軍事單位
但以玩家的指令優先
7. 地形影響不夠真實
沒有水淹七軍之類能改變地形的地圖
網站密碼設定存在裡面,你沒有記下來就死定了
我也不想知道為什麼會發生這種事
請買godaddy並用他的application manager 三思
就是爛而已,我也才用四個月就發生這種事,扯爆了。
]]>
會互相合作,過程有吵架,但還是會齊心把事情完成。
國中
了解到自己的興趣,並且能自我學習。
高中
自我學習需要的東西並實作自己覺得有趣的事物。
大學
模仿別人解決問題的能力。
研究所
尋找、分析、理解、解決、驗證、尋求支援問題的能力。
做夢文無誤。
]]>我說 幸福是靈感的來源
OK,這是一個場面,我要HOLD住。
一般的顏色使用 R, G, B 來描述,
有時會因為實驗效果,選用 HSV, Lab等色彩空間。
描述一個區域的顏色以三組二元一次線性方程式為例
ax + by + c = r
ax + by + c = g
ax + by + c = b
懶的補圖了,就加減聽吧。
如果加上了 其它 weight ex. x*x, x*y, y*y 可以如下
ax + by + cxx+ dxy + eyy + f = r
ax + by + cxx+ dxy + eyy + f = g
ax + by + cxx+ dxy + eyy + f = b
可以依喜歡加入 x/y, (x-y)/y, cos(x*0.1) 之類,各種你喜歡的weight
接下來要求解 a b c ... 各種變數
以9個sample points (3x3) & 二元一次線性方程式為例
列出 Ax=b 並把x就是這些參數解出來
維度如下
A(9, 3)
x(3, 1)
r(1, 9)
A 跟 b 填
x y c b
0 0 1 0
0 1 1 1
0 2 1 2
1 0 1 0
1 1 1 1
1 2 1 2
2 0 1 0
2 1 1 1
2 2 1 2
接下來解x
x = 0 1 0
你看最簡單的 color 就這樣 build 好了喔
只要把 系數帶回 可以得到 color model =
y = ans
例子當然舉簡單的啦!
好,
下面是進階的 weight 關係:
1. 加入原影像的 weight
如果你的weight填
aR +bG +cB = R
那x會得到 1 0 0
這會覺得沒用,實際運用上可以先做影像處理(sobel, blur, to HSV)再內插拿來用
2. 針對區域填 weight 可以多加很多項來做出 sparse matrix
if x < 5 && y < 5
ax + by + c = r
else
c = r
3. 利用bspline 得到weight
v = bspline(x, y)
av = r
4. 自定函數的weight
計算目前圖上的所有值 並normalize 到一定的範圍再填
而這些能力會在你不需要時被你永遠遺忘。
1. 有地震快來的感覺
2. 看穿說謊
3. 看穿敵意
4. 散發專業氣息
5. 感動人心
6. 嘲諷、挑釁
7. 穩定人心
8. 強迫
9. 請求
10. 評估友好程度
]]>
去抓最新版,有cmake
裡面的靜態記得要 _STLP_USE_DYNAMIC_LIB 的定義喔~
編完後~
如果想用 stlport 取代掉 目前預設的 stl 就取代就好
現在要講的是如何兩套 stl 並存
我會假設看的人都會設程式庫路徑跟標頭檔路徑
先定義這兩行別的 stlport 跟內建的 stl 衝突
#define _STLP_USE_OWN_NAMESPACE 1
#define _STLP_DONT_REDEFINE_STD 1
加入 include 檔
#include <stlport/vector>
如果有使用 boost 還要加下面兩行免的 auto link 到錯的 boost lib
#undef __SGI_STL_PORT
#undef _STLPORT_VERSION
最後連結你編好的 lib 檔
_STLP_USE_STATIC_LIB 連結靜態
_STLP_USE_DYNAMIC_LIB 連結動態
使用某些檔案時會有模稜兩可的呼叫多載函式的問題發生
請幫 stlport 的函數加上 stlport::
範例程式:
#define _STLP_USE_STATIC_LIB
#define _STLP_USE_OWN_NAMESPACE 1
#define _STLP_DONT_REDEFINE_STD 1
#include <stlport/vector>
#include <stlport/iostream>
#include <stlport/algorithm>
#undef __SGI_STL_PORT
#undef _STLPORT_VERSION
#include <auto_link_stlport.hpp>
#include <iostream>
#include <algorithm>
#include <vector>
typedef stlport::vector<int> intsp;
typedef std::vector<int> ints;
int main(int argc, char* argv[])
{
intsp ary1;
ints ary2;
for (int i = 0; i < 10; ++i)
{
ary1.push_back(i);
ary2.push_back(i);
}
for (intsp::iterator it = ary1.begin(); it != ary1.end(); ++it)
{
std::cout << *it;
stlport::cout << *it << " ";
}
stlport::cout << stlport::endl;
std::random_shuffle(ary1.begin(), ary1.end());
stlport::random_shuffle(ary2.begin(), ary2.end());
for (int i = 0; i < ary2.size(); ++i)
{
std::cout << ary1[i];
stlport::cout << ary2[i] << " ";
}
std::cout << std::endl;
stlport::sort(ary1.begin(), ary1.end());
//stlport::sort(ary2.begin(), ary2.end()); // error C2665
std::sort(ary2.begin(), ary2.end());
for (int i = 0; i < ary2.size(); ++i)
{
std::cout << ary1[i];
stlport::cout << ary2[i] << " ";
}
return 0;
}
這是個小小的創作,一方面算是對社會的發洩 內容或許有點偏激,但當作創作看看就好 不喜勿入,喜歡可以給點鼓勵,感謝 -- 有一天,強者我朋友鑽一哥打完LOL突然有所感 放下滑鼠,悠悠的跟我說:「人生就像上路阿…」 我不解的問:「Why oh why?」 他望向窗戶那端:「上路的生態就是魯小,夠魯小你才能贏得這個遊戲…」 我還是不太懂的問:「這跟人生有什麼關係?」 「看看那些政府狗官,哪個不是魯小才賺飽飽,不遊走法律邊緣如何這般富有?不收賄絡 怎麼可能有名車豪宅?就算被偵查組GANK也能以最少的損失死亡,製造給『隊友』一起贏 得遊戲的機會阿…」他煞有其事的說著 「隊友?他媽的狗官還有隊友?」他越講我越糊塗 「是阿…人生是一場遊戲,沒有隊友相助是不可能致富的,這就是所謂的官官相護阿…」 他似乎已經對人生感到厭倦的說著 而我已經對他的中肯感到說不出話來了,只好接著問:「那其他路呢?」 「中路就像是黑道,總是擁有最大的經濟優勢,以及強大的火力,若是沒有黑道支持,你 他媽的狗官早就被弄下來啦」他講到已經有點生氣的感覺 「難道你的意思是,看似沒有關係的上中路,若不互相扶持,就不會贏了這場遊戲?意思 是狗官看似沒有跟黑道有往來,但是他們卻是隊友?」我試著了解他說的意思卻依然一頭 霧水 「沒錯,沒想到你理解的這麼快,難怪你也有金牌呢…」鑽一哥總是眼神這麼的銳利,好 似能看透一切 「我繼續說下去,JG就像是父母」 「父母?!」他媽的我已經不知怎麼形容驚訝了 「沒錯!他們看似沒有幫助誰,卻隨時觀察著整個戰場,好的父母會在你最需要的時候出 現幫助你檔子彈坦住掩護,替你製造各種機會」鑽一哥在寢室裡抽出了一根菸點了起來 他繼續說道:「而SUP就像是警察,若是警察不與其他人合作,這遊戲也不會贏的,他們 光明正大的佈眼,並且極力守護著最大輸出,就算被GANK光榮戰死,其他隊友也會感謝他 的犧牲奉獻」 「你的意思是警察很軟皮?很容易被秒?這我就不懂了…」我有一種腦袋打結的感覺 「是阿,警察背負著社會的期望,人民的保母,一旦被發現他保護著狗官並與黑道暗通款 曲,鐵定是被轟到爆炸的,所以他們總是要比其他人更小心翼翼更有地圖觀呢」他又吸入 了一口菸,並吐出一團煙霧 不等他說完我直接問:「那AD呢?AD是什麼?」 「想也知道,是民代阿~民代雖然血少,但輸出量總是異常的高呢!被民代壓迫的總是要吐 出幾根骨頭,但重點是他可是很脆弱的,你看像那桃園的民代賞個巴掌就被打道回溫泉了 ,AD走位可是要特別小心的呢,他就是仗勢他輸出高自以為,一個不小心就躺啦」他又吐 出一團菸說著 「原來如此阿…這樣五個位子就都有代表了呢…但人生這場遊戲我怎麼沒看見平民呢?阿! 我知道了,是小兵,一般老百姓就像小兵一樣,這一輩子只能受政府操弄,像螞蟻一樣工 作著,然後扛塔與被壓榨最後死去對吧?」我這時已經懂了他的邏輯得意的說著 「沒錯,而竟然還有人民期望著如神一般的召喚師幫助他們的人生,事實上召喚師根本不 幫小兵的呢」他笑得有些詭異 「好黑暗阿這個遊戲,被你這麼一說我連玩這個遊戲與人生的動力都消失了…」 「我還是會繼續玩下去的,畢竟這就是現實的人生阿」鑽一哥犀利的說著 「恩我懂了!我會繼續加油,繼續成功的身存下去的」我比出了五的手勢,與他擊掌 「Carry me,3Q」我露出了金牌般的笑容 「OKOK那我當狗官,你當警察吧」鑽一哥若有似無的笑著 全文完 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.224.67.109
請~~~歡迎分享 ※ 編輯: Messyou 來自: 61.224.67.109 (12/09 23:28)
→ wiredo :野怪就中小企業 狗官警察黑道民代父母都找他們拿錢
]]>其實我本來想用 native c++ call 的
可是 System.IO.FileIO 一直無法初始化?
mscorlib.dll 一直 load 的有錯誤,
所以還是乖乖吃 .net 套餐吧!
// clr_call_epplus.cpp: 主要專案檔。 #include "stdafx.h" using namespace System; using namespace System::IO; using namespace OfficeOpenXml; using namespace OfficeOpenXml::Drawing; using namespace OfficeOpenXml::Drawing::Chart; using namespace System::Drawing; int main(array<System::String ^> ^args) { FileInfo^ templateFile = gcnew FileInfo(L"c:\\temp\\SampleApp\\sample1.xlsx"); FileInfo^ newFile = gcnew FileInfo(L"c:\\temp\\SampleApp\\sample5.xlsx"); if (newFile->Exists) { newFile->Delete(); // ensures we create a new workbook newFile = gcnew FileInfo(L"c:\\temp\\SampleApp\\sample5.xlsx"); } ExcelPackage^ package = gcnew ExcelPackage(newFile, templateFile); { //Open worksheet 1 ExcelWorksheet^ worksheet = package->Workbook->Worksheets[1]; worksheet->InsertRow(5, 2); worksheet->Cells["A5"]->Value = "12010"; worksheet->Cells["B5"]->Value = "Drill"; worksheet->Cells["C5"]->Value = 20; worksheet->Cells["D5"]->Value = 8; worksheet->Cells["A6"]->Value = "12011"; worksheet->Cells["B6"]->Value = "Crowbar"; worksheet->Cells["C6"]->Value = 7; worksheet->Cells["D6"]->Value = 23.48; worksheet->Cells["E2:E6"]->FormulaR1C1 = "RC[-2]*RC[-1]"; ExcelNamedRange^ name = worksheet->Names->Add("SubTotalName", worksheet->Cells["C7:E7"]); name->Style->Font->Italic = true; name->Formula = "SUBTOTAL(9,C2:C6)"; //Format the new rows worksheet->Cells["C5:C6"]->Style->Numberformat->Format = "#,##0"; worksheet->Cells["D5:E6"]->Style->Numberformat->Format = "#,##0.00"; ExcelPieChart^ chart = (ExcelPieChart^)(worksheet->Drawings->AddChart("PieChart", eChartType::Pie3D)); chart->Title->Text = "Total"; //From row 1 colum 5 with five pixels offset chart->SetPosition(0, 0, 5, 5); chart->SetSize(600, 300); ExcelAddress^ valueAddress = gcnew ExcelAddress(2, 5, 6, 5); ExcelChartSerie^ ser = (ExcelPieChartSerie^)(chart->Series->Add(valueAddress->Address, "B2:B6")); chart->DataLabel->ShowCategory = true; chart->DataLabel->ShowPercent = true; chart->Legend->Border->LineStyle = eLineStyle::Solid; chart->Legend->Border->Fill->Style = eFillStyle::SolidFill; chart->Legend->Border->Fill->Color = System::Drawing::Color::Red; //Switch the PageLayoutView back to normal worksheet->View->PageLayoutView = false; // save our new workbook and we are done! package->Save(); } Console::WriteLine(L"Hello World"); return 0; }]]>
去把 _mingw.h 裡面的
# define _CRTIMP __attribute__ ((__dllimport__))
改成
# define _CRTIMP //__attribute__ ((__dllimport__))
再重編 library 即可。
error LNK2001: unresolved external symbol __imp__stricmp
]]>國父認為要把考試權獨立出來,
因為怕行政權的人直接任用他想要的人,
而這些人沒有經過一定的考核,
確定這些人是對國家有益的,
所以考試權被獨立出來。
主程式:
#include <Wt/WApplication> #include <Wt/WBreak> #include <Wt/WContainerWidget> #include <Wt/WLineEdit> #include <Wt/WPushButton> #include <Wt/WText> #include <Wt/WImage> #include <Wt/WFileUpload> #include <Wt/WProgressBar> #include <Wt/WResource> #include <Wt/WFileResource> #include <Wt/WLink> #include <Wt/WEnvironment> #include <Wt/WBootstrapTheme> #include <Wt/WCssTheme> #include <opencv2/opencv.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/core/core.hpp> #include <auto_link_opencv.hpp> #include <auto_link_wt.hpp> // c++0x only, for std::bind #include <functional> using namespace Wt; /* * A simple hello world application class which demonstrates how to react * to events, read input, and give feed-back. */ class HelloApplication : public WApplication { public: HelloApplication(const WEnvironment& env); private: WLineEdit* nameEdit_; WText* greeting_; }; HelloApplication::HelloApplication(const WEnvironment& env) : WApplication(env) { setTitle("Hello world"); // application title root()->addWidget(new WText("Your name, please ? ")); // show some text nameEdit_ = new WLineEdit(root()); // allow text input nameEdit_->setFocus(); // give focus WPushButton* button = new WPushButton("Greet me.", root()); // create a button button->setMargin(5, Left); // add 5 pixels margin root()->addWidget(new WBreak()); // insert a line break greeting_ = new WText(root()); // empty text /* * Connect signals with slots * * - simple Wt-way */ /* * - using a c++0x lambda: */ nameEdit_->enterPressed().connect(std::bind([ = ]() { greeting_->setText("Hello there, " + nameEdit_->text()); })); button->clicked().connect(std::bind([ = ]() { greeting_->setText("Hello there, " + nameEdit_->text()); })); // Upload Container Wt::WContainerWidget* container = new Wt::WContainerWidget(); container->setStyleClass("yellow-box"); Wt::WFileUpload* fu = new Wt::WFileUpload(container); fu->setFileTextSize(50 * 1024); // Set the maximum file size to 50 mB. Wt::WProgressBar* wbar = new Wt::WProgressBar(container); wbar->setRange(0, 100); fu->setProgressBar(wbar); fu->setMargin(10, Wt::Right); // Provide a button to start uploading. Wt::WPushButton* uploadButton = new Wt::WPushButton("Send", container); uploadButton->setMargin(10, Wt::Left | Wt::Right); Wt::WText* out = new Wt::WText(container); // Upload when the button is clicked. uploadButton->clicked().connect(std::bind([ = ]() { fu->upload(); uploadButton->disable(); })); // Upload automatically when the user entered a file. fu->changed().connect(std::bind([ = ]() { fu->upload(); uploadButton->disable(); out->setText("File upload is changed."); })); // React to a succesfull upload. fu->uploaded().connect(std::bind([ = ]() { out->setText("File upload is finished."); std::string spool = fu->spoolFileName(); cv::Mat img = cv::imread(spool); cvtColor(img, img, CV_BGR2GRAY); std::string savename; { // create save name static int count = 0; count++; if (count > 100) { count = 0; } char buffer[32]; itoa(count, buffer, 10); savename = "tmp" + std::string(buffer) + ".png"; } cv::imwrite(savename, img); Wt::WFileResource* imageFile = new Wt::WFileResource("image/png", savename); imageFile->suggestFileName(savename); Wt::WImage* image = new Wt::WImage(imageFile, "PNG version"); Wt::WFileResource* imageFileOri = new Wt::WFileResource("image/png", spool); imageFileOri->suggestFileName(savename); Wt::WImage* imageOri = new Wt::WImage(imageFileOri, "PNG version"); root()->addWidget(image); root()->addWidget(imageOri); })); // React to a file upload problem. fu->fileTooLarge().connect(std::bind([ = ]() { out->setText("File is too large."); })); root()->addWidget(container); } WApplication* createApplication(const WEnvironment& env) { /* * You could read information from the environment to decide whether * the user has permission to start a new application */ HelloApplication* app = new HelloApplication(env); const std::string* theme = env.getParameter("theme"); if (theme) { app->setTheme(new Wt::WCssTheme(*theme)); } else { app->setTheme(new Wt::WBootstrapTheme(app)); } app->useStyleSheet("style/everywidget.css"); app->useStyleSheet("style/dragdrop.css"); app->useStyleSheet("style/combostyle.css"); app->useStyleSheet("style/pygments.css"); return app; } int main(int argc, char** argv) { // --http-address=140.118.175.35 --http-port=8880 --deploy-path=/hello --docroot=docroot --approot=approot return WRun(argc, argv, &createApplication); }
大概說一下,
WRun 會從 cmd 參數初始化整個程式,
而每次有人要看網頁時,
Wt 都會呼叫 createApplication 來產生一個 WApplication 實體跟一個 thread,
setTitle("Hello world"); // application title root()->addWidget(new WText("Your name, please ? ")); // show some text nameEdit_ = new WLineEdit(root()); // allow text input nameEdit_->setFocus(); // give focus WPushButton* button = new WPushButton("Greet me.", root()); // create a button button->setMargin(5, Left); // add 5 pixels margin root()->addWidget(new WBreak()); // insert a line break greeting_ = new WText(root()); // empty text
初始化一堆按鍵。
nameEdit_->enterPressed().connect(std::bind([ = ]() { greeting_->setText("Hello there, " + nameEdit_->text()); })); button->clicked().connect(std::bind([ = ]() { greeting_->setText("Hello there, " + nameEdit_->text()); }));
綁函數。
重點載完圖片後轉灰階並顯示:
// React to a succesfull upload. fu->uploaded().connect(std::bind([ = ]() { out->setText("File upload is finished."); std::string spool = fu->spoolFileName(); cv::Mat img = cv::imread(spool); cvtColor(img, img, CV_BGR2GRAY); std::string savename; { // create save name static int count = 0; count++; if (count > 100) { count = 0; } char buffer[32]; itoa(count, buffer, 10); savename = "tmp" + std::string(buffer) + ".png"; } cv::imwrite(savename, img); Wt::WFileResource* imageFile = new Wt::WFileResource("image/png", savename); imageFile->suggestFileName(savename); Wt::WImage* image = new Wt::WImage(imageFile, "PNG version"); Wt::WFileResource* imageFileOri = new Wt::WFileResource("image/png", spool); imageFileOri->suggestFileName(savename); Wt::WImage* imageOri = new Wt::WImage(imageFileOri, "PNG version"); root()->addWidget(image); root()->addWidget(imageOri); }));
結果圖:
程式碼載點: http://damody.googlecode.com/files/image_procesing_wt.7z
需要的 library prebuilt:
http://library-prebuilt-for-windows.googlecode.com/files/wt-3.3.0-vc11up3-x64.7z
http://library-prebuilt-for-windows.googlecode.com/files/zlib-1.2.7-mingw-x64.7z
我補個重點就好,
輸出那邊要勾 "註冊 COM Interop" 才會有tlb檔
*.tli 跟 *.tlh 都是不需要的
只有dll 可以用 http://msdn.microsoft.com/en-us/library/tzat5yw6.aspx
來產生 tlb 檔。
Wt
http://www.webtoolkit.eu/widgets/forms/file-upload
http://redmine.emweb.be/projects/wt/wiki/Installing_Wt_on_MS_Windows
http://www.webtoolkit.eu/widgets/graphics-charts
POCO
http://www.codeproject.com/Articles/252827/Learning-Poco-A-simple-HTTP-server
http://stackoverflow.com/questions/13968134/poco-how-to-upload-image-to-webser-using-poco-in-c
http://pocoproject.org/documentation/index.html
最後決定用 Wt 。
加入 clang 規則檔
加入 c 跟 cpp 的建置規則
加入基本選項
我沒有加太多選項,只有輸出檔名跟 PreprocessorDefinitions 而已,
要修改的人就自己改吧~
連結的話,我用內建的連結器 link.exe 就ok了~
我也試過 minGW 的 ld.exe 也是 ok 的~
看一下 c 編好後的結果圖~
c++ 編譯結果圖
然後很重要一點,就是不能開 debuger~~~
我查了很多資料,都說要用 gdb ,簡單來說等我存錢從 VisualGDB 再說吧~
應該有了 VisualGDB 就無敵了~
好啦~ 最重要的載點來了~: http://damody.googlecode.com/files/clang%20c%2Cc%2B%2B%20vs9%2C11.7z
記得要把 clang.exe 的資料夾加入環境變數PATH裡面,以上。
附上我編的 llvm 跟 clang 用網路上編的或自己編的也可以。
http://damody.googlecode.com/files/llvm%20and%20cfe.7z
CMFCRibbonBaseElement* tmp_ui = m_wndRibbonBar.GetCategory(0)->FindByID( ID_SPIN_TransparencyPicture); re = dynamic_cast<CMFCRibbonEdit*>(tmp_ui);
得到 ID_SPIN_TransparencyPicture 的控制項
在 Areo 下 GetCategory(1) 要加 1
這個 BUG 還蠻麻煩的,
因為程式碼根本就沒有動啊~~~
二.想睡覺
三.生病
四.房租
五.其它需要思考的事
]]>
有人逃兵,被通緝了幾十年,隱姓埋名
有人逃兵,慢慢的有可能解套,讓他得以順利回台、衣錦還鄉
一樣是領18%,有人是當政務官時利用政策漏洞,讓自己享受豐厚的退休生活
有人是辛苦的老兵,說是18%,根本沒有甚麼錢
但是被罵的都是基層的
那些退下來的政務官除非要選總統,不然不會有人爆料,她也不會主動放棄
新聞有時會看到些退休老人把養老的退休金全數捐出給慈善機構
但是一些收入豐厚的官員,即使有人公開說過要捐出一半薪水,也可以無視
台灣現在很像飢餓遊戲的場景
基層的人很努力要求生存
在上位者不斷的剝奪基層的生存空間,所以基層人員會覺得台灣沒救
但是政策的制定越來越保護在上位者
不管是教育政策還是經濟,甚至法律
台灣
對某些人來說是溫暖的家鄉,對某些人來說是貪污的溫床
對某些人來說是終生的住所,對某些人來說,吃飽了就可以走
]]>
我難過
那一年默默無言 只能選擇離開
那一年想要退伍 不能選擇離開
無邪的笑容已經不再精彩
無能的國軍已經不能打仗
你害怕結局所以拚命傷害
你害怕真相所以拼命推卸
說是我擋住你的美好未來
說是我擋住你的美好熱炒
你堅決 不希望我等待 我便默默的讓你走開
你堅決 不希望我生還 我便默默的被關禁閉
如今你 受了傷回來 叫我如何接受這安排
如今你 聲押在監牢 叫我如何接受這安排
*我難過的是 放棄你 放棄愛
*我難過的是 高利貸 護膚館
放棄的夢被打碎 忍住悲哀
簽賭網全都曝光 回收艱難
我以為是成全 你卻說你更不愉快
我以為很安全 你卻關掉攝影開關
#我難過的是 忘了你 忘了愛
#我難過的是 高利貸 護膚館
盡全力忘記我們 真心相愛
簽賭網全都曝光 回收艱難
也忘了告訴你 失去的不能重來
也忘了告訴你 死去的不能活來
傷心太平洋
離開真的殘酷嗎 或者溫柔才是可恥的
或者孤獨的人無所謂 無日無夜無條件
前面真的危險嗎 或者背叛才是體貼的
國軍真的危險啊 或者真相才是埋沒的
或者逃避比較容易吧 風言風語風吹沙
或者佐憲該下地獄吧 瘋言瘋語沒在怕
往前一步是黃昏 退後一步是人生
在前一天吃熱炒 再隔一天牽重機
風不平浪不靜心還不安穩 一個島鎖住一個人
風不平浪不靜國防部圍人 一間房鎖住一個人
我等的船還不來 我等的人還不明白
我等影帶還不來 枉死的人還不明白
醫院說佐憲還在 Coco說佐憲有來買
寂寞默默沉沒沉入海 未來不在我還在
真相默默沉沒沉入海 證據不在鬼眼還在
如果潮去心也去 如果潮來你還不來
如果操完沒水喝 如果操完你喝到掛
浮浮沉沉往事浮上來 回憶回來你已不在
浮浮沉沉謊言浮上來 回憶仲秋他已不在
一波還未平息 一波又來侵襲 茫茫人海狂風暴雨
一波還未算帳 一波又來藉口 監獄對我還比較棒
一波還來不及 一波早就過去 一生一世如夢初醒
一波還在後製 一波又來上映 一直重修如讀大學
深深太平洋底 深深傷心~
說好的幸福呢
作詞:方文山
作曲:周杰倫
監製:周杰倫
妳的回話凌亂著 在這個時刻
我想起噴泉旁的白鴿 甜蜜散落了
情緒莫名的拉扯 我還愛妳呢
而妳斷斷續續唱著歌 假裝沒事了
時間過了 走了 愛情面臨選擇 妳冷了 倦了 我哭了
離開時的不快樂 妳用卡片手寫著 有些愛只給到這 真的痛了
怎麼了 妳累了 說好的 幸福呢
我懂了 不說了 愛淡了 夢遠了
開心與不開心一一細數著 妳再不捨
那些愛過的感覺都太深刻 我都還記得
妳不等了 說好的 幸福呢
我錯了 淚乾了 放手了 後悔了
只是回憶的音樂盒還旋轉著 要怎麼停呢
妳的回話凌亂著 在這個時刻
我想起噴泉旁的白鴿 甜蜜散落了
更多更詳盡歌詞 在 ※ Mojim.com 魔鏡歌詞網
情緒莫名的拉扯 我還愛妳呢
而妳斷斷續續唱著歌 假裝沒事了
時間過了 走了 愛情面臨選擇 妳冷了 倦了 我哭了
離開時的不快樂 妳用卡片手寫著 有些愛只給到這 真的痛了(吼~~~)
怎麼了 妳累了 說好的 幸福呢
我懂了 不說了 愛淡了 夢遠了
開心與不開心一一細數著 妳再不捨
那些愛過的感覺都太深刻 我都還記得
妳不等了 說好的 幸福呢
我錯了 淚乾了 放手了 後悔了
只是回憶的音樂盒還旋轉著 要怎麼停呢
怎麼了 妳累了 說好的 幸福呢
我懂了 不說了 愛淡了 夢遠了我都還記得
妳不等了 說好的 幸福呢
我錯了 淚乾了 放手了 後悔了
只是回憶的音樂盒還旋轉著 要怎麼停呢
]]>
今天在初始化 OpenGL 4.3 的時候發現 glGenVertexArrays 這個 VBO 經典絕招不能用,
我才發現是 4.3 不支援這招了!!! 要支援的話要用 glutInitContextProfile(GLUT_COMPATIBILITY_PROFILE);
來初始化 GLUT,以上。
glutInitContextVersion (4, 3);
https://chrome.google.com/webstore/detail/tabs-outliner/eggkanocgddhmamlbiijnphhppkpkmkl
firefox Tab Mix Plus
https://addons.mozilla.org/zh-TW/firefox/addon/tab-mix-plus/
visual studio Tabs Studio
http://www.tabsstudio.com/
歡迎大家分享有關 tab 的外掛跟工具~
]]>今天你是新手,
如果我是老手,你第一次來問我問題,
我會先考量你的問題點,
如果你就是那種沒基礎的,
我一定會教你最處處碰壁的方法來解決,
如果你是有基礎的,
那我提點你一下你應該就懂了,
如果你是伸手牌想要我做到補習班名師般的教導,
請拿出誠意來謝謝,不然我的內心會莫名的過意不去,
誠意就是下了長時間的苦功都無法解決,或直接拿錢消災,
不然請另請高明,
你今天來問一個問題,覺得我態度不好,
你卻沒有想過,為了學習這些"基礎",
別人過去花了多少時間在上面,
舉例來說:編譯 PCL library ,
我資質駑鈍,編了一個禮拜,
你只花一個晚上幾個小時,就來靠北?
這樣就算了,還對編譯器、連結器選項一問三不知?
你敢跟我說你有認真研究過?
好啦!你的認真可能跟我的認真不太一樣,
不過在我眼中就是不夠認真,請你再多拿點誠意來吧?
最近的新人還有一個毛病就是,
你編譯 library 編不過,有一堆錯誤訊息,
我都跟你說這是連結器 linker 的錯了,
如果你看不懂,請把錯誤訊息一個一個拿去 google ,
你竟然以為我在說笑,把我的話當放屁?
如果你對我的方法有疑問你就要當面質疑!
只會在那邊發呆,等我 google 給你?
有沒有那麼大牌啊?新手就可以這樣嗎?
你不照指示做,也沒有對我的指導(解決方法)提出問題,
只是發呆,我覺得你很不尊重我,
你讓我感覺你不是想要學習解決問題的方法,
你只是想要等別人幫你解決,
金鋼番長:這說不過去!
你會讓我覺得你領 22k 剛好而已。
實作 textbox 使用 c++
應該要叫 TextBox 才對,啊嘶~
第三版:http://damody.googlecode.com/files/TextEditor_v3.7z
changelog
修正 s3748679 版友說的問題
加入 Ctrl-C Ctrl-V Ctrl-X Delete 多行單行的功能
第二版:http://damody.googlecode.com/files/TextEditor_v2.7z
縮圖:http://ppt.cc/X6TJ
change log:
修正 text width 算不準的問題
加入 mouse select 的功能
http://damody.googlecode.com/files/TextEditor.7z
縮圖: http://ppt.cc/cCEu
大概講一下步驟:
定一個抽象層 EditorConcept
定一個實作層 GdiEditor
定一下要用的資料結構
struct Size { Size(); Size(int _w, int _h); int w, h; };
拿來存有大小的東西
struct Vec2 { Vec2(); Vec2(int _x, int _y); int x, y; };
存位置
struct Rect { Rect(); Rect(int _x, int _y, int _w, int _h); union { struct { int x, y, w, h; }; struct { int left, right, top, bottom; }; }; };
存矩形
struct Color { Color(); Color(unsigned char _r, unsigned char _g, unsigned char _b); unsigned char r, g, b; };
存顏色
定義外框大小
白邊大小
Size m_Size; Rect m_MarginSize;
定義一下顏色
Color m_MarginColor; Color m_BackGroundColor;
定一下字的大小
要不要顯示行號
要不要顯示專注點
愛的閃耀間隔
Size m_FontSize; bool m_ShowLineNumber; bool m_ShowFocus; double m_BlinkTime;
定一下基本拿 size 的函數
Size GetSize(); void SetSize(int w, int h); Rect GetMarginSize(); void SetMarginSize(const Rect& rc);
定一下繪圖函數
Render();
畫背景函數
RenderBackGround();
用純虛擬函數 定義畫靠右/左字串
virtual void DrawLeftString(int x, int y, const std::wstring& s) = 0;
virtual void DrawRightString(int x, int y, const std::wstring& s) = 0;
用純虛擬函數 定義需要平台支援的函數
virtual void DrawRect(const Rect& area, const Color& c) = 0; virtual void SetFontSize(const EditorConcept::Size& s) = 0; virtual Size GetFontSize() = 0;
再把一些業務邏輯加進來
virtual void SetFocusBlinkTime(double v); virtual double GetFocusBlinkTime(); virtual void UpdateBlink(); virtual bool SafePositon(int x, int y); virtual void TypeEnter(); virtual void TypeHome(); virtual void TypeEnd(); virtual void TypeDelete(); virtual void TypeBackSpace();
enum MOVE_DIRECTION { UP, DOWN, LEFT, RIGHT }; virtual void MoveFocus(MOVE_DIRECTION md);
實作一下
平台相依函數
virtual void DrawRect(const Rect& area, const Color& c); virtual void DrawRightString(int x, int y, const std::wstring& s); virtual void DrawLeftString(int x, int y, const std::wstring& s); virtual void SetFontSize(const EditorConcept::Size& s); virtual Size GetFontSize(); protected: virtual void InterRenderStart(); virtual void InterRenderEnd();
後記:
我是一個虛擬函數一個平台相依函數成對實作的,
這樣可以快速驗證,
後來有用 double buffer 來解決 愛一直閃亮的問題,
就不多說了,因為這是對平台不夠了解的問題,
中間把平台相依函數做完後,
就剩把大量的業務邏輯實作在 EditorConcept 虛擬層的工作,
還有把這些邏輯跟WndProc 接在一起了。