Overview
Features
Download
Documentation
Community
Add-Ons & Services
The POCO C++ Libraries Blog

Archive: Uncategorized

POCO on Tiny Hardware

Filed under: Uncategorized by guenter at 20:52

Digi Connect ME 9120

We recently got our hands on a Digi Connect ME 9210, one of the smallest Linux-capable embedded computers in the world. The system, which is just a bit larger than an Ethernet RJ-45 socket, is based on an ARM9 CPU running at 75 MHz. With 4 MB of Flash and 8 MB or DRAM, the system is powerful enough to run POCO-based applications. For example, we ported the Mindstorms/iPhone controller application from the demo we showed at Embedded World in Nuremberg to the Connect ME, and it runs great. Well, porting is a bit overstating, as we merely had to build a new Flash image for the Connect ME, and update the application’s config file. Well, a 75 MHz ARM9 CPU provides enough power to run an application with a built-in web server powering an Ajax-enabled website. Also, the performance improvements for the 1.3.4 release help a lot to make the application work great. Additionally, the 1.3.4 release will introduce some minor changes to help reduce the executable size of statically linked applications. For example, it is possible to build the Util library without XMLConfiguration support, which prevents the XML library from being linked in, cutting about 500K from the executable size.

Working with this little device has been a lot of fun, and we are looking forward doing some cool projects with it.

What’s going on

Filed under: Uncategorized by alex at 02:53

For those folks who are wondering what’s been going on, when is there going to be next release etc, here’s the answer:

Prior to 1.3.3 release, I voluntarily took over taking care of the ongoing project maintenance. Then Guenter kicked in for 1.3.3 release, did the great deal of work and early October we pushed the release out the door. Since there’s not a whole lot to do for 1.4, I was hoping to have it out by Christmas 2008, but that obviously did not materialize. Although I am still actively maintaining the project, due to the current economic conditions, I am also quite busy (besides my day job) doing some things not related to POCO. So, what does this mean for POCO? It means that things will develop slower than we would like them to, but they will progress nevertheless as our schedules permit (which has a lot to do with the overall economic conditions). We do not know when exactly it will happen and I personally hate not to deliver on my promises, so I will make none. Whenever we get an opportunity to dedicate it a proper amount of time, we will push for 1.4.

As usual – any help, be it bug reports, code, patches or financial contributions is greatly appreciated.

Season’s Greetings

Filed under: Uncategorized by guenter at 22:04

A Merry Christmas and a Happy New Year to everyone using and contributing to the POCO C++ Libraries. 2008 was a great year for the POCO Project, and 2009 will be even better!

Bjarne Stroustrup Interview

Filed under: Uncategorized by guenter at 13:54

There is a new interview with Bjarne Stroustrup on the Geek of the Week site where Bjarne mentions POCO along with Boost and Qt. We’re finally being recognized. Even more, Bjarne now also has a link to POCO on his website (look at the bottom – we’re described as “Web development support library”) :-)

Happy Thanksgiving!

Filed under: Uncategorized by guenter at 23:30

Happy Thanksgiving to everyone celebrating.

Picross anyone?

Filed under: Uncategorized by peter at 09:35

I finally decided that’s its time to show how one can use the WebWidgets library. The previous sample in the ExtjS/Samples directory is, well, I am not sure if it deserves to be called a sample :-)
So if you wanted to take a look at WebWidgets and learn how to write your own WebGUIs, I’d recommend to start with the Picross sample (see here for an explanation what Picross is).
The implementation is rather simple (ie trading features for simpler and easier code). A sync to svn trunk is required, start the Picross sample, then open your web browser and point it to the location at http:/localhost:9980.
Feel free to extend it into a fully fledged application. For example, try to add two Images to the left, upper part of the grid, which allow you to switch between “mark as selected/mark as empty” mode. Currently only mark as selected is per default supported.

Pandora

Filed under: Uncategorized by peter at 07:59

I just couldn’t resist and preordered one of those.
Now I just have to wait till end of November, then we can add the Pandora as an official POCO build target :-)

NullMutex

Filed under: Uncategorized by peter at 09:07

As of revision 896 the POCO sourceforge trunk features a new class: the NullMutex (Poco/Mutex.h)

You now probably ask yourself: What’s so special about this class? Because – as the name suggests – it does nothing.
And that’s exactly why we needed it. Mostly all components of POCO are thread-safe. While this is generally a good thing, it also hurts performance when this thread-safeness is not needed.

The first classes to profit from this feature are all the classes from the caching and the events framework.

Events now have a second optional template parameter (which defaults to FastMutex) which allow you to specify the mutex. To disable thread-safeness for an event write:

Poco::BasicEvent<int, NullMutex>

