Size: a a a

2020 August 04
Хабр
Самый полный гайд про то, как запустить онлайн-школу на примере GetCourse: что происходит на рынке, с чего начинается проект, какие люди обязательно должны быть в команде, типичные ошибки, инструкция для прогнозирования спроса и другое.

Очень много полезной информации тут → http://amp.gs/Fzf0
Хабр
Онлайн-школы для народа: чем живут и дышат. История GetCourse
Привет, Хабр! Меня зовут Сергей Михайлов, я управляющий партнёр в компании GetCourse, главный продукт которой — SaaS-платформа для онлайн-курсов, ориентированных на широкую аудиторию слушателей. По образованию я математик и хочу рассказать, как в рыночных нишах, которые кажутся скучными и не очень-то большими, можно обнаружить многомерные пространства. Ведь системный подход применяется не только ради решения престижных задач, но и ради побочных результатов, которые при определённом ракурсе раскрываются в полноценный бизнес. Так произошло у нас: штучные онлайн-школы выросли в SaaS-платформу, которая стала востребована на рынке и в некотором роде этот рынок определила. Под катом — о том, как устроена ниша онлайн-школ и сами школы, наших первых шагах к платформе и том, что из всего этого вышло.
источник
Хабр
[recovery mode] Перевозим волка, козу и капусту через реку без эффектов на Elixir

Становится уже доброй традицией — все любопытное, что появилось на Хаскеле — повторять на Эликсире.
Первой ласточкой были «Примерно 20 строк для подсчета слов», появившиеся как алаверды на «Побеждая C двадцатью строками Haskell: пишем свой wc» от 0xd34df00d — сегодня же я наткнулся на «Перевозим волка, козу и капусту через реку с эффектами на Haskell» от iokasimov и тоже не устоял.
Итак, встречайте: ленивый полный асинхронный параллельный перебор против алгебраических эффектов. Читать дальше →
http://amp.gs/FzhJ
источник
Хабр
Go-swagger как основа взаимодействия микросервисов



Здравствуй, NickName! Если ты программист и работаешь с микросервисной архитектурой, то представь, что тебе нужно настроить взаимодействие твоего сервиса А с каким-то новым и ещё неизвестным тебе сервисом Б. Что ты будешь делать в первую очередь?

Если задать такой вопрос 100 программистам из разных компаний, скорее всего, мы получим 100 разных ответов. Кто-то описывает контракты в swagger, кто-то в gRPC просто делает клиенты к своим сервисам без описания контракта. А кто-то и вовсе хранит JSON в гуглодоке :D. В большинстве компаний складывается свой подход к межсервисному взаимодействию на основании каких-либо исторических факторов, компетенций, стека технологий и прочего. Я хочу рассказать, как сервисы в Delivery Club общаются друг с другом и почему мы сделали именно такой выбор. И главное — как мы обеспечиваем актуальность документации с течением времени. Будет много кода! Читать дальше →
http://amp.gs/FzSl
источник
Хабр
[Перевод] Vue.js для начинающих, урок 9: пользовательские события

На предыдущем уроке нашего курса по Vue вы узнали о том, как создавать компоненты, и о том, как передавать данные от родительских сущностей дочерним с использованием механизма входных параметров (props). А что если данные нужно передавать в обратном направлении? Сегодня, в девятом уроке, вы узнаете о том, как наладить двустороннюю связь между компонентами разного уровня.

Читать дальше →
http://amp.gs/Fz3G
источник
Хабр
Как мы разрабатывали кроссплатформенную BPMS

Всем привет!

В НОРБИТ мы занимаемся SRM-решениями. Сегодня расскажем про особенный для нашей команды проект — разработку BPMS-платформы NBT. Мы не просто создали бизнес-решение для заказчика, а разработали собственный продукт с нуля, — всё это подразумевает совершенно другой подход к проектированию, разработке, управлению командой, организации процессов доставки изменений и планирования выпусков. 

В общем, в статье не только красивая КДПВ. Ещё вы узнаете:


про наш опыт проектирования микросервисной архитектуры (выбор инструментов, подходов к использованию этих инструментов, а именно абстрагирование их использования);
про разработку конструктора бизнес-объектов и внедрение в решение конструктора бизнес-процессов для обеспечения подхода Low-code development;
про то, как мы организовали работу над проектом и избавили разработчиков от некоторых рутинных или отвлекающих их аспектов при работе над системой (абстрактные межсервисные взаимодействия, автогенерация кода, атмосфера в команде);
и про то, какой мем помогал нам в сложные периоды.

Источник Читать дальше →
http://amp.gs/FzXw
источник
Хабр
Как внедрить in-app подписки в Android-приложения: советы и рекомендации


С каждым годом требования к in-app подпискам в мобильных приложениях в App Store и Google Play меняются, становится все сложнее учесть их с первого раза и не получить серию реджектов, тем самым откладывая релиз порой на несколько месяцев. Если про требования для App Store уже достаточно много публикаций (см. здесь или здесь), то с правилами in-app подписок для Google Play все еще иногда возникают вопросы.

Мы, команда из Центрального Маркетинга Mail.ru Group, решили разобраться в этом подробнее и поделиться рекомендациями по внедрению in-app подписок. По нашему наблюдению, нередко пользователи оставляют большое количество негативных отзывов (и, как следствие, у приложения снижается рейтинг), где уточняют будет ли списываться сумма за полную версию продукта ежемесячно или единоразово, как отменить подписку, в какой именно момент спишутся деньги, почему деньги продолжают списываться и другие подобные вопросы. А поддержка и вовсе иногда может не справляться с объемом запросов. Читать дальше →
http://amp.gs/FzLc
источник
Хабр
ReactOS 0.4.13 CE (Coronavirus Edition)

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

К нашему стыду, во время самоизоляции мы настолько приуныли, что забыли опубликовать новость об очередном релизе под номером 0.4.13, который состоялся еще в апреле 2020 года. Исправляемся.


Скачать образы системы | Пресс–релиз | Список изменений |  TL;DR | Тесты и список регрессий Читать дальше →
http://amp.gs/Fzbz
источник
Хабр
Российские госсайты: иллюзия безопасности

В 2016 году мы задались вопросом: сколько сайтов федеральных органов власти поддерживают HTTPS? Мы узнали, вы готовы? Фактически – 2 (прописью: два, Карл!) сайта из 85. Формально – 32 поддерживали, т.е. на серверах был включен HTTPS, но дальше все упиралось в традиционное российское разгильдяйство: SSL-сертификат просрочен, самоподписан или вообще от другого сайта, соединение по HTTPS автоматически переключается на HTTP или переадресуется в админку сайта, веб-сервер уязвим к ROBOT, POODLE и прочим излишествам нехорошим, HTTPS-подключение только по SSL и прочий чад кутежа.

Поэтому, даже согласно нашим скромным критериям – действительный SSL-сертификат, поддержка TLS 1.2 и отказ от использования уязвимых или ненадежных криптоалгоритмов типа DH и RC4 – фактически HTTPS поддерживали только 2 сайта (напоминаю, из 85 обследованных).

Сегодня мы снова задались тем же вопросом, хотя и несколько ужесточив критерии, но даже при этом ситуация оказалась существенно лучше: 27 сайтов из 82 могут считаться реально поддерживающими HTTPS и еще 23 – условно поддерживают его. Условно в том смысле, что при определенных условиях, зависящих в большей степени от клиентской стороны: актуальная версия браузера, сконфигурирована по уму, ручками указали HTTPS – соединение защищено, не обеспечили чего-то из перечисленного – depends on. Читать дальше →
http://amp.gs/F1Pa
источник
Хабр
PostgreSQL Antipatterns: «Должен остаться только один!»

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

