• Как мы построили real-time аналитическую платформу, используя Kafka, OpenResty и ClickHouse

    Цікавий підхід з зберіганням кожної метрики в окремій таблиці. На скільки зручно працювати з купою таблиць? І взагалі було б цікаво подивитись на приклад структури.

  • Учим автомобиль парковаться самостоятельно с помощью 500 строк кода

    Дякую, прикольно.
    Але дійшов до сігмоїди і не зрозумів ускладнення, по факту це можна було зробити звичайними умовами по трешхолду з константами, приблизно так

    const lowerBorder = 0.26984
    const upperBorder = 0.3711
    const brainToMuscleSignal = (rbs) => [-1, 1, 0][[rbs <= lowerBorder, rbs >= upperBorder, true].indexOf(true)]
    
  • Чому JavaScript — перспективна мова програмування? Поради початківцям

    Дякую за статтю, для тих хто ще обирає мову мабуть буде корисно.
    Але було б краще розкрити ідеологію JS. Бо причина його бурного росту не тільки в тому, що замкнулось коло між пропозицією розробників, яка веде до збільшення проектів на JS.
    Хейтери дуже часто не розуміють, або недооцінюють, потужність JS який пішов іншим шляхом. І замість об’єктів в ньому з’явились прототипи, вони інші але потужні, якщо зрозуміти що це таке і як працює. Дивна поведінка з доступом до змінних за межами функції дозволяє вирішувати багато практичних задач набагато легше, лаконічніше і елегантніше ніж в інших мовах. Асинхронність вже була з коробки ще тоді, коли інші мови навіть мріяти про неї не могли, а велика кількість варіантів роботи з асинхронністю, це є лише етапи еволюції, в той час як в інших мовах все часто залишається в замороженому стані. По суті, пакетний менеджер в node.js створив революцію, коли легкість створення модулів та продумані прості правила semver вибухово створили купу різного оточення, драйверів та сахару на вколо мови.
    Тому трохи не розумію як люди можуть ненавидіти киць, коли вони їх не готували і не вживали )))

  • Як Machine Learning у BlaBlaCar допомагає водіям знайти пасажирів

    Тут багато запитань, навряд у мене є відповіді на всі )
    Пропозиції можуть з’являтись на різних етапах і вони виглядають дуже звичайно. На скріншоті вище як раз приклад. Можливо частина рекомендацій прив’язана до регіонів, також можливо що ти маєш гарно заповнений профіль і високий рейтинг.

    Навіщо тут ML? — ML це не срібна куля, по суті це боротьба за невеликі відсотки на дуже великих об’ємах. І тут його (ML) досить багато. В даному випадку я розповів про нетривіальний кейс, коли цікавий не результат який віддає модель, але цікаво зрозуміти чому модель дає саме такий результат, і від якої фічи це залежить. Щоб використати це знання в більш тривіальних цілях — наповнити базу с порадами новими порадами. Мені здалось що це може бути цікавим тим хто працює з ML, в інтернетах саме про це не так багато інформації.

    Що до проблем з попутниками, то тут теж не стоять на місці і технології постійно змінюються.
    Як приклад, з’явилась опція Boost, вона намагається самостійно визначити зупинки і прокласти маршрут щоб зібрати як умога більше попутників. Я так розумію що це стало актуально на час карантину, коли було дуже важко кудись дістатись. Цю опцію можна вимкнути, можливо питання з попутником за 70км то до неї? ))) Це теж ML.

  • Як Machine Learning у BlaBlaCar допомагає водіям знайти пасажирів

    Взагалі BBC зіткнувся з цією проблемою лише на пострадянському просторі. На скільки мені відомо ми щомісяця видаляємо величезну кількість таких аккаунтів-спринтерів, але точну цифру не скажу, бо в голові не тримаю.
    Схоже це сама болюча тема і мабуть варто як раз про цю боротьбу написати наступну статтю )))

  • Як Machine Learning у BlaBlaCar допомагає водіям знайти пасажирів

    Вибач, що саме ти очікував від статті? Реально цікаво, щоб наступним разом написати про щось цікавіше.

  • Як Machine Learning у BlaBlaCar допомагає водіям знайти пасажирів

    Що до поїздок, то вони показуються всім без обмежень, але попутник вибирає з ким поїхати.
    ML тут потрібна щоб створити персональні рекомендації для водіїв. Якщо водії виконує ці рекомендації то отримує профіт у вигляді пасажирів, які вирішать поїхати саме з ним.
    А взагалі тут про використання explainable ML, як технології, яка допомогає створити ці рекомендації на основі історичних даних, а не вигадувати рекомендації і мати надію що це спрацює.

  • Підхід GitOps як сучасна практика для CD з Kubernetes

    Як на мене то GitOps ОК лише там де є активна розробка нового проекту або вяла підтримки існуючого. Як тільки проект переходить в стан активної експлуатації з постійною доробкою і переробкою, то починаються проблеми які вирішуються ускладненням різних процесів розробки і все стає не дуже ОК (поріг входу, збільшення часу на розробку та тестування).
    Відчуття що не вистачає винесення тригерів деплоя на більш мануальний рівень (також можливо що я про щось не здогадуюсь, тому все ускладнюю))).

  • Корпоративне навчання, яке працює: три принципи

    Зазвичай це про процеси або технології. Ситуації можуть бути різні. Від особистого росту до рішення команди спробувати щось нове. Наприклад інженер переконав команду що використання монги «прискорить розробку/зробить швидшим сервіс/подолає купу проблем». Потрібно пошарити знання про nosql на всю команду до прийнятного рівня. Без навчання така ініціатива може швидко обернутись на фейл.

    Підтримав: Anna Liashenko
  • Корпоративне навчання, яке працює: три принципи

    Дуже прикольно і мені допомогло дещо розкласти по полицям.
    Єдине, не бачу логіки в відношеннях сприйняття 70/20/10 до витраченого часу 1/2/7. Зрозуміло що практика безпосередньо впливає на досвід. Але на сприйняття теорії і менторство, крім часу, ще впливають якістні характеристики. Тому, після умовно витраченої години на книгу, може бути достатньо 10 хвилин на роз’яснення, щоб у людини в голові все розклалось.

  • Об украинских хактивистах, кибервойне и уязвимостях в госсекторе. Интервью с членом Ukrainian Cyber Alliance Андреем Барановичем

    Идей множество: что можно было бы сделать и для защиты, и для атаки. Это как раз задача общественной организации придумывать такие проекты. Но они лежат в долгом ящике. Сначала разберемся с судом.

    Затягнуті суди та невисунуті обвинувачення це і є інструмент проти волонтерів чи активних людей, щоб зайняти їх виправданням, щоб вони не заважали «комусь» жити спокійно (атакуй, щоб вороги йшли в захист). Сумно.

  • Об украинских хактивистах, кибервойне и уязвимостях в госсекторе. Интервью с членом Ukrainian Cyber Alliance Андреем Барановичем

    Але є левова частина справок заради справок, та роботи заради роботи. І вже ніхто не пам’ятає для чого це робиться, і більше, всі бояться позбутись цього, бо — це відповідальність, яку ніхто не хоче брати на себе, та друга соціальна частина — куди діти всіх тих чиновників та клерків, якщо прибрати ці функції взагалі?

  • Интервью с Tech Lead, который стал гештальт-терапевтом: «Терапия, как хорошее кино, создает эффект присутствия в собственной жизни»

    Маючи менеджерський досвід відчуваю що до багатьох речей дійшов самостійно, але також бачу що дуже багато пробілів та не вистачає психології загалом.
    З чого почати?
    Хто і де проводить такі курси для починаючих цей шлях?

  • Подтвержденные аккаунты на ДОУ

    Досить давно видалив акаунт Linkedln та не планую заводити знов. Чи можна якось підтвердити без Linkedln, наприклад через Github?

    Підтримав: Ульяна Цветкова
  • Ошибки заказчика в разработке сайтов

    Явный пример отсутствия работы с заказчиком.

    Но хочу привести и другой пример, когда сформированое совместно ТЗ в процессе разработки продукта притерпивает изменения со стороны разработчика, потому что неукладывается в срок. И заказчику дется некуда, его тоже сроки жмут, работать надо.

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    В.tt за < input> съелась строчка с div

    <'div class="auto_complete" id="complete_author_auto_complete"><'/div>
  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    Как то совсем обходят стороной технологию Ajax, имею ввиду документацию и туториалы. В частности нашел небольшой пример с использованием Catalyst: Plugin: Prototype. Возможно этот пример кого то побудит к созданию приличного туториала для Catalyst. Для начала добавляем в проект скрипты, это если мы их захотим подгружать статистически:

    ./script/MyApp_create.pl Prototype

    Подключаем плагин в lib/MyApp.pm

    use Catalyst qw/ ... Prototype /;

    в root/какойнить.tt добавляем следующий текст содержащий наше магическое поле ввода, предположим это строка ввода отражающая «автора» чего нибудь

    <form> [% c.prototype.define_javascript_functions # Добавляем необходимые скрипты %] [% c.prototype.auto_complete_stylesheet # и стили для организации выпадающего списка %] <input autocomplete="off" id="complete_author" name="complete_author" type="text">
    [% url = base _ 'proto/suggest' %] [% c.prototype.auto_complete_field( 'complete_author', { url => url } ) %] </form>

    Создаем контролер, к которому будем обращаться за списком

    ./script/test_create.pl Controller Proto

    в lib/MyApp/Controller/Proto.pm создаем обработчик запроса по первым введенным символам в наше поле. На основании введенной последовательности создается запрос like к нашей базе данных и формируется список. Список передается браузеру для формирования выпадающего списка.

    sub suggest : Local { my ( $self, $c ) = @_; my $complete_author = $c->req->params->{complete_author}; my @suggestions; my $rs = $c->model('DBIC::Journal')->search({ author => { 'like' => $complete_author . '%' }}); while (my $row = $rs->next) { push(@suggestions, $row->author); } $c->res->body($c->prototype->auto_complete_result(\@suggestions)); }

    вуаля, вводим первые символы и выпадающий список предлагает нам найденные в базе варианты, магия аля google-поиск стала доступна!

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    Может мои пять копеек и не кмест, но у меня заработало под apache2 с FastCGI

    <VirtualHost myhost:80>ServerName myhostErrorLog /var/log/apache2/myhost-error_logCustomLog /var/log/apache2/myhost-access_log commonDocumentRoot "/var/www/myapp/root"Alias /static /var/www/myapp/root/staticFastCgiServer /var/www/myapp/script/budget_fastcgi.pl -processes 3Alias / /var/www/myapp/script/budget_fastcgi.pl/<Directory "/var/www/myapp/root">Order allow,denyAllow from all</Directory><Directory "/var/www/myapp/script">Order allow,denyAllow from all</Directory></VirtualHost>

    но есть одна проблемма, myapp_fastcgi.pl вывод (stderr) перенаправляет в ErrorLog. Как бы отключить засерание лога, но покрасивее.

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    ларчик просто открывается -разобрался как убрать дебаг-информацию при запуске myapp_fastcgi.plнеобходимо из lib/myapp.pm удалить -Debug

  • Catalyst — Perl веб-фреймворк в лучших традициях MVC

    шарясь по интернет много нелестного прочитал про плагин Unicode, но без конкретики. Прикрутив к своему проекту I18N (интернационализацию) столкнулся с проблемой двойного перекодирования шаблона в случае русской локали (возможно это связано с локалью системы по умолчанию). выглядит это так — в конфиге:

    # Currently supported locales<localization>    en English    ru Русский    uk Українська</localization>

    далее TT шаблон из конфига создает симпатичную менюшку наподобии wikipedia. Да вот незадача, когда нахожусь в ru-локале получаю двойное кодирование шаблона в utf-8. страдает только эта самая менюшка. Пока запускал через app_server.pl, возможно апач это выличит, но глюк налицо. Может кто сталкивался?

← Сtrl 12 Ctrl →