Pull to refresh
2
Karma
0
Rating
Алексей Жуковский @megazhuk

Предприниматель. Инженер.

Зарубежный опыт: как избавиться от 80% кода, увеличить скорость разработки и уменьшить количество ошибок

МойОфис corporate blog Programming *Designing and refactoring *IT-companies Microservices *
Tutorial
Translation

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

Под катом тех– и тимлид Йонас Тулструп, один из разработчиков датского сервиса MobilePay, демонстрирует, что отказ от излишних абстракций позволяет писать более чистый код. А именно: существенно уменьшать его сложность, повышать читабельность и удобство поддержки. Обсуждаемые подходы основаны на широко известных принципах KISS («Делай проще») и YAGNI («Вам это не понадобится»), и применимы к большинству видов разработки ПО.

Обращаем ваше внимание, что позиция автора не всегда может совпадать с мнением МойОфис.

Читать далее
Total votes 27: ↑23 and ↓4 +19
Views 27K
Comments 6

Где покупать радиодетали и компоненты? Часть I: Россия

VK corporate blog DIY Electronics for beginners
Давайте поговорим о покупке электронных компонентов в интернете. Я собрал список интересных отечественных и зарубежных магазинов:

а) которые заточены под любителей DIY и делают свои собственные крутые продукты: конструкторы, модули, обучающие курсы и т.д.;

б) для профи, с широкой номенклатурой электронных компонентов.

Продолжение: Часть II: зарубежные магазины

Кадр из к/ф «Иван Васильевич меняет профессию»
Продолжение
Total votes 130: ↑120 and ↓10 +110
Views 134K
Comments 158

Рекомендательные системы: идеи, подходы, задачи

Инфосистемы Джет corporate blog System Analysis and Design *Algorithms *Machine learning *


Многие привыкли ставить оценку фильму на КиноПоиске или imdb после просмотра, а разделы «С этим товаром также покупали» и «Популярные товары» есть в любом интернет- магазине. Но существуют и менее привычные виды рекомендаций. В этой статье я расскажу о том, какие задачи решают рекомендательные системы, куда бежать и что гуглить.
Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Views 38K
Comments 7

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

VK corporate blog Programming *Perfect code *Go *
Tutorial
Translation


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Total votes 80: ↑76 and ↓4 +72
Views 179K
Comments 270

12 неписаных правил в дизайне

ua-hosting.company corporate blog Vector graphics *Graphic design *
Translation
От теории сеток до Золотого сечения есть набор основных принципов, которые передаются дизайнерами из поколения в поколение. Эти правила знает каждый хороший дизайнер, их описывают в книгах, рассказывают на курсах и в высших учебных заведениях. Но на равне с писанными, у дизайнеров есть еще неписаные правила. И к сожалению, многие из нас узнает об этом лишь из собственного горького опыта. Но вовсе не обязательно учиться на своих ошибках, тем более, когда есть чужие.

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



1. Узнайте, что на самом деле хочет ваш клиент


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

Читать дальше →
Total votes 41: ↑17 and ↓24 -7
Views 23K
Comments 6

Как превратить лендинг в прибыль?

BYYD corporate blog Content-marketing *


Один из рычагов создания эффективной рекламной кампании — Ваш лендинг. После нажатия пользователем на рекламное объявление в дело вступает целевая страница, основная задача которой — конвертировать заинтересованную аудиторию в покупателей Вашего товара. Финансовая выгода напрямую зависит от коэффициента конверсии на странице. Но в чем заключаются типичные ошибки маркетологов? Сегодня попробуем в этом разобраться.
Читать дальше →
Total votes 15: ↑6 and ↓9 -3
Views 4.5K
Comments 3

Количество и качество: как развиваются таск-трекеры в условиях конкуренции

Development Management *Project management *Product Management *
История знает не один десяток таск-менеджеров, которые стремятся захватить умы и завоевать сердца пользователей. Однако у последних есть достаточно аргументов «за» и «против», чтобы мотивировать разработчиков подобных сервисов на дальнейшие подвиги. Более того, кому-то не хватает существующих таск-менеджеров, и как известно, спрос рождает предложение.

Особенности этой ниши таковы, что бесплатные таск-менеджеры вполне могут конкурировать с платными продуктами, крупные корпорации – с небольшими командами энтузиастов.

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

Корпорация Microsoft запускает новый сервис — Planner. Он станет непосредственным конкурентом популярного таск-менеджера Trello. Сравнивая внешний вид и принцип работы двух сервисов, можно найти много общего.
Читать дальше →
Total votes 16: ↑12 and ↓4 +8
Views 44K
Comments 18

Драйверы умного или виртуального железа

System Programming *Programming microcontrollers *
Первая статья про драйверы была уж совсем вводной, и мне подумалось, что её нельзя не дополнить рассказом про то, как устроены драйверы более современных устройств.

Для начала введём определение bus master: устройство, способное быть не только ведомым, но и ведущим на шине компьютера. То есть — не только отвечать на транзакции ввода-вывода, инициированные процессором, но и самостоятельно их инициировать — по собственной инициативе «ходить» в память.

История таких устройств уходит корнями в понятие DMA: ещё во времена прародителя микропроцессоров, микропроцессора 8080 (КР5080ИК80), появилось понимание, что процессор хорошо бы разгрузить от рутинной операции перетаскивания байтиков между устройствами в-в и памятью.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Views 11K
Comments 6

Анатомия драйвера

System Programming *Programming microcontrollers *
Опять вернёмся в традиционную область разработки операционных систем (и приложений для микроконтроллеров) — написание драйверов.

Я попробую выделить некоторые общие правила и каноны в этой области. Как всегда — на примере Фантома.

Драйвер — функциональная компонента ОС, ответственная за отношения с определённым подмножеством аппаратуры компьютера.

С лёгкой руки того же Юникса драйвера делятся на блочные и байт-ориентированные. В былые времена классическими примерами были драйвер диска (операции — записать и прочитать сектор диска) и драйвер дисплея (прочитать и записать символ).

В современной реальности, конечно, всё сложнее. Драйвер — типичный инстанс-объект класса, и классов этих до фига и больше. В принципе, интерфейс драйверов пытаются как-то ужать в прокрустово ложе модели read/write, но это самообман. У драйвера сетевой карты есть метод «прочитать MAC-адрес карты» (который, конечно, можно реализовать через properties), а у драйвера USB — целая пачка USB-специфичных операций. Ещё веселее у графических драйверов — какой-нибудь bitblt( startx, starty, destx, desty, xsize, ysize, operation ) — обычное дело.

Цикл жизни драйвера, в целом, может быть описан так:

  • Инициализация: драйвер получает ресурсы (но не доступ к своей аппаратуре)
  • Поиск аппаратуры: драйвер получает от ядра или находит сам свои аппаратные ресурсы
  • Активация — драйвер начинает работу
  • Появление/пропадание устройств, если это уместно. См. тот же USB.
  • Засыпание/просыпание аппаратуры, если это уместно. В контроллерах часто неиспользуемая аппаратура выключается для экономии.
  • Деактивация драйвера — обслуживание запросов прекращается
  • Выгрузка драйвера — освобождаются все ресурсы ядра, драйвер не существует.


(Вообще я написал в прошлом году черновик открытой спецификации интерфейса драйвера — см. репозиторий и документ.)

Мне известны три модели построения драйвера:

  • Поллинг
  • Прерывания
  • Нити (threads)

Читать дальше →
Total votes 27: ↑27 and ↓0 +27
Views 24K
Comments 13

Шум Перлина (Perlin Noise)

Game development *Algorithms *
Sandbox
Доброго времени суток. Предлагаю Вашему вниманию перевод статьи про шум Перлина (вот этой). Ссылки на эту статью уже мелькали на хабре (тут), но перевод статьи мне не попался. Так что надеюсь кому-либо он может оказаться полезен.

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

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

Для создания функции шума Перлина, вам нужны две вещи, функции шума и функция интерполяции.
Читать дальше →
Total votes 67: ↑52 and ↓15 +37
Views 65K
Comments 22

Census Analyzer 1.0: новый инструмент для анализа данных

JetBrains corporate blog Data Mining *Big Data *Data visualization *Machine learning *
Привет, Хабр!

Мы в компании JetBrains только что выпустили Census Analyzer — новое веб-приложение для визуализации и анализа данных. Попробуйте его и расскажите нам, что вы думаете!

Census Analyzer является прототипом, “preview”-версией, призванной познакомить пользователей с принципами работы более глобального продукта по анализу данных, который пока в разработке. Но уже сейчас с помощью Census Analyzer вы можете в облаке анализировать данные Бюро переписи населения США (US Census Bureau), работать с графиками и сводными таблицами, составлять графические отчеты, публиковать их и делиться ими в сети.

Давайте посмотрим, чем интересен Census Analyzer.

image
Читать дальше →
Total votes 28: ↑23 and ↓5 +18
Views 16K
Comments 34

Рекламные сети 3.0: как разработчику перестать раздражать пользователей и при этом заработать больше

Website development *Development for iOS *Development of mobile applications *Development for Android *Geoinformation services *
image
Широкий выбор мобильной рекламы: от мешающей до ужасающей. Во всяком случае до 2016 года.
Читать дальше →
Total votes 36: ↑30 and ↓6 +24
Views 36K
Comments 16

Способы отладки ПО микроконтроллеров в электроприводе

НПФ ВЕКТОР corporate blog Robotics
image

Как отлаживают программы микроконтроллеров? Берется JTAG, осциллограф – пара дней/недель и программа отлажена. Таким будет типичный ответ, и в большинстве случаев он будет правильным… Но не всегда. Микроконтроллеры решают очень разные задачи, и в этой статье мы рассмотрим, что делать, если нужно разработать громоздкое ПО низкоуровневого управления каким-либо силовым электрооборудованием, например, преобразователями частоты для электродвигателей, DC/DC преобразователями заряда АКБ для поезда, корректорами мощности, сервоприводами и т.п. Оборудованием, где протекают килоамперы и ШИМят киловольты, где на счету каждая коммутация IGBT ключей инвертора, где время реакции микроконтроллера на нештатную ситуацию измеряется в микросекундах, а само оборудование в герметичных корпусах устанавливается и эксплуатируется где-нибудь на заводах Якутии. Если вы хотите узнать, какие особенности это накладывает на способы отладки – добро пожаловать под кат.
Читать дальше →
Total votes 34: ↑33 and ↓1 +32
Views 48K
Comments 50

Взгляд изнутри: 13 LED-ламп и бутылка рома. Часть 2

Gadgets Computer hardware Energy and batteries DIY Electronics for beginners


Привет, мои маленькие любители гик-харкора!

В первой части обзора светодиодных ламп мы остановились на спектральных характеристиках, настоящие две части – ибо материала накопилось предостаточно – будут посвящены внутреннему убранству ламп и некоторым их интересным конструкционным особенностям.
Скандалы, интриги и расследования под катом
Total votes 16: ↑16 and ↓0 +16
Views 51K
Comments 30

Взгляд изнутри: 13 LED-ламп и бутылка рома. Часть 1

Gadgets Computer hardware Energy and batteries


Спустя 3.5 года после публикации статьи о вскрытии светодиодных ламп мы продолжим заниматься распиливанием LED-ламп и подглядыванием за их внутренним миром. Предполагается несколько частей данного исследования, а пока начнём со спектральных характеристик.
Много подробностей и трафика под катом
Total votes 16: ↑16 and ↓0 +16
Views 44K
Comments 31

Взгляд изнутри: 13 LED-ламп и бутылка рома. Часть 3

Gadgets Computer hardware Energy and batteries DIY Electronics for beginners


И снова здравствуйте, мои маленькие любители внутренностей!

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

Прошлые две части находятся тут и тут.

Скандалы, интриги и расследования продолжаются
Total votes 16: ↑16 and ↓0 +16
Views 107K
Comments 24

Как я, в итоге, написал новую RTOS, протестированную и стабильную

Website development *Open source *
Я работаю со встраиваемыми системами в течение нескольких лет: наша компания разрабатывает и производит бортовые компьютеры для автомобилей, зарядные устройства, и т.д.

image


Процессоры, используемые в наших продуктах — это, в основном, 16- и 32-битные микроконтроллеры Microchip, имеющие RAM от 8 до 32 кБ, и ROM от 128 до 512 кБ, без MMU. Иногда, для самых простых устройств, используются еще более скромные 8-битные чипы.

Очевидно, что у нас нет (разумных) шансов использовать ядро Linux. Так что нам нужна какая-нибудь RTOS (Real-Time Operating System). Находятся даже люди, которые не используют никаких ОС в микроконтроллерах, но я не считаю это хорошей практикой: если железо позволяет мне использовать ОС, я ее использую.

Несколько лет назад, когда мы переходили с 8-битников на более мощные 16-битные микроконтроллеры, мои коллеги, которые были гораздо более опытными, чем я, рекомендовали вытесняющюю RTOS TNKernel. Так что это — та ОС, которую я использовал в разных проектах в течение пары лет.

Не то, чтобы я был очень доволен ею: например, в ней нет таймеров. И она не позволяет потоку ждать сообщения сразу из нескольких очередей. И в ней нет программного контроля переполнения стека (это действительно напрягало). Но она работала, так что я продолжал ее использовать.
Читать дальше →
Total votes 162: ↑161 and ↓1 +160
Views 80K
Comments 61

Топ-10 data mining-алгоритмов простым языком

ITI Capital corporate blog Data Mining *Algorithms *
Translation


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

Сегодня я постараюсь объяснить простыми словами принципы работы 10 самых эффективных data mining-алгоритмов, которые описаны в этом докладе.

Когда вы узнаете, что они собой представляют, как работают, что делают и где применяются, я надеюсь, что вы используете эту статью в качестве отправной точки для дальнейшего изучения принципов data mining.
Читать дальше →
Total votes 55: ↑49 and ↓6 +43
Views 125K
Comments 8

Information

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