Обновить

Экономика продукта. Анализ выручки

В прошлой статье [https://habr.com/sandbox/121807/] я рассказал о начале анализа продукта с его валовой прибыли. Продолжим подход "top-down" и разложим на составляющие выручку.
Общая картина теперь будет такой:


Читать дальше →

Excel vs Таблицы Google

Пример из практики. Понадобилось разобрать вот такие строки из 0 и 1, что на фото 1 в ячейке A2.

image

Это кусочки BMP, что, впрочем, неважно.

Каждая последовательность длиной 4 байта, т.е. 32 бит. Нужно было извлечь из таких последовательностей серии единиц и измерить длину этих серий.

Для данного примера нужно было получить на выходе 1 2 1 2 7.

Можно было начать с распределения символов по столбцам, использовав штатную Экселевскую приблуду Данные/Текст по столбцам. Однако, это требует ручной установки 31 разделителя, что, конечно же, влом. Хотелось, чтобы было так: загрузил на лист кучку байт и сразу получил результат.

Поэтому пришлось нагородить набор костыликов.

В ячейке B2 избавился от лишних нулей формулой СЖПРОБЕЛЫ. Предварительно пришлось нули заменить на пробелы формулой ПОДСТАВИТЬ, а после сжатия вернуть их на место этой же формулой.

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

В D2 — формула (видна на фото 2).

image

Находит позицию первого нуля. В E2 — второго и т.д. Как видим, в сжатой последовательности (B2) первый ноль — в позиции 2, второй — в 5-й, третий — в 7-й и 4-й ноль — в 10-й. В последовательности всего 4 нуля, и поэтому в H2 отобразилась бы ошибка #ЗНАЧ, если бы не обработка этой ошибки формулой ЕСЛИОШИБКА. Она заменяет #ЗНАЧ на 99. «Почему 99?» — вы можете спросить. Это число нам понадобится в дальнейших расчетах, терпение.
Читать дальше →

Децентрализация цензуры и самоцензура

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

Читать дальше →

OCaml. Попытка понять, что такое монадические трансформеры

Эта заметка, я хочу надеяться, может оказаться полезной для тех, кто, как я, имеет базовое
представление о монадах, и ни малейшего о трансформерах.
Читать дальше →

Установка «USB Redirector» на Raspberry Pi

Предисловие


Итак, поставлена задача, из офиса пробросить USB устройство на удаленный 1С сервер, расположенный за пределами РФ, подключенный к внутренней сети офиса через VPN.
После недолгих и малозначемых событий я решил задействовать для решения этой задачи Raspberry Pi 3 model B (далее малинка) с USB Redirector на борту. И тут начались приключения, которые поможет обойти данный мануал.

1. Дистрибутив Raspbian Stretch с версией kernel 4.14.44-V7+ категорически не хочет дружить с редиректором. Ни под каким предлогом.

2. Для нормальной установки требуются linux-sources и linux-headers, которые отсутствуют в своем нормальном виде в стоковых репозиториях raspbian stretch.

И после нескольких часов перекапывания гугла я нашел решение.
Читать дальше →

Top-Down approach. Экономика продукта. Gross Profit

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


Ключевая задача — пройтись по всем инструментам управления и оценки продукта, обсудить используемые управленческие, маркетинговые и аналитические инструменты. Погрузится в применении Big Data и Machine Learning в развитии продукта, определить возможности этих решений и их применимость.


Экономика продукта


Чтобы не заблудится в хитростях оценки продуктов и эффектов в них, лучше всего начать с общей картины. Для этого и используется подход Top-down, когда мы спускаемся от самых общих экономических характеристик до атомарных событий, происходящих в продукте. Такой подход позволяет всегда понимать, как каждая характеристики продукта связана между собой и всегда иметь полную картину продукта.


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


Финансы продукта начинаются с простой формулы:


Читать дальше →

Есть идея, нет названия. О нейминге



Итак, перед вами встала непростая задача – придумать имя, которое легко запомнится, не будет иметь аналогов на рынке и максимально отразит суть вашего бизнеса. Звучит страшно?

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

Мы составили свой собственный топ советов по выбору имени компании в поддержку тем, кто все-таки решил попытать свои силы, и заранее искренне желаем удачи!
Читать дальше →

Перевод: Тёмная сторона эргономики

Привет, Хабр! Представляю вашему вниманию перевод статьи "The dark side of ergonomics".


Дисклеймер: Тема, о которой я собираюсь рассказать, несколько спорна и потенциально непопулярна. Я не собираюсь троллить, провоцировать холивар или задевать чьи-либо чувства. Не давайте моему несогласию с чем-то препятствовать вам. Если бы вы и люди вроде вас не проделали столько отличной работы над Rust, я бы не стал о чем-либо спорить. Моё намерение в том, чтобы поделиться иной точкой зрения и начать разумную дискуссию, а не войну. Поэтому, я попрошу кое о чём. Не соглашайтесь с тем, что я пишу, если хотите, но попробуйте обдумать это. И если у вас возникнет желание прокомментировать, сделайте это, но, может быть, дайте себе полчаса на то, чтобы эмоции остыли. У меня тоже есть эти чувства, и обещаю, что постараюсь сделать то же самое (я перечитываю эту статью уже несколько часов).

Читать дальше →

Обзор паяльной станции KSGER

Доброго времени суток, Хабр! В это обзоре я бы хотел рассказать о паяльной станции KSGER спустя пару месяцев активного использования, рассказать о плюсах и некоторых нюансах этого устройства.

Внешний вид


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


Рисунок 1, внешний вид.
Читать дальше →

Обзор новых возможностей С# 7.3

image

В мае вышла новая версия Visual Studio, где была добавлена поддержка новой версии языка — 7.3. Язык продолжает планомерно развиваться и несмотря на то, что релиз C# 7.3 является минорным в нем исправлено несколько застарелых проблем, живущих в языке начиная с первой и второй версии. Давайте посмотрим более подробно, что именно было добавлено.
Читать дальше →

Яндекс(?)-Попутчик. Идея приложения

Нередко езжу в машине один. И если еду далеко — смотрю на людей на остановках и часто понимаю — многих из них я мог бы подвезти. Но не беру — не хочу рисковать — люди незнакомые, да и, наверное, долго обсуждать, до куда, как, что… На них ведь не написано — куда им, кто такие. Но ведь всё это легко исправить?

image
Читать дальше →

Настройка Mikrotik в связке с DNS для обеспечения доступности сервисов

Привет, Хабр!

Данная статья не претендует на уникальность, возможно где-то уже реализовано. Но однако понадобилось. Итак, имеем, роутер Mikrotik RB3011 и два канала разных операторов с «белыми» IP-адресами, свой домен и сервисы которые должны быть доступны извне сотрудникам. Само наше оборудование запитано хорошо, АКБ +дизель. Но в силу того, что головной офис расположен в городе Махачкала, а с электричеством у нас иногда бывает ахтунг, то может оказаться в оффлайне один из коммутаторов оператора и соответственно канал связи!

А все сервисы связанные с этим каналом и «белым» IP-адресом будут не доступны для удаленных сотрудников, решено было завести второго, а еще и третьего оператора и настроить DNS.
Читать дальше →

Решение проблемы с поддержкой кодировок в утилитах lrelease.exe и linguist.exe

Для разработки графического интерфейса использую Qt 4.8.6. Возникла необходимость написать приложение поддерживающее несколько языков интерфейса. При написании столкнулся с проблемой — отсутствие поддержки кодировки Windows-1251 в утилитах lrelease.exe и linguist.exe.

Для решения проблемы необходимо:

  1. Собрать $QtDir\src\tools\bootstrap\ без ключа QT_NO_CODECS
  2. Собрать $QtDir\tools\linguist\lrelease\
  3. Собрать $QtDir\tools\linguist\linguist\ предварительно внеся изменения в файл $QtDir\tools\linguist\linguist\messagemodel.cpp

в методе: bool DataModel::release(const QString &fileName, bool verbose, bool ignoreUnfinished, TranslatorSaveMode mode, QWidget *parent)

после строки: tor.setLanguageCode(locale.name());
добавить строку: tor.setCodecName(m_codecName);

Изменения в исходном коде утилиты linguist.exe необходимы если вы собираетесь использовать её для генерации QM файлов, в противном случае достаточно пересобрать только lrelease.

Данная проблема актуальна и для Qt 5.
Читать дальше →

Это баг или фича Lingvist

Введение


Привет хабровоинам.

Сегодня я напишу статью о небольшой уязвимости сервиса lingvist. Моя первая статья на Хабре, поэтому как принято писать, кхм… цитирую «помидорами просьба не кидать».

Все началось с того ( чавкая вставной челюстью ) когда я решил поизучать анг. язык.
Нашел данный сервис, зарегистрировался и все бы ничего, но сервис лингвист из-за незнания моего уровня прошаренности в анг.яз, без калибровочного теста начал давать ну совсем простые слова, вроде dog, i, you and other easy words.

Вообщем решил 100 — 200 слов вдруг вспомнилась поговорка:
«хороший программист — ленивый программист» ©.

А ведь действительно и началось.
Читать дальше →

Клиент-серверное взаимодействие в реальном времени с помощью веб-сокетов

Перевод статьи Джона МюллераWhat Is a WebSockets Push-Styled API and How Does It Work?

Технологии отправки уведомлений от сервера к клиенту (пуш-технологии) должны покрывать различный набор данных и потребностей пользователей. В первой и второй части серии (ссылки на оригинал, прим.) обсуждались методы обеспечения обмена данными между серверами в реальном времени, при которых клиенты получали обновления данных постфактум (не в режиме реального времени, прим.). Однако, иногда требуется отправить данные от сервера к клиенту, в режиме реального времени, и тут пригодятся веб-сокеты (WebSockets). В данной статье обсуждаются возможности веб-сокетов и их отличие от остальных пуш-технологий.
Читать дальше →

Функциональные уравнения: Часть 1

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


Функциональное уравнение — уравнение, связующее значение функции в одной точке с её значениями в других точках.


Другими словами, в функциональных уравнениях место неизвестного занимает функция. Для примера, рассмотрим такое функциональное уравнение:
$$display$$2f(x)=2$$display$$ Тут интуитивно хочется разделить обе части уравнения на 2, что сработает и мы узнаем ответ: $$display$$2f(x)=2 \Rightarrow f(x)=1$$display$$ Значит ответом на функциональное уравнение может быть только значение f(x), или похожее (это обычно указывают в условии задачи).
Рассмотрим некое функциональное уравнение, где с обоих сторон будут стоят функции. $$display$$4f(x)=2f(x)+2x \Rightarrow 2f(x)=f(x)+x \Rightarrow f(x)=x$$display$$ Стоит отметить что функция всегда имеет под собой число ($inline$f(x)=x+2, f(1)=3, f(5)=7$inline$, а значит можно производить над ними арифметические операции. Давайте рассмотрим функциональное уравнение из двумя переменными. Задание

Читать дальше →

Так ли хорошь XUBUNTU 18.04?

Fénix

XUBUNTU 18.04




Desktop




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


На первый взгляд перед нами очередной дериват всеми известной UBUNTU, однако в нашем случае данное ответвление имеет ряд преимуществ над основным продуктом компании Canoncal. Основные и, пожалуй, главные отличия заключаются в производительности.
Далее

Javascript для новичков или немного о приватности

Для тех, кто приходит в Javascript с класс-ориентированных языков программирования, этот язык вызывает некоторые вопросы (у меня они точно возникли). У Javascript свой подход к ООП. Помимо создания объектов просто через фигурные скобки, язык предоставляет возможность использования конструкторов. И здесь начинаются интересные вещи. Если поискать в интернете, то существует два основных подхода к созданию конструкторов.
Читать дальше →