воскресенье, 12 февраля 2012 г.

Сказ про то как Ходжа Нассредин время добывал.

Привет.


Как некоторые знают, в последнее время у меня начались сильные проблемы со временем. В частности, его перестало хватать на написание личных проектов. Тем не менее, продолжая писать код, стал замечать довольно сильные изменения в стиле работы и моем отношении к ней. Итак для примера берем проект, который в данный момент переживает свою 2ю полноценную инкарнацию и наверное 5ю минорную. Суть проекта все таже, изменялись только технологии и в последнее время подход к делу.

Как же происходил процесс работы когда я имел достаточно времени?

Постоянно открыт твиттер(до этого были rss фиды). Как следствие переодически открывались статьи и начиналось все что угодно но только не программирование. Я постоянно жил под влиянием серебрянных пуль, прочитаешь статью и чувствуешь, что отстаешь и надо бежать догонять.Проект как правило начинался с долгого выбора на чем же писать: рельсы рельсы, шпалы, шпалы, джанги, питоны, хаскели, ерланги, го, ноде жс и т.д. и т.п. Составлялись майнд мапы и делался тщательный анализ как правило заключавшийся в том чтобы найти причины, почему я должен использовать очередную серебрянную пулю а ля хаскель. И так по каждому пункту от фреймворков до бд.За этим ачинался процесс работы над проектом. Все шло строго сверху-вниз и выливалось в нехилый оверенжениринг. То мне надо ddd, то dddd, то акторы, то mq, то еще что. Архитектура тщательно обдумывалась, отвергалась и
изменялась. Далее обычно поднимался сервер и настраивался енвайронмент типа для CI и итеративного программирования. Создавался проектана битбакете или ассембле. Выбиралась IDE или очередной крутой текстовый редактор. Наконец мы дошли до разработки. Как правило если проект на c# то создавалась гигантская доменая модель и мильон интерфейсов и т.п. Если же проект на каком-нибудь хаскель или го, nо начиналась ебата по поиску библиотек или написанию своих для инфраструктуры. Тратилось гигантское время на изучение самих текстовых редакторов, языков и т.п. Все это безусловно было полезно с точки зрения образования, но бесполезно с точки зрения достижения целей. В силу того, что все эти действия, описанные выше, съедали кучу времени и на написания кода оставалось черезвычайно мало времени, поэтому сам код писался, через поиск в гугле и копи пастой. Когда, что-то не работало то пытался найти быстрый воркараунд в простонародье именуемый костылем. Каждая проблема сопровождалась легкой депрессией, ведь как правило код писался в свободное от работы время и по сути отнимал отдых. Каждая задержка была серпом по яицам. В конце концов я полностю терял оптимизм и  интерес.

А теперь рассмотрим текущую ситуацию. В данный момент, у меня с трудом набирается 15 минут свободного времени, по вечерам, на программирование. Первое отличие: я вообще перестал читать информацию из интернет посвященную программированию. Никакого пуша, только поиск по конкретным вопросам. Второе: я перестал отвлекаться, так как нет особого смысла садиться программирвоать 15 минут и параллельно что-либо читать. Вместо этого, я или серфю или пишу код. То есть, все стало раздельно, никакого смешения. Cтал прагматичен в выборе тулов и языков. В данном проекте, я думал над выбором 5 минут.
Изначальные требования: интерактивность разработки (устал я от компиляций и т.п.) простота, большой код бейс на интеграцию с сайтами рунета аля мейл ру, вк, платежные системы, наличие библиотек для обработки текста. Учитывались и личные предпочтения. Под эти критерии подошел только питон с джангой. Да да, я все его ругаю, но раз за разом возвращаюсь к нему.

