Category Archives: springone

Day Two: Sprechen Deutsch mit meinen freunden @springone2gx #s2gx #german

springone2gx2014_banner_speaking_200x200So weit, ich habe mit Ollie Gierke, Christoph Stroble, und Michael Hunger in Deutsch gesprecht. Super! Das is sehr Spaß!

In Amerika, wir mussen zwei Jahre im Hochschule lernen. Das ist schlecht! Niemand nur zewei Jahren lernen kann etwas. Ich habe drei Jahre im Hochschule gelernt, und das war vor 25 Jahren. Aber mit, anki, und, I kann Deutsch wirklich genießen!  Täglich, ich gehe mit meine Tochter zu Kingergarten, and dann ich gehe nach mein Haus wo ich studiere mein Deck.

Zeit für Frühstück!

Working in the cloud on spring-a-gram while flying through the clouds #s2gx

spring-a-gram-catThings are rather intriguing. I am flying through the sky, in the clouds if you will, towards Dallas, Texas. This week is the fun filled SpringOne 2GX conference. As I fly through the clouds, I’m pushing updates to my app, in the cloud. 🙂 Another humorous fact is that I started this blog entry in the airport terminal, but delayed posting UNTIL I got on the plane, so I could access the WiFi.

Spring-a-Gram is my demo app used to demonstrate Spring Data REST. With it I will show just how quickly you can create a back end and shift your focus to the front end. The app is used to create images and then upload them through a RESTful service. I built a mobile web page so you can take pictures with your phone, upload them to a website, and view it from other locations. For fun, I threw in sharing via twitter.

Gearing up for @SpringOne2GX. (It’s not too late to register!)

DSC05391This is a short week for US citizens, since this past Monday was Labor Day. Of course, while I took time off, it didn’t really save me from the fact that I still have a boat load of stuff to do before I fly off to Dallas this upcoming Sunday.

I look forward to seeing many colleagues face-to-face. It’s a great time of cameraderie. And it’s also one of the most heating times of the year when we want to get certain things released to the Spring community.

I’ve been working primarily on two teams this past year: Spring Data and the Allspark team. Primarily I have worked on Spring Data REST, a project that lets you export any Spring Data repo with powerful RESTful endpoints supported by hypermedia. I have also made significant contributions on converting all their reference docs to asciidoctor. (Stay tuned for more on that).

At the same time, I have been using my RESTful skills and knowledge to interact with the Allspark team. This group is focused on a mobile R&D. As people are becoming aware, not only is software consuming the world, but mobile is consuming the software world. With billions of mobile devices in circulation, many businesses deal with mobile traffic as a primary means for lots of customers.

spring-a-gram-catRESTful services are a key facet to developing mobile apps, so I have used Spring Data REST to bridge the gap between Spring Data and mobile interfaces by building a demo application. Roy Clarkson and I will be demonstrating it next week. The app is called Spring-a-Gram and has been developed to move as much development as possible off of the server and onto the client.

In our demo, I’ll show an iPhone mobile web app that can take pictures and upload them to a backend database. Then it will let you tweet links to all your friends. Roy will demo an Android app that does similar things. All the while, it showcases the power of Spring Data REST and hypermedia.

My goal that I am trying to accomplish this week is to get the latest Spring Data GA release into my demo so I can show of the new ALPS metadata. This will be a signature achievement, because it will remove the need for a client developer to actually peek at the apps domain model. Instead, one can interrogate the RESTful service purely with a tool like curl and figure out how to a interact with the backend.

At the same time, I’m polishing up the getting started guides so that readers can skip over the build steps and jump right to the content. The process of putting such dynamic features into an asciidoctor-based guide was quite enlightening. I wrote JavaScript, CSS, and HTML and learned a lot of really fascinating things. I just can’t wait to gather with my colleagues and have a toast to this past year’s work!

If you happen to be coming (it’s not too late to register!!!!), send me a tweet or a message on this blog site. I’m trying to gather notes on all the people I plan to link up with. (In the meantime, I’ve told my editor for Learning Spring Boot that I’m basically unavailable to work on rewrites for the next two weeks.)

Happing coding!

Hear about #REST and #hypermedia with #mobile UI @springone2gx this year! #s2gx


Spring Mobile/Android guru Roy Clarkson and I are giving a talk at SpringOne this year. We will be mixing Spring Data with RESTful APIs.

Roy and I have been working on a demo app that let’s you snap pictures and then upload them to a centralized web site through a simple RESTful API using hypermedia. The code to build the back end is über easy and lets you focus on the problem you’re trying to solve. On top of that, we’re building some functionality to then tweet your pic to all your friends.

spring-a-gram-catOriginal idea, huh? (See video below for my inspiration!)

The focus of our talk is about the powerful role hypermedia plays in creating flexible APIs, and how Spring Data REST puts you in control of building multiple clients. We will have a desktop web site as well as a mobile UI. We are also plotting to release the app on Cloud Foundry so you can go around and take pics during the conference and tweet them to your friends and colleagues.

Don’t forget. Early bird registration ends August 9th and will go up $150, so sign up now!

My software cheapskate days are behind me

In the past eight months, I have plunked down money cash for some really handy apps. And I’m happy I did.

I used to be really stingy. I’ve slowly become aware that software devs are probably the last people to actually pay money for software. We’re always looking for freebie or open source versions. We claim it’s for security reasons. Or we want the option to file a bug report or submit a patch. But raise your hand and confess. It’s because you don’t want spend a nickel.

One point I made in last years SpringOnr talk was that software devs are cheapskates. I watched my old company penny pinch and not buy a $100,000 database of customer location data and end up burning off more than that over the life of the contract in hours working around data issues.

I began to break free when I bought Tweeetbot for my laptop and my iPhone. I think that was $25 total. Huge amount for a software dev to spend! And to think this was just to read and write tweets. Heck, it took me four months to make the choice. And I’ve been happy ever since. No more advertised tweets. I don’t care about their new look and feel.

Next? Well I had already bought Markdown Pro last summer. We were slugging out guides left and right. This tool saved me gobs of hours. And it only cost $10. I think I can find enough change in the sofa for that.

Next? I blew thirteen big ones of the Reflector app. This let me stream my iPhone to my laptop. I had tried it out for free and used it to record clips for a mobile screencast. Seeing the value for this year’s SpringOne talk, I managed to scrape together the money.

I recently got a 39″ 4K monitor. It was great except for one annoying side effect. Whenever my laptop went to sleep, all the windows would jump to the corner and shrink. I would then have to reposition hem. In about fifteen minutes of research, I discovered the Stay app. I gave it a shot. It worked beautifully. It took me no effort to beg my wife to let me spend $15 to keep it.

What is that? $68? I’m a high roller now.

Catch my #Grails talk @springone2gx!

I’m speaking at SpringOne 2GX next month. I invite you to come see my presentation: “Case Study – Grails in the Real World“.

I have been working hard for some time on other material that will be presented at SpringOne. With that stuff briefly off my plate, I have dove head first into getting my presentation ready! There isn’t a lot of time. I got a hold of the template for our slides and have been writing raw material, slowly trying to morph it into a top notch presentation.

What are you talking about?

Most of my presentation is aimed at showing off a Grails app I built about several months ago. The app’s purpose is to serve up maven artifacts for our commercial tc Server product. The latest version of tc Server now has the embedded Tomcat feature, and to use it, many developers are interested in simply adding a maven dependency to their project.

We essentially wanted to provide this feature free to developers, but still track download statistics. So I set out writing a Grails app that allowed you to register by email address and then give you the settings to plugin into your maven build file. It works great! The Grails app is essentially a proxy server. It pulls down the files from our super secret location, and forwards them to the requester.

Growing pains

I went through a lot of growing pains making it all work. You register online with an email address. The app sends you an email with a hashed activation code. You have seven days to activate or the link is thrown out.

At one time, we generated a random hash link that you can see after account activation. Later on, that was replaced with an authenticated REST endpoint with extra steps to configure that for maven.

