No public Twitter messages.


Этот блог устарел и, скорее всего, больше не будет обновляться. В ближайшем будущем он переедет сюда.
21 января 2011 // Идеи

Идея для гео-локационного сервиса

А вот вам отличная идея рождённая @golovlev, когда я ему рассказывал про возможности Google Локатора.

Суть идеи — автоматизация чекинов в гео-локационных сервисах посредством Google Локатора.

Механика такая:

На телефон в фон вешается Google Локатор. Серверная часть принимает координаты и когда в течение некоторого времени человек находится на одном месте, при этом не относящемся к категориям «работа» или «дом» отправляет на телефон сообщение с предложением зачекиниться. Можно предложить, например, место в котором человек чекинился находясь в этом самом месте или открыть настроенное гео-локационное приложение.

Для решении задачи существуют все необходимые API. Фактически готовая к реализации идея не имеющая готовой реализации.

Хорошая идея, но всё ровно не реализую, наверное.

теги: ,

1 комментарий.


19 января 2011 // Веб-разработка

position:fixed в ie6

Как известно, ie6 не поддерживает css-правило position: fixed, для иммитации существует вот такой несложный хак:

#some {
    position: fixed;
    top: 10px;
    left: 10px;
    width: 100px;
    height: 100px;
}
/* эмуляция position: fixed */
* html #some {
    position: absolute;
    top: expression(document.getElementsByTagName( 'body' )[0].scrollTop + "px");
    left: expression(document.getElementsByTagName( 'body' )[0].scrollLeft + "px");
    margin-left: 10px; /* эмуляция top: 10px; */
    margin-top: 10px; /* эмуляция left: 10px; */
}

У этого хака известен один досадный баг — из-за постоянного и очень неспешного пересчёта координат див будет постоянно дёргаться. Решается эта проблема полным сносом доктайпа со страницы. В некоторых случаях, кстати, этот костыль вообще не работает при наличии доктайпа на странице. Падений браузера и прочих критических проблем при использовании костыля не замечено.

Присутствует также ещё один минус — свойства bottom и right реализовать получится только дополнительным js-кодом. Для проектов использую jQuery, по-этому для имитации, например, bottom: 10px; вполне прокатывает конструкция $("#some").css("margin-top", ($(window).height() - 10) + "px");.

теги: , , ,

комментарии отключены.


17 января 2011 // Всякое

Объективные и субъективные минусы iPhone

Уже несколько лет пользуюсь iPhone и уже около 3-х месяцев как владею iPhone 4. Любой, купивший сей аппарат — в лице общественности автоматически становится особенным человеком, самым цензурным словом — «маколюбом», а также объектом тысячи выпадов против iPhone, Apple и прочих Стивов Джобсов от людей иного вероисповедания. Не каждый человек готов спорить и устойчив к вызовам на священные войны, а значит начинает нести невразумительную пургу в защиту аппарата, тем самым подтверждая в умах иных гепотизу о «сектантстве». Чтобы отфильтровать весь спам, флуд и оффтоп, я решил выписать полный перечень претензий к данному устройству, как объективных, так и субъективных. В помощь при выборе устройства.

Объективные минусы iPhone:

  • Привязка к одной конкретной библиотеке iTunes (т.е. к одному компьютеру), в то время как всё файловое взаимодействие с аппаратом происходит только через синхронизацию iTunes, а значит:
  • Нельзя использовать телефон как флешку, т.е. с любого компа просто закинуть на него любой файл, песню, картинку, точно также:
  • Нельзя скопировать файл из телефона на компьютер, за исключением фотографий и видео — их можно.
  • Нельзя отправлять и принимать файлы по Bluetooth.
  • Батарейка не выдерживает натиска опытного гика и сутки прожить ей достаточно тяжко, так что приходится носить с собой как минимум проводок. Проблему усугубляет:
  • Отсутствие сменной батареи. Ну, точнее, сменить её можно, но это нелёгкая хирургическая и не сказать что дешевая операция.
  • Проблема потери сети при захвате левой части корпуса на iPhone 4 (антена-гейт) действительно имеет место и напрягает, а бампер который лечит эту проблему превращает отличный дизайн корпуса как внешне, так и тактильно в бюджетную пластмассовую нокию. (UPD: в iPhone 4s проблема решена)
  • С компасом беда — иногда очень долго настраивается, а иногда просто не правильно показывает.
  • Чтобы зимой тыкать в экран приходится снимать перчатки, тыкать носом или, как некоторые, языком).
  • Нельзя использовать телефон как хот-спот (точка доступа Wi-Fi) чтобы раздавать интернет на другие устройства, как с определённых версий Android. Между тем функция анонсирована к мартовскому апдейту. (UPD: в iOS 4.3 доступен режим модема)
  • iPhone игрушка труднодоступная. Или много денег, или много мозголомства с покупкой и доставкой аппарата из другой страны. (флагманы других компаний теперь стоят даже дороже)

Можно тысячу лет спорить про то что это вовсе и не минусы, но для многих людей это действительно объективные минусы.

Спорные, глупые, придирочные, решаемые и прочие субъективные минусы:

  • Сразу же при покупке — микро-сим! Не сказать что беда серьёзная, но небольшой элемент паники присутствует.
  • Для пользователей Windows — iTunes. Последнее время он стал чуть менее тормозным, но тем не менее остаётся чрезвычайно ненативным и не менее чрезвычайно медлительным.
  • Отсутствие Flash-плеера.
  • Отсутствие поддержки карт памяти.
  • Нельзя ставить полный трек из медиатеки на звонок или будильник (UPD: в iOS 6 на будильник можно ставить любой трек из медиатеки). Только 30-секундный сэмпл.
  • Нет синхронизации через Wi-Fi.
  • Если iPhone 4 — покупайте защитную плёнку на заднюю панель, иначе вся исцарапанная будет.
  • В России нельзя покупать медиа-контент из iTunes Store, для этого приходится покупать подарочные сертификаты по завышенным ценам (впрочем к iPhone это относится весьма отдалённо).
  • Многим не нравится маленький экран и отсутствие Super AMOLED.
  • Хороший, грамотный и адекватный софт в AppStore бесплатен только если его сделал Google :P
  • Для многих людей сложно сразу и без проблем привязать карту к AppStore, а иногда, по непонятным причинам карты и не привязываются, после чего приходится заказывать выпуск дополнительных виртуальных карт, помимо этого:
  • Отсутствует возможность расплачиваться за приложения прямо со счёта мобильного (как в Ovi) или другими платёжными системами, например, Google Checkout (как в Android).
  • Воистину корявая автокоррекция текста сама заменяющая слова, при этом сложно отменить вариант предложенный телефоном, отключил сразу.
  • Многозадачности нет, есть быстрый запуск программы в то же состояние, в котором она была закрыта. Многозадачность имитируется Push-уведомлениями. С одной стороны для многих очевидный минус, с другой стороны от части гениальное решение переносящее фоновую работу приложений в облако, от чего не убивается батарейка и не тормозит телефон.
  • Почему-то недоведены до ума нативные приложения «Диктофон», «Погода» и «Часы». Первый хоть и выглядит красиво работает действительно глючно и пользоваться неудобно, каким-то образом умудрялся записывать звук в разных форматах. «Погода» предлагает очень небольшой список городов, названия которых ни разу не локализованы. В приложении «Часы» очень мало городов для выбора времени и, особенно последнее время, много глючащий будильник и иногда не звонящий таймер.
  • Ну и классическое: нет радио, нет тв, нет Java-приложений, нет Wi-Max 4G Professional Enterprise Edition 2000 Yota 2.0 beta, а ведь даже на китайских поделках есть!

Но стоит помнить, что не одними минусами славен iPhone. Он, вообще-то, отличный :)

теги: , ,

10 комментариев.


13 января 2011 // Веб-разработка

Определяем iPad с помощью JavaScript

Поскольку моя работа в данный момент связана с проектами для московского правительства, то вполне очевидно, что без особенной поддержки таких устройств как iPad не обойтись. Нанотехнологии, инновации, Россия вперёд! Все дела, в общем. У нас на работе проблема обнаружения iPad до недавнего времени решалась грустным костылём — if($.browser.safari). Не дело.

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

Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10

Для определения же, создаём переменную isiPad:

var isiPad = navigator.userAgent.match(/iPad/i) != null;

Далее просто используем условие if(isiPad) или if(!isiPad).

теги: , ,

1 комментарий.


20 декабря 2010 // Веб-разработка

Определение наличия тега на странице с помощью jquery

По-скольку логичное с точки зрения кодинга if($("#id")) не катит. Делается так: if($("#id").length). Соответственно с любым другим селектором тоже катит.

Спасибо за внимание.

теги: ,

комментарии отключены.


25 октября 2010 // Веб-разработка

Немного про XSLT-преобразования

По работе последнее время всё чаще приходится решать задачи связанные с XSLT-преобразованиями. Жалко я раньше не знал какая это прекрасная штука. Краткое резюме:

XSLT — часть спецификации XSL, задающая язык преобразований XML-документов. Т.е. при наличии любого внешнего или внутреннего XML-документа (например RSS-потока или ответа какого-нибудь API) мы можем преобразовать его как нам заблагорассудится достаточно простым и прозрачным синтаксисом языка XSLT не мучая голову и сервер регулярными выражениями или языковыми функциями.

Простенький пример такого преобразования можно подсмотреть в вики.

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

Однако, есть и грустная сторона дела — крайне сложно найти адекватную литературу на русском языке (впрочем, as usual), однако я напрягся и нашел несколько весьма достойных мануалов по теме, ссылками на которые я и хочу с вами поделиться:

Также несколько интересных статей, которые помогли разобраться в сути ещё до того как были найдены полноценные справочники:

Лично для меня эта тема открыла короткий путь для работы с десятком-другим интересных API. Надеюсь и Вам такое случиться. Спасибо за внимание :)

теги: , , , ,

комментарии отключены.


19 июля 2010 // Портфолио

Сайт фирмы ООО «Водоресурс Инжиниринг»

Водоресурс Инжиниринг

Главная страница

Технические детали:

  • Графика: Photoshop
  • Верстка: Dreamweaver
  • Фрэймворки: jQuery
  • Технологии: cufón
  • CMS: CMS Made Simple

теги: , ,

комментарии отключены.


15 мая 2010 // Портфолио

Сайт юридической фирмы «ЮрПрофи»

"ЮрПрофи"

Главная страница

Технические детали:

  • Графика: Photoshop
  • Верстка: Dreamweaver
  • Фрэймворки: jQuery
  • CMS: CMS Made Simple

Делать сайт было приятно, ещё больше порадовала восторженная реакция заказчиков.

теги: ,

1 комментарий.


12 мая 2010 // Всякое

Алгоритм эффективного выполнения любого задания

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

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

Вам поставили локальную задачу в рамках проекта. Алгоритм решения:

  1. Понять для чего проект и каким целям служит. Если не понятно, спросить.
  2. Узнать все, что требуется для того чтоб ваша задача считалась завершенной.
  3. После того как задача понятна, следует расписать ее на мелкие подзадачи, т.е. составить план (разумеется, записать его). Каждый пункт плана должен быть небольшим, чтоб с большой долей правды его можно было оценить по времени. Подробное планирование заставляет мозг обдумать способы решения и закрепить картину выполнения.
  4. Сказать тому кто поставил задачу прогнозируемое время выполнения и прогнозируемую дату. В тоже время мозг получит ограничение по времени и в фоновом режиме начнет корректировать действия чтоб уложиться в срок.
  5. Последовательно выполнить каждый пункт плана. По себе знаю, что с большой неохотой сажусь за выполнение непонятных мне задач, делаю их медленно. Если же проанализировать вначале задачу и сделать ее ясной — выполнение пойдет плавно и приятно.

Если у вас много разных задач, ведите туду лист (мне хватает текстовых файликов). В случае если у вас есть мелкие задачки, лучше их сделать быстро и сразу, чтоб освободить место в мозге.

теги: , , ,

1 комментарий.


19 апреля 2010 // Веб-разработка

Новое в Dreamweaver CS5

Dreamweaver CS5CSS Inspect

Рядом с Live View появилась новая кнопочка – CSS Inspect. Это такая функция, которая помогает визуально понять, где какие проблемы в CSS. В основном это связано с параметрами width/height, padding и margin. После запуска функции блоки начинают подсвечиваться при наведении на них курсора, как, например, это сделано в Opera DragonFly или FireBug. Разными цветами подсвечиваются внешний и внутренний отступы, так и высота, и ширина блока. Нажав на блок, мы можем отредактировать свойства CSS-селектора и сразу же увидеть изменения.

Site Setup

Более удобное окно настроек сайта. На первой странице только лишь название сайта и его папка. Всё остальное убрано во вкладку Advanced settings.

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

CSS Enable

функция Dreamweaver CS5 - CSS EnableУдобная и приятная функция, которая позволяет одним кликом включить или отключить (закомментировать) какое-либо свойство класса.

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

Live View Navigation

Теперь стало возможным при использовании функции Live View перемещаться по страницам сайта. Например, исправили мы класс какой, смотрим страницу и радуемся, переходим по ссылке, а там этот класс уже не так красиво смотрится, ибо иные реалии уже :)

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

Adobe BrowserLabAdobe BrowserLab

То, что все так ждали и хотели видеть. То, что уже давно реализовано в Microsoft Expression Web 3 Super Preview. Теперь, помимо живого просмотра страницы через Live View на вебките, появляется возможность посмотреть на то как сайт будет смотреться в других популярных браузерах (правда, почему-то, забыли про Оперу, как всегда), а именно – Chrome 3, FF2+, IE6+ и Safari 3+.

Не без ложки дёгтя, конечно. 1) Функционал в аналоге от Microsoft приятней, хоть и доступен там только IE и FF, впрочем как и удобство использования (на первый взгляд); 2) Эта функция реализована как плагин на Adobe AIR и работает через сервер Adobe Labs. Само собой каждый раз при использовании функции происходит загрузка страниц и много всяких лишних действий, ну и, разумеется — 3) Для тех пользователей, которые не платили за использование DW, эта функция будет недоступна.

функция Dreamweaver CS5 - PHP HintingPHP Hinting

Теперь при написании PHP-кода DW будет его понимать. Т.е. создав функцию или написав переменную DW, как любой уважающий себя IDE, будет подсказывать не только html-теги и css-свойства. Причём DW стал настолько умён, что подтягивать переменные и функции он будет даже из php-файлов привязанных к странице функцией require.

Также, DW обязуется подсказывать глобальные переменные и встроенные функции PHP, причём даже с описанием из мануала PHP.

DW CS5 Site-specific code hintingCode Hinting

Добавляет к функционалу PHP Hinting функции и полуглобальные переменные популярных фрэймворков, например, стандартно в DW CS5 вшиты функции Drupal, Joomla и WordPress (нужное выбрать во время редактирования). Включена возможность дать сжевать DW любой другой CMF и тогда DW научится понимать и его сленг.

Фильтр связанных файлов

Под открытыми вкладками в DW обычно располагается список файлов связанных с открытым во вкладке (style.css, jquery.js, custom.js, ну и всякое такое) документом.

Чем суровей наша страница, чем больше мы используем сценариев, визуальных эффектов и прочего, тем больше у нас становится связанных файлов. А когда файлов становится больше, чем может поместиться в экране, появляется противная и неудобная стрелка. В компании Adobe очень изящно решили эту задачу – добавили фильтр, указав в котором маску файлов, будут фильтроваться все неподходящие под эту маску файлы. Стандартно присутствуют три маски — *.html, *.js, *.css.

Widget Browser

Как и раньше, для меня остаётся загадкой вопрос – почему Adobe придумала свою собственную Spry, вместо того, чтобы использовать, практически ставшую стандартом, jQuery? Хотя с другой стороны, конечно, они давно уже этим занялись и негоже отступать. Adobe ведь. Ну да пофиг.

Компания Adobe написала целую кучу разных виджетов на своём этом Spry и пустила их в свободный доступ на Adobe Live Labs. Идея вообще очень интересная. С помощью этой функции можно загрузить любой из этих виджетов прямо в DW и встроить в свою страницу. Причём каждый виджет можно полностью настроить под нужды страницы, и даже сохранять настройки как пресеты. Т.е. достаточно сложнй скрипт установится полностью сам и ни разу не придётся лезть в код.

Минус тут, опять же, в том, что функция работает как аддон на Adobe AIR и работает через сервера Adobe, т.е. 1) это невозможность использования на бесплатных версиях; 2) no internet – no work.

Больше ничего серьёзного не наблюдается. Как думаете, стоит такое обновление $199?

теги: , ,

1 комментарий.



  • twitter
  • rss
  • хабр
  • жежека
  • ластфм