Программирование

Боровский А. Программирование для Unix : Часть 12: С окнами на «ты»

Боровский А. Программирование для Unix [Текст] : Часть 12: С окнами на "ты" / Андрей Боровский  //  Linux Format. — 2007. — № 5 (92), май. — С. 78-81. — (Программирование для Unix. Учебник). 
     Аннотация
     Заключительная статья цикла о низкоуровневом программировании в Linux/Unix. 
     Продолжение знакомства с библиотекой ncurses — в ncurses-II рассматриваются важные возможности ncurses, такие, как управление цветом (на примере программы cursedcolors) и поддержка мыши (на примере программы cursedmouse).

Боровский А. Программирование для Unix : Часть 11: ncurses: привет Окнам!

Боровский А. Программирование для Unix [Текст] : Часть 11: ncurses: привет Окнам! / Андрей Боровский  //  Linux Format. — 2007. — № 4 (91), апр. — С. 80-83. — (Программирование для Unix. Учебник). 
     Аннотация
     Дополнительное средство управления терминалом – открытая библиотека ncurses (new curses), которая создает удобный интерфейс для утилит командной строки и расцвечивает терминал всеми цветами радуги. 

Боровский А. Программирование для Unix : Часть 10: Консольный ввод/вывод

Боровский А. Программирование для Unix [Текст] : Часть 10: Консольный ввод/вывод / Андрей Боровский  //  Linux Format. — 2007. — № 3 (90), март. — С. 74-77. — (Программирование для Unix. Учебник). 
     Аннотация
     Интерфейс терминала (консоли) Unix обладает гораздо большим числом возможностей, чем кажется на первый взгляд. Некоторые дополнительные возможности работы с терминалом при помощи интерфейса termios демонстрирует Андрей Боровский.

Боровский А. Программирование для Unix : Часть 9: Демоны

Боровский А. Программирование для Unix [Текст] : Часть 9: Демоны / Андрей Боровский  //  Linux Format. — 2007. — № 2 (89), февр. — С. 78-81. — (Программирование для Unix. Учебник). 
     Аннотация
     Демоны в мире Unix — процессы, которые не взаимодействуют с пользователем напрямую. У процесса-демона нет управляющего терминала и, соответственно, нет пользовательского интерфейса. Для управления демонами приходится использовать другие программы. Само название "демоны" возникло благодаря тому, что многие процессы (не все) этого типа большую часть времени проводят в ожидании какого-то события. Когда это событие наступает, демон активизируется (выпрыгивает, как чертик из табакерки), выполняет свою работу и снова засыпает в ожидании события. 
     Демоны делают всю "черную работу" – но как они выглядят изнутри? Для этого мы рассмотрим их работу на примере простого (очень простого) сетевого сервера aahzd, способного отвечать на запросы клиентов. Исходный код сервера представляет собой доработанный вариант открытого демонстрационного демона, написанного Давидом Жилье (David Gillies). 

Боровский А. Программирование для Unix : Часть 8: Потоки: синхронизация

Боровский А. Программирование для Unix [Текст] : Часть 8: Потоки: синхронизация / Андрей Боровский  //  Linux Format. — 2007. — № 1 (87-88), янв. — С. 72-75. — (Программирование для Unix. Учебник). 
     Аннотация
     Бесконтрольно размножающиеся потоки очень быстро устраивают соревнование за ресурсы системы. Андрей Боровский знает, как сделать так, чтобы все эти thread_func() не мешали друг другу. 

Боровский А. Программирование для Unix : Часть 7: Потоки: создание и уничтожение

Боровский А. Программирование для Unix [Текст] : Часть 7: Потоки: создание и уничтожение / Андрей Боровский  //  Linux Format. — 2006. — № 12 (86), дек. — С. 71-75. — (Программирование для Unix. Учебник). 
     Аннотация
     Потоки и процессы в Linux – где та тонкая грань, что отличает одно от другого? 
     Жизненный цикл потоков – от создания до принудительного завершения. 
     Некоторые авторы избегают термина "поток" и используют вместо него термин "нить" (от англ. "thread"), вероятно для того, чтобы потоки программ не путались с потоками ввода-вывода. Для обозначения последовательного выполнения цепочки инструкций автору лично больше нравится термин "поток", которым он и пользуется, надеясь, что читатели Linux Format не запутаются в контекстах и, встретив слово поток, всегда поймут, идет ли речь о потоках программы, потоках ввода вывода, или о других потоках. 

Боровский А. Программирование для Unix : Часть 6. Процессы и потоки

Боровский А. Программирование для Unix [Текст] : Часть 6. Процессы и потоки / Андрей Боровский  //  Linux Format. — 2006. — № 11 (85), нояб. — С. 100-103. — (Программирование для Unix. Учебник). 
     Аннотация
     Понятие процесса и понимание управления процессами, программирование управления процессами в Linux. 

Боровский А. Программирование для Unix : Часть 4. Сигналы

Боровский А. Программирование для Unix [Текст] : Часть 4. Сигналы / Андрей Боровский  //  Linux Format. — 2006. — № 10 (84), окт. — С. 90-93. — (Программирование для Unix. Учебник). — Библиогр.: с. 93 (2 назв.). — Прил.: "Поля структуры sigaction". — С. 92.
     Аннотация
     Сигналы традиционно считаются трудными в использовании, но при всем этом они незаменимы, когда речь заходит о настоящих приложениях Unix. 
     Рассматриваются только классические сигналы Unix, каковых в Linux насчитывается 31. Этим сигналам назначены номера с 1 до 31 (номер 0, так называемый null-сигнал, имеет особый смысл). Полный список сигналов можно получить из заголовочного файла signal.h. Рассмотрено несколько наиболее интересных сигналов.

Боровский А. Программирование для Unix : Часть 3. Сокеты

Боровский А. Программирование для Unix [Текст] : Часть 3. Сокеты / Андрей Боровский  //  Linux Format. — 2006. — № 9 (83), сент. — С. 96-99. — (Учебник. Программирование для Unix). — Библиогр.: с. 99 (2 назв.). — Прил.: "Остроконечники и тупоконечники" : [Термины «little-endian» и «big-endian» (в компьютерной литературе обозначают порядок байтов, используемый процессором для представления простых многобайтовых типов): порядок байтов как проблема в компьютерном мире]". — С. 98.
     Аннотация
     При всем богатстве выбора средств взаимодействия между процессами в Unix/Linux, самыми популярными средствами были и остаются сокеты. Мы окунемся в мир сетевого программирования и познакомимся с сокетами – базовыми "кирпичиками", из которых строятся и мощные сервера, и легкие клиентские приложения.
     На этом наше знакомство с увлекательным миром межпроцессного взаимодействия Linux заканчивается. 

Боровский А. Программирование для Unix : Часть 3. Очереди сообщений и семафоры

Боровский А. Программирование для Unix [Текст] : Часть 3. Очереди сообщений и семафоры / Андрей Боровский  //  Linux Format. — 2006. — № 8 (82), авг. — С. 102-105. — (Программирование для Unix. Учебник). — Библиогр.: с. 105 (3 назв.). — Прил.: "Неатомарность спин-блокировок" : [Операция «проверить значение – изменить значение» неатомарна, то есть ее выполнение может быть прервано другим процессом и алгоритм простых спин-блокировок (spin locks) не гарантирует надежного разграничения доступа и решение этой проблемы]". — С. 104.
     Аннотация
     Каналы – отнюдь не единственное средство IPC Unix/Linux. В этом выпуске Андрей Боровский рассказывает еще о нескольких механизмах межпроцессного взаимодействия, которые появились в Unix System V и были описаны в System V Interface Definition (SVID) — это сообщения и очереди сообщений, разделяемая память и семафоры (семафоры System V, семафоры POSIX и семафоры в разделяемой памяти).

Боровский А. Программирование для Unix : Часть 2. Межпроцессное взаимодействие

