Feed aggregator

Geek Reading July 17, 2014

Javalobby Syndicated Feed - Thu, 17-Jul-14 22:00
I have talked about human filters and my plan for digital curation. These items are the fruits of those ideas, the items I deemed worthy from my daily reading. These items are a combination of tech business news, development news and programming tools and techniques. You will note that some of the formatting has changed, and that is due to the change in my process. Preview...
Categories: Java

New Focus: Data Scientist

Javalobby Syndicated Feed - Thu, 17-Jul-14 22:00
Read this: http://www.forbes.com/sites/emc/2014/06/26/the-hottest-jobs-in-it-training-tomorrows-data-scientists/ Interesting subject areas: Statistics, Machine Learning, Algorithms. Preview Text:  I've had questions about data science from folks who (somehow) felt that calculus and differential equations were important parts of data...
Categories: Java

Compile SQLite for WinRT with FTS4 unicode61 Support

Javalobby Syndicated Feed - Thu, 17-Jul-14 22:00
I was experimenting with the FTS3/FTS4 feature of SQlite in a WinRT app. The default tokenizer ‘simple’ wont tokenize special character like $, @, etc. The solution is to use ‘unicode61’ tokenizer. Unfortunately the SQLite installer for WinRT8.1 comes without unicode61 tokenizer. Preview Text:  I was experimenting with the FTS3/FTS4...
Categories: Java

Updates to libcouchbase 2.4

Javalobby Syndicated Feed - Thu, 17-Jul-14 22:00
Originally written by Mark NunbergIf you've been following along, a developer preview version of the library was released last month. It contained a whole bunch of improvements which you can read about here. TL;DR: Updated API docs is at http://docs.couchbase.com/sdk-api/couchbase-c-client-2.4.0-beta/index.html Preview Text:  If...
Categories: Java

Cross-Platform Behavior for Making Screenshots in Windows (Phone) 8.1

Javalobby Syndicated Feed - Thu, 17-Jul-14 22:00
Currently I am developing an app that should be able to share or save whatever is on the screen. I came upon this article by Loek van den Ouweland about RenderTargetBitmap and wondered if I could a) make this more generally (re)usable and b) make it play nice with MVVM. Preview Text:  Currently I am developing an app that should be able to share or...
Categories: Java

When a Race Condition is What You Want…

Javalobby Syndicated Feed - Thu, 17-Jul-14 22:00
I have an interesting situation that I am not sure how to resolve. We need to record the last request time for a RavenDB database. Now, this last request time is mostly used to show the user, and to decide when a database is idle, and can be shut down. As such, it doesn’t have to be really accurate ( a skew of even a few seconds is just fine ). However, under load, there are many requests...
Categories: Java

PaintCode 2.1 with Swift!

Javalobby Syndicated Feed - Thu, 17-Jul-14 21:30
So we’ve mentioned in passing the existence of PaintCode, the premier code-producing vector drawing program out there, but we’d never got into it particularly deeply; but with the serious upgrades with version 2, Our goals for PaintCode 2 Preview Text:  So we’ve mentioned in passing the existence of PaintCode, the premier code-producing...
Categories: Java

Why agile development needs automatic tests

codecentric Blog - Thu, 17-Jul-14 05:00

Test the basics

There are multiple reasons for tests. Two major reasons are:

  1. To prove that a change of the software adds the desired functionality.
  2. To ensure that a change does not break the existing functionality (regression testing).

It is possible in these two cases that the tests are executed by hand, in an automatic way or with a mix of both. But automated tests provide a big benefit in terms of effort for regression tests.

In addition to these major reasons there is a third one, which is especially important for agile development. To fully understand this additional reason I have to digress first.

No perfect design

Software is malleable (meaning it is easy to change its form). This has advantages and disadvantages. One disadvantage is that each change can make the software worse (e.g. add a bug, remove some existing functionality unintentionally, …). The advantage is that the internal design can be changed. In particular, it means that the internal design can be improved. Why is this important? Because it is not possible to design the software in a perfect way at the start. Like the Spiral model the agile development model is an iterative model. This means that new requirements are added step by step and so almost ensuring that the initial design will not be the best design once the full list of requirements is known and implemented. Another reason for the inability to create a perfect design front-up is that during the implementation developers get new insights into the domain and this usually also means a design change. So it is an ongoing task to improve the design of the software to make it reflect the domain in a good way, to be easy to understand and to extend. You ask but how is this related to tests?

Full freedom?

One can view a program under development as the space, which the developer(s) can form between two fixed ends. On the bottom end are the things the developer and so the new program depend on. These might be the JDK, 3rd-party libraries, a data base, the operation system or the file system. This bottom is fixed because the developer can not change these interfaces (easily). On the top end are the requirements. They are fixed, too, and are in the best case encoded in some automatic acceptance tests. One can describe the primary task of the developer to fill this space with some code to use the existing components (e.g. JDK) to provide the requested functionality. In this primary task the developer has full freedom. She can create a huge god class. Or, even more drastic, she can write an i386 simulator in Java and write the business code in assembler. As long as the requirements are met the customer (usually) doesn’t care.

Bringing all together

But there is another aspect in the job of the developer (which distinguish a coder from a software engineer): to provide a software with a good internal quality (design, code layout, names, OO design, loose coupling,…) to make the software easy to understand and maintain. To achieve and keep such a good internal quality the internal quality of the software needs to be constantly monitored and improved with smaller or larger re-designs.

Because such re-designs are required by new requirements and insights, AND such re-designs require code changes, AND because software is malleable, such changes can break existing functionality. So without tests it is time-consuming to improve the internal quality because extensive manual re-tests are required. If there are no or only limited automatic tests, usually the re-design is not executed and the internal quality of the software will degenerate over time with the known effects of increased cost for maintenance and reduced adaptability regarding new features.

