an Gogh ya vivía en la capital francesa desde hacía casi medio año, cuando le escribió a Horace M. Lievens, un pintor inglés que había conocido en
Amberes: “Y recuerde, mi estimado colega, París es París. Existe un solo París, y por más que resulte difícil vivir aquí, y aun si empeora y se hace más difícil –el aire francés esclarece el cerebro y te hace bien–, es un mundo de bien”58.
Inesperadamente había llegado en marzo de 1886, y de inmediato le envió una nota a su hermano a la galería: “Mi querido Theo, no estés enojado conmigo por haber venido así de buenas a primeras. Lo he pensado mucho, y creo que de esta forma ganaremos tiempo. Estaré en el Louvre desde el mediodía en adelante, o antes, si lo deseas”59.
Van Gogh permaneció en París durante dos años. Puesto que estaba viviendo con su corresponsal más importante, este capítulo de su vida está pobremente documentado. La convivencia de los dos hermanos tuvo sus conflictos. “Hubo un tiempo en el que pensaba mucho en Vincent y en el que era mi mejor amigo, pero esto se terminó ahora”, protesta Theo ante su hermana Willemina. “Desde su punto de vista parece ser aún peor, porque no pierde oportunidad de hacerme saber que me desprecia y me detesta. Por esa razón, mi casa se ha tornado insoportable. Ya nadie viene a visitarme debido a sus reproches, y también porque la casa está tan sucia, que se ha vuelto poco acogedora”60.
This chapter covers some entry-level tasks that you need to know how to do before you can go on—it is said you must crawl before you can walk, and walk before you can ride a bicycle. Before you can try out anything in this book, you need to be able to compile and run your Java code, so I start there, showing several ways: the JDK way, the Integrated Development Environment (IDE) way, and the build tools (Ant, Maven, etc.) way. Another issue people run into is setting CLASSPATH correctly, so that’s dealt with next. Deprecation warnings follow after that, because you’re likely to encounter them in maintaining “old” Java code. The chapter ends with some general information about conditional compilation, unit testing, assertions, and debugging.
If you don’t already have Java installed, you’ll need to download it. Be aware that there
are several different downloads. The JRE (Java Runtime Environment) is a smaller download
for end users. The JDK or Java SDK download is the full development environment,
which you’ll want if you’re going to be developing Java software.
A staging environment is only used occasionally. We want to test a
new version, or new settings, so we need a clean copy of production. It
is not necessary to have this environment around all the time. Well use
our freshly created configuration template to easily launch a new
environment that we can terminate again when we are done.
We want to stress test the environment we are running, so well be
using JMeter to generate some load. We will first tune the environment
based on CloudWatch information we can read from the Console, but later
well create a custom AMI with some additional tools so we can monitor
exactly the behavior of Tomcat.
With our previously created configuration option, this is all it
takes to launch a new environment with the proper version
This will launch a clone of the production environment, ready for
us to work with. In the console, you can now choose the Configuration
you want to use (see Figure3-29).
People love happy endings. We go to the movies so we can feel at peace when the story ends on a high note. We walk out of the theater and back into our lives, imagining the characters staying just as they were on screen, wide smiles frozen in perpetuity—or at least until the sequel.
If we were making the movie of our partnership, the ideal happy ending would have been when Maggie’s leukemia went into remission and our partnership grew stronger because we faced these challenging times together. As in a Bollywood film, the credits would have rolled over plenty of dancing and singing and celebrating.
But because this is real life, that’s not what happened. Instead, Maggie’s diagnosis and treatment were important steps in the trajectory of our long and winding collaboration, but nothing close to its grand finale. Our partnership has marched on since then, as we keep adapting and stretching, celebrating the ups and making our way through the downs. Life rarely if ever moves in a neat progression that culminates in a crashing crescendo. And as we explore in this chapter, neither do partnerships.
Programmers who have written Mac OS X or iOS applications using
Objective-C are already familiar with Cocoa and should recognize its APIs in
the examples in Chapter1, albeit with some odd
syntax changes noted in that chapter. Ruby programmers who want an
introduction to Cocoa can find it in this chapter. MacRuby lets you mix Ruby
and Cocoa APIs seamlessly. But as you start developing Cocoa applications,
you will start having to use Cocoa-specific APIs to solve Cocoa-specific
In the early 1980s, two engineers from the company
StepStone, named Brad J. Cox and Tom Love, designed a C-based language inspired by SmallTalk-80. Their goal was to implement an object-oriented
extension to the C language. The result was called Objective-C.
In 1985, Steve Jobs founded NeXT, a computer platform development
company specializing in the higher education and business markets.
In 1988, NeXT licensed Objective-C from StepStone and wrote libraries
and a compiler to build NeXTSTEPs user interface and interface builder.
NeXTSTEP, NeXTs Unix-based operating system was particularly notable
because of its focus on object-oriented programming and its many powerful