I have just added Sockets library with local (aka UNIX) sockets support to SVN sandbox. The code was extracted from Net library and slightly modified to accommodate for UNIX sockets. For the time being, tested only on Linux. I’ll do Solaris testing as well, whoever can run it on other platforms, please do and report back any modifications. As for the final destiny of this code, the jury (aka Günter) is still out, but the idea behind this madness is to provide a contribution to IPC and IO efforts. Comments welcome.
March 23, 2009
March 13, 2009
In the upcoming 1.3.4 release there will be a new sample application for the Net library that implements a simple Twitter client that can be used to send status updates to Twitter.
Apart from being fun to implement and providing useful Twitter client functionality, this sample also shows how to combine Poco::Net::HTTPClientSession, Poco::Net::HTMLForm, Poco::Net::HTTPBasicCredentials and the XML library to build a REST client with POCO.
You can find the source code in the Subversion trunk.
In related news, we now have a Twitter account for the POCO project. Follow us for news and announcements.
March 11, 2009
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.
January 14, 2009
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.
December 23, 2008
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!
December 17, 2008
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”)
November 27, 2008
October 7, 2008
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.
October 6, 2008
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
September 30, 2008
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:
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
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.