2008-6-9 12:23:31 trust:
finished your work?
2008-6-9 12:23:37 hhj@ICL:
no
2008-6-9 12:23:47 hhj@ICL:
It was like a pile of shit!
2008-6-9 12:24:00 hhj@ICL:
Without source code, I have to walk through ASM...
2008-6-9 12:24:06 hhj@ICL:
damne those developers
2008-6-9 12:24:12 trust:
...haha,你不是号称要早点做完休息两天么=。=
2008-6-9 12:24:33 hhj@ICL:
non-opensource + poor (in fact, nearly no) documentation support = hell
2008-6-9 12:25:04 trust:
=。=很多这样的
2008-6-9 12:25:17 hhj@ICL:
+ full of BUGs
2008-6-9 12:25:37 trust:
=。=那还推荐你用?
2008-6-9 12:25:47 hhj@ICL:
Because it was said to be good
2008-6-9 12:26:01 hhj@ICL:
It advocates that it supports many many good features
2008-6-9 12:26:15 trust:
你证明了它很烂=。=然后怎么办。。。
2008-6-9 12:26:24 hhj@IC:
And it indeed has these feature. They have done a good design, but very very poor implementation
2008-6-9 12:28:00 hhj@ICL:
So, perhaps pure academics would be happy with that since they only prototype things. Pure academics would feel it is good enough if their demo would not normally crash within 10 mins
2008-6-9 12:28:16 hhj@ICL:
But when it comes to real development, even small memory leak is unbearable
2008-6-9 12:29:23 hhj@ICL:
That is the difference. Talking about this particular package, and my particular problem. The API offered by that package is encapsulated into a super big C++ class, and there is no documentation about that at all.
2008-6-9 12:30:22 hhj@ICL:
The only information I got is several short paragraphs of conceptural description and some very brief examples. And there are even BUGs in those examples (e.g. they never 'delete' something which was 'new'ed)
2008-6-9 12:30:40 trust:
=。=
2008-6-9 12:31:03 hhj@ICL:
During my trial, the programme 'randomly' crashed. I've tracked down the error into a function, which I do not have its code
2008-6-9 12:31:48 hhj@ICL:
It appears to be that the function uses a pointer without validation. And when the object is freed, the pointer bacomes invalid.
2008-6-9 12:32:59 hhj@ICL:
The most annoying thing is that the function is running inside a standalone thread which is entirely managed by that package. However, the object is and should be freed inside my client thread. It seems they have done poor synchronization.
2008-6-9 12:33:13 hhj@ICL:
Therefore, the programme crashes nearly randomly
2008-6-9 12:34:16 trust:
恩。。。听上去很复杂。。。
2008-6-9 12:34:48 hhj@ICL:
e.g., I freed the object in my thread while some of its member functions was still running inside another thread. These sorts of classes should be thread-safe, which demands very careful programming. But appearantly they haven't given enough consideration on this matter
2008-6-9 12:36:14 hhj@ICL:
Furthermore, there are more annoying BUGs with that software. For example, I tried to delete a module according to the documentation, but it always fails. Also, when I tried to created a stream, the stream is created but the message routine goes wild without giving me any sensible reason.
2008-6-9 12:36:51 hhj@ICL:
Besides, when I am sending stream-creating request to the server component, it simply crashs, what a great piece of junk!
2008-6-9 12:37:09 trust:
。。。but you don't have any choice...haha
2008-6-9 12:38:01 hhj@ICL:
And some other smaller things. For example, there are ambiguities in the documentation. I have found many of them, and luckily, have figured out some corrections.
2008-6-9 12:38:26 trust:
=.=you should join their group...yeah...
2008-6-9 12:39:12 hhj@ICL:
More things are about debugging. The package was compiled without any debugging information (a sensible SDK should always provide a DEBUG version, but apperantly those stupid developers are not sensible enough)
2008-6-9 12:40:05 hhj@ICL:
which means I can't even use conventional debugging tools to figure out what is happening! no memory leak detection, no debugging context, what a hell.
2008-6-9 12:40:36 trust:
why don't you send them a report and ask for a position...=.=
2008-6-9 12:41:37 hhj@ICL:
In fact, figuring out this point has cost me 2 days. When I didn't know this point, the debugger wouldn't tell me so. Instead, the programme deadlocks mysteriously inside memory allocation and delection code...
2008-6-9 12:45:20 hhj@ICL:
F**k them all
2008-6-9 12:45:36 trust :
go and kill them all...
2008-6-9 12:46:41 hhj@IC:
lesson learnt: If you don't go open-soure, then you have to be double/tripple careful when writing SDKs, ortherwise you will be killed tragecally by angry developers
2008-6-9 12:47:16 trust:
...don't necessary, only will be cruised...not really killed=.=
2008-6-9 12:47:51 hhj@ICL:
you die when a huge number of developers voted so~
2008-6-9 12:48:27 trust:
=.=there isn't a huge number of develpers....all in all
2008-6-9 12:49:19 hhj@ICL:
whatever, I quit
2008-6-9 12:49:45 trust:
=.=so you retire now?
2008-6-9 12:49:58 hhj@ICL:
Now I totally, with all of heart, vite to start anew from very beginning
2008-6-9 12:50:21 hhj@ICL:
Let all poor 3rd parties go to hell, damn it!
2008-6-9 12:50:39 trust:
haha