Pull to refresh
1
0
Sergey S @eloiman

Software Developer

Send message

Что такое product/market fit

Reading time2 min
Views2.2K
image

Эммет Шир, сооснователь Twitch

Я не уверен, что могу дать точное определение, но могу поделиться своим субъективным восприятием разницы, когда product/market fit есть, а когда его нет, как это ощущается. Основать стартап — значит взять на себя ношу Сизифа: затолкать камень на вершину горы.

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

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

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

Вы достигли «земли обетованной» — product/market fit. Теперь камень начинает катиться вниз с горы, вам не требуется его толкать. Пользователи толпятся к вам в очередях, спрос превышает ваши возможности. Камень начинает ускоряться.
Читать дальше →
Total votes 16: ↑10 and ↓6+6
Comments1

Кривая Безье на службе экономистов по труду

Reading time9 min
Views3.5K
(результирующее представление попытки разработки обоснования установленных окладов на предприятии)

Вместо аннотации


Если Вы хоть раз задумывались о необходимости обоснования размеров окладной части заработных плат работников предприятия, Вам требовалась наглядность и простота в принятии подобных решений, то Вы не одиноки и материал под катом для Вас. Здесь будет представлена скромная попытка реализации системы обоснования окладов на предприятии с применением современных механизмов комплексного оценивания для вывода бально-рейтинговой системы и кривых Безье, как основы приведения баллов к результирующим окладам.
Читать дальше →
Total votes 9: ↑8 and ↓1+7
Comments6

Как написать смарт контракт на WebAssembly в сети Ontology? Часть 2: С++

Reading time8 min
Views2.4K
image

В этой статье мы разберем на двух примерах, как написать смарт контракт на языке C++, используя WASM на основе блокчейн сети Ontology. Сегодня, после нескольких месяцев стабильной работы в тестовом режиме, Ontology запустила WASM в основной сети, что позволяет безболезненно и с меньшими издержками переносить контракты dApp со сложной бизнес-логикой на блокчейн, тем самым значительно обогащая dApp экосистему.

Ontology Wasm также поддерживает создание смарт контрактов на языке Rust, об этом можно почитать тут.

Ниже рассмотрим два примера смарт-контракта: сначала напишем “Hello world!” и потом создадим виртуальные денежный конверт, который можно будет отправить другу в качестве подарка.

Разработка WASM-контракта с помощью С++


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

Инициализация в современном C++

Reading time26 min
Views162K


Общеизвестно, что семантика инициализации — одна из наиболее сложных частей C++. Существует множество видов инициализации, описываемых разным синтаксисом, и все они взаимодействуют сложным и вызывающим вопросы способом. C++11 принес концепцию «универсальной инициализации». К сожалению, она привнесла еще более сложные правила, и в свою очередь, их перекрыли в C++14, C++17 и снова поменяют в C++20.


Под катом — видео и перевод доклада Тимура Домлера (Timur Doumler) с конференции C++ Russia. Тимур вначале подводит исторические итоги эволюции инициализации в С++, дает системный обзор текущего варианта правила инициализации, типичных проблем и сюрпризов, объясняет, как использовать все эти правила эффективно, и, наконец, рассказывает о свежих предложениях в стандарт, которые могут сделать семантику инициализации C++20 немного более удобной. Далее повествование — от его лица.

Total votes 62: ↑61 and ↓1+60
Comments125

Как «научиться учиться» — улучшаем внимательность

Reading time5 min
Views63K
Ранее мы рассказали, какие исследования стоят за популярными советами о том, как «научиться учиться». Затем обсудили метакогнитивные процессы и полезность «каракулей на полях».

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

Сегодня — обсудим концентрацию, «многозадачность» и прокачку внимания.

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

«Скользкие» места C++17

Reading time9 min
Views35K
image

В последние годы C++ шагает вперед семимильными шагами, и угнаться за всеми тонкостями и хитросплетениями языка бывает весьма и весьма непросто. Уже не за горами новый стандарт, однако внедрение свежих веяний — процесс не самый быстрый и простой, поэтому, пока есть немного времени перед C++20, предлагаю освежить в памяти или открыть для себя некоторые особо «скользкие» места актуального на данный момент стандарта языка. 

Сегодня я расскажу: почему if constexpr не является заменой макросов, каковы «внутренности» работы структурного связывания (structured binding) и его «подводные» камни и правда ли, что теперь всегда работает copy elision и можно не задумываясь писать любой return. 

Если не боишься немного «испачкать» руки, копаясь во «внутренностях» языка, добро пожаловать под кат.
Читать дальше →
Total votes 95: ↑94 and ↓1+93
Comments112

Криптографический алгоритм «Кузнечик»: просто о сложном

Reading time14 min
Views88K
В данной статье будет подробно рассмотрен алгоритм блочного шифрования, определенный в ГОСТ Р 34.12-2015 как «Кузнечик». На чем он основывается, какова математика блочных криптоалгоритмов, а так же как реализуется данный алгоритм в java.

Кто, как, когда и зачем разработал данный алгоритм останется за рамками статьи, так как в данном случае нас это мало интересует, разве что:

КУЗНЕЧИК = КУЗнецов, НЕЧаев И Компания.



Так как криптография в первую очередь основана на математике, то чтобы дальнейшее объяснение не вызвало уймы вопросов сначала стоит разобрать базовые понятия и математические функции, на которых строится данный алгоритм.
Читать дальше →
Total votes 46: ↑39 and ↓7+32
Comments51

Структура данных B-дерево

Reading time5 min
Views57K
Всем привет! Мы запустили новый набор на курс «Алгоритмы для разработчиков» и сегодня хотим поделиться интересным переводом, подготовленным для студентов данного курса.



В деревьях поиска, таких как двоичное дерево поиска, AVL дерево, красно-чёрное дерево и т.п. каждый узел содержит только одно значение (ключ) и максимум двое потомков. Однако есть особый тип дерева поиска, который называется B-дерево (произносится как Би-дерево). В нем узел содержит более одного значения (ключа) и более двух потомков. B-дерево было разработано в 1972 году Байером и МакКрейтом и называлось Сбалансированное по высоте дерево поиска порядка m (Height Balanced m-way Search Tree). Свое современное название B-дерево получило позже.
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments5

Жизнь на частицах 3D

Reading time4 min
Views9.8K

ПривеТ! Решил поделиться с читателями своими небольшими экспериментами с системами частиц в трехмерном пространстве. За основу взял публикацию на Хабре об экспериментах с частицами в 2D пространстве.


Total votes 57: ↑53 and ↓4+49
Comments21

Дайджест интересных материалов для мобильного разработчика #300 (27 мая — 2 июня)

Reading time3 min
Views5.6K
Понадобилось немногим более 6 лет на выпуск 300 дайджестов. Всем привет, меня зовут Леонид, и это я делаю эти статьи.

Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments9

Воссоздание старой DOS-игры на C++ 17

Reading time6 min
Views13K
В 2016 году я начал работу над хобби-проектом по реверс-инжинирингу игры Duke Nukem II и воссозданию с нуля его движка. Проект имеет название Rigel Engine и выложен в open source (его страница на GitHub). Сегодня, более чем два с половиной года спустя на моём движке уже можно пройти весь shareware-эпизод оригинальной игры с практически идентичным оригиналу игровым процессом. Вот видео с прохождением первого уровня:


Что же он может делать? Rigel Engine работает как полная замена оригинального двоичного файла DOS (NUKEM2.EXE). Можно скопировать его в каталог игры и он считает из него все данные, или же указать путь к данным игры как аргумент командной строки. Движок собирается и выполняется под Windows, Mac OS X и Linux. Он основан на SDL и OpenGL 3/OpenGL ES 2, а написан на C++ 17.

Он реализует игровую логику всех врагов и игровых механик из Shareware-эпизода, плюс бОльшую часть системы меню. Кроме того, в него можно импортировать сохранённые игры и таблицу рекордов из оригинальной игры.
Total votes 55: ↑54 and ↓1+53
Comments9

Осторожный переезд в Нидерланды с женой и ипотекой. Часть 1: поиск работы

Reading time12 min
Views108K
На Хабре да и вообще в русскоязычном Интернете есть немало инструкций о том, как перебраться в Нидерланды. Я и сам немало полезного почерпнул из одной статьи на Хабре (ныне, видимо, скрытой в черновике уже нет, вот она). Но я все-таки расскажу о своем опыте поиска работы и переезда в эту европейскую страну. Помнится, и когда я только собирался рассылать резюме, и когда уже проходил собеседования, мне было очень интересно почитать об аналогичном опыте других коллег по цеху.

image

В общем, если вам интересен рассказ о том, как C++ программист из Подмосковья искал работу в Европе, желательно в Великобритании, а нашел-таки в Нидерландах, переехал туда сам и привез жену, все это с непогашенной ипотекой в России и с небольшими приключениями — добро пожаловать под кат.
Читать дальше →
Total votes 216: ↑202 and ↓14+188
Comments306

Минимум один трюк Vim, про который вы не знали

Reading time10 min
Views36K
Я уже восемь лет работаю в Vim и постоянно открываю что-то новое. Принято считать это достоинством Vim. Как по мне, так это недостаток открытости: куча скрытых функций спрятаны слишком глубоко.

Вот говорят о красоте модального редактирования и текстовых объектах, но мне кажется, что суть Vim не в этом. Vim — это лоскутное одеяло из подсистем, под завязку забитых дополнительными инструментами. Только в обычном режиме редактирования более сотни комбинаций клавиш! Такая плотность инструментария в значительной степени объясняет, почему Vim настолько полезен. Если «показать все теги для ключевого слова» — это просто g], то этой командой будут пользоваться гораздо чаще.

В системах с недостатком открытости приходится полагаться на руководства. Но для Vim их не так уж много. Есть статьи для новичков, такие как ciw (не путать с CIA, мануалом ЦРУ по Vim) и тому подобное. И есть статьи экспертов, которые погружаются в подсистемы. Но никто на самом деле не говорит об этих особых трюках, которые заставляют воскликнуть: чёрт побери, как мне это было нужно в течение последних шести лет!
Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments16

Город без пробок

Reading time28 min
Views26K

Ⅰ.Искусство разумно применять светофоры


Ⅱ.Искусство проектирования дорожных сетей




Глава первая.

Искусство разумно применять светофоры


Маленькое предисловие


Каждый день, оказываясь рядом с перекрестком, мы наблюдаем одну и ту же картину, как на зеленый свет машины мчатся вперед, а на красный — они скапливаются перед светофором в длинные очереди бесполезного ожидания. Но насколько привычное является одновременно необходимым и можно ли сделать так, чтобы в своем путешествии по городу автомобилистам почти не приходилось «стоять» на красный свет? Я думаю, многие из нас слышал о мифических «зеленых волнах». Попав в такую волну и поддерживая определенную скорость, автомобилист чудесным образом будет подъезжать к каждому перекрестку как раз в то время, когда светофор горит в его сторону зеленым светом. Довольно просто организовать распространение таких «волн» вдоль одной изолированной дороги, но совсем не очевидно, можно ли это сделать на дорогах всего города сразу.
Читать дальше →
Total votes 51: ↑47 and ↓4+43
Comments310

Компиляция C в WebAssembly без Emscripten

Reading time11 min
Views13K
Компилятор — часть Emscripten. А что, если удалить все свистелки и оставить только его?

Emscripten необходим для компиляции C/C++ в WebAssembly. Но это гораздо больше, чем просто компилятор. Цель Emscripten в том, чтобы полностью заменить ваш компилятор C/C++ и запустить в вебе код, который изначально не предназначен для Сети. Для этого Emscripten эмулирует всю операционную систему POSIX. Если программа использует fopen(), то Emscripten предоставит эмуляцию файловой системы. Если используется OpenGL, то Emscripten предоставит С-совместимый контекст GL, поддерживаемый WebGL. Это немалая работа, и немало кода, который придётся внедрить в итоговый пакет. Но можно ли просто… удалить его?
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments5

Примитивная графика для ленивых, олдфагов и ленивых олдфагов

Reading time2 min
Views21K
Привет, Хабр. Напоролся я не так давно в сети на довольно простенькую библиотеку для работы с графикой в С/С++, которая может быть полезна школьникам и студентам в их программных изысканиях (не требуя при этом почти никаких знаний), а также некоторым олдфагам, которые помнят древнюю как мамонт графику для DOS. В частности, такой примитивный графический либ, как graphics.h для Турбо Си, на который до сих пор влажно смотрят учителя информатики в школах и преподаватели программирования в универах.
Читать дальше →
Total votes 23: ↑12 and ↓11+1
Comments6

Талант против удачи: роль случайности в успехе и провале

Reading time45 min
Views40K


Недавно я натолкнулся на интересную работу итальянских учёных о сильно недооценённой роли удачи и случайности в нашей жизни. К сожалению, не нашёл полной версии на русском языке (может, плохо искал?), но очень уж хотелось поделиться прочитанным со своими не владеющими английским товарищами. Поэтому, засучив рукава, принялся за свой кустарный перевод. Авторы, Алессандро, Алессио и Андреа, любезно разрешили опубликовать его в общем доступе, поэтому, если заинтересовались, добро пожаловать под кат.
Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments58

(Статический) Подбор оптимальных контейнеров в программах на C++

Reading time9 min
Views9.1K
Здравствуйте. Сегодня хотелось бы поговорить снова про статический анализ. И снова про C++. Только в отличие от PVS-Studio мы будем искать не какие-то ошибки в наших программах (хотя они ищут не только ошибки), а места, которые написаны недостаточно оптимально. И одним из таких мест является выбор контейнера для данных в программе. Если я вас заинтересовал, то добро пожаловать под кат!
Читать дальше →
Total votes 28: ↑27 and ↓1+26
Comments42

Дайджест интересных материалов для мобильного разработчика #301 (3 — 9 июня)

Reading time3 min
Views4.6K
Наконец-то можно сказать, что WWDC получился. Роскошный SwiftUI, новые версии операционных систем и новая iPadOS, App Store на часах, PencilKit, Catalyst для портирования приложений на macOS, новые инструменты для виртуальной реальности, реактивный Combine. На полгода разбираться как минимум. А потом уже и новую конференцию можно будет ждать.

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

Запрещенный контент в Google Play — квест на выживание

Reading time8 min
Views19K
В статье приводятся официальные правила от Google Play, что считается запрещенным контентом и не должно у них публиковаться. (Версия правил от июня 2019)

Статья будет полезна следующим группам лиц:

  • Разработчики приложений, и особенно игр, которые пропускают чтение этих правил, а потом удивляются, почему же их забанили.
  • Пользователи, которые смогут оценить, почему разработчики боятся модерации Гугла. Это поможет взглянуть на проблемы с другой стороны «баррикад» на «ленивых разработчиков».
  • Кому интересно, в каком наборе пикселей можно разглядеть шерифа Вуди из Истории Игрушек.

Fake Slap!

Fake Slap! — её тоже удалили из Google Play. Тут нарушение очевидно, но во многих других случаях нет.
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments48
1

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Software Developer, Embedded Software Engineer
Senior
C++
WinRT
Linux
Android SDK
Android NDK
Java
JavaScript
Erlang/OTP
FPGA
Unreal Engine