Jan 09 2022

My Most Recent Achievement: Java 17 for Absolute Beginners, second edition

Category: TechnicalIuliana @ 23:51

I already mentioned its release in my first entry for the year, but I think this book is worth a longer entry.

The book is named Java 17 for Absolute Beginners, second edition which might lead people to believe there is a Java 17 for Absolute Beginners, first edition which is ridiculously funny and stupid at the same time, since JDK 17 was released just a few months prior. If you ask me, this book should have been named Java for Absolute Beginners, second edition. Just that, nothing else.  Eventually, there should have been a subtitle mentioning that it covers details on all Java versions including 17.  This should have made it pretty clear what the book is about. On the internet, however, a book name is decided by the search algorithms of the various search engines. And since a lot of people are interested in the most recent version of Java, to make the book easy to find on the internet, Java 17 had to be part of the book title.

This book assumes you are an absolute beginner to Java and probably programming and is written in such a way to introduce you gradually in … my world, because I’ve been writing Java code since 2002 and I’ve had a lot of resources, but let me tell you… I did not have a book like this to guide me through the process. The book covers Java fundamental concepts, but also a few simple algorithms and design patterns. I always thought that you cannot learn a language quickly unless you have a wider context, a purpose for which it can be used. The book is perfect for an absolute beginner in that way, because it doesn’t just tell you Hey, this is how you write Java code! , but also This is what you can use it for, This is why you should consider doing it this way and Here is how you make sure it works.

When writing my books I try to do the following:
– start with a basic example and build upon it by adding layer on top of another layer of complexity. The idea is to provide a gradual path of learning.
– use analogies to real life objects and events, programming is just another way of modelling the real life. Also, if people can associate what they learn with what they already know, they have better understanding and the knowledge sticks.
– provide wider context. People tend to be more enthusiastic about learning something if they understand the problems that the thing they are learning can solve.

I don’t know if these three principles of mine apply to every student, but I know this works for me. For example, I’ve struggled to learn advanced math because my teachers did not explain what real life problems advanced math solved. A single teacher mentioned at some point that some formula he was presenting us was used to compress data in PNG images, and he had my attention more than the others. I know, I am a very stubborn learner myself and have trouble learning if I don’t have a lot of contexts for how the information can be used, what kind of problems it can solve, or if I cannot link it to knowledge I already have. It might sound selfish, but I wrote this book for younger me, that was just learning Java and struggling with it.

Not sure what else to say about this book, except when I received my copies, I opened one and checked the formatting, read a little bit and felt so proud of my work and the entire team of graphicians and technical and text reviewers from Apress.

That’s about it, if you are just starting to learn Java, give it a shot, and feel free to send me an email to thank me if you found it useful or swear at me if not, but after that tell me exactly why, so I can make the next edition better.

Stay safe, stay happy!

Tags: ,

Nov 18 2021

Friends and readers, I need your help with Amazon (again)

Category: TechnicalIuliana @ 10:16

Guys I need your help. If you know me enough by now, you know I hate doing this, but I must do it.

Not sure what is going on, but my previous book, Pro Spring MVC with WebFlux, has a few 1 star rating on Amazon, on sites in multiple countries without any additional text. This is obviously hurting sales. My project manager at Apress asked me to ask some friends and colleagues to add some better ratings/reviews.

Requests to Amazon to delete those ratings because they have no comment, nor an explanation – so they are either bogus or unfair (or their algorithm requires a default rating to function properly, and this is it) – have been ignored. If they are valid, I don’t even know what their problem with the book is, since they posted no comment; so, I don’t know what to work on to make the next revision better.

I’ve worked with German people, and in my mind, if there are no complains, the book was acceptable, but that is not the case for Amazon. Amazon functions more like a social platform (which I am not fond of) where no ratings is equivalent to bad ratings. (Why couldn’t their default rating be of 5, ffs?)

So, if you’ve bought the book and have an opinion on it, please leave a review with it, even if it is not a 5. I’d be just as thankful for lower valid reviews, that will point the problems in the book that I can tackle in the next revision, than higher ones that are there just because you appreciate me as a person. After all, I want this book to be useful to developers, that is the end game, not the sales. Honestly, I will never be able to live of writing anyway.

I know it is not fair to ask you this, especially since some of you do not use Spring daily, but if you have an Amazon account – with enough spending on it, otherwise you are not allowed to rate and review products – can you help me with a high rating? Preferably a 5, to make for a decent average.

Here are the Amazon pages where my book has a single 1-star review. There might be for other countries, but I am just reluctant to look.

Also, proof that the book is not that bad, in Germany it has a few actual ratings with comments and the bad reviews are related more to the book formatting,  than the contents. The formatting is not (all) my fault, but I will make sure in the next revision this will be handled properly.

Later edit: I am an idiot and I was reading reviews for the previous edition of the book. One reader mentioned it to me and I’ve removed the previous paragraph. However, I do have the book at home, and that formatting is pretty bad. That still stands. :) So, how about some help with those Amazon ratings?

I will tackle the technical complains, you can be sure of that.

Another complain I’ve seen in the reviews is that it is not a beginner’s book. Well, yes, it is not, it says so in the book name(unless PRO does not mean what me and Apress think it means) and in the first chapter, in the text, that thing a book is full of and the one you are supposed to read. 🤦

Thank you in advance for your help. Apress offers the ebook in exchange for your help. If you live in the UK, I can offer an actual book with a dedication; I will send it you and cover the delivery charges. (I am sorry I am limiting this to the UK, but Brexit might have raised delivery charges for the EU; I want that review, but I would prefer not to go bankrupt over it.)

Stay safe, stay happy!


Feb 10 2021

Yes, you do have to prove yourself

Category: Miscellaneous,TechnicalIuliana @ 21:49

I was watching an episode of a random series while cooking yesterday.  And as all recent lazy written series, they were trying to push political correctness on their viewers in a very explicit way. And there was this woman that was training for some job and she was talking to a friend about how some man at her job was always correcting her and she thought that he was doing that because he was a misogynist. And during the talk with her friend, she very vehemently said: I don’t have to prove myself to anyone!.  So, I had to go back a little and understand the context, before writing this article. And sure, there she was, protesting that she had to prove herself to the one training her and making sure she was fit for the job.

You know when you are training for a job and somebody is correcting you or testing you, and you want that damn salary? Well, tough shit,  you actually do have to prove yourself, regardless of gender, color or number of piercings you have.

This reminded me of something one the recruiters the company I work collaborated with said. We were trying for a while to hire people, and the process involves a technical test. Apparently quite a few people were not interested in our company because they did not want to go through our technical test. Apparently, their CVs speak for them.

Continue reading “Yes, you do have to prove yourself”

Dec 21 2020

Christmas give-away It’s done.

Category: TechnicalIuliana @ 0:26

For every book I write Apress sends me five printed books. One of them goes to my parents’ bookcase, because well, I need to keep track of my technical authoring work and the rest I give them to friends or mentees.

This year, because of the pandemic, I have in my house with five 2nd editions of Pivotal Certified Professional Spring Developer Exam. I kept hoping I will get home and give them to the people I was saving them for, but that won’t happen.

I will still keep one of them for my parents’ bookcase and one of the for the person the book is dedicated to, but the other three have to go. So, my darlings, if you live in the UK and want to have your own Pivotal Certified Professional Spring Developer Exam, 2nd edition book, send me an email to iuliana.cosmina@gmail.com with the address to send it to. I’m no super-star, but let me know if you want a dedication and autograph on it.

I’ll take care of the delivery costs, because it is a Christmas present after all, just let me know where it has to go. I know it is pretty late, and you might get it after Christmas, but what can I say, I’ve been known to be slow from time to time.:D

Stay safe, stay happy!

