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

Archive

POCO and C++ Standard

Filed under: News by alex at 21:03

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.


C++ Standard Library Size

C++ Standard Library Size*


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.


Portable C++ Library

Portable C++ Library*


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

POCO Sponsorship

Filed under: News by alex at 19:07

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!

POCO is on the Move

Filed under: News by alex at 03:15

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.

Coming to Silicon Valley

Filed under: Uncategorized by guenter at 22:05

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!

Günter

Applied Informatics Finalist in CODE_n Innovation Contest; Meet Us at CeBIT

Filed under: News by guenter at 20:29

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.

1.4.3p1 Available – Important patch for Windows XP 32-bit

Filed under: News by guenter at 16:27

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.

Release 1.4.3 is Available

Filed under: News by guenter at 16:08

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.

Introducing my-devices.net

Filed under: News by guenter at 19:21

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!

Merry Christmas and a Happy New Year!

Filed under: Uncategorized by guenter at 11:25
Merry Christmas

Merry Christmas

POCO Workshop at ESE Kongress in Germany

Filed under: News by guenter at 14:57

At this year’s Embedded Software Engineering Kongress (5-9 December, Sindelfingen, Germany) I’ll give an introductory workshop to POCO. The workshop, titled “Get Connected mit C++ und Open-Source-Bibliotheken” will be on Monday, December 5, from 14:00 to 17:30. Like the entire event, the workshop will be in German language.
For more information, please see here.

« Previous PageNext Page »