суббота, 1 января 2011 г.

Когда помощь всегда под рукой

Люблю я этот блог почитать, хотя бы из за того, что мои вопросы по LaTeX успешно решают заметки его автора. Хотя и просто для линуксоида, а особенно линуксоида-дебианщика или debian-based линуксоида   всегда найдется полезное и интересное в его трудовых буднях. А тут я нашел весьма хорошую штуку у автора: The Debian Cookbook Эта книга- сборник рецептов для решения различных насущных задач  линуксоида от того как послушать музыку пока перезагружаешь X-server до того как пересобрать ядро, восстановить данные на поврежденных носителях и сверстать красивый диплом в LaTeX :) Не смотря на название там все нормальном с русском языке +хорошие разъяснения об используемых инструментах.        

SQLalchemy:что это?

Вобще вокруг этого класса систем идет много дискуссий.Но в целом мне кажется очень хорошая идея заложена в ORM системы(Object-Relation System ). Основная их идея в том, чтобы создать слой между языком программирования и SQL. При чем этот слой нужен для абстрагирования от SQL и перевод работы с базой от ее создания до удаления в инструменты и понятия родные для конкретного языка, а не SQL. В данном случае python. И естественно,  исходя из названия предположить что там активно используются классы. Итак что же мы имеем? Таблицы связываются с классами, которые их описывают в программе, поля классов это поля таблиц, естественно к классам можно добавлять методы. Такие вещи как запрос и различные типы фильтрации то же представлены как типичный Python-объект, для задания сложных и не очень условий можно использовать операторы и функции Python. Так же при помощи ORM-модели в терминах языка можно описывать соединения таблиц между собой. Системы типа SQLalchemy стараются быть максимально универсальными, чтобы поддерживать независимость от конкретной СУБД, что не дает возможность задействовать некоторые "фичи" различных СУБД. Но это как говорится борьба универсализма и специализированности.    Для Python главной  ORM системой является sqlalchemy-opensource продукт (либеральная лицензия MIT) .Она позволяет в терминах и структурах данных python создавать приложения для работы с БД, начиная от описание структуры таблиц и связей в БД и заканчивая модификацией и извлечением данных.             

пятница, 31 декабря 2010 г.

LaTeX: пишем и верстаем статьи

Все мы как то привыкли, особенно те кто живет в мире Windows,что кроме MS Office или OpenOffice ничего для создания документов ничего нет. Но это не так и при чем далеко не так. Кроме принципа, что вижу, то и получу есть и системы основанные на языке разметки.Вот об одной из них мы сегодня обзорно и поговорим.
   В 80-ые годы дедушка нынешней информатики, а так же автор замечательной книги "Конкретная математика",математик Дональд Кнут захотел создать систему, которая в наибольшей степени  отвечала бы потребностям математиков при написании статей. Так и появился TeX. Но чуть позже к нему добавили пакет  расширений и  система с этим пакетом расширений называется    LaTEX. Давайте рассмотрим структуру не очень сложного LaTEX документа:
\documentclass[10pt,a4paper]{article}
\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\title{Контрольная Работа №2 Вариант 1}
\begin{document}
\begin {flushleft}
\underline{1 задание}
\underline{условие:}
$z=e^{x+y}*(x\cos{y}+y\sin{x})$
$dz-?$
\underline{Решение:}
$dz=z_x'dx+z_y'dy$
$z_x'=e^{x+y}*(x\cos{y}+y\sin{x})+e^{x+y}(\cos{y}+y\cos{x})$
$z_y'=e^{x+y}*(x\cos{y}+y\sin{x})+e^{x+y}(\sin{x}-x\sin{y})$
$dz=e^{x+y}*(x\cos{y}+y\sin{x})+e^{x+y}(\cos{y}+y\cos{x})dx+e^{x+y}*(x\cos{y}+y\sin{x})+e^{x+y}(\sin{x}-x\sin{y})dy$
\end {flushleft}
\end{document}
Собственно говоря именно для сдачи контрольных, курсовых, дипломов и прочих серьезных по размерам и не очень документов LaTEX и любят использовать.
первая строка documentclass описывает системе LaTEX, а с каким типом документа она имеет дело, это важно для оформления, которое LaTEX использует по умолчанию.Кроме того, что мы говорим LaTEX что это статья мы определяем, что хотим использовать шрифт размером в 10 пунктов и размещать текст как на листе A4 
А вот дальше мы подключаем различные пакеты TeX. А они то как раз и расширяют возможности системы в очень многих направлениях: 
 \usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
Эти пакеты подключают набор хороших шрифтов, математических обозначений и др. символов 
\usepackage{ucs}
\usepackage[utf8]{inputenc}
\usepackage[english,russian]{babel}
Эти пакеты необходимы для обеспечения нормальной кодировки при вводе\выводе ,а третий для обеспечения поддержки русских символов в документе LaTEX
Дальше мы указываем название документа. 
Строка \begin{document} начинает тело документа. Затем мы производим выравнивание влево. 
Ключевое слово \underline позволяет нам сформировать заголовок с подчеркиванием 
Знаки доллара включают для строки математически режим. То есть для этой строки становятся доступны математические команды, которые в ином случае вызвали бы ошибку. В данном случае применяется т.н. встроенный матрежим, т.к. он позволяет быстро включать и выключать математический режим работы. Имена функций снабжены \ потому, что в LaTeX для их правильного форматирования то же используются представление в виде управляющей конструкции. Как вы может быть догадались ^ требует от LaTeX записать следующие за ним символы как верхний индекс. Обычно в формулах так записывают степени при выражениях и числах.
\end {flushleft}
Эта строка указывает на конец блока с левым выравниванием
А следующая строка на конец документа.
Основное отличие LaTeX от того же Word, что очень мало предположений делается за вас вы определяете расположение его на странице, как его разбивать. При чем делается это специальными управляющими конструкциями. Вобще практически все в LaTeX представляет собой те или иные специальные управляющие команды и данные, которые подлежат обработке.
"Неудобно и странно",- говорите? Ну это только на первый взгляд:
1) TeX имеет большое количество шаблонов и рецептов для форматирования того или иного текста. Особенно он славен очень хорошим форматированием заковыристых формул 
2) TeX имеет очень развитую систему для создания библиографических ссылок и предметных указателей. 
3) Чем больше вы набираете опыта работы с TeX тем меньше времени вы тратите на предварительное оформление: вы можете найти либо готовый шаблон, либо взять оформление из похожего документа ранее вами написанного и простым CONTROL+C и CONTROL+V добавить нужное оформление в документ. 
4) Благодаря четкой семантике и правилам языка TeX большинство математических систем используют его как формат для импорта\экспорта данных (например библиотека sympy,система алгебраических расчетов Maxima,Mapple,MATLAB )
5) TeX документ очень легко передавать, ведь это просто текст 
6) Ядро TeX позволяет генерировать PDFники и PostScript на основе TeX описания
7) Для многих научных издательств это стандарт формата статей для приема от авторов. 
Сама система ТеХ как и редакторы для нее открытый продукт и может быть спокойно установлен как часть программы Texmaker кроссплатформенного редактора TeX. 
Вобщем попробуйте в деле инструмент, проверенный временем. 
Да и это.... че то сегодня все суетятся, к чему бы? А! Новый год! Пооэтому всех поздравляю и желаю чистого кода в новом году, здоровья и счастья, творческих идей и сумасшедших идей в хорошем смысле слова:) С праздником, друзья!

четверг, 30 декабря 2010 г.

OSI против сделки по продаже Novell

OSI(Open Source Initiative) обратилась к антимонопольщикам Германии с предложением обратить повышенное внимание на сделку по покупке фирмой Attachment фирмы Novell. Причина такого обращения неясная и туманная судьба 882 патентов фирмы Novell. Ранее они помогали останавливать патентные атаки против FOSS, однако сейчас ситуация может резко изменится: к этим патентам проявил интерес консорциум CPTN и он готов купить эти патенты за 450 млн $. Меж тем в этот консорциум входят: Microsoft,Apple,Oracle,EMC. Роль главной скрипки там естественно играет M$.Как говорят анонимные источники из этих четырех компаний: эти патенты будут играть важную роль в бизнес-планах корпораций.(источник)
С учетом той опасности(война компаний,входящих в CPTN против открытого софта весьма внушительна), которую представляет данная сделка для открытого сообщества OSI направило письмо в соответствующее ведомство Германии. Ведомство подтвердило его получение и приняло в рассмотрение, т.к. публичные комментарии по поводу сделки принимаются до конца декабря антимонопольным ведомством Германии. Со своей стороны OSI обещает максимальное содействие в случае необходимости получения дополнительной информации.
Новость взята c LOR'a
Добавлю небольшую так сказать ист. справку: 
Довольно долгое время патентное ведомство США вобще не видело необходимости в патентовании алгоритмов. Ведь фактически это закрепление идеи и запрет на ее использовании без роялти в сторону того кто запатентовал. Но в конце концов убеди крупные корпорации я думаю не без платежей на лапу, но не об том сейчас разговор(80-ые годы). В конце концов все было для копирастов очень хорошо и посыпались патенты один глупее другого, с точки зрения нормального   человека: например делая двойной  клик мышкой мы на самом деле, используем патентованную MS технологию "доступа к данным".Вот так вот товарищи, да все  схвачено. Но самое приятное для пропиетарщины   здесь в том, что это бумажка с печатью может стать смертоносным оружием в руках корпораций в судах. И последние патентные войны между Oracle и Google хорошее тому свидетельство.Недавно, а именно в начале декабря фирма Novell пошла с молотка. А у этой фирмы было 882(!) патента на технологии, которые охватывают для UNIX базисные технологии вроде конвеерной обработки данных. Ранее была эпичная сага между SCO и IBM , когда SCO хотела поставить вне закона Linux, но здесь как раз появился Novell со своими патентами и SCO вынуждена была уйти ни с чем. Но как видим история имеет свойство повторятся.