Category Archives: spring python

Valuable things I have learned while writing three books for @PacktPub

I recently had a friend of mine ask me about the viability of writing a book for his open source project. He had questions about how to submit a proposal as well as the money involved. I wrote him a detailed response, but decided to post some of my lessons learned here.

Don’t write a book for the money

This is definitely a worn out expression. I have seen people get this starry gleam in their eye, Sorry, but that only happens when you write a best selling, fictional trade novel. Not everyone can be J.K. Rowling. In fact, there are actually a very small number of authors who make it big. The real name of the game in writing is to write LOTS of books, such that over time, people that like your material end up buying all your titles.

When writing technical books, you still need to sell a bunch to really make any money, but we are forever cursed by books going out-of-date in just a few years. Trade novels last a lot longer.

That may sound a tad depressing. So why write book? Because it can open doors you never knew would happen. When you are a published author, it can impact interviews, speaking engagements, consulting opportunities, and other things. It is always a major +1 to your CV to have written a title. Even more if you get several under your belt. It also increases your overall name recognition and personal brand.

Understand what you’re getting into

Before expending any effort in writing, I made sure we had a contract in place that we both agreed to. I’ve read article where people keep writing chapter after and yet have not signed an agreed upon contract. I don’t work that way. You are taking on risk by doing that. Until a contract is in place, the publisher can bring onboard other writers.

I have historically preferred to write my titles by myself. It lets me control the content 100% and not have to deal with interacting with another author, one who might/might not be as motivated as me. As a nice side effect, it also ensures that I get all the money. Since we’re already talking about a small pile of money, it feels counter production to split it up amongst two or three people.

Packt’s contracts include an option of first refusal for your next two titles. I understand Packt’s desire to get first dibbs on future work. It make business sense, so I had no issue with this in my first two titles. But on the third one, I had decided they had made enough money on me. I asked that this clause be removed to liberate me for future works. I have no hard feelings nor have I felt any malice from anyone at Packt.

Be sure to understand that the contract includes deadlines and exactly how much money you’ll be paid and when. If you sign the contract, you are agreeing to everything stated. Understand what you are agreeing to.

It’s your title. Act accordingly

Every publisher out there will probably tell you how glorious their marketing and sales team is. But for you to write a book and make no mention on Twitter/FaceBook/Google+, nor to write a peep on your blog site is ridiculous. You should be blogging all the time as you write and beyond publishing. Don’t assume that your publisher will automatically sell 1000 copies of your book and be fired up to order another batch!

Another aspect of “acting accordingly” is to remember this will reflect first and foremost on YOU. If you have a certain voice or a style of presentation when you speak at conferences, then by all means, try to write that into your manuscript. Your editors may try to edit that out. If you give them the upper hand, they can reduce your effuse writing into boring humdrum. I’ve seen editors edit out some of my sassy writing. My response? I edit it back in! They don’t usually push back too hard.

It’s important that the publisher have a certain level of quality. But there needs to be enough of YOU in whatever you write that makes it stand out.

Go and read other people’s technical books. Part of this inspiration for me came from a couple other technical books I read. The style these author’s wrote knocked me out of my chair. I LOVED the small jokes, clever class names, and funny material they injected into their writing. And it told me I could do the same, as long as it wasn’t offensive or obnoxious. Again, my editors pushed back, but I paid keen attention to EVERY edit, and undid several of these. I wanted my book to be fun.

Making your book fun is no one’s job but yours.

Take credit for your work – give credit to others

In my latest title, I started each chapter with a quote from twitter. “Spring Boot” was so hot, that I started collecting tweets as I wrote. I would launch a chapter, and include a link to that user’s twitter handle. Their comments were inspirational. I hope they picked up new followers.

At the same time, I gave a presentation that pre-dated release of my book. I mocked up a logo of the book with the title in it, and included that in my profile slide at the beginning. This was a PR moment I wouldn’t pass up. I wanted everyone in that audience to know a book was coming, and hopefully they all bought a copy!

That same week, my colleagues and I trekked to a JUG meeting. Someone in the group asked, “Is there a book on Spring Boot coming?” Everyone turned to me, and I happily gave them the estimated release date. More free PR. I also was sure to cc more than a handful of tweets to that group’s twitter handle. Hopefully they each bought a copy! (Not likely, but one can dream, right?)

Finally, I wrote my last title using asciidoctor thanks to Dan Allen. This was by far the best option. It allowed me to focus on quality content and not idiotic Word Processor issues.

Knuckle down and write

Okay, all these suggestions up to this point are nice and all, but it’s all for naught unless you put in the hours to actually write your book. I read someone’s blog article where they thought the deadlines were crazy since they only planned to write on the weekends.

Sorry, but I don’t have much sympathy there. I wrote each of my books while we also had a newborn baby. I quickly adopted the style of writing every night after everyone had gone to bed. This way, I could focus with no distractions, and then take the weekend off. Writing every night from 10pm-midnight can be exhausting when you mix it with feeding a baby at 2 AM, but this ensured that I got my book finished and out the door. It also cut down on the risk of my technology moving away from me too quickly and making the material invalid, or avoiding massive rewrites due to mega-changes.

Another thing you have to be ready to do is carry your book all by yourself. You can’t depend on certain reviewers to fix things for you. Instead, you need to be ready to proof read in the event your book reviewers don’t actually give you any feedback until the last minute. It’s sad, but this still reflects on you.

There were times when I hit bugs in my sample code, and had to simply pack up for the night. There were other times when I had no choice but to work an extra two hours to hammer out a problem that no one else could help me with, either in my asciidoctor backend, or in my sample code. After all, no one was going to pick this up and fix it, right? Leaning on pull requests, etc. is no excuse for not writing your book.

I demoed Spring Social GItHub in my latest book, and had to go to press using version 1.0.0.BUILD-SNAPSHOT because the project lead was simply too backed up to fix the milestone release already published which broke my book’s sample code. Them’s the breaks.

So by now, if I haven’t smashed your dream of writing a technical book too badly, I wish you only the best in going out, submitting a proposal, and snagging a contract.

Sorry Planet Python

I just moved all the blogs I wrote about Spring Python over here, and asked Michael Foord to update Planet Python’s feed to point hear instead. I forgot that it would probably repost everything. Well I guess it’s kind of like an extra media blitz.

Just so you are up to date:
– Spring Python is at release 1.2.0.Final
– We support Python 2.6+ (but not 3+ yet)
– Visit Packt Publishing’s website and you can order a copy of my book, Spring Python 1.1, of which probably everything works. It just doesn’t show the newer features.

For more project details, forums, or documentation, visit http://springpython.webfactional.com.

Spring Python 1.1.0 released

The final release of Spring Python 1.1.0 is out. Spring Python takes the concepts of Spring and applies them to the Python. This includes functionality like dependency injection, aspect oriented programming, data access, transaction management, security, remoting, and even python-to-java-to-python communication through JMS.

Spring Python has been growing since 2006 and was the first Spring Extension to go live. The project thrives with community involvement. The biggest thanks go to our fellow committers: Dariusz Suchojad and Sven Wilhelm. You can also follow postings at http://twitter.com/springpython.

There is also a Spring Python 1.1 book to help both Java and Python coders alike come to grips with the functionality offered by Spring Python. It covers all the major functional pieces of Spring Python (except the JMS part which is very new) and includes two case studies with lots of code and high level diagrams.

The following is a list of issues worked during this major release:

Bug

Improvement

New Feature

Refactoring

Spring Python 1.1.0.RC1 released

See http://www.springsource.org/node/2490 for the official notice.

Spring Python takes the concepts of the Spring Framework and applies them to Python. This includes features like dependency injection, aop, remoting, data access, transactions, and security, all with a non-invasiveness style.

This is the first release candidate for version 1.1. We are quickly approaching final release. You can read more detail with the online documentation (see official notice for more links, as well as the sidebars of this blog). You can also pre-order your copy of the Spring Python 1.1 from Packt Publishing, due for release in June 2010.

Improvement

  • [SESPRINGPYTHONPY-136] – Stop using Amazon’s S3 browse site, and replace it with SpringSource’s

Spring Python 1.1.0.M2 is released

See http://www.springsource.org/node/2489 for the official notice.

Spring Python takes the concepts of the Spring Framework and applies them to Python. This includes features like dependency injection, aop, remoting, data access, transactions, and security, all with a non-invasiveness style.

This is the last planned milestone for version 1.1. We are quickly approaching final release. You can read more detail with the online documentation (see official notice for more links, as well as the sidebars of this blog). You can also pre-order your copy of the Spring Python 1.1 from Packt Publishing, due for release in June 2010.

Release Notes

Bug

Improvement

New Feature

Refactoring

Pre-order your copy of Spring Python 1.1 book today!

Spring Python 1.1

Pre-order your copy of the Spring Python book!

“Create powerful and versatile Spring Python applications using pragmatic libraries and useful abstractions

  • Maximize the use of Spring features in Python and develop impressive Spring Python applications

 

 

  • Explore the versatility of Spring Python by integrating it with frameworks, libraries, and tools

 

 

  • Discover the non-intrusive Spring way of wiring together Python components

 

 

  • Packed with hands-on-examples, case studies, and clear explanations for better understanding”

 
Visit the Packt Publishing site for more details.

Spring Python 1.1.0.M1 Released

See http://www.springsource.org/node/2282 for the official announcement.

I chatted with Mark Pollack earlier this week and asked if we wouldn’t mind me taking over. He said no problem, and I was able to get keys later to push releases up to SpringSource’s S3 site.

This release is first milestone in our new 1.1 baseline. More features, improvements, and enhancements will be coming out with the next milestone, as we work towards getting this released.

I’m going to work for SpringSource

Starting January 11th, I’m going to be working for SpringSource. I told my daughter and look what she had to say!

Audrey_heart_spring

 

I’m glad she approves.

 

No, they didn’t hire me to work on Spring Python. That is still in my spare time. Hopefully, I can become sponsor and not have to bug Mark Pollack.

 

Anyway, my first assignment will involve working on integration between tcServer and some of SpringSource’s management products. I can’t wait!