пʼятницю, грудня 05, 2008

3-го грудня Python пройшов значну віху в свому розвитку, вийшла його 3.0 версія, де вперше спробували вичистити речі які назбиралися в мові та її реалізації і які не відповідали сучасним реаліям чи баченню розробників інтерпритатора. Для себе можу зазначити що зміни менш радикальні, ніж я очікував, проте враховуючи довгий шлях до релізу, 3 реліз кандидати, 3-бета версії, діапазон змін був й так відомий. Хоча не все може й подобається. Наприклад мені бракуватиме старого синтаксису print.
Вихід релізу добрий тим що розробники матимуть на що орієнтуватися при розробці бібліотек, проте я певен що як мінімум ще 3 роки дві гілки 2-га та 3-я співіснуватимуть. Якого небуть серйозного поширення 3.0 не думаю що здобуде до виходу 3.1. 3.0 це більше для розробників, ніж кінцевих користувачів, якщо глянути в репозиторій модулів Python (Python Package Index) то ви не знайдете серед поширених модулів жодного з підтримкою 3.0 (принаймі з тих що я використовую таких немає). Якщо врахувати об'єм написаного коду та консервативність розробників (Zope/Plone відносно недавно лише на 2.4 перейшов, тоді як з гілки 2.0 тоді вже існував 2.5) то перехід триватиме довго.
Лише на день пізніше вийшов перший bugfix реліз (виправлення лише помилок) для гілки 2.6 - 2.6.1. З виходом 2.6 проект Python-у документується з використаннім нової симтеми документації Sphinx + docutils. Всередині reStructured Text  для документації, та doc-коментарі  в коді, яку я вже використовую для своїх проектів з версії 0.4.3.  Що сподобалося в оновленій документації це наявність гарно оформлених pdf-документів для друкованої документації. Стягнути можна тут для 2.6 і тут для 3.0, що дивно так це те що посилання на завантаження документації в анонсі 3.0 немає, а для 2.6.1 є, тому для 3.0 вивів адресу методом дедукції. На вибір є кілька форматів, тут і згаданий мною pdf, а ще html та простий текст. Html Help на жаль є лише включений в дистрибутив.
А тим часом всього лиш за 10 місяців після виходу релізу в репозитаріях Cygwin почали пропонувати до завантаження Python 2.5.2. Дідусь Cygwin здається ледь дихає. Хоча звісно я міг самостійно перекомпілювати навіть Python 2.6 вручну, проте це менш зручно і вимагає додатковий дій.

Анонс релізу 3.0.

Що нового в 3.0.

вівторок, липня 22, 2008

mercurial - нова для мене та поки слабо досліджена система, проте вже є
достатьньо проектів які ведуться в цій CVS і за розвитком яких я стежу.

Якщо для subversion є настільний клієнт Tortoise SVN , який покриває
мої потреби на 100%, то для mercurial прийнятного GUI-клієнта поки
немає. Аналог Tortoise SVN, Tortoise Hg має один неприємний дефект, він
конфліктує з встановленим Wing IDE, тому я від Tortoise Hg відмовився.
Незручність для мене консольного клієнта в тому що мені треба зайти в
кожну папку проекту і там маю виконати команду hg update. Цю задачу
було автоматизовано невеликим скриптом для iPython(інтерактивна консоль длоя Python). Зауважу що я використовую iPython
в режиму роботи командної оболонки , для цього він запускається з
опціями ipython -p sh . Всі дії проводилися на Windows XP проте повинно
працювати без змін і на будь-якому xUnix/Linux де можна встановити
Python та mercurial.



Всі проекти які я відстежую в мене зберігаються наступним чином:

some_drive\repository\svn\proj1
proj2
proj3
\hg\hg_proj1
hg_proj2
hg_proj3

Для рекурсивного оновлення проектів в підпапках я написав такий скрипт:

dirs = %mglob dir:*
for d in dirs:
cd $d
pwd
!hg pull
!hg update
up()