Главное изменение в программировании это разработка снизу вверх. Я теперь стартуя проект, пишу его в IDLE без всяких редакторов и т.п. Начинаю с инфраструктуры, то есть в моем случае работа с различными внешними апи. Я с консоли все пробую, как получилось
пишу простенький АПИ сохраняю в файл, кидаю в дропбокс. Уже на втором этапе, когда я дохожу до сайта, я беру тектовый редактор, git и начинаю уже интеграцию всего этого кода в общую структуру. Раньше я пытался быстро сделать рабочий прототип и ждать когда на меня посыпятся деньги, то теперь я вообще не читаю стартап шит, и меееедлееенно делаю проект который возможно даже не имеет перспектив. Но зато делаю его хорошо и с наслжадением самим процессом создания. Депрессия исчезла.

Можно писать еще долго, но я ограничусь краткой суммой: разрабтка снизу вверх, неторопливость, прагматичность, не

смешивание различных режимов работы.

понедельник, 30 мая 2011 г.

Moss site creation error: Provisioning did not succeed. Failed to create the 'Workflow Tasks' library in CreateApprovalTaskList

Moss site creation error: Provisioning did not succeed. Failed to create the 'Workflow Tasks' library in CreateApprovalTaskList

Solution: check that owstimer service is running and has enought rights.

четверг, 24 марта 2011 г.

Как победить все грабли запуска Django 1.3 на windows 7 x64

1. Ставим python 2.7

2. Запускаем regedit как администратор.

3. Копируем все

из HKEY_LOCAL_MACHINE\SOFTWARE\Python

в HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Python

4. Удаляем все разделы содержащее кириллические символы в названии из HKEY_CLASSES_ROOT\MIME\Database\Content Type

5. Устанавливаем PIL-1.1.7.win-amd64-py2.7.‌exe отсюда http://www.lfd.uci.edu/~gohlke/pythonlibs/

6/ Устанавливаем джангу.

оргазмируем

вторник, 8 февраля 2011 г.

cryptocipher install fix

cabal install cryptocipher
Resolving dependencies...
Configuring cryptocipher-0.2.3...
Preprocessing library cryptocipher-0.2.3...
Preprocessing executables for cryptocipher-0.2.3...
Building cryptocipher-0.2.3...
[1 of 8] Compiling Number.Serialize ( Number/Serialize.hs, dist/build/Number/Serialize.o )
[2 of 8] Compiling Number.Generate  ( Number/Generate.hs, dist/build/Number/Generate.o )
[3 of 8] Compiling Number.ModArithmetic ( Number/ModArithmetic.hs, dist/build/Number/ModArithmetic.o )
[4 of 8] Compiling Crypto.Cipher.DSA ( Crypto/Cipher/DSA.hs, dist/build/Crypto/Cipher/DSA.o )
[5 of 8] Compiling Crypto.Cipher.RSA ( Crypto/Cipher/RSA.hs, dist/build/Crypto/Cipher/RSA.o )

Crypto/Cipher/RSA.hs:103:35:
    No instance for (Control.Monad.Error.Class.Error Error)
      arising from a use of `>>=' at Crypto/Cipher/RSA.hs:103:35-56
    Possible fix:
      add an instance declaration for
      (Control.Monad.Error.Class.Error Error)
    In the expression: dp pk c >>= unpadPKCS1
    In the definition of `decrypt':
        decrypt pk c
                  | B.length c /= (private_sz pk) = Left MessageSizeIncorrect
                  | otherwise = dp pk c >>= unpadPKCS1
                  where
                      dp = if private_p pk /= 0 && private_q pk /= 0 then
                               dpFast
                           else
                               dpSlow
cabal: Error: some packages failed to install:
cryptocipher-0.2.3 failed during the building phase. The exception was:
ExitFailure 1

FIX: cabal install mtl

четверг, 20 января 2011 г.

Замена TextMate для Ubuntu в 4 строки

sudo apt-get install gedit-plugins

sudo apt-add-repository ppa:ubuntu-on-rails/ppa

sudo apt-get update

sudo apt-get install gedit-gmate

 

Долгое время пытался найти замену TextMate и использовать для работы vim и emacs но к сожалению так и не смог избавится от мысли что копаюсь в антиквариате. Gedit сейчас выступает моей основной ide. 

Linux.org.ru News

Вебпланета - все новости

CNews - Издание о высоких технологиях