Pull to refresh
26
0
Владимир @boolive

Пользователь

Send message

Вы ничего не знаете про SEO, или как подготовиться к неизбежному – тренды онлайн-продвижения ближайших 5-ти лет

Reading time 14 min
Views 20K

SEO будущего – это уже не про сайты. Это не про развитие бложика на Виси или Хабре. Современное SEO –  это новая парадигма понимания самой сути продвижения в интернете.

Читать далее
Total votes 32: ↑23 and ↓9 +14
Comments 38

Наш опыт получения гранта 4 млн рублей от государства. Деньги на счету

Reading time 13 min
Views 10K

Привет, меня зовут Максим Кульгин, поделюсь с вами нашим опытом получения гранта 4 млн. от фонда содействия инновациям (ФСИ, фонд Бортника) на наш новый ИТ-проект. Т.к. деньги гранта вчера поступили нам на счет, то появился материал сделать новую, более прикладную статью.

Материал является продолжением статьи (см. первую часть статьи) , где я рассказывал основные моменты для одобрения гранта, а сейчас расскажу больше деталей. Со стороны кажется, что получить грант очень сложно, но сейчас, оглядываясь назад, я не вижу особых препятствий и постараюсь облегчить вам этот процесс. Пожалуйста, прочитайте часть 1, т. к. вопросы-ответы могут не повторяться.

Предисловие: я никак не связан с фондом, нет общих-личных знакомых-родственников. Искренне считаю, что в отсутствии венчурного рынка в России, ФСИ делает огромное дело и позволяет молодым ИТ-стартапам (да и не только ИТ) получить первое финансирование для проведение НИОКР, а далее может поддержать грантами стадию коммерциализации. Для тех, кто пугается слова «НИОКР» могу предложить другую модную формулировку — custdev (вы разрабатываете ваш продукт и оцениваете его востребованность на рынке). Напомню, что грант — это безвозмездные деньги на развитие (доля в бизнесе НЕ размывается).

Читать далее
Total votes 28: ↑23 and ↓5 +18
Comments 20

Память в браузерах и в Node.js: ограничения, утечки и нестандартные оптимизации

Reading time 32 min
Views 40K

Интро: почему я написал эту статью


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



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


Разрабатывая проект на JavaScript (TypeScript, ClojureScript или каком-то другом языке, транслируемом в JavaScript), мы привыкли создавать объекты, массивы, строки и вообще писать код, как будто память бесконечна. Это не так. Я расскажу о видах проблем с памятью, о том, какие ограничения мы часто забываем и как их можно преодолеть. В ответ браузеры и пользователи скажут вам спасибо.


Читать дальше →
Total votes 55: ↑55 and ↓0 +55
Comments 12

WebRTC для всех и каждого. Часть 1

Reading time 26 min
Views 55K



Привет, друзья!


Представляю вашему вниманию первую часть перевода этой замечательной книги по WebRTC. Данная часть посвящена тому, что такое WebRTC, процессу сигнализации и установки соединения (первые 3 части оригинала).


Справедливости ради следует отметить, что на Хабре уже публиковался "вольный" перевод первых 2 частей оригинала (часть 1, часть 2), но автор по какой-то причине решил не продолжать. Я, свою очередь, решил начать с самого начала, без лишних вольностей и сокращений.


Ссылка на вторую часть перевода.


Если вам это интересно, прошу под кат.

Читать дальше →
Total votes 14: ↑14 and ↓0 +14
Comments 6

Как правильно верстать в 2022 году. Часть 1

Reading time 11 min
Views 87K

Меня зовут Николай, я Frontend-разработчик IT-компании Relog. Хочу рассказать о самых распространённых ошибках в вёрстке современных проектов.

Дело в том, что лишь малая часть современных фронтендеров обращает внимание на работу с HTML и CSS, предпочитая готовые решения, вроде UI-библиотек и систем сеток. Но эти решения неидеальные и приходится дописывать обёртки вокруг них, видоизменять код, переписывать стили и совершать прочие действия для соответствия требованиям проекта. Тут-то и начинаются проблемы: вёрстка местами становится избыточной, стили переназначются через important и с каждым релизом проект всё сложней поддерживать. Я уже не говорю об удобстве использования и доступности. Об этом думают вообще в последнюю очередь.

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

Читать далее
Total votes 48: ↑46 and ↓2 +44
Comments 41

Линейная алгебра для разработчиков игр

Reading time 19 min
Views 760K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Total votes 314: ↑296 and ↓18 +278
Comments 61

React испортил веб-разработку

Reading time 4 min
Views 39K
В начале июня я посетил конференцию разработчиков .debug, на которой у моей компании был свой стенд. Смысл стенда заключался в том, чтобы создать ситуацию «Измени моё мнение»: мы представляли какую-нибудь радикальную идею, предлагали людям обсудить её с нами, а потом показывали им, что интересного мы делаем.

Мы решили взять такую идею:


Моим первым оппонентом стал этот молодой парень справа, создающий приложения на нативном React.

Если серьёзно, то React — это хорошая библиотека. Она важна для веб-разработки, потому что в ней используются декларативные и реактивные шаблоны, а такой сдвиг парадигмы в момент её создания был нужен всем. В те времена (6-7 лет назад) возникали проблемы с движками рендеринга и реактивностью, но React довольно неплохо их решил.
Читать дальше →
Total votes 65: ↑52 and ↓13 +39
Comments 51

В русском языке не менее 15 падежей (к международному дню русского языка)

Reading time 2 min
Views 43K

А ЗНАЕТЕ ЛИ ВЫ, что в русском языке не менее 15 падежей. Не только было, а всё ещё есть. Не верите?

«… и никогда не теряйте дара речи» - этой фразой я заканчивала каждую телепрограмму «Знают ли русские русский?»

Как странно, есть же фраза «он просто ДАР речи потерял», но при это «не теряйте ДАРА речи». Почему «дара»? Почему одно и то же существительное с тем же глаголом даёт две разные формы? Потому что это лишительный падеж, он используется с глаголами с частицей «не». «Я не хочу знать правды» (сравним: «хочу знать правду»), «он не имеет права» (а когда имеет, то «право»)

Помните фразеологизм «Врачу, исцелися сам!» (это на церковно-славянском, на латыни: Medice, cura te ipsum)? Что это за «врачу»? Это звательный падеж! В некоторых языках, например, в чешском, он сохранился в полной мере.

Несколько лет назад я услышала, как моя чешская знакомая зовёт своего пса по кличке Арчик:

- Арчику! Арчику!

- В чешском есть звательный падеж? – сразу заинтересовалась я.

Оказалось, да, есть и он образуется так же, как «врачу» из фразеологизма.

Звательный падеж: «Отче, княже, старче...» «Что тебе надобно, старче?» - это как раз из Пушкина, чей день рождения сегодня отмечаем.

Сейчас, конечно, чаще используется новозвательный падеж: «мам, пап, Танюш, Саш...»

«Баллотироваться в мэры. Взять в жёны. Пойти в лётчики…» Что это за форма? Это же не множественное число в именительном падеже)) Это превратительный (включительный) падеж. Он пошёл «превращаться» в лётчика, включаться в категорию «лётчики»

Счетный падеж — встречается с числительным, когда мы что-то считаем: «машины едут в два рядА» (родительный падеж: «из левого рЯда»), «а до смерти четыре шагА» (не «шАга»).

Читать далее
Total votes 145: ↑131 and ↓14 +117
Comments 389

Манифест: почему я не делаю свой пет-проджект постоянной работой

Reading time 10 min
Views 15K


Когда доходы от продаж с моего сайд-проекта пробили отметку $100k, я, к собственному удивлению, обнаружил:

Не хочу бросать основную работу.

Никакого позыва написать, что наконец-то я бросаю «крысиные бега». Не написал ни единого твита о том, как я стал творить, и «изменил собственную жизнь. (И вам это под силу! Купите мой курс!)». Не написал письма в духе Джерри Магуайера.

Подумал, может со мной что не так. Зависая в соцсетях, я постоянно натыкался на фетишизацию трудоголизма, из-за чего меня подмывало бросить работу. Такая свобода подобна нирване, «все или ничего» и, как только вкусишь ее, пути назад не будет. Чем не киносценарий?  

Я хочу написать новый сценарий – о тех, кто Творит По Совместительству. Давайте определим, что это такое, почему этим стоит заниматься, как дать этому ход, а потом довести до ума.

Не просто деньги


Годовой заработок в $100k всегда казался мне планкой, с которой начинается успешный «независимый доход». В лучшие годы мои родители зарабатывали меньше, а в большинстве городов $100k хватает на самообеспечение и даже на то, чтобы прокормить семью. Еще лучше, если доход целиком пассивный – мечтал, каково путешествовать по свету, а деньги пускай зарабатываются, пока я сплю.  
Читать дальше →
Total votes 47: ↑43 and ↓4 +39
Comments 11

Шардинг, от которого невозможно отказаться

Reading time 13 min
Views 20K
image

А не пора ли нам шардить коллекции?
Не-е-е:


  • у нас нет времени, мы пилим фичи!
  • CPU занят всего на 80% на 64 ядерной виртуалке!
  • данных всего 2Tb!
  • наш ежедневный бекап идет как раз 24 часа!

В принципе, для большинства проектов вcё оправдано. Это может быть еще прототип или круг пользователей ограничен… Да и не факт, что проект вообще выстрелит.
Откладывать можно сколько угодно, но если проект не просто жив, а еще и растет, то до шардинга он доберется. Одна беда, обычно, бизнес логика не готова к таким "внезапным" вызовам.
А вы закладывали возможность шардинга при проектировании коллекций?


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


Сначала, мы будем учится жить со слонами.
Потом, мы их победим, но не сможем вернуться назад.

Читать дальше →
Total votes 18: ↑18 and ↓0 +18
Comments 0

CRDT, RON и Сети Данных

Reading time 6 min
Views 6.5K

Эта статья о следующем эволюционном шаге в развитии систем обработки данных. Тема амбициозная, поэтому расскажу сначала немного о себе. Вот уже больше 10 лет я работаю над проектами в области CRDT и синхронизации данных. За это время успел поработать на университеты, стартапы YCombinator и известные международные компании. Мой проект последние три года – Replicated Object Notation, новый формат представления данных, сочетающий возможности объектной нотации (как JSON или YAML), сетевого протокола и оплога/бинлога. Вы могли слышать про другие проекты, работающие в том же направлении, например, Datanet, Automerge и другие. Также вы могли читать Local-first software, это наиболее полный манифест данного направления Computer Science. Авторы - замечательный коллектив Ink&Switch, включая широко нам известного по "Книге с Кабанчиком" М.Клеппманна. Или вы, возможно, слушали мои выступления по этой теме на различных конференциях.

Идеи этой статьи перекликаются с тем, что пишет последние годы Pat Helland: Immutability Changes Everything и др. Они смежны с проектами IPFS и DAT, к которым я имею отношение.

Итак. Классические БД выстроены на линейном логе операций (WAL). От этого лога выстроены транзакции, от него же выстроена репликация master-slave. Теория репликации с линейным логом написана ещё в начале 1980-х с участием небезызвестного Л. Лампорта. В классических legacy системах с одной большой центральной базой данных всё это работает хорошо. Так работают Oracle, Postresql, MySQL, DB2 и прочие классические SQL БД. Так работают и многие key-value БД, например, LevelDB/RocksDB.

Но линеаризация не масштабируется. Когда система становится распределённой, всё это начинает ломаться. Образно говоря, линейная система – это что-то вроде греческой фаланги. Нужно, чтобы все шли ровно, а для этого хорошо, чтобы земля была везде ровной. Так получается не всегда: где-то электричество отключили, а где-то сеть медленная. Хотя в системе Google Spanner и было показано, что с достаточно большим бюджетом землю можно сделать ровной абсолютно везде, мы всё же отметим, что Google тоже бывает отключается целиком по совершенно смешным причинам.

Читать далее
Total votes 24: ↑22 and ↓2 +20
Comments 8

20 небольших, но вдохновляющих вызовов веб-разработчику

Reading time 7 min
Views 21K
Специально к старту нового потока курса «Frontend-разработчик» делимся переводом подборки с 20 проектами для освоения фронтенда. Эта подборка хорошо подходит, если вы хорошо знакомы с какой-то областью разработки ПО и хотите глубже копнуть во фронтенд. Также она прекрасно подходит людям, которые не хотят начинать знакомство с фронтендом со стандартных проектов. Проекты довольно небольшие, и у каждого указан уровень сложности. С помощью этих проектов вы ознакомитесь с Tone.js — обёрткой над Web Audio, освоите необычно мягкую смену темы со светлой на темную, и наоборот, а почти в конце ждёт самое вкусное — управляемая голосом векторная графика SVG.


Приятного чтения!
Total votes 42: ↑35 and ↓7 +28
Comments 18

Three.js и геометрия

Reading time 4 min
Views 7.9K

При использовании для отображения в браузере библиотеки ThreeJS в качестве первого примера обычно выступает куб или какой-либо другой простейший объект, и он создается при помощи предустановленных специальных классов BoxGeometry или SphereGeometry. Затем обычно рассматривается использование импортируемых готовых моделей и работа с ними.

Но иногда требуется создать трехмерный объект для отображения в браузере полностью с нуля – только используя аналитическую геометрию. В данной статье рассматривается именно такой подход к построению интерактивно настраиваемых моделей и последующего их отображения в браузере.

Читать дальше →
Total votes 15: ↑15 and ↓0 +15
Comments 0

Шпаргалка по сортировке для Data Science

Reading time 11 min
Views 22K
image

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

Выбор библиотеки и типа алгоритма сортировки не всегда прост, а нововведения меняются в быстром темпе. На данный момент документация Pandas не соответствует коду (хотя лично мое PR-обновление сортировочных опций было самым последним).

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

UPD 17 июля 2019: В результаты оценки теста скорости теперь входят реализации GPU PyTorch и TensorFlow. TensorFlow также включает в себя результаты CPU как при tensorflow==2.0.0-beta1, так и при tensorflow-gpu==2.0.0-beta1. Интересные наблюдения: графический процессор PyTorch буквально летает, а GPU TensorFlow оказался медленнее CPU TensorFlow.

Контекст


Базовых алгоритмов сортировки существует множество. Одни из них имеют высокую производительность и занимают меньше места, другие хорошо работают с большим числом данных. Для некоторых алгоритмов важно взаимное расположение элементов данных. На диаграмме в начале статьи можно увидеть ситуацию по времени и объему для самых распространенных алгоритмов.
Читать дальше →
Total votes 19: ↑13 and ↓6 +7
Comments 2

Библиотека ttf2mesh — преобразование TrueType шрифтов в сетку

Reading time 11 min
Views 6.7K

Многим известна проблема трёхмерной графики — отсутствие легковесных кроссплатформенных решений в вопросе вывода текста.


Большинство реализаций позволяет использовать выбранный шрифт в виде текстуры. Публикуемая библиотека ttf2mesh реализует другой способ — она преобразует векторные символы TrueType шрифта в сеточные объекты. Это позволяет выводить текст в виде набора треугольников.


image


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

Читать дальше →
Total votes 34: ↑34 and ↓0 +34
Comments 15

Form design patterns. Обзор книги

Reading time 4 min
Views 17K
image

Введение от автора обзора


Книга раскрывает, порой не очевидные для дизайнеров и фронтендеров, темы оформления полей, концепции работы с типами данных и юзабилити. Книга будет полезна и новичкам и разбирающимся в теме проектировщикам интерфейсов, т. к. первым даст понимание основ, а вторым пищу для размышлений над, порой спорными, паттернами проектирования. Обзор будет представлен в виде коротких тезисов из книги и краткими комментариями обзорщика.
Читать дальше →
Total votes 24: ↑23 and ↓1 +22
Comments 36

Этот восхитительный Юникод

Reading time 27 min
Views 92K


Перед вами обновляемый список самых замечательных «вкусностей» Юникода, а также пакетов и ресурсов

Юникод — это потрясающе! До его появления международная коммуникация была изнурительной: каждый определял свой отдельный расширенный набор символов в верхней половине ASCII (так называемые кодовые страницы). Это порождало конфликты. Просто подумайте, что немцам приходилось договариваться с корейцами, где чья кодовая страница. К счастью, появился Юникод и ввёл общий стандарт. Юникод 8.0 охватывает более 120 000 символов из более 129 письменностей. И современные, и древние, и до сих пор не расшифрованные. Юникод поддерживает текст слева направо и справа налево, наложение символов и включает самые разные культурные, политические, религиозные символы и эмодзи. Юникод потрясающе человечен, а его возможности сильно недооцениваются.
Читать дальше →
Total votes 64: ↑64 and ↓0 +64
Comments 56

ЭВМ «Таймыр» — эволюция наоборот

Reading time 2 min
Views 37K
Захотелось мне сделать что-нибудь, пусть бесполезное, но зато своё. И не под чью-то копирку, а свое — с нуля. Так и родилась идея собрать процессор из микросхем 155-й серии (и немного других серий). А там так завертелось, что процессор плавно перерос в ЭВМ. В ЭВМ с собственной микроархитектурой и своим компилятором.. И главная «фишка» проекта: все это собрано на гетинаксе и микросхемах времен СССР.


Читать дальше →
Total votes 171: ↑169 and ↓2 +167
Comments 146

Как в одиночку запустить продукт, если вы разработчик: советы от создателя Laravel Тейлора Отвела. Часть 2: Поиск идеи

Reading time 5 min
Views 16K


В прошлом выпуске мы рассматривали различные способы формирования аудитории. Когда есть аудитория — есть потенциальные покупатели. Теперь осталось придумать, что им продавать.

Откуда брать идеи для своего продукта?
Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Comments 3

Что такое быть тимлидом

Reading time 14 min
Views 31K

Интро


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


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


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

Читать дальше →
Total votes 74: ↑71 and ↓3 +68
Comments 48

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity