Search
Write a publication
Pull to refresh
0
0
Константин Садовский @AsmodeusL

User

Send message

Bash: автообнаружение противника для сетевой игры на «Маках»

Reading time3 min
Views1.4K
Время от времени мне нравится писать на bash какие-нибудь не слишком тривиальные вещи. Вроде сетевых шахмат, о которых я уже рассказывал на «Хабре».

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

Сканировать вообще все адреса невозможно долго. Есть два некрасивых решения «в лоб» — просканировать текущую подсеть или посмотреть в таблицу ARP, подсоединиться к тем, кто там есть. Но, во-первых, такой перебор всё равно будет медленным, а во-вторых, не найдёт всех потенциальных соперников (соперники могут быть в других подсетях, а в таблице ARP вообще далеко не все участники сети).

Вообще, подобная проблема давным-давно решена в операционках — например, когда я настраивал дома сетевой принтер, операционная система нашла его сама, я не указывал IP или что-то ещё. В «Маках» для этого есть технология «Бонжур» (реализация «Зероконфа»).

Нельзя ли использовать эту технологию в «Баше»?
Можно!

О суперскалярах, параллелизме и кризисе жанра

Reading time5 min
Views24K

Наверное, ни для кого из хабралюдей не будет новостью то, что основополагающие идеи и принципы, заложенные в нынешней цифровой технике и ее компонентах, родом из далекого по компьютерным меркам прошлого, а именно – из середины предыдущего века. Именно тогда были придуманы те основы, которые вот уже 50 лет с успехом разрабатывают, совершенствуют и продают крупнейшие (и не столь большие) компании сектора IT – в их строю, конечно, и Intel. Однако при всей очевидности данное положение навевает определенно пессимистический настрой: неужели все великие идеи закончились, и наше поколение обречено на мелочное ковыряние в Великом Наследии Прошлого?
Рассмотрим один конкретный и неудивительный для этого блога пример – заглянем в мысли тех, кто думает об усовершенствовании процессорных архитектур.
Читать дальше →

Flash-память в дата-центрах: почему она иногда дешевле жестких дисков?

Reading time6 min
Views34K
Современный сервер – это электронное устройство, где движущихся механических частей почти нет. Почти – потому что жесткий диск, например, ярко выделяется в этом ряду.


Всё это в некоторых случаях можно заменить на одно компактное устройство

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

Кастомизация Skype для Linux. Оповещение о появлении «избранных» контактов в сети

Reading time3 min
Views5.4K
Основное средство общения в нашей компании — это шашлыки чат Skype. Статус «в сети» означает присутствие на рабочем месте. Иногда ждёшь кого-то, начальству не напишешь «зайди плиз срочно» — в общем, уведомление о появлении в сети определённого человека было бы полезно.

В Skype для Linux нет такой «галочки» для отдельных контактов (думаю, что и пользователи других ОС с этим знакомы). Зато есть неоспоримое преимущество — почти безграничные возможности командной строки:
Читать дальше →

Я не могу написать бинарный поиск

Reading time11 min
Views208K
Недавно (буквально два года назад) тут пробегала статья Только 10% программистов способны написать двоичный поиск. Двоичный поиск — это классический алгоритм поиска. Мало того, это еще чрезвычайно простой алгоритм, который можно очень легко описать: берем отсортированный массив, смотрим в середину, если не нашли там число, в зависимости от того, что в середине — ищем это число этим же методом либо в левой части, либо в правой, откидывая средний элемент. Для функций также, просто берем не массив, а функцию. Все очень и очень просто, алгоритм описан почти везде, все баги словлены и описаны.

Так вот, я не могу реализовать двоичный поиск. Для меня он ни капельки не тривиален. Наверное, я ненастоящий программист. А ведь так и есть, я всего-лишь студент, но ведь это не оправдание? Если точнее, я не могу реализовать хороший корректный красивый двоичный поиск. Все время у меня вылезает проблема либо с корректностью, либо с красивостью, либо и с тем, и с другим. Так что, да, заголовок немного желтоват.
Прежде чем читать этот топик, напишите свою версию бинарного поиска — для отсортированного массива. Причем, в зависимости от параметра, поиск должен выдавать или первый элемент, или любой из дублирующих. Еще для сравнения, напишите бинарный поиск для функций

А в чем, собственно, проблема?

Установка Oracle 10g на CentOS 6.2 x64

