Нил Стивенсон “Криптономикон”

Нил Стивенсон "Криптономикон"
Прочитал замечательную книгу Нила Стивенсона «Криптономикон». Определённо понравилось. Редко какой книге хочется поставить балл десять из десяти. Но здесь, определённо в десяточку.

Роман описывает события, происходившие в двух эпохах: во время Второй мировой войны и в середине девяностых, когда интернет, недавно зародившись, очень активно развивался. Автор очень умело сочетает своих вымышленных героев с реальными историческими фигурами. Многие события происходят будто бы независимо друг от друга, но лишь к концу книги открывается взаимосвязь всех событий, описанных на немалых просторах произведения. А они, действительно, немалые – 912 страниц. Описывать сам сюжет, думаю, не имеет смысла, так как о нём немало написано на просторах сети; да и если кто-нибудь заинтересуется книгой, то может приобрести её в любом интернет-магазине или ближайших книжных лавках.

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

Вокруг книги уже сложилось несколько мифов. Один из которых – «Криптономикон» киберпанк. Хочется незамедлительно развеять это утверждение, так как сам роман не имеет ничего общего с киберпанком. «Криптономикон» можно больше отнести к историческим произведениям. В романе нет никакой фантастики, которая свойственна киберпанку. Поэтому определённо найдутся люди, которым произведение не понравится.

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

Стиль кода в Python: Part 2

Комментарии

Комментарии, которые противоречат коду, хуже, чем отсутствие комментариев. Всегда исправляйте комментарии, если меняете код!

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

Если комментарий короткий, можно опустить точку в конце предложения. Блок комментариев обычно состоит из одного или более абзацев, составленных из полноценных предложений, поэтому каждое предложение должно оканчиваться точкой. Read the rest of this entry »

Стиль кода в Python: Part 1

Введение

Этот документ описывает соглашение о том, как писать код для языка python, включая стандартную библиотеку, входящую в состав python. Пожалуйста, посмотрите также на сопутствующий PEP (python enhanced proposal — заявки на улучшение языка python), описывающий, какого стиля следует придерживаться при написании кода на C в реализации языка python1.

Этот документ создан на основе рекомендаций Гуидо ван Россума с добавлениями от Барри. Если где-то возникал конфликт, мы выбирали стиль Гуидо. И, конечно, этот PEP может быть неполным (фактически, он, наверное, никогда не будет закончен). Read the rest of this entry »

Облачные вычисления от гигантов IT-рынка

Облачные вычисления

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

Первым серьёзным и доступным cloud-хостингом явился Amazon Elastic Compute Cloud (Amazon EC2). Сейчас Amazon является одним из наиболее крупных игроков на рынке облачных вычислений. Множество компаний пользуется облачным сервисом именно от Amazon. Насколько мне известно, даже известный сервис для микроблоггинга Twitter решил проблему масштабирования с Amazon EC2. Услуги, связанные с облачными вычислениями, Amazon предоставляет под единым брендом Web Services. Кроме Amazon EC2 туда входят:

Simple DB – сервис, предоставляющий ядро функций базы данных, а именно индексирование данных и выполнение запросов;

Simple Storage Service или Amazon S3 – сервис для хранения и получения больших объёмов данных и REST-API для доступа;

CloudFront – распределённая сеть хранения и доставки контента;

Simple Queue Service – система очередей сообщений, в которой разработчики могут перемещать данные между своими приложениями, выполняющими разные задачи, с высокой надёжностью;

Elastic MapReduce – сервис для обработки и проведения анализа больших объёмов данных на основе Apache Hadoop. Read the rest of this entry »

Про облака на пальцах

224360

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

Сам термин «облачные вычисления» (англ. Cloud computing) появился ещё в 60-е годы прошлого столетия, но популярность обрёл только в настоящее время в связи с бурным развитием всемирной паутины.

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

Теперь попробуем вкратце разобраться, какие плюсы мы будем иметь, использую облачные вычисления. Во-первых, это очень надёжная инфраструктура с необходимой нам производительностью. Во-вторых, не составит проблемы заниматься масштабированием предоставляемых ресурсов. В-третьих, не нужно оплачивать дикие счета, за использование ресурсов, которыми ты не всегда будешь пользоваться, так как оплата прямо пропорционально зависит от масштабов облака. Особенно это хорошо, когда планируется провести волновую нагрузку на проект. Read the rest of this entry »

Есть ли бэкдор в Windows 7?

gates

В среду на этой неделе один из руководителей Агентства Национальной Безопасности США заявил, что АНБ участвовало в разработке операционной системы Windows 7. Также вместе в ними принимали участие в разработке специалисты Министерства обороны. Вместе они «использовали свой уникальный опыт и практические знания в области системных угроз и уязвимостей, чтобы улучшить безопасность операционной системы».

Сразу напрашивается мысль, что Microsoft совместно с АНБ встроили какой-нибудь бэкдор в операционную систему. Мне, как человеку, выступающему категорически против вешания штрих-кодов на людях, эта тема добавила ещё каплю в море моей маниакальности по вопросам безопасности. Это уже не первый случай, когда спецслужбы плотно сотрудничают с Microsoft над созданием очередной операционной системы: Windows Vista, Windows XP и Windows 2000 тоже разрабатывались с учётом рекомендаций АНБ. Хотя все эти годы Microsoft и опровергает слухи о бэкдорах, на уровне подсознания сомнения проходить не спешат.

