Pull to refresh
0
0
Игорь Ратников @SADM

C#

Send message

Дао разработки справочной документации для IT-продукта

Reading time5 min
Views21K

image
Привет!

Любите читать хелпы? А писать? Думаю, что 99% из вас ответят “НЕТ”.

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

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

Читать дальше →
Total votes 27: ↑21 and ↓6+15
Comments12

Релиз кросс-платформенного XAML UI-фреймворка AvaloniaUI 0.5

Reading time3 min
Views20K

Состоялся релиз версии 0.5 кросслплатформенного XAML UI фреймворка AvaloniaUI (раннее назывался Perspex). Фреймворк сделан по тем же принципам, что и WPF/UWP, т. е. используется XAML, биндинги и шаблонизированные элементы управления. На текущий момент это единственный способ сделать UI на настоящем XAML, который будет работать на Windows, OS X и Linux (так же имеется экспериментальная поддержка iOS и Android).


КПДВ


Каталог встроенных контролов (gif 3MB)


Начать работать с фреймворком можно скачав дополнение для Visual Studio 2017 и создав проект из шаблона. Так же стоит ознакомиться с документацией на wiki.


В этом релизе: Поддержка .NET Core, переход на GTK3 для *nix-систем, поддержка вывода через Linux fbdev, система расширений, исправлено множество ошибок.

Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments56

Windows 10 по 10. Выпуск #2. Взаимодействие с пользователями через живые плитки и уведомления

Reading time6 min
Views21K


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

Если вы уже являетесь разработчиком Windows-приложений, вы уже, наверняка, знакомы с использованием живых плиток и уведомлений. Если же нет, то растущее количество пользователей Windows 10 – вполне хорошая мотивация, чтобы начать думать об их внедрении в приложении. Ниже описание того, что мы добавили в десятке.
Читать дальше →
Total votes 19: ↑15 and ↓4+11
Comments0

«Доктор Веб»: M.E.Doc содержит бэкдор, дающий злоумышленникам доступ к компьютеру

Reading time4 min
Views37K
Аналитики компании «Доктор Веб» исследовали модуль обновления M.E.Doc и обнаружили его причастность к распространению как минимум еще одной вредоносной программы. Напоминаем, что, по сообщениям независимых исследователей, источником недавней эпидемии червя-шифровальщика Trojan.Encoder.12544, также известного под именами NePetya, Petya.A, ExPetya и WannaCry-2, стал именно модуль обновления популярной на территории Украины программы для ведения налоговой отчетности M.E.Doc.

В сообщениях утверждается, что первоначальное распространение червя Trojan.Encoder.12544 осуществлялось посредством популярного приложения M.E.Doc, разработанного украинской компанией Intellect Service. В одном из модулей системы обновления M.E.Doc с именем ZvitPublishedObjects.Server.MeCom вирусные аналитики «Доктор Веб» обнаружили запись, соответствующую характерному ключу системного реестра Windows: HKCU\SOFTWARE\WC.


Специалисты «Доктор Веб» обратили внимание на этот ключ реестра в связи с тем, что этот же путь использует в своей работе троянец-шифровальщик Trojan.Encoder.12703. Анализ журнала антивируса Dr.Web, полученного с компьютера одного из наших клиентов, показал, что энкодер Trojan.Encoder.12703 был запущен на инфицированной машине приложением ProgramData\Medoc\Medoc\ezvit.exe, которое является компонентом программы M.E.Doc:
Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments134

Как обойти блокировки сайтов, не направляя весь трафик через VPN

Reading time3 min
Views122K
Обход блокировок — насущная необходимость. Возможно, сегодня в вашей стране заблокировали ресурсы, которые вы не так часто посещали, однако мир нестабилен и завтра в списке могут оказаться ваши любимые сайты и приложения.

На Хабре, да и не только на нем, есть множество инструкций, как обойти блокировки с помощью VPN, в частности, с помощью OpenVPN, есть и прекрасные пошаговые консольные скрипты установки OpenVPN. Однако чаше всего подобные инструкции подразумевают, что в результате весь интернет-трафик будет идти через VPN-соединение, что может быть неудобным по ряду причин. И в этом коротком посте я хотел рассказать, как настроить OpenVPN Access Server и обычный OpenVPN для обслуживания только заблокированных ресурсов.
Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments52

Ревью кода в распределенной команде

Reading time12 min
Views41K


Здесь описаны мои исследования, как сделать ревизию кода в команде более приятным занятием, которое может дать новый опыт всем участникам. У нас полностью географически распределённая команда, все коммуникации выполняются через интернет, и зачастую асинхронно. Мы используем Trello для описания возможностей продуктов, поодиночке создаём код, отправляем в GitHub пулл-реквесты, а также пользуемся встроенной в GitHub функцией их ревью. Это отличается от просмотра кода лицом к лицу в офисе и даже по видеочату.

Если не подходить к делу всерьёз, то асинхронная и письменная ревизия кода может стать причиной катастрофы в команде, приведя к ухудшению взаимодействия и сотрудничества. Но если все участники будут стараться делать всё хорошо, то такой подход может работать очень эффективно.
Читать дальше →
Total votes 58: ↑56 and ↓2+54
Comments61

Идеальный программист. Часть 1

Reading time9 min
Views91K
Статья-конспект по книге Роберта Мартина «Идеальный программист». После прочтения книги у меня поменялось отношение к программистической жизни. В книге рассматривается процесс написания кода, сам код, отношение к задачам, TDD и много других полезностей. Читать нужно разработчикам и менеджерам проектов. Частично применимо к дизайнерам.


Читать дальше →
Total votes 77: ↑61 and ↓16+45
Comments201

Как правильно настроить Wi-Fi

Reading time11 min
Views446K


Введение


Думаю, не ошибусь сильно, если у большинства из нас подключение к интернету выглядит следующим образом: есть некоторый довольно скоростной проводной канал до квартиры (сейчас уже и гигабит не редкость), а в квартире его встречает роутер, который раздаёт этот интернет клиентам, выдавая им «чёрный» ip и осуществляя трансляцию адресов.

Довольно часто наблюдается странная ситуация: при скоростном проводе, с роутера раздаётся совсем узенький wifi-канал, не загружающий и половины провода. При этом, хотя формально Wi-Fi, особенно в его ac-версии поддерживает какие-то огромные скорости, при проверке оказывается, что либо Wi-Fi подключается на меньшей скорости, либо подключается, но не выдаёт скорости на практике, либо теряет пакеты, либо всё вместе.

В какой-то момент и я столкнулся с похожей проблемой, и решил настроить свой Wi-Fi по-человечески. На удивление, это заняло примерно в 40 раз дольше, чем я ожидал. Вдобавок, как-то так случилось, что все инструкции по настройке Wi-Fi, которые я находил, сходились к одному из двух видов: в первом предлагали поставить роутер повыше и выпрямить антенну, для чтения второго же мне не хватало честного понимания алгоритмов пространственного мультиплексирования.

Собственно, эта заметка — это попытка заполнить пробел в инструкциях. Я сразу скажу, что задача до конца не решена, несмотря на приличный прогресс, стабильность подключения всё ещё могла бы быть лучше, поэтому я был бы рад услышать комментарии коллег по описанной тематике.
Читать дальше →
Total votes 58: ↑56 and ↓2+54
Comments111

Советы начинающим программистам микроконтроллеров

Reading time10 min
Views218K
Очень давно хотелось поделиться своим опытом, с начинающими радиолюбителями, потому что об этом пишут очень мало и разрозненно. Мой опыт не хороший, не плохой, он такой какой есть. С некоторыми утверждениями вы в праве не согласиться и это нормально, ведь у каждого свое видение ситуации. Цель данного материала, обратить внимание читателя на некоторые вещи, что то взять на заметку и сформировать собственное мнение и видение ситуации, ни в коем случае нельзя воспринимать это как истину.
Читать дальше →
Total votes 54: ↑51 and ↓3+48
Comments87

Аутентификация пользователей на Arduino с RFID

Reading time15 min
Views23K
Arduino

Введение


В предыдущей статье я только начинал работать с Arduino, в результате чего закономерно получилась метеостанция. В этой статье пойдём дальше — будем делать аутентификацию с помощью RFID карт и Arduino в приложении InterSystems Caché.
Читать дальше →
Total votes 17: ↑14 and ↓3+11
Comments7

Восстановление емкости аккумулятора ИБП

Reading time5 min
Views420K
Подавляющее большинство из нас использует такое крайне полезное устройство, как источник бесперебойного питания. Качество питания не везде идеальное, да и просто мельчайшие проблемы с электропитанием иногда могут дорогого стоить. Потери данных это всегда неприятно, а иногда просто таки фатально. Устройство куплено, установлено под стол, подключено и владелец его находится в полной уверенности, что в любом случае при перебое в электропитании он успеет корректно завершить работу, а может быть и сделать бэкап на флешку. Время идет, бесперебойник периодически дает о себе знать — как заправский сторожевой пес он подает голос при малейших отклонениях в параметрах электросети. Хозяин спокоен и все хорошо. Но в один из дней перебой таки случается и в этот раз ИБП не просто подает голос и сразу переключается с батареи на сеть, в этот раз свет выключили на долго. Мы спокойно копируем файлы (ведь в запасе у нас минут 15, не меньше) и тут бесперебойник начинает пищать совсем часто и все выключается. Как так? Ведь бесперебойник же должен был нас защитить от подобных ситуаций, а он только вселял нам ложную уверенность в нашей безопасности! Почему так произошло?

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

Читать дальше →
Total votes 129: ↑127 and ↓2+125
Comments99

Паттерны React

Reading time10 min
Views133K
Привет Хабр! Предлагаю вашему вниманию свободный перевод статьи «React Patterns» Майкла Чана, с некоторыми моими примечаниями и дополнениями.

Прежде всего хотел бы поблагодарить автора оригинального текста. В переводе я использовал понятие «Простой компонент» как обозначение Stateless Component aka Dump Component aka Component vs Container
Конструктивная критика, а так же альтернативные паттерны и фичи React приветствуются в комментах.

Оглавление
  • Простые компоненты — Stateless function
  • JSX распределение атрибутов — JSX Spread Attributes
  • Деструктуризация аргументов — Destructuring Arguments
  • Условный рендеринг — Conditional Rendering
  • Типы потомков — Children Types
  • Массив как потомок — Array as children
  • Функция как потомок — Function as children
  • Функция в render — Render callback
  • Проход по потомкам — Children pass-through
  • Перенаправление компонента — Proxy component
  • Стилизация компонентов — Style component
  • Переключатель событий — Event switch
  • Компонент-макет — Layout component
  • Компонент-контейнер — Container component
  • Компоненты высшего порядка — Higher-order component

Поехали!
Читать дальше →
Total votes 29: ↑25 and ↓4+21
Comments26

Основы создания 2D персонажа в Godot. Часть 2: компилирование шаблонов, немного о GDScript, движение и анимация героя

Reading time9 min
Views34K
В предыдущей статье мы рассмотрели азы создания нового проекта в Godot. И с этими поверхностными знаниями можно разве что поглядеть demo-версии игр.

Во второй части на повестке дня у нас:
1) Экспорт готового проекта в бинарные файлы для выбранной архитектуры.
2) Новые анимации. Параметры персонажа.
3) Управление.
3) GDScript. Добро пожаловать в настоящий кодинг!
4) Импорт простейших Tilesets.
5) Бонус: разбор устройства простейших задников.

Ну и как обычно, много картинок!

В этот раз действительно много картинок...
Total votes 26: ↑26 and ↓0+26
Comments18

Основы создания 2D персонажа в Godot. Часть 1: компилирование игрового движка, создание проекта и анимация покоя героя

Reading time6 min
Views52K
Пару дней назад увидел статью о публикации исходного кода под свободной лицензией MIT игрового движка Godot и сразу решил поковыряться в нём.
Оказалось не всё так сложно, скорее забавно. В своей первой публикации хотелось бы рассказать о первых шагах на пути к созданию игрового платформера, и всех подводных камнях, о которые я чуть было не переломал пальцы за эти дни.



Если это кому-то интересно, добро пожаловать под Хабракат!
Осторожно! Много картинок!
Total votes 30: ↑29 and ↓1+28
Comments23

Тестируем Mighty Editor и Phaser. HTML5 игра за час

