[投稿隱藏表單]
名 稱
標 題
內 文
附加圖檔[] []
  • 可附加圖檔類型:GIF, JPG, JPEG, PNG,瀏覽器才能正常附加圖檔
  • 附加圖檔最大上傳資料量為 4096 KB。
  • 當檔案超過寬 250 像素、高 250 像素時會自動縮小尺寸顯示
  • AA可使用 [aa][/aa] 防止變形
  • 回覆時程式碼縮排會被trim消掉,請善用[code][/code]標色或貼到ideone等網站
  • LaTeX記法可以用「$$」或「\( \)」包起來,例如「$\sum_{k=1}^{k=n} k^2 = \frac{n(n+1)(n+2)}{6}$」

題名一覽
12517: VMWARE問題 (1)12457: 無標題 (0)
12510: 無標題 (4)12455: 網遊跟手遊的成本 (3)
12507: html tag (1)12449: Android上的BluetoothSocket Connect (0)
12503: 版控Config檔 (4)12442: 無法解決 (5)
12493: 無標題 (9)12432: 人工AI (6)
12488: 網址列編碼 (2)12425: 無標題 (18)
12487: 無標題 (0)12399: 無標題 (6)
12478: 無標題 (3)12358: 大外行求指點 (3)
12471: IIS的Session (0)12345: 新手入門一問,關於職涯發展。 (5)
12469: 無標題 (7)12309: 無標題 (47)
檔名:1445090002938.jpg-(303 KB, 1048x998)
303 KB
Eclipse標籤(?)亂碼無名氏15/10/17(六)21:53 ID:nWuHnrfsNo.11068[回應]
Eclipse版本 Kepler SR2
appearance theme選擇了Dark Juno
但是重開Eclipse之後就會標籤變成亂碼,調回預設就變回正常顯示
請問島民有沒有推薦的黑色appearance theme?
無名氏: 大概是該theme採用的字型不合適吧,如果改的動字型應該就解決了 (tDMNJcDA 15/10/17 21:58)
無名氏: 改用Eclipse Moonrise UI Theme重開之後就沒亂碼了 (nWuHnrfs 15/10/17 22:48)

檔名:1444559066478.jpg-(101 KB, 595x1057)
101 KB
遊戲引擎無名氏15/10/11(日)18:24 ID:ow8fDwIkNo.11062[回應]
各位太太我是以前學程式的但學生時期太混沒學的很深入,後來工作不是走程式方面的就荒癈下來了,最近考慮了一下將來打算強化程式能力找相關工作。

目前考慮想走遊戲業查了一下資料,市面上有兩款比較常見的引擎其中比較多人推的是unity,想打算從這邊切入。

請問學程式去外面的聯x或巨x學合適嗎??有點想自己買書來學就好,但又怕程度太差。

看了幾本書請問有那一本比較推的嗎?
http://www.books.com.tw/products/0010633009
http://www.books.com.tw/products/CN11218154
http://goods.ruten.com.tw/item/show?21450952988317

