Project Update: PronounceMe – implementation details

I have several post about the PronounceMe project experiments - automatic video and voice generator for English learners. If you missed previous posts please review #pronounceMe for more information about the project, ideas behind and some statistics. In this post I'd focus on the technical implementation with some diagrams and noticeable code snippets.

Read moreProject Update: PronounceMe – implementation details

JavaScript vs logic

In programming world we are working with logic. Everything relies on it, it's a fundamental part of computers.

If we do 3+4 we always expect to get 7. Call to createDatabase shall not destroy database. As experience grows developer grasps more and more concepts and approaches because of the past experience and logic. It's very important part of programming ecosystem which helps to grow skill set without getting another Masters degree or attending classes/courses

People ended up with very common concepts and gave them names - algorithms, design patterns, data types, naming conventions.

Read moreJavaScript vs logic

RPI Zero scan button

While I was finishing wireless scanner and printer server I realised that traditional document scanning approach is not so nice from UX point of view.

I really like the way office scanners in multi-functional devices work. Normally if you want to scan you just load stack of paper into and put your email address. Scanner does the rest and in minute you'll get ready-to-use pdf file in your inbox.

I was thinking about having button attached to RPI Zero which initiates scanning and document upload.

Read moreRPI Zero scan button

ML: Predict sequence of values

Let's say we have nice a line built up of two damped oscillators as it displayed on the picture.

What if I say it's possible to predict 700 values of this line using just:

  • 30 data points for feeding neural network(which is just half-period)
  • using just two fully-connected layers (hence it's not deep network)
  • having just three neurons in whole network

Read moreML: Predict sequence of values

Типичный REST серевер на nodejs

wow-dog
Для человека уставшего от многословности, тяжеловестности и вязкости/неповоротливости существующих общепринятых платформ nodejs с coffeescript выглядит просто глотком свежего воздуха.

Динамическая типизация, милион библиотек на каждый чих, приятный python-подобный синтаксис, очень лаконичные конструкции - все это хорошо, пока проект не вырос до 10 строк кода. Дальше начинается болезненная организация кода. А для людей избалованной статической типизацией и fail-fast на определённом месте мир с розовыми пони превращается в ад, в котором если не протестировал каждую строчку - не мужик.

Read moreТипичный REST серевер на nodejs

Kotlin: джависты, завидуйте

Около года назад, в подкасте радио-т я впервые услышал о инициативе JetBrains, новом языке программирования kotlin. С тех пор внимательно слежу за его развитием.
Они позиционируют котлин как "better java" и, надо сказать, у это получается. Это статический типизированный, язык со вшитой nullable-проверкой Так же он поддерживает функции высшего порядка(замыкания), extension functions и trait. Может немного напоминать scala - но, достаточно далеко от неё.

Read moreKotlin: джависты, завидуйте

Groovy: java слишком проста

Возьмём довольно частую задачку: есть несколько значений первой переменной, нужно сделать присвоить второй переменной какое-то значение, в зависимости от первой переменной, т.е. value mapping.

В джаве это делается примерно так:


String alertClass = "";
switch(code.toUpperCase().charAt(0)) {
case 'U':
alertClass = "alert";
break;
case 'P':
alertClass = "alert-error";
break;
case 'B':
alertClass = "alert-warning";
break;
case 'C':
alertClass = "alert-info";
break;
}
// now alertClass has value

Read moreGroovy: java слишком проста

Проект: GeoChat


Долгое время я со своей некогда командой разрабатывал несколько геолокационных приложений. Ага, это были стартапы. Сейчас не хочу даваться в подробности провала, по крайней мере покачто. Ближнее окружение в курсе, а остальным не очень то и нужно знать :)

Read moreПроект: GeoChat

nodejs: mysql-libmysqlclient и русские буквы

При работе с библиотекой mysql для ноды(уверен это будет с любой либой) возникает маленькая проблемка - ываывÐ. Это всё из-за кодировки в которой по умолчанию работает сервер базы данных.

Как исправить?

Read morenodejs: mysql-libmysqlclient и русские буквы