Pull to refresh
34
0
Sardorbek Pulatov @pROCKrammer

User

Send message

Django в неблокирующем стиле, или в погоне за Священным Граалем

Reading time2 min
Views4.6K
image

Присказка


При чтении о Twisted, Tornado, Node.js, у многих python-программистов возникает вопрос — «а вот если взять, и переписать Django в неблокирующем стиле?». Обычный ответ на этот вопрос — нет, не дождетесь. И правда, чтобы переписать целый фреймворк в макаронно-колбечном стиле, надо очень много сил, и большой заряд энтузиазма. Писать с колбеками, очень сомнительное удовольствие.

Так бы и было, но как я писал в своей прошлой заметке, есть в python-мире greenlet-ы, которые легким движением руки помогают скрыть от программиста все эти асинхронные моменты, до определенной степени. В момент написания той заметки, к мысли заставить работать Django в неблокирующем режиме, я относился весьма скептически — ну в самом деле, кто за это возьмется?

Читать дальше →
Total votes 65: ↑56 and ↓9+47
Comments64

jQuery 1.3.x -> 1.4.x и JSON

Reading time1 min
Views3.6K
Это не пост, а скорее памятка для тех, кто столкнулся с проблемой ajax и json, при переходе на jQuery 1.4.
В новой версии используется встроенный парсинг JSON, а вместе с этим становится необходимо следить за его (json’a) правильностью.
Примеры, как делать не надо:

{ 'qwe' : 'asd' }
{ "qwe" : 'asd' }
{ qwe: "asd" }
{ qwe: 'asd' }

т. е. такие варианты теперь не проходят. Использовать надо только двойные кавычки!

{ "qwe" : "asd" }

Если же у вас нет возможности внести изменения в серверные скрипты, то на клиенте быстрый фикс можно сделать следующим образом:

$.ajax({
url: "/test.php",
dataType: "text",
success: function(data) {
json = eval("(" + data + ")");
// alert(json.success);
}
});

Возможно, кому-то окажется полезным. Всем спасибо, всем удачи!
Total votes 62: ↑52 and ↓10+42
Comments43

Hivext Platform — облачная платформа для разработки Интернет приложений. Бета тестирование

Reading time2 min
Views888
image
Полтора года назад на хабре познакомились два увлеченных своим делом, разработчика, которые обсуждали статьи друг друга. Пообщавшись более плотно, осознали что им не хватает продукта, который позволял бы проще, гибче и быстрее разрабатывать веб-приложения. Так зародилась идея разработки платформы для разработчиков. Прошло чуть больше года проектирования и разработки.

На данный момент мы имеем что показать и дать вам пощупать наш продукт.
Читать дальше →
Total votes 66: ↑59 and ↓7+52
Comments48

Склад бесплатных иконок

Reading time1 min
Views164K
Прошелся по закладкам и образовалась такая толстенькая подборочка ресурсов с бесплатными и качественными иконками, с которой спешу поделиться с тобой %username%!

Iconfinder


image


Читать дальше →
Total votes 168: ↑151 and ↓17+134
Comments39

Виды тестирования и подходы к их применению

Reading time5 min
Views263K
Из институтского курса по технологиям программирования я вынес следующую классификацию видов тестирования (критерий — степень изолированности кода). Тестирование бывает:
  • Блочное (Unit testing) — тестирование одного модуля в изоляции.
  • Интеграционное (Integration Testing) — тестирование группы взаимодействующих модулей.
  • Системное (System Testing) — тестирование системы в целом.
Классификация хорошая и понятная. Однако на практике выясняется, что у каждого вида тестирования есть свои особенности. И если их не учитывать, тестирование станивится обременительным и им не занимаются в должной мере. Здесь я собрал подходы к реальному применению различных видов тестирования. А поскольку я пишу на .NET, ссылки будут на соответствующие библиотеки.
Подходы к тестированию
Total votes 57: ↑49 and ↓8+41
Comments12

Колоночная верстка

Reading time5 min
Views16K
Существует много способов по верстке колоночных макетов. Уже не один нос разбит в течении холиваров, разожженных по поводу использования тех или иных методов. Казалось бы, что все должно быть предельно ясно и понятно, но все-равно возникает много трудностей. Я хочу и свою лепту вложить во всеобщее благое дело, и потому потратил относительно немного времени на эксперименты, которые привели меня к созданию еще одного метода, в котором есть следующие плюсы и минусы:

Плюсы
  • Есть прижимающийся к полу футер
  • Колонки меню растягиваются по 100% высоте
  • Колонок может быть сколько душе угодно
  • Колонки могут быть как лево- так и правосторонними, а также совмещенными, например 2 справа и 1 слева
  • Ширина как резиновая, так и фиксированная
  • Критический минимум хаков
  • Не используется Javascript
  • Не используются бекграундовые изображения для создания эффекта колонки
  • Никаких таблиц
  • Одинаковый результат в ie5.5, ie6, ie7, ie8, ff3.5, o10, chrome4 (Если у вас не работает в каком-то браузере — отпишитесь, пожалуйста, в комментах. Исправим и приведем к универсальному виду)

Минусы
  • Есть несколько «лишних» блоков. (Я бы и сам рад от них избавиться)
  • Есть несколько абсолютно-позиционируемых блоков
Читать дальше →
Total votes 106: ↑97 and ↓9+88
Comments134

Java и паттерн Public Morozov

Reading time3 min
Views31K
Однажды понадобилось мне переопределить на работающей программе поле, помеченное как private final. Причем останавливать программу было нельзя, ибо сервер. Ну и как маленькое дополнение тип переменной был определен как inner класс. Разумеется тоже private.

К счастью, программа позволяет на ходу подключать модули, содержащие произвольный код. А значит — в нашем распоряжении вся мощь reflection!
Читать дальше →
Total votes 51: ↑44 and ↓7+37
Comments25

Все о 960gs — отличном css-фреймворке для построения модульных сеток

Reading time6 min
Views54K


Я хочу дать исчерпывающее описание замечательному фреймворку для построения модульных сеток 960gs. Недавно где-то в комментариях сказали, что 960gs сложнее в понимании, чем blueprint, что меня удивило. Я не хочу заниматься сравнением этих фреймворком, хотя бы потому, что они выступают в разных весовых категориях, однако, для построения модульной сетки ничего легче и проще в понимании, чем 960gs я не видела.


Читать дальше →
Total votes 126: ↑111 and ↓15+96
Comments83

Перевод документации по app-engine-patch

Reading time1 min
Views793
image
Сравнительно недавно заинтересовался облачной платформой Google App Engine. Очень обрадовался, узнав, что App Engine поддерживает Django. Но, как оказалось, поддерживается только Django 0.96, а чтобы использовать свежую версию, требуется её загружать вместе с разрабатываемым проектом.
app-engine-patch — проект, позволяющий перенести максимально возможное количество функций Django в облачную платформу App Engine. Для того, чтобы пользоваться данным проектом, необходимо установить Python 2.5 и App Engine SDK.
image
Заинтересовавшись данным проектом, решил перевести документацию по app-engine-patch, так как она достаточно небольшая.
Выложил в Google Docs, если кому-нибудь понадобится. Перевод небольшой, но достаточно увесистый, чтобы публиковать его полностью в этом топике.
Замечу, что я не являюсь профессиональным переводчиком, и переводил для себя, поэтому прошу строго не судить.
Надеюсь, что кому-нибудь моя работа будет полезна.
Total votes 35: ↑32 and ↓3+29
Comments12

Создание локальной копии документации Django

Reading time1 min
Views1.2K
image

Да-да, это снова я и снова о документации Django :) На этот раз не будет длинных переводов, просто небольшая заметка.

Итак, если вы хотите всегда иметь доступ к документации по любимому средству разработки, этот топик для вас.

Читать дальше →
Total votes 44: ↑31 and ↓13+18
Comments19

Дилеммы молодого преподавателя

Reading time4 min
Views13K
По мотивам этой статьи.

Как вы себе представляете социальный и психологический портрет студента, аспиранта и преподавателя? Я вижу это так:

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

Аспирант — бывший хороший студент либо сын / дочь преподавателя. Аспирантом становятся по нескольким причинам: 1) он не хочет идти в армию 2) у него (нее) нет работы 3) ему (и как правило, ей) нравится система образования 4) он (она) хочет проявить себя в науке 5) он (она) аспирант в четвертом (пятом) колене.

Преподавательхороший аспирант, который защитился и решил преподавать в университете.

Как видите, чем дальше в лес, тем меньше вариантов. Под катом текст посерьезней.
Читать дальше →
Total votes 140: ↑105 and ↓35+70
Comments76

Ext.Календарь

Reading time1 min
Views2.8K
imageMyCalendar — это расширенная версия стандартного ExtJS-календаря. Календарик не привязан к конкретному бэкэнду т.к. работает только с JSON данными, а их хоть из ассемблера кидай =). На сайте автора уже представлено два бэкэнда на Grails и PHP в качестве демо для лучшего понимания внутреннего устройства.

Протестировано в IE, FF, Chrome.
Товарисчь anotherpit подсказывает, что в Opera все тоже работает (на первый взгляд).

Читать дальше →
Total votes 42: ↑34 and ↓8+26
Comments22

Книга Application Architecture Guide, Second Edition

Reading time1 min
Views8.9K
Доступен для бесплатного скачивания финальный вариант книги Application Architecture Guide во второй редакции. Книга содержит 560 страниц разбитых на 28 больших глав. Application Architecture Guide посвящена архитектуре и дизайну ПО, как то: дизайну и разработке различных типов ПО (мобильные, web, клиентские, RIA, сервисы и облачные сервисы), организации и разработке уровней ПО (представления, бизнеслогики, данных, сервисов), созданию компонентов.

Получить книгу можно несколькими путями:
* скачать pdf (7.5 Mb);
* читать online;
* купить на Amazon;
* скачать дополнительную информацию на App Arch Guide 2.0 Knowledge Base.

Официальный анонс одного из авторов в его блоге J.D. Meier's Blog.
Total votes 57: ↑42 and ↓15+27
Comments26

Поиск по сайту на основе Yandex.XML

Reading time3 min
Views13K
Почему-то вебмастера ленятся сделать нормальный поиск по своему сайту. Особенно это касается высокопосещаемых сайтов, где качественный поиск был бы очень удобен для рядового пользователя.

Чаще всего прибегают к готовому решению от Google, с помощью которого можно еще и подзаработать на контекстной рекламе. Но для рунета я бы посоветовал сделать поиск при помощи сервиса Yandex.XML, потому что такой поиск больше адаптирован под морфологию русского языка. К тому же вы можете получить шанс получить самые жирные биды для контекста, если будете использовать поисковый директ.

В этом посте я хочу подробно показать вам, что подобный поиск организовать совсем не сложно. Это займет всего несколько минут и выльется в десяток строк на PHP.
Читать дальше →
Total votes 54: ↑40 and ↓14+26
Comments58

Архитектура клиентского приложения на ExtJS. Часть 1

Reading time6 min
Views6K
ExtJS
Самое сложное в любой работе — это начать её. Итак, с чего же начать наше огромное клиентское приложение? В этой части я расскажу с чего начать и затрону три темы: Как организовать код, Что такое фасад, как его построить, что такое компоненты (и, конечно, как их начать писать).
Читать дальше →
Total votes 44: ↑34 and ↓10+24
Comments28

Экспресс-анализ качества сайта

Reading time1 min
Views2.8K
Данная методика позволяет в течение часа проверить ВСЕ важнейшие параметры качества любого сайта: начиная с вашей домашней страницы и заканчивая крупнейшим порталом. Все пункты универсальны.

image

Методика ценна именно своей скоростью и универсальностью.
Total votes 95: ↑73 and ↓22+51
Comments98

Ubuntu 9.10 и catalyst: исправляем медленное развёртывание окна

Reading time1 min
Views909
В свежеустановленной ubuntu у счастливых^Wпользователей проприетарного драйвера от ati(catalyst), при включенных эффектах, очень долго разворачивается окно. Для исправления нужно поставить «иксы» с патчем nobackflill(отключается инициализация фона). Это легко сделать:
  1. В /etc/apt/sources.list добавить:
    deb ppa.launchpad.net/launchpad-weyland/xserver-nobackfill/ubuntu karmic main
  2. Выполнить:
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16E70E3E
    sudo aptitude update
    sudo aptitude upgrade
  3. Перезагрузить X сервер

на welinux.ru
Total votes 24: ↑18 and ↓6+12
Comments28

Картинки делают вашу информацию интереснее

Reading time4 min
Views12K
Интересные картинки
Приветствую всех! Я представляю вам свой Первый Пост На Хабре, он является объединяющим симбиозом нескольких постов моего личного блога [Батоноблог], и речь сейчас пойдёт о универсальной вещи, которая поможет увеличить продажи вашего товара, задержать на вашем сайте лишний десяток посетителей, и сделать из сложной многобуквенной статьи простой доходчивый рассказ. Также будут даны описания и адреса хранилищ этих вещей.

А вещь эта называется «Картинка».

В чём суть?


Идея проста до безобразия: текст нужно сопровождать информативными картинками по теме. Скорее всего, это понятно всем, но на практике об этом заботятся не многие, и те, кто заботятся, вне очереди получают свои плюсы на пути к успеху.

Читать дальше: почему, как и где искать картинки
Total votes 155: ↑128 and ↓27+101
Comments65

Установка SVN практически на любой хостинг (static svn)

Reading time1 min
Views4.4K
0. Интро

Практически всегда хостинг не предусматривает поддержку svn для конечного пользователя или эта возможность идет в качестве дополнительной платной опции, а обновлять проект с большим количеством файлов — занятие не из легких. Тем более, когда изменения затронули много связанных между собой файлов. Старый вариант через фтп или закачка архива с последующей его распаковкой не особо подходит, так как влечет за собой вероятность возникновения ошибок. Будь-то недокачка какого-то файла (ftp) либо неверные права на папки\файлы (архивом). Все это для примера. Но есть более удобный способ решить эту проблему. Установить svn на хостинг.
Читать дальше →
Total votes 40: ↑33 and ↓7+26
Comments67

Information

Rating
Does not participate
Location
Вьетнам
Date of birth
Registered
Activity