Pull to refresh
3
0
Алексей @ParaPilot

User

Send message

Разработка драйвера PCI устройства под Linux

Reading time19 min
Views60K

В данной статье я рассматриваю процесс написания простого драйвера PCI устройства под OC Linux. Будет кратко изучено устройство программной модели PCI, написание собственно драйвера, тестовой пользовательской программы и запуск всей этой системы.

В качестве подопытного выступит интерфейс датчиков перемещения ЛИР940/941. Это устройство, отечественного производства, обеспечивает подключение до 4 энкодеров с помощью последовательного протокола SSI поверх физического интерфейса RS-422.

Исследуем сопоставление с образцом в C# 7

Reading time6 min
Views20K
В C# 7 наконец появилась долгожданная возможность под названием «сопоставление с образцом» (pattern matching). Если вы знакомы с функциональными языками, такими как F#, вы можете быть немного разочарованы этой возможностью в ее текущем виде, но даже сегодня она может упростить ваш код в самых разных сценариях.

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

В 20 раз дешевле, в 2,5 раза точнее и вдвое удобнее

Reading time7 min
Views32K
Приветствую, уважаемое сообщество!

Сегодня ровно год, как я написал первый пост на Хабре. Второй и до этого момента крайний пост, я написал примерно через неделю и…

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

Так вот, в честь юбилея моего присутствия на Хабре, я решил написать серию статей, в которой расскажу о некоторых проектах и разработках, сделанных в ходе работы над этими проектами. Конечно, я буду рассказывать только о разработках, которые по тем или иным причинам не принял заказчик (соответственно все права на интеллектуальную собственность принадлежат мне) или которые я делал вне проектов, для себя. И естественно, все проекты будут технической направленности, это около 40% всех проектов (остальные относятся к области маркетинга, HR, экономики).

Долго думать с какого проекта начать, не пришлось, логично начать с самого первого проекта. Тем более решение, которое я опишу, получилось действительно эффективное и простое (у Трабл-шутеров часто решения на столько простые, что заказчик хватается за голову: «Как же я сам не догадался?»). В теме поста нет никакого обмана, действительно разработанное оборудование получилось минимум в 20 раз дешевле аналогов (для некоторых брендов конкурентов, этот показатель достигает и 40х), в 2,5 раза точнее и значительно удобнее.

И так, как вы уже поняли разрабатывали мы в этом проекте не ПО, не процессы, а оборудование (железку). Под катом вы узнаете все подробности о проекте.
Читать дальше →

9 основных принципов отзывчивого веб-дизайна

Reading time4 min
Views132K

Отзывчивый дизайн — отличное решение проблемы корректного отображения сайта на разных экранах. Однако новичкам зачастую трудно понять основы, обучаясь только по книгам/статьям. С каждым днём появляется всё больше различных устройств, имеющих разные размеры экрана, поэтому создание дизайна в пикселях и только для настольных компьютеров/смартфонов остаётся в прошлом. Именно поэтому сейчас стоит изучить принципы отзывчивого дизайна — дизайна, совмещающего в себе адаптивность и резиновость (если вы ещё не знакомы с адаптивным дизайном, то эта статья будет хорошим выбором для начала изучения).
Читать дальше →

Как сверстать тему для WordPress

Reading time24 min
Views594K

Введение


В предыдущих статьях мы рассмотрели принципы верстки на чистом CSS и с помощью Bootstrap. Сегодняшней статьей мы начинаем рассматривать особенности верстки под популярные CMS. И начнем с WordPress, как самой популярной из них. Будем считать, что WordPress у вас уже установлен и перейдем непосредственно к созданию шаблона, в качестве которого у нас по-прежнему будет выступать Corporate Blue от студии Pcklaboratory. Если вы не знаете как установить WordPress, то инструкцию можно найти здесь. В данном руководстве мы не будем подробно описывать CSS стили и HTML код – это было сделано уже в предыдущих статьях. Вместо этого рассмотрим детально особенности создания темы именно под WordPress.
Читать дальше →

Делаем адаптивный HTML, добавляя одну строку в CSS

Reading time4 min
Views197K
image

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

И самое классное: адаптивность будет добавлена с помощью одной строки CSS.
Это означает, что нам не нужно загромождать HTML лишними классами (Col-sm-4, col-md-8) или создавать медиа-запросы для каждого размера экрана.

Рассмотрим все подробнее.
Читать дальше →

Открытый веб-интерфейс для .NET (OWIN)

Reading time6 min
Views15K
Привет, Хабр! ASP.NET Core поддерживает открытый веб-интерфейс для .NET (OWIN), а OWIN позволяет отвязывать веб-приложения от веб-серверов. Он определяет стандартный способ использования связующего ПО при обработке запросов и соответствующих ответов. Приложения ASP.NET Core и связующее ПО совместимы с приложениями, серверами и связующим ПО на базе OWIN. Подробнее об этой паре читайте под катом.


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

Интерфейсы в C#

Reading time4 min
Views113K
У тех, кто только начинает осваивать C# часто возникает вопрос что такое интерфейс и зачем он нужен.

Сначала о том, что можно найти по первой же ссылке в поисковике. В большинстве статей смысл интерфейса разъясняется как «договор» о том, что должен содержать класс, какие свойства и методы. Например у нас есть интерфейс:

public interface IForecast
{
    int GetForecast(int value);
    int Size { get; set; }
}


Соответственно, если какой-то класс реализует данный интерфейс, то он должен содержать реализацию метода int GetForecast(int value) и свойство Size.

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

Подводя итог этой части, если какой-то интерфейс реализуется только в одном единственном классе, то не тратьте время на него. Он просто не нужен.

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

Путь разработчика ASP.NET → PHP

Reading time6 min
Views30K
Так получилось, что в сентябре прошлого года назад я перешел в компанию, где основным языком бэкенд-разработки был PHP 7. До этого технологии с которыми я работал ограничивались C#, ASP.NET, Javascript (JQuery, Angular 1.x, Typescript), MS SQL, IIS и Windows Server. Теперь же предстояло погружение в новый стек. Данная статьи — не очередной наброс на вентилятор для поддержки холивара. Постараюсь отметить, что показалось необычным или непривычным. Статья обращена к .net разработчикам, но, надеюсь, будет интересна и PHP сообществу.
image

Начнем с сессии

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

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

Reading time8 min
Views61K


Перевод «Я люблю ИП»


Недавно я работала над созданием системы отступов и размеров для одного продукта в сфере здравоохранения, чтобы улучшить читабельность текста и добиться последовательности на всех страницах. Я вывела три правила для отступов (Правило трёх «К») и четыре размера (16px, 8px, 4px, 2px), которые работали гармонично с новой системой типографики.


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

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

Оптимизация скорости визуализации веб-страниц

Reading time11 min
Views21K
Нередко рассказы о том, как веб-разработчики заботятся о своих приложениях, начинаются с процесса визуализации сайта, опускаются на уровень DOM и останавливаются на утверждениях типа: «И это быстро потому, что используется ускорение». Мартин Сплитт рассказывает о производительности снизу вверх: он начинает с пикселя и поднимается уровень за уровнем, заканчивая компоновкой страницы.


В основе статьи – выступление Мартина на JavaScript-конференции HolyJS 2017 в Питере, где он рассказывает о том, как происходит визуализация в браузерах и что нужно делать для того, чтобы ваши сайты «летали».

DockStation. Почему мы решили сделать этот проект

Reading time5 min
Views14K
Работа с Docker не самая простая задача. В этой статье хотелось бы рассказать что нас подтолкнуло с созданию DockStation проекта и что у нас уже реализовано на данный момент.

Начало


Я работаю разработчиком уже больше 8 лет, и для меня всегда была болью настройка dev окружения для разработки при переходе на другую OС или смене рабочей машины.
Читать дальше →

Поиск утечек памяти в приложениях на .NET Core под Linux

Reading time7 min
Views13K

.NET Core становится всё более и более зрелой платформой. На нём уже достаточно комфортно можно вести разработку, используя тот же Rider или VS Code.


Однако, и там не всё гладко. Например, отладка кода на .NET Core 2 заработала только в Rider 2017.2, который вышел, буквально на днях (были ещё EAP сборки). Приходилось пользоваться VS Code. В нём работает отладка, однако, чтобы заработал запуск тестов надо руками ставить beta-версию расширения для C#.


Я думаю, суть ясна, что инструментальная поддержка пока сильно далека от аналогичной при разработке под Windows.


Для некоторых вещей пока нету готовых средств. Например, для профилирования.


Из источников, которые доступны в сети, самыми содержательными, по моему мнению, на текущий момент являются статьи Саши Гольдштейна:



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

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

Руководство по материалам электротехники для всех. Часть 11

Reading time7 min
Views43K
Продолжение руководства по материалам электротехники. Практически заключительная часть, про ленты и трубочки. Про Синюю Изоленту тоже есть пара слов.

image

Добро пожаловать под кат (ТРАФИК)
узнать о материалах

Такты для разработчиков

Reading time10 min
Views24K


Если у вас есть опыт создания ПО и вы хотите познакомиться с проектированием цифровых логических схем (digital design), то одна из первых вещей, которые вам нужно понять, — это концепция тактов. Она раздражает многих программных инженеров, начинающих HDL-проектирование. Без использования тактов они могут превратить HDL в язык программирования с $display, if и циклами for, как в любом другом языке. Но при этом такты, которые новички игнорируют, — зачастую один из основополагающих элементов при проектировании любых цифровых логических схем.


Ярче всего эта проблема проявляется именно при рассмотрении первых схем, созданных начинающими HDL-разработчиками. Я недавно общался с некоторыми из них. Новички опубликовали свои вопросы на форумах, которые я читаю. Когда я проанализировал то, что они делают, от увиденного волосы встали дыбом.

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

Функционал F#, который потихоньку появляется и в C#

Reading time7 min
Views15K

Почему-то мы зачастую не используем этот функционал. Может быть еще не успели к нему привыкнуть. А иногда используем, при этом не имея представления, что это функционал из F#.
Читать дальше →

Бот в муравейнике

Reading time27 min
Views19K

Еще один игровой бот для «Космических рейнджеров HD» (издатель ) наводит на интересные мысли о путях развития искусственного интеллекта (ИИ).
Читать дальше →

Настраиваем интернет шлюз с прозрачным обходом блокировок (а рекламу таки будем блокировать)

Reading time9 min
Views109K


У вас есть старенький (или не очень) компьютер с двумя сетевыми картами? Вам надоела реклама и лишние телодвижения для обхода блокировок? Вы не хотите с этим мириться? Тогда добро пожаловать под кат.
Читать дальше →

Предельная производительность: C#

Reading time56 min
Views266K
performanceЯ поделюсь 30 практиками для достижения максимальной производительности приложений, которые этого требуют. Затем, я расскажу, как применил их для коммерческого продукта и добился небывалых результатов!
Приложение было написано на C# для платформы Windows, работающее с Microsoft SQL Server. Никаких профайлеров – содержание основывается на понимании работы различных технологий, поэтому многие топики пригодятся для других платформ и языков программирования.
Читать дальше →

10 приёмов работы в терминале Linux, о которых мало кто знает

Reading time3 min
Views170K
Близкое знакомство с возможностями терминала — один из признаков человека, который хорошо разбирается в Linux. Хотя некоторые вещи запомнить сложно, есть довольно-таки простые, но эффективные приёмы, которые способны повысить качество и скорость работы в терминале. Пожалуй, каждый пользователь Linux рано или поздно обзаводится собственным списком ценных мелочей. Надеемся, некоторых из тех десяти приёмов работы в командной строке Linux, которыми мы хотим с вами поделиться, попадут в ваш личный список полезных команд.

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

Information

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