Search
Write a publication
Pull to refresh
0
0

User

Send message

Используйте голову

Reading time8 min
Views26K
Какой главный инструмент работы айтишника? Компьютер? Я думаю иначе. Прежде всего мы работаем головой. А как работает мозг? Почему-то об этом нам не рассказывают в школе, университете и на работе, или рассказывают очень мало. Чтобы работать эффективно, нужно не только уметь прекрасно пользоваться необходимым программным обеспечением, но и знать, как настроить свой мозг на работу.

Специально для Хабра (для людей с техническим складом ума) я подготовил краткую версию статьи о мозге, в которой описано, что полезно для мозга, а что нет. Добро пожаловать под кат.
Читать дальше →

Pylons. Альтернатива routing.py

Reading time5 min
Views1.8K
Доброе время суток. Не так давно мы начали писать большой проект на Pylons и одно из главных требований было быстрое присоединение и удаление контролеров без изменений в routing.py. Один из наших работников уже сталкивался с подобным и сделал данную функциональность через плагины. Но, как мне показалось, решение было достаточно громоздким и его тяжело было переносить в будущем из проекта в проект.

Т.к. я в прошлом имел дело с Catalyst (Perl MVC framework), да и нравилось мне, что к каждому методу можно было руками дописать URL. Собственно решил написать нечто похожее.
Читать дальше →

Google App Engine – масштабируемые приложения

Reading time3 min
Views3.3K
Google App Engine позволяет легко создавать приложения, надежно работающие даже при большой нагрузке и с большими объемами данных. Но ещё проще создать программного монстра, который будет работать очень медленно или вовсе не работать, постоянно возвращая ошибку HTTP 500.

Как писать быстрые и хорошо масштабируемые приложения – об этом пойдет речь в этой статье.

Все ниже изложенное прежде всего касается приложений, написанных на Java, но большей частью должно быть справедливо и для приложений написанных на языке Python.
Читать дальше →

Привычки полезные каждому веб-программисту

Reading time2 min
Views1.7K
У веб-программистов со временем вырабатываются привычки, которые въедаются в рабочий процесс на уровне рефлексов. Взять хотя бы данные из формы — каждый толковый программист, как только встречает их, тут же обрабатывает на предмет корректности. Порою даже сам не замечает.

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

Количество элементов на одной странице

Разбиваете список на страницы? Как будет выглядеть вторая страница для списка из 101 элемента, если ваше волшебное число 100?

Читать дальше →

Улучшаем 3d движок на js: Gouraud shading

Reading time2 min
Views3.7K

Пост babarun про 3d-движок на js вызвал творческий порыв добавить тонирование Гуро для пущей реалистичности. Вот, что получилось (а сейчас ещё и с зеркальностью). По сравнению с обычным (flat) тонированием нормали требуется иметь не для граней, а для вершин (то есть для треугольной грани три нормали). По готовым нормалям граней нормали вершин вычисляются просто усреднением нормалей всех граней, включающих данную вершину; это делается один раз перед рендерингом. Освещённость вершин высчитывается в начале каждого кадра с учётом изменения положения камеры.

Основная сложность заключалась в том, как залить треугольник градиентом.
Читать дальше →

Сервис ГдеПосылка.ру

Reading time1 min
Views2K
Совсем недавно случайно наткнулся на интересный сервис, который может быть полезным тем, кто часто покупает на DealExtreme и других подобных сайтах.

UPD. Спасибо пользователю el777 за предоставленный инвайт. Ну и поприветствуем автора сервиса vgrayster. Как только он освоится на Хабре, сразу начнет отвечать на Ваши вопросы.
Что же умеет этот сервис?
Читать дальше →

named pipes в Unix

Reading time2 min
Views37K
Я давно читал про них, ещё когда учился основам юникс, но как-то не было нужды с ними работать. И, вот, нужда возникла.

Некая программа (допустим, foo) не умеет писать вывод в stdout, только в файл. Даже "-" в качестве имени файла всего лишь создаёт файл с названием "-" [большинство умных программ под unix знают, что одиночный минус вместо имени файла означает вывод в stdout]. Аналогично она отвергает и /dev/stdout.

Другая же программа, обрабатывающая результаты первой, допустим, bar, читает из stdin и пишет в stdout. (если быть точным, первое — это трейсер специального вида, дающий двоичный дамп, а второе — конвертор, печатающий их же в человекочитаемом виде).

Нужно их объединить в конвеер.

Некрасивый вариант — использование обычного файла. Записал, прочитал.

Есть куда более красивый вариант — это именованные пайпы. Так как у пайпа есть имя, мы можем передать его как файл первой программе, а потом передать содержимое другой.

Выглядит это так:

mkfifo mypipe
cat mypipe | bar &
foo mypipe&
rm mypipe

Читать дальше →

3d движок на js + canvas

Reading time2 min
Views14K
Как то раз наткнулся я на забугорную статью про светлое будущие Canvas и WebGL, и была в этой статье картинка с «3d чайничком» нарисованном c помощью canvas'a, поразила она меня ну прям ващеее, понял я что должен сделать нечто подобное, и сделал.

image

Читать дальше →

ModularGrid — модульная сетка в браузере (и не только сетка)

Reading time1 min
Views10K
ModularGrid — это небольшая программка на javascript (около 30 КБ), которая облегчает труд HTML-верстальщика.


Основные возможности ModularGrid


  • показ направляющих поверх страницы
  • показ модульной сетки поверх страницы
  • показ отдельно шрифтовой сетки, горизонтальной или вертикальной модульной сетки поверх страницы
  • показ изображения-макета поверх страницы
  • изменение размера окна браузера под указанные верстальщиком разрешения
  • изменение прозрачности модульной сетки и изображения-макета

подробности

phpDaemon: хорошие новости

Reading time1 min
Views3K
В Январе была опубликована статья phpDaemon — фреймворк асинхронных приложений. У многих она вызвала смешанные чувства: с одной стороны проект перспективен, с другой – было трудно вникнуть в недокументированный код, и хуже того – позиция автора была, скажем так, не совсем адекватной требованиям сообщества.
Но позиция автора поменялась, а с ней и многое в проекте.
Проект переехал на GitHub. Теперь методы и свойства задокументированы. API сделано более прозрачным и легким для работы, исправлено множество недочетов, повышена стабильность, изменена структура директорий.
Заполняется WIKI. Добавлено много новых возможностей, включая клиент для Postgresql.
Это принесло свои плоды: phpDaemon твердо обосновался на production-серверах многих проектов, и ведет себя стабильно, что не может не радовать.
Также появилось время на реализацию общественно полезных модулей и других фич, будем рады дельным предложениям.

Заранее благодарю за комментарии!

Выступаем публично. Подготовка к твоему первому выступлению на конференции

Reading time4 min
Views7K
AHTUNG!!!!Приветствую, коллеги по цеху. Начну с отказа от ответственности. Сам я не опытный рассказчик, а только учусь. Возможно, именно поэтому мой опыт будет интересен другим новичкам. Опытных презентаторов, кому есть что добавить — прошу отписаться в комментах или в личку — что можно было бы сделать лучше.

Началось всё с того, что на РИФ+КИБ нашей компании выступить не удалось, в силу разных причин, а давно хотелось. Следующее интересное отраслевое событие — "Неделя электронной торговли", и наши доклады включили в программу мероприятия (не без помощи razmolot).

Начитавшись на Хабре статей (раз, два, три и т.д.), начал готовиться к первому своему публичному выступлению.

Итак. Первое: Цели. Как правильно писали умные люди на Хабре — презентация это не "о чем", а "зачем".

Мои цели были следующие:

Ещё одно Python сообщество

Reading time1 min
Views7K
Меня давно интриговал вопрос, почему в рунете нет приличного портала по языку программирования python? Вроде сделать не сложно, людей знающих язык огромное количество, но не смотря ни на что, сайтов о питоне единицы, да и те которые были, строились на PHP. Единственный сайт который изменился с тех пор, это форум Сагалаева, остальные либо забросили свои сайты, либо вообще отказались от идеи порталов, как от бесперспективного направления. Но как говорится, свято место пусто не бывает, и я решил заполнить эту нишу своим детищем: http://pyplanet.org/
Читать дальше →

Программист и рисование

Reading time5 min
Views13K


Нужно ли программисту уметь рисовать? Я подумал это довольно-таки интересная тема, под катом рассуждения о том нужно ли это вообще + урок рисования кота для полных новичков от программиста.

Читать дальше →

Bespin переходит на node.js

Reading time1 min
Views1.1K
Как стало известно, после переработки клиентской стороны своего редактора разработчики проекта Bespin, судя по новому плану развития, перепишут серверную часть с Python/WSGI на Node.js.

Радует, что количество серьёзных проектов, переходящих на Node, неуклонно растёт.

Bespin — редактор исходного кода, чей клиент работает внутри web-обозревателя (подробнее о Bespin на Хабре).

Введение в DSL. Часть 1 — Проблематика проектирования и кодирования

Reading time7 min
Views34K
На протяжении нескольких десятилетий стоит задача поиска повторяемого, предсказуемого процесса или методологии, которая бы улучшила продуктивность, качество и надежность разработки. Одни пытались систематизировать и формализовать этот, по-видимому, непредсказуемый процесс. Другие применяли к нему методы управления проектами и методы программной инженерии. Третьи считали, что без постоянного контроля со стороны заказчика разработка ПО выходит из-под контроля, что влечет за собой увеличение временных и финансовых затрат.
Информатика как научная дисциплина предлагает и использует на базе методов структурного программирования технологию надежной разработки программного обеспечения, используя тестирование программ и их верификацию на основе методов доказательного программирования для систематического анализа правильности алгоритмов и разработки программ без алгоритмических ошибок.
Данная методология направлена на решение задач на ЭВМ, аналогичной технологии разработки алгоритмов и программ, используемой на олимпиадах по программированию отечественными студентами и программистами с использованием тестирования и структурного псевдокода для документирования программ в корпорации IBM с 70-х годов.
Методология структурного проектирования программного обеспечения может использоваться с применением различных языков и средств программирования для разработки надежных программ любого назначения.
Однако при использовании классического подхода к разработке возникают проблемы, описанные под хабракатом:
Читать, какие

Multiple database support

Reading time4 min
Views9.2K
Изначально Django предполагал работу только с одной базой данных (системное ограничение включающее такие вещи как группа настроек DATABASE_*). В течение всего этого времени явно ощущалась необходимость поддержки возможности работы с несколькими БД. В рамках работы над версией 1.2 в течение Google Summer of Code поддержка нескольких БД была включена в trunk. С этими новшествами связаны как целый ряд внутренних изменений, так и несколько удачных расширений для существующих интерфейсов работы с БД.
Читать дальше →

О midi-файлах и о PHP, как инструменте повседневного программирования на живом примере

Reading time3 min
Views3.5K

Предисловие


Очень часто сталкиваюсь с тем, что многие не воспринимают PHP ни как иначе, чем средство для разработки сайтов, но мне хочется разубедить их этим топиком.

Сегодня мне позвонили и попросили помочь с синтезатором фирмы YAMAHA (в частности с аналогом модели 403), который имеет одну интересную особенность — он позволяет сохранять 5 сочиненных песен в своей памяти, но вот достать их на компьютер в какой либо форме, кроме как файла резервной копии нельзя, о чем говорится на всех форумах и в технической документации к этому синтезатору.
Читать дальше →

Пунктирная рамка вокруг ссылок и навигация с клавиатуры

Reading time3 min
Views16K
Думаю, все знают, что это такое. Некоторые браузеры, в частности, Фаерфокс и Интернет Эксплорер 8 рисуют однопиксельную пунктирную рамку вокруг ссылок и внутри кнопок, когда пользователь нажимает на них. Если сайт состоит из голого html, скорее всего, дискомфорта они не доставят. Но если все ссылки как-то стилизованны, вам (или вашему дизайнеру), скорее всего захочется избавиться от этого. Тем более, что эта рамка может отобразиться в неподходящем месте:

image
Читать дальше →

Django и часовые пояса

Reading time8 min
Views21K
Есть несколько обыденных вещей, которые время от времени портят кровь нашему брату: падежи, числительные и часовые пояса, с проклятым переходом на летнее/зимнее время. Невольно позавидуешь китайцам у которых на всю страну всего один часовой пояс, а падежей нет и в помине. Будет совсем неплохо раз и навсегда разобраться с часовыми поясами и преобразованиями между ними хотя бы для Django-приложений.
Читать дальше →

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Registered
Activity