| OpenSSL in Debian |
[May. 18th, 2008|11:48 am] |
Это покруче целования дуба будет, однако. Наверное, по эпохальности, это войдет в один ряд с priority inversion на pathfinder-e, и длинными зимними ночами программисты будут пугать своих детей этим багом.
|
|
|
| Fit&Eat |
[Apr. 29th, 2008|04:28 pm] |
Продолжаем разговор. Уже готовы, в базовом виде, сбор статистик и замеров, и кардио-тренировки (кроме небольшого рефакторинга, который намечен на сегодняшний вечер, после чего можно будет строить графики всевозможных статистик, связанных с кардио). Сегодня я перешел на использование этих двух аппликух вместо того, чем пользовался раньше (caloriecount.about.com для слежения за весом, и Google Spreadsheets для кардио), что облегчается своевременно написанными импортом/экспортом. Следующий пункт - силовые тренировки. Забацаю их, потом свяжу это все воедино - и закину на сервер, чтобы можно было начинать с этим играться. Потом займусь самым тяжелым - питанием. Никто не знает, случаем, где взять израильскую и российскую базу данных продуктов, аналогичную американской? |
|
|
| Fiteat |
[Apr. 21st, 2008|02:23 pm] |
Потихоньку продолжаю стругать сайтег для слежения за кормежкой и качанием. Завел ему гугль проджект:
http://code.google.com/p/fiteat/
Делаю это (стругаю, то есть) исключительно по двум причинам: во-первых, чтобы была аппликуха, которая идеально подходит именно под мои требования, во-вторых, чтобы изучить еще одну технологию (всерьез веб-программиногом не занимался с 96 года). Потому и делаю, несмотря на кучу уже имеющихся аналогичных сайтов. Кстати, на том же гугль коде поиск на фитнес выдает штук 10 аналогичных проектов (все, впрочем, замороженные).
В общем, если есть идеи, что должен включать в себя такой сайт - пишите письма комменты.
|
|
|
| Дифирамбы |
[Apr. 16th, 2008|01:53 pm] |
Чем больше пишу на Джанго, тем больше кайфую. Вчера сделал солидный кусок своей аппликации, стерев пару сотен строчек кода, и написав вместо них примерно 10 других строчек. Очень хорошо продуманная система, далекая от идеала, но легко расширяемая до оного - потому как с самого начала правильно думали. |
|
|
| Django |
[Apr. 15th, 2008|09:42 am] |
Скажите, а есть ли среди читающих этот журнал спецы по Джанго? То есть, люди, которые его действительно хорошо знают? Хотел бы пару вопросов задать. |
|
|
| Non-premature optimization |
[Apr. 11th, 2008|07:42 pm] |
А вы говорите - зачем эта гонка за миллисекундами. А вот что мне пишет 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.
Так что придется заняться ею, оптимизацией. Вообще-то говоря, это, ребята, просто маразм. Ну, то есть, квота должна быть, конечно, но не такая убогая...
|
|
|
| GAE |
[Apr. 10th, 2008|05:06 pm] |
Все-таки получил доступ в Google App Engine (спасибо доброму инсайдеру :)).
Забавная штука. В теории это работает так:
- Скачиваешь SDK
- Быстренько перегоняешь под него свою аппликацию (SDK включает в себя тестовый сервер)
- Загоняешь на сервер
- Наслаждаешься следами трудов своих
На деле, увы, все не так просто. GAE поддерживает два уеб-фреймворка: некий свой, называется WebApp - и Django (речь пока что идет исключительно о питоне, но планируют добавлять и другие среды выполнения). Но это только на словах Django поддерживается. На деле же, чтобы готовая аппликация заработала в GAE, ее надо подвергнуть довольно значительной переработке. В частности, некоторые APIs не работают, вместо них, зачем-то, гугль дает свои, с несколько урезанной функциональностью (например, urllib2 не работает, вместо него есть некий странный fetchurl, в котором, например, нет authentication, и редайректы он тоже, например, не отрабатывает). Ну и кроме того пункт №4 не совсем работает: моя аппликация, работавшая с тестовым сервером, после загрузки на настоящий не сработала, а почему - я еще не понял. В общем, сыровато как-то, но потенцияль есть. По условиям беты, можно создать три аппликации, чем я с удовольствием и займусь - идей хватает :).
В заключение не могу не пропеарить еще раз конкурс в coding4fun_ru (сорри, asbb :)). Народ там прямо-таки жжот, и борьба идет за десятые доли секунды (под конец и до сотых дойдет, чую). Я там уже плетусь в хвосте, и подумываю о сходе с дистанции со своими несчастными 3.3s on 2GHz.
|
|
|
| Конкурс |
[Apr. 9th, 2008|11:09 pm] |
А вот на этом конкурсе на данный момент уже представлены следующие языки:
C++ Perl Python PHP Haskell LISP Scala (первый раз слышу про такой)
Кто больше?
|
|
|
| Первое настоящее задание |
[Apr. 8th, 2008|02:56 pm] |
в coding4fun_ru: здесь.
Я свое уже написал. Работает на питоне, предложенный data set решает за чуть меньше 14 секунд на 2GHz CPU. На плюсах, говорит zhuzh, есть решение за 3 секунды. |
|
|
| Задачка про Юникс и Си |
[Mar. 8th, 2008|11:47 pm] |
Вот задача про Юникс и Си, её придумал пользователь avysk, а я слегка модифицировал.
Написать на Си коротенькую программу, которая при вызове через конвейер выдаёт фразу "Hello, world!\n", а при вызове с командной строки выдаёт ту же строку, но не один, а два раза. Короче, вот так:
$ my_prog Hello, world! Hello, world! $ my_prog | cat - Hello, world! $
Конечно есть функция isatty, с помощью которой можно просто проверить, запущена ли программа с терминала, вот так: if(isatty(1))...else...; Поэтому дополнительное условие: этой функцией (или подобными ей) пользоваться нельзя.
И вот что интересно - пользователь ilya_dogolazky запостил очень похожую задачу. Похожую, да решающуюся несколько иначе, хоть и непросто найти отличия в условии.
|
|
|
| С++ |
[Feb. 27th, 2008|10:32 am] |
С++ - это мистический культ с бесконечным числом кругов посвящения. Вот сегодня, например, мы выяснили, что при определении у класса конструктора, компилятор все равно генерирует дефолтный копи-констрактор. |
|
|
| Real World Haskell - beta |
[Jan. 23rd, 2008|05:48 pm] |
Интересная модель публикации книги - с выкладыванием на сеть, и с онлайновым сбором комментариев. И тема интересная: книг про Хаскель - раз-два и обчелся, и во всех них чего-то не хватает.
ссылка от <lj user=314159265>
|
|
|
| Online parsing |
[Mar. 25th, 2007|03:15 pm] |
Мне всегда казалось, что сабж - это когда парсер в состоянии принимать частичные токены, и хранит в себе состояние, что позволяет ему получать парсируемый текст любыми порциями, и все равно парсить его правильно. По идее, концепция простая, как мычание, и (учитывая количество performance oriented серверов на сети) достаточно популярная. Однако поиск на online parsing дроуз, как говорится, блэнкс. Кто-нибудь может ткнуть меня в соответствующую информацию? Ну например, ткнуть меня в клон yacc, который поддерживает этот самый online parsing? А?
Update: Похоже, это называется push parser. Например: http://www.unetz.com/schaepe/BISON/bison.html
К сожалению, GPL мне не подходит. GPL - это вообще удивительно ущербное изобретение. Ущербнее которого в мире программирования - только ранние версии Майкрософт Виндоуз. |
|
|
| Приятно познакомиться, |
[Mar. 14th, 2007|04:02 pm] |
Я - идиот. Поручили тут мне ускорить компиляцию. Ну, ускорить - так ускорить. Делаю так, чтобы компиляционные скрипты запускались с -j (т.е. чтобы компиляция параллельно шла на всех процах) - не работает. А надо отметить, что у нас необоснованно сложная система компиляции. С автомейками, автокомфами и прочей дребеденью. Короче, с -j - не компилируется. Хоть ты тресни. А поди разбери, в чем там дело, со всеми этими автото и автосё. Очень долго голову ломал, по форумам ходил, в итоге сам нашел. Я ж говорю, идиот.
Так дело-то в чем? Скрипт, который вызывает мейк, по ходу дела составляет для мейка список таргетов. Потом запускает. Получается что-то такое:
make clean all install
Покуда не было параллельной компиляции, все шло хорошо. Но теперь мейк запускает clean и all одновременно - и all успевает что-то построить до того, как clean успевает все, что надо, стереть. В итоге стирает то, что только что было построено. Классический рейс. Жаль убитого времени. |
|
|
| Вуглускр |
[Feb. 24th, 2006|09:04 pm] |
Following our idea of a Haskell category H, we can define an endofunctor F : H ! H
Долго (вру, конечно: не очень долго) пытался понять, что такое unctor, и при чем тут его конец.
Кстати, один мой бывший коллега называет сабжем некую програмку, которая сидит в task tray и периодически напоминает о себе поп-апами. |
|
|
| Монада моя (программистское) |
[Feb. 8th, 2006|01:18 pm] |
Понял, наконец, вслед за cmm, чем мне не нравится монада списка. Дело в том, что везде, где рассказывают про монады, прежде всего говорят, зачем они, монады, нужны. Зачем? Для действий с побочным эффектом внутри функционального кода. Так вот для этих самых действий и ввели монаду - которая всего лишь класс определенного вида (с функциями return, >>=, fail, отвечающими определенным законам). И вдруг оказывается, что список тоже может быть представлен в виде инстанса этого класа. Вот и получается, что список - монада (хотя, понятное дело, никакими побочными эффектами тут и не пахнет). То есть, я понимаю, конечно, что поставил порядок с ног на голову, но это специально. |
|
|
| Проклятие программиста |
[Jan. 24th, 2006|05:56 pm] |
<angry rant> Да ниспошлет Всевышний кару на головы безумцев, которые считают, что программирование на языках с побочными эффектами в целом (и арифметикой указателей - в частности) - это благое дело, полезное для бизнеса. Да будут их карманы так же дырявы, как их код, и да протекает крыша у них над головой так, как течет память у их продуктов. </angry rant>
Что же касается тех несчастных, которые делают ни на чем не основанные предположения о значении передаваемых им аргументов - то на них мне даже проклятия жаль. |
|
|