Как стать автором
Обновить
27
0
Дмитрий Лукьяненко @Dmi3yy

CTO, Backend Developer

Отправить сообщение

Похоже, я не предприниматель

Время на прочтение7 мин
Количество просмотров46K
Для того, чтобы это понять, мне потребовалось четыре миллиона рублей (половина из которых — мои) и четыре года.

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

В этой статье я хотел бы

— поделиться сделанными выводами
— порекомендовать проект, если вы хотите присоединиться к нему в качестве разработчика/инвестора
— выложить техническую документацию, если вы захотите сделать форк

image
Всего голосов 167: ↑164 и ↓3+161
Комментарии168

Отслеживание js-ошибок с помощью Метрики

Время на прочтение3 мин
Количество просмотров13K

Использование системы отслеживания js-ошибок трудно переоценить. Даже на покрытом тестами сайте возникают js-ошибки, важно их найти и починить. Расскажу как искал подходящее решение.

Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии21

Введение в систему 8pt сеток

Время на прочтение4 мин
Количество просмотров66K
Любому дизайнеру, над чем бы он ни работал — сайтами, журналами или мобильными приложениями, — наверняка приходилось слышать термин «сетка». Существуют сетки для всевозможных вариантов расположения контента. Мы применяем колоночные сетки, чтобы выстраивать контент по горизонтали, сетки базовых линий, чтобы выравнивать блоки текста по вертикали, гибкие (soft) и жесткие (hard) сетки — в зависимости от того, насколько строго собираемся их придерживаться. Я заинтересовался системой 8pt сеток, когда услышал, с каким увлечением говорит о ней Брин Джексон, и решил посмотреть, какие преимущества она может дать моим дизайнам (и может ли вообще).



Читать дальше →
Всего голосов 33: ↑30 и ↓3+27
Комментарии23

Писать веб-сайты на ассемблере полезно и приятно

Время на прочтение5 мин
Количество просмотров137K

Конечно, многие скажут, что это ни-ни и писать для веба нужно только на PHP, ну или на один из модерных языках Питон, Руби, Node.js и т.д.


Но дело в том, что написание сайтов на ассемблере очень полезно, а с подходящими инструментами — легко и приятно.


Вообще-то, это утверждение было лишь гипотезой. Чтобы доказать или отвергнуть ее, этой весной я занялся писать форум на ассемблере.


Раньше у меня уже было веб-приложение на ассемблере — CMS для малого сайта. Только оно работает в режиме "один пишет, многие читают". При том, использует CGI интерфейс и поэтому "многие" читать одновременно тоже не получается.

Читать дальше →
Всего голосов 156: ↑126 и ↓30+96
Комментарии429

Генератор админок

Время на прочтение14 мин
Количество просмотров21K

Кратко суть проблемы: нужно было много админок, написал генератор админок.


Как работает:


  • описали сущности в JSON;
  • сгенерировали схему БД (PostgreSQL);
  • сгенерировали процедуры для БД;
  • сгенерировали сервер (NodeJS или PHP);
  • сгенерировали админку (HTML файл);
  • накатили, задеплоили, скопировали все это;
  • можно приступать к работе;

Содержание:


  • как дошёл до этого;
  • почему не взял готовое решение;
  • что получилось;
  • что НЕ получилось;
  • как оно работает;
  • про UX;
Читать дальше →
Всего голосов 41: ↑39 и ↓2+37
Комментарии13

Тихий кризис в разработке софта

Время на прочтение12 мин
Количество просмотров35K


Обо мне


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

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

Во Вселенной работает довольно жестокий вид кармы.

В моем нынешнем положении в качестве старшего директора по развитию программного обеспечения у меня есть 6 менеджеров по развитию, которые отчитываются передо мной. Только в моей организации около 50 разработчиков программного обеспечения. У нас завидно низкая текучесть кадров и очень высокий уровень удовлетворенности клиентов.

За эти годы я поделился со своими подчиненными и их непосредственными подчиненными теми же выводами, которыми я собираюсь поделиться с вами сейчас. Эти выводы — это выстраданная мудрость, а не то, что я интуитивно знал или читал. То есть, я узнал это, пройдя через трудный путь.

Всего голосов 107: ↑84 и ↓23+61
Комментарии56

MapFont, Использование шрифтов со значками в картографических сервисах

Время на прочтение2 мин
Количество просмотров8.8K
Примерно полгода назад у меня возникла необходимость вставить на карту Google шрифтовую иконку из серии FontAwesome. По ходу работы существующих иконок стало недостаточно, и поэтому пришлось нарисовать некоторое количество своих значков. Позже я решил, что грех добру пропадать и, добавив еще некоторое количество символов, назвал свое поделие MapFont и выложил в сеть.

image
Читать дальше →
Всего голосов 13: ↑12 и ↓1+11
Комментарии15

Введение в PHP 7: Что добавлено, что убрано

Время на прочтение12 мин
Количество просмотров300K
Одним из самых значительных событий, произошедших в мире PHP в 2015 году, стал выпуск PHP 7. Целых 10 лет отделяют его от выпуска первого релиза PHP с номером 5. С увеличением первой цифры в номере версии, в PHP 7 появилась масса новшеств, увеличилась и скорость работы.
Однако в седьмой версии была убрана устаревшая функциональность, что привело к некоторым проблемам с обратной совместимостью, затруднив перевод старых приложений на новую версию. Эта статья может послужить вам кратким руководством, если вы планируете написание новых или перевод своих существующих приложений на PHP 7.
Читать дальше →
Всего голосов 42: ↑39 и ↓3+36
Комментарии117

Новый useragent поискового робота Google Smartphone

Время на прочтение2 мин
Количество просмотров8.3K
Привет, Хабр! Поиск Google развивается, и вместе с ним развиваются и сопутствующие инструменты. В ближайшем будущем обновится агент пользователя робота Googlebot, который отвечает за «мобильное» направление поиска. В настоящее время useragent выглядит так:
Текущий useragent
Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12F70 Safari/600.1.4 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

С 18 апреля 2016 года будет использоваться новый агент пользователя Google Smartphone:
Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.96 Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)


Робот Googlebot доволен


Причина подобных изменений — новые возможности поискового робота. Каждый раз, как наш робот получает значимое обновление и возможность обрабатывать страницы, которые используют самые актуальные технологии. В данном случае, новый формат строки говорит о том, что технически робот Google теперь ближе к браузеру Chrome, а не Safari.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии0

Cобрать лучшее из двух миров — фреймворков и CMS (часть 3)

Время на прочтение10 мин
Количество просмотров22K
Прошло уже много времени с выхода второй статьи (часть 1, часть 2), а тут как раз есть что рассказать, так как вышел первый релиз третьей версии системы.

Вкратце об изменениях


Третья версия понемногу двигается в направлении микроядерной архитектуры. Это значит что код ядра всё так же достаточно сильно связан (хотя немного меньше чем до этого), некоторые второстепенные фичи были попросту удалены и появилось больше точек соприкосновения, где разработчик может при необходимости вклиниться в работу системы если он того желает.

На стороне сервера был проведен масштабный рефакторинг нацеленный на простоту и качество кода, что за последние пол года вылилось в повышение оценки Scrutinizer с 5.4 или что-то около того до текущих 7.74/10, что уже совсем неплохо.
На стороне клиента произошла революция, Polymer 0.5.x был обновлен до Polymer 1.x и все компоненты были соответственно переписаны, ещё был полностью выпилен UI фреймворк и некоторые другие изменения.
Подробнее обо всём под катом
Всего голосов 16: ↑13 и ↓3+10
Комментарии35

Что такое RESTful на самом деле

Время на прочтение8 мин
Количество просмотров210K
А ваше приложение — RESTful? Чтобы ответить на этот вопрос нужно сначала разобраться что такое RESTful. Бытует мнение, что отдавать правильные коды ответов в HTTP — это уже RESTful. Или делать правильные идемпотентные HTTP-запросы — это вообще очень RESTful. Мы в Хекслете сделали практический курс по протоколу HTTP (отличия версий, отправка форм, аутентификация, куки и пр.), и в нем мы стараемся рассказать о правильном использовании запросов, но нужно понимать, что RESTful это не про HTTP, это вообще не про протоколы интернета. Современный веб и взаимодействие между браузером и сервером с помощью HTTP и URI могут удовлетворять принципам RESTful, а могут и не удовлетворять.

В сегодняшнем переводе — простое и понятное описание RESTful, и какой должна быть система, чтобы ее можно было так называть.

Читать дальше →
Всего голосов 40: ↑37 и ↓3+34
Комментарии103

История PHP: инфографика

Время на прочтение1 мин
Количество просмотров36K

PHP7 Elephant created by Walker Cahall

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

Но многие ли из нас помнят, каким был PHP 10 или 20 лет назад? В честь релиза «семерки» коллеги из PHP User Group подготовили инфографику истории языка. Давайте вместе окунемся в прошлое и немножко поностальгируем.

Читать далее
Всего голосов 52: ↑43 и ↓9+34
Комментарии41

Клуб анонимных Дедов Морозов 2015-2016 на Хабрахабре

Время на прочтение1 мин
Количество просмотров30K


Всем привет.

Через пробки дальнобойщиков, но Дед Мороз всё же доехал до Хабрахабра. Почему и в этот раз так долго — мы обсудим позже, а сейчас к делу!

По привычному адресу https://habra-adm.ru/ уже доступна регистрация на сезон 2015–2016.

20 декабря нас ждет жеребьёвка (а перед этим, разумеется, закрытие регистрации).

Теперь немного об организации всего этого действа.
Читать дальше →
Всего голосов 51: ↑47 и ↓4+43
Комментарии208

Дайджест интересных материалов из мира веб-разработки и IT за последнюю неделю №166 (22 — 28 июня 2015)

Время на прочтение6 мин
Количество просмотров33K
Предлагаем вашему вниманию подборку с ссылками на полезные ресурсы, интересные материалы и IT-новости


Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии3

Библиотека, облегчающая разработку форм на сайтах

Время на прочтение7 мин
Количество просмотров30K
Привет, Хабр!

Хочу поделиться с общественностью своей небольшой (всего 6 Кбайт) js-библиотекой, которая сильно облегчает мне работу с формами при разработке сайтов, и позволяет сократить написание кода.
Читать дальше →
Всего голосов 30: ↑23 и ↓7+16
Комментарии18

Оптимизация картинок для Google PageSpeed

Время на прочтение2 мин
Количество просмотров93K
Нет предела совершенству, и Google PageSpeed тому доказательство. С его помощью меньше чем за минуту можно получить подробный отчет о производительности Web страницы. В подавляющем большинстве случаев PageSpeed подскажет, что нужно оптимизировать графику. Это наиболее частая проблема и наиболее весомая.



Например, даже на стартовой странице Google Developers графику можно сжать на 71%. Чем меньше весят фотки – тем быстрее грузится сайт. Меньше картинки — меньше трафика — все работает быстрее. Посетители тратят меньше времени – все довольны.

В этом материале подобраны основные инструменты для оптимизации графики.
Читать дальше →
Всего голосов 41: ↑35 и ↓6+29
Комментарии29

Scrollport.js — новая анимация скролла

Время на прочтение3 мин
Количество просмотров45K
image

Анимация скролла к месту страницы с момента изобретения почти не подвергалась никаким модификациям, никак не украшалась. Да никому и не надо вроде, и так все работает. Говоришь куда скроллить и за сколько нужно добраться. Всё.

Я решил на анимацию скролла посмотреть под другим углом. Не потому что сейчас с ним что-то не так, а потому что можно и поинтереснее. В результате некоторых наблюдений и всплесков фантазии удалось придумать 3 способа для более интересной анимации. В итоге завернул все в плагин «Scrollport.js» с 3 новыми и 1 классическим режимом. Смотрите демо и проходите под кат.
Читать дальше →
Всего голосов 60: ↑50 и ↓10+40
Комментарии39

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

Время на прочтение6 мин
Количество просмотров37K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Webtorrent




Полноценный торрент клиент для NodeJS и браузеров. Стримминг будет работать прямо в браузере благодаря WebRTC (data chanels) для P2P транспортировки. А самое главное «It's Just JavaScript™», то есть не нужны никакие дополнительные плагины или расширения. Проект собрал более 3000 звезд на GitHub и на данный момент предоставляет следующие возможности: непосредственно саму потоковую передача данных, загрузка нескольких торрентов одновременно, поддержку magnet uri, peer discovery и protocol extension api, возможность подключения WebTorrent клиентов на разных доменах, стримминг видео в <video> тег в формате (webm (vp8, vp9) или mp4 (h.264)), а также в AirPlay, Chromecast, VLC player и прочие устройства.

var WebTorrent = require('webtorrent')

var client = new WebTorrent()
var magnetUri = '...'

client.add(magnetUri, function (torrent) {
  // Got torrent metadata!
  console.log('Torrent info hash:', torrent.infoHash)

  torrent.files.forEach(function (file) {
    // Get a url for each file
    file.getBlobURL(function (err, url) {
      if (err) throw err

      // Add a link to the page
      var a = document.createElement('a')
      a.download = file.name
      a.href = url
      a.textContent = 'Download ' + file.name
      document.body.appendChild(a)
    })
  })
})

Читать дальше →
Всего голосов 49: ↑44 и ↓5+39
Комментарии17

Phalcon 2 вышел

Время на прочтение2 мин
Количество просмотров31K


Ожидание закончилось! Phalcon 2.0 уже здесь!

После более чем года разработки, мы невероятно рады объявить о выпуске финального релиза Phalcon 2.0.
Читать дальше →
Всего голосов 47: ↑41 и ↓6+35
Комментарии68

Дорогой веб-дизайнер, давай перестанем нарушать возможность скроллить

Время на прочтение3 мин
Количество просмотров64K


Мы все это видели. Вы заходите на веб-сайт — и вот она: большая, красивая фотография во весь экран. Сейчас это огромный (каламбур) тренд в веб-дизайне, и похоже, что людям это нравится.
Но так ли это?
Всего голосов 64: ↑53 и ↓11+42
Комментарии57

Информация

В рейтинге
Не участвует
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность