Путешествие дилетанта [entries|archive|friends|userinfo]
Дима Рубинштейн

[ website | My Website ]
[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

OpenSSL in Debian [May. 18th, 2008|11:48 am]
[Tags|]

Это покруче целования дуба будет, однако. Наверное, по эпохальности, это войдет в один ряд с priority inversion на pathfinder-e, и длинными зимними ночами программисты будут пугать своих детей этим багом.
link9 comments|post comment

Fit&Eat [Apr. 29th, 2008|04:28 pm]
[Tags|, , ]

Продолжаем разговор. Уже готовы, в базовом виде, сбор статистик и замеров, и кардио-тренировки (кроме небольшого рефакторинга, который намечен на сегодняшний вечер, после чего можно будет строить графики всевозможных статистик, связанных с кардио). Сегодня я перешел на использование этих двух аппликух вместо того, чем пользовался раньше (caloriecount.about.com для слежения за весом, и Google Spreadsheets для кардио), что облегчается своевременно написанными импортом/экспортом. Следующий пункт - силовые тренировки. Забацаю их, потом свяжу это все воедино - и закину на сервер, чтобы можно было начинать с этим играться. Потом займусь самым тяжелым - питанием. Никто не знает, случаем, где взять израильскую и российскую базу данных продуктов, аналогичную американской?
link6 comments|post comment

Fiteat [Apr. 21st, 2008|02:23 pm]
[Tags|, ]

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

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

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

В общем, если есть идеи, что должен включать в себя такой сайт - пишите письма комменты.
link5 comments|post comment

Дифирамбы [Apr. 16th, 2008|01:53 pm]
[Tags|]

Чем больше пишу на Джанго, тем больше кайфую. Вчера сделал солидный кусок своей аппликации, стерев пару сотен строчек кода, и написав вместо них примерно 10 других строчек. Очень хорошо продуманная система, далекая от идеала, но легко расширяемая до оного - потому как с самого начала правильно думали.
link4 comments|post comment

Django [Apr. 15th, 2008|09:42 am]
[Tags|]

Скажите, а есть ли среди читающих этот журнал спецы по Джанго? То есть, люди, которые его действительно хорошо знают? Хотел бы пару вопросов задать.
link19 comments|post comment

Non-premature optimization [Apr. 11th, 2008|07:42 pm]
[Tags|]

А вы говорите - зачем эта гонка за миллисекундами. А вот что мне пишет 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.

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

link7 comments|post comment

GAE [Apr. 10th, 2008|05:06 pm]
[Tags|]

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

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

В заключение не могу не пропеарить еще раз конкурс в [info]coding4fun_ru (сорри, [info]asbb :)). Народ там прямо-таки жжот, и борьба идет за десятые доли секунды (под конец и до сотых дойдет, чую). Я там уже плетусь в хвосте, и подумываю о сходе с дистанции со своими несчастными 3.3s on 2GHz.
link28 comments|post comment

Конкурс [Apr. 9th, 2008|11:09 pm]
[Tags|]

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

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

Кто больше?
link17 comments|post comment

Первое настоящее задание [Apr. 8th, 2008|02:56 pm]
[Tags|]

в [info]coding4fun_ru: здесь.

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

Задачка про Юникс и Си [Mar. 8th, 2008|11:47 pm]
[Tags|]

Вот задача про Юникс и Си, её придумал пользователь [info]avysk, а я слегка модифицировал.

Написать на Си коротенькую программу, которая при вызове через конвейер выдаёт фразу "Hello, world!\n", а при вызове с командной строки выдаёт ту же строку, но не один, а два раза.
Короче, вот так:

$ my_prog
Hello, world!
Hello, world!
$ my_prog | cat -
Hello, world!
$

Конечно есть функция isatty, с помощью которой можно просто проверить, запущена ли программа с терминала, вот так:
if(isatty(1))...else...;
Поэтому дополнительное условие: этой функцией (или подобными ей) пользоваться нельзя.

И вот что интересно - пользователь [info]ilya_dogolazky запостил очень похожую задачу.
Похожую, да решающуюся несколько иначе, хоть и непросто найти отличия в условии.




link31 comments|post comment

С++ [Feb. 27th, 2008|10:32 am]
[Tags|]

С++ - это мистический культ с бесконечным числом кругов посвящения. Вот сегодня, например, мы выяснили, что при определении у класса конструктора, компилятор все равно генерирует дефолтный копи-констрактор.
link18 comments|post comment

Real World Haskell - beta [Jan. 23rd, 2008|05:48 pm]
[Tags|, ]

