Pull to refresh
0
Alexey Elizarov @beauty_freeread⁠-⁠only

Fullstack developer

Send message

Как распознать текст с фото: новые возможности фреймворка Vision

Reading time6 min
Views8.8K
Теперь фреймворк Vision умеет распознавать текст по-настоящему, а не как раньше. С нетерпением ждём, когда сможем применить это в Dodo IS. А пока перевод статьи о распознавании карточек из настольной игры Magic The Gathering и извлечении из них текстовой информации.


Читать дальше →
Total votes 20: ↑19 and ↓1+18
Comments1

Чему можно научиться у дизайна гиперказуальных игр

Reading time11 min
Views10K
image

Кто-то может сказать, что гиперказуалки, вероятно, один из простейших жанров для анализа гейм-дизайна. Кто-то может сказать что гиперказуальные игры даже не стоят анализа, потому что этот тренд скоро исчезнет, но у меня есть другое мнение.

Не могу сказать, что являются специалистом по гиперказуальным играм. Я простой потребитель, который больше не получает удовольствия от игр как потребитель благодаря моей профдеформации — я аналитический гейм-дизайнер. В последнее время я играл во множество гиперказуальных игр на мобильной платформе (и анализировал их), поэтому решил вкратце написать об их привлекательности и о том, чему у них могут поучиться гейм-дизайнеры. Повторюсь, это не готовое руководство по созданию гиперказуалок, а краткий обзор различных гейм-дизайнерских решений и систем, помогающих гиперказуальным играм быть увлекательными.
Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments5

От монолитов к модульности команд

Reading time4 min
Views4.7K
Большие компании частенько печалятся от проблемы адаптируемости и маневренности. Точнее, почти от полного отсутствия и того, и другого.

Представьте: все платформенные команды заняты одной фичей, а у бизнеса появляется срочное требование сделать что-то другое или скорректировать уже разрабатываемый функционал. И в этот момент останавливается работа над одной фичей и начинается работа над другой. В следующий момент появляются уже новые требования от бизнеса, а фича так и остается недоделанной. Разработчики в обиде и бизнес страдает.



Вот еще ситуация: меняется API, нужно срочно бежать в отдел бэкенда узнавать подробности, потом обратно к фронтам (iOS / Android / web). Дальше, обсудив с фронтами свои корректировки, нужно идти обратно к бэку и говорить наши требования. Это очень изнуряло, терялось время команд, отдельного разработчика и нервы всех заинтересованных людей.

Меня зовут Валерий, наша команда занималась QIWI Кошельком под iOS. Но всегда нужно было держать коммуникации с другими командами, иначе получался полный рассинхрон. Что касается наших неудобств, то бизнес всегда идет навстречу и дает свободу для экспериментов. Поэтому встал вопрос об изменении существующей структуры. Благоприятной средой для тестирования наших идей по изменению был скрам. Каждые две недели мы внутри платформы могли редактировать курс, чтобы это хоть как-то согласовывалось с другими командами. На проверку теорий давалось много времени. От месяца до полугода. Какие варианты мы перепробовали:
Читать дальше →
Total votes 20: ↑20 and ↓0+20
Comments8

Заметки product manager’a: поведение пользователей на страницах игр в app store. Сколько надо времени чтобы скачать игру

Reading time2 min
Views2.6K
В интернете большое количество информации о том, как правильно паблишить мобильные игры, как делать для них маркетинг, что размещать на страницах магазинов, однако большое количество нюансов незаметны сразу. В данной статье я поделюсь своими заметками и инсайтами, которые были выведены из результатов рекламных экспериментов. В частности о поведении пользователей на страницах мобильных игр в app store. Очень надеюсь, что заметки помогут не наступить на грабли молодым разработчикам, вкладывая деньги и время в наполнение страниц игр в магазине.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments2

На пенсию в 22

Reading time6 min
Views181K
Привет, я Катя, я не работаю уже год.



Я много работала и выгорела. Уволилась и не стала искать новую работу. Толстая финансовая подушка обеспечила мне бессрочный отпуск. Я отлично провела время, а еще утратила часть знаний и психологически постарела. Какая она, жизнь без работы, и чего не стоит от нее ждать, читайте под катом.
Читать дальше →
Total votes 359: ↑259 and ↓100+159
Comments0

Что ты такое, замыкания в JavaScript?

Reading time4 min
Views27K
В этой статье я постараюсь подробно разобрать механизм реализации замыканий в JavaScript. Для этого я буду использовать браузер Chrome.

Начнем с определения:
Замыкания  - это функции, ссылающиеся на независимые (свободные) переменные. Другими словами, функция, определённая в замыкании, 'запоминает' окружение, в котором она была создана.
MDN

