Pull to refresh
41
0
Захаров Кирилл @yTko

Пишу код, делаю стартап и немного пишу в telegram

Send message

История появления Амперки

Reading time18 min
Views71K

Хабраридерам, привет!

У блога нашей компании вскоре истекает оплаченный период. Мы определённо до его конца не успеем подготовить какой-нибудь интересный и небанальный материал о DIY-электронике. Поэтому, пользуясь случаем, расскажу лучше о том, как появилась Амперка, и как мы пришли к тому, что имеем сейчас и почему мы вечно ничего не успеваем.

Итак, если вам интересна история появления одного малого бизнеса, прошу под кат.

Читать дальше →
Total votes 170: ↑163 and ↓7+156
Comments61

NoSQL базы данных: понимаем суть

Reading time9 min
Views574K
В последнее время термин “NoSQL” стал очень модным и популярным, активно развиваются и продвигаются всевозможные программные решения под этой вывеской. Синонимом NoSQL стали огромные объемы данных, линейная масштабируемость, кластеры, отказоустойчивость, нереляционность. Однако, мало у кого есть четкое понимание, что же такое NoSQL хранилища, как появился этот термин и какими общими характеристиками они обладают. Попробуем устранить этот пробел.


Читать дальше →
Total votes 137: ↑133 and ↓4+129
Comments75

Web плеер FLAC.JS (HTML5)

Reading time4 min
Views23K
Почти дождались! Свершилось! На JS можно играть flac файлы. В продолжение статьи от 2012 года я хочу более развёрнуто рассказать и описать, как же всё-таки использовать этот flac.js.
image
Читать дальше →
Total votes 45: ↑39 and ↓6+33
Comments18

Иной взгляд на оформление заказа в интернет-магазине

Reading time4 min
Views63K


В странах СНГ не менее 75-80% заказов приходятся на cash-and-delivery (оплата заказа при доставке). Это отличие российского и западного потребителя легло в основу редизайна оформления заказа Сотмаркета еще в 2012 году. Тогда впервые в России интернет-магазин перестал требовать авторизации или регистрации клиента перед совершением покупки.

Фоновая регистрация и авторизация пользователей


Хотя авторизация на последнем шаге покупки и не несет никакой ценности для пользователя, это западное клише глубоко укоренилась в Рунете. Со средней частотой покупки (техники) раз в 9-10 месяцев люди зачастую не запоминают регистрационных данных: эл. почты, логина, пароля. Парадокс в том, что большинство интернет-магазинов с готовностью принимают заказы по телефону, но при этом создают искусственные препятствия при совершении покупке онлайн.

Это наблюдение легло в основу концепции фоновой регистрации и авторизации пользователей.
Читать дальше →
Total votes 93: ↑80 and ↓13+67
Comments83

Spring изнутри. Этапы инициализации контекста

Reading time11 min
Views345K


Доброго времени суток уважаемые хабравчане. Уже 3 года я работаю на проекте в котором мы используем Spring. Мне всегда было интересно разобраться с тем, как он устроен внутри. Я поискал статьи про внутреннее устройство Spring, но, к сожалению, ничего не нашел.

Всех, кого интересует внутреннее устройство Spring, прошу под кат.
Читать дальше →
Total votes 57: ↑53 and ↓4+49
Comments16

Перевод учебника по алгоритмам

Reading time1 min
Views166K


Рад сообщить, что вышел перевод отличнейшего учебника Дасгупты, Пападимитриу, Вазирани «Алгоритмы», над которым я работал последние несколько лет. В книге многие алгоритмы объяснены гораздо короче и проще, чем в других учебниках: с одной стороны, без излишнего формализа, с другой — без потери математической строгости. Откройте книгу на каком-нибудь известном вам алгоритме и убедитесь в этом. =)

В общем, угощайтесь: печатный вариант перевода, электронный вариант перевода (PDF), печатный вариант оригинала, электронный вариант оригинала (PDF).
Читать дальше →
Total votes 323: ↑321 and ↓2+319
Comments109

25 Laravel Tips and Tricks