Сегодня на предельно простых примерах посмотрим, к чему это может приводить в контексте использования GROUP/DISTINCT и LIMIT вместе с ними.

Вот если вы написали в запросе «сначала соедини эти таблички, а потом выкинь все дубли, должен остаться только один экземпляр по каждому ключу» — именно так и будет работать, даже если соединение вовсе не было нужно.

И иногда везет и это «просто работает», иногда — неприятно сказывается на производительности, а иногда дает абсолютно неожидаемые с точки зрения разработчика эффекты.


Ну, может, не настолько зрелищные, но…

«Сладкая парочка»: JOIN + DISTINCT
SELECT DISTINCT
 X.*
FROM
 X
JOIN
 Y
   ON Y.fk = X.pk
WHERE
 Y.bool_condition;
Как бы понятно, что хотели отобрать такие записи X, для которых в Y есть связанные с выполняющимся условием. Написали запрос через JOIN — получили какие-то значения pk по несколько раз (ровно сколько подходящих записей в Y оказалось). Как убрать? Конечно DISTINCT! Читать дальше →
http://amp.gs/F14Y
источник
Хабр
[Из песочницы] Ты можешь писать безупречные ТЗ, но какой в этом толк, если разработчик твой плачет?



В далекой-далекой галактике трудится сферический product owner. Он бегло пишет заметки на салфетке и молча отдает ее разработчикам. А вскоре получает готовый продукт, который на 100% соответствует его ожиданиям. Даже если продукт этот – сложный кроссплатформенный сервис с блэкджеком и адаптивностью.

Возможно ли такое на практике?  Читать дальше →
http://amp.gs/F14n
источник
2020 August 05
Хабр
[Из песочницы] Работать по 12 часов в сутки и не спать по 3 дня кряду, или как я стал frontend-разработчиком

Как парень из города Камешково прокладывает себе путь в IT и доказывает, что было бы желание, а возможности всегда найдутся
Привет! Меня зовут Артем, я frontend-разработчик в аутсорс-продакшене Hawking Bros. Сейчас я уже middle и еще параллельно учусь в колледже по специальности «Программирование в компьютерных системах».

Я родом из Камешково — это под Владимиром. Население — 12 496 человек. Такой маленький незаметный городок на карте, который начинался как поселок для рабочих при ткацкой фабрике. Как вы уже поняли, в моем родном городе не сильно развито IT, хотя следует отметить — местной молодежи интересны технические учебные заведения.

Читать дальше →
http://amp.gs/F1Og
источник
Хабр
DevOps с человеческим лицом

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

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

Читать дальше →
http://amp.gs/F1Ky
источник
Хабр
Проблемы в процессах непрерывной доставки и развертывании программного продукта

Статью подготовил Брюханов Константин, руководитель курса «CI/CD». В ней Константин раскрыл ряд проблемных моментов, связанных доставкой развертыванием кода программного продукта в IT-компаниях, и собрал рекомендации из числа лучших международных практик.


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

Технологический прорыв и свободно-распространяемое ПО привели к тому, что подход к организации процессов CI/CD значительно изменился. Переход на новые принципы сильно повлиял на корпоративную культуру, востребованные навыки сотрудников и сами принципы работы в организациях, что привело к масштабным переменам в мире разработки ПО. Читать дальше →
http://amp.gs/F1Mv
источник
Хабр
Рынок соискателя или работодателя VS возрастная дискриминация



В продолжение моего  разбора полётов по рекрутингу и обстановке в последние лет 5, я хочу затронуть две щекотливые темы:
— чей же рынок нынче, кто правит балом – работодатель или соискатель;
— пресловутый возрастной ценз 45+, так ли всё плохо и безнадёжно.
Собственно, про эти вещи и пойдёт дальнейший разговор. Устраивайтесь поудобнее, будет много инсайда.
Две вышеуказанных темы очень близки друг другу и постоянно пересекаются в быту. Одно порождает другое.  Читать дальше →
http://amp.gs/FYTk
источник
Хабр
Цифровая трансформация бани