The whole time, I wanted to share this with other developers that might be going through some of the same pains as me in making it functional, durable, easy-to-use, and able to withstand a barrage of customer-driven mistakes (which always happen!) It was also reminiscent of work at my previous job where I built a 24×7 Ops center that managed a nationwide network. My team ran into a whole host of technical and customer issues, and I’d like to think that my experience there helped shape things on this Grails app.

If you come to my talk, you will get to walk through these various bits of the app and hopefully learn some tactics to help your own development efforts. Given that the production app contains secret email passwords and other proprietary information, I had to make a sanitized version of the app. That is mostly done with just one thing remaining. Hopefully, it won’t take too much work to orchestrate the presentation.

Even if you don’t catch my presentation, I strongly encourage you to sign up for SpringOne 2GX. This is one of the best conferences out there, with some of the best people in the industry coming to speak from around the world.

SpringOne Europe – Wish I Could Be There

Well, I was able to make it to the SpringOne Americas conference back in December 2008. And I knew I would hunger to be at the SpringOne Europe conference this year. This time, though, since I got into twitter, I have been able to keep my thumb on the pulse by watching twitter on the #springone channel.

It makes me feel almost like I’m there.

  • So far, I have been tracking Ben Alex’s Spring ROO framework.
  • Oracle = “A tax on old Java technology” – Rod Johnson (overheard on twitter)
  • SpringSource Tool Suite will be free for all developers.

Okay, I’m not going to give you everything (and I don’t KNOW everything). If you can make it to a SpringOne conference, trust me…it’s awesome. However, if not, then at least follow along twitter for some of the bits.

SpringOne – Day 4 and my presentation

Day 4
Alright! This was great. I had about 10 people show up for my presentation, and I feel like things went smoothly. I also got a kick out of helping Russ with his presentation on Spring Extensions. I also attended Mark Pollack’s two presentations about .NET, just so I could get a feel for other people presenting non-Java technology at a Java conference.

There were good questions during my presentation, and that makes me feel the people were really interested. I polled the group, and they all use java. I think about half indicated they were using python in one form or another.

Things have been great. This is one well run conference, for sure. But, alas, I am worn out from conference fatigue. I am about ready to collapse. Luckily, I’m not checking out until tomorrow.

SpringOne – Day 3 and Spring Python plugins

Day 3 – Writing a Spring Python plugin manager
Yesterday, I visited three sessions: RESTful Web Applications with Spring 3.0, Terracotta, and The Dojo Toolkit. I admit that my mind was wandering during the web-based ones. That was because I wanted to work on my command-line, plug-in based tool. So I planted myself in the back of the room for the first and third presentation, plugged into some power, and worked on a plugin.

I managed to get a basic one completed called gen-cherrypy-app. Right now, you can only find it on one of my sandbox branches at In that directory is a command line python tool called coily. If you need help, type:

./coily –help

Currently, it will load plugins found in the current directory. In this case, you can see two in subversion: gen-cherrypy-app as I mentioned before, and noop as a test plugin that takes no arguments. In the future, it would be useful to have official plugins living on SpringSource’s download site, perhaps split into officially supported ones, and others going through the Spring Extensions life cycle.

Back to coily. If you run:

./coily –install-plugin gen-cherrypy-app

…it creates a .springpython folder in your home directory, copies the entire directory of gen-cherrypy-app there, and then next time you run coily –help, it will list it as a viable command-line option.

What does this plugin do? The idea for this plugin was inspired by Graeme’s presentation on Grails where he built a twitter-like site in 40 minutes.

./coily –gen-cherrypy-app twitter

That will generate a directory called twitter, which contains a Spring Python-based CherrypPy skeleton app called plus some support files. Several toolsets are proving the value of auto-skeleton apps: RoR, Grails, and Turbogears to name a few. Spring Python can use that too.

Spring Python hasn’t yet made it safe for the fairies, so I think users deserve all the help they can get wiring up spring python security.

But more than anything, this helps set the stage for other useful plugins that the community can identify as useful for adoption of Spring Python. I hope I have whetted your appetite. Now…time to get ready for a couple of presentations!