Боровский А. Программирование для Unix [Текст] : Часть 2. Межпроцессное взаимодействие / Андрей Боровский  //  Linux Format. — 2006. — № 7 (81), июль. — С. 97-99. — (Программирование для Unix. Учебник). — Библиогр.: с. 99 (3 назв.). — Прил.: "Закон Брукса [критика]". — С. 97 ; "Как канал передает данные". — С. 98.
     Аннотация
     Возможность разграничения доступа к ресурсам очень полезна, но Linux не была бы настоящей многозадачной системой, если бы в ней не существовало простых и эффективных методов взаимодействия между процессами. Статья посвящена рассмотрению межпроцессного взаимодействия.
     Благодаря межпроцессному взаимодействию (Inter-Process Communication, IPC) разработчик (и пользователь) может разбить решение сложной задачи на несколько простых операций, каждая из которых доверяется отдельной небольшой программе. Последовательная обработка одной задачи несколькими простыми программами очень похожа на конвейерное производство (среди многих значений английского pipeline есть и "конвейер", но статье для перевода слова pipe используется принятый в отечественной литературе термин "канал".  

Боровский А. Программирование для Unix : Часть 1. Linux API – работаем с файловой системой

Боровский А. Программирование для Unix [Текст] : Часть 1. Linux API – работаем с файловой системой / Андрей Боровский  //  Linux Format. — 2006. — № 6 (80), июнь. — С. 92-95. — (Программирование для Unix. Учебник) (Программирование для Linux. Учебник). — Библиогр.: с. 95 (2 назв.). 
     Аннотация
     Файловая система Linux с точки зрения программиста: everything is a file или файлы – это наше все. 

Боровский А. Lua : Часть 2: Lua: Функции и объекты

Боровский А. Lua [Текст] : Часть 2: Lua: Функции и объекты / Андрей Боровский  //  Linux Format. — 2009. — № 10 (123), окт.. — С. 80-83. — (Lua. Учебник). — Прил.: "Расставим точки над ‘i’" : [Различие между итераторами ipairs() и pairs(): ipairs() перебирает только индексируемые элементы массива, тогда как pairs() учитывает и arg.n] ; "Повышенная передача" : [Параметры­-переменные функций Lua передаются не по значению, а по ссылке, таким образом, изменение значения любого аргумента внутри функции приводит к изменению этого значения и за ее пределами, чем мы и пользуемся в функции backwards()]. — С. 81
      Аннотация
      Lua: функции и функции-итераторы, реализация итератора bpairs(), понимание объекта и рассмотрение объекта Employee (сотрудник), таблицы как структуры данных, понимание мета-таблиц.
 

Вейч Н. Python : Часть 4: Роемся в XML

Вейч Н. Python [Текст] : Часть 4: Роемся в XML / Ник Вейч  //  Linux Format. — 2009. — № 10 (123), окт.. — С. 76-79. — (Python. Учебник). — Внутритекст. веблиогр..- Прил.: "Скорая помощь. Начинающие часто впадают в ступор в оболочке Python, поскольку стандартная комбинация Ctrl+C не работает. Вместо этого для выхода из оболочки Python нажмите Ctrl+D.". — С. 77 ; "Порезвимся с XML" : [Краткая справка о редакторе XMLCopyEditor]. — С. 78 ; "Скорая помощь. Экспериментируя с Python 3, вы обнаружите, что urllib больше не работает. Все потому, что в Python 3 она разбита на части: urllib.request, urllib.parse и urllib.error. Дополнительную информацию можно получить на сайте с документацией по Python, http://docs.python.org/library/urllib.htm.". — С. 79. 
      Аннотация
      В процессе подчинения веб-сервисов своим целям дошла очередь до обучения работе с вызовами API через XML. Ник Вейч научит этому на примере социального сервиса Digg, располагающего обширной документацией для программистов. 
      В ходе обучения мы познакомимся с основами API Digg (http://apidoc.digg.com), поработаем в командной строке при помощи модуля Python urllib и словаря аргументов Python с горячими новостями сервиса (http://services.digg.com/stories/hot) с целью получения кучи XML-кода, из которой мы выудим данные и создадим объект Python — модуль API для Python, выполняющий интерпретацию вывода Digg. Ник Вейч показывает, как в этот объект программно добавлять данные, например, места публикации горячих новостей, при помощи свободной библиотеки GeoIP и модуля Python urlparse. 
      Большую помощь в изучении Python может оказать доступная в печатной и сетевой версии книга "Вглубь языка Python" (ru.diveintopython.org), которую написал Марк Пилгрим (Mark Pilgrim).       
 

Боровский А. Lua : Часть 1: Lua: Что в нем такого?

Боровский А. Lua [Текст] : Часть 1: Lua: Что в нем такого? / Андрей Боровский  //  Linux Format. — 2009. — № 9 (122), сент.. — С. 76-79. — (Lua. Учебник). — Прил.: "Почему игры?" : [В играх назрело разделение движка (стабильная часть игры), определяющего свойства игрового мира, и правил (подвержена изменениям), которым подчиняются его элементы, а если определять правила с помощью языка программирования сценариев, разработчикам не придется переделывать движок при каждом изменении правил поведения персонажа или свойств артефакта; кстати, эти же аргументы применимы и к роботам, причем необязательно к большим и человекоподобным]. — С. 76 ; "Почему Lua?" : [Преимущества программирования на Lua]. — С. 77
      Аннотация
      Стоит ли изучать новый язык программирования сценариев, если уже есть Python? Андрей Боровский утверждает: если приложение доросло до того, чтобы иметь собственную систему сценариев, то встраиваемый язык программирования сценариев Lua – первое, на что стоит взглянуть программисту. Учебник о Lua обосновывает его точку зрения. 
      Lua — структура (фргагмент, блок, типы переменных), библиотеки, примеры программ и программа для вычисления чисел Фибоначчи, таблицы и объявление с их помощью простых массивов, возможности.