Developers Club geek daily blog

Transition from SQL to NoSQL: experience of the SMEV 2.0 project

2 years, 3 months ago
In recent years NoSQL and BigData became very popular in the IT industry, and on the basis of NoSQL thousands of projects are successfully implemented. Often at different conferences and forums listeners ask question how to upgrade or transfer old systems (legacy) to NoSQL. Fortunately, we had experience of transition from SQL to NoSQL in the large project of SMEV 2.0 about which I also will tell under cat.


Read more »


12 typical errors at backup of databases

2 years, 3 months ago

Initially this article reflected only for developers and Firebird database administrators, but after communication with administrators of other DB it has become clear that the majority of errors the general, and step on very similar rake literally everything. If you can add something to this list (even if specific to specific DBMS), write to personal mail or in comments.

Our company is engaged in instruments of recovery, backup, optimization and support of the DBMS (in the main Firebird, but there is also MSSQL, PostgreSQL, InterBase, etc.) and as result of numerous audits and repairs, has saved up collection of the errors connected with backup. All points are stated based on real cases with damage of bases, loss and damage of backups, disks, failures of servers, and other "pleasures" of database administrators below.

It would be desirable to tell about them that administrators and developers could change the approaches to management of backups and warn possible problems.

So, we will start.

Read more »


PHP and OData: we change from bicycles to technology from Microsoft

2 years, 3 months ago
Now it is fashionable to do API and many of us already implemented some API for PHP. One of problems of REST API — to give data sets that finally to display them in tabular look. For this purpose, in addition, it is necessary to solve such problems:

  • to provalidirovat request,
  • to filter data,
  • to sort data,
  • to request and give not all columns, but only some,
  • to implement pagination.

I do not know as you, but I see that often it becomes bicycle solutions. Tasks in appearance not difficult but that to solve them qualitatively, colleagues should spend a lot of time for development, documentation and explanations as your invention works. I will tell how it is possible to implement these tasks very technologically by means of OData.

image

Read more »


Free seminar on the big Firebird databases

2 years, 4 months ago

Firebird Project and the IBSurgeon (IBase.ru) company invite administrators and the Firebird SQL developers working with big DB to free seminar. The seminar will take place on October 21, 2015 in Moscow. Participation in seminar requires the invitation — see below.

Short subjects of seminar:

Read more »


Updating of the Russian documentation on Firebird 2.5 and beta of documentation on Firebird 3.0

2 years, 4 months ago
Many of dear readers of Habr who are interested in Firebird know that last year there was documentation on the Firebird SQL language in version 2.5 Russian. Creation of documentation was sponsored by the Moscow Exchange (yes, that, about ruble exchange rate on which we hear every day) — as the platinum sponsor and one of the largest users of Firebird in Russia, and the IBSurgeon/IBase company representing Firebird in Russia.

But on it work has not ended:

Read more »


Isn't it time for relational databases on ash heap of history?

2 years, 4 months ago
Hello, my name is Dmitry Karlovsky and I … the anti-conformist, that is the person who does not hold the habits and is always ready to change them if in that there is need. For example, as well as many developers, I began studying of databases with the relational. Though the relational algebra is also quite beautiful in the simplicity, I constantly caught myself on thought that I try to push round figure into square opening and it turned out somehow not hermetically.



No, I will not tell you about MongoDB or still what defective "the murderer of SQL". Of articles on "SQL vs NoSQL" comparing actually relational DBMS with document and it is so full:


But the majority of them has fatal shortcoming — authors simply it is not aware that data models in the DBMS there are much more, than two mentioned: from highly specialized "dictionaries", universal "graphs". And popular "relational" and "document" are only somewhere on the middle between universality and spetsializirovannost.

Let's compare typical representatives of the mentioned DBMS types (from bigger to smaller).

  • Popularity: Oracle, MongoDB, Redis, HBase, OrientDB.
  • Functionality: OrientDB, Oracle, MongoDB, HBase, Redis.
  • Speed: very strongly depends on task, data and implementation of application. I have reviewed heap of benchmarks, all on miscellaneous everywhere.

Read more »


Snaql. Raw SQL in Python-projects

2 years, 4 months ago
In the last year I had had new rule — each 3 months to learn modern language of programming and its ecosystem. On it there are some reasons: new paradigms, concepts, tools and it is simply interesting that there, on that party of Python which has set over the years the teeth on edge. This simple rule has allowed to study modern hipstersky Go, Clojure and Rust for the current year, to like their ideas and best practices that, by the way, very positively influences style and quality of code when I write in the main language.

Considering Luminus stack, I have come across on simple and at the same time smart, on my taste, Yesql library for the organization of SQL queries in the project on Clojure and I have not seen something similar for Python (can badly looked for). Idea of this library simple — do not take yourself for a ride, use normal SQL queries, you have possibility of naming of these requests and maping on the corresponding dynamic functions. All this looks as set of micro templates with SQL and their render on some context. Simply, effectively, I want such at myself in the project on Python.

Read more »


Refactoring of schemes of databases

2 years, 4 months ago
I want to tell about refactoring of schemes of the MS SQL Server databases.

Refactoring — the change in inner pattern of the software aiming to facilitate understanding of its work and to simplify modification, without affecting observed behavior.
— Martin Fowler

Speak about refactoring of code for a long time. At the moment a lot of literature is written, the set of the tools helping to execute refactoring of code is created.
And here about refactoring of schemes of databases not so there is a lot of information. I have decided to meet a little this lack and to share the experience.

Read more »


IBM Cognos BI and QlikView with what to begin to the curious?

2 years, 4 months ago
image

Some time ago I have written article in which relatively has briefly described mechanics of work with BI as systems on the example of IBM Cognos BI. I have decided to develop a little subject, and to make peculiar "comparison" of analytical products of IBM Cognos and QlikView.
It is impossible to call material of the publication comparison, it is more instruction "with what to begin?". I will show as to make rather simple report 2 tools — IBM Cognos BI and QlikView, and you already solve what of them suits you more (or does not approach).
Material of article will be stated in the form of combination a little text and many video (fans to esteem can descend in article about IBM Cognos BI). I hope that such way of the report of information will be convenient and will reduce material creation time

Read more »


SQL Insert Injection в одном интернет магазине

2 years, 5 months ago

Давно на Хабре не звучали истории про SQL injection. А уж рассказов из жизни про SQL INSERT injection вообще очень мало. Поэтому расскажу свою.
Лирическое вступление
Лирическое вступление

Всё началось с моего желания купить себе нечто недешёвое в разборном виде в интернет-магазине A.B.ru фирмы B. После оформления, связи с менеджером по электронной почте, получения посылки и обзора её содержимого оказалось, что некоторых метизов очень не хватает. Полного перечня всего необходимого не было, лишь список болтов, гаек и шайб. Я начал сборку, дойдя до того места, где без отсутствующих болтов уже никак не обойтись. Поэтому мною было скурпулёзно составлено описание не найденных метизов и выслано электронным письмом той же девушке-менеджеру, с которой мы общались. К чести магазина стоит сказать, что практически всё необходимое было выслано второй посылкой. Поэтому я начал сборку, загоняя в дальний угол своего разума опасения о том, что может отсутствовать что-то ещё. Но, дойдя до финишной прямой, оказалось, что примерно 1/4-ой часть устройства не хватает в принципе, судя по фотографиям из руководства и здравому смыслу. Поэтому за первым письмом о недокомплекте последовало второе, куда более обширное, а сборка отложена.
Когда прошла вторая неделя ожидания, мне удалось убедить себя в том, что девушка-менеджер вышла в отпуск. Поэтому я переслал ей письмо двухнедельной давности ещё раз и перешёл к поиску других каналов электронной связи — очень уж не хотелось звонить в Москву. В первую очередь тоже самое письмо было отправлено на общий эл-адрес A@B.ru, на что был получен мгновенный ответ: почтовый сервер отказывается принимать письмо из-за переполненного ящика получателя <мужик>@B.ru. Тогда была найдена форма обратной связи на сайте — последняя ниточка соединяющая меня на текущий момент с интернет-магазином. В первую очередь я описал проблему переполненного почтового ящика и вставил сообщение об отказе доставить письмо, которое содержало в себе одинарные кавычки…

Начало

На попытку отправить отчёт об ошибке через форму обратной связи, на пару секунд на странице появилась ошибка, в которой угадывался голос MySQL. Поэтому я открыл консоль браузера, повторил запрос и заглянул в ответ сервера:

Read more »