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.
Other
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.
Presentation “kotlin 101 by example” @ Gran Canaria
Recently I had a talk at event organised by Google Developer Group community at lovely island Gran Canaria, Spain
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.
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
Типичный REST серевер на nodejs
Для человека уставшего от многословности, тяжеловестности и вязкости/неповоротливости существующих общепринятых платформ nodejs с coffeescript выглядит просто глотком свежего воздуха.
Динамическая типизация, милион библиотек на каждый чих, приятный python-подобный синтаксис, очень лаконичные конструкции - все это хорошо, пока проект не вырос до 10 строк кода. Дальше начинается болезненная организация кода. А для людей избалованной статической типизацией и fail-fast на определённом месте мир с розовыми пони превращается в ад, в котором если не протестировал каждую строчку - не мужик.
Kotlin: джависты, завидуйте
Около года назад, в подкасте радио-т я впервые услышал о инициативе JetBrains, новом языке программирования kotlin. С тех пор внимательно слежу за его развитием.
Они позиционируют котлин как "better java" и, надо сказать, у это получается. Это статический типизированный, язык со вшитой nullable-проверкой Так же он поддерживает функции высшего порядка(замыкания), extension functions и trait. Может немного напоминать scala - но, достаточно далеко от неё.
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
Проект: GeoChat
nodejs: mysql-libmysqlclient и русские буквы
При работе с библиотекой mysql для ноды(уверен это будет с любой либой) возникает маленькая проблемка - ываывÐ. Это всё из-за кодировки в которой по умолчанию работает сервер базы данных.