Если вам что-то не понятно в этом определении, это не страшно. Просто читайте дальше.

Я глубоко убежден, что разбираться в чем-либо проще и быстрее на конкретных примерах.

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

Итак, приступим:


Рисунок 1
Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments11

Анализ производительности запросов в ClickHouse. Доклад Яндекса

Reading time18 min
Views29K
Что делать, если ваш запрос к базе выполняется недостаточно быстро? Как узнать, оптимально ли запрос использует вычислительные ресурсы или его можно ускорить? На последней конференции HighLoad++ в Москве я рассказал об интроспекции производительности запросов — и о том, что даёт СУБД ClickHouse, и о возможностях ОС, которые должны быть известны каждому.



Каждый раз, когда я делаю запрос, меня волнует не только результат, но и то, что этот запрос делает. Например, он работает одну секунду. Много это или мало? Я всегда думаю: а почему не полсекунды? Потом что-нибудь оптимизирую, ускоряю, и он работает 10 мс. Обычно я доволен. Но все-таки я стараюсь в этом случае сделать недовольное выражение лица и спросить: «Почему не 5 мс?» Как можно выяснить, на что тратится время при обработке запроса? Можно ли его в принципе ускорить?

Total votes 53: ↑53 and ↓0+53
Comments5

Toolbox для исследователей — третий выпуск: поиск источников и работа с ними

Reading time4 min
Views3.5K
Работа над любым исследовательским проектом включает в себя поиск и изучение множества источников информации. Организация этого процесса — непростая задача. Сегодня мы расскажем об инструментах, которые призваны оптимизировать различные ее составляющие.



Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments3

Подборка книг о том, как учиться, мыслить и принимать эффективные решения

Reading time4 min
Views36K
В нашем блоге на Хабре мы публикуем не только рассказы о разработках сообщества Университета ИТМО, но и фотоэксурсии — например, по нашей лаборатории робототехники, лаборатории киберфизических систем и DIY-коворкингу Фаблаб.

Сегодня мы собрали подборку книг, которые рассматривают возможности для повышения эффективности работы и учебы с точки зрения паттернов мышления.

Читать дальше →
Total votes 22: ↑18 and ↓4+14
Comments7

Кто такие эйдетики, как работают ложные воспоминания, и три популярных мифа о памяти

Reading time5 min
Views56K
Память — удивительная способность мозга, и несмотря на то, что изучается она довольно давно, существует немало ложных — или, как минимум, не совсем точных представлений о ней.

Расскажем о наиболее популярных из них плюс о том, почему не так-то просто все забыть, что заставляет нас «красть» чужую память и как выдуманные воспоминания влияют на нашу жизнь.


Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments76

Простой трекер семейного бюджета с помощью AWS SES, Lambda и DynamoDB (и Route53)

Reading time10 min
Views11K

Как контролировать семейный бюджет?


image


У меня всегда были сложности точно следовать бюджету, особенно сейчас, когда все покупки проходят по кредитной карте. Причина проста — перед глазами нет пачки денег, которая постепенно сокращается, и в какой-то момент ты понимаешь, что тратить больше нечего. Если большая часть покупок оплачивается кредитной картой, то единственный способ узнать, сколько cредств осталось или сколько потрачено, это зайти в Интернет-банк или мобильный банк, или же использовать финансовые агрегаторы, например Mint, в которые тоже надо заходить и проверять баланс. Это возможно, но на это требуется дисциплина, а когда с той же карточки платишь не только ты, то установить её сложно.


Я подумал, что меня устроит вариант, если каждый день мне будет приходить уведомление о том, сколько денег у меня ещё осталось в этом месяце. То есть я бы устанавливал бюджет на месяц, и что-то бы считало мои траты и каждый день посылало отчёт о состоянии бюджета.

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments32

«Проще ответить, чем продолжать молчать» — большое интервью с отцом транзакционной памяти, Морисом Херлихи

Reading time33 min
Views16K


Морис Херлихи — обладатель целых двух премий Дейкстры. Первая — за работу по «Wait-Free Synchronization» (Brown University) и вторая, более свежая, — «Transactional Memory: Architectural Support for Lock-Free Data Structures» (Virginia Tech University). Премию Дейкстры дают за работы, значимость и влияние которых были заметны на протяжении не менее десяти лет и, очевидно, Морис — один из самых известных специалистов в области. На данный момент он работает профессором в Брауновском университете и имеет множество достижений на целый абзац длиной. Сейчас он занимается исследованиями блокчейна в контексте классических распределенных вычислений.


