Tue, Feb 14, 2017
Aerobatic.io enticed me to use their free offer for static website hosting and, after days of struggling with their service to set things up, their suddently changed the offer to $15 a month for the same ($180 a year). Whereas I can understand business triggers behind this decision, I just can say I wasted a lot of time because of them. $180 for static website hosting is more than 10x more expensive than the competition. In the article below I’ll show how to get the same (and a lot more) for just $10.
Sun, Jan 22, 2017
The most of project management methods assume projects in the project stage, what means for me this happy time of development, when you just have requirements, deadlines and team and you can slice time into iterations and play. You can use different project management methodologies and different approaches of branches management (like Trunk Based or Feature Branch) and finally come to conclusion that with a good team you can effectively get it done in whatever you’ve currently chosen.
Going to production changes the game, though. In my opinion a lot of project management tools are focused only on the project stage and don’t really support production stage. On the other hand techniques related to branches management seem to fight agains each other for being the best and only reasonable. I personally don’t believe in this. Here I’d like to show our development process in mature web application. Especially how we can mix different branching approaches with our favourite ticketing tool YouTrack to have a successful development process.
Wed, Aug 3, 2016
I recently think about CQRS-like patterns we partially used in current application, and pros’n’cons of migrating more towards full CQRS, which is mostly about separating reads from writes. Previously I assumed that in usual application “we may have probably 100 times more reads than writes”, what would qualify to have a value from these two models separation. I wanted to check it later on the production, but I forgot. Now we are close to start a big redesign of the whole application, and I’ve just remembered about that.
Sat, Sep 19, 2015
This article will be about multiple joins in Hibernate model during super class fetch in JOINED inheritance mapping strategy, and generally how I significantly improved our system performance using some simple patterns. There’s a lot of stuff on internet about this (usually wrong approach), so here I’ll present my working solution for this problem.
Fri, Aug 28, 2015
Few days ago I was asked to implement charts with some finance data using JS charting library, in the application working on Postgres database. There’s a lot of finance stuff in the database stored every minute and I just needed to show this data on charts.
OK, but charts are nice if you can restrict amount of your data returned from the server to some limited number of items. Returning 1000 items would both - make chart very heavy and unreadable and consume a lot of net traffic. I assumed 50 as the average number of items that are nicely displayed on such charts and are also acceptable from the traffic point of view.
Sun, Jul 26, 2015
It’s well known how ui-bootstrap supports modal windows. These modals don’t have any URL and cannot be accessed by URL, though. This is very good, because they should stay as the main view subview only, don’t mess with the browser history and first and foremost they shouldn’t kill underlying main view controller, what would reset its current state (like filters applied, pagination, etc). This would be a problem using URL-based modals, especially with ui-router which seems to be a standard for now.
Sat, Jun 20, 2015
This catching title will be not about distributed hibernate search, but something really close :)
The case I’ve recently solved was a quite different. I have a frontend application that uses hibernate database and hibernate search, and then I needed to add additional application - let’s call it an integration server, which exposes some API webservices for the overall system. Integration server uses the same database as the frontend application, and enables clients to put data to the database using its webservices. Both applications exist on two different physical servers, as well.
Thu, Dec 25, 2014
In previous BIRT versions there were three ways to use BIRT with your Hibernate datasource:
- Just plain SQL on Hibernate database.
- Scripting data source.
- Hibernate ODA data source.
Mon, Oct 27, 2014
In the current project we faced the problem of concurrent changes to database, for the data that should be accessed sequentially. Imagine you have the customer’s bank account where he can withdraw the money. If the customer is not a person, but company, and if he can have multiple users accessing the bank application, without any locks there’s a chance for situation where two or more users depute transfers, that exceed the account balance, but because data is accessed concurrently, they both can make payoff.
Sun, Sep 21, 2014
It is a common case in AngularJS to have some model loaded on the main view (like list of objects) and to use these objects in other controllers (like the object details view). Usually it’s done by holding the reference of the list object in other controller scope, to interact with this reference. Until these both objects point to each other (both references point to the same object) it’s very fine. The changes from the details controller are reflected in a list and contrarywise.
But I frequently come across the situation where at least one of these objects is refreshed from the server (eg. in async comet event) and this relationship is lost. A lot of case-by-case code is required to be written to support such instances on the client side.