вторник, 12 июля 2011 г.

Life


Говорят, всё гениальное - просто. Сегодня я в этом убедился.

В поисках разминки для мозгов я бороздил просторы интернета, и набрёл на невзрачный снимок экрана на сайте http://screenshots.debian.net:
Я слышал о "Жизни" и раньше, даже видел работающие примеры этой игры, но не полагал, что вся её суть кроется всего лишь в паре утверждений.

пятница, 10 июня 2011 г.

Terminal


В книге "Современные операционные системы" Эндрю Таненбаум несколько раз говорит о том, что развитие компьютерной индустрии проходит по спирали: позабытые казалось бы технологии переживают своё рождение несколько раз на различных типах устройств, либо с течением времени обретают актуальность.

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

Теперь к нашим временам. Office 365, Chromebook, Cloud Computing... Все эти новшества позволяют нам вобще не задумываться как и что работает, а сразу получать готовые, работающие машины. Нам даже не нужно администрировать систему, следить за ней (в случае с Chromebook). По сути компьютеры становятся лишь придатком, позволяющим нам подключаться к великой Паутине и жить там. Мозг и центр переносится на мощные серверы, которые обеспечивают нас всем необходимым, выдавая готовый результат вычислений и/или виртуализаций. Домашние компьютеры же становятся не чем иным как удаленным терминалом, набором устройств для ввода информации и получения в каком-либо виде её вывода.

От программистов теперь и окончательно отпочковались пользователи, порой совершенно не интересующиеся внутренностями своей машины или операционной системы. Есть результат, а какой магией он достигается совсем не важно. Со временем пользователи, видимо, станут только ещё тупее, погружаясь в пучину социальных сетей, глубоко пронизывающих всю жизнь. Мы постепенно проектируем Матрицу, не считаете? Что самое странное (впрочем, в фильме было подобное же) — люди сами охотно в неё ныряют. Жутко. Однако дети Эйнштейна были, есть, и будут. Это не может не радовать. Давайте не будем забывать о нашем интересе. В путь! Ковыряться в недрах системы, писать что-то своё, разбираться как это всё работает.

Правда?

вторник, 7 июня 2011 г.

Stability

Стабильность против свежести

или история любви

В нашем мире (свободного программного обеспечения) много священных войн. Это не плохо и не хорошо, это есть. Пожалуй вряд ли можно что-то с этим сделать. Сегодня я хочу рассказать об одном аспекте Linux, по поводу которого ведутся нескончаемые споры.

На стабильность операционной системы смотрят обычно под двумя углами. Одни признают её необходимость и стремятся всячески достичь её. На таких дистрибутивах (естественно при некоторых настройках) вполне можно поднять какой-либо сервер и не беспокоиться за очередное обновление безопасности — операционная система обязана обновиться гладко и безболезненно. Другие полагают, что в дистрибутиве должны быть самые свежие пакеты ежедневно, первых они обычно обзывают некрофилами и клянут всяческими непотребными словами. На мой взгляд сравнивать (а тем паче спорить о том, что лучше) настолько разные системы глупо. Никто в здравом уме не станет ставить Ubuntu(дабы не привлечь на свою голову ненавистников, подчеркну, что речь не о Server Edition) или Fedora на сервер. Для этого есть Debian и CentOS. Любители же нового, любители эффектов и новых игр никогда не установят себе последние.

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

Вспомнил начало своей жизни в Linux — поставил Ubuntu, посмотрел. Стала ещё красивее и удобнее. Что ж, здорово. Постоянная свежесть и все блага, которыми обладает Linux. Можно вполне себе играть в новейшие игры в последней версии Wine. Минусы? Постоянные обновления. Для Ubuntu нужен очень хороший канал связи, чего в нашем общежитии (естественно, университета связи!) как раз не хватает. Сами обновления порой меняют что-то настолько кардинально близкое и понятное, что даже теряешься (это я о Unity).
Попробовал несколько раз и Fedora. Новый Gnome очень красив. И пока что так же нестабилен. На мой взгляд, сейчас в нём работать — мука. Однако уверен, ситуация будет исправлена.

Затем я решил попробовать установить CentOS. Вот чёрт, столько мороки с установкой у меня не было никогда. Даже опыт установки Slackware парой недель ранее не помог. Я многократно и различными способами записывал образ на флешку, стартовал с неё загрузчик и не мог поставить систему. Первоначально это был liveCD, и я просто не нашёл в этой системе, как же можно установить CentOS. Затем был скачан DVD. Тысячекратные перезаписи на флешку, её вставляния и выдёргивания. Проблема системы установки CentOS для меня заключалась в том, что она не монтирует раздел при выборе пункта меню "с жесткого диска". Я опробовал это несколько раз. Когда мои нервы были на исходе, меня осенило. Загрузчик полностью выгружается в оперативную память! Я залил на флешку загрузчик и следом на неё же образ диска. Тогда и только тогда я установил CentOS.

Разочарование было велико. Community ENTerprise Operating System установлен в нашем университете и там работает вполне прилично. На нем приятно программировать. На нетбуке же он почему-то не создал сетевой интерфейс, хотя вроде бы определил сетевую карточку. Пакеты были древними (о, не старыми, именно древними — даже Debian по сравнению с этим более свеж). Заморачиваться с настройкой сил не было..

Теперь снова Debian.
Только что, второй раз затерев кэш и настройки браузера Chromium, я понял, что браузер падал из-за последней версии расширения Adblock plus. Которое: а) из официального источника Google просто не ставилось, принуждая обновляться; б) поставленное с сайта расширения роняло браузер. Попытки найти более старые версии расширения успехом не увенчались.

Некоторые выводы. Быть актуальным и свежим здорово. Но, чёрт возьми, быть назойливым и вынуждая всех обновляться ничуть не лучше, чем навязывать политические взгляды всем, кто думает не как ты. Полагаю, писать отчёт об ошибке в данном случае глупо — скажут, чтобы обновлялся. Пожалуй я найду расширение, спросив у дебианщиков. Хорошо ли это? Чёрт, я бы не сказал.

В очередной раз я убедился в правильности позиционирования Debian. Это действительно Универсальная операционная система, которая не стремится быть блестящей. Это проработанный и стабильный Linux. Я его обожаю. Обладая всеми функциями, необходимыми системе "рабочего стола", он вдобавок стабилен и обладает кучей пакетов, что позволяет настроить его под абсолютно любые нужды. Он гармонично сплетает в себе стабильность и красоту необходимых пакетов. Ничего лишнего. Только то, что хочешь ты.

Прошу не принимать сказанное близко к сердцу — не хочу разжечь очередной спор. Это мои мысли по поводу стабильности и свежести дистрибутивов. Спасибо за внимание.

воскресенье, 15 мая 2011 г.

Facebook

Обнаружил, что фильм "Социальная сеть" снял Дэвид Финчер. Сразу же решил посмотреть, хотя до этого не было желания. Как начинающему программисту, мне очень интересно было смотреть на реализацию некоторых идей. Недавно читал статью об архитектуре Facebook, теперь фильм. Марк Цукерберг определенно очень умный и талантливый программист. 500 миллионов пользователей! Настоящая всеобъемлющая паутина, которая затягивает человека.
С первых же слов опознал Билла Гейтса =) не зря читаю Таненбаума.
Очень порадовало то, что он даже не рассматривал другие варианты, когда ему понадобился высоконагруженный сервер: "Мне нужен комп с Linux, Apache и MySQL!". Старый добрый LAMP..
Фильм интересный, всем советую.

вторник, 3 мая 2011 г.

Labirint

Впервые сделал покупку в интернет-магазине. Делюсь впечатлениями. Прошу не считать упоминание нижеуказанных марок и магазинов рекламой (антирекламой).

Так повелось, что какую-то часть своих доходов издавна трачу на книги. Считаю, что это не так уж плохо. В нашем Новосибирске есть замечательный магазин "Книгомир-эконом", в котором новые книги с небольшими дефектами(надорванная корочка, потёртый вид) продаются по значительно сниженной цене, чем обычные. Выбор не слишком богат, но пару раз я совершал довольно успешную покупку (наподобие огромной книги, включающей весь цикл "Стальная крыса" Гарри Гаррисона примерно за 150 р). Есть неплохой "Плиний старший", где есть интересные скидки, есть возможность прийти, сесть на диванчик и почитать любую книгу.


Давненько я хотел собрать коллекцию классической, "золотой" компьютерной литературы. Когда преподаватель по операционным системам (С.Н. Мамойленко) посоветовал в качестве одного из основных источников информации "Современные ОС" Эндрю Таненбаума, я окончательно решил приобрести это издание.

Сначала всё не заладилось. Были определенные проблемы с деньгами, потом всё не было времени выбраться в магазин. Наконец я пришёл в "Плиний". 1337 рублей. Я ожидал чего-то подобного, но не думал, что цена будет настолько высокой. Не хватало нескольких сотен. И тогда я сделал то, чем занимаюсь каждый день — пошёл на google.com.

Лабиринт привлёк своей ценой на "Современные ОС". 618 рублей. Доставка в пункт самовывоза бесплатно от 500 р. Что ж, заказал. Указал галочку бесплатных оповещений по SMS о статусе заказа, регулярно их получал. 21 апреля заказ был оформлен и передан в службу комплектации, 22 уже отправлен из Москвы в Новосибирск. 29 апреля было сообщено, что товар доставлен в пункт самовывоза. И пусть я не успел забрать его сразу 29, а в силу праздников только сегодня его получил, я очень доволен. Книга была бережно обмотана защитной плёнкой, новёхонькой и вкусно пахнущей. Заплатив свои 618 рублей, счастливый, побежал её читать.

Вот так я приобрёл одно из изданий классики computer science. Желаю всем удачных покупок. ;)

Ух ты, уже подорожала.
Источники информации:
Книга на Лабиринте
Сайт родной кафедры

понедельник, 25 апреля 2011 г.

Ping

ping для диагностики работы сети многие используют в первую очередь. Это эффективная и довольно простая программа. Задумывались ли вы когда-нибудь, кто её написал?
Недавно я начал читать книгу Ивана Склярова "Программирование боевого софта под Linux". Первой утилитой, которую предлагает написать автор, является альтернативная версия ping. Прочитав man ping, в конце документа я обнаружил следующее:

HISTORY
The ping command appeared in 4.3BSD.

The version described here is its descendant specific to Linux.
И всё. Ни слова об авторе. Досадное недоразумение, которое я решил исправить (тем более, что не нашёл в рунете никакой информации о нём).

среда, 20 апреля 2011 г.

Declarations


Чтение объявлений¹ типов Си.

 
Перевод статьи Reading C type declarations, увидел у Alenacpp.
Даже для новичков программирования на Си не представляется проблемой прочесть простые описания Си наподобие

int foo[5];        // foo это массив из пяти int (целых)
char *foo;        // foo это указатель на char (символ)
double foo();   // foo это функция, возвращающая double (вещественное с двойной точностью)

Однако когда объявления становятся немного более сложными, нам уже труднее понять, на что же мы смотрим.

char *(*(**foo[][8])())[]; // чтоо ?????

Оказывается, что правила чтения описаний переменных Си произвольной сложности легко понимаемы даже начинающими программистами (хотя как на самом деле использовать описанную таким способом переменную может быть недостижимо человеческому уму).

Данная технологическая записка расскажет, как это сделать.

вторник, 19 апреля 2011 г.

TinyCore



Пару дней назад вышел третий релиз-кандидат на версию 3.6 малютки TinyCore Linux. О нём сегодня и поговорим.

воскресенье, 17 апреля 2011 г.

Easter

Близится Пасха. Для кого-то светлейший праздник, для кого-то просто обычный день. Название, ассоциировавшись в голове с пасхальным яйцом (не куриным и раскрашенным, хотя они и забавны), сподвигло написать данный пост.
Итак, подборка Easter eggs или пасхальных яиц в мире open source, а также просто некоторых забавностей. Прошу дополнять и комментировать.

пятница, 1 апреля 2011 г.

Peslyak

"Один из самых авторитетных российских специалистов в области сетевой безопасности. Автор John the Ripper. Отец проекта Openwall (www.openwall.com), ведущий разработчик Openwall GNU/Linux – операционной системы с большой степенью защищенности." — практически вся информация xakep.ru о человеке сегодняшнего поста.

Про таких, как Александр Песляк говорят: «Широко известен в узких кругах». Действительно, мощнейшие из поисковиков выдают лишь жалкие крохи информации об этом необычайно талантливом человеке. Кто же он?

среда, 23 марта 2011 г.

Firefox



Вспышка!
Firefox4 доступен для скачивания!
Интернет уже пестрит обзорами нововведений и различными отзывами о возможностях и интерфейсе браузера.
Не буду в сотый раз дублировать одно и то же, просто скажу: «Ура!»
Огнелис действительно стал быстрее и удобнее. Интересно понаблюдать статистику скачек — менее чем за сутки браузер скачало уже почти 4 миллиона человек. Невообразимо. Полагаю, собственный рекорд скачек Firefox3 будет побит наголову.
Компания Mozilla чем-то напоминает своей тщательностью в проработке приложений сообщество создателей Debian. Целый год велась работа по предоставлению нам обновлённого Firefox. Была выпущена куча бета-версий, но финальный продукт вышел только после устранения множества багов(да, кое-что осталось, но будет устранено в ближайшее время). В этом году обещаются более частые релизы с увеличением номера версии. Поживём-увидим.
Уже пользуюсь, и советую попробовать вам. Работает действительно ощутимо быстрее версии 3.6. Мне очень нравится Firefox(и да, мне есть с чем сравнивать — chromium и opera тоже есть, регулярно сравниваю).

Кстати, словом firefox в английском языке называют вовсе не лису, а красную панду:

Но в случае браузера это всё-таки огнелис.

четверг, 17 марта 2011 г.

Game

Тема нашей курсовой по Операционным системам — создание клиент-серверного приложения игры «Крестики-нолики». Первую часть, практически готовый клиент, мы должны показать в ближайшее время. У меня получилось нечто такое:

воскресенье, 13 февраля 2011 г.

Codename

Вот и вышел Squeeze, привлекая всеобщее внимание и вдохновляя людей со всего света писать различного рода обзоры, рецензии и отзывы.
Почему же Squeeze?
В августе 1993 Ян Мердок анонсировал Debian, а уже через три года объявил, что не может уделять достаточно времени проекту и ушёл, оставив на своём месте Брюса Пиренса. До того, как полностью отдать своё время сообществу Open Source Брюс на протяжении 12 лет работал в компании Pixar. Поэтому согласно всеобщему мнению именно он придумал давать кодовые имена релизам Debian по именам игрушек из Toy Story.
Только сегодня я наконец-то выкроил время для просмотра этого замечательного мультфильма. Очень понравилось, рекомендую всем кто ещё не видел.
А теперь о релизах.

четверг, 3 февраля 2011 г.

Iceweasel

Сегодня я расскажу о браузере, которым пользуюсь. По стечению обстоятельств о нём мало кто знает — по сути, только те, кто пользуется Debian. Почему так вышло? Садитесь поудобнее и слушайте.

вторник, 1 февраля 2011 г.

Integrity

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

Debian


Жизнь других дистрибутивов тоже не стоит на месте. 5 или 6 февраля состоится выход одного из самых достопочтенных и мудрых — Debian 6.0 Squeeze. В честь этого события по всему миру проходят встречи пользователей Линукс в разных форматах. Спешу вам сообщить, что сообщество новосибирских пользователей первым в России зарегистрировало своё участие в данном мероприятии, к чему я приложил руку. Ожидается костёр, шашлыки и много умных личностей. Уважаемые жители Новосибирска, если кому-нибудь интересно, приходите, будем рады новым лицам. Подробную информацию можно узнать на сайте новосибирского сообщества LUG (Linux User Griup) и в jabber-конференции linuxnsk@conference.sibnsk.net.

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

ubuntu

ubuntu был для меня первым дистрибутивом Linux. Состоящий в этом проекте миллионер и второй космический турист Марк Шаттлворт совершил революцию в мире IT. Каждый как минимум слышал о ubuntu. А Canonical всё ещё рассылает бесплатные CD-диски со своей системой. И пускай ubuntu сейчас немного глючновата(на мой взгляд), стала для массовой аудитории синонимом Linux, продолжает наращивать свою пафосность, добавляет новые платные сервисы — эта операционная система не зря занимает первую строчку в списке популярности дистрибутивов distrowatch. Она очень дружелюбна к пользователю, поддерживает немало железа, красива и полна всяких фишек. Многие компании, адаптируя или программируя нечто для linux, делают это в первую очередь для ubuntu. Она действительно находится на острие мира свободных ОС.

Вот фото пришедшей "бандероли":

четверг, 27 января 2011 г.

Wolvix

Мне нравится Линукс. А от мини-дистрибутивов я просто в восторге. И хотя я никогда долго одним из них не пользовался, регулярно пробую что-нибудь новое. Обычно такие ОС занимают очень немного места на компьютере (некоторые вобще способны существовать в оперативной памяти, не нуждаясь в жёстком диске), работают намного быстрее чем их большие собратья, ну и просто - полны очарования. Сегодня я рассмотрю одного из таких пингвинчиков.

Wolvix - это десктоп-ориентированный дистрибутив linux, основанный на Slackware, в основном предназначенный для домашних пользователей, и стремящийся предоставить баланс между ежедневными вычислительными задачами, творчеством, работой, и развлечениями. Он поставляется с окружением рабочего стола xfce и богатым выбором приложений для разработки, работы с графикой, мультимедиа, сетью и офисом.
Имеет стильный внешний вид с волком и его лапой на логотипе. Загрузка подобна старому доброму knoppix - сверху экрана сидит достопочтенный Tux, а под ним бегут строки загрузки. На моем нетбуке на virtualbox Wolvix загрузился за три с половиной минуты. Работает быстро, чётко выполняя команды.

Особенности

Однако не обольщайтесь. Это настоящий серьёзный Linux, вдобавок основанный на Slackware. Лозунг данной операционной системы "...for those with better things to do than wobble their windows". Wolvix предполагает, что вы знаете с чем имеете дело и что вам нужно - при загрузке вы логинитесь пользователем root и используете систему как вам угодно. Да, использование Wolvix не требует большего, чем основные компьютерные навыки, однако установка и администрирование системы могут потребовать больше знаний, чем другие дистрибутивы GNU/Linux. Подобно Slackware, он порой требует засучить рукава и замарать руки. Поэтому если вас пугает использование командной строки и чтение документации, вам лучше выбрать другой дистрибутив.
По умолчанию Wolvix содержит только приложения на GTK+, но не потому что разработчики не любят Qt - это больше эстетический выбор. Виждеты Qt смотрятся неуместно под xfce, который использует GTK+ и вмещает множество хороших приложений на оном.
Wolvix не следует строго мантре "одно приложение на задачу", подобно некоторым дистрибутивам. Здесь вы можете найти два, а порой и три приложения, выполняющих в принципе одну функцию. Одной из причин этого является то, что некоторые приложения дополняют друг друга по функциональности. Другая причина - выбор. У каждого из нас свои предпочтения, и необязательно что мой любимый текстовый редактор будет тем же, что выберете вы. Конечно нужно соблюдать баланс, не создавая раздутый дистрибутив, но порой одного приложения просто недостаточно.
Хотя Wolvix быстр и требует низкий объем памяти, он не разрабатывался для старых компьютеров, так как содержит современное программное обеспечение, требующее современного аппаратного обеспечения. Но всё же он должен хорошо работать на системах, которые не являются наипоследнейшими и наикрутейшими. Вы должны получить приемлемую работу Wolvix и большинства его приложений на компьютере с 700Mhz CPU и 256MB RAM.
Действительно, здесь есть всё самое необходимое для жизни. Geany, который мне очень нравится - одно из самых простых и удобных средств разработки. Другие различные полюбившиеся в мире Linux приложения и утилитки (к примеру, забавный Terminator - здесь три различных shell'а). И многое другое.

Философия.

Wolvix - некоммерческий проект, созданный благодаря желанию поразвлечься и лучше узнать GNU/Linux. Он есть и должен быть творческим выплеском его разработчиков. Это проект-хобби, и ставить его на сервер - не лучшая идея.
Wolvix должен выглядеть едино, чисто и приятно, а рабочий стол таким, чтобы не отвлекать или излишне напрягать глаза пользователя. Желательно, чтобы цвета как тем, так и фона не слишком контрастировали с черным терминалом или белым окном текстового редактора.
Программное обеспечение, насколько это возможно, должно работать "из коробки" и быть готовым к использованию. Пользователю необходимо предоставлять возможность насладиться развлечениями, быть творческим и продуктивным с как можно меньшей затратой времени на настройки и конфигурацию.

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

В путь?



Источники: Официальный сайт, немного wikipedia. Логотип с офсайта, скрины сделаны с помощью VirtualBox & Gnome.

среда, 26 января 2011 г.

Switch

Готовился к экзамену по программированию на языках высокого уровня и нашёл простую небольшую задачку, которую, на мой взгляд, смог решить довольно красиво. Используется фишка switch "проваливаться" на нижние ветви.

Итак, сколько дней до Нового года?

#include <stdio.h> 
#include <stdlib.h> 
int main(int argc, char *argv[]){ 
        int day, month, year; 
        int n = 0; 

        if (argc > 2) { 
                day = atoi(argv[1]); 
                month = atoi(argv[2]); 
                year = atoi(argv[3]); 
        } else { 
                printf("Type date: day month year.\n"); 
                scanf("%d%d%d", &day, &month, &year); 
        } 

        switch (month) { 
                case 1: n += 31; 
                case 2: n += (year % 400 == 0 ||(year % 4 == 0 &&
                        year % 100 != 0)) ? 29 : 28; 
                case 3: n += 31; 
                case 4:  n += 30; 
                case 5:  n += 31; 
                case 6:  n += 30; 
                case 7:  n += 31; 
                case 8:  n += 31; 
                case 9:  n += 30; 
                case 10:  n += 31; 
                case 11:  n += 30; 
                case 12:  n += 31; 
        } 
        n -= day; 
        printf("%d days before New Year's day\n", n); 
        return 0; 
}

Запуск:
jightuse@jightuse-N-A:~$ gcc -Wall ny.c -o ny.o
jightuse@jightuse-N-A:~$ ./ny.o 26 01 2011
339 days before New Year's day
jightuse@jightuse-N-A:~$

Welcome

Желаю вам приятно провести время в небольшом, понемногу растущем и развивающемся вместе с автором блоге. Планируется рассмотрение ветвей программирования, операционных систем, информационных технологий.
Уважаю операционную систему Debian и чту её традиции. Поэтому фон взят с нового оформления Debian installer, странички wiki. Довольно красиво и забавно.
Заходите, всегда рад гостям.