В четверг официальный представить Microsoft заявил, что Microsoft никогда не внедряла и не будет внедрять «бэкдоры» в Windows. Он заверил, что участие АНБ в создании Windows 7 ограничилось исключительно работой над Security Compliance Management Toolkit, который вышел в конце октября, вскоре после официального релиза операционной системы.

Однако проблема с АНБ действительно есть. Дело в том, что это агентство совмещает в себе две функции: сигнальная разведка (то есть слежка) и компьютерная безопасность. Вполне логично, что в каких-то вопросах эти две сферы будут пересекаться.

Сейчас АНБ пытается наладить сотрудничество с Apple, Sun и Red Hat в области безопасности операционных систем (об этом тоже было сказано в выступлении перед комитетом по терроризму). Чем не повод для новых опасений?

Мораторий на развитие Python

Логотип интерпретатора Python

Логотип интерпретатора Python

Разработчики Python официально приняли мораторий, запрещающий изменение синтаксиса языка Python версии 3.1 на срок до 26 июня 2011 года. Целью моратория является задержка развития языка, чтобы сторонние проекты для Python догнали в своём развитии Python третьей ветки. Отставание вызвано тем, что вторая и третья ветки являются несовместимыми, и поэтому многие альтернативные проекты Python, такие как Jython,IronPython, Unladen Swallow, продолжают базироваться на Python 2.7. На время заморозки развития усилия разработчиков будут направлены на портирование библиотек для старой ветки языка на Python 3, написании утилит и документации.
Это всё меня лично очень радует, и я с радостью проголосовал бы за продление моратория, если бы такая возможность представилась, чтобы большинство весомых проектов на Python, такие как Django, PyGTK, wxPython и другие, успели перелезть на третью ветку языка, и больше не было бы болезненных проблем совместимости. Остаётся надеяться, что это случится как можно скорее.

Язык программирования Go

Язык программирования Go

Язык программирования Go

Неожиданно так для многих из нас Google анонсировал новый язык программирования, в котором разработчики хотят объединить мощность C++ и лаконичность Python. Поэтому, по словам девелоперов, разработка на Go так же быстра, как и разработка на Python, и так же мощна, как на C++ и Java. Пока язык представляет собой эксперимент, который ставит Google, так как сам Go ещё не достаточно зрелый для серьёзных проектов.

Вот «хелловорд», представленный на главной странице официального сайта Go:

package main

import “fmt”

func main() {
fmt.Printf(”Hello, 世界\n”)
}

Эти начинания, конечно же, хороши. Но вот только возник один небольшой казус. Вот дискуссия , в которой Francis McCabe просит компанию Google переименовать язык, так как сам уже в течение десяти лет работает над языком Go! Дискуссия уже представляет собой длинный манускрипт, на которую Google ещё никак не прореагировал. Название, выдвигаемой людьми для языка Google звучит как Issue 9. Так что остаётся очень актуальным вопрос, уступит ли Google, хотя лично я в этом очень сомневаюсь…

Краткий обзор популярных GUI библиотек для Python

GUI Library Краткое описание Лицензия Платформы IDE Документация
wxPython Модуль расширения Python, описывающий GUI библиотеку wxWidgets, которая реализована на C++. Free Software Foundation, Open Source Initiative Windows, Unix, Macintosh OS X. Boa Constructor, wxGlade wxPython Tutorial, Книга “WxPython in action”
PyGTK Набор Python-привязок для библиотеки GTK+. GNU LGPL Microsoft Windows, Unix. Glade PyGTK Tutorial
PyQT Привязка Python к графической библиотеке Qt. GNU GPL 2, GNU GPL 3, коммерческая Windows, Unix, Macintosh OS X. Qt Designer PyQT Tutorials
Tkinter Библиотека на основе средств Tcl/Tk, входящая в стандартный дистрибутив Python. Free Software Foundation, Open Source Initiative Windows, Unix, Macintosh OS X. Python Automatic GUI Generator Tkinter Tutorial
pyFLTK Оболочка для библиотеки Fast Light Tool Kit. Имеется 2 пакета: pyFLTK для FLTK 1.1 и pyFLTK2 для FLTK2. GNU Library или LGPL Windows, Unix, Macintosh OS X. - pyFLTK Documentation

Правила написания эстетичного кода на PHP

Довольно часто на практике любому программисту приходится сталкиваться с проблемой рефакторинга какого-либо кода. Данный код может быть написан непосредственно им или же другим программистом. Буквально недавно столкнулся с небольшим скриптом на PHP, написанным ужасающим образом. Нет, работал он отлично, всё было при нём, и правильная буферизация, и генерация/обработка исключений. Что же мне не понравилось в нём? А то, что программист, писавший его, похоже, всё делал на скорую руку, не придёрживаясь никакого определённого стиля кодирования. В одних местах фигурные скобки открывались в одной строке с управляющей структурой, в других, абсолютно равнозначных, переносились на новую; иногда использовалась жёсткая табуляция, иногда мягкая; длина строки и количество операторов в ней не подчинялось никакому логическому умозаключению, и т д, и т п… Read the rest of this entry »