Открыть список
Как стать автором
Обновить
12
Карма
0
Рейтинг

Пользователь

Grails, jQuery, AJAX: делаем anchor-навигацию. Часть 2, финальная

Groovy & Grails

Полная и неполная страницы


Продолжаем разговор про anchor-навигацию. Наша цель — сделать рабочее приложение на Grails.

Есть одна тонкость. Очень хочется, чтобы страница могла быть показана как в полном варианте (с шапкой, навигацией и т.п.), так и в сокращенном (для AJAX-вызовов). Однако набрав /my-app/do/receipts, получим полный вариант. Теперь это выглядит так:
Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры3.2K
Комментарии 1

Как отправить форму по нажатию на ссылку?

Разработка веб-сайтов
Этот вопрос входит, наверное, в ТОП10 вопросов на форумах :) Скорей всего это требование дизайнера или заказчика.

Итак, решение, на первый взгляд, простое:

<a href="#" onclick="document.getElementById('myform').submit(); return false;">Отправить</a>


Но тут же возникает (как ни странно :) следующий вопрос это, а если JS будет у посетителя отключен?
Читать дальше →
Всего голосов 114: ↑65 и ↓49 +16
Просмотры59.5K
Комментарии 141

Grails, jQuery, AJAX: делаем anchor-навигацию. Часть 1

Groovy & Grails

AJAX и все, все, все


В предыдущей серии мы делали простенькое Grails-приложение с использованием jQuery, а также решили для себя, что использовать jQuery в Grails можно и даже нужно. Обсудим более серьезные вещи, которые можно сделать с такой связкой.

Нетрудно заметить, что все больше сайтов используют AJAX и частичные обновления страниц, причем в невероятном количестве. В частности, «начиненные» AJAX ссылки могут использоваться для внутренней навигации по странице, переключения каких-то вкладок. Это хорошо тем, что
А) меньше данных нужно перегонять от сервера — только нужный кусок страницы и
Б) веб-страницы часто загружают просто гигантские CSS и JavaScript-файлы, которые при AJAX-обновлении можно повторно не загружать.

Итак, очень распространено построение приложений по сценарию: одна большая «стартовая» страница, загружающая весь JavaScript-код и CSS и более мелкие «внутренние» функциональные блоки, загружаемые через AJAX. С этим есть ряд проблем:
  1. В результате AJAX-действий внутреннее состояние страницы не отражено в адресной строке браузера.
  2. Как следствие, внутренние страницы не могут быть запомнены в закладки, нельзя «отправить ссылку другу».
  3. Не работает Back/Forward навигация в браузере, т.к. AJAX-ссылки не попадают в историю браузера.
Однако крупные сайты нашли некое «хакерское» решение, которое мы сейчас рассмотрим и напишем небольшой свой собственный аналог на Grails и jQuery.
Читать дальше →
Всего голосов 43: ↑37 и ↓6 +31
Просмотры16.1K
Комментарии 51

Почему я работаю на почасовой оплате

Управление проектами
Перевод
Перевод статьи молодого греческого программиста «Why I bill hourly»

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

Я люблю сравнивать разработку программного обеспечения с возведением здания, начиная с пустого земельного участка. Процесс выглядит примерно так:

Клиент: Вот участок, на котором мы будем строиться. Вот наброски того, что мы хотим построить. Можете назвать точную стоимость постройки?

Любой инженер-строитель шарахнется от такого предложения, программисты же в своей жажде заключить сделку прикинут смету, удвоят ее, добавят 30% и будут надеяться на лучшее. Как отвечаю на такой вопрос я?

Читать дальше →
Всего голосов 219: ↑199 и ↓20 +179
Просмотры13.9K
Комментарии 203

Кодировки

C++

Всем рано или поздно приходится работать с различными кодировками. Заметив в коде своей команды различные, порой странные, подходы к решению этих проблем, пришлось провести разъяснительную беседу. Ниже поделюсь своим видением правильной работы с не-ASCII символами в коде. Буду рад конструктивной критике.

Читать дальше
Всего голосов 76: ↑73 и ↓3 +70
Просмотры53K
Комментарии 61

Цикл статей по проектированию веб-сервиса

Анализ и проектирование систем
Всем привет!

Мы, Денис Бесков (beskov) и Илья Поляк (ilyap1) начинаем публикацию цикла статей, посвящённых процессу проектирования веб-сервисов. Цикл построен вокруг 3-хуровневого процесса, в котором явным образом выделяются уровни анализа и проектирования:
  1. Бизнеса
  2. Продукта
  3. Технологий
Здесь, на хабре, достаточно хорошо освещается тема проектирования на уровне технологий. Мы хотим показать взаимосвязь этого уровня, видов работ и проектных решений с вышестоящими уровнями на примере сквозного демо-кейса — проектирования веб-сервиса бронирования билетов в кино, в разработке которого участвовал пару лет назад один из авторов.

Цикл статей построен вокруг избыточной документации по проекту (требования), которую разрабатывают внутренние сотрудники компании, содержит краткое описание теоретических аспектов и помогает ответить на следующие вопросы, которые могут у вас возникнуть в работе:
  1. Какими способами можно описывать требования к ПО?
  2. Какие из требований к системе обязательно необходимо включать в ТЗ, а без каких можно обойтись?
  3. Какие могут быть варианты при выборе форматов описания требований?
  4. Как зависит выбор вида описания требований от параметров (продолжительности, рисков и др.) проекта?
  5. Какого рода решения помогают принять соответствующие виды требований?
В цикле не рассматриваются аспекты заказной разработки ПО. Статья рассчитана на пользователей, которые работают в некорпортивной среде, т.е. не привязаны к каким-либо регламентам.
Читать дальше →
Всего голосов 24: ↑15 и ↓9 +6
Просмотры23.2K
Комментарии 8

Продвинутые формы — мультиселект с автокомплитом

Django
Наши пользователи следят за спецпредложениями авиакомпаний и дешевыми перелетами, каждому интересно своё направление, пунктов вылета и прилета — тысячи, пользователи хотят одновременно следить за несколькоми городами, странами или регионами. Появилась задача — как предоставить удобный механизм подписки? Без долгого тыканья в мульти селект, без кнопок «Добавить пункт вылета». Ответ выглядит так —

Решением стал контрол из Фейсбука и Контакта — пользователи знакомы с ним, а значит не нужно объяснять как он работает. Осталось скрестить его с django.
Читать дальше →
Всего голосов 77: ↑66 и ↓11 +55
Просмотры6.4K
Комментарии 41

Шаблоны Django. Наследование.

Django
Прочитал статью «Фрагментарное кэширование в MVC веб-фреймворках». Статья описывает проблему кеширования фрагмета отображения, а именно проблему полного разделения контроллера и отображения — контроллер отрабатывает полностью до вызова отображения. Если в отображении мы кешируем фрагмент, это ничего не меняет — контроллер-то уже отработал! В статье описан способ этого избежать: сделать запрос данных «ленивым».

Начав писать, как это должно быть сделано правильно, решил написать, как устроены шаблоны Django, чтобы не-джанговодам тоже было понятно.

Как это сделано в Django?

Читать дальше →
Всего голосов 48: ↑45 и ↓3 +42
Просмотры54.3K
Комментарии 43

Sikuli — program ANYTHING using GUI screenshoots

Интерфейсы

Сказка


Представьте на минуту, что Вы — несчастный программист, который каждый день добирается на работу на автобусе, расписание которого невозможно предугадать. В такой ситуации было бы очень удобно, завтракая дома, получать на телефон SMS, сообщающее, что автобус уже через пять минут будет на Вашей остановке.

К счастью, транспортная компания (которая не удосужилась составить четкого расписание) содержит сайт, на котором в реальном времени с помощью Google Maps можно узнать, где сейчас находится тот или иной автобус. И вот в один прекрасный день Ваше терпение лопается и Вы садитесь писать скрипт, который будет отправлять ту желанную SMS-ку. Но все не так просто. Придется долго повозиться, чтобы по карте и маленькому кружочку на ней оценить скорость и время прибытия реального транспортного средства на Вашу остановку. Вы ведь не можете просто написать: «хочу получать SMS, когда вот эта точка попадет вот в этот прямоугольник на карте». Или все-таки можете?

Проходя, не проходите мимо
Всего голосов 88: ↑81 и ↓7 +74
Просмотры13.3K
Комментарии 52

Алгоритм роя частиц

Алгоритмы

Введение


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


Читать дальше →
Всего голосов 107: ↑105 и ↓2 +103
Просмотры46.1K
Комментарии 22

Сумбурные заметки про python и django

Python
Накопилось несколько маленьких заметок/советов про python и django, которые на отдельные топики не тянут, поэтому публикую все сразу.

Под катом:
  • как упростить код вьюх ровно в 2 раза
  • легкий способ рисования графиков
  • почему Ian Bicking воскликнул «Cool!»
  • приложения для ВКонтакте на django за 5 минут
  • хорош ли pymorphy?
  • пара фишек насчет выкладки пакетов на pypi
  • что общего между декораторами и with-контекст-менеджерами
  • принимаем оплату на django-сайтах
  • показываем Яндекс.Карту для заданного адреса

Читать дальше →
Всего голосов 159: ↑153 и ↓6 +147
Просмотры41.6K
Комментарии 37

Как выучить любой язык за 3 месяца?

GTD
Перевод статьи Тима Ферриса из его блога.

image

(Учебник Дзюдо Окано Исао, который я использовал для изучения японской грамматики)

Изучение языка не должно быть сложным.

Принципы когнитивной нейронауки и управления временем могут быть применены для достижения свободного владения языком на разговорном уровне (в данном случае определяется как 95%+ процентов понимания и 100% выразительных возможностей) в течение 1-3 месяцев.

Время прочтения: 15 минут
Всего голосов 207: ↑186 и ↓21 +165
Просмотры54.5K
Комментарии 134

NVIDIA выпускает новый продукт для работы с параллельными вычислениями CPU и GPU

GPGPU
image

Компания NVIDIA выпускает новый коммерческий продуктNVIDIA Parallel Nsight, который представляет собой пакет инструментов интегрирующихся в Visual Studio 2008 SP1. NVIDIA Parallel Nsight предлагает инструменты для разработки параллельных приложений использующих на полную мощность возможности многоядерных процессоров и современных ускорителей GPU.

image image 

Читать дальше →
Всего голосов 57: ↑45 и ↓12 +33
Просмотры4.2K
Комментарии 48

7 вопросов об информационных системах производства

IT-инфраструктура
Информационная система производства
Работникам больших производств часто приходится иметь дело с морем информации – данными по произведенной продукции, по расходу энергоносителей, потребленной электроэнергии, планом и фактом, потерями производительности и качества. Эти данные содержатся в куче мест, их нужно сводить воедино для получения единой картины. В этом нелегком деле людям помогают информационные системы производства. В своей работе я часто сталкиваюсь с вопросами, связанными с этими системами. Недавно мне пришло в голову собрать их воедино и дать на них ответы.

Что такое информационная система производства?


Информационная система производства получает данные из разрозненных производственных систем (АСУТП, ТМ, АСКУЭ, АСУТГ, баз данных, офисных приложений, ручного ввода) и предоставляет эти данные пользователям и другим системам.
Их предназначение, выраженное в трех словах, не считая союзов и предлогов: информация для людей и систем. (Про три слова — спасибо за совет Гаю Кавасаки!)
Получая данные из систем нижнего уровня, информационные системы производства решают задачу горизонтальной интеграции, а предоставляя данные системам верхнего уровня (ERP, EAM, системам расчета ТЭП) – вертикальной. И для всех потребителей (пользователей и систем) информационная система производства обеспечивает единую точку доступа ко всей производственной информации.

Информационная система производства = Historian?


Информационная система производства часто рассматриваются как синоним систем класса Historian, но это не всегда так.
Читать дальше →
Всего голосов 26: ↑15 и ↓11 +4
Просмотры9K
Комментарии 12

Принципы работы покерного бота

Блог компании Покерофф
image


Внимание:
Не принимайте эту статью как руководство к действию, помните что использование ботов запрещено во всех покер-румах и влечет за собой блокировку аккаунта с изъятием всех денег на счету. В этой статье не будет готового к использованию кода, чтобы не облегчать жизнь скрипт-киддисам, мы рассмотрим основные принципы и алгоритмы работы бота. А знакомый с программированием человек, при желании, все равно сможет написать такую программу.
Читать дальше →
Всего голосов 133: ↑97 и ↓36 +61
Просмотры91.3K
Комментарии 82

Информация

В рейтинге
5,883-й
Зарегистрирован
Активность