Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
(9) |
Apr
(84) |
May
(18) |
Jun
(12) |
Jul
(6) |
Aug
(7) |
Sep
(10) |
Oct
(31) |
Nov
(59) |
Dec
(14) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(53) |
Feb
(15) |
Mar
(43) |
Apr
(40) |
May
(63) |
Jun
(142) |
Jul
(54) |
Aug
(31) |
Sep
(30) |
Oct
(39) |
Nov
(36) |
Dec
(64) |
2007 |
Jan
(128) |
Feb
(261) |
Mar
(156) |
Apr
(127) |
May
(76) |
Jun
(131) |
Jul
(83) |
Aug
(124) |
Sep
(83) |
Oct
(88) |
Nov
(180) |
Dec
(90) |
2008 |
Jan
(86) |
Feb
(93) |
Mar
(117) |
Apr
(104) |
May
(65) |
Jun
(35) |
Jul
(38) |
Aug
(111) |
Sep
(58) |
Oct
(33) |
Nov
(102) |
Dec
(194) |
2009 |
Jan
(193) |
Feb
(74) |
Mar
(111) |
Apr
(77) |
May
(31) |
Jun
(20) |
Jul
(1) |
Aug
(3) |
Sep
(57) |
Oct
(125) |
Nov
(50) |
Dec
(3) |
2010 |
Jan
(26) |
Feb
(5) |
Mar
(13) |
Apr
(3) |
May
(3) |
Jun
(12) |
Jul
(27) |
Aug
(47) |
Sep
(105) |
Oct
(53) |
Nov
(34) |
Dec
(21) |
2011 |
Jan
(115) |
Feb
(17) |
Mar
|
Apr
(6) |
May
(16) |
Jun
(15) |
Jul
(85) |
Aug
(21) |
Sep
(13) |
Oct
(12) |
Nov
(28) |
Dec
(23) |
2012 |
Jan
|
Feb
(13) |
Mar
(4) |
Apr
|
May
(1) |
Jun
(5) |
Jul
(5) |
Aug
(31) |
Sep
(8) |
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(33) |
Sep
(9) |
Oct
(10) |
Nov
(2) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
(4) |
2016 |
Jan
(2) |
Feb
|
Mar
(3) |
Apr
|
May
(3) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
1
(4) |
2
(2) |
3
(2) |
4
|
5
(2) |
6
|
7
(1) |
8
(2) |
9
(5) |
10
(1) |
11
(3) |
12
|
13
(3) |
14
|
15
(4) |
16
(1) |
17
(7) |
18
(10) |
19
|
20
|
21
(1) |
22
|
23
(3) |
24
(1) |
25
(1) |
26
(1) |
27
(3) |
28
|
29
|
30
(1) |
|
|
|
|
From: Henrik /KaarPoSoft <kaarposoft@us...> - 2008-09-11 22:41:34
|
Dear developers, testers, and everyone else! If you build OpenSync out of SVN, it will not be "relocatable". What I mean is: - If you try to build with a different CMAKE_INSTALL_PREFIX - If you move the whole installation e.g. from /usr/local/lib to /local/lib then you are out of luck: it will not work. There are - as far as I can see - two reasons for this problem: - CMakeLists.txt uses absolute paths instead of realative for INSTALL - Hard coded paths get into libopensync.so (mostly due to config.h). I do not know about .deb packages, but at least rpm has an option to use a different prefix, and this will not work. Further, if you pack with CPack, or build in /usr/local and want to distribute in /usr/ then you are out of luck. I have submitted bug reports to this effect: #854 and #855 and also libsyncml #166. Well, they are not just bug reports, they actually contain PATCHES which seems to fix the problems. Hence I would be really grateful and really appreciate, if all you hawk-eyes out there would have a look at the patches and let me (us...) know if they look OK, and then if some of you with sufficient privileges would check the changes into SVN. Thanks in advance /Henrik |
From: Henrik /KaarPoSoft <kaarposoft@us...> - 2008-09-11 18:03:04
|
Daniel Gollub wrote: > On Tuesday 09 September 2008 23:06:14 Henrik /KaarPoSoft wrote: > >> Hi all, >> >> A frontend GUI wants to stay alive, no matter what errors may be >> encountered in libraries it calls. >> >> An OpenSync frontend GUI may protect itself against signals and >> exceptions on the main thread. >> However, OpenSync are spawning new threads. >> >> Does anybody know a way a frontend GUI may protect itself against >> signals and exceptions on those threads? >> >> As an example, see https://sourceforge.net/forum/message.php?msg_id=5232971 >> One user of my frontend GUI (http://bluezync.kaarposoft.dk/) users >> reports that a problem in libsyncml kills Thunderbird (the frontend GUI). >> >> Is there any way a frontend GUI can protect itself against such errors? >> Or some way OpenSync may not just bail out, but present a nice error >> message to the GUI? >> >> Any thoughts on this would be much appreciated. >> > > That's the purpose of assert(). We often are lazy instead of writing proper > error handling we just place an assert(). Developers should of course only > use assert() to hunt only very very unintended and complex error conditions. > (Wrong API usage, unintended values in internal API, ...) > > When shipping this to a regular user (maybe also tester?) you should make sure > the build which got used is compiled with -DNDEBUG. So an assert() will not > cause an expection: > > --- man 3 assert --- > DESCRIPTION > If the macro NDEBUG was defined at the moment <assert.h> was last > included, the macro assert() generates no code, and hence does nothing > at all. Otherwise, the macro assert() prints an error message to stan‐ > dard error and terminates the program by calling abort(3) if expression > is false (i.e., compares equal to zero). > > The purpose of this macro is to help the programmer find bugs in his > program. The message "assertion failed in file foo.c, function > do_bar(), line 1287" is of no help at all to a user. > ---- > > So, anything you find via assert() - report them! Make sure for "production" > release (in CMake there is a default BuildType which is called > RelWithDebInfo, which should also include -DNDEBUG) is build with -DNDEBUG. > > Of course assert() which handle error conditions (OOM, wrong values from some > device/protocol/user, ...) should be replaced by proper error handling. > > best regards, > Daniel > > I only partially agree )-: I do not think just compiling with NDEBUG is a good idea. If the assert was appropriate in development/unstable phase, it is also appropriate in distribution. After all, if the assertion should have triggered but was not compiled in, we will probably just fail in a different place. And I do think that either way, the threads created by OpenSync should be protected against signals! In my opinion it would be much better to report the error to the end user than to crash his application. The first time an end user sees his frontend crash and corrupt his calendar or address book, is going to be the last time he uses it! /Henrik |
From: Daniel Gollub <dgollub@su...> - 2008-09-11 08:37:58
|
On Tuesday 09 September 2008 23:06:14 Henrik /KaarPoSoft wrote: > Hi all, > > A frontend GUI wants to stay alive, no matter what errors may be > encountered in libraries it calls. > > An OpenSync frontend GUI may protect itself against signals and > exceptions on the main thread. > However, OpenSync are spawning new threads. > > Does anybody know a way a frontend GUI may protect itself against > signals and exceptions on those threads? > > As an example, see https://sourceforge.net/forum/message.php?msg_id=5232971 > One user of my frontend GUI (http://bluezync.kaarposoft.dk/) users > reports that a problem in libsyncml kills Thunderbird (the frontend GUI). > > Is there any way a frontend GUI can protect itself against such errors? > Or some way OpenSync may not just bail out, but present a nice error > message to the GUI? > > Any thoughts on this would be much appreciated. That's the purpose of assert(). We often are lazy instead of writing proper error handling we just place an assert(). Developers should of course only use assert() to hunt only very very unintended and complex error conditions. (Wrong API usage, unintended values in internal API, ...) When shipping this to a regular user (maybe also tester?) you should make sure the build which got used is compiled with -DNDEBUG. So an assert() will not cause an expection: --- man 3 assert --- DESCRIPTION If the macro NDEBUG was defined at the moment <assert.h> was last included, the macro assert() generates no code, and hence does nothing at all. Otherwise, the macro assert() prints an error message to stan‐ dard error and terminates the program by calling abort(3) if expression is false (i.e., compares equal to zero). The purpose of this macro is to help the programmer find bugs in his program. The message "assertion failed in file foo.c, function do_bar(), line 1287" is of no help at all to a user. ---- So, anything you find via assert() - report them! Make sure for "production" release (in CMake there is a default BuildType which is called RelWithDebInfo, which should also include -DNDEBUG) is build with -DNDEBUG. Of course assert() which handle error conditions (OOM, wrong values from some device/protocol/user, ...) should be replaced by proper error handling. best regards, Daniel |