Дякую, прикольно.
Але дійшов до сігмоїди і не зрозумів ускладнення, по факту це можна було зробити звичайними умовами по трешхолду з константами, приблизно так
const lowerBorder = 0.26984 const upperBorder = 0.3711 const brainToMuscleSignal = (rbs) => [-1, 1, 0][[rbs <= lowerBorder, rbs >= upperBorder, true].indexOf(true)]
Дякую за статтю, для тих хто ще обирає мову мабуть буде корисно.
Але було б краще розкрити ідеологію JS. Бо причина його бурного росту не тільки в тому, що замкнулось коло між пропозицією розробників, яка веде до збільшення проектів на JS.
Хейтери дуже часто не розуміють, або недооцінюють, потужність JS який пішов іншим шляхом. І замість об’єктів в ньому з’явились прототипи, вони інші але потужні, якщо зрозуміти що це таке і як працює. Дивна поведінка з доступом до змінних за межами функції дозволяє вирішувати багато практичних задач набагато легше, лаконічніше і елегантніше ніж в інших мовах. Асинхронність вже була з коробки ще тоді, коли інші мови навіть мріяти про неї не могли, а велика кількість варіантів роботи з асинхронністю, це є лише етапи еволюції, в той час як в інших мовах все часто залишається в замороженому стані. По суті, пакетний менеджер в node.js створив революцію, коли легкість створення модулів та продумані прості правила semver вибухово створили купу різного оточення, драйверів та сахару на вколо мови.
Тому трохи не розумію як люди можуть ненавидіти киць, коли вони їх не готували і не вживали )))
Тут багато запитань, навряд у мене є відповіді на всі )
Пропозиції можуть з’являтись на різних етапах і вони виглядають дуже звичайно. На скріншоті вище як раз приклад. Можливо частина рекомендацій прив’язана до регіонів, також можливо що ти маєш гарно заповнений профіль і високий рейтинг.
Навіщо тут ML? — ML це не срібна куля, по суті це боротьба за невеликі відсотки на дуже великих об’ємах. І тут його (ML) досить багато. В даному випадку я розповів про нетривіальний кейс, коли цікавий не результат який віддає модель, але цікаво зрозуміти чому модель дає саме такий результат, і від якої фічи це залежить. Щоб використати це знання в більш тривіальних цілях — наповнити базу с порадами новими порадами. Мені здалось що це може бути цікавим тим хто працює з ML, в інтернетах саме про це не так багато інформації.
Що до проблем з попутниками, то тут теж не стоять на місці і технології постійно змінюються.
Як приклад, з’явилась опція Boost, вона намагається самостійно визначити зупинки і прокласти маршрут щоб зібрати як умога більше попутників. Я так розумію що це стало актуально на час карантину, коли було дуже важко кудись дістатись. Цю опцію можна вимкнути, можливо питання з попутником за 70км то до неї? ))) Це теж ML.
Взагалі BBC зіткнувся з цією проблемою лише на пострадянському просторі. На скільки мені відомо ми щомісяця видаляємо величезну кількість таких аккаунтів-спринтерів, але точну цифру не скажу, бо в голові не тримаю.
Схоже це сама болюча тема і мабуть варто як раз про цю боротьбу написати наступну статтю )))
Вибач, що саме ти очікував від статті? Реально цікаво, щоб наступним разом написати про щось цікавіше.
Що до поїздок, то вони показуються всім без обмежень, але попутник вибирає з ким поїхати.
ML тут потрібна щоб створити персональні рекомендації для водіїв. Якщо водії виконує ці рекомендації то отримує профіт у вигляді пасажирів, які вирішать поїхати саме з ним.
А взагалі тут про використання explainable ML, як технології, яка допомогає створити ці рекомендації на основі історичних даних, а не вигадувати рекомендації і мати надію що це спрацює.
Як на мене то GitOps ОК лише там де є активна розробка нового проекту або вяла підтримки існуючого. Як тільки проект переходить в стан активної експлуатації з постійною доробкою і переробкою, то починаються проблеми які вирішуються ускладненням різних процесів розробки і все стає не дуже ОК (поріг входу, збільшення часу на розробку та тестування).
Відчуття що не вистачає винесення тригерів деплоя на більш мануальний рівень (також можливо що я про щось не здогадуюсь, тому все ускладнюю))).
Зазвичай це про процеси або технології. Ситуації можуть бути різні. Від особистого росту до рішення команди спробувати щось нове. Наприклад інженер переконав команду що використання монги «прискорить розробку/зробить швидшим сервіс/подолає купу проблем». Потрібно пошарити знання про nosql на всю команду до прийнятного рівня. Без навчання така ініціатива може швидко обернутись на фейл.
Дуже прикольно і мені допомогло дещо розкласти по полицям.
Єдине, не бачу логіки в відношеннях сприйняття 70/20/10 до витраченого часу 1/2/7. Зрозуміло що практика безпосередньо впливає на досвід. Але на сприйняття теорії і менторство, крім часу, ще впливають якістні характеристики. Тому, після умовно витраченої години на книгу, може бути достатньо 10 хвилин на роз’яснення, щоб у людини в голові все розклалось.
Идей множество: что можно было бы сделать и для защиты, и для атаки. Это как раз задача общественной организации придумывать такие проекты. Но они лежат в долгом ящике. Сначала разберемся с судом.
Затягнуті суди та невисунуті обвинувачення це і є інструмент проти волонтерів чи активних людей, щоб зайняти їх виправданням, щоб вони не заважали «комусь» жити спокійно (атакуй, щоб вороги йшли в захист). Сумно.
Але є левова частина справок заради справок, та роботи заради роботи. І вже ніхто не пам’ятає для чого це робиться, і більше, всі бояться позбутись цього, бо — це відповідальність, яку ніхто не хоче брати на себе, та друга соціальна частина — куди діти всіх тих чиновників та клерків, якщо прибрати ці функції взагалі?
Маючи менеджерський досвід відчуваю що до багатьох речей дійшов самостійно, але також бачу що дуже багато пробілів та не вистачає психології загалом.
З чого почати?
Хто і де проводить такі курси для починаючих цей шлях?
Досить давно видалив акаунт Linkedln та не планую заводити знов. Чи можна якось підтвердити без Linkedln, наприклад через Github?
Но хочу привести и другой пример, когда сформированое совместно ТЗ в процессе разработки продукта притерпивает изменения со стороны разработчика, потому что неукладывается в срок. И заказчику дется некуда, его тоже сроки жмут, работать надо.
В.tt за < input> съелась строчка с div
<'div class="auto_complete" id="complete_author_auto_complete"><'/div>
Как то совсем обходят стороной технологию 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-поиск стала доступна!
Может мои пять копеек и не кмест, но у меня заработало под 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. Как бы отключить засерание лога, но покрасивее.
шарясь по интернет много нелестного прочитал про плагин Unicode, но без конкретики. Прикрутив к своему проекту I18N (интернационализацию) столкнулся с проблемой двойного перекодирования шаблона в случае русской локали (возможно это связано с локалью системы по умолчанию). выглядит это так — в конфиге:
# Currently supported locales<localization> en English ru Русский uk Українська</localization>
далее TT шаблон из конфига создает симпатичную менюшку наподобии wikipedia. Да вот незадача, когда нахожусь в ru-локале получаю двойное кодирование шаблона в utf-8. страдает только эта самая менюшка. Пока запускал через app_server.pl, возможно апач это выличит, но глюк налицо. Может кто сталкивался?
Цікавий підхід з зберіганням кожної метрики в окремій таблиці. На скільки зручно працювати з купою таблиць? І взагалі було б цікаво подивитись на приклад структури.