[Later edit]: The reason that only developers from the UK are included in this, is that this is the place I live now. The book is quite heavy and transport costs might outweigh its value , if sent too far away.  In this case it might be worth it to check if Amazon or Apress have a Christmas promotion in your country. Also because of the new very contagious COVID strain international transports (via post) are currently uspended.

I’ve received quite a few emails. I will later this evening pick three people and the books will be sent tomorrow or in the morning of  Wednesday the 23rd.

[Even Later edit]: It’s done guys, the lucky ones have been chosen. I am sorry I don’t have more than three available.

Oct 17 2020

Spring Boot + Docker = Love (or something like that)

Category: TechnicalIuliana @ 16:30

Feel free to open a beer and celebrate this technical entry. I don’t do this often, because I prefer to dedicate my spare time to projects that soothe my soul, like playing the piano. But, I want to improve the structure and capabilities of the project for my future books, so here I am combining my expertise on Spring with my expertise in cloud technologies in a (hopefully) graceful way.

In this entry I am going to show you how to create a simple Spring Boot Web application and deploy it to a Docker container. I will walk you thorugh my process, and assume I am starting with a black slate and install various tools as I need them.

Initial prerequisites:

  • JDK 15 (I usually set the JAVA_HOME environment variable and add $JAVA_HOME/bin to the system path)
  • Gradle 6.5.1(I set the GRADLE_HOME environment variable and add $GRADLE_HOME/bin to the system path). I know Gradle Wrapper exists, but I like having Gradle on my system and managing it with SDKMAN. I am stuck to the 6.5.1 version, since the Palantir plugin does not want to work with more recent versions.
  • IntelliJ IDEA IDE, the best Java editor I’ve worked with so far.

Continue reading “Spring Boot + Docker = Love (or something like that)”

Tags: , , ,

Jun 08 2020

Techie rant

Category: TechnicalIuliana @ 21:17

Do not take this entry seriously. Or do it, I don’t really care right about now.

When I was a young highschool student I saw being a programmer as a very rewarding job, not only financially, but personally as well. I dreamed of all the problems that computers could solve and I wanted to contribute with my brainpower to writing those solutions. So I became a programmer, then I discovered it was cooler to call yourself a software developer, then I figured software engineer describes my expertise better, then software architect and finally I am being called these days a full-stack engineer.

Only I don’t feel like anythign anymore.

I haven’t written code that made use or improved an algorithm in years. So I can’t call myself a programmer anymore.

I haven’t designed or wrote an application from scratch either, and my toy apps that I sometimes write for my technical books do not really count. So I don’t feel like software developer describes me either.

Software engineer? Ha! I barely understand how IPs work most times.

Software architect – I doubt I’ve ever been one.

And I can’t call myself a full-stack engineer, because I should know a lot of things, but every day I feel like I know less than what I need to do my job.

And I hate it. I hate that after six years of studies and more years working in this domain I am reduced to scavanging Google pages and hoping somebody else had the same problem as me and there is a solution that might work for me, prefferably one that I understand.

I love writing code, really, I do. But I’ve been reduced to mixing and matching existing APIs, and hoping that the documentation explains well enough what I need to send to get the correct response.

In IT we used to have a separation of responsabilities. Developers designed and wrote code, sysadmins designed and managed the infrastructure and testers tested the application. It was pretty straightfoward and the sysamin did not care if the code threw a NullPointerException and the developer did not care if the application server could not reach the database. They all solved the problems specific to their piece of evironment. It was pretty niched and it was working fine, well most of the time.

But then Amazon had the wonderful idea of selling VMs. Which is all good and nice until you have an issue and you can’t fucking ssh into it. And some smart ass sysadmin figured out it could automate creation and destruction of VMS. And then some smart developer figured out if a sysadmin could write code to control VMS, so could he. So this is how the DevOps were born.

And then some developer unable to write code that would work on any machine thought: what if I could deliver the environment where my code works? And so Docker entered the picture. And every software developer thought it wasn’t cool to have your code run on your machine, it was cooler to have it in a container. Nevermind that your application only prints a shitty “Hello World!” that you could just write on piece of paper and shove it where the sun don’t shine …

Oh wait where was I? Oh yes, containers. They sound cool and they are… until you cannot fucking ssh into them to figure out what went wrong. And then you discover that the minimal OS of that container image does not support something you need, so there you go, you have to build your own image now.

And then some smart guy thought, what if I made an app that manages containers, and automatically scales them and kills them and then creates some more? This is how Kubernetes was born. And now we all design our applications to be as stateless as possible to allow for containers to be killed and reborn and keep the application online. And now we all use YAML as a fucking programming language. And we store a lot more data than needed in our databases, which are provided as a service, only making Bezos and others richer.

And because configuring how an application should be deployed ends up creating a lot of similar configurations, Helm entered the picture, as a repository for all possible kubernetes deployment configuration templates. It’s like Maven, but for Kubernetes configurations.

And because most applications are so complex they require multiple containers and connecting them is a pain, Istio appeared. And because that is exactly all we needed, more fucking YAML. Because who needs Amazon virtual private clouds and subnets, when you can declare your own for containers … using fucking YAML.

And I’ve just scratched the surface. There are so many technologies that I feel I no longer understand any of them. There are over 150 services running on Amazon AWS that are supposed to help people build applications. But for fuck sake, if I ever have a business idea that requires a web page where people should read about it, I’d rather build an application that runs on a single VM, with with data stored in an RDS Aurora instance and I would keep my business to a decent size to avoid needing all that shit. Why? Because it is a never ending story and it is a long painful trip down the rabbit hole.

Seriosly now, if you ever start a business and you think you need a web page for it, when your business grows it will get more and more expensive to maintain it. And if you hire some consultant company to put it in the cloud, it will feel a lot like this joke:

A young man from Minnesota moves to Florida and goes to a big “everything under one roof” department store looking for a job.

The Manager says, “Do you have any sales experience?”

The kid says “Yeah. I was a salesman back in Minnesota .”

Well, the boss liked the kid and gave him the job.

“You start tomorrow. I’ll come down after we close and see how you did.”

His first day on the job was rough, but he got through it. After the store was locked up, the boss came down.

“How many customers bought something from you today?”

The kid says “One”.

The boss says “Just One? Our sales people average 20 to 30 customers a day. How much was the sale for?”

The kid says “$101, 237.65”.

The boss says “$101,237.65? What the heck did you sell?”

The kid says, “First, I sold him a small fish hook. Then I sold him a medium fishhook. Then I sold him a larger fishhook. Then I sold him a new fishing rod. Then I asked him where he was going fishing and he said down the coast, so I told him he was going to need a boat, so we went down to the boat department and I sold him a twin engine Chris Craft. Then he said he didn’t think his Honda Civic would pull it, so I took him down to the automotive department and sold him that 4×4 Expedition.

” The boss said, “A guy came in here to buy a fish hook and you sold him a BOAT and a TRUCK?”

The kid said “No, the guy came in here to buy tampons for his wife, and I said, ‘Dude, your weekend’s shot, you should go fishing.’ “

After these weeks trying to make sense of why somebody would need all this shit, I totally understand the stay-at-home moms. Because keeping a house and raising kids is hard, but I bet it is more rewarding than this. Because a kid will smile at you and love you even when you are not perfect. But a Kubernetes pod will never fucking work if you messed up a small piece of your configuration.

I really hope one day I will come back to this entry and laugh at myself. But now I feel overwhelmed and bitter and I will stop writing so I can get drunk and cry with my cat in my arms and maybe tomorrow I’ll have enough will power to continue.

Stay safe, stay happy!

Mar 22 2020

Friends and readers, I need your help

Category: TechnicalIuliana @ 14:51

I never thought I would be writing this kind of entry, but here we are. My new book is getting thrashed on Amazon by 5 ratings under five, given by 5 people that could afford to spend more than 50$ on Amazon; because, this is the condition to be allowed to post a review on Amazon. Which makes sense, but it doesn’t mean it’s fair.