Интересная модель публикации книги - с выкладыванием на сеть, и с онлайновым сбором комментариев. И тема интересная: книг про Хаскель - раз-два и обчелся, и во всех них чего-то не хватает.

ссылка от <lj user=314159265>
link1 comment|post comment

Online parsing [Mar. 25th, 2007|03:15 pm]
[Tags|, ]

Мне всегда казалось, что сабж - это когда парсер в состоянии принимать частичные токены, и хранит в себе состояние, что позволяет ему получать парсируемый текст любыми порциями, и все равно парсить его правильно. По идее, концепция простая, как мычание, и (учитывая количество performance oriented серверов на сети) достаточно популярная. Однако поиск на online parsing дроуз, как говорится, блэнкс. Кто-нибудь может ткнуть меня в соответствующую информацию? Ну например, ткнуть меня в клон yacc, который поддерживает этот самый online parsing? А?

Update: Похоже, это называется push parser. Например: http://www.unetz.com/schaepe/BISON/bison.html

К сожалению, GPL мне не подходит. GPL - это вообще удивительно ущербное изобретение. Ущербнее которого в мире программирования - только ранние версии Майкрософт Виндоуз.
link16 comments|post comment

Приятно познакомиться, [Mar. 14th, 2007|04:02 pm]
[Tags|, ]

Я - идиот. Поручили тут мне ускорить компиляцию. Ну, ускорить - так ускорить. Делаю так, чтобы компиляционные скрипты запускались с -j (т.е. чтобы компиляция параллельно шла на всех процах) - не работает. А надо отметить, что у нас необоснованно сложная система компиляции. С автомейками, автокомфами и прочей дребеденью. Короче, с -j - не компилируется. Хоть ты тресни. А поди разбери, в чем там дело, со всеми этими автото и автосё. Очень долго голову ломал, по форумам ходил, в итоге сам нашел. Я ж говорю, идиот.

Так дело-то в чем? Скрипт, который вызывает мейк, по ходу дела составляет для мейка список таргетов. Потом запускает. Получается что-то такое:

make clean all install

Покуда не было параллельной компиляции, все шло хорошо. Но теперь мейк запускает clean и all одновременно - и all успевает что-то построить до того, как clean успевает все, что надо, стереть. В итоге стирает то, что только что было построено. Классический рейс. Жаль убитого времени.
link29 comments|post comment

Mother of all bugs [Feb. 28th, 2007|11:05 am]
[Tags|, ]
[mood | apathetic]

Интересно только программистам )
link58 comments|post comment

О ритуалах в нашей жизни [May. 11th, 2006|11:06 am]
[Tags|, ]
[Current Location |Tel-Aviv, Israel]
[music |Corelli, Concerti Grossi]

Так вот, он в какой-то момент стал общаться с пользователями, уже довольно давно работающими с его продуктом. И его поразило, что у них выработалась целая система ритуалов и табу. Они точно знали, что A можно делать только после B, а вот после C нельзя делать ничего, пока не проведено "очистительное" действие D.

Там в коментах тоже много всего чудесного.
link15 comments|post comment

No comments [Apr. 17th, 2006|12:16 pm]
[Tags|]

Go ahead and run it )
link37 comments|post comment

Вуглускр [Feb. 24th, 2006|09:04 pm]
[Tags|, ]

Following our idea of a Haskell category H, we can define an endofunctor F : H ! H

Долго (вру, конечно: не очень долго) пытался понять, что такое unctor, и при чем тут его конец.

Кстати, один мой бывший коллега называет сабжем некую програмку, которая сидит в task tray и периодически напоминает о себе поп-апами.
link8 comments|post comment

Монада моя (программистское) [Feb. 8th, 2006|01:18 pm]
[Tags|]

Понял, наконец, вслед за [info]cmm, чем мне не нравится монада списка. Дело в том, что везде, где рассказывают про монады, прежде всего говорят, зачем они, монады, нужны. Зачем? Для действий с побочным эффектом внутри функционального кода. Так вот для этих самых действий и ввели монаду - которая всего лишь класс определенного вида (с функциями return, >>=, fail, отвечающими определенным законам). И вдруг оказывается, что список тоже может быть представлен в виде инстанса этого класа. Вот и получается, что список - монада (хотя, понятное дело, никакими побочными эффектами тут и не пахнет). То есть, я понимаю, конечно, что поставил порядок с ног на голову, но это специально.
link10 comments|post comment

Проклятие программиста [Jan. 24th, 2006|05:56 pm]
[Tags|, , ]
[mood | aggravated]

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

Что же касается тех несчастных, которые делают ни на чем не основанные предположения о значении передаваемых им аргументов - то на них мне даже проклятия жаль.
link6 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]