Reading time5 min
Views29K
На днях пришлось установить данный вид продукции на данную официально не поддерживаемую ораклом ось. CentOS для меня достаточно неизученный Linux, поэтому как устанавливать гуглил. Нашел несколько инструкций, к сожалению ни одна из них не была тем самым руководством, тупо следуя которому можно было бы выполнить это действо. Все требовали доработки, поиска недостающих библиотек и т.д. В итоге написал некое подобие HOWTO с учетом всех поправок. Может быть кому-то будет интересно.

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

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

Допиливание оболочки Ubuntu до Xfce

Reading time8 min
Views118K
Всем известны проблемы работы с революционной средой рабочего стола Unity в Linux Ubuntu. В пользовательском интерфейсе происходят значительные изменения и эксперименты, приводящие к очередным «волнам эмиграции» на другие системы и сборки. После некоторого периода работы в среде Unity в Ubuntu 10.04 LTS (Long Time Support) и вполне успешного привыкания к реалиям Unity, пришлось вернуться в среду новой сборки — 11.10. Тут ожидал сюрприз, поскольку число поддерживаемых тем рабочего стола уменьшилось и настройки системы стали как-то более обрубленными. В перечне тем отсутствовали виды окон с правым расположением кнопок закрывания, что привело к поиску других оболочек, каким бы прогрессивным ни выглядело существование в среде Unity. Более года назад вышла версия рабочей среды Xfce 4.8 со стабильными положительными отзывами, поэтому логично было попробовать её вместо Unity. Как альтернатива, опробовалась среда LXDE, сравнимая по легковесности с Xfce и весьма похожая на неё по организации работы со столом.
Читать дальше →

Эффективное чтение

Reading time1 min
Views11K


Настало время для седьмой лекции курса «Сетевое программирование в UNIX», подготовленного специалистами SkyDNS и компании «Айдеко». Автор курса Александр Патраков объясняет студентам, как ускорить чтение небольших порций данных из сокета.
Читать дальше →

Как сделать программу нетерпеливой?

Reading time1 min
Views11K


Программы, которые были написаны в прошлых лекциях курса «Сетевое программирование в UNIX», обладали бесконечным запасом терпения, то есть беспрекословно ждали, пока не поступят данные для обработки. В новой лекции вы узнаете, как ограничить терпение программы определенными временными рамками.
Читать дальше →

Обновления ядра в Ubuntu с помощью Bash

Reading time5 min
Views20K
Часто бывает так, что поставив новую стабильную систему, да ещё и отмеченную как LTS, вам всё равно хочется установить новое ядро (в котором, например, улучшено энергосбережение и наконец-то заработает ваш новый планшет Genius).

Патчить и собирать ядро из исходников — игра, конечно, интересная, но для ленивых пользователей Ubuntu существует готовый репозиторий. Одна беда — скачивать пакеты и следить за обновлениями придётся вручную.

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

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

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

Выравнивание разделов на современных жестких дисках с помощью программных средств

Reading time5 min
Views145K
Появление современных жестких дисков с секторами размером 4 KБ (вместо 512 байт) сделало проблему выравнивания разделов актуальной как для IT-специалистов, так и для обычных пользователей. Все дело в том, что несоответствие между физическим и логическим распределением данных может привести к резкому снижению производительности всей системы и сокращению срока службы оборудования.
Читать дальше →

Таблица уровней для системного администратора

Reading time1 min
Views24K
Несколько лет назад после прочтения матрицы компетентности программиста я поискал аналогичную матрицу для системных администраторов. Ближашее что я тогда нашел это Sage Level Job Descriptions, но меня не оставляло желание составить для системных администраторов аналогичную таблицу.

Я несколько раз начинал это делать, потом бросал и снова начинал, и только теперь наконец-то сделал:

Хочу посмотреть

Чипсеты Intel 7-й серии – сравнительный обзор

Reading time4 min
Views213K
Почти два месяца назад, 9 апреля, Intel официально объявила о выходе чипсетов новой, седьмой серии. И хотя информация об этих чипсетах обсуждалась до того в течение почти что года, думается, имеет смысл еще раз в одном тексте свести воедино все их основные характеристики и функции. Ведь одно дело – просто обсуждать, и совсем другое – после обсуждения пойти в магазин и приобрести выбранное устройство или набор комплектующих.
Итак, чипсеты седьмой серии (кодовое наименование Panther Point) спроектированы под процессоры нового поколения Ivy Bridge, кроме того, поддерживаются и процессоры предыдущего поколения Sandy Bridge. В целом чипсетная картина выглядит так:
Intel Q75 Express Chipset Настольные ПК – корпоративный сегмент
Intel Q77 Express Chipset
Intel B75 Express Chipset
Intel Z77 Express Chipset Настольные ПК – потребительский сегмент
Intel Z75 Express Chipset
Intel H77 Express Chipset
Mobile Intel HM75 Express Chipset Мобильные ПК – потребительский сегмент
Mobile Intel HM76 Express Chipset
Mobile Intel HM77 Express Chipset
Mobile Intel UM77 Express Chipset
Mobile Intel QM77 Express Chipset Мобильные ПК – корпоративный сегмент
Mobile Intel QS77 Express Chipset
Читать дальше →

