Search
Write a publication
Pull to refresh
0
0
Вова Рудный @wova

User

Send message

Как устроены каналы в Go

Reading time4 min
Views75K

Перевод познавательной статьи "Golang: channels implementation" о том, как устроены каналы в Go.


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


Устройство канала


Давайте начнём с разбора структуры канала:


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

Минимально жизнеспособный UX: дизайн SaaS (приложений-сервисов)

Reading time5 min
Views11K
Предлагаю читателям «Хабрахабра» перевод статьи «Minimum Viable UX: A Guide for SaaS Design». Автор: Benjamin Brandall.

Создавая SaaS-приложение (wiki: англ. software as a service — программное обеспечение как услуга) вы, вероятно, больше думаете о функционале и фичах, целевом рынке, отсутствии багов в конечном продукте. И хотя сегодня признаётся важным пользовательский опыт (UX) – а бывает, он непосредственно определяет успех или поражение, – его разработка всё равно часто упускается из виду.

Помните классические рабочие программы? Эти раздутые базы данных, как в Excel под Windows 95 – сегодня вряд ли можно вести передовой бизнес с их помощью. Почему? Да потому что они не дружественны для использования.
Читать дальше →

Как думать на SQL?

Reading time8 min
Views625K
Надо “SELECT * WHERE a=b FROM c” или “SELECT WHERE a=b FROM c ON *” ?

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


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


SELECT members.firstname || ' ' || members.lastname
AS "Full Name"
FROM borrowings
INNER JOIN members
ON members.memberid=borrowings.memberid
INNER JOIN books
ON books.bookid=borrowings.bookid
WHERE borrowings.bookid IN (SELECT bookid
  FROM books
  WHERE stock>(SELECT avg(stock)
    FROM books))
GROUP BY members.firstname, members.lastname;

Буэ! Такое спугнет любого новичка, или даже разработчика среднего уровня, если он видит SQL впервые. Но не все так плохо.


Легко запомнить то, что интуитивно понятно, и с помощью этого руководства я надеюсь снизить порог входа в SQL для новичков, а уже опытным предложить по-новому взглянуть на SQL.

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

Как написать хороший текст для сайта или email-письма: технология WIIFM

Reading time9 min
Views17K
Мы уже много говорили о том, как должна выглядеть качественная почтовая рассылка, какие шрифты стоит использовать в письме и почему типографика и верстка – важные элементы работы команды, ответственной за email-маркетинг. Теперь пришло время обратить внимание не только на форму, но и на содержание – в этом материале сотрудник агентства Digital Telepathy Рааф Сундквист (Raaf Sundquist) рассказывает о том, как встроить ценностное предложение вашей компании в текст. И несмотря на то, что в качестве примеров в статье рассматриваются тексты сайтов, этот совет подойдет для любого контента – будь то слоган, буклет или электронное письмо.



/ фото Eelke

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

Как правило, люди действуют, исходя из собственных интересов, – это мощный поведенческий стимул, присущий им от рождения, который вы можете использовать, чтобы убедить их в ценности своего продукта или услуги. Отвечая на вопрос «Что здесь есть для меня?» [англ. What’s In It For Me? – сокр. WIIFM] при помощи этих приемов, вы сможете создать убедительные призывы к действию, которые, в свою очередь, приведут к значительным результатам.
Читать дальше →

Обзор вариантов организации доступа к сервисам корпоративной сети из Интернет

Reading time11 min
Views168K

© Кившенко Алексей, 1880

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

Управление IT-компанией: разлучаем теорию с практикой

Reading time12 min
Views20K
Практика — это когда всё работает, но никто не понимает, как. Теория — когда ничего не работает, но все точно знают, почему. Мы же пришли к сочетанию теории с практикой: ничего не работает — и никто не понимает, почему.

В функционировании любого растущего бизнеса — не только в IT, но и в других областях — наступает момент, когда заброшенные в дальний угол и уже успевшие покрыться благородной патиной проблемы становится невозможно игнорировать. Их последствия дают о себе знать в самых неожиданных ситуациях. Есть не один десяток методик, позволяющих разобраться с проблемами и заставить бизнес работать, но начинать приходится всегда с одного и того же: анализа первопричин этих самых проблем. И сегодня Роботам хотелось бы поговорить об этом — не только переведя статью о методах поиска первопричин бизнес-тренера по IT и специалиста по Agile, Scrum и Kanban Хенрика Книберга — но и рассказав о том, как Роботы исправили несколько собственных поломок. Статья публикуется с сокращениями, полная версия доступна в нашем блоге на Хабре.



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

Как тестировать гипотезы и кратно расти? Теория. Практика. Инструмент

Reading time9 min
Views33K


Как перезагрузить отдел маркетинга за 7 дней и получить первый значимый рост уже через 30 дней?
Сервис кратного роста hopox позволит наладить работу Growth Team и тестировать гипотезы роста непрерывно.
В статье теория, практика и интрумент собраны в единую Технологию кратного роста.
Читать дальше →

Создание архитектуры программы или как проектировать табуретку

Reading time25 min
Views709K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →

Теория ограничений в интерфейсах (кто убил старого графа?)

Reading time10 min
Views29K
Привет, меня зовут Александр Волков, я проектирую интерфейсы в компании Docsvision. Цель этой статьи — помощь разработчикам сложных программных продуктов. Ключевое слово — сложных. Спроектировать сайт-визитку сегодня может даже пятиклассник прямо на своем смартфоне, и при желании можно скачать зип-архив с готовым шаблоном блога или корпоративного сайта. Однако если ваше приложение посложнее обычного интернет-магазина, то, вполне вероятно, строить структуру и определять принципы навигации вам придется самостоятельно, наступая на разбросанные повсюду грабли. Здесь может пригодиться наш опыт. Я опишу один из возможных способов проектирования интерфейсов, который успешно опробован в нашей компании. Это делается легко и просто (практически в полуавтоматическом режиме) при помощи программы FlyingLogic.
Читать дальше →

3 конверсионных элемента и как их готовить: заголовок, лид-форма, кнопка CTA

Reading time6 min
Views19K


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

Мы не подвергаем сомнению важность дизайна и юзабилити, при этом убеждать посетителей посадочных страниц продолжают слова. Без сильного копирайтинга любой визуал пойдет «псу под хвост», будь там хоть Артемий Лебедев.

В этой статье вы узнаете что писать в заголовке, форме заявки и кнопке call-to-action. Просто, четко и убедительно. Плюс показываем хакерскую технику как сделать конверсионные элементы максимально эффективными.
Читать дальше →

Стартап Plotguru поднял конверсию лендинга с 9 % до 52 %. А вам слабо?

Reading time7 min
Views5.3K
​Да-да-да, очень громкий заголовок. Чтобы привлечь ваше внимание, конечно же. Наверно, это лучший кейс увеличения конверсии на посадочной странице, который я когда-либо видел.



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

Знакомо не только это, я уверен. Ещё есть высокий показатель отказов на этой странице. Эдак 70-80 %, если не больше. Низкая конверсия. Непонятные действия посетителей. Всё это относится к посадочным страницам… Неправильным посадочным страницам.

В этом кейсе вы узнаете как ребята из небольшого стартапа улучшали конверсию лендинга с 9 % до 52 %. Шаг за шагом. С подробным описанием проблем и изменений, которые они делали на странице и к чему это привело. Невероятно крутой кейс, который советую прочитать всем.

Кстати, конверсия 9 % — это очень даже хороший результат для лендинга. Конверсия 52 % — это исключительный случай. Один на миллион.

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

Дэн Саффер — Микровзаимодействия (Microinteractions). Конспект книги

Reading time21 min
Views39K
Microinteractions book cover«Детали — это не детали. Они создают дизайн.» — Чарльз Имз.

Успех цифровых продуктов определяется мелочами. Книга «Микровзаимодействия» Дэна Саффера научит вас проектировать эффективные функциональные элементы. А этот подробный конспект поможет лучше запомнить прочитанное или даже заменит англоязычный оригинал.

Как пользователю изменить настройку? Как включить бесшумный режим или узнать о получении нового сообщения?

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

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

Что такое грамматическая эволюция + легкая реализация

Reading time8 min
Views10K
Совсем недавно я написал статью, в которой без объяснений показал то, на что способен метод грамматической эволюции. Я полностью, согласен, что так делать нельзя, но как хотелось показать результаты интересного метода. Я думал «что будет лучше: перевести первоисточник или дать свое собственное объяснение». Лень взяла верх.

Если кому-то интересны эволюционные методы и задача символьной регрессии(и не только), то прошу к прочтению.
Читать дальше →

Символьная регрессия и еще один подход

Reading time2 min
Views10K

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


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


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

Какой может быть действительно радикальная финансовая реформа

Reading time13 min
Views8.9K
Те кто учился в школе помнит, что обычная изучаемая в школе геометрия называется геометрия Эвклида и основана она на некотором небольшом количестве аксиом. А если (что уже обычно изучают не в школе) заменить даже одну аксиому на другую – получится другая и во многом удивительная неэквклидова геометрия.
image

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

REM vs EM – Великий спор

Reading time12 min
Views233K


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

Добро пожаловать в мир типографики и относительных единиц измерения =)
Читать дальше →

Почему математика хорошо описывает реальность?

Reading time13 min
Views79K

Поводом к переводу статьи стало то, что я искал книгу автора «The Outer Limits of Reason». Спиратить книгу я так и не смог, зато наткнулся на статью, которая в довольно сжатом виде показывает взгляд автора на проблему.

Вступление


Одна из самых интересных проблем философии науки — это связь математики и физической реальности. Почему математика так хорошо описывает происходящее во вселенной? Ведь многие области математики были сформированы без какого-либо участия физики, однако, как в итоге оказалось, они стали основой в описании некоторых физических законов. Как это можно объяснить?
Читать дальше →

Легальное использование персональных данных в интернет-магазине

Reading time4 min
Views18K
Полгода назад мы разместили на Мегамозге статью 3 юридические ошибки интернет-магазина, которая вызвала живой интерес у пользователей. Сейчас хочется остановиться на проблеме, которую мы не стали затрагивать в предыдущем материале. Это проблема внедоговорного использования персональных данных пользователей интернет-магазина.

Сразу отметим, что имеется простое решение данной проблемы: для этого достаточно заключить с пользователем договор на использование сервиса интернет-магазина до приобретения в нем товара. Самым простым способом это сделать является принятие Пользовательского соглашения. Однако большинство интернет-магазинов используют стандартную форму оферты, условия которой принимаются после предоставления персональных данных. Т.е. до принятия оферты ПДн используются незаконно.

К сожалению, владельцы интернет-магазинов об этом не задумываются. Оферта на дистанционную продажу товаров включает все правовые условия использования магазина и кажется достаточной. Но так ли это? Давайте разберемся.
Читать дальше →

Пишем правильный манифест для сайта

Reading time3 min
Views98K
Думаю, многие знают о возможности добавления иконки сайта на рабочий стол мобильного устройства. Это удобно и причины могут быть разные (нету мобильного приложения, предоставляющего туже информацию, либо вы хотите сразу открыть определенную страницу сайта и т.д.). За некоторые свойства того, как будет отображаться сайт и как будет выглядеть иконка после добавления и отвечает файл манифеста.

Манифест для сайта – это простой JSON-файл, который позволяет вам настроить следующие вещи:
1. Какая будет иконка у пользователя, после того как он добавит ваш сайт на рабочий стол
2. Как будет запускаться ваш сайт (с адресной строкой, без нее или в полноэкранном режиме)
3. Splash screen
4. Цветовую тему
5. Ориентацию экрана
6. Начальный url
и многое другое
Читать дальше →

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity