пʼятниця, 25 квітня 2014 р.

Virtual Developer Day: Java 2014 - May 6th

Оракл проводить Virtual Developer Day: Java 2014 - May 6th.

Безкоштовна реєстрація!


четвер, 24 квітня 2014 р.

JUG Flame#1: Report

 В листопаді ми провели зустріч у незвичному форматі. Викладаю звіт по зустрічі у формі презентації та фото нашої робочої дошки, вибачте, що зі значним запізненням.

середа, 23 квітня 2014 р.

Book review: RESTful Web APIs

RESTful Web APIs

By Leonard Richardson, Mike Amundsen, Sam Ruby
Publisher: O'Reilly Media
Released: September 2013
Pages: 408

This medium size-book is easy to read, because of it has good structured content, relevant real-life examples and simple terminology. The book doesn't require any specific knowledges, so it can be recommended to newbies as well as to experienced software engineers. 

The book gives a detail overview of HTTP, before actual start dealing about REST services. Then it provides recommendations about handling collections and media over RESTfull API. Microformats and deep dive into the most powerful HTTP feature for REST API - are the parts that I like the most. Haven't heart about HTML metadata profiles, or special kind of rest for embedded systems? So, in this case you can lear a lot of fascinating things. Also, very important is "multilanguage" orientation of the book. It doesn't relies on REST API implementation in some specific framework or even language, instead of that authors describe common principles of writing services.

The book was split in 13 independent chapters. So, a reader can concentrate only on important topics and omit not interesting/actual topics. I believe it is quite positive about book. Personally, I'd prefer more practical examples, and less theory. However, it'd be really difficult to achieve without increasing book size in twice. So, authors decided to focus more on wide theory and you will need more investigation before staring using some of mentioned approaches as the result.  


We are very pleased to announce the final release of Scala 2.11.0!
There have been no code changes since RC4, just improvements to documentation and version bump to the most recent stable version of Akka actors. Here’s the difference between the release and RC4.
Code that compiled on 2.10.x without deprecation warnings should compile on 2.11.x (we do not guarantee this for experimental APIs, such as reflection). If not, please file a regression. We are working with the community to ensure availability of the core projects of the Scala 2.11.x eco-system, please see below for a list. This release is not binary compatible with the 2.10.x series, to allow us to keep improving the Scala standard library.
The Scala 2.11.x series targets Java 6, with (evolving) experimental support for Java 8. In 2.11.0, Java 8 support is mostly limited to reading Java 8 bytecode and parsing Java 8 source. Stay tuned for more complete (experimental) Java 8 support.

пʼятниця, 18 квітня 2014 р.

Fridays Fun. Star wars

Just open:

- telnet
- traceroute

четвер, 10 квітня 2014 р.

The Top 10 Reasons why Java Rocks More Than Ever

The Top 10 Reasons why Java Rocks More Than Ever

ZeroTurnaround’s RebelLabs often publish awesome blog posts, which we can only recommend. In this case, we’ve discovered a very well-written series of blog posts explaining why Java is so great in 10 steps, by ZeroTurnaround’s Geert Bevin. The articles include:
The compiler is one of the things we take for granted in any language, without thinking about its great features. In Java, unlike C++, you can simply compile your code without thinking too much about linking, optimisation and all sorts of other usual compiler features. This is partially due to the JIT (Just In Time compiler), which does further compilation work at runtime.
The JDK’s core API consists of a very solid, stable and well-understood set of libraries. While many people complain about the lack of functionality in this area (resorting to Google Guava or Apache Commons), people often forget that the core API is still the one that is underneath all those extensions. Again, from a C++ perspective, this is a truly luxurious situation.
In this section, ZeroTurnaround’s Geert Bevin‘s mind-set aligns well with our own at Data Geekerywhen it comes to the spirit of Open Source – no matter whether this is about free-as-in-freedom, or free-as-in-beer, the point is that so many things about Java are “open”. We’re all in this together.
Again, a very interesting point of view from someone with a solid C++ background. We’re taking many things for granted as Java has had a very good threading and memory model from the beginning, which was corrected only once in the JDK 1.5 in 2004, and which has built a solid grounds for newer API like actor-based ones, Fork/JOIN, etc.
The JVM is the most obvious thing to talk about it has allowed for so many languages to work on so many hardware environments, and it runs so fast, nowadays!
… and the JVM also rocks because of bytecode, of course. Bytecode is a vendor-independent abstraction of machine code, which is very predictable and can be generated, manipulated, and transformed by various technologies. We’ve recently had a guest post by Dr. Ming-Yee Iu who has shown how bytecode transformations can be used to emulate LINQ in Java. Let’s hear it for bytecode!
15 years ago, developing software worked quite differently. People can write assembler or C programs with vi or Notepad. But when you’re writing a very complex enterprise-scale Java program, you wouldn’t want to miss IDEs, nowadays. We’ve blogged about various reasons why SQLJ has died. The lack of proper IDE support was one of them.
Remember when Oracle released Java Mission Control for free developer use with the JDK 7u40?Profiling is something very very awesome. With modern profilers, you can know exactly where your bottleneck is by simply measuring every aspect of your JVM. You don’t have to guess, you can know. How powerful is that?
While backwards-compatibility has its drawbacks, too, it is still very impressive how long the Java language, the JVM, and the JDK have existed so far without introducing any major backwards-compatibility regressions. The only thing that comes to mind is the introduction of keywords like assertand enum.
Could you imagine introducing the Java 8 Streams API, lambda expressions, default methods, generics, enums, and loads of other features without ever breaking anything? That’s just great!
In fact, this article is a summary of all the others, saying that Java has been a very well-designed and mature platform from the beginning without ever ceasing to innovate. And it’s true. With Java 8, a great next step has been published that will – again – change the way the enterprise perceives software development for good.

Java Rocks More Than Ever

It does, and it’s a great great platform with a bright future for all its community participants

вівторок, 8 квітня 2014 р.

MongoDB 2.6: Our Biggest Release Ever

MongoDB 2.6: Our Biggest Release Ever
In the five years since the initial release of MongoDB, and after hundreds of thousands of deployments, we have learned a lot. The time has come to take everything we have learned and create a basis for continued innovation over the next ten years.
Today I’m pleased to announce that, with the release of MongoDB 2.6, we have achieved that goal. With comprehensive core server enhancements, a groundbreaking new automation tool, and critical enterprise features, MongoDB 2.6 is by far our biggest release ever.
You’ll see the benefits in better performance and new innovations. We re-wrote the entire query execution engine to improve scalability, and took our first step in building a sophisticated query planner by introducing index intersection. We’ve made the codebase easier to maintain, and made it easier to implement new features. Finally, MongoDB 2.6 lays the foundation for massive improvements to concurrency in MongoDB 2.8, including document-level locking.
From the very beginning, MongoDB has offered developers a simple and elegant way to manage their data. Now we’re bringing that same simplicity and elegance to managing MongoDB. MongoDB Management Service (MMS), which already provides 35,000 MongoDB customers with monitoring and alerting, now provides backup and point-in-time restore functionality, in the cloud and on-premises.
We are also announcing a game-changing feature coming later this year: automation, also with hosted and on-premises options. Automation will allow you to provision and manage MongoDB replica sets and sharded clusters via a simple yet sophisticated interface.
MongoDB 2.6 brings security, integration and analytics enhancements to ease deployment in enterprise environments. LDAP, x.509 and Kerberos authentication are critical enhancements for organizations that require a single authentication mechanism across their entire infrastructure. To enhance security, MongoDB 2.6 implements TLS encryption, user-defined roles, auditing and field-level redaction, a critical building block for trusted systems. IBM Guardium also now offers integration with MongoDB, providing more extensive auditing abilities.
These are only a few of the key improvements; read the full official release notes ( for more details.
MongoDB 2.6 was a major endeavor and bringing it to fruition required hard work and coordination across a rapidly growing team. Over the past few years we have built and invested in that team, and I can proudly say we have the experience, drive and determination to deliver on this and future releases. There is much still to be done, and with MongoDB 2.6, we have a foundation for the next decade of database innovation.
Eliot Horowitz, CTO and Co-Founder
Download Now
Join us on April 17th for a webinar on What's New in MongoDB 2.6
MongoInc_logosmall.pngMongoInc_Social_twitter.png MongoInc_Social_youtube.png MongoInc_Social_facebook.png MongoInc_Social_gplus.png MongoInc_Social_linkedin.png  
     229 W 43rd Street, 5th FL New York, NY 10036

Small Spring Rest issue

Today I've got 415 Unsupported Media Type on Spring MVC based project for such method

There was incorrect parameter consumes = "application/json". I'd forgotten to remove it when changed RequestMethod from POST to GET. Perhaps it could be useful for somebody.