I'm looking for a part-time remote job.

Hire me


I'm the author of:

Mastering Redmine is a comprehensive guide with tips, tricks and best practices, and an easy-to-learn structure.

Check the book's project or

Buy the book

Social pages of the book:

By buying this book you also donate to Redmine (see this page).


Follow me:

Expertise

Tizen development nightmare (part 1)

Added by 5 days ago

I need to have a specific tool on my smartphone for my personal needs. As I did not find any such existing tool, I decided to develop it. My smartphone, an old Samsung Z1, is based on Tizen OS (it’s, actually, the very first Tizen smartphone), so I downloaded Tizen Studio 2.4 and started the journey.

Why Tizen? I hate Apple and Microsoft for their attempts to kill Linux and I just don’t like Java as a programming language. If Tizen dies, I’ll move to SailfishOS or PureOS — iOS, Android and Windows Phone are not options for me.

More »

4-byte UTF-8 problem in Redmine and how to fix it

Added by 5 months ago

I’ll start with explaining the cause of the problem. If you don’t need this, you can skip the padded paragraphs.

You have probably already heard about issues with weird symbols in iPhones, that led to freeze or reboot? Something like these can also be experienced on Redmine instances, that were installed some time ago. iPhones crash because they fail to render the weird symbols and such Redmine instances give errors because they fail to save corresponding symbols to the database. Yes, the problem is actually in the underlying MySQL database, not in Redmine. In iPhones this happens with some unusual 4-byte unicode symbols and in Redmine/MySQL this can happen with any 4-byte symbol. Thus, you can experience this issue in Redmine with emoji, some Chinese, Japanese and Korean characters.

More »

Adding GitHub mirror for SVN repository

Added by 8 months ago

I store code of my projects in Subversion repositories on this server (on which this website is hosted). I thought about switching to GitHub, but I don’t like the idea, that the main code repository of my project would be stored on a third-party server. Not sure why. Also, I didn’t want to lose the ability to count downloads and checkouts (I use these data to determine popularity of projects), but I have already lost this, as many my projects got forks. Anyway, the reason is not such important for this article, as you can have own reasons for the same.

GitHub is the most popular project hosting service nowadays. Due to this many developers, who want to make some changes to my projects, upload their forks to this service. Actually, these projects include not only my code – if someone submits a patch, which fixes some issue or implements some feature and which is good enough (in my opinion), I usually merge it (making a note in CREDITS file). Forks on GitHub can have such changes too, but, because they are not linked to the original projects in any way, I often do not know about their existence. So, to include such changes I need to search for forks (what I did recently). Needless to say, that this would be much easier – in particular due to GitHub’s social networking capabilities – if these forks were linked to my projects. But for this, I would need to host my code repositories on GitHub.

More »

ownCloud-based backup solution (1 comment)

Added by 11 months ago

Making everyday backups, while the data remain safe for years, may seem to be redundant and needless. Therefore, people realize, how stupid it was not to have backups, only when their data get lost (it happened to me too, quite a long time ago). However, backing up does not have to be a dull process. It can serve other purposes too…

In this article, I’m going to share the solution, that I personally use to back up this site. When looking for it, I wanted it to meet the following requirements:

More »

Kayako API resource presentation

Added by 1 year ago

There are two ways, in which you can design your API – you can create it for applications or you can create it for users. Historically, APIs were created for applications, what, I believe, was wrong. Your API is another your service, so it should be as friendly to the end user as possible, just like your normal services. And, it’s the user (e.g., a developer), that uses your API, not an application, that he/she is possibly writing (thus, some users can use your API through command-line CURL).

This is the approach, which is propagated by such famous API designers as Apigee and which was also taken by Kayako, when we were designing our API. And, that’s why we decided to use the current approach for the partial output, which we implemented with the help of the special fields= argument, that should be specified in the request URI.

More »

Mastering Redmine: Upgrading to Redmine 3.3 (from 3.2)

Added by 2 years ago

As you can read in the book, I decided to store the Redmine code for the book’s project in the directory /opt/redmine/redmine-x.y.z, where x.y.z is the version number. I chose such location to be able to easily switch back to the previous version of Redmine in a case of upgrade failure.

However, such approach introduced a need to copy all the user and state data, such as logs, from the old version to the new one during the upgrade. And, there are quite a lot of such data. So, to simplify this process, I decided to modify the Redmine file structure a little.

More »

Review of Qr-Cam 601H (YNKJDV 811 WIFI)

Added by 3 years ago

Recently, I got a chinese mini Wi-Fi camera, that was described as H.264 HD 1920×1080. I chose this model as it looked to be easy to mount (due to the form of a pin), independent (does not have to be near a PC or a network socket), mobile (can be easily moved to a different location) and small. It would be quite a good device (for its price), but it appeared to be too unstable. Also, it comes with an awful documentation and too little of information about its capabilities, even in Internet.

I expected to see the name of the manufacturer and the model on the package box or on the device itself, but was not able to do this. In other words, there was nothing, that identified the camera, except its form! Moreover, the package did not include even a document, that would explain, how to use it. However, the box had two QR codes – one for the iOS app and another one for the Android app. So, that’s how I was able to locate websites of (I assume) the embedded software developer (www.qr-cam.com) and (aslo assume) the manufacturer (www.ynkjdv.com). Eventually, the former helped me to find out the rest. By the way, the manufacturer declares its model as 811 WIFI, while the embedded software developer claims, that it (the “modal”, see below) is 601H. So, generally, it looks like the device has two brands and two models – YNKJDV 811 WIFI and Qr-Cam 601H.

More »

Orangutan: Jibo – a bot’s embodiment?

Added by 3 years ago

The idea of bots is such popular due to the natural style of interaction. As it’s nice to be able to speak to a machine in a human-like manner (i.e., not through buttons and so on). And it’s also quite exciting to get the answer in a similar way (i.e., through speaking). For this reason we have Jabber bots, IRC bots, console bots (e.g., Emacs’ doctor), voice bots (e.g., Siri), and many more. Nevertheless, the concept of such bots is apparently incomplete as they can’t fully imitate the behavior of humans! In particular, the text messages just can’t express emotions (in a convenient way). To be able to do this bots would need bodies – e.g. eyes for users to look into, faces to express feelings, etc.

More »

Redmine › WikiNG: Three ways to add custom HTML content to Wiki in Redmine

Added by 4 years ago

It’s absolutely common for a Redmine user to ask: How do I add custom HTML code to the Wiki content? Here by Wiki content users usually mean not just a Wiki page, as in Redmine a Wiki syntax enabled content is used everywhere (well, almost) – in project description, in issue description, in news, in comments, and so on. Anyway, normally, for Redmine such inquisitive persons get quick and definite answer: There is no way!..

As this is a common question, certainly, I used to ask it too. But, as I’m a Redmine plugin developer, I was able to “give” a different answer… Depending on the features, I developed, I used to implement some capabilities for embeding custom HTML code into different places of Redmine interface. There were no plan or design – I just implemented, what I thought at that moment can be reasonable and needful. Only after implementing those things I realized, that in several my plugins I implemented almost the same feature – the possibility to embed custom HTML code into the Wiki content. Luckily it was implemented in different ways…

To be more precise this was done in two my plugins – in Hooks Manager and in WikiNG. As some of these features are not foremost and, therefore, can be unnoticed and as the feature is commonly asked, I decided to describe its implementations in this article.

More »

1 2 (1-10/14)

Also available in: Atom