Reading time11 min
Views83K
Было время, достаточно недавно, когда PHP и его сообщество ненавидели. Главная шутка была про то, насколько ужасен PHP.

Да, к сожалению, сообщество и экосистема просто были ниже сообществ других современных языков по уровню. Казалось, что предназначение PHP было прожить большинство времени в форме беспорядочных тем для WordPress.

Но позже, на удивление, вещи начали меняться — и достаточно быстро. Как будто пока ведьма помешивала горшочек, из ниоткуда начали появляться новаторские проекты. Наверно, самый заметный проект был Composer: наиболее полный менеджер зависимостей для PHP (как Bundler для Ruby или NPM для Node.js). В прошлом PHP разработчики были вынуждены совладать с PEAR (что было страшным сном, на самом деле), сейчас, благодаря Composer, они могут просто обновить JSON файл, и немедленно подтянуть все нужные зависимости. Здесь — профайлер, там — фреймворк для тестирования. Это занимает секунды.
Читать дальше →
Total votes 47: ↑40 and ↓7+33
Comments190

Выжимаем максимум из DDMS

Reading time6 min
Views35K
DDMS (Dalvik Debug Monitor Server) — безумно полезный инструмент для отладки приложений, который идет в комплекте с Android SDK, о котором почему-то особо и не сказано на хабре, впрочем как и в примерах google он представлен в очень скромном виде. Я бы хотел раскрыть его возможности и показать на что он способен. Вкратце:
  • изучать информацию о работающих потоках;
  • анализировать heap на количество свободной и занятой памяти;
  • анализировать какие объекты чаще создаются, их размер и другое (Allocation tracker);
  • находить проблемные участки кода, которые долго работают и требуют оптимизации (Method profiling). Это я советую знать всем.

Об этих вещах будет рассказано в рамках данной статьи. И для справки, менее интересное, что довольно тривиально и о чем НЕ будет рассказано в рамках данной статьи:
  • работать с файловой системой эмулятора или устройства;
  • находить информацию об ошибках (привет LogCat);
  • эмулировать звонки/смс/местоположение;
  • использовать инструмент Network Statistics.


Если заинтересовались, прошу под кат.
Total votes 34: ↑34 and ↓0+34
Comments6

Налоговый вычет для программистов (авторов программ)

Reading time4 min
Views28K
IT отрасль в целом и создание продуктов интеллектуальной собственности (компьютерные программы и многое другое) в частности – немалая движущая сила современной экономики и мирового прогресса.

Специфика отрасли заключается в том, что профессионалы не всегда могут и не всегда хотят работать in-house и являются фрилансерами. Оно и закономерно – интеллектуальный труд не обязан предполагать рамки рабочего дня и стены офиса.

Безусловно я понимаю общий градус нелюбви к нашим законам и законодателям и то, что львиная доля специалистов работает «в черную», однако почти любой крупный заказчик будет работать с вами на договорной основе (соблюдая в том числе и налоговое законодательство), да и вам, как физическому лицу или индивидуальному предпринимателю важно знать о тех расходах, которые вы можете вернуть себе обратно в карман, не отдавая их государству в виде налогов.
Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments18

Байес

Reading time3 min
Views98K
В левой руке Морфеуса лежит 7 синих и 3 красных таблетки, а в правой 5 синих и 8 красных. Вы закрываете глаза и берете таблетку — она оказывается красной, однако вы не знаете из какой руки ее взяли. Какова вероятность, что вы взяли ее из правой руки?


image

17 апреля 1761 — день смерти Томаса Байеса.
Под катом результаты того, что есть в рунете, помимо стандартных вещей типа Теорема Байеса, Байесовская сеть, Наивный байесовский классификатор , Байесовская фильтрация спама
Читать дальше →
Total votes 102: ↑94 and ↓8+86
Comments38

Асинхронный HTTP в Play Framework

Reading time7 min
Views8.5K
При написании собственных веб-приложений часто возникают такие ситуации, в которых приходится делать выбор между синхронным и асинхронным выполнением запросов. С одной стороны, идея синхронной работы выглядит вполне логичной: мы запускаем некоторый процесс, дожидаемся его завершения и после этого продолжаем работу. Но на деле такой подход хорош только в случае простых вычислений. Представьте, что в процессе выполнения вам нужно, к примеру, сделать сложный запрос к базе данных — а то и, еще лучше, отправить запрос к другому серверу и дождаться от него результатов. В этом случае дальнейшая работа потока будет остановлена на довольно продолжительное время — а это, понятное дело, далеко не всегда является приемлемым. Именно в таких случаях на помощь приходят асинхронные запросы. Давайте посмотрим, как работа с ними реализована в Play framework.
Подробности
Total votes 24: ↑22 and ↓2+20
Comments10

Жизненный цикл Activity Stack (часть 2)

Reading time13 min
Views29K
Как и договаривались в первой части статьи, в этой мы будем рассматривать инструменты для изменения стандартного поведения Activity Stack.

Вся теория по сегодняшей теме присутствует на developer.android.com/guide/topics/manifest/activity-element.html, я буду кое-где на неё ссылаться, а мы постараемся разобраться как оно работает на деле и выяснить, в каких ситуациях это можно использовать в реальной жизни.
Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments6

1000+ часов видео по Java на русском

Reading time7 min
Views1.3M
Добрый день.
Меня зовут Головач Иван, я руковожу небольшой образовательной компанией и преподаю сам:
  1. Java Core
  2. Junior Java Developer: Servlet API, JDBC, Maven, JUnit, Mockito, Log4J, основы Spring/SpringMVC, основы JPA/Hibernate, шаблоны/архитектуры MVC/IoC/DAO.
  3. Multicore programming in Java.


Также я веду курс «Scala for Java Developers» на платформе для онлайн-образования udemy.com (аналог Coursera/EdX).

В следствии этого у меня скопилось значительно количество ссылок на видео на русском языке по Java как моего авторства, так и моих коллег.

(GolovachCourses.com)


Здесь собраны несколько вариантов записи моего курса Java Core.
Модуль #1 (Procedural Java):
Набор июль 2013: #1, #2, #3, #4
Набор апрель 2013: #1, #2, #3, #4
Набор февраль 2013: #1, #2, #3, #4
Набор январь 2013: #1, #2, #3, #4
Набор октябрь 2012: #1, #2, #3, #4.
Читать дальше →
Total votes 120: ↑111 and ↓9+102
Comments38

Как устроена инфраструктура обработки данных Sports.ru и Tribuna.com?

Reading time11 min
Views29K
В первом посте об аналитической системе Sports.ru и Tribuna.com мы рассказали о том, как используем нашу инфраструктуру в повседневной жизни: наполняем контентом рекомендательную систему, наблюдаем за бизнес-метриками, ищем среди пользовательского контента бриллианты, находим ответы на вопросы “Как работает лучше?” и “Почему?”, нарезаем пользователей для почтовых рассылок и строим красивые отчеты о деятельности компании. Всю техническую часть повествования мы скромно спрятали за этой схемой:

Бирюзовым обозначены компоненты в нашей собственной ИТ-инфраструктуре, оранжевым - все то, что мы используем как внешний сервис

Читатели законно потребовали продолжить повествование со смешными котиками, а olegbunin пригласил рассказать о всем, что было скрыто, на РИТ++. Что ж, изложим некоторые технические детали – в продолжении веселого поста.
Читать дальше →
Total votes 44: ↑43 and ↓1+42
Comments3

Как правильно лгать с помощью статистики

Reading time7 min
Views240K

Существуют три вида лжи: ложь, наглая ложь и статистика (источник)

Есть такой замечательный жанр — "вредные советы", в котором детям дают советы, а дети, как известно, всё делают наоборот и получается всё как раз правильно. Может быть и со всем остальным так получится?

Статистика, инфографика, big data, анализ данных и data science — этим сейчас кто только не занят. Все знают как правильно всем этим заниматься, осталось только кому-то написать как НЕ нужно этого делать. В данной статье мы именно этим и займемся.


Hazen Robert "Curve fitting". 1978, Science.

Структура статьи:
  1. Введение
  2. Предвзятая выборка (Sampling bias)
  3. Правильно выбираем среднее (Well-chosen average)
  4. И еще 10 неудачных экспериментов, про которые мы не написали
  5. Играем со шкалой
  6. Выбираем 100%
  7. Скрываем нужные числа
  8. Визуальная метафора
  9. Пример качественной визуализации
  10. Заключение и дальнейшее чтение

Читать дальше →
Total votes 312: ↑309 and ↓3+306
Comments74

Оптимизируем LIMIT offset

Reading time2 min
Views83K
Везде, где используется LIMIT offset для больших таблиц, рано или поздно начинаются тормоза. Запросы вида

SELECT * FROM test_table ORDER BY id LIMIT 100000, 30

могут выполнятся очень долго. Например, в моем случае, на одном из сайтов кол-во комментариев перевалило за 200к и постраничная навигация по комментариям начала ощутимо тормозить, а в mysql-slow.log все чаще стали попадать запросы с временем выполнения 3-5сек.
Читать дальше →
Total votes 77: ↑61 and ↓16+45
Comments30

О плохих словах, или Как написать текст, не сделав из него какашку

Reading time8 min
Views64K
Здравствуйте.
В первой части статьи я расскажу о некоторых стилистических «косяках», которые придают текстам характерный канцелярский унылый стиль. Вторая часть посвящена более серьёзной ошибке, которая, к сожалению, грозит в ближайшее время стать правилом.
Читать дальше →
Total votes 204: ↑180 and ↓24+156
Comments167

Play! Lift! Srsly?

Reading time13 min
Views17K
Play! и Lift, — эти два фреймворка являются олицетворением того, куда движется основной поток Scala веб-разработчиков. Воистину, попробуйте поискать на Stack Overflow фреймворки для Scala и вы поймете что я прав. Я верю, что процент здравомыслящих людей, которым надоели сложные комбайны, велик, поэтому расскажу про «другой» фреймворк Xitrum.
Читать дальше →
Total votes 38: ↑33 and ↓5+28
Comments35

Несколько интересностей и полезностей для веб-разработчика #13

Reading time4 min
Views46K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Colour Schemes


image
Репозиторий уже набрал более 4000 старов на GitHub. Автор проекта — Dayle Rees — один из участников команды Laravel PHP, где люди убеждены, что «код должен приносить удовольствие разработчикам, а не только пользователям, принимающим вашу трудную работу». Сolour Schemes на сегодняшний день это 56 различных тем для: Sublime Text (2 & 3), Sublime Text UI (2 & 3), Textmate, Coda 2, VIM, Jetbrains Editors (inc. PHPStorm), Google Code Prettify, Highlight.js и Xcode.

Читать дальше →
Total votes 86: ↑77 and ↓9+68
Comments11

Шаблоны проектирования PHP. Часть 1. Порождающие

Reading time13 min
Views232K
Тема заезженная до дыр, не спорю… Вероятно, для опытных разработчиков моя статья будет мало, чем полезна. Я бы рекомендовал её к прочтению тем, кто только начал осознавать, что его коду чего-то не хватает, и что он созрел для вникания в это далёкое понятие – «паттерны». По себе помню, что довольно долгое время я путался в шаблонах, иногда даже не понимая, чем один отличается от другого. Именно этот факт стал основой для моей статьи. Примеры в ней не будут реальными. Они будут абстрактными и максимально простыми. Однако я постараюсь все примеры держать в едином контексте, чтобы можно было наглядно видеть отличия их использования в одной и той же ситуации. Я не буду нагружать классы лишним функционалом, чтобы можно было понять, какая именно часть кода имеет непосредственное отношение к шаблону. Главными героями примеров станут Factory (фабрика) и Product (продукт, производимый этой фабрикой). Возьмём это отношение за отправную точку. Возможно, в некоторых примерах это будет не очень уместно, но зато очень наглядно…

Статья будет разбита на несколько частей. В каждой я буду рассказывать о новом типе шаблонов проектирования. Всем, кого эта тема может заинтересовать, прошу под кат.
Меня заинтересовала...
Total votes 61: ↑43 and ↓18+25
Comments83

Information

Rating
Does not participate
Location
Тбилиси, Грузия, Грузия
Registered
Activity