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.






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
I have written a number of scripts to create Debian foreign architecture
(mostly armel and armhf) rootfs images for SD cards or NAND flashing. I started
with putting Debian on my
It's almost a month since I last blogged something, and one of my new year's resolution is to change that, a bit. Let's see how it goes.
I've been listening a lot to this great band from Sweden recently again, put all their songs onto my mobile phone. It might sound weird because they have a rather aggressive style, both soundwise but also lyricswise, but it helps me to get things off my chest and stay relaxed in the rest of my life.
The band I want to present to you was already twice mentioned in some other articles of my blog I noticed, but this is the proper post about them: I'm talking about
Packt Publishing sent me
Implementing software to replace legacy systems is always a challenge, especially when you're dealing with a system with as much legacy as sendmail, which was first introduced as delivermail in 1979.
Well, it's 2014. The annus horribilus of 2013 is behind me. I'm
entering 2014 in a much better place (on multiple levels) than I did for 2013.
I'm positively excited to see what 2014 brings me.
I was very fortunate to have someone I looked up to reach out to help me when
my marriage fell apart. One of the things he said to me was "A year from now,
you won't recognise yourself". He was right. I am such a different person today
than I was a year ago. I'm happier, fitter, more self-confident. I'm focusing
on different things in my life.
One thing that has been a casualty, has been my geeky pursuits. There were a
few times last year where I questioned if I was still a geek. I am. I've just
deprioritised it. Instead, I've been putting my own self-care and my daughter
above all else, meaning that my running has probably been the one thing I'd
call a "hobby" at the moment.
I've got some stuff in the pipeline that I'm not quite ready to write about
yet, but I'm expecting a rearrangement of my time that will hopefully allow for
some more geeky endeavours in 2014. I'm also hoping I can regain some momentum
on blogging.
Here's what I'd say my goals are, going into 2014:
Good morning all my hungover friends.
New Hy release - sounds like the perfect thing to do while you re waiting for your headaches to go away.
Here s a short-list of the changes (from NEWS) - enjoy!
I read a post titled
A few hours ago I