Dirk Eddelbuettel: RProtoBuf 0.4.0: A whole lot of goodies and Windoze support
A new major release 0.4.0 of
RProtoBuf,
is now on CRAN.
RProtoBuf
provides GNU R
bindings for the
Google Protocol Buffers ("Protobuf")
data encoding
library used and released by Google, and deployed as a language and
operating-system agnostic protocol by numerous projects.
With this release, we are welcoming
Jeroen Ooms
to the team. Jeroen had already worked on some RProtoBuf extensions in the
context of his OpenCPU project; we have now
integrated those Protocol Buffers functions. And Jeroen pushed all the right buttons to
finally get RProtoBuf built on everybody's least-favourite operating system
by provding a static library for use by
win-builder and
CRAN.
Murray once again did a lot of work on internals.
His use of the LLVM tool llvm-format was particular helpful to
make our coding style a little more consistent.
The complete NEWS file entry for this release follows:
Changes in RProtoBuf version 0.4.0 (2014-01-14)CRANberries also provides a diff to the previous release 0.3.2. More information is at the RProtoBuf page which has a draft package vignette, a 'quick' overview vignette and a unit test summary vignette. Questions, comments etc should go to the rprotobuf mailing list off the RProtoBuf page at R-Forge.
- Changes to support CRAN builds for MS Windows.
- Added functions
serialize_pb,unserialize_pb, andcan_serialize_pbplus documentation from Jeroen Ooms RProtoBufUtils package.- New dir
inst/pythonwith some Python examples.- Added Jeroen Ooms as author.
- Vignettes have been converted to the R 3.0.0 or later use of external vignette builders, no longer need a
Makefile- Added missing methods to dollar completion list for Message, Descriptor, EnumValueDescriptor, and FileDescriptor classes.
- Add missing export for
.DollarNamesEnumValueDescriptor to allow completion on that class.- Add more than 15 additional pages to the main Intro vignette documenting better all of the S4 classes implemented by RProtoBuf, updating the type mapping tables to take into account 64-bit support, and documenting advanced features such as Extensions.
- Added better error checking in EnumDescriptors to catch the case when wrong types are provided.
- Updated the FileDescriptor
name()method to accept a boolean for full paths just like the genericname()method.- Correct a bug that incorrectly dispatched
as.character()whenas.list()was called on Descriptor objects.- Update FileDescriptor
$dispatch to work properly for the names of fields defined in the FileDescriptor, instead of just returningNULLeven for types returned by$completion.- Added a reservation for extension fields in the example tutorial.Person schema.
- Support setting int32 fields with character representations and raise an R-level
stop()error if the provided string can not be parsed as a 32-bit integer, rather than crashing the R instance.- Update the project TODO file.
- Add better documentation and tests for all of the above.
- Corrected the handling of uint32 and fixed32 types in protocol buffers to ensure that they work with numbers as large as 2^32 - 1, which is larger than an integer can hold in R since R does not have an unsigned integer class. These values are stored as doubles internally now to avoid losing precision.
- Added unit tests to verify behavior of RProtoBuf with extreme values for uint32 types.
- Removed old exception handling code and instead rely on the more modern Rcpp::stop method maintained in Rcpp.
- Add better error messages when setting a repeated field of messages to inform the user which element index was of the wrong type and what the expected type was.
- Add an optional 'partial' argument to readASCII allowing uninitialized message fragments to be read in.
- (internal) Added const qualifiers in more places throughout the C++ code for type safety.
- (internal) Standardize coding conventions of the C++ files and run them through clang-format for consistency. A STYLE file has been submitted to R-Forge with details about the coding standards and how they are enforced with Emacs and clang-format.
- Applied changes suggested by Kevin Ushey to the
S4class handling to support both the currently released Rcpp as well as the currently pending next version.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Same as in past year, I'm attending






I have just uploaded a newer version of
Benefits for the wider free software community
This means packages providing SIP (and soon XMPP/Jabber) will hopefully be under much more scrutiny from developers in the lead up to the next major Debian release,
Now it is time for me to go silent for a while, and not talk about jobs, unemployment, or puppies.
This past week has also been full of software releases. Some of the public ones include:
I was back at my parents' over Christmas, like usual. Before I got back my Dad had mentioned they'd been having ADSL stability issues. Previously I'd noticed some issues with keeping a connection up for more than a couple of days, but it had got so bad he was noticing problems during the day. The eventual resolution isn't going to surprise anyone who's dealt with these things before, but I went through a number of steps to try and improve things.
Firstly, I arranged for a new router to be delivered before I got back. My old
The radio silence here on my blog has been not from lack of activity, but the inverse. Linux.conf.au chewed up the few remaining spare cycles I have had recently (after family and work), but not from organising the conference (been there, got the T-Shirt and the bag). So, let s do a run through of what has happened
This is mostly a repost of my
I have just enrolled in a MOOC to learn about programming with Android.
There are many tutorials and reports of people using Linux for the
development of the apps out there, but, unfortunately, many of them are
outdated or contain misleading information.
You will find bazillion instructions out there telling you to install
JDK6. (Even the instructions in the MOOCs say so, and Google says that it is
the only supported version of Java). Even more than that, some of them will
tell you that you should not use OpenJDK, but use Oracle's JDK instead.
So, if you have a pure
Another 3 hours later, the most obvious bugs were weeded out and the code
successfully cloned an entire mirror for the first time. I verified the
correctness by running debmirror afterwards, and no files were downloaded that
had not actually arrived on the mirror in the meantime.
Features
Somalia's chief exports appear to be morally-ambiguous Salon articles about piracy and sophomoric evidence against libertarianism. However, it is the former topic that Captain Phillips concerns itself with, inspired by the hijacking of the
After 8 years, February 6 will be my last day with Google.
The hardest pill to swallow with the end of my marriage was the reduction in my
time with Zoe. It was one thing to lose my wife, but to lose 50% of my daughter
as well has been, and will continue to be, a struggle for me.
2014 is the last year before Zoe starts in
Recently, North Tyneside Council circulated the beginnings of a regional
development plan. This consisted of a detailed map of the borough, complete
with various areas marked out as sites for potential housing development.
Included amongst the sites for potential development was Whitley Bay Ice
Rink and the surrounding leisure facilities: a football pitch, a cricket
pitch, and more.
Whitley Bay Ice Rink has been a fixture in the cultural history of the region
and it would be a terrible shame if it were to close. Many people seemed to
agree: a petition calling for the site to be excluded from the plan received
over 7,000 signatures. Residents were also able to write comments on the plan
itself. The specific paragraph for the Ice Rink had attracted over 100 comments
when I looked at it on the last day that comments were open. I hurredly
put together one of my own: