Val Petruchek

подписывайтесь, а то хуже будет!  

ПОДПИСЫВАЙТЕСЬ НА RSS

Онлайн-правительство

28.09.07 @ 16:41 — Politics, Creative

Пока мы тут пешком ходим на выборы, в Новой Зеландии народ составляет законопроект о полиции (Policing Act), используя сайт на wiki-движке.

И я не удивлён, что именно новозеландцы выбрали технологию wiki для создания прототипа онлайн-правительства будущего. Для слова wiki существует анаграмма — kiwi (hint).

Выборы в Верховную Раду — 2007

30-го сентября вечером начнётся наша прямая трансляция (с сайта ЦВК) распределения мест в украинском парламенте, как в 2006 году.

Синдикация трансляции: rss; трансляция синдикации трансляции в ЖЖ — [info]2006_rss

Тематические кроссворды

28.09.07 @ 03:33 — Creative

Два новых онлайн-кроссворда моего авторства:

В первом все загадки имеют отношение к Живому Журналу; во втором русские слова загаданы путём перевода на английский.

Новые features

18.09.07 @ 18:14 — Creative

На сайте с кроссвордами новые фичи: блог, возможность комментирования (пока только анонимного) и несколько синдикаций вместо одной.

Далі буде.

Монетизация футбола

18.09.07 @ 16:29 — Sport, Football, Creative

Хотите, чтобы игрок под номером 7 вышел на замену? Пришлите SMS с цифрой 7 на номер 333! Игрок, набравший наибольшее число SMS выйдет на замену первым!

Свежие кроссворды

13.09.07 @ 21:49 — Creative

Три новых кроссворда от меня:

Качество кода

16.07.07 @ 02:06 — Programming, Creative

Мне тут в голову пришла неожиданная идея оптимизации кода: убрать на компьютера разработчика функцию copy-paste.
Вопрос: повысится ли качество кода?

Источник: bash.org.ru, удалённая цитата

Ответом на вопрос из эпиграфа будет, по-моему, скорее “да”, чем “нет”. Та или иная ограниченность ресурса (машинного времени), приводит к более эффективному его использованию.

Когда мой учитель информатики работал программистом на большом советском заводе с большими компьютерами, программы для которых писались на перфокартах, скармливаемых компьютерам специально-обученными девочками, у него не было возможности дебаггить программу в реальном времени. Он готовил перфокарты с программой, дожидался своей очереди, отдавал перфокарты с исходниками девочкам и через время получал от них другие перфокарты с результатом работы его программы. Результатами были или искомые данные, или ошибки в том или ином виде. В случае неудачи (представьте, что вы первый раз компилируете программу после того, как она полностью написана — и прикиньте вероятность удачной компиляции) он готовил новые перфокарты и снова ждал своей очереди, чтобы отдать перфокарты девочкам. Чем больше раундов он затрачивал на решение задачи, тем сильнее был нагоняй от начальства. Эти ограничения выработали некоторые навыки компилирования и исполнения программ без компьютера (”в уме” и “на бумажке”).

Когда я учился в школе, у меня не было личного компьютера, машинное время было ограничено уроками информатики в лицее и ИГЗ там же. Компьютерного времени очень не хватало, а программировать хотелось много. Из-за этого очень многие программки писались заранее “на бумажке” (целиком или полностью), а компьютер использовался лишь для ввода, отладки и доводки программы. Иначе (если программировать только тогда, когда оказывался у компьютера) успевалось очень немного — из-за того, что неэффективно расходовалось время. Нехватка машинного времени научила писать программы без компьютера.

Вынужденное программирование без компьютера заставляло больше думать, изменяя стиль программирования: тщательное продумывание алгоритма вместо методичного перебора возможных вариантов решения. При решении алгоритмической задачи всё время есть несколько конкурирующих путей решения задачи. Если у тебя есть компьютер под рукой, то самый простой способ выбрать лучшее решение — это перебровать все способы, которые пришли в голову, и выбрать тот, который лучше всего работает. Это самое простое решение, но оно требует довольно больших затрат компьютерного времени - на ввод и отладку каждого решения с его последующей проверкой. Когда доступа к компьютеру нет, и будет его всего ничего, ты не можешь позволить себе перебирать варианты. Приходится анализировать их в голове (на бумажке) и искать решение “теоретически”.

Самый простой пример: задача — сделать в программе хитрую операцию с большим массивом за наименьшее время. Есть 3-4 способа запрограммировать эту операцию, на первый взгляд все одинаково эффективные. Как будет решать эту задачу глупый программист? Сядет и закодит все решения, посмотрит на скорость работы и выберет правильный. Умный программист прежде чем кодить, оценит каждое из решений в уме, т.е. без компьютера.

Очевидно, что для того, чтобы быть умным программистом, не обязательно быть ограниченным в компьютерном времени. Достаточно выработать в себе привычку не бросаться кодить без предварительного рисования фигнюшек на бумажке. Принудительное ограничение машинного времени вынуждает тебя решать задачу без компьютера, при этом приходится думать. Это ограничение помогает осознать, что в программировании код — вторичен; первично решение задачи (алгоритм, структура данных, правильные подпрограммы и прочее). Свободный доступ к компьютеру развращает программиста — искушение выбрать правильное решение перебровав все варианты велико и часто берёт верх.

Безусловно, некоторые программистские задачи требуют некоторого перебора. Написанное выше относится скорее к алгоритмическим задачам, и решать такие задачи нужно тщательнее.

Возвращаясь к эпиграфу: если запретить разработчику делать copy-paste, то это вынудит его писать правильные (в меру универсальные) подпрограммы, а не плодить код а-ля индус.

Кроссворды онлайн

Реанимировал свою старую онлайн-забаву: кроссворды, которые можно разгадывать прямо в браузере.

Программинг (PHP/JavaScript) пришлось переделать полностью, зато теперь кроссворды работают в IE, FF и Opera. Пока что на сайте выложено всего два кроссворда (1, 2), но уже можно подписаться на обновления (или добавить во френды).

Если найдёте ошибку — смело пишите в комментарии. Спасибо!

P.S. Ещё придумал уникальный и оригинальный домен для проекта, ага.

Определение посещённых вами страниц

Было интересно попробовать, можно ли программно определять, какие страницы посетил пользователь. Оказалось — можно.

Понятное дело, что получить всю history нельзя, но проверить конкретные страницы — можно.

Update: это не просто вывод посещённых страниц одним цветом, а непосещенных — другим. Скрипт действительно по URLу может определить посещённая страница или нет; и может отправить эту информацию на сервер (например ajaxом).

Запустили

Недоделанный, сырой, глюкавый и корявый, но свой.

Выложили несмотря на все недоделки, справедливо рассудив, что исправлять можно и после рождения запуска, а не бесконечно внося правки в период беременности разработки.

« Previous PageNext Page »   
Реклама::

 
Реклама::