The caching framework can benefit even more from this extension. Inserting an value into the cache requires a lock for the insert and then another lock when we fire the add event! In a full multithreaded environment all these locks are needed but what if you don’t care about the events at all and never register to them? Write

Poco::LRUCache<MyKey, MyValue, FastMutex, NullMutex>

to disable thread-safeness for the caches events only.

To additionally disable thread-safeness for the cache, write

Poco::LRUCache<MyKey, MyValue, NullMutex, NullMutex>

And if you don’t care about the mutex stuff at all? Then write

Poco::LRUCache<MyKey, MyValue>
Poco::BasicEvent<int>

as you used to do prior. The event/cache extensions are backwards compatible. When you don’t specify a mutex, a FastMutex is used per default.

POCO RFC

Filed under: Uncategorized by alex at 22:08

This is a request for comment about the future of POCO project*.

The POCO project team is soliciting feedback on the project itself, the development model, maintenance, releases and any other topic regarding the POCO project state of the affairs.

The current state of the project has some troubling aspects associated with it that we would like to rectify as soon as possible. In order to do that, we need your help. The development of POCO, as it currently stands, mostly depends on voluntary contributions. An obvious consequence is that we are not able to realize the plans as we would like to. While we are definitely grateful for any contribution, we feel that a project like POCO deserves better than that. Also, contributing a chunk of code is not the end of a contribution process. As written in a recent blog post, there’s much more to it and someone has to take further steps in order for the contribution to find it’s way into a release.

Given that the project already has a significant number of commercial users, we would especially like to encourage response from those entities in order to learn whether there is any interest in setting up an entity or a relationship overseeing the development of POCO. An example of “entity” would be a non-profit organization (e.g. Mozilla Foundation). An example of a relationship would be a sponsorship of POCO project or commercial support contract set up in a way similar to that of SQLite or a membership association similar to the SQLite Consortium. Additionally, we also encourage individuals, hobbyists and open source projects developers to respond with ideas and suggestions regarding this issue. Last but not least, the POCO Project page has a PayPal donate link, so please consider donating to the project as well.

The bottom line (and the reason for this request for comments) is, we would like to be able to have someone officially and professionally responsible for POCO project dedicating it certain amount of time every business day. This would initially likely be one person on a part-time basis, but depending on the interest, responses and establishment of said entities/relationships, it would eventually grow to full-time and more people. Needless to say, this would significantly improve the quality of the framework, the speed at which bugs are being fixed and releases published.

Here are few questions:

* Would you be willing to support POCO financially?
* Would you be willing to contribute the time of your employees?
* Are you in favor of non-profit entity and under what conditions would you join?
* Would you be willing to buy commercial support?
* Do you have any suggestions about the future of POCO project?

We feel that this is crucial for the future of POCO. If you like what we do and benefit from it, please consider responding. POCO is and shall remain free as both speech and beer. Regardless of the responses, the current project team shall continue doing its best to keep the project alive and healthy.

Thank you for your time.

POCO Project Team

* Anyone interested in any way, shape or form is encouraged to respond, publicly or privately. Should you require confidentiality, it will be fully guaranteed. In the latter case, send your comments to poco at appinf.com.

Some POCO Statistics

Filed under: Uncategorized by alex at 00:18

Generated using David A. Wheeler’s ‘SLOCCount‘ from current SVN trunk, rev. 661:


SLOC Directory SLOC-by-Language (Sorted)
88328 Foundation cpp=69772,ansic=18556
86109 Data ansic=52596,cpp=33513
26193 XML cpp=20424,ansic=5769
23916 Net cpp=23916
11642 WebWidgets cpp=11642
7680 Util cpp=7680
3974 NetSSL_OpenSSL cpp=3974
2244 CppUnit cpp=2244
990 PageCompiler cpp=989
922 ApacheConnector cpp=922
486 release sh=486
118 dist sh=118
103 build sh=103
29 contrib perl=29

cpp: 175076 (69.27%)
ansic: 76921 (30.44%)
sh: 707 (0.28%)
perl: 29 (0.01%)

Total Physical Source Lines of Code (SLOC) = 252,734
Development Effort Estimate, Person-Years (Person-Months) = 66.65 (799.85)
(Basic COCOMO model, Person-Months = 2.4 * (KSLOC**1.05))
Schedule Estimate, Years (Months) = 2.64 (31.70)
(Basic COCOMO model, Months = 2.5 * (person-months**0.38))
Estimated Average Number of Developers (Effort/Schedule) = 25.23
Total Estimated Cost to Develop = $ 9,004,062
(average salary = $56,286/year, overhead = 2.40).

« Previous PageNext Page »