Не БД

Reading time6 min
Views9.3K
Автор рассказывает о перипетиях пивоваров, производителей СУБД, себя и кратко о том как правильно проектировать приложения. Мне показалась полезной поучительная часть статьи.
Читать дальше →

Yet another cool story about bash prompt

Reading time10 min
Views38K
Я программист. По крайней мере так написано в трудовой книжке. Почти всё своё рабочее время я провожу в консоли и текстовом редакторе. Мне очень нравится bash. Почти год я жил в zsh, прислушавшись к советам своих многочисленных коллег и знакомых, но в итоге я вернулся в bash и ни капельки об этом не жалею.



Zsh красив, приятен, чертовски функционален, но, признаюсь честно, я не смог совладать со всеми его многочисленными настройками. Я хочу работать, а не бороться со своим рабочим окружением. Простой пример: пару раз из-за автодополнения zsh я удалял все директории и файлы в текущей директории — zsh просто ставил пробел между автодополненной директорией и введённой мною звёзочкой (я хотел удалить всё в выбранной папке). Помните тот эпичный баг с пробелом и удалении директории /usr? У меня было то же самое. Спасибо гиту, выручил в который раз.

Впрочем, дело не в zsh — будь я чуточку умнее, я бы с ним обязательно справился бы, и всё было бы хорошо, но мы, суровые программисты, будем использовать bash и vim, а гламурные zsh и textmate оставим хипстерам и прочим модникам ;)

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

Решение суда: Google не нарушает авторское право Oracle на Java API

Reading time1 min
Views5.4K
Итак, в прошлый раз судья постановил, что Google не нарушает патентов Oracle в своей операционной системе Android. Но не было понятно, что делать с авторским правом на 37 Java API и 9 строчками кода rangeCheck. Теперь же судья Уильям Хаскел Элсап постановил, что Google не нарушал авторских прав Oracle на API по причине отсутствия этих самых прав. Суд решил, что эти API не подлежат копирайту, поэтому отсутствует состав преступления.
Читать дальше →

Единственный способ

Reading time4 min
Views71K
Ральф вошел в помещение ангара №1 в 8:30 утра, как делал это ежедневно уже несколько лет. Его взгляд сразу же устремился к центру зала, где на постаменте, окруженный множеством приборов и паутиной кабелей, находился смысл его работы. Собственно говоря, не только его — миллионов людей по всему миру. Первый инопланетный корабль. Полтора десятилетия назад он совершил аварийную посадку и был частично поврежден, оставив, однако, весьма много материала для изучения. Настоящим чудом стало то, что политики и учёные после этого события не переругались, а смогли организовать эффективное изучение свалившегося с небес подарка. На реверс-инжиниринг корабля были брошены лучшие умы планеты. Ральф, возглавляющий группу изучения приборов связи, стоял в ангаре и в который раз любовался стремительной, похожей на стрелу в полёте, формой корабля. Он вспоминал всё, что случилось за последние годы.
Читать дальше →

Засеки 25 минут!

Reading time2 min
Views5.3K
Как часто вам бывает нужно просто засечь время? Я думаю, что такая необходимость периодически возникает у всех. Кто-то просто смотрит на часы, кто-то использует специальные программы, кто-то ставит будильник на телефоне.

Но помимо всех этих способов можно ещё сделать вот так:

sleep 25m ; xmessage 'Hey! :)'

Всего две команды, которые довольно легко запоминаются.

Вместо xmessage может быть, разумеется, что угодно ещё. Например:

sleep 8h 30m ; mplayer /home/user/Music/pink_floyd-the_happiest_days_of_our_lives.flac

Впрочем, тут надо учитывать, что команда не будет выполнена, если вы закроете терминал. Если же необходимо, чтобы команда всё-таки выполнилась, то есть несколько способов это сделать.
Читать дальше →

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity