Home » Author Archives: Bozhidar Bozhanov (page 5)

Author Archives: Bozhidar Bozhanov

Bozhidar Bozhanov
Senior Java developer, one of the top stackoverflow users, fluent with Java and Java technology stacks - Spring, JPA, JavaEE, as well as Android, Scala and any framework you throw at him. creator of Computoser - an algorithmic music composer. Worked on telecom projects, e-government and large-scale online recruitment and navigation platforms.

We Don’t Need That Documentation

software-development-2-logo

“We must write more documentation”. Have you heard that? I have, many times in many companies. Most people feel guilty for not writing documentation and agree. I don’t. There are two types of documentation – in-code and external. In-code documentation consists of javadoc (or whatever language/tool you are using to describe what classes and their methods do) and comments. External ...

Read More »

Not an Expert in All Levels of Abstraction

software-development-2-logo

Programming is not just writing code – it is working with a huge pile of abstractions. Starting from zeroes and ones, through processor instructions, memory addresses, low-level network protocols, data structures, up to web services, component frameworks and user interface. From low-level, often tedious stuff, to more pleasant to use and maintain stuff. We are categorized as “senior developers”. Which, ...

Read More »

Login Tokens In Email Links

software-development-2-logo

Your system is probably sending some emails. Sometimes these emails contain links to the public part of the site, sometimes they have links to the authentication-protected part. Either way, if the email is sent to registered users (as opposed to just subscribed emails) you should not make the user type in username and password. Even if it’s the public part ...

Read More »

Augmenting 3rd-Party Libraries

software-development-2-logo

For every project I’ve participated in, there has been a need for augmenting some third-party library. A couple of reasons: there’s a bug there’s missing functionality there’s functionality that doesn’t work as you need it to What do you do in these cases? Obviously, you report the problem or even suggest a fix. But until that goes into the next ...

Read More »

How To Accept Bitcoin Payments

software-development-2-logo

Bitcoin is gaining popularity, and last week I decided to implement it as a payment option for my computer-generated music service. Why I decided to do that is detailed here (payment is only needed for commercial use of the music), but here I’ll share the technical details for implementing the bitcoin integration. First, you need to pick a payment gateway/provider. ...

Read More »

Caveats With MySQL Pagination

mysql-logo

We’ve all done pagination – it’s sensible for both lists in the UI and for processing data in batches. “SELECT (columns) FROM table LIMIT X, Y”. Possibly “SELECT (columns) FROM table ORDER BY some_column LIMIT X, Y”. What’s the caveat? Especially when working with an ORM and when processing batches, where order doesn’t matter, you are likely to omit the ...

Read More »

Be Careful With Cache Managers

java-interview-questions-answers

If you are using spring and JPA, it is very likely that you utilize ehcache (or another cache provider). And you do that in two separate scenarios: JPA 2nd level cache and spring method caching. When you configure your application, you normally set the 2nd level cache provider of your JPA provider (hibernate, in my case) and you also configure ...

Read More »

What Is Challenging For Developers?

software-development-2-logo

In a previous post of mine I asked the question: do programmers get bored? And yes, sometimes they do, especially if there are no challenges. The usual software project out there is trivial – implementing business case after business case. But programmers still find challenges even in the trivial applications and websites they are writing:           ...

Read More »

A Guide To Authenticating Users With Mozilla Persona

mozilla-persona-logo

Having only twitter and facebook authentication so far, I decided to add Mozilla Persona to the list for my latest project (computoser, computer-generated music). Why?                 I like trying new things Storing passwords is a tough process, and even though I know how to do it, and even have most of the code ...

Read More »

Not All Optimization Is Premature

software-development-2-logo

The other day the reddit community discarded my advice for switching from text-based to binary serialization formats. It was labeled “premature optimization”. I’ll zoom out of the particular case, and discuss why not all optimization is premature. Everyone has heard of Donald Knuth’s phrase “[..] premature optimization is the root of all evil”. And as with every well-known phrase, this ...

Read More »
Do you want to know how to develop your skillset and become a ...

Subscribe to our newsletter to start Rocking right now!

To get you started we give you our best selling eBooks for FREE!
Get ready to Rock!
To download the books, please verify your email address by following the instructions found on the email we just sent you.

THANK YOU!

Close