As posted earlier, I will spend this summer in Silicon Valley from beginning of July to end of September. This is a great opportunity if anyone is interested in a POCO training, as I can offer these with significantly reduced travel expenses. I’m also available for occasional consulting services during that period. Please contact us if interested.
May 17, 2012
May 13, 2012
Last week, I attended WG21 Study Group Meeting in Bellevue, WA kindly hosted by Microsoft, where SG1 (Concurrency and Parallelism) and SG4 (Networking) participants met to discuss the future direction and proposals for C++ standard. Study Groups are an attempt to augment the C++ standard library size to bring it on par with comparable libraries in other langues, most notably C# and Java.
Yes, the small purple-ish rectangle on the right is the size of C++ standard library (click on the image to see it full size); we need more and C++ deserves more than that.
I presented Poco::Net to the SG4 and we discussed the proposals for the standard networking library. There were two other proposals presented/reviewed: asio as the networking/IO library and URI proposal from cpp-netlib. The consensus was that solid networking foundations should be built first – C++ standard needs networking types on which the standard network library can be built.
The result of the discussion was a tentative wish-list/agenda for proposals/implementations:
2012 – URI and IPv4/6 Address
2013 – HTTP and Resolvers (DNS, maybe more)
By this time, we’d hope to have fully defined async model (waiting on the SG1 discussion outcome). Something that is still uncertain to some extent is what exactly does std::async(std::launch::async) do – is it obligatory to to launch an OS thread in the background or is the async behavior just “as if” the OS thread was launched, leaving room for other asynchronous back-end modes of operation.
2014 – sockets, async socket streams
2015 – ICMP, SSL
As things currently stand, we will be proposing portions of POCO for standardization. Günter and I will be working on a formal proposal for URI and IP Address, aiming to have it ready before the October meeting in Portland, OR. We will also soon start working on the Poco::Net based standard socket library proposal.
Also, before Portland meeting, we will comb through Foundation, start weeding out code addressed by C++11 and extract a subset that would make sense to be proposed for the next round of standardization. What exactly? Dynamic typing, caching, (de)compression, processes, various streams etc etc. This list does not even get into configuration, application, options, XML, JSON, database, … all of which are called for and sorely needed.
Our involvement in the standardization came from Herb Sutter’s call to C++ community (if impatient, scroll to 1:15 mark or just look at the picture below to get the idea) to get together and put forth an effort to create a standard C++ library comparable in size and utility to the one Java and C# have.
As you can see from the above, the list is long, while time/manpower is short. A well-designed, standard-compliant and highly-portable framework community like POCO has a lot to offer to the C++ effort. As usual – I am asking for help. Participating in standardization process can be a rewarding experience, so if you have any inclination or desire to be part of the process, by all means let us know. More baggage we can drop-off to the standard implementation, more time and better foundation we’ll have to build new features on.
Do you want to help/participate in POCO proposals for C++ Standard? Let us know:
at(alex, dot(pocoproject, org));
* Pictures from Herb Sutter‘s “Going Native 2012” presentation
Recently, we’ve received inquiries about sponsoring the POCO project. Aside from corporate (Gold, Silver, Bronze) type sponsorships which come with commercial-grade support, small individual contributions are very welcome and encouraged. Please look for the PayPal link at the bottom of the Sponsorship page or contribute directly from here:
Thanks to all who have contributed so far and will do so in the future!
April 23, 2012
After many months of absence and low-level involvement with the project (for personal and professional reasons), I am back. We also have commitment from two other community members (Marian Krivos and Franky Braem) to help significantly with the project. For starters, Marian has retired old and I have just committed brand new trunk code. For the time being, it was only built on Windows, but we’ll have other builds ready within the next week or two.
Most significant new features are:
- DynamicAny (now known as Poco::Dynamic::Var, although Poco::DynamicAny will still work) improvements
- Poco::Data improvements (DateTime support, bulk operations, SessionPool, Transaction support, async SQL execution, in-memory SQLite … warning, though – we broke old Poco::Data code!)
- Poco::PDF library
- Poco::JSON library and Poco::Util::JSONConfiguration (not in the trunk yet, will be soon)
- VS project generator
- PocoDoc generator
And many more other improvements. This code is base for 1.5 release, which we are targeting for mid-September Aug 27 July 4 30 (to steal the fireworks thunder ). At the same time, we are actively working with C++ Standards Committee on the proposal for inclusion of POCO into the C++ standard. Yes, async I/O is on our TODO list. I won’t promise it for 1.5, though, unless I get a committed contributor willing to write it.
Which brings me to the “last but not least”: we need contributors (library or build/test system owners/maintainers in particular) and sponsors. If you are benefiting from POCO, please consider helping in any way you can. This can be by contributing code, owning a library or other concern (build system, tests, samples, platform, OS installation packages …), providing CI server space, sponsoring, etc.
Let’s join forces and give POCO the boost (no pun intended) it deserves.
EDIT (Oct 15 2012): little bit more than 3 months late, we have POCO 1.5.0. Thanks to everyone who helped with this release.
April 17, 2012
I will be in Silicon Valley this summer (July 3 to September 26) and I’m looking to rent a furnished one-bedroom apartment in or near Sunnyvale. If you know or can recommend a place for me and my family to stay at please let me know (guenter at appinf.com). I’ll have an office in the Plug & Play Tech Center in Sunnyvale, so anything within about 30 minutes of driving distance would be great. Looking forward to spend this summer in California and to meeting all you POCO users in Silicon Valley!
January 23, 2012
We are proud to announce that on January 16, with our newest innovation my-devices.net, we were chosen a finalist in the CODE_n innovation contest.
CODE_n is an international competition which will showcase the 50 best ideas in the field of mobile IT solutions at the world’s most important IT event, CeBIT. Out of more than 400 entrants we made it among the top 50 and will present my-devices.net at CeBIT in Hannover, Germany, from March 6 to March 10.
For more information about our new my-devices.net platform providing secure remote access to the built-in web server of smart devices, please visit my-devices.net.
For more information about the CODE_n 12 contest, please see here.
Looking forward to see you at CeBIT hall 16 in March.
An important patch for the 1.4.3 release is available. In 1.4.3, Poco::Util::WinRegistryKey used a function (RegDeleteKeyEx) not available on Windows XP 32-bit (it is available starting with WinXP 64-bit SP3). This prevented applications using WinRegistryKey (or ServerApplication, which uses this class) from running on Windows XP. Bug report is here.
This has been fixed in 1.4.3p1, which has just been released. Along with this issue, we have also fixed a testsuite failure in the Foundation testsuite and two potential warnings in the WebSocket sources. Upgrading is recommended for everyone using POCO on Windows. There is no need to re-download the entire release. A patched Util/src/WinRegistryKey.cpp file has been attached to the bug report.
January 16, 2012
Release 1.4.3 of the POCO C++ Libraries is now available. This release contains new features and various improvements and bugfixes. Notable new features are support for HTTP Digest authentication (contributed by Anton V. Yabchinskiy) and WebSockets (RFC 6455). As always, the CHANGELOG has all the details. Upgrading is recommended for all users of previous releases.
January 4, 2012
We are proud to introduce our latest product, built with POCO: my-devices.net.
my-devices.net is a web and cloud-based platform enabling secure remote access to the built-in web server of smart devices such as industrial automation systems, smart home devices, monitoring and control systems for heating, solarthermal or photovoltaic plants, and similar systems. With my-devices.net, any device with a built-in web server can be securely accessed remotely over the internet using any web browser running on a PC, smartphone or tablet. This even works if the device is behind a NAT router, firewall or proxy server.
For more information, please visit my-devices.net. If you want to try out the system with your own device, please let us know!