本身會一點3d的基礎,應該能自己製造物件來用,反正主要是練程式出來。再請問如果想進遊戲公司,除了遊戲引擎還需要學什麼嗎??
無名氏: 去科技業吧 遊戲業已死 (GoDCEfRo 15/10/26 12:45)
無名氏15/10/11(日)20:38 ID:djCLeXaMNo.11063
無論如何
不要進遊戲業
那裡什麼也沒有
先有一份好工作才有機會去製作自己的遊戲
無名氏: 嗯...看來遊戲業真的很黑啊...,那請問以新手來說適合準備什麼樣的程式作品比較好呢? (ow8fDwIk 15/10/11 20:51)
無名氏: 用c++寫一個完整的點餐系統之類的這樣可以嗎? (ow8fDwIk 15/10/11 20:51)
無名氏: 我以前履歷附上一個單機連線的戰略遊戲,但是從來沒有哪個公司看過 (djCLeXaM 15/10/11 21:16)
無名氏: 學生等級的作品真的沒啥參考價值,入行新手不大可能用作品加分 (djCLeXaM 15/10/11 21:19)
無名氏: >djCLeXaM :這樣沒有準備方向,那就是練到什麼樣的東西都做的出來就直能硬著頭皮去投覆歷嗎? (ow8fDwIk 15/10/11 21:28)
無名氏: 看來我還是直接買本書先開始學再說好了,剛剛查了一下先學c#似乎是個不錯的方向? (ow8fDwIk 15/10/11 21:29)
無名氏: 別浪費時間,低薪賣肝就能錄取,立刻進去看看熱情能燒多久 (djCLeXaM 15/10/11 21:45)
無名氏: >djCLeXaM:哈哈哈,我有心裡準備新人剛開始賣肝會賣很兇,不過我沒寫程式太久了還是要先會點東西 (ow8fDwIk 15/10/11 22:03)
無名氏15/10/12(一)07:36 ID:a8BW4Q1ENo.11065
>用c++寫一個完整的點餐系統之類的這樣可以嗎?
有點東西勝過什麼都沒有,不過我建議你還是參與領域相關的開源項目比較有用,如果想搞圖像辨識可以嘗試參與opencv的開發
如果想玩convolution neural network可以考慮caffe
如果想投入svm可以考慮libsvm
如果想學習deep learning或編寫其他新鮮的機器學習算法可以試試mlpack
如果想開發app可以考慮Qt
如果想對標準盡一份力可以考慮投入boost的懷抱
這可以保證你會學到很多東西,也可以為自己的履歷加分

這一行嚴峻的地方是經驗不等於實力,不要以為做的久了就一定比較厲害,要記得時刻更新自己,更別忘了穩固基礎功,有太多2x年經驗的老鳥別說自我更新,連基本的資料結構和演算法都學不好
無名氏: 想請教一下 如果是走JAVA系的話 可以往什麼方向發展? (MmwUI/nM 15/10/12 14:58)
無名氏: 就我知道的,網頁很像是主流,其次是嵌入式系統的應用程式開發吧。 (T6AabYMU 15/10/14 23:31)
無名氏15/10/12(一)07:59 ID:a8BW4Q1ENo.11066
順便問一下,你所謂完整的點餐系統是怎樣的一個系統?

有沒有圖形界面?能不夠手動增加餐飲的種類?不同電腦之間的資料能不能夠進行同步?傳送資料時你要如何對資料保密(ssl?)?
資料庫要用哪一種?資料庫的資料是否有提供加密的功能?如果有,用什麼加密?是否有對資料做統計的功能?例如列出本年,本月,本日最受歡迎的餐點,列表顯示各家店面的狀況等等
無名氏15/10/12(一)14:28 ID:LhSzfpIANo.11067
那兩家出來也只是會碰介面而已
資策會出來是至少會打一點code
但是結果是一樣的>找不到工作

除非你要上的是資策會的菁英班
不過那要十萬

當然也可能是我們這屆比較弱啦
真想找的話你會連結google商店的廣告嗎
或是用(風桶)的連線呢(忘記怎麼拚)
這兩個會的話篩選就比較有機會
無名氏: 資策會努力一點怎可能找不到工作...太混當然無法阿 (d5rzWxaI 15/10/13 11:34)
無名氏: 我在蛋糕店工作。同專案內的程式新人有三成來自資策會。 (PJxuc6sk 15/10/18 21:11)
無名氏: 不管去哪裡,自己努力+團隊合作才是正途,同個班裡有人結訓拿超過五個 offer,也有人做不出專題。 (PJxuc6sk 15/10/18 21:17)

檔名:1444572275893.png-(383 KB, 600x600)
383 KB
openCV的VideoWriter無名氏15/10/11(日)22:04 ID:c9EujC3QNo.11064[回應]
不好意思 整個程式跑完後輸出的檔案甚麼都沒有...
是我writer<<bgr寫錯位置還是waitkey那邊要改掉?

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>


using namespace std;
using namespace cv;

Mat g_srcImage, g_dstImage;
int g_constastValue;

int main()
{

VideoCapture capture("D:/hw1.avi");
VideoWriter writer("process.avi", CV_FOURCC('F', 'L', 'V', '1'), 25.0, Size(640, 800));
if (!capture.isOpened())
cout << "fail to open!" << endl;
long totalFrameNumber = capture.get(CV_CAP_PROP_FRAME_COUNT);
cout << "整個影片共" << totalFrameNumber << "帧" << endl;


long frameToStart = 300;
capture.set(CV_CAP_PROP_POS_FRAMES, frameToStart);
cout << "從第" << frameToStart << "帧開始讀" << endl;


int frameToStop = totalFrameNumber;

if (frameToStop < frameToStart)
{
cout << "結束帧小於開始帧" << endl;
return -1;
}
else
{
cout << "結束帧為" << frameToStop << "帧" << endl;
}


double rate = capture.get(CV_CAP_PROP_FPS);
cout << "fps為:" << rate << endl;


g_constastValue = 50;
bool stop = false;
Mat frame;
/*namedWindow("Extracted frame");
createTrackbar("對比度", "Extracted frame", &g_constastValue, on_contrast);*/
int delay = 1000 / rate;


long currentFrame = frameToStart;

int kernel_size = 3;
Mat kernel = Mat::ones(kernel_size, kernel_size, CV_32F) / (float)(kernel_size*kernel_size);

while (!stop)
{

if (!capture.read(frame))
{
cout << "讀取失敗" << endl;
return -1;
}


imshow("Extracted frame", frame);
/*filter2D(frame, frame, -1, kernel);

imshow("after filter", frame);*/
cout << "正在讀取" << currentFrame << "帧" << endl;

//////hsv
Mat hsv;
Mat dst;
cvtColor(frame, hsv, CV_BGR2HSV);///convert frame from BGR to HSV
namedWindow("hsv", 1);
imshow("hsv", hsv);
vector<Mat>mvhsv;////build a vector to store 'h''s''v' channel
split(hsv, mvhsv);////split the whole video to 3 channels
namedWindow("H", 1);
namedWindow("S", 1);
namedWindow("V", 1);
imshow("H", mvhsv[0]);
imshow("S", mvhsv[1]);
imshow("V", mvhsv[2]);

equalizeHist(mvhsv[2], mvhsv[2]);///equalize(to make the contrast higher) the 'v'channel

merge(mvhsv, dst);///merge the three channel together

namedWindow("HSV Constrast", 1);
imshow("HSV_Contrast", dst);
////////hsv_END///////
///////hsv2bgr+ output/////
Mat bgr;
Mat dst2;
cvtColor(dst, bgr, CV_HSV2BGR);///////convert the video back
filter2D(bgr, bgr, -1, kernel);
namedWindow("constast window 2", 1);
imshow("constast window 2", bgr);
writer << bgr;
//////END//////
/*
vector<Mat>mv;
split(frame, mv);
namedWindow("R", 1);
namedWindow("G", 1);
namedWindow("B", 1);
imshow("R", mv[0]);
imshow("G", mv[1]);
imshow("B", mv[2]);*/

/*for (int i = 0; i < 3; i++){
cvtColor(mv[i], mv[i], CV_BGR2GRAY);
}
for (int i = 0; i < 3; i++){
equalizeHist(mv[i], mv[i]);
}
merge(mv, frame);
namedWindow("contrast window 2", 1);
imshow("constast window2", frame);*/
//////////////////////////////////

/////My Method to equalize Frame by reading col&rows&channel ane multi g_contrastvalue(the value i made on the top)///////
/*
g_constastValue = 300;
for (int y = 0; y < frame.rows; y++){
for (int x = 0; x < frame.cols; x++){
for (int c = 0; c < 3; c++){
frame.at<Vec3b>(y, x)[c] = saturate_cast<uchar>((g_constastValue*0.01)*(frame.at<Vec3b>(y, x)[c]));
}///saturate_cast : to prevent data overflow
}
}
filter2D(frame, frame, -1, kernel);
imshow("constrast frame 1", frame);*/
//////END////////
int c = waitKey(delay);

if ((char)c == 27 || currentFrame > frameToStop)
{
stop = true;
}

if (c >= 0)
{
waitKey(0);
}
currentFrame++;

}
capture.release();
waitKey(0);
return 0;
}
無名氏: 把問題po在pastebin好嗎?很難讀 (a8BW4Q1E 15/10/12 07:37)
無名氏: 總覺得這種問題和程式碼沒關係阿... 先弄個Hello World吧? 能正常動再把功能慢慢加進去 (E3eTU8XU 15/10/12 14:02)
無名氏: 額...imshow是可以跑出影片的 只是用videowriter作的新檔案什麼都沒有 (gTmrufu6 15/10/12 17:13)
無名氏: 真應該推廣gist或pastebin (3.dTnDkE 15/10/13 11:35)
無名氏: 不熟這東西,不過如果你確定輸出前資料正常,會不會是writer沒關閉?有close之類的函式嗎? (eI1m7ivo 15/10/15 18:53)
無名氏: 寫在while裡面所以應該是沒問題 (Mjd0it6o 15/10/19 22:14)

檔名:1444403524641.png-(294 KB, 950x1489)
294 KB
無標題無名氏15/10/09(五)23:12 ID:pL2WPpeYNo.11053[回應]
學C#也快學三個月了
三個月前剛開始真的甚麼都不懂, 邊看書邊實作邊學, 但過程真的氣死我了
弄form的時候, 刪除控制項方法也要給我錯誤(那個時候我還沒完全學會事件, 而且要我動手刪除VS自動產生的編碼...當時我哪敢)
弄自己的控制項(UserControl)的時候, 自己寫的編碼和弄控制項而自動產生的編碼互相影響, 因而出錯誤, 還說一堆讓人聽不懂的術語, 根本無法debug(那時候我以為自己已經玩完了)
多執行緒吃掉我的Exception, 然後x64又吃掉我的Exception.
控制項的databinding要是用別的執行緒事件來刺激會出Exception, 那你還提供甚麼databinding啦, 不夠完善之餘還封住了背後的運作, 如果被吃掉又沒發現的話debug就有夠受的...

結果棄用了. 還是自己在property直接寫事件了結, 每個欄位改成property再寫事件, 真的超煩,

原本能自己建thread又弄個甚麼task, 書裡只講完task的用法結果自己還是要查threading的底層概念才真正明白, 根本不會寫threading就不會懂得寫這些打包好的東西, 那打包是為了幫我省幾句編碼嗎? 如果你說是為了活用CPU的所有內核, 那你在threading裡改不就好了嗎?

檔案系統超級複雜, 連幫solution改個名字也超級難, 想把寫好的東西打包好提供給別個solution... 問題多得差點瘋了

我受夠了啦!!!!
(結果因為老闆要求, 還是乖乖用下去...)
無名氏15/10/10(六)02:08 ID:uHQ/rcSsNo.11055
抱歉我看不太懂你在抱怨什麼..

>控制項的databinding要是用別的執行緒事件來刺激會出Exception,
>那你還提供甚麼databinding啦
你可以去查關鍵字Invoke,我想能解決你的問題
我個人是覺得搞出一個Delegate來解決thread-safe的問題其實很好用
也很符合OO的思想

>原本能自己建thread又弄個甚麼task
Task超好用的我勸你別嗆他ㄛ= =

我大概也可以理解為什麼書裡只想講task
他好學,可以做的事情多,不用管太多例外
重點是簡單的同步寫起來跟 Javascript 一樣好寫,不用處理 thread pool 潮爽的
講這樣優勢就蠻明顯了吧?

>根本不會寫threading就不會懂得寫這些打包好的東西
我可以很老實告訴你
根本不會寫 threading去處理 threadpool/async/mutex 之類的問題才會瘋掉
這東西很吃經驗,沒de過幾次bug很難知道thread要怎麼寫才會安全

如果你是從別的語言跳過來的...那麼你去msdn查一下prototype和範例程式應該馬上知道怎麼寫吧

我以前是POSIX/WIN32API派的,個人是覺得C#還蠻好入門的
倒是C++.net我永遠沒辦法接受...
無名氏15/10/10(六)17:25 ID:APsFNMecNo.11061
檔名:1444469112118.jpg-(43 KB, 640x512)
43 KB
>> No.11055
我當然知道Invoke, 但Invoke是控制項用的吧
背後的資料類別又不是控制項, 哪來的Invoke方法, 改資料的時候又不知道它會影響哪個control, 結果還是要我先讓控制項訂閱資料事件, 再Invoke, 而不能在控制項裡用Databindings連結資料類別的PropertyChanged事件

