dimrub: (Default)
2009-03-08 02:04 pm
Entry tags:

Вы думаете, что вы знаете С++?

Нет, вы не знаете С++. Вы знаете С++ с хорошей стороны, но вы еще узнаете С++ с плохой стороны!

Я в последние годы как-то остерегаюсь высказывать категоричные мнения по таким темам, как будущее языков программирования, но мне кажется, что будет интересно.
dimrub: (Default)
2009-03-01 08:29 pm
Entry tags:

10 papers every programmer needs to read

at least twice. Очень интересный список, судя по аннотациям. Я оттуда читал только №5, но теперь собираюсь и остальные прочитать.
dimrub: (Default)
2008-12-29 12:06 pm
Entry tags:

Refactoring vs. rewriting

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

1. Либо потратить кучу времени и сил на реставрацию: понаписать тестов, сделать рефакторинг, вернуть код к жизни.
2. Либо выбросить все, и написать, с учетом имеющегося опыта, заново.

Очевидно, что начальство двумя руками за 1-й вариант: переписывание - это риск, начальство рисков не любит. Очевидно также, что будут ситуации, когда будет выбран первый вариант, а будут - когда второй. Чем бы вы руководствовались при решении о том, какой вариант выбрать?
dimrub: (Default)
2008-12-28 08:51 pm
Entry tags:

Программистские книжки

Читаю по наводке [livejournal.com profile] object уже третью книгу подряд. Вот они в порядке прочтения:

1. Agile software development
2. Test driven development by example
3. Refactoring (это та, которую сейчас читаю)

Мне, такому всему из себя "матерому зубру", должно быть немного неловко, но эти книги были для меня настоящим eye opener-ом. В отличие от традиционных книг по программированию, которые либо описывают конкретную технологию, либо говорят о дизайне в идеальном мире (см., скажем, Буч либо гэнг оф фор), эти книги говорят о том, как решать проблемы, с которыми большинство программистов вынуждены сталкиваться на практике в течении 90% своей профессиональной деятельности (время, потраченное на заседания, перекуры и тренинги - не в счет). Например - как быть, когда приходится иметь дело с кодом, написанным годы назад неизвестно кем, а потом поддерживающимся еще кучей народу, мало кто из которых до конца понимал, как работает код, который он изменяет. Как вести себя в условиях постоянно меняющихся требований, в условиях, когда эти новые требования тянут код в направлении, о котором не думали при певоначальном дизайне. И так далее. Очень рекомендую всем, кто еще не (и кто не дошел до всего своим умом).
dimrub: (Default)
2008-12-23 02:35 pm
Entry tags:

Линки

на технические темы, накопилось:

  1. The C10K problem (как достичь 10К одновременных соединений на стандартном линуксе)
  2. Debugging Makefiles
  3. Linux kernel networking flows
  4. Google's Python based build system
dimrub: (Default)
2008-10-23 12:01 pm
Entry tags:

gotchas

Скорее для собственной памяти, но и для нахождения в поисковиках решений на редкие компьютерные проблемы, замутил сообщество [livejournal.com profile] gotchas. Что-то типа упомянавшегося здесь stackoverflow.com небезызвестного Й. Спольского, но более камерное. Если вдруг кому интересно - прошу.
dimrub: (Default)
2008-10-07 05:39 pm
Entry tags:

Программы-полиглоты

Программы, которые компилируются (и работают) на разных языках.

(случайно обратил внимание, что один из авторов - мой бывший коллега).
dimrub: (Default)
2008-09-23 05:50 pm
Entry tags:

Neat

programming trick (thanks to [livejournal.com profile] ilya_dogolazky for inspiration for looking it up).
dimrub: (Default)
2008-08-05 11:15 pm
Entry tags:

Кстати,

к вопросу о старинных компьютерных технологиях (по ссылке <lj user=stas>). Все, конечно, знают анекдот про программиста на Коболе, замороженного на тысячу лет...
dimrub: (Default)
2008-05-18 11:48 am
Entry tags:

OpenSSL in Debian

Это покруче целования дуба будет, однако. Наверное, по эпохальности, это войдет в один ряд с priority inversion на pathfinder-e, и длинными зимними ночами программисты будут пугать своих детей этим багом.
dimrub: (Default)
2008-04-29 04:28 pm

Fit&Eat

Продолжаем разговор. Уже готовы, в базовом виде, сбор статистик и замеров, и кардио-тренировки (кроме небольшого рефакторинга, который намечен на сегодняшний вечер, после чего можно будет строить графики всевозможных статистик, связанных с кардио). Сегодня я перешел на использование этих двух аппликух вместо того, чем пользовался раньше (caloriecount.about.com для слежения за весом, и Google Spreadsheets для кардио), что облегчается своевременно написанными импортом/экспортом. Следующий пункт - силовые тренировки. Забацаю их, потом свяжу это все воедино - и закину на сервер, чтобы можно было начинать с этим играться. Потом займусь самым тяжелым - питанием. Никто не знает, случаем, где взять израильскую и российскую базу данных продуктов, аналогичную американской?
dimrub: (Default)
2008-04-21 02:23 pm

Fiteat

Потихоньку продолжаю стругать сайтег для слежения за кормежкой и качанием. Завел ему гугль проджект:

http://code.google.com/p/fiteat/

Делаю это (стругаю, то есть) исключительно по двум причинам: во-первых, чтобы была аппликуха, которая идеально подходит именно под мои требования, во-вторых, чтобы изучить еще одну технологию (всерьез веб-программиногом не занимался с 96 года). Потому и делаю, несмотря на кучу уже имеющихся аналогичных сайтов. Кстати, на том же гугль коде поиск на фитнес выдает штук 10 аналогичных проектов (все, впрочем, замороженные).

В общем, если есть идеи, что должен включать в себя такой сайт - пишите письма комменты.
dimrub: (Default)
2008-04-16 01:53 pm
Entry tags:

Дифирамбы

Чем больше пишу на Джанго, тем больше кайфую. Вчера сделал солидный кусок своей аппликации, стерев пару сотен строчек кода, и написав вместо них примерно 10 других строчек. Очень хорошо продуманная система, далекая от идеала, но легко расширяемая до оного - потому как с самого начала правильно думали.
dimrub: (Default)
2008-04-15 09:42 am
Entry tags:

Django

Скажите, а есть ли среди читающих этот журнал спецы по Джанго? То есть, люди, которые его действительно хорошо знают? Хотел бы пару вопросов задать.
dimrub: (Default)
2008-04-11 07:42 pm
Entry tags:

Non-premature optimization

А вы говорите - зачем эта гонка за миллисекундами. А вот что мне пишет Google Apps Engine в ответ на простенький запрос, который генерирует некий файл, одновременно обновляя базу данных (ничего сверхестественного, ей богу, каких-то 400 записей):

This request used a high amount of CPU, and was roughly 1.4 times 
over the average request CPU limit. High CPU requests have a small
quota, and if you exceed this quota, your app will be temporarily disabled.

Так что придется заняться ею, оптимизацией. Вообще-то говоря, это,
ребята, просто маразм. Ну, то есть, квота должна быть, конечно, но не такая
убогая...

dimrub: (Default)
2008-04-10 05:06 pm
Entry tags:

GAE

Все-таки получил доступ в Google App Engine (спасибо доброму инсайдеру :)).

Забавная штука. В теории это работает так:
  1. Скачиваешь SDK
  2. Быстренько перегоняешь под него свою аппликацию (SDK включает в себя тестовый сервер)
  3. Загоняешь на сервер
  4. Наслаждаешься следами трудов своих
На деле, увы, все не так просто. GAE поддерживает два уеб-фреймворка: некий свой, называется WebApp - и Django (речь пока что идет исключительно о питоне, но планируют добавлять и другие среды выполнения). Но это только на словах Django поддерживается. На деле же, чтобы готовая аппликация заработала в GAE, ее надо подвергнуть довольно значительной переработке. В частности, некоторые APIs не работают, вместо них, зачем-то, гугль дает свои, с несколько урезанной функциональностью (например, urllib2 не работает, вместо него есть некий странный fetchurl, в котором, например, нет authentication, и редайректы он тоже, например, не отрабатывает). Ну и кроме того пункт №4 не совсем работает: моя аппликация, работавшая с тестовым сервером, после загрузки на настоящий не сработала, а почему - я еще не понял. В общем, сыровато как-то, но потенцияль есть. По условиям беты, можно создать три аппликации, чем я с удовольствием и займусь - идей хватает :).

В заключение не могу не пропеарить еще раз конкурс в [livejournal.com profile] coding4fun_ru (сорри, [livejournal.com profile] asbb :)). Народ там прямо-таки жжот, и борьба идет за десятые доли секунды (под конец и до сотых дойдет, чую). Я там уже плетусь в хвосте, и подумываю о сходе с дистанции со своими несчастными 3.3s on 2GHz.
dimrub: (Default)
2008-04-09 11:09 pm
Entry tags:

Конкурс

А вот на этом конкурсе на данный момент уже представлены следующие языки:

C++
Perl
Python
PHP
Haskell
LISP
Scala (первый раз слышу про такой)

Кто больше?
dimrub: (Default)
2008-04-08 02:56 pm
Entry tags:

Первое настоящее задание

в [livejournal.com profile] coding4fun_ru: здесь.

Я свое уже написал. Работает на питоне, предложенный data set решает за чуть меньше 14 секунд на 2GHz CPU. На плюсах, говорит [livejournal.com profile] zhuzh, есть решение за 3 секунды.