Розберемо по черзі що відбувається:

  1. dirs = %mglob dir:* в змінну dirs поміщається результат роботи вбудованої магічної команди (тут режим автопідстановки не здатен правильно розібратися, тому '%' писати обов'язково). mglob повертає список які підходять під заданий фільтр, а саме всі підпапки в поточній папці.
  2. for d in dirs: - цикл для перебору списку папок, змінній d під час кожної ітерації присвоюватиметься наступний елемент списку dirs
  3. cd $d - команда зміни поточної папки на папку вказану в змінній d. Зверніть увагу на знак '$', він дає вказівку інтерпритатору передати командному інтерпритатору вже результат виконаної команди чи змінну, в даному випадку назви підпапок.
  4. pwd - ще одна вбудована магічна команда, повертає поточну папку в
    якій ми знаходимся.
  5. !hg pull - для отримання змін з головного репозитарію(отримання змінн ззовні), зауважте на знак '!' він означає що викликається зовнішня команда.
  6. !hg update - оновлення локальної копії, тобто злиття змін отриманих на попередньому кроці з вашою копією.
  7. up() - функція еквівалентна cd .. - повернення на рівень вище, в даному випадку дужки () обов'язкові.

В результаті роботи скрипт зайде в кожну підпапку першого підрівня відносно поточної папки, виведе поточну папку, виконає там команду !hg update та повернеться на рівень вверх.

Збережемо як макрос цей код, для наступних використань, для цього виконаємо наступну команду: %macro hgrecupdate 150-151 , де hgrecupdate назва макроса, 150-151 - номери рядків в яких введено код макроса.

Щоб протестувати його роботу виконаємо наступні команди.


cd E:\repository\hg\ - команда зміни поточної директорії (треба зауважити, що системну команду !cd використовувати не рекомендовано, тому тут в реальності викликаєтьсся вбудована магічна команда(magic command) %cd, але оскільки по замовчуванню ввімкнуто режим автопідстановки, то знак '%' писати необов'язково).
hgrecupdate - власне виклик макроса рекурсивного оновлення.

Зразок виконання макроса зображено нижче:

--------------------> hgrecupdate()
<12> 'e:\\repository\\hg\\byteflow'
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
<12> 'e:\\repository\\hg\\colubrid-main'
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
<12> 'e:\\repository\\hg\\jinja-main'
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
<12> 'e:\\repository\\hg\\lodgeit-main'
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
<12> 'e:\\repository\\hg\\pocoo-main'
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
<12> 'e:\\repository\\hg\\pygments-main'
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
<12> 'e:\\repository\\hg\\pylons'
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
<12> 'e:\\repository\\hg\\QuickWiki'
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
<12> 'e:\\repository\\hg\\textpress-main'
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
<12> 'e:\\repository\\hg\\werkzeug-main'
0 files updated, 0 files merged, 0 files removed, 0 files unresolved


Проте, закінчивши роботу інтерпритатора ми виявимо, що макроси не зберігаються між сесіями. Тому для цього викличемо%store hgrecupdate
макрос буде збережено в постійній пам'яті і його можна буде викликати в наступних сесіях.

Розв'язуючи реальну задачу я показав тільки деякі прості методики роботи з інтерактивним інтерпритатором iPython в режимі командної оболонки. Проте для складніших задач вам прийдеться зануритися в документацію.

понеділок, липня 14, 2008

Сьогодні вирішив для різноманітності зрадити ідеї мінімалізму і набрати кілька html-сторіночок в Microsoft Expression Web 2, який вони позиціонують як наступника Frontpage та прямого конкурента Adobe Dreamweawer. Програма встановлення досить оригінальна, встановилося через пень колоду, а все через те що я видалив приховану копію інсталяційних файлів MS Office 2007, прийшлося заново перевстановити Office 2007, щоб відновити Локальне джерело встановлення (Msocache) і на те потратити 1,8 Гб :E. Питається яке діло Expression Web до Офісу, а майже ніякого, оскільки його можна встановити і на машину де офісу немає, але так як вони використовують частково спільні бібліотеки та технологію microsoft installer то доводиться йти на такі жертви (я надіюся що коли набудь менеджеру який придумав Локальне джерело встановлення відірвуть все зайве, в тому числі руки які однозначно ростуть в нього з дупи, оскільки проблем, які він покликаний вирішувати не вирішує, а проблеми створює постійно).
Ну гаразд встановили, пора запускати. Майкрософт дає можливість використовувати продукт безкоштовно 30 днів, мені для ознайомлення вистачить. Запустив. Приємна темна тема, якраз під стать Zune Theme яка в мене встановлена. Приступаю до власне редактора, десь я це все бачив. Редактор 1:1 передертий з Visual Studio Web Developer, що добре, бо мені їхня ідеологія реалізації WYSIWYG подобається. А далі почав набирати невеличку статтю. І все було чудово, якщо не рахувати постійно вставляння span-ів з lang="en-us" хоча його ніхто й не просив, ну нічого ручками почищу. Нарешті документ готовий і я вирішив за старою звичкою, як в Visual Studio , запустити на перегляд по F5, мені вискочило якесь віконечко з попередженням яке не встиг прочитати, а далі .............
Далі МАТИ, ТРОХПОВЕРХОВІ, НЕ ДЛЯ ДРУКУ. То творіння криворуких індусів знищило 45 хвилин роботи, повернувши документ майже до початкового вигляду. При цьому відкат(Undo/Redo) НЕ ПРАЦЮЄ. Заспокоївшись трохи я вирішив подивитися що ж таке робить та злощасна F5. А не тут то було, довідка НЕ ЗАПУСКАЄТЬСЯ, в принципі. Видає що не знайдено розділи які відповідають шуканій темі. Шукати ж в величезному списку команд немає бажання.
Резюме. Expression Web 2 відправляється в смітник. InType, Notepad++, Visual Studio Web Developer мені вистачає. Майкрософт в стадії цвітучої деградації. Продукти все монстроїдальніші, а помилки пропускаються в реліз все примітивніші. Є відділи які знаходять можливість випускати достойні продукти, але їх все менше, маркетинг стоїть попереду воза, якість не в моді.
До криворуких розробників Expression Web 2, до вашого відома, відкат (Undo/Redo) був реалізований ще в часи DOS-івського 5-го Word, може й швидше, просто древнішого не застав. Ящо самі не здатні реалізувати зробіть Copy-Paste з Miscrosoft Office чи Visual Studio.

середу, червня 18, 2008

Отже Вогнелис 3-ій (Firefox 3) фінальний вийшов. Що приємно наші перекладачі постаралися, тому присутня збірка з досить добрим українським перекладом.

Тут прийшла думка, що Вогнелис як продукція нашого ВПК, без обробки напильником трактор виходить, а після обробки танк. Він в мене як приладова панель літака, купа лампочок, важелів, все блистить і блимає.

неділю, червня 15, 2008

Apple recently held a first official press conference in Russia announcing prices and policies for the market. Read how terribly wrong went the press conference, about outrageous prices for Russia and how Apple treats customers there. Open letter to Apple hoping to change something.

Ще один доказ що поки ринок росте як мінімум 40-50% в рік при повній відсутності конкуренції, то бажання користувача для виробника порожній звук. Я от собі думаю, коли б в 80-х перемогла б Apple, а не Microsoft, яким би був сучасний світ. Судячи з поводження компанії ми б мали ще гіршу монополію і значно складнішу ситуацію.


read more | digg story
Після двох бета-версій норвезька компанія Opera Software вирішила не тягнути і випустити нарешті фінальну версію найшвидшого оглядача в світі. Яку я не проминув встановити.
Зміни видно ще на етапі встановлення, інсталятор оформлено в темних тонах, сайт теж змінив оформлення на подібне.

Вигляд стартового выкна інсталятора



Української мови в інсталяторі як не було, так і не з'явилося, ну нічого обрав російську. Встановлення прйшло безболісно, 9.5 без заминок встала поверх 9.27.


Перший запуск приніс новий скін, який одразу мені не сподобався (можливо після користування я й зміню думку).


Вигляд вікна Opera


Вигляд вкладок змінився і як на мене став більше займати місця по висоті (хоча можливо це візуальний ефект через контраст чорних вкладок з світлим інтерфейсом) і взагалі контраст чорного з світлосірим створює неприємне враження розірваності інтерфейсу. Зникла кнопка створити нову вкладку, ну і хай з нею все одно рідко користувався. Повернули рядок статусу, поки не визначився як на нього реагувати, на нього переїхали кнопки зміни маштабу включення/вимкнення малюнків та розтягування вмісту сторінки по ширині вікна.
Тепер про новинки:
  • Краща підтримка веб-стандартів (це те що не дуже відчуває користувач, але це те що на своїй дупі відчуває кожен веб-розробник).
  • Opera Link - система онлайн синхронізації закладок і нотаток це те чого мені сильно бракувало, хоча саму систему ще не спробував, якщо вона дозволить імпортувати мої закладки з del.icio.us , тоді однозначно в плюс їй. (А Google вирішила в той час відмовитися від дальшого розвитку Google Sync в третьому Вогнелисі, хоча є альтернативи, наприклад Foxmarks). Цікаво що в Opera вже є майже всі елементи соціальної мережі, тільки поки вони так ніби її не називають.
  • Opera Dragonfly - дуже класна річ, щось на зразок Firebug для Вогнелиса. Веб-розробники будуть задоволені.
  • Opera's Fraud Protection - захист від фішингу, malware і інших поганих програм та людей.
  • Ну і звичайно швидкість. Opera залишається найшвидшим оглядачем веб-сторінок, при цьому й наскромнішим (використання пам'яті в нього найнижяе, хоча мені з 3 Gb оперативної пам'яті майже не відчутно).

Більш повний список змін тут.
Стосовно нового оформлення сумував я недовго, знайшлася класична шкірка з старим синеньким варіантом оформлення, чим я не проминув скористатися.

Завантажити Оперу (дозволю собі перекласти її назву, можна за нижче наведенним посиланням.)
Opera 9.5 - beautifully engineered
Поспішиш людей насмішиш.
Як я казав вчора вийшов черговий випуск Apache 2.2.9 на момент релізу версії пакету для віконечок не було, сьогодні він з'явився, проте після скачування та спроби інсталювати мене чекало розчарування я отримував помилку "Internal error 2715. apr_ldap-1.dll". Погугливши за секунду знайшов відповідь апачівці накосячили з msi файлом і не прописали шлях до однієї з бібліотек. Оперативно кимось був відкритий дефект на їхньому баг-трекері і на сайті я вже бачу посилання на нову версію інсталятора, вже з приставкою r2, проте саме посилання поки веде в нікуди, мабуть нова версія ще збирається і тестується.

Додано: вже викладено нову версію інсталятора, який я зміг успішно встановити та запустити встановлений сервіс веб-сервера. Якщо у вас видає помилку "Internal error 2715. apr_ldap-1.dll" у вас стара версія інсталяційного пакету. Виправлені пакети мають назви: apache_2.2.9-win32-x86-openssl-0.9.8h-r2.msi та apache_2.2.9-win32-x86-no_ssl-r2.msi. Крім цього на сайті веб-сервера розміщено MP5 хеш та PGP ключі пакетів, а також описано як перевірити їх цілісність.

пʼятницю, червня 13, 2008

Сьогодні вийшла нова версія веб-сервера Apache 2.2.9. Нічого кардинального нового в версії в якій змінилася тільки молодша версія не з'явилося. Це черговий реліз виправлення помилок. Проте номер 9 в гілці 2.2 може говорити про те що дана платформа вже досягла певного рівня зрілості, хоча багато хостингів все ще тримаються за гілку 1.3. На жаль версія встановлюваного пакету під Віконечка судячи з усього ще не готова, тому посилання на нього посилає в нікуди.

Також кілька днів тому вийшов третій кандидат до релізу Вогнелиса, українську версію якого можна злити тут. З плюсів версії виділю, нарешті Yahoo доробила рідний додаток для сервісу закладок del.icio.us , без якого мені на новій версії було дуже незручно. Ну і так виглядає, що Google Gears нарешті запрацювали на третьому Вогнелисі.

суботу, травня 31, 2008

Отже як я казав раніше, хочу спробувати GAE .
Знайомство починається з реєстрації.
  1. Для реєестрації потрібно ввести номер свого мобільного, на який вам перешлють код верифікації. На щастя Україна і Київстар є в переліку підтримуваних операторів.
  2. Наступним кроком є вибір ідентифікатора вашої веб-програми. Насправді це url за допомогою якого буде ідентифікуватися ваша веб-програма, яка матиме вигляд на зразок щось-там.appspot.com . Тут мене спіткало розчарування stoune.appspot.com був занятий, хоча за цією адресою нічого немає :(
  3. Далі вводимо короткий текстовий опис вашої веб-розробки і на цьому етап реєстрації закінчиться.

P.S. Вичитав в довідці, що один розробник лімітований трьома веб-розробками.
Це відбулося!
28 травня Гугл зробив відкриту реестрацію для всіх бажаючих в Google App Engine.
Google App Engine Blog: Announcing Open Signups, Expected Pricing, and two new APIs
Мені давно було цікаво спробувати його вживу, але в число перших 10000, а потім 75000 щасливчиків я не потрапив.
Та цього гуглівцям було мало і вони підготували кілька смаколиків для розробників, а саме:
  • Надали можливість роботи з графікою,( те за що найчастіше скаржились це неможливість роботи з графікою, найпоширенша бібліотека для цього в Python це PIL (Python Imaging Library), але GAE забороняє використання будь-яких бібліотек написаних на С.) Гугл запропонував альтернативу Images API, кажуть його використовують в надрах Picassa Web, що ж останній досить достойний продукт і хоча маю сумніви, що альтернатива покриє всі можливості комбайну PIL, але не певен що більшості розробників потрібно аж так багато.
  • Другою новинкою став Memcache API. Інтерфейс керування кешуванням. Написав його той самий Бред Фіцпатрік (Brad Fitzpatrick), який крім того що створив широко використовуваний модуль memcached, між справами долучився до створення культового на теренах exСРСР LiveJournal, куплений російський СУПом.

Запасаюся пивом,сухариками буду пробувати :)

четвер, травня 29, 2008

Намагаюся підключити динамічну підсвітку синтаксису. Поки що безуспішно :(


#include <iostream>

int main()
{
std::cout<<"Hello world"<<std::endl;
return 1;
}



@requires_authorization
def somefunc(param1, param2):
'''A docstring'''
if param1 > param2: # interesting
print 'Gre\'ater'
print ''
return (param2 - param1 + 1) or None

class SomeClass:
pass

четвер, травня 15, 2008

Завжди вважав що з нашим телебаченням щось не те. Ну не може нормальна людина вмістити в себе стільки бруду. А тому цікавило за яким критерієм добирають що показувати? А як виявилося що в принципі визначають за допомогою людей зі зрушеною психікою, а якщо туди й потрапить нормальна людина то погоди вона не зробить. Так і виходить, що дивимося продукт для найгірших представників "плебсу".

четвер, квітня 24, 2008

Вийшов 8-й Ubuntu 8.04 LTS (Hardy Heron), наступний випуск з довготривалою підтримкою (3 роки) після 6-ї версії. Наразі особливих архітектурних змін не бачу.
Судячи з усього черговий еволюційний реліз, з обновленням базових компонент:
XOrg 7.3
Gnome 2.22.1

З того що іноді використовую:
Python 2.5.2
PostgreSQL 8.3.1
Крім цього помічено
Sun Java 1.6.06.

вівторок, квітня 22, 2008

Поки я розглядався по сторонам ActiveState 8-го квітня розродилася релізом їхнього ActivePython. Отже випущено 2.5.2 та 2.4.5 , обидва релізи виправляють лише помилки без додавання нових можливостей, також обновилися модулі що входять в комплект (pywin32, pysqlite etc.). Під Linux/xUnix їхній реліз мені без сирців не потрібен, то під Windows їхній реліз кращий за python.org-івський хоча б довідкою. Крім цього з 2.4.5 на python.org не збирають виконавчих модулів(хочете самі зберете, але перед цим мусите стягнути і встановити VC2003Toolkit як мінімум).
Отже для всіх провідних адміністраторів та пітоноводів рекомендація обновитися(на жаль способу обновити автоматом всі бібліотеки без повторного встановлення не знаю).

P.S. Перевстановлення всіх бібліотек дало привід перевірити наявність оновлень бібліотек які часто використовую. Зокрема оновився paramiko до 1.7.3 (залежить від PyCrypto). egenix-mx-base до 3.0 і нарешті зявився нормальний інсталятор для Python 2.5. Twisted оновився до 8.0.1 (і це з 2.5 де ділися проміжні версії не в курсі). httplib2 вже в версії 0.4. BeautifulSoup зараз майже не використовую тому й не відстежив, що вже 3.0.5. WMI до 1.3.2. 4Suite XML теж не використовую зараз, але за компанію до 1.0.2.