task本來就是用threadpool吧, 而且long running選項甚麼的, 你沒學過寫thread最好是能分清甚麼時候用啦, 結果還不是要先學thread的用法再用task, 打包大-失-敗
async方面, 我看的兩本書兩個網頁都是未講thread和task就先講async, 超扯。沒task的底子哪會懂, 然後我去查msdn更加是看不懂, 聲稱教我"寫自己的async" 結果根本是只是回傳它本來async提供的task, 而不是自己建立task,

其實msdn裡面寫的例子也是超級差, 很多時候一個例子用在幾個條目上, 根本很難找到自己想要學的部份 (因為幾部份內容都混在一起了)
你知道當初我想走入多執行緒的大門時, 看這一頁多痛苦嗎:https://msdn.microsoft.com/en-us/library/hh191443.aspx
最好是馬上就懂啦(翻桌
我花了一整個下午才看完

程式語言我也是才學了不到半年
我覺得C#很多類別只是看起來讓人容易上手, 當真正提出細緻的要求時, 還是要直接重學類別裡面隱藏了的東西, 之前學的就自然白學了

好吧..其實我是很謝謝你把我全部的牢騷看完wwwww
無名氏: 從async開始教很正常啊,這比較high level,需要了解的細節最少 (EsrbbkLI 15/10/11 02:32)
無名氏: 會用到thread都是比較low level的操作,沒事少用 (EsrbbkLI 15/10/11 02:33)

檔名:1444460579636.jpg-(126 KB, 900x637)
126 KB
抽象會降低效率無名氏15/10/10(六)15:02 ID:SXkKBRAgNo.11058[回應]
真的嗎?其實這要看情況,尤其是對c++這種編譯期運算能力過分強大的工具更是如此,詳情請閱讀下面的連接

https://isocpp.org/blog/2015/10/garcia-stroustrup-refactoring

作者以實際的例子做了示範,強調如何利用c++將low level的c app(c with classes),轉變成一個higher level,
更小巧,更容易使用且效率更好的app。所謂效率更好,是指執行速度更快,產生的binary size更小(因為template能有效
的移除replicate codes--如果使用得當的話)

這篇其實是想指出一個程序員常犯的誤區,高度的抽象"一定"會犧牲運行期的效率,其實這是不正確的,端看程序員用的是什麼工具,以及是否清楚自己的工具該怎麼用而已
無名氏15/10/10(六)15:05 ID:SXkKBRAgNo.11059
給懶得看的人一些摘要 :
這項refactor的目的是更直接,清晰的描述原本的演算法,此次refactor沒有修改演算法,也不會改變thread和locking的使用方法

使用的refactor技巧
1 : 移除global變數,有人相信access global變數比較快,所以堅持使用global variable(arggggghhhhhh),但是在先進的
硬體和compiler之前,access global變數反而有可能會帶來性能上的損耗,方法有
a : 將global變數組織成一個class並作為其他class的data member,這一來access的時候就可以access local data
b : 將global變數組織成合適的class並在函數之間傳遞

這項工作要做得好,必須清楚app的運作,不是簡單的將程式語言A換成程式語言B就行

2 : 將編譯期可知的常數宣告為constexpr,運行期才得知的常數宣告為const
無名氏15/10/10(六)15:08 ID:SXkKBRAgNo.11060
3 : 不使用ad hoc的memory pool(改用std::allocator,標準containers,也就是stl啦),也不使用linked list來儲存blocks(linked list一般來說都是很慢的)
4 : 將structure of array改成array of structure,因為soa不一定比aos快,這依條件而變的
5 : 開發一個叫YAPL的lib將多線程的部分封裝起來,這lib的實做有用到
a : vector
b : lambda expression
c : policy based design
policy based design做的工作可多了,包括在編譯期決定使用何種data structures,algorithms
避免mutex影響單線程的效率等

其他內容我有時間再補上

【刪除文章】[]
刪除用密碼:
[0] [...][6] [7] [8] [9] [10] [11] [12] [13] [14] 最後一頁