Однажды, дегустируя новое пиво, мы с моим знакомым поспорили о том, что такое цифровая трансформация. Мой знакомый утверждал, что эта цифровая трансформация — просто пустое слово, под которое удобно выделять деньги. Мол, приходят CDTO (Chief Digital Transformation Officer, не смейтесь, это действительно так называется), берут огромные деньги, внедряют пару систем цифровой документации и какое-нибудь новшество на производстве, и все, мы вам трансформировали, давайте, растите.



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

— И что, спрашивает мой знакомый, прям любого бизнеса?
— Да, любого-любого, отвечаю я.
— А общественной бани? Читать дальше →
http://amp.gs/FYmj
источник
Хабр
Почему большинство компаний в США никогда не станет бизнесом

Если взять самый большой спектр всех доходных ниш в США, то обнаружится наличие явного ростового барьера. В грузоперевозках это 5-6 машин в компании, у стоматолога 4-5 клиента в день, в стройке 3-4 одновременных проекта и так далее.



Это особенно заметно в США, где финансовый и сервисный пирог достаточно равномерно размазан по территории и отраслям. Однако, из штата в штат количественный показатель не меняется.

— Я собирал полные базы компаний по рынкам грузоперевозок и дентал клиник. И мои данные совпадают с данными статистики в целом.



Вот пример моей собранной статистики по  Читать дальше →
http://amp.gs/FYnd
источник
Хабр
Защита форм от спама «невидимой» Google reCAPTCHA v3 без потери баллов по PageSpeed Insight

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

Стандартная капча — бесполезная, ботами она проходится «на раз», а пользователям создает проблемы.

Оптимальное решение это использовать Google reCAPTCHA v2 или v3. Обе версии Google reCAPTCHA — отличный вариант. Это лучшее, что сейчас доступно на рынке из понятных и надежных решений к тому же бесплатных.

Основная проблема у обеих версий — при подключении значительно снижаются баллы по PageSpeed Insight на 20-30. Читать дальше →
http://amp.gs/FYCx
источник
Хабр
[Из песочницы] B2B продажи в США. Подводные камни, о которые разбивается большинство

Чтобы продавать бизнесу в США необходимо принять простую вещь. Продажа в США это не набор волшебных слов, бездумного спама и давления. Это очень органичный для обычного американца, но такой непривычный для многих процесс “ построения отношений”.

Построение отношений
— это ключевой момент продажи на рынке B2b. И когда я говорю об отношениях, я имею в виду именно СОЦИАЛЬНУЮ ИНЖЕНЕРИЮ.

Вы должны понимать, что те кто мог бы захотеть сотрудничать с вами уже имеют своих поставщиков решений, продуктов, сервисов. И вам предстоит стать одним из них или единственным. Как завоевать свой кусок? Как заставить отказаться от привычного, доверенного?  Читать дальше →
http://amp.gs/FYhp
источник
Хабр
Обновление версий PostgreSQL, или Как не уронить базу при update?

Мы решили поделиться памяткой (чеклистом) нашей команды по обновлению PostgreSQL. В ней мы отметили взяли за основу фичи, представленные в release официальной документации PostgreSQL и провели анализ на предмет нарушения совместимости и кому стоит обратить внимание на обновленный функционал.

Читать дальше →
http://amp.gs/FYU5
источник
Хабр
Vivaldi 3.2 — Дары лета



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

Летом наступает пора отпусков, поэтому вся крупная работа откладывается на осень, но и летом разработчики постоянно занимаются полировкой уже существующих функций, стараясь улучшить работу браузера и сделать его ещё более удобным для пользователей. Сегодняшний релиз как раз и предлагает большой список изменений, сделанных по вашим просьбам. Итак, давайте посмотрим подробнее, что изменилось в новой версии браузера Vivaldi. Читать дальше →
http://amp.gs/FY2M
источник