Архив за 10 августа 2012 - 5

image

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

geeklabs ideafactory

У вас есть идея? И вы уверены что она стоящая? И эту идею можно воплотить в изобретение?
Теперь вы можете не только продать ее, но и неплохо заработать!
Читать полностью »

Скучна вечерняя пора
Хозяева зевают
Но если гость пришел с утра
Такого не бывает!

Винни-Пух

Такой эпиграф не случаен – сам по себе тренинг всегда рискует превратиться в «начитку лекций», а вот если знания переплавляются сразу в практику, то ощутимые результаты видны сразу. Это лирическое отступление, вот к чему.

Мы провели первые несколько бесплатных семинаров по ITIL в виде игры-симулятора «Формулы-1». Объявления для были здесь и здесь. Формат в виде игры был новаторским. Так, даже из самих описаний семинара было не понятно: «ну-у-у, ITIL вроде многим интересен, но детально все некогда разобраться...», а вот «Формула-1» не страдает недостатком популярности, но вот как их скрестить между собой – можно было только пощупать на опыте. На деле игра оказалась настолько продуманной, что полностью увлекла всех.

Подобная симуляция отлично прочищает мозги и показывает, что есть что в сложных процессах, происходящих при оказании IT-услуг. О том, как можно достигнуть понимания ITIL на игре по «Формуле-1», под хабракатом.

Отчет о гонках ITIL в декорациях «Формулы 1»

Читать полностью »

Rob Hemsley из Массачусетского технологического института сделал оригинальный замок для двери на основе Arduino и ёмкостного датчика.
Это второй вариант замка, первая версия замка была разработана на основе RFID, её главный минус — это высокая стоимость RFID оборудования: на один замок нужно было потратить около $80.
В новой версии используется ёмкостный датчик, подключенный к металлической ручке двери. Это решение дешевое и более практичное (не нужно носить с собой RFID карту, нет занимающего дополнительное место RFID оборудования).

Оригинальный замок для двери на основе Arduino и ёмкостного датчика

Устройство обнаруживает прикосновение руки человека к дверной ручке и следит за интервалами между касаниями рукой ручки двери. Если комбинация прикосновений к ручке совпала с той, что хранится в EEPROM — дверь откроется.

Читать полностью »

Управление лифтами: решение на языке HaskellТрадиционный конкурс по функциональному программированию состоялся в июле. Судя по количеству участников, большинство апологетов программирования на этот раз убыли на отдых, либо не стали участвовать в конкурсе, экономя силы и готовясь к ICFPC, который в этом году состоялся через неделю после моего мероприятия. Тем не менее, в конкурсе на этот раз приняли участие девять человек, из которых семеро дали в той или иной степени правильные ответы. Распределение по языкам программирования: Haskell — 4 решения, из которых 2 некорректные; C++, Clean, F#, Java и Perl — по одному решению.

Задача на этот раз была из области автоматического управления. Конечно, она всё также сводилась к поиску на графе, для чего всяко можно использовать алгоритм A*. Тем не менее, большинство участников выбрали реализацию ad hoc, в том числе и победитель. Вот примерное условие:

На улице генерала Белова стоит четырнадцатиэтажный дом.

На первом этаже живет Митя. На втором — Петя, Тёма и Саша. На третьем — Витя, а на четвёртом — Маша и Паша. Кто живёт выше — никто не знает.

Митя и Витя собираются в гости к своему однокласснику Тёме. Паша позвонил Пете и попросил его вернуть конспект по ОБЖ. Сашина кошка снова улизнула из квартиры и наверняка греется у батареи на третьем этаже. Саша полон решимости вернуть её домой. Маша, тем временем, хочет сходить в магазин за новым велосипедным звонком.

В начальный момент времени лифт находится на первом этаже. Одновременно в лифте может находится не более двух человек, а пользоваться лестницей нельзя из-за ремонта. «Шагом» считается перемещение лифта между парой соседних этажей. В начале каждого шага ученики могут свободно перемещаться между лифтом и лестничной площадкой.

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

Читать полностью »

Поздравляю всех с пятницей и в качестве небольшого развлечения предлагаю представить, как бы выглядел популярный CSS-фреймворк Twitter Bootstrap, если бы он был от Google? Встречайте Plusstrap.

Что если бы Google выпустил свой Bootstrap?
Читать полностью »

В свое время озадачился вопросом — как защитить страницы сайта от повторной отправки данных формы во время обновления страницы (если перед этим была отправка, естественно).
Каждый веб-мастер и разработчик наверное знает, что если на сайте вы нажали кнопку «отправить», заполнив какую-либо форму, то после отправки, если попытаться обновить страницу браузер выдаст сообщение с подтверждением повторной отправки.
В некоторых моментах это бывает недопустимо. Например, в случае элементарной формы обратной связи. Когда пользователь заполнил форму и отправил сообщение, а потом по какой-то ему одному известной причине обновил страницу, письмо ушло снова. Это может, конечно, и не такой фатальный случай, просто как пример. Все гораздо болезненнее, например, при отправке заказа в интернет-магазине.
Так вот задался вопросом поиска решения этой проблемы и понял, что решение только одно: использование перенаправления после отправки формы header (‘location: адрес’). Т.е. все просто – после отправки вызываем перенаправление (можно даже на ту же страницу) и все! Обновление страницы будет чистым, без всяких заполненных POST-ов и GET-ов.
Читать полностью »

При установке редактора TinyMCE (на момент написания статьи версия: 4.3.3 pl) по умолчанию он настраивается таким образом, что в нем нет возможности добавлять в редактируемую область разметку таблиц. Видимо это сделано для компактности и «дружелюбности», чтобы не пугать пользователей своими многочисленными возможностями (другого объяснения я найти не смог).

И так, вот что необходимо сделать, чтобы в редакторе TinyMCE в MODx Revo появились элементы редактирования таблиц:

  1. Перейдите к настройкам системы ("Система" -> "Настройка системы");
  2. Отфильтруйте параметры по компоненту "tinymce";
  3. Найдите параметр "tiny.custom_buttons3" (цифра в конце означает строчку вывода кнопок на панели TiniMCE, на свое усмотрение можно выбрать другой аналогичный параметр "tiny.custom_buttonsN"). Добавьте в значение параметра слово "tablecontrols";
  4. Для того чтобы кнопки заработали, необходимо подключить плагин для работы с таблицами. Для этого в параметре "tiny.custom_plugins" нужно добавить к списку плагинов — "table".

Читать полностью »

Как проверить, что python-разработчики (или вы сами) хорошо задокументировали код, кроме как просматривать все руками или генерировать pydoc'ом документацию и сравнивать с исходниками? Вот и я не нашел никакого решения, пока случайно не натолкнулся на старый-престарый скрипт, который вдохновил меня на форк и последующую несложную доработку.

В результате у меня получился простой и полезный (по крайней мере для меня :) ) инструмент Docstring coverage, позволяющий оценить процентное покрытие кода документацией по всему проекту.

Запускается так:

docstring-coverage [опции] <путь к папке или модулю>

Пример вывода:

Читать полностью »

Уже везде гудят по этому поводу, но на Хабре новости еще нет.
Собственно тема раскрыта в заголовке, есть официальная информация о несанкционированном проникновении к серверам Battle.Net
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js