Ранее Морис уже приезжал в Россию на SPTCC (видеозапись) и cделал отличную встречу сообщества Java-разработчиков JUG.ru в Питере (видеозапись).


Этот хабрапост  — большое интервью с Морисом Херлихи. В нем обсуждаются следующие темы:


  • Взаимодействие академической сферы и индустрии;
  • Фундамент для исследований блокчейна;
  • Откуда берутся прорывные идеи. Влияние популярности;
  • PhD под руководством Барбары Лисков;
  • Мир в ожидании многоядерности;
  • Новому миру – новые проблемы. NVM, NUMA и взлом архитектуры;
  • Компиляторы против процессоров, RISC vs CISC, shared memory vs message passing;
  • Искусство написания хрупкого многопоточного кода;
  • Как обучить студентов написанию сложного многопоточного кода;
  • Новое издание книги «The Art of Multiprocessor Programming»;
  • Как изобреталась транзакционная память;   
  • Почему стоит проводить исследования в области распределенных вычислений;
  • Остановилось ли развитие алгоритмов, и как жить дальше;
  • Работа в Брауновском Университете;
  • Разница между исследованиями в университете и внутри корпорации;
  • Hydra и SPTDC.
Читать дальше →
Total votes 68: ↑68 and ↓0+68
Comments8

Теория вместо эвристики: становимся лучше как frontend-разработчики

Reading time6 min
Views8.8K


Перевод Becoming a better front-end developer using fundamentals instead of heuristics

Наш опыт показывает, что не имеющие технического образования разработчики и самоучки чаще полагаются не на теоретические принципы, а на эвристические методы.

Эвристика — шаблоны и проверенные правила, которые разработчик вынес из практики. Они могут работать неидеально или ограниченно, но в достаточной мере, и не требуют серьёзных размышлений. Вот некоторые примеры эвристики:

  • «Используй $(document).ready(function(){}) для инициализации кода на jQuery-сайтах»
  • «Конструкция var self = this необходима для вызова метода в функции обратного вызова»
  • «У стрелочных функций нет операторов return»

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


Обратите внимание: мы заключили в кавычки только примеры эвристики — для того, чтобы подчеркнуть кустарный характер эвристики по сравнению со строгостью теоретических основ. Ни один из примеров эвристики не является универсальным для всех случаев, но они работают в достаточном количестве ситуаций, чтобы применяющие их разработчики получали рабочий код без полного понимания его работы.
Читать дальше →
Total votes 35: ↑29 and ↓6+23
Comments21

13 приёмов работы с npm, которые помогают экономить время

Reading time11 min
Views86K
Каждый день миллионы разработчиков, создавая свои JavaScript-приложения, обращаются к npm (или к Yarn). Выполнение команд наподобие npm init или npx create-react-app стало привычным способом начала работы над практически любым JavaScript-проектом. Это может быть сервер, клиент, или даже настольное приложение.

Но утилита npm способна не только на инициализацию проектов или на установку пакетов. Автор материала, перевод которого мы сегодня публикуем, хочет рассказать о 13 хитростях npm, которые позволят выжать из этой системы всё, что можно. Здесь будут рассмотрены приёмы разного масштаба — от использования сокращений команд до настройки поведения npm init.



Многие программисты пользуются npm ежедневно. Это значит, что в долгосрочной перспективе изменить что-то в лучшую сторону может даже небольшая экономия времени. Этот материал рассчитан, преимущественно, на начинающих разработчиков и на разработчиков среднего уровня. Однако даже если вы — профессионал, автор материала надеется, что вы сможете найти здесь пару интересных вещей, с которыми вы раньше не сталкивались.

Если вы совершенно не знакомы с npm — знайте, что интересующая нас программа устанавливается вместе с Node.js. Если вы работаете в Windows, то, чтобы воспроизвести кое-что из того, о чём здесь пойдёт речь, рекомендуется установить Git Bash.
Читать дальше →
Total votes 37: ↑35 and ↓2+33
Comments3

Эффективное управление программами и проектами по методологии P2M

Reading time7 min
Views16K
Крупные компании в IT порой покрывают целиком территорию нашей страны. Такой масштаб требует постоянного изменения подходов, пересмотра ценностей. Конечно, не в каждой компании, но точно во многих проектах. А как известно, по ценностям впереди планеты всей – Япония.

Эта статья предназначена для интересующихся проектным управлением, практиков и теоретиков. Она позволит ознакомиться с японской методологией P2M (Project & Program Management for Enterprise Innovation), отличающейся от привычных западных подходов, в том числе ориентацией на создание дополнительных ценностей для компании и прямой корреляцией производимых изменений бизнеса с миссией предприятия.

Источник
Читать дальше →
Total votes 58: ↑54 and ↓4+50
Comments12

Алан Кей: «Какие книги Вы бы посоветовали прочесть тому, кто учится на Computer Science»

Reading time4 min
Views21K
Если вкратце, то я бы посоветовал читать много книг, не имеющих отношения к информатике.

image

Важно понимать, какое место занимает понятие «science» в «Computer Science», и что означает «engineering» в «Software Engineering».

Современное понятие «науки» можно сформулировать так: это попытка перевести явления в модели, которые можно более-менее легко объяснить и предсказать. На эту тему можно прочесть «Sciences of the Artificial» (одна из важных книг Герберта Саймона). На это можно смотреть с такой точки зрения: если люди (особенно разработчики) строят мосты, то учёные могут объяснять эти явления, создавая модели. Самое интересное в этом то, что наука почти постоянно будет находить новые, лучшие способы наведения мостов, так что дружеские отношения между учеными и разработчиками вполне могут улучшаться с каждым годом.

Примером подобного из сферы Computer Science является Джон Маккарти, размышляющий о компьютерах в конце 50-х годов, то есть о невероятно большом спектре того, что они могут сделать (может быть, ИИ?), и создание модели вычислений, которая является языком, и может служить в качестве собственного метаязыка (Lisp). Моя любимая книга на эту тему — «The Lisp 1.5 Manual» от MIT Press (автор Маккарти с соавторами). Первая часть этой книги по-прежнему остается классикой того, как нужно думать в целом и об информационных технологиях в частности.
Total votes 14: ↑14 and ↓0+14
Comments5

Создаем музыку: когда простые решения превосходят по эффективности глубокое обучение

Reading time9 min
Views27K
Представляю вашему вниманию перевод статьи «Создаем музыку: когда простые решения превосходят по эффективности глубокое обучение» о том, как искусственный интеллект применяется для создания музыки. Автор не использует нейронные сети для генерации музыки, а подходит к задаче, исходя из знания теории музыки, на основе мелодии и гармонии. Другой особенностью статьи является метод сравнения музыкальных произведений на основе матриц самоподобия. Такой подход, конечно, не является исчерпывающим, но он полезен как промежуточный шаг для генерации качественной музыки методами машинного обучения.

Total votes 80: ↑74 and ↓6+68
Comments37

Размыкаем замыкания и внедряем Dependency Injection в JavaScript

Reading time5 min
Views20K

image


В этой статье мы рассмотрим, как писать чистый, легко тестируемый код в функциональном стиле, используя паттерн программирования Dependency Injection. Бонусом идет 100% юнит-тест coverage.

Читать дальше →
Total votes 36: ↑34 and ↓2+32
Comments19

Кризис Agile. Что делать?

Reading time6 min
Views30K
Ключевые моменты
  • Многие организации устали от Agile
  • Часть проблемы — в существовании большой коммерческой отрасли Agile
  • Нужно вернуться к основам: простоте Манифеста и 12 принципов
  • Примеры базовых и простых фреймворков: Heart of Agile и Modern Agile
  • Многие уроки можно извлечь из таких гуманитарных наук, как позитивная психология, направленное самосовершенствование и решение-ориентированная терапия

«Agile agile Agile agile agile agile Agile agile».

Мантра? Не совсем, хотя это может вызвать изменённое состояние сознания.

«Ответ на главный вопрос жизни, вселенной и всего такого?» (Дуглас Адамс, «Путеводитель для путешествующих автостопом по галактике»). Может быть, смотря кого спросить.

Это омонимы. Слова, которые выглядят и звучат одинаково, но имеют разные значения. Как это грамматически правильное предложение, состоящее из трёх совершенно разных слов: «Buffalo buffalo Buffalo buffalo buffalo buffalo Buffalo», Дмитрий Боргманн, «За пределами языка: путешествие слова и мысли» (фразу можно перевести так: «Буффальские бизоны, которых пугают буффальские бизоны, пугают других буффальских бизонов» — прим. пер.).

Риск чрезмерной омонимизации заключается в том, что слова начинают означать всё и вся, в то же время не означая ничего конкретного. Это психологический феномен, известный как «семантическое насыщение», форма ментальной усталости.
Читать дальше →
Total votes 36: ↑29 and ↓7+22
Comments38

Чему я научился на своём горьком опыте (за 30 лет в разработке ПО)

Reading time22 min
Views117K
image

Это циничная, клиническая коллекция того, чему я научился за 30 лет работы в разработке программного обеспечения. Повторюсь, некоторые вещи весьма циничны, а остальное — результат долгих наблюдений на разных местах работы.
Читать дальше →
Total votes 187: ↑178 and ↓9+169
Comments128

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity