Pull to refresh
0
@nevejda read⁠-⁠only

User

Send message

Разноцветные терминалы

Reading time 4 min
Views 83K


В этой публикации я расскажу о некоторых трюках, которые украсят будни любого системного администратора Linux (и не только). Все они связаны с переменной PS1 оболочки bash. Переменная PS1 определяет, как будет выглядеть приглашение для ввода новых команд. И каждый пользователь может переопределять её как пожелает, например, в файле ~/.bashrc (который выполняется при запуске bash и используется для в том числе для конфигурации).

Для начала рассмотрим простой вариант, мой любимый формат командной строки.
Читать дальше →
Total votes 48: ↑40 and ↓8 +32
Comments 46

Виртуальный сетевой интерфейс

Reading time 13 min
Views 42K
Общеизвестно, что драйверы Linux — это модули ядра. Все драйверы являются модулями, но не все модули — драйверы. Примером одной из таких групп модулей, не являющихся драйверами, и гораздо реже появляющиеся в обсуждениях, являются сетевые фильтры на различных уровнях сетевого стека Linux.

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

Идея крайне проста: канализировать трафик уже существующего сетевого интерфейса во вновь создаваемый интерфейс с совершенно другими характеристиками (имя, IP, маска, подсеть, …). Один из способов выполнения таких действий в форме модуля ядра Linux мы и обсудим (он не единственный, но другие способы мы обсудим отдельно в другой раз).
Читать дальше →
Total votes 24: ↑22 and ↓2 +20
Comments 11

Способ заставить Iptables писать в свой лог и не дублировать в системный

Reading time 3 min
Views 86K
В заметке рассказано о настройке журналирования iptables в отдельный файл. Большинство руководств предлагают два подхода, но, к сожалению, у меня на Debian они так и не заработали. Точнее, логи писались в /var/log/iptables.log, но продолжали дублироваться в /var/log/messages и /var/log/syslog, что очень раздражало и задача была незавершенной. Найдя способ не дублировать сообщения в системные, решил опубликовать полученные результаты.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Comments 7

Транслитерация в Perl6

Reading time 2 min
Views 2.8K
«Транслитерация» означает замену символов. Именно этим и занимается метод Str.trans

say "GATTACA".trans( "TCAG" => "0123" );  # выводит "3200212\n"


Люди, знакомые с Perl 5 или с оболочкой Unix распознают в этом tr/tcag/0123/, а для остальных поясним: каждая буква T заменяется на 0, каждая C на 1, и так далее. Две строки, TCAG и 0123, предоставляют алфавиты, которые надо взаимозаменять.

Это можно использовать для скорости при реализации разных операций. Например, простая функция, «шифрующая» текст методом ROT-13 (замена символа тем, что стоит через 13 позиций от него):
Читать дальше →
Total votes 10: ↑8 and ↓2 +6
Comments 3

Тест для проверки цветового разрешения монитора или телевизора при подключении к компьютеру по цифровому видеоинтерфейсу

Reading time 7 min
Views 161K
«Кто нам мешает, тот нам поможет»
к/ф «Кавказская пленница»


Телевизор в качестве монитора?


В последние годы все более популярным становится использование телевизора в качестве домашнего компьютерного монитора.
И действительно — если еще несколько лет назад типичным для компьютерных мониторов Full HD разрешением (1920x1080) могли похвастаться лишь телевизоры с диагональю 40" и более, слишком большие для настольного монитора, то сейчас нетрудно найти телевизор с Full HD разрешением и с вполне «мониторной» диагональю 32" и меньше. Соответственно и размер пикселя при этом получается близким к «типовому» для настольных мониторов 0,28 мм ± 10% (ну, может быть чуть больше). А если кому-то такой пиксель покажется великоват, то с появлением доступных по цене бытовых телевизоров с разрешением 4k Ultra HD (3840x2160) размер пикселя вполне может конкурировать и с Retina.
К тому же широко распространенные в бытовых телевизорах IPS матрицы по компьютерным меркам считаются весьма «продвинутыми», и ими обычно оснащаются весьма дорогие «профессиональные» мониторы.
Казалось бы вот оно, идеальное решение для экономного домашнего пользователя — купить на грош пятаков небольшой (по телевизионным меркам) относительно недорогой 26"-37" бытовой телевизор с Full HD или Ultra HD разрешением, и в результате получить «компьютерный монитор» с большим (по компьютерным меркам) «профессиональным» IPS дисплеем, который к тому же без дополнительных вложений может быть использован и по прямому «телевизионному» назначению (что для дома тоже немаловажно!).
Однако иной раз результатом такого приобретения становится полное разочарование: компьютерная картинка на экране телевизора оказывается намного хуже, чем на простеньком старом мониторе, вместо которого этот телевизор собственно и приобретался.
Причин этого может быть множество, начиная от несоответствия разрешения соединяющего компьютер с телевизором видеоинтерфейса разрешению телевизионной матрицы, способности телевизора выводить картинку «пиксель-в-пиксель», настроек видеокарты (в частности, Overscan), настроек самого телевизора (например, резкости), проблем с кабелем, и так далее.
В данной статье мы рассмотрим только одну из возможных причин, а именно способность видеоинтерфейса, которым подключен телевизор или монитор к компьютеру, передать полное цветовое разрешение 4:4:4.

Для начала собственно тест:



Если на экране Вам отчетливо видна появляющаяся надпись 4:4:4, и лишь слегка угадывается 4:2:2, то значит видеоинтерфейс компьютер-монитор передает полное цветовое разрешение, и на этом собственно можно закончить тест и чтение статьи.
Тем же, кому интересно, как действует этот тест, а также тем, кто видит 4:2:2 и не видит 4:4:4 (или видит примерно одинаково и 4:4:4, и 4:2:2), и при этом хочет попробовать исправить ситуацию добро пожаловать под кат
Читать дальше →
Total votes 35: ↑35 and ↓0 +35
Comments 63

Использование драйвера ключей нижнего и верхнего уровней IR2110 — объяснение и примеры схем

Reading time 7 min
Views 264K


Быть может, после прочтения этой статьи вам не придётся ставить такие же по размерам радиаторы на транзисторы.
Перевод этой статьи.
Заинтересовал? Тогда поехали!
Total votes 31: ↑28 and ↓3 +25
Comments 14

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть пятая

Reading time 41 min
Views 192K

Предыдущие части




В данной части мы рассмотрим


Здесь мы в общих чертах рассмотрим работу с операторами модификации данных:
  • INSERT – вставка новых данных
  • UPDATE – обновление данных
  • DELETE – удаление данных
  • SELECT … INTO … – сохранить результат запроса в новой таблице
  • MERGE – слияние данных
  • Использование конструкции OUTPUT
  • TRUNCATE TABLE – DDL-операция для быстрой очистки таблицы

В самом конце вас ждут «Приложение 1 – бонус по оператору SELECT» и «Приложение 2 – OVER и аналитические функции», в которых будут показаны некоторые расширенные конструкции:
  • PIVOT
  • UNPIVOT
  • GROUP BY ROLLUP
  • GROUP BY GROUPING SETS
  • использование приложения OVER


Операции модификации данных очень сильно связаны с конструкциями оператора SELECT, т.к. по сути выборка модифицируемых данных идет при помощи них. Поэтому для понимания данного материала, важное место имеет уверенное владение конструкциями оператора SELECT.
Читать дальше →
Total votes 15: ↑14 and ↓1 +13
Comments 11

Заметка про NULL

Reading time 10 min
Views 183K
Всем привет!
Долго думал, что бы написать полезного про Оракл, перепробовал кучу тем. Каждый раз получалось слишком длинно, потому что уносило глубоко в дебри. Поэтому решил начать с максимально простой темы, чтобы оценить интерес аудитории и её отношение к моему стилю изложения материала (имхо, писатель из меня не очень). Несколько замечаний:
  • заметка относится к СУБД Oracle, но большинство написанного касается и других СУБД;
  • не получилось симпатично оформть код: тег source lang=«sql» подсвечивает слишком мало, как сделать по другому не в курсе. Если кто покажет, быстро всё приведу в более читабельный вид.
Итак.

Основные положения

Специальное значение NULL означает отсутствие данных, констатацию того факта, что значение неизвестно. По умолчанию это значение могут принимать столбцы и переменные любых типов, если только на них не наложено ограничение NOT NULL. Также, СУБД автоматически добавляет ограничение NOT NULL к столбцам, включенным в первичный ключ таблицы.