To sum up, automatic tests (whether they are written before or after the implementation) are indispensably for achieving and maintaining a high internal software quality when an agile development model is used.

The post Why agile development needs automatic tests appeared first on codecentric Blog.

Categories: Agile, Java, TDD & BDD

The Best of DZone: July 9 - 16

Javalobby Syndicated Feed - Thu, 17-Jul-14 00:00
If you missed anything on DZone this week, now's your chance to catch up! Below are the most popular posts of the past week - both links from DZone.com and articles from our Zones - covering Big Data and NoSQL databases, web design and mobile development, and everything inbetween: Preview Text:  If you missed anything on DZone this week,...
Categories: Java

Introduction to Writing Custom Collectors in Java 8

Javalobby Syndicated Feed - Wed, 16-Jul-14 23:00
Java 8 introduced the concept of collectors. Preview Text:  Java 8 introduced the concept of collectors. Most of the time we barely use factory methods from Collectors class, e.g. collect(toList()), toSet() or maybe something more fancy like counting() or groupingBy(). Legacy Sponsored:  ...
Categories: Java

Sharing Programming

Javalobby Syndicated Feed - Wed, 16-Jul-14 23:00
I’m going to be volunteer teaching AP computer science this fall at a NYC high school! Aside from actually prepping them for the AP exam, I’ve been thinking about how to share the programming culture I love with the students. Off the top of my head, I’d like to tell them about: Stuff you can do to program for fun: Hackathons Game jams Project Euler Where programmers hang...
Categories: Java

Test Attribute #2 - Readability

Javalobby Syndicated Feed - Wed, 16-Jul-14 22:35
This is the 2nd post on test attributes that were described in the now famous “How to test your tests” post. We often forget the most of the value we get from tests come after we’ve written them. Sure, TDD helps design the code, but let’s face it, when everything works for the first time, our tests become the future guardians of our code. Once in place, we can change the code, hopefully...
Categories: Java

NFJS UberConf Trip Report

Javalobby Syndicated Feed - Wed, 16-Jul-14 22:30
UberConf was held June 24 - June 27 in Denver, Colorado. For those unaware, this is essentially the largest single annual event under the NFJS umbrella and to a certain extent the culminating point of the US based tour. Unlike the usual NFJS events that are squarely locally focused, it's intent is to be a national/international conference. Consequently it has a larger set of attendees, speakers,...
Categories: Java

YAML Like a Pro

Javalobby Syndicated Feed - Wed, 16-Jul-14 22:30
Originally written by Ingy döt Net. YAML (YAML Ain't Markup Language) is a cross-programming-language data serialization language whose primary focus is Human Friendliness. This generally means less funny characters like ({}, [], ", etc), so that the data is easier to read and write. These characters are used, but YAML tries hard to make them needed as little as possible; more for harder cases,...
Categories: Java

Every Library Needs an Index

Javalobby Syndicated Feed - Wed, 16-Jul-14 22:30
Imagine walking into a library, and having to walk up and down the aisles trying to find the book you want. You may find the book eventually, or you may not. One thing is for sure it would take you a long time. If it takes you too long, most probably you’ll end up walking away without the book you were looking for. Preview Text:  Imagine walking...
Categories: Java

The Cloudcast #152 - How Large does Mirantis Loom Over OpenStack?

Javalobby Syndicated Feed - Wed, 16-Jul-14 22:30
Download the MP3 Date: July 2, 2014 Preview Text:  Brian talks with Adrian Ionel bout how Mirantis has evolved in the OpenStack community, demand for OpenStack Hybrid Cloud, challenges companies have in deployment and management, and how the European market for OpenStack might be larger and more dynamic than US and Asia market. ...
Categories: Java

Considering Amazon Web Service's Continued Push Into Mobile

Javalobby Syndicated Feed - Wed, 16-Jul-14 22:30
I am still processing the recent news of Amazon Mobile Services. Over time Amazon is continuing to push into the BaaS world, to compliment their existing IaaS, and PaaS ecosystem. Amazon is a cloud pioneer, and kind of has the first mover, 1000lb gorilla advantage, when it comes to delivering cloud services.  Preview Text:  It...
Categories: Java

Realm: A Memory-Efficient Mobile Database

Javalobby Syndicated Feed - Wed, 16-Jul-14 22:30
If you're a mobile developer looking for a database that won't crush devices more thoroughly than Play Services 5.0, SQLite isn't the only option anymore. Now there's Realm, currently available for iOS (and Android, soon). It runs in phones, tablets, wearables, and so on, and aims to improve performance by maintaining a small footprint.According to the homepage, Realm gets some performance boost...
Categories: Java

Logon Triggers: The Oracle Database Magic Bullet

Javalobby Syndicated Feed - Wed, 16-Jul-14 22:30
Imagine you want to collect detailed usage statistics to tune your Oracle database, e.g. if you want to have A-Rows and A-Time values in your execution plans (by default, Oracle only reports E-Rows and E-Time with “E” for “Estimated”. But usually, you will care more about the “A” for “Actual”). All you have to do is connect with a sysdba user and issue the following...
Categories: Java

Making the Reactive Queue Durable with Akka Persistence

Javalobby Syndicated Feed - Wed, 16-Jul-14 22:30
Some time ago I wrote how to implement a reactive message queue with Akka Streams. The queue supports streaming send and receive operations with back-pressure, but has one downside: all messages are stored in-memory, and hence in case of a restart are lost. Preview Text:  Some time ago I wrote how to implement a reactive message queue with Akka...
Categories: Java

Thread Slivers eBook at Amazon

Syndicate content