I’m not looking for a definite 5 rating for the book and I do not ask for praises that are undeserved. I just want people that actually read the book and found it useful to have a say in it. Which won’t happen on Amazon, unless the people will buy the book from Amazon. Which will make Amazon profit, but Apress and me won’t.

After reading those reviews, I thought that maybe I shoudl stop writing technical books. But then again, it’s just 5 people. And there are many others that liked the book and started shifting my thinking. Maybe the way I write isn’t for everyone, maybe I have trouble expressing some ideas; maybe some people just don’t like the way I write. It’s perfectly normal and expected. But, to trash a book just because you weren’t able to understand it, that’s unfair.

I have tried to read a lot of technical books that people recommended and I ended up just reading the chapter I needed for the topic I had an issue with. Technical books are not always easy to read. I know. But I never went online to trash a book or an author. Especially now, that I am a technical author myself and I know what it takes to write a book and the rewards you get. Which are mostly not financial. I’ve written about how much money I make from my four books before, here.

Also, people are more prone to voice their criticism than praise. I know, I’m Romanian, my people likes to complain, criticize and satirize a lot. I’ve worked for companies where I was doing my job and working extra hours, and I never received a pat on the back. But the first time I made a mistake, my head almost got snapped off. Figuratively, but you get my point.

Like I said, I do not want undeserved praise, but that rating and the comments are unfair. How do I know? Because I have a lot of messages by people adding me on LinkedIn because of my books. When I first started receiving messages from people buying my books I was shocked. I never even considered sending a message to an author, even if I loved their books. These people must have really benefitted from my books to make the effort. I am humbled by their messages and it was a slap in the face. Because I never took the time to say thank you to an author I liked, a mistake which I plan of correcting from now on.

And since we’ve talked so much about the LinkedIn messages, I’m gonna post a few screenshots. I haven’t asked these darlings for their permission so I’m gonna delete their names. But I’ll leave their titles as proof that some of them have enough technical expertise to be taken seriously. Some of the messages are about the previous edition of the book, but still. There are more in Romanian, but I really did not have the time to translate them all. And there are more I did not get to answer to. I asked some of them to help me with a review. Most of them tried and they were blocked by the Amazon rule of being a good spender. There are more, some of them are about my other books, but I’ve taken enough time to write this entry and I do have other things to do.

And then there is this young woman, a student, new to programming and I made sure she gets a copy of my book for free, because she needs it the most. I am almost sure she is not shopping on Amazon too much and she won’t be able to help with a review. But if my book helps her become a better developer and gain confidence in her skills, that is better than any book review.

I owe my own career to some technical authors like Adam Bien, Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, all the authors on Baeldung.com, the guy behind mkyong.com (that sometimes post scode and configurations that do not really work, but he has the right idea and it just points me in the right direction) and all developers confident enough to answer technical questions on stackoverflow.com.  And I feel so proud knowing that for some people, I’ll be in the same list with these guys. I am grateful for each and every line of existing text, code or configuration produced by these guys that helped me become better! But they wouldn’t have been where they are if they would have been brought down by a few bad reviews. So I won’t either.

I would like to end this entry by saying thank you to all of you that have bought my books and that have provided feedback. And if you are kind enough to provide an Amazon review, to try to correct my score there please do so, otherwise just post your reviews on your blogs, write about it on Twitter, send a feedback to Apress, or just leave a comment on my Books page and hopefully Google indexing will take care of the rest.

Thank you again for your support and for the people dissapointed by my books, I am really, really sorry, but if  your negative reviews cause Apress to break up with me and I would stop writing, I’ll never get a chance to make it up to you. Oh well, it is what it is.

Stay safe, stay happy!

[Later edit:] One of the reviews on Amazon says that the book is horrible because the formatting is bad. I have to agree, I don’t like it very much either. I’ll have to check with Apress and see how that can be improved in the future.

Tags: , , ,