tag:blogger.com,1999:blog-46388299577985787452024-02-19T05:23:16.427+03:00не в пример окружающим | don't you mind if...Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.comBlogger18125tag:blogger.com,1999:blog-4638829957798578745.post-36059018601475664312014-09-29T22:46:00.002+04:002014-09-29T22:46:26.614+04:00Tremendous! Потрясающе!Once you get the hang of it, composition affords a
tremendous amount of freedom compared to classical inheritance. For people who have
been immersed in classical inheritance for years and learn how to take real advantage
of composition (specifically using prototypal techniques), it is like walking out of a dark
tunnel into the light and seeing a whole new world of possibilities open up for you.
<br />
<hr />
Однажды использовав, вы поймете какую гигантскую свободу несёт в себе компоновка, в сравнении с классическим наследованием. Для людей, которые годами были погружены в классику наследования и которые узнали все достоинства компоновки (особенно при использовании техники прототипирования) - это как выйти из тёмного туннеля к свету и увидеть целый новый мир возможностей доступных для тебя.<br />
<br />
<br />
P.S - just a short section from a JavaScript book.<br />
П.С. - просто отрывок из книжки по программированию на JavaScript.<br />
<br />
А вы говорите - программировать это скучно!Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-80772731451506430092014-09-03T21:04:00.000+04:002014-09-03T21:04:04.597+04:00Что я делаю, когда дома не работает Wi-Fi...Нет, я не читаю книгу,<br />
Нет, я не иду гулять.<br />
Я ищу открытую вай-фай-точку,<br />
Прокидываю через защищенный ssh туннель к проксе,<br />
И снова серфлю интернет,<br />
Бл..ть.<br />
<br />
<br />
P.S. - основано на реальных сегодняшних событиях.Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0Новосибирск, Новосибирская область, Россия55.008352599999988 82.93573270000001754.42501759999999 81.644839200000021 55.591687599999986 84.226626200000013tag:blogger.com,1999:blog-4638829957798578745.post-71548714073680698392014-07-29T17:04:00.000+04:002014-07-29T17:04:14.940+04:00Excel, CSV и UTF8 - вместе веселей!Хотите, чтобы Excel открывал данные CSV в UTF-8 правильно (а не кракозябры)?<br />
Используйте UTF-8 BOM!<br />
<br />
<a name='more'></a><br />
Для этого нужно добавить всего лишь 3 байта (hex EF BB BF) в начале файла.<br />
В противном случае Excel интерпретирует данные в кодировке системы (по умолчанию windows-1251).<br />
<br />
На языке Python это выглядит так:<br />
<pre><code>
import codecs
...
fp = open('filename.csv','w')
fp.write(codecs.BOM_UTF8)
...
</code></pre>
<br />
P.S. - Кстати, это единственный выход, если в колонках есть разрывы строк (даже если всё у вас экранируется строго по формату CSV). <span style="color: orange;">При неправильной кодировке Excel "ломает" такие строки</span> и я не нашел способа по-другому это исправить.
Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-19420489232619151132014-07-24T14:37:00.003+04:002014-07-24T14:37:47.352+04:00Shovel или как быстро сделать консольный интерфейс (CLI)Shovel - превращает питонские функции в простые команды для запуска в консоли:<br />
<br />
<script src="https://gist.github.com/kidig/7d4e25d528de11e27c18.js"></script><br />
Исходники здесь: <a href="https://github.com/seomoz/shovel">https://github.com/seomoz/shovel</a><br />
Но лучше ставить через: pip install shovel<br />
<br />
Таким образом, можно в несколько строк быстро сделать CLI-интерфейс для любого API!<br />
Я считаю - это круто!<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-46971841749943165652014-06-24T13:19:00.001+04:002014-06-24T13:19:23.000+04:00PostgreSQL на Windows без установкиСегодня узнал как просто можно запустить сервер Postgresql под Windows без установки: <a href="http://bit.ly/1l63rw1" rel="nofollow" target="_blank">http://bit.ly/1l63rw1</a><br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-48343922500074423022014-04-17T15:18:00.000+04:002014-04-17T15:18:24.349+04:00Кофеин для Windows - не даем никому блокировать экран<i>Посвящается всем ненавистникам GPO (групповых политик), заложникам отсутствия административных прав и прочему офисному планктону =)</i><br />
<i><br /></i>
У меня компьютер засыпал (блокировался экран и требовал ввода пароля) через каждую минуту простоя - и это печально.<br />
Печально, что сотрудники отдела безопасности не умеют строить реальную и надежную безопасность в организации, а только вставляют "палки" в нормальную (и потенциально эффективную) работу пользователей.<br />
<br />
Вообщем все рекомендую - <a href="http://www.zhornsoftware.co.uk/caffeine/">http://www.zhornsoftware.co.uk/caffeine/</a><br />
<br />
Объем: 14KB, установка не требуется - скачать, распаковать и запустить.<br />
Висит в трее. Подробные настройки описаны в файле readme.txt<br />
<br />
<br />
P/S - Для удобства (и опять же безопасности) есть режимы на 1-2-4-8-24 часа активности, после чего программа может автоматически отключаться.Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-53244019687367938732014-04-11T01:30:00.000+04:002014-04-11T01:30:28.094+04:00Установка PostgreSQL 9.3 в оффлайнеРанее я уже рассказал, <a href="http://kidig.blogspot.ru/2014/04/sql-server-2012-2.html" target="_blank">как установить MS SQL Server 2012 Express</a>, а теперь решил проверить и попробовать постгресс:<br />
<br />
1. Скачиваем дистриб с оф. сайта (~50мб) <a href="http://www.postgresql.org/download">http://www.postgresql.org/download</a><br />
2. Копируем на машину без интернета (на флешке или ещё как).<br />
3. Запускаем установщик.<br />
4. "Далее", "Далее", "Далее".... "Готово".<br />
5. Готово.<br />
<br />
Итого ушло около 15 минут. И у нас готовая СУБД с админкой (pgAdmin III).<br />
<br />
<br />
Почувствуй разницу, б... !Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-74619786292275796782014-04-04T17:40:00.001+04:002014-04-04T17:40:40.680+04:00Установка SQL Server 2012 в оффлайне (пьеса в 2-х актах с антрактом)Так уже заведено, что определенные компьютеры у нас находятся в изолированной внутренней сети. А мне понадобилось установить SQL Server Express 2012:<br />
<br />
<h4>
Акт первый</h4>
<i>Установщик SQL:</i> - У вас не установлен .NET Framework 4.0<br />
Я: - Да, ладно? Я же только что версию 4.5 поставил!<br />
<i>Установщик SQL:</i> - Ничего не знаю, мне нужна версия 4.0! Или дай Интернет!<br />
Я: - Воу-воу! Узбагойся! Сейчас установлю 4.0...<br />
<br />
(Лезу на сайт microsoft, скачиваю .NET Framework 4.0)<br />
<br />
<h4>
Акт второй</h4>
<i>Установщик .NET Framework:</i> - Чувак, я обнаружил что у тебя уже установлен .NET Framework, только более новая версия.<br />
Я: - М##$ть! Установи 4.0!<br />
<i>Установщик .NET Framework:</i> - Чувак, я обнаружил что у тебя уже установлен .NET Framework...<br />
Я: - ...ть!<br />
<br />
(Далее следует нецензурная лексика с использованием местных идиоматических выражений...)<br />
<br />
<h4>
Эпилог</h4>
Сношу 4.5, устанавливаю .NET Framework 4.0, перезагружаю.<br />
Потом ещё качаю Visual Studio Express 2012, устанавливаю, перезагружаю.<br />
И после этого ставлю SQL Server 2012 Express.<br />
<br />
<br />
Вот такой вот "экспресс" :)<br />
<b>Финал.</b><br />
<br />
<br />
<i>Все персонажи вымышленны, все совпадения с реальностью не исключены. При установке ни одного сервера не пострадало.</i>Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-12655489850391028012013-10-18T00:44:00.000+04:002013-10-18T00:44:15.883+04:00Huawei, подай голос!<div class="separator" style="clear: both; text-align: center;">
<a href="http://i646.photobucket.com/albums/uu183/zmb0911/UDISK/DSC05453.jpg" imageanchor="1" style="clear: right; float: right; margin-bottom: 1em; margin-left: 1em;"><img border="0" src="http://i646.photobucket.com/albums/uu183/zmb0911/UDISK/DSC05453.jpg" height="180" width="200" /></a></div>
Довольно просто завелся свежекупленный девайс <br /><a href="http://market.yandex.ru/model.xml?modelid=6526465&hid=91029&suggest=1" rel="nofollow" target="_blank">Huawei E173</a><br />
<br />
1. Скачал прошивку, именуемую Dashboard, залил в модем.<br />
2. Деинсталировал родной софт, который успел установить.<br />
3. Отключил модем, перезагрузил винду.<br />
4. Подключил модем - установились драйвера.<br />
5. Запустилась заветная програмулина:<br />
<br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYtHpnASS-BVzmHS3lSQ3GHDfLwa6TRrlKcyBRXdnoUSSopW9_HBRzy8aMHDWT94z1tBHd6N23z1U-LcK_id1AbmG52n47e1MJQ8HGE5FzwHcPK8kg9SvbqYo7m3olaoh9qd_ttCrwvV7p/s1600/%D0%9F%D0%BE%D0%BB%D0%BD%D0%BE%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F+%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C+18.10.2013+03611.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYtHpnASS-BVzmHS3lSQ3GHDfLwa6TRrlKcyBRXdnoUSSopW9_HBRzy8aMHDWT94z1tBHd6N23z1U-LcK_id1AbmG52n47e1MJQ8HGE5FzwHcPK8kg9SvbqYo7m3olaoh9qd_ttCrwvV7p/s1600/%D0%9F%D0%BE%D0%BB%D0%BD%D0%BE%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F+%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C+18.10.2013+03611.jpg" height="216" width="400" /></a></div>
<br />
Полезности:<br />
- Голосовые вызовы!<br />
- Отправка/прием SMS!<br />
- Телефонная книга из сим-карты!<br />
- Ну и конечно его первостепенная ф-ция - 3G интернет!<br />
<br />
<br />
P.S. - следующим этапом нужно настроить его под Linux и прикрутить к Asterisk. Но это уже другая история.Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com2Москва, Россия55.755826 37.617355.1838695 36.3264065 56.3277825 38.9081935tag:blogger.com,1999:blog-4638829957798578745.post-54627400391667525752013-09-01T17:01:00.003+04:002013-09-01T17:03:04.501+04:00Факты о Чаке Норрисе<div style="margin-bottom: 0cm;">
<span style="font-variant: normal;"><span style="text-decoration: none;"><span style="font-style: normal;"><span style="font-weight: normal;">Выписал для себя в мемориз несколько фактов:</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-variant: normal;"><span style="text-decoration: none;"><span style="font-style: normal;"><span style="font-weight: normal;"><br /></span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-variant: normal;"><span style="text-decoration: none;"><span style="font-style: normal;"><span style="font-weight: normal;">Чак Норрис может зажечь огонь с помощью трения двух кубиков льда.</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-variant: normal;"><span style="text-decoration: none;"><span style="font-weight: normal;"><span style="font-size: x-small;"><i>Chuck
Norris can light a fire by rubbing two ice-cubes together.</i></span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-variant: normal;"><span style="text-decoration: none;"><span style="font-style: normal;"><span style="font-weight: normal;"><br /></span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-variant: normal;"><span style="text-decoration: none;"><span style="font-style: normal;"><span style="font-weight: normal;">Чак Норрис не носит часов. Он сам решает, сколько сейчас времени.</span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="font-size: x-small;"><i>Chuck Norris doesn’t wear a watch. HE
decides what time it is.</i></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
Чак Норрис может сделать "лунную походку" вперёд.</div>
<div style="margin-bottom: 0cm;">
<span style="font-size: x-small;"><i>Chuck Norris can moonwalk forwards.</i></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
Чак Норрис может задушить и беспроводным телефоном.</div>
<div style="margin-bottom: 0cm;">
<span style="font-size: x-small;"><i>Chuck Norris can strangle you with a
cordless phone.</i></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
Чак Норрис не сворачивает самолётики из бумаги, он сворачивает настоящие самолеты в бумагу.</div>
<div style="margin-bottom: 0cm;">
<span style="font-size: x-small;"><i>Chuck Norris doesn't fold paper
airplanes, he folds airplanes into paper.</i></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
Однажды Чак Норрис выиграл в покер... без карт.</div>
<div style="margin-bottom: 0cm;">
<span style="font-size: x-small;"><i>Chuck Norris once won a game of poker
using no cards.</i></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
Чак Норрис чуть-чуть похож на зубную фею, он также может "вынести" ваши зубы.</div>
<div style="margin-bottom: 0cm;">
<span style="font-size: x-small;"><i>Chuck Norris is a bit like the tooth
fairy exept he takes out the teeth.</i></span></div>
<div style="margin-bottom: 0cm;">
<br /></div>
<div style="margin-bottom: 0cm;">
Пожалуй, единственный мужик, кто может есть банан и не выглядеть при этом как гей - это Чак Норрис.</div>
<div style="margin-bottom: 0cm;">
<i><span style="font-size: x-small;">Chuck Norris is the only guy who can
eat a banana with out looking gay.</span></i></div>
<div style="margin-bottom: 0cm;">
<i><span style="font-size: x-small;"><br /></span></i></div>
<div style="margin-bottom: 0cm;">
<i><span style="font-size: x-small;"><br /></span></i></div>
<div style="margin-bottom: 0cm;">
<span style="font-size: x-small;">Стырено с <a href="http://www.chucknorrisfacts.com/">http://www.chucknorrisfacts.com/</a></span></div>
Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-33423968383263256092013-07-28T10:55:00.001+04:002013-07-28T10:55:14.699+04:00pulseaudio-equalizer в ubuntu 13.04Сегодня установил сей плагин в систему, пользуясь этим <a href="http://www.linux-info.ru/equalizer.html" target="_blank">мануалом</a>.<br />
<br />
Но сразу не завелся. В консоли выдавал следующие ошибки:<br />
<pre style="background-color: #eeeeee; font-size: 0.8em;"><code>
kidig@minifire:~$ pulseaudio-equalizer-gtk
Getting settings...
/usr/bin/pulseaudio-equalizer: строка 221: /home/kidig/.pulse/equalizerrc: Нет такого файла или каталога
mkdir: невозможно создать каталог «/home/kidig/.pulse/presets»: Нет такого файла или каталога
/usr/bin/pulseaudio-equalizer: строка 229: /home/kidig/.pulse/equalizerrc.availablepresets.unsorted: Нет такого файла или каталога
sed: couldn't flush stdout: Обрыв канала
/usr/bin/pulseaudio-equalizer: строка 232: /home/kidig/.pulse/equalizerrc.availablepresets.unsorted: Нет такого файла или каталога
ls: невозможно получить доступ к /home/kidig/.pulse/presets/*.preset: Нет такого файла или каталога
/usr/bin/pulseaudio-equalizer: строка 235: /home/kidig/.pulse/equalizerrc.availablepresets: Нет такого файла или каталога
rm: невозможно удалить «/home/kidig/.pulse/equalizerrc.availablepresets.unsorted»: Нет такого файла или каталога
Traceback (most recent call last):
File "/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py", line 535, in <module>
Equalizer()
File "/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py", line 357, in __init__
GetSettings()
File "/usr/share/pulseaudio-equalizer/pulseaudio-equalizer.py", line 46, in GetSettings
f = open(eqconfig, "r")
IOError: [Errno 2] Нет такого файла или каталога: '/home/kidig/.pulse/equalizerrc'
</module></code>
</pre>
<br />
Вылечил с помощью:<br />
<pre style="background-color: #eeeeee; font-size: 0.8em;"><code>
kidig@minifire:~$ mkdir .pulse
</code></pre>
Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com1tag:blogger.com,1999:blog-4638829957798578745.post-17194072506112251452013-07-22T00:16:00.000+04:002013-09-01T17:05:07.072+04:00Ubuntu, выпей кофе и хватит засыпать когда я смотрю видео!К сожалению, в Ubuntu 13.04 "из-коробки" не отключается блокировка экрана в некоторых приложениях или веб-браузере, когда ты смотришь видео. Порой это очень бесит :)<br />
<br />
Сегодня нашел замечательную утилиту Caffeine ("кофеин"), которая представляет собой маленькую инонку в трее, способную пробуждать систему. Работает как с GNOME Screensaver, так и с Xscreensaver.<br />
<br />
Эта штука пока не умеет распознавать HTML5 video (допустим при просмотре Youtube), но позволяет отключать скринсейвер для некоторых процессов, которые можно указать самостоятельно. В настройках нужно лишь кликнуть "Add" и добавить какое-нибудь приложение, например "vlc".<br />
<br />
Таким образом, можно добавить "firefox" (или точнее указать "plugin-container", чтобы учитывать лишь те моменты, когда работает Flash) или "chromium-browser", чтобы во время запуска браузера экран не погасал.<br />
<br />
Чтобы установить Caffeine в свою Ubuntu, нужно выполнить:<br />
<pre class="linux-code" style="background-color: #e0e0e0;"><code>
sudo add-apt-repository ppa:caffeine-developers/ppa
sudo apt-get update
sudo apt-get install caffeine python-glade2
</code>
</pre>
<br />
Владельцам других дистрибутивом предлагаю поискать сборки на <a href="https://launchpad.net/caffeine" target="_blank">Launchpad</a>.<br />
<br />
И приятного просмотра! ;)<br />
<br />
<br />
<b>UPD: </b>экспериментально было замечено, что если ноутбук работает от батареек, то кофеин упорно не включается! Умно.Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-25317332336686520522013-07-17T16:19:00.001+04:002013-07-17T16:19:51.270+04:00про Таежный ДарНа этикетке этого вкусного напитка написано:<br />
<br />
<i>"Мы используем только натуральные таежные травы и ягоды, собранные на Дальнем Востоке...</i><br />
<i>бла-бла-бла... Покупая напитки "Таежный Дар", вы помогаете сохранить популяцию амурского (уссурийского) тигра на Дальнем Востоке..."</i><br />
<br />
Опасная, однако, у ребят работа - ходить по тайге, собирать травы и сохранять популяцию амурских тигров! :)Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-11400564365723243742013-07-15T02:16:00.002+04:002013-07-16T11:41:01.210+04:00Субботний вечер с node.js<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">После прочтения статьи про "человеческий парсер" (</span><a href="http://habrahabr.ru/post/186496/" style="text-decoration: none;"><span style="background-color: transparent; color: #1155cc; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;">http://habrahabr.ru/post/186496/</span></a><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">), решил опробовать данный метод, а заодно и поближе познакомиться с node.js и selenium.</span></div>
<b id="docs-internal-guid-24733867-df32-297c-b038-bee174cacc00" style="font-weight: normal;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Поняв принцип работы selenium web driver, я написал <a href="http://pastebin.com/SmM9aeXJ" target="_blank">небольшой скрипт</a>, который открывает Chrome, заходит на Яндекс и что-то там ищет. Связка: selenium-server-standalone + chromedriver, nodejs (+<a href="https://github.com/admc/wd" target="_blank">wd</a> +<a href="https://github.com/caolan/async" target="_blank">async</a>).</span>
<script src="https://gist.github.com/kidig/6006623.js"></script>
</div>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Очень интересно писать на JS серверный код! Особенно доставляет постоянная асинхронность и замыкания, благо есть библиотеки, которые визуально сокращают вложенность кода.</span></div>
<b style="font-weight: normal;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Далее я решил углубить знания, погуглив на тему “node.js + win32com”, но увы хорошего решения нет (есть только зачатки в виде <a href="https://github.com/rbranson/node-ffi" target="_blank">node-ffi</a>). Для себя вижу (при очень большой необходимости) надежную связку - node.js + zeromq + <a href="http://sourceforge.net/projects/pywin32/" target="_blank">pywin32</a> (или <a href="https://pypi.python.org/pypi/comtypes" target="_blank">comtypes</a>). Ибо питон работает с COM32 вдоль и поперёк.</span></div>
<b style="font-weight: normal;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Ещё одно интересное расширение - <a href="http://mongoosejs.com/" target="_blank">mongoose</a>. Для работы с базой MongoDB. Позволяет реализовать схемы и модели. Такой простой ORM.</span></div>
<b style="font-weight: normal;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Далее были ещё несколько расширений:</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><a href="http://expressjs.com/" target="_blank">express</a> - web framework с роутерами и представлениями</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><a href="http://jade-lang.com/" target="_blank">jade</a> - крутой шаблонизатор, чем-то напоминающий coffeescript</span></div>
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><a href="http://learnboost.github.io/stylus/" target="_blank">stylus</a> - css шаблонизатор, чем-то напоминающий jade</span></div>
<b style="font-weight: normal;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Теперь мне очень интересно написать небольшой сайт-визитку на платформе node-express с базой mongodb.</span></div>
<b style="font-weight: normal;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Также интересно нагрузить продакшн-систему и посмотреть как nodejs со своей событийной моделью с этим справляется (пока я лишь удивляюсь, что про него пишут).</span></div>
<b style="font-weight: normal;"><br /><span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"></span></b>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Кстати на продакшне его нужно будет ставить под управление <a href="http://supervisord.org/" target="_blank">supervisor</a> или <a href="https://github.com/nodejitsu/forever" target="_blank">forever</a>, и ставить отлов всех-всех-всех (всех!) исключений. Иначе возможны падения, причем без лога не разберешься.</span></div>
<br />
<span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"></span>
<br />
<div dir="ltr" style="line-height: 1.15; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: transparent; color: black; font-family: Arial; font-size: 15px; font-style: normal; font-variant: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Так что до встречи node.js!</span></div>Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com1tag:blogger.com,1999:blog-4638829957798578745.post-91514239198770991602013-07-08T18:03:00.003+04:002013-07-16T11:15:07.413+04:00Обновление версии sqlite для python под windowsВ поставке python 2.7 идет старая версия библиотеки sqlite, которая мягко говоря тормозит.<br />
<div>
А в интернетах очень мало информации по поводу обновления этой библиотеки под Windows.</div>
<div>
Сегодня я убил на это пару часов и спешу поделиться решением.</div>
<div>
<br /></div>
<div>
Самый короткий путь:</div>
<div>
<br /></div>
<div>
1. Скачиваем с офсайта Sqlite последнюю версию DLL (например, <a href="http://sqlite.org/2013/sqlite-dll-win32-x86-3071700.zip">по этой ссылке</a>).</div>
<div>
2. Копируем с заменой из скачанного архива файлик sqlite.dll в C:\Python27\DLLs (ну или туда где у вас питон установлен).</div>
<div>
<br /></div>
<div>
Далее, проверяем:</div>
<div>
<script src="https://gist.github.com/kidig/6006474.js"></script>
</div>
<div>
И вуаля!</div>
<div>
<br /></div>
<div>
<br /></div>
P.S. - если используете pysqlite2, то либо придется скомпилировать заново, либо заменить содержимое файла <b><span style="font-family: Courier New, Courier, monospace;">pysqlite2.py</span></b> на строчку: <span style="font-family: Courier New, Courier, monospace;">from sqlite3 import *</span>Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-10606687869649798212013-06-28T10:37:00.001+04:002013-06-28T10:41:50.143+04:00Плацкарт Москва-ПитерХех, когда ж я последний раз ехал в плацкартном? Лет восемь назад чтоли. А ничего ведь и не поменялось. :)<div><br></div><div>Итак, взяли мы супер-эконом за 1300р. на боковушках в Питер. </div><div><br></div><div>А тем временем в поездах своя атмосфера и зрелое население активно общается между собой на остро-социальные темы. Ну типа, "севфлот одни карыта", "работы нет", "Путин-$уй" и т.п. Короче, некий такой квартирничек на выезде. </div><div><br></div><div>Между тем молодежи тоже не мало и все стандартно уткнулись в свои гаджеты и преспокойно едут к пункту назначения. Как, собственно и я!</div><div><br></div><div>И не смотря на это советский быт, ездить так вполне удобно. 7 часов поспишь и ты уже в Питере.</div><div>Правда всегда кто-то храпит, кто-то сопит, кто-то и пердит. Но это всё так, мелочи :)</div><div><br></div><div><br></div><div>На сём - спокойной всем ночи!</div><div><br></div><div><br></div><div><br></div><div><br></div>Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-44562150022642081272013-04-28T10:38:00.005+04:002013-04-28T10:38:51.617+04:00ретро про phpСмотрю на предыдущий пост (первый и единственный)... млин, как давно это было)<br />
С той поры уже забыл про ZF и на PHP под коммерческий проект писал в последний раз около 3 лет назад.<br />
Забыл я этот язык? Ага, щас :)<br />
<br />
Но побывав недавно на одном собесе, понял, что после версии 5.3 вышло много чего интересного, о котором я не знаю. Ну точней теперь знаю, но не пользовался (а это считай, что не умею применять и всё такое).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://agapoff.name/wp-content/uploads/2010/02/Two_fast_two_furious_ver5.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="http://agapoff.name/wp-content/uploads/2010/02/Two_fast_two_furious_ver5.jpg" /></a></div>
Перечитывая офдоки, понял, что направленность на веб сохранилась, что мне понравилось. Однако, после опыта разработки на Perl/Python, мне кажется, что производительности в нём (в php), к сожалению не добавилось. Для высоконагруженности также придётся выдумывать какие-нибудь обходные пути.<br />
<br />
<br />
Понравились некоторые новые (для меня) фреймворки, например <a href="https://github.com/bcosca/fatfree">Fat-Free</a> и <a href="http://laravel.com/">Lavarel</a>.<br />
<br />
<br />
Опять же, говоря о самом языке, теперь много возражений. Хотя это всё же идеология, и надо уважать). Допустим, объектная модель с всякими там public/private/static словечками. Я прекрасно понимаю, для чего всё это нужно. Но когда меня пытаются подловить на этих моментах, с укором, что это крайне необходимо для работы приложения... Бред, ребята!<br />
Это как некрашенный бампер у авто - на скорость и удобство управления не влияет.<br />
<br />
Да, для идеально правильной архитектуры системы - это не айс. Но я вас умоляю, идеального ничего нет. Ибо, с одной стороны вы круто сделали "архитектуру", а выкладываете код на продакшн через svn up. Идеально, да?)<br />
<br />
<br />
Резюмирую - я не потерял интереса к PHP, как меня в этом не разуверяли :) Возможно пригляжусь к нему более внимательно и чего-нибудь напишу. Но если буду строить высонагруженный server-side рассмотрю сначала любые другие решения.<br />
<br />
<b>Для справки</b>: под "высоконагруженным" проектом я понимаю нагрузки на backend от 1К запросов в секунду.Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com0tag:blogger.com,1999:blog-4638829957798578745.post-77576128705100523922009-12-20T17:02:00.000+03:002009-12-20T17:10:26.382+03:00Shit первыйНастроение ни к черту, очень надо доделать один проект до завтра, и чую сидеть мне до утра. Что особо не радует :(<br /><br />А что особо не радует, так это то, что в проекте на Zend Framework у меня вложенность классов достигает 8-ми уровней.<br />По сути можно сделать и меньше, но если четко следовать инструкциям зенда, то получается такая невз... нехорошая вложенность.<br />От ошибок меня спасает только автодополнения в Eclipse. Сами посудите, набирать такое:<br /><span style="font-size:85%;"><span style="font-family: courier new;">$class = new Convertor_Element_Moodle_Backup_Course_Question_Type_Multichoice_Answer();</span></span><br /><br />каждый раз вручную, это фак!<br /><br />Единственные плюсы в такой структуре вижу только в её возможной расширяемости.Anonymoushttp://www.blogger.com/profile/03738587664378545784noreply@blogger.com1