воскресенье, марта 30, 2014

Что, выпивая пачку чаю,...

Побочно запустил людям чайный сайтик.

Побочные проектики вообще странная вещь. Вылупляются себе и вылупляются. А основные - вечно без пяти секунд почти вот-вот уже совсем немножко допилить.

В сайтике из примечательного, пожалуй, ценники. Каждый товар имеет стандартные фасовки и возможность заказать произвольную. Цена пересчитывается на лету с учётом скидок и - тадаааааам! - сортности чая, каковая сортность у каждой позиции может разбрасываться от 1 до 6. Это оказалось немного хлопотно.

понедельник, марта 24, 2014

DLE: я упал об стол

Есть такой чудо-движок невероятной уродливости.

Тем не менее, иногда приходится по мелочи подшаманивать сайты, имевшие несчастье на нём быть сделанными.

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

Оказалось, что статья отнесена в 2 категории. Но системная переменная, хранящая категорию,  скалярная.

Полез посмотреть таблицы напрямую.

Думаю, в таком случае там есть таблица категорий, таблица статей и таблица привязки второго к первому.

Уже тип поля category в dle_post (VARCHAR(200)) внушил худшие опасения.

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

*HEADSHOT.JPG*

среда, февраля 12, 2014

Сказ о том, как платёжная система с хостингом не подружилась

Злободневное, и может сэкономить кому-то время и мозг.

Подключал платёжную систему PayAnyWay (Монета.Ру) к сайту на Фабрике Хостинга (hostfabrica.ru). Всё нормально, но не доставляется техническое уведомление о прохождении платежа. Оно происходит невидимо для пользователя. Пользователь получает своё спасибо, деньги поступают, но на технический е-мейл начинают десятками идти сообщения от Монеты.Ру о невозможности передать уведомление.

Техподдержка Монеты.Ру поясняет, что их сервер по адресу Pay URL получает 403.

Делаю запрос из браузера руками: всё работает.

Техподдержка Фабрики Хостинга предполагает, что Монета.Ру не передаёт user-agent, и такие запросы получают 403.

Монета.Ру отвечает, что user-agent передаётся.

Круг замкнулся, мои возможности были исчерпаны.

Можно было попробовать ввести их в диалог друг с другом, но - время. Поэтому просто перевёл сайт на другую площадку (hostline.ru). Всё работает.

Итоги:

1) если непонятно не работает уведомление на Pay URL от Монеты.Ру, причина может быть в блокировании их робота хостером.

2) до решения этой проблемы сайты с подключенной Монетой.Ру не будут полноценно работать на Фабрике Хостинга. Вряд ли их конфигурация в этом уникальна. То есть нестыковка может происходить и на других площадках.

понедельник, января 20, 2014

Разделение сиамских близнецов с помощью .htaccess

Вот ещё было: делал сайт (по субподряду, поэтому - без ссылки). У сайта, как водится, есть нормальное доменное имя и техническое. По недогляду СЕОшников подрядчика технический домен утёк в Гуглояндексы и стал выдаваться лучше нормального.

Написал в .htaccess правило переадресации: если домен не такой-то, ответить 301 на домен такой-то с тем же запросом. Но оно не заработало.

Почитав phpinfo(), увидел, что конкретный хостинг-провайдер обслуживает оба домена через прокси, перезаписывающий заголовки. И все запросы на сайт приходят с правильным доменом, несмотря на то, что клиент работает с неправильным.

После минуты паники ещё раз просмотрел переменные окружения Апача в том и ином случае и переписал правило:

RewriteCond %{HTTP:X-FORWARDED-FOR} ^ай.пи.прокси.провайдера [NC]
RewriteRule ^(.*)$ http://правильный.сайт/$1 [L,R=301] 

Правило эксплуатирует особенность настройки конкретного хостера: при обращении на нормальный домен X-Forwarded-For содержит, как и положено, айпи клиента, а при обращении на технический - айпи прокси, адрес клиента указывается отдельно в X-Real-IP.

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

Гугл видит, Гугл знает

Для одного проекта делалось получение геокоординат клиента.

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

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

Браузер (конкретно - Хром), похоже, может получить от ОС список видимых Wi-Fi сетей (не нужно быть ассоциированным для этого) и уровень их сигналов.

Для проверки выключил на компьютере Wi-Fi совсем. Моментально "переместился" в другой район города.

ОК, но как Гугл знает, где находится конкретная AP, положение которой никогда ему не сообщалось?

Оказывается, сообщалось :-) Если верить людям, Андроид-устройства с включенным позиционированием сообщают Гуглу видимые им AP, их SSID, MAC и уровень сигнала. Информация накапливается, дальше всё просто.

Поскольку я сам пару раз включал GPS в офисе, очень вероятно, что и я приложил руку к чуду своего обнаружения :-)

В моей работе такая любознательность Гугла скорее большой плюс. Впрочем, в чьей-нибудь ещё работе тоже :-) В конце концов, трафик на Гугл, как и любой другой, не идёт бесконтрольно.

Думаю, системой позиционирования пациентов по Wi-Fi сетям не только они располагают, так-та.


Поисковикам читать

Уважаемые поисковики,

начните уже, пожалуйста, находить этот сайт, а то вы зае  заранее благодарен.

среда, ноября 27, 2013

воскресенье, мая 19, 2013

Идентификация от Google: стоп машина

Взяли и сменились идентификаторы пользователей, возвращаемые Гуглем после аутентификации.

Взяли и отвалились юзерские аккаунты, связанные с этими идентификаторами.

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

Я за Стабильность потому что.

четверг, мая 16, 2013

Ещё один редизайн

...просто до кучи. Набросок к фейслифтингу существующего сайта, по заказу рекламного агентства. Здесь одновременно светлый и тёмный варианты, для краткости (есть и раздельно прорисованные). Логотип вот... но его надо сохранить.


"Курильский": редизайн

Сайт заповедника проходит редизайн и перелопачивание в соответствии с новыми веяниями (responsive design), осоциаливание, переход на текущую версию моего сайтодвигла (точнее, двигло получит новую версию благодаря редизайну этого сайта: в частности, делается единый класс для работы с изображениями, после чего все изображения станут социализируемыми, перепостируемыми, картографируемыми, комментируемыми... емыми... емыми...).

Дизайн согласован, будут мелкие изменения, несущественные. Показан вариант для настольного монитора.


среда, апреля 24, 2013

Краткая сводка спусков на воду

Запущен довольно давно, но не упомянут в личной истории туристический сайт Находки. Проект издательства "Тихоокеанский горизонт".

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

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

Из занимательного, во-первых, 3D-туры по заведениям (на сегодня один, но люди работают), во-вторых, некоторая интеграция с всеми нами тут любимым nakhodka.info: прологинившись на tur-n.ru через социальные сервисы (проще говоря - через Логинзу), можно в пару кликов перетянуть с Находки.Инфо свой ник и аватар и в будущем их синхронизировать. Тут я немного приподнял портьеру, но всё уже работает и будет открыто посетителям сегодня, так что приподнял совсем немного.

Второй сайт - визитка автошколы. Не представляла бы интереса, если бы была сделана простой визиткой. но это было скучно. Поэтому от себя добавил раздел "Практикум", где, во-первых, инструкторы школы объясняют трудные места Находки с использованием Яндекс-карты (пока совсем мало объяснений, но и сайт едва запущен); во-вторых, можно посмотреть записи реальной сдачи экзамена с регистратора, с командами гайца, то есть весь процесс (вырезал молчаливые длинноты - кстати, лучший видеоредактор под Линуксом для казуального применения - OpenShot).

Теперь полагается о творческих планах. Сейчас усиленно готовится к запуску ещё один социально-ориентированный сервис, тоже городской, но с перспективами масштабирования. Забавно, что это практически мой проект 2-летней давности, недавно изложенный мне по телефону приятелем ("Есть офигенная идея!") - был когда-то даже частично доведён до работоспособности когда-то, но позаброшен в суете и отсутствии менеджмента. Прежний код я даже не смотрел, пишу всё заново, потому что, как любой собственный код годичной и более давности, он вызовет депрессию и стыд, а кому этого хочется.

четверг, апреля 04, 2013

Починка Janome MB-4: [SOLVED]

Во-первых, это первой пост в 2013 году, надо бы поздравить себя, но не с чем. Наверстаю.

Во-вторых, ниже следует рассказ о ремонте вышивальной машины MB-4 в домашних условиях.

Возраст машины 4 года (пробег не адский, однако). Симптомы:

1) Явно повышенный нагрев.

2) После остановки иглы машина делает несколько холостых движений, потом просит выключить и включить питание. После этого сообщает о неработающем игловодителе и просит нажать ОК. После этого снова делает несколько холостых движений, и либо начинает работать, либо просит снова отключить питание, и так по кругу. В итоге любая остановка вышивки (смена цвета, например), превращается в долгую процедуру с ручной установкой позиции.

Наблюдения:

1) возникает через 15-20 минут после начала работы (связано с нагревом?);

2) сообщение о неработающем игловодителе можно убрать с экрана, если вручную провернуть вал за крутилку сзади машины. В каком-то положении сообщение исчезает.

3) вал проворачивается с серьёзным усилием.

Прочитано в интернетах:

1) на русском языке - ничего нет,

2) на американском проблема описана, часто обсуждается на форумах, даже имеет название - grinding. Лечится авторизованным сервисом, до которого мне ехать несколько тысяч километров. Кто-то сообщил, что помогла смазка, за что его зашикали: и смазку нужную невозможно достать, и запас смазки в машине рассчитан на весь срок эксплуатации, и - вообще, нечего кривыми ручками куда ни попадя.

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

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

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

Есть ещё натяжной ролик на приводном ремне челнока - осторожно нанёс в зазор немного смазки, чтобы не попало на ремень.

После сборки все неисправности ушли, нагрев стал нормальным (то есть еле-еле), через час работы звук машины стал заметно тише.

Как грицо, хозяйке на заметку. Мало ли, кто-то ещё сейчас думает, какая беда, MB-4 работать устала. А ей просто дискомфортно и неприятно сухо.

вторник, декабря 25, 2012

К нам на утренний рассол...

...забегал сегодня в "НТС Тур" (делал им когда-то небольшой сайтик), услышал занимательную историю. Якобы в этом году на базе Dream Bay отдыхал чилийский посол. Критерием, по которому база была выбрана, стал тот самый небольшой сайтик.

Клянутся, что так всё и было. "Порой не верится, друзья, и всё-таки - бывает" :-)

суббота, декабря 22, 2012

четверг, декабря 20, 2012

Тик-так часики... вечером в Техасике...

...Приехав в "Техас" пообщаться совершенно по другому поводу, уехал с данным обещанием подумать, что бы такого им демонстрировать на сцене с проектора. К примеру, часики.

Flash исключается, 3D - я и подзабыл порядком Блендер, и использовал его только для статичных картинок.

Осталось прибегнуть к тому, что хорошо знакомо: HTML + CSS + Javascript.

Нашёл в инете вот это.

Изучил. Первое, графику надо прорисовывать заново. Второе, Яваскрипт, который всем этим заправляет, конечно, как это - sophisticated, - но это же полный, как это - overkill. В общем, Яваскрипт решил тоже сделать свой. В итоге от оригинальных часиков осталась идея указания времени посредством трёх стрелок - по одной для часов, минут и секунд, что тоже не вполне оригинально.

Часики нарисовал в Инкскейпе в виде черыёх объектов: фон и три стрелки, всё тщательно выровнено относительно, как это - bounding box, - затем этот квадрат размножен на четыре, и каждый объект с ним сгруппирован. Таким образом, при экспорте в растр все объекты гарантированно имеют общий центр. Экспортировал с большим, даже огромным запасом разрешения, чтобы даже на проекторе Full HD было эротишненько.

Собирается в HTML внутри квадратного блока: три блока для графики стрелок, абсолютно позиционированы и равны контейнеру.

Стрелки крутятся путём CSS Transitions, что оставляет за бортом всякие там недобраузеры, благо это делается для одного-единственного клиента.

Для транзишнов использован jquery.transit.js.

Итоговый Яваскрипт, в отличие от оригинального (кому лень смотреть - там два экрана мелким почерком), следующий:

$(document).ready(function(){
                
   var Now = new Date();
   var Hour = Now.getHours();
   var Minute = Now.getMinutes();
   var Second = Now.getSeconds();
                
   Hour=(Hour > 12)? Hour-12 : Hour;
                
   var angleSecond = Second * 6;
   var angleMinute = Minute * 6 + Second*.1;
   var angleHour = Hour * 30 + Minute*.5;
                
   $('#analogHour').transition({rotate: angleHour});
   $('#analogMinute').transition({rotate: angleMinute});
   $('#analogSecond').transition({rotate: angleSecond});
                
   setInterval(function() {
      doAnimation($('#analogSecond'), 6, 500);
      doAnimation($('#analogMinute'), .1, 500);
   }, 1000);
                
   setInterval(function() {
      doAnimation($('#analogHour'), .5, 500);
      }, 60000);
                
});
            
function doAnimation(obj, angle, timing){
   obj.transition({rotate: '+='+angle}, timing);
}

Попробовал - тикает, зараза! Для проверки накопления ошибки (всё-таки вращение, а часики выставляются только в момент запуска и далее тикают независимо от часов компьютера) оставил на ночь. Утром увидел опережение на минуту: 9:05 на компьютере, шесть минут десятого в браузере. Не успел сказать "тваюжтымать", как часы компьютера перескочили на шесть минут: они ж дискретные, ёлы-палы.

Осталось проверить в деле, для чего поехал в "Техас" с флешкой. Запустили в Chrome, вывели на проектор - ну прямо мняшка.

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



понедельник, декабря 03, 2012

Попёр Новый Год - 2

Корпоративная НГ открытка.

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

С утра решил дорисовать яйцо. Колпак новогодний, стрёмный. Ну всё плохо.

Решил придать масштаба - пририсовать сбоку маленького человечка.

Вспомнил "Археологическую реминисценцию" и позаимствовал человечков оттуда.

Потом осталось только сказать: "Йопа!" - и переделать всё в том же духе, включая новогодний колпак.

Набор далианских штампов, слава богу, читается людьми свободно. Кроме "Реминисценции" здесь явно икнулось "Рождение геополитического человека".




четверг, ноября 29, 2012

Попёр Новый Год

...первая в этом году - "Злата".

С завтрашнего дня по 12 января будет выглядеть вот так (то есть обе ссылки будут выглядеть одинаково). Ну и брильянтовый ажиотаж :-)

вторник, ноября 20, 2012

Из чего состоит успех сайта

15% проектирования, во всех смыслах.

5% программирования.

0,1% SEO.

0% графического дизайна.

79,9% послестартового участия владельца в своём ресурсе.

По итогам перепросмотра сделанных сайтов: растущих, выросших, прозябающих, умерших.

Это - реальность.

С точки зрения большинства заказчиков же: 60% графического дизайна, 30% SEO, 10% финтифлюшек. В их представлении, они платят за эти вещи. На самом деле, они покупают машину у ворот завода. Если её поставить на постамент, то зачем вообще покупать?

четверг, ноября 08, 2012

Конструктор дымоходов - теперь и на планшетах

Пропатчил свой констуктор:
  1. добавил Mobile_Detect.php для распознавания планшетов;
  2. для планшетов дополнительно подгружается jQuery UI Touch Punch;
  3. тап-драг работает!
Для телефонов решил оставить констуктор view-only, без конструкторской части, потому что на телефоне любого размера это всё равно нереально.

Мой Acer A701 не определялся как планшет, пока не исправил Mobile_Detect.php:

строка 74
'AcerTablet'        => 'Android.*\b(A100|A101|A200|A500|A501|A510|W500|W500P|W501|W501P)\b',

на

строка 74
'AcerTablet'        => 'Android.*\b(A100|A101|A200|A500|A501|A510|A700|A701|W500|W500P|W501|W501P)\b',

Разработчик уведомлен.

Ребёнок у моря: дежа вю

Случайно увидел такое в инете:


Вспомнил свою картинку с сыном, использованную на обложку журнала от 2002 года:


Просто занимательное совпадение. Думаю, похожих сюжетов существует over 10,000. Я лично вдохновлялся этим:


Поиск по этому блогу