Основная особенность NULLа заключается в том, что он не равен ничему, даже другому NULLу. С ним нельзя сравнить какое-либо значение с помощью любых операторов: =, <, >, like… Даже выражение NULL != NULL не будет истинным, ведь нельзя однозначно сравнить одну неизвестность с другой. Кстати, ложным это выражение тоже не будет, потому что при вычислении условий Oracle не ограничивается состояниями ИСТИНА и ЛОЖЬ. Из-за наличия элемента неопределённости в виде NULLа существует ещё одно состояние — НЕИЗВЕСТНО.
Читать дальше →
Total votes 75: ↑73 and ↓2 +71
Comments 46

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть первая

Reading time 29 min
Views 804K

О чем данный учебник


Данный учебник представляет собой что-то типа «штампа моей памяти» по языку SQL (DDL, DML), т.е. это информация, которая накопилась по ходу профессиональной деятельности и постоянно хранится в моей голове. Это для меня достаточный минимум, который применяется при работе с базами данных наиболее часто. Если встает необходимость применять более полные конструкции SQL, то я обычно обращаюсь за помощью в библиотеку MSDN расположенную в интернет. На мой взгляд, удержать все в голове очень сложно, да и нет особой необходимости в этом. Но знать основные конструкции очень полезно, т.к. они применимы практически в таком же виде во многих реляционных базах данных, таких как Oracle, MySQL, Firebird. Отличия в основном состоят в типах данных, которые могут отличаться в деталях. Основных конструкций языка SQL не так много, и при постоянной практике они быстро запоминаются. Например, для создания объектов (таблиц, ограничений, индексов и т.п.) достаточно иметь под рукой текстовый редактор среды (IDE) для работы с базой данных, и нет надобности изучать визуальный инструментарий заточенный для работы с конкретным типом баз данных (MS SQL, Oracle, MySQL, Firebird, …). Это удобно и тем, что весь текст находится перед глазами, и не нужно бегать по многочисленным вкладкам для того чтобы создать, например, индекс или ограничение. При постоянной работе с базой данных, создать, изменить, а особенно пересоздать объект при помощи скриптов получается в разы быстрее, чем если это делать в визуальном режиме. Так же в скриптовом режиме (соответственно, при должной аккуратности), проще задавать и контролировать правила наименования объектов (мое субъективное мнение). К тому же скрипты удобно использовать в случае, когда изменения, делаемые в одной базе данных (например, тестовой), необходимо перенести в таком же виде в другую базу (продуктивную).
Читать дальше →
Total votes 25: ↑20 and ↓5 +15
Comments 18

Учебник по языку SQL (DDL, DML) на примере диалекта MS SQL Server. Часть вторая

Reading time 31 min
Views 324K

Вступление и DDL – Data Definition Language (язык описания данных)


Часть первая — habrahabr.ru/post/255361

DML – Data Manipulation Language (язык манипулирования данными)


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

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

Т.к. учебник посвящается широкому кругу читателей (не только программистам), то и объяснение, порой будет соответствующее, т.е. долгое и нудное. Это мое видение материала, которое в основном получено на практике в результате профессиональной деятельности.

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

Т.к. DML в диалекте БД MS SQL очень сильно связан с синтаксисом конструкции SELECT, то я начну рассказывать о DML именно с нее. На мой взгляд конструкция SELECT является самой главной конструкцией языка DML, т.к. за счет нее или ее частей осуществляется выборка необходимых данных из БД.
Читать дальше →
Total votes 15: ↑12 and ↓3 +9
Comments 11

Универсальный ПДУ для XBMC из TP Link MR3020

Reading time 6 min
Views 36K
Про домашний беспроводной маршрутизатор TP Link MR3020 с Openwrt уже писали на Хабре. В данной статье я расскажу, как эту недорогую, но полезную коробочку научить управлять телевизором, XBMC плеером и любой другой домашней электроникой, понимающей ИК сигналы с пульта управления. Более того, и сам MR3020 научится принимать сигналы, подаваемые с любого пульта ДУ.

Чем и как конкретно управлять — решать вам, тем, кто возьмется повторить шаги, описанные ниже. У меня такие коробочки теперь управляют связкой TV-XBMC в гостиной и на кухне. При этом для управления используется всего один пульт. В ближайших планах — выбрать в соседнем подземном переходе пульт, который понравится всем домочадцам, и закупить таких штуки 3. Конечно, тем же хозяйством можно управлять с планшета Android (через Wi-Fi) или с компьютера (через Ethernet), но такой способ, похоже, кроме меня никого в нашей семье не вдохновляет.
Читать дальше →
Total votes 31: ↑25 and ↓6 +19
Comments 24

Реанимация роутера TP-LINK 3020

Reading time 3 min
Views 60K
Доброго времени суток всем.

Решил поделиться своим опытом реанимации Wi-Fi роутера TP-LINK 3020.

Началось все с того, что от вынужденного безделья решил я поиграться с прошивками CyberWRT. И это плохо кончилось. Я даже сам не совсем понял, что произошло. Скорее всего дело было в том, что с роутером я работал через WiFi, который раздавался точно таким же роутером с заводской прошивкой и дефолтными настройками. Видимо в какой-то момент произошел сброс настроек испытуемого, соответственно конфликт IP адресов, и получил я красивый кирпич, моргающий всеми светодиодами в циклическом ребуте.

Не надо так делать.

Читать дальше →
Total votes 28: ↑20 and ↓8 +12
Comments 25

Машинка на контроллере с .NET Micro Framework, управляемая акселерометром Android-устройства

Reading time 11 min
Views 29K
image
Простой проект с описанием изготовления 4WD машинки с управлением от Android-устройства через Bluetooth канал. Управление машинкой происходит при помощи акселерометра, путем наклона планшета/смартфона. Видео работы смотрите в конце статьи. Все исходные тексты прилагаются.

Инструментарии разработки: Java/Eclipse для Android и .NET Micro Framework/Visual C# Express для микроконтроллера.

Читать дальше →
Total votes 71: ↑64 and ↓7 +57
Comments 41

Руководство по установке и настройке OpenVPN

Reading time 34 min
Views 1.4M



Когда у нас появились сотрудники, работающие удаленно, пришлось думать над тем, как обеспечить им защищенный доступ к нашим хостинговым серверам, виртуальным выделенным серверам разработчиков Virtual Dedicated Server (VDS), сайтам обеспечения и сопровождения разработки и к другим ресурсам.



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



Выход нашелся довольно быстро — это использование технологии виртуальных частных сетей Virtual Private Network (VPN) и ее свободной реализации OpenVPN. Эта реализация доступна практически для всех распространенных платформ, в том числе для планшетов и смартфонов. История развития OpenVPN насчитывает уже 12 лет (компания OpenVPN Technologies, Inc. была создана Francis Dinha и James Yona в 2002 году), так что это надежное и проверенное временем решение.



В нашей компании сеть VPN позволила предоставить защищенный доступ сотрудников к VDS, играющей роль сервера OpenVPN. И уже для фиксированного IP этого сервера был разрешен доступ к другим ресурсам компании. Попутно на сервере OpenVPN был установлен прокси Squid, что решило все проблемы доступа сотрудников с динамическими IP к защищенным ресурсам компании.



Теме OpenVPN посвящены многочисленные статьи и сообщения на форумах. Тем не менее, нужную информацию мне пришлось собирать по частям из разных мест. Попутно приходилось разбираться с многочисленными терминами и технологиями. В качестве серверов OpenVPN были использованы VDS на базе FreeBSD и Debian Linux, в качестве клиентов — рабочие станции FreeBSD, Debian Linux, Ubuntu и Microsoft Windows.



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


Читать дальше →
Total votes 128: ↑115 and ↓13 +102
Comments 97

Делаем универсальный ключ для домофона

Reading time 5 min
Views 541K
Заголовок получился слишком громким — и ключ не такой и универсальный, и домофон поддастся не любой. Ну да ладно.
Речь пойдет о домофонах, работающих с 1-wire таблетками DS1990, вот такими:



В интернете можно найти множество материалов о том, как читать с них информацию. Но эти таблетки бывают не только read-only. Человеку свойственно терять ключи, и сегодня ларёк с услугами по клонированию DS1990 можно найти в любом подземном переходе. Для записи они используют болванки, совместимые с оригинальными ключами, но имеющие дополнительные команды. Сейчас мы научимся их программировать.

Зачем это нужно? Если отбросить заведомо нехорошие варианты, то самое простое — это перепрограммировать скопившиеся и ставшие ненужными клонированные таблетки от старого домофона, замененного на новый, от подъезда арендованной квартиры, где больше не живете, от работы, где больше не работаете, и т.п.

Читать дальше →
Total votes 223: ↑208 and ↓15 +193
Comments 109

Прототип. От идеи до опытной партии. Литье в силикон

Reading time 2 min
Views 182K
В прошлой статье я описал мой путь по созданию опытной партии изделия, в ней я литье в силикон отдал на аутсорс. Пока я ждал выполнения моего заказа, потихоньку сам начал осваивать это ремесло. Статья будет полезна тем, у кого допустим есть плата какого-нибудь девайса, но нету красивого корпуса, 3д-печать не подходит по характеристикам, а делать сразу промышленную пресс-форму очень дорого.


Читать дальше →
Total votes 168: ↑166 and ↓2 +164
Comments 75

Знакомство с TCP стеком для микроконтроллеров фирмы Microchip

Reading time 8 min
Views 69K
Предположим, у нас возникла необходимость в создании устройства с возможностью подключения к сети Ethernet. Вариантов имеется довольно много, но все их можно условно разделить на 3 вида.
Читать дальше
Total votes 72: ↑70 and ↓2 +68
Comments 4

Реверс-инжениринг драйверов USB-устройств на примере машинки на радиоуправлении

Reading time 10 min
Views 53K
Перевод статьи DRIVE IT YOURSELF: USB CAR

image

Один из аргументов любителей Windows перед любителями Linux – недостаток драйверов для оборудования под эту ОС. С течением времени ситуация выправляется. Сейчас она уже гораздо лучше, чем 10 лет назад. Но иногда можно встретить какое-то устройство, которое не распознаётся вашим любимым дистрибутивом. Обычно это будет какая-нибудь USB-периферия.

Красота свободного софта в том, что эту проблему можно решить самостоятельно (если вы программист). Конечно, всё зависит от сложности оборудования. С трёхмерной веб-камерой у вас может и не получится – зато многие USB-устройства довольно просты, и вам не придётся нырять в глубины ядра или закапываться в С. В этом уроке мы с вами при помощи Python по шагам изготовим драйвер к игрушечной радиоуправляемой машинке.

Процесс по сути будет реверс-инженирингом. Сначала мы подробно изучим устройство, затем сохраним данные, которыми оно обменивается с драйвером в Windows, и попытаемся понять, что они означают. Для нетривиальных протоколов вам может потребоваться как опыт, так и удача.
Читать дальше →
Total votes 78: ↑70 and ↓8 +62
Comments 18

Простой внутрисхемный программатор ARM микроконтроллеров серии LPC своими руками. Схемотехника. Часть первая

Reading time 2 min
Views 72K
В последнее время, как среди профессиональных разработчиков, так и в рядах начинающих электронщиков широкое распространение получили ARM микроконтроллеры. Очень большой популярностью пользуются разработки фирмы NXP. Эта фирма производит огромный спектр изделий – от дешёвых и малопотребляющих до высокопроизводительных, поддерживающих такие интерфейсы как USB и Ethernet.
Подробности
Total votes 11: ↑10 and ↓1 +9
Comments 3

Простой внутрисхемный программатор LPC микроконтроллеров. Особенности внутрисхемного программирования. Часть вторая

Reading time 4 min
Views 62K
В своей первой статье я описал схему простого программатора, сегодня расскажу, каким образом, подсоединить его к программируемому устройству.

Рис. 1. Внешний вид программатора.
В старые, добрые времена, когда микроконтроллеры с перепрограммируемой памятью программ на основе FLASH только начинали появляться, их программирование осуществлялось по параллельном интерфейсу. При этом для программирования могло использоваться более 20 выводов и зачастую требовалось использовать повышенное напряжение — 12 вольт и более. Микроконтроллеры тогда выпускались в выводных ДИП корпусах.
Подробности
Total votes 24: ↑23 and ↓1 +22
Comments 5
1

Information

Rating
Does not participate
Registered
Activity