понеділок, березня 16, 2009



Чорний PR тішить. От що цікаво що ті всі Жульки, Балоги відкрито ніколи не заперечать. Якихось аргументів привести не можуть чи не хочуть. А от як вилити відро фекалій на когось то завжди запросто.
Я терпіти не можу Фірташа, в нормальній країні він давно вже мотав би строк і не один, але в нормальній країні збиралися докази, відбувся процес де сторона обвинувачення намагалася б довести його вину. Коли інша сторона діє такими ж неправовими методами як та з якою бореться то вони стають рівні. Юля може як хотіти заливатися соловейком, але відбір тих 10 чи 11 млрд. кубів газу, це крадіжка. І голова Верховного Суду Василь Онопенко ексБютівець міг підказати що Юля чинить не по закону, а по понятіям.

понеділок, лютого 23, 2009

Ілюстрація наскілька ця "Криза", "унікальна" (за словами деяких політиків) в Україні:

На графіку падіння вартості банків в 2009-му році. Щоб ви могли вдуматися в цифри вертикальна шкала в мільярдах американських долларів.
Взято звідси: Financial Morons, and Quadratics vs. Linears
Промінець позитиву:

пʼятницю, лютого 20, 2009


Нагло сперто в

понеділок, лютого 16, 2009

"Інший світ. Повстання ліканів." один з кращих екшинів лютого мабуть. Гарно поставлені сцени, нормально виписаний сюжет, принаймі мені сподобалось більше за попередні дві частини. Любов змальована не дуже, але як для бойовика може бути.

пʼятницю, грудня 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.