background preloader

Apache Thrift

Apache Thrift
Related:  Data Serialization

Open Source ETL designed to bridge the gap between business and IT. | Kettle Project: Pentaho Data Integration Forums and JIRA There are two primary ways to make sure that your contributions are recognized and reviewed in a timely fashion: through our Discussion Forums and through our issue and bug tracking system, JIRA. Reporting a bug All bug reports are recorded and tracked through our JIRA issue and bug tracking system. Internationalized contributions The place to start with a language specific contribution is to look under our International Forums for the language you're interested in. Contributing code We rely on time and code contributions from our community to keep our commitment of delivering a quality Business Intelligence platform in the open source scenario. Submitting code Both bug fixes, new features and improvements are types inputs in our JIRA system, allowing you to choose the type appropriated to your case. Contributing documentation If you'd like to contribute documentation improvements, or submit a technical article, you can do so in the Pentaho Documentation Wiki. Solutions

The Fat-Free Alternative to XML Extensible Markup Language (XML) is a text format derived from Standard Generalized Markup Language (SGML). Compared to SGML, XML is simple. HyperText Markup Language (HTML), by comparison, is even simpler. Most of the excitement around XML is around a new role as an interchangeable data serialization format. It is text-based. These together encouraged a higher level of application-independence than other data-interchange formats. Unfortunately, XML is not well suited to data-interchange, much as a wrench is not well-suited to driving nails. The most informed opinions on XML (see for example suggest that XML has big problems as a data-interchange format, but the disadvantages are compensated for by the benefits of interoperability and openness. JSON promises the same benefits of interoperability and openness, but without the disadvantages. Let's compare XML and JSON on the attributes that the XML community considers important. From

15 Beautiful Text Effects Created with CSS Beautiful text or typography will make your design look attractive. In web design, CSS helps to give style to design including various effects in text or typography. With CSS, you can use clipping and add animation to text to spice things up a little. And to illustrate this, we have collected 15 stunning and cool text effects that are made possible with CSS (some with a little help from Javascript codes). For more things you can do with CSS, check out: Elastic stroke Animation Yoksel animates the stroke of the text with a cool color scheme. SVG Glitch Want to make effects that look like a broken analog TV? Shop Talk logo The Shop Talk logo is recreated by Hugo using only CSS. Slashed Effect This idea by Robet Messerle gives the knife sliced effect, done with less than 70 lines of CSS. Elegant Shadow Effect Long Shadow effect comes to text, made using CSS. Foggy text effect Andreas creates an awesome cinematic foggy effect. SVG text mask Text Animation Hit The Floor Background Clip Text CSS Text-FX

Goodbye node-forever, hello PM2 | It’s no secret that the team has a crush on Javascript; node.js in the backend, AngularJS for our clients, there isn’t much of our stack that isn’t at least in part built with it. Our approach of building static clients and RESTful JSON APIs means that we run a lot of node.js and I must admit that, despite all of it awesomeness, node.js still is a bit of a headache when it comes to running in production. Tooling and best practices (think monitoring, logging, error traces…) are still lacking when compared to some of the more established languages. So far, we had been relying on the pretty nifty node-forever. Limited monitoring and logging abilities, Poor support for process management configuration, No support for clusterization, Aging codebase (which meant frequent failures when upgrading Node). This is what led us to write PM2 in the past couple months. So what’s in the box? First things first, you can install it with npm: npm install -g pm2 Native clusterization Then; $ pm2 list

Thrift vs Protocol Bufffers vs JSON | MirthLab Note: This article a work in progress. If there is anything that needs correcting please let me know by leaving a comment. Originally this comparison included a look at JSON. Although JSON is small, lightweight, fast to transmit and easily serialized/de-serialized, it is disqualified simply on the basis that there is no built-in way to allow versioning of objects. Both Protobuf and Thrift allow some type of data versioning so that both clients and servers can continue to work without being upgraded, even if the protocol has changed. This is handy when rolling out a new protocol since there’s no need to orchestrate a massive protocol update across services before flipping the switch on a new protocol. Much of this table was originally compiled by Stuart Sierra but has been edited to include additional information relevant to my own requirements. Thrift and Protocol Buffers are both great choices and there seems like no clear winner between them. I’d choose Protocol Buffers over Thrift if:

altJS compile-to-JavaScript language list Erlang on Xen - at the heart of super-elastic clouds protobuf - Protocol Buffers - Google's data interchange format What is it? Protocol Buffers are a way of encoding structured data in an efficient yet extensible format. Google uses Protocol Buffers for almost all of its internal RPC protocols and file formats. Latest Updates Documentation Read the documentation. Discussion Visit the discussion group. Quick Example You write a .proto file like this: message Person { required int32 id = 1; required string name = 2; optional string email = 3;} Then you compile it with protoc, the protocol buffer compiler, to produce code in C++, Java, or Python. Then, if you are using C++, you use that code like this: Person person;person.set_id(123);person.set_name("Bob");person.set_email(""); fstream out("person.pb", ios::out | ios::binary | ios::trunc);person.SerializeToOstream(&out);out.close(); Or like this: Person person;fstream in("person.pb", ios::in | ios::binary);if (! For a more complete example, see the tutorials.

MySQL Performance Blog - Percona's MySQL & InnoDB performance and scalability blog Google Protocol Buffers vs Apache Avro | The Architect I have been looking into middleware solutions as a push mechanism between server and client. One of the aspects that I had to consider was latency. Hence it was important to find a lean technology agnostic transport format. Most server-client platforms use a serialization technique to serialize into a leaner data format, and then de-serialize on the receiving end. So in my search for a technology I now had to consider speed of serialization. Many languages offer native serialization APIs, but when serializing the data using the native API, Metadata about the class is serialized into the output too. I also needed to identify the best data format to serialize to. I came across two technologies ‘Google Protocol Buffers’ and ‘Apache Avro’: Google Protocol Buffers Protocol Buffers is a serialisation format with an interface description language developed by Google. It works by you defining how you want your data to be structured via proto files, which are simply structure text files. Results