Reading time9 min
Views30K


HTML5 игры растут и развиваются, также как инструменты для их создания. Например, phaser.js стал достаточно популярным движком, подходящим для производства игр среднего размера. Но каждый раз, применяя phaser.js, разработчикам html5 игр приходится писать повторяющийся код для стандартных операций. Визуальный редактор позволяет сгенерировать типовой код автоматически.
Читать дальше →
Total votes 24: ↑22 and ↓2+20
Comments17

[LibGDX] Создаем клон Flappy Bird — Zombie Bird

Reading time127 min
Views197K
Доброго времени суток %username%. Не давно наткнулся на хороший туториал по созданию клона игры Flappy Bird используя LibGDX и этот туториал мне понравился своей простотой и детализацией.

Я отдаю себе отчет, что тема создания клонов данной игрушки изъела себя, но возможно кому-то пригодится еще один хороший туториал.

Туториал разбит на 12 дней, содержит множество картинок, полотен кода и исходный код разбит по дням. Кому интересно, добро пожаловать под кат.
Подробнее
Total votes 111: ↑102 and ↓9+93
Comments29

Семь призраков каменного века или Каким должен быть идеальный интернет-магазин

Reading time6 min
Views89K
imageВот уже несколько лет мне приходится иметь дело с интернет-магазинами. Причем с самых разных сторон: и со стороны покупателей, и со стороны разработчиков, и со стороны интернет-рекламы, и со стороны b2b-сервиса, клиентами которого являются опять же интернет-магазины. Следствием такой плотной работы с онлайн-ритейлом явился определенный набор наблюдений и замечаний, иногда не совсем очевидных и спорных.
Читать дальше →
Total votes 52: ↑43 and ↓9+34
Comments63

Не тратьте своё время на дерьмовую работу в стартапе

Reading time21 min
Views73K
Под катом перевод огромной статьи, написанной Майклом Чёрчем и посвящённой стартапам. Статья вызвала необыкновенное бурление… мнений, скажем так, на разных сайтах и агрегаторах, поэтому я решил её перевести на русский и посмотреть на реакцию. Текст ОЧЕНЬ длинный, но также и очень интересный. И несколько пояснений перед чтением: в статье речь идёт об инженере в стартапе, именно с этой позиции всё рассматривать; некоторые финансово-экономические термины, возможно, не очень адекватно удались и я буду рад любым конструктивным поправкам.

То, о чём я хочу рассказать, справедливо для июля 2012 г. 15 лет назад необязательно было так же, и не факт, что будет справедливо через год. Но в данный момент это абсолютно верно для большинства людей в достаточной степени, так что я считаю обязанным высказаться. Нынешний мир ИК-стартапов (ИК=инвестиционный капитал / venture capital) — я его нежно называю ИК-стан — является, мягко говоря, тотально напрасной тратой времени для большинства вовлечённых людей.
Читать дальше →
Total votes 238: ↑221 and ↓17+204
Comments77

Теория Заговора

Reading time1 min
Views5.6K
[Сцена: ранние 90е, офис некоего производителя компьютеров в Силиконовой Долине]

— У меня отличная идея!

— Мочи.

— Знаешь, как программистов-старичков обычно обгоняют и втаптывают в грязь молодые пацаны? Эти детишки только из колледжа выпустились, а код на C и C++ строчат быстрее нас, опытных старых пердунов. У меня это уже в печенках сидит.
Читать дальше →
Total votes 246: ↑205 and ↓41+164
Comments153

Советы по организации и ведению корпоративного Twitter

Reading time3 min
Views10K
Все больше компаний заводят корпоративный Twitter, иногда это просто дань моде, иногда личная увлеченность общением в твиттере руководства компании, а иногда это целенаправленный распланированный процесс. О последнем варианте и поговорим.

Немного статистики:
  • 5% американцев узнает о скидках в Твиттере;
  • 70% известных компаний работают в Твиттере, в среднем у них 1500 фолловеров;
  • 80% компаний, присутствующих в Twitter, твитят еженедельно, 40% отвечают клиентам.
Читать дальше →
Total votes 30: ↑20 and ↓10+10
Comments21

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity