Search
Write a publication
Pull to refresh
6
0
ivanr @ivanr

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

Send message

Работаем с Google Protocol Buffer в РНР

Reading time9 min
Views14K
pb4php_logoВ проекте, который я сейчас разрабатываю, возникла необходимость смены протокола, который используется для обмена данными между частями приложения. Сейчас, на уровне внутренних сервисов, обмен происходит через передачу сериализированных массивов РНР поверх TCP сокетов. Так как по обе стороны находятся приложения на РНР, проблем не возникает, формат пакета данных также стандартный, поэтому особых сложностей нет. Разве что часто меня не удовлетворяет скорость обработки, а также то, что мы сильно завязаны на язык и платформу. Если придется стыковать с другой системой или же переписать что-либо, будут сложности — ведь сериализированный формат поймет лишь родной язык, а писать парсер мне не очень хочется. Первоначальный выбор был более чем оправданным — скорость разработки и отладки были приоритетными, сейчас есть немного времени и желания посмотреть на архитектуру с высока и другим взглядом.

Следует сказать, что данные передаются самые простые — строки (различной длины, на практике длинее килобайта или десятка почти нет, обычно это сотни байт), целые числа (в том числе и unix timestamp), некоторый набор констант, true/false флаги, только в одном случае передаются значения с плавающей точкой. В принципе, все сводится к трем типам данных — строка, целое число, число с плавающей точкой. Если хотеть, можно выделить еще поле кода команды, которое можно отнести к перечисляемому виду (количество команд ограничено и конечно, хоть и растет с ростом системы). В сериализированном виде такой пакет занимает достаточно много места, и хоть передаются данные по сокетах в пределах локальной машины, это все равно не выход — изначально система такая, что должна допускать динамическое расширение на несколько узлов кластера.

Узнать, что далее...

WebKit и expression

Reading time1 min
Views708
Да, это не опечатка! Внезапно обнаружил, что конструкция:

.myclass {behavior:expression((function(){})(this))}

читается WebKit (Chrome, Safari) браузерами и стили после ней браузер не воспринимает и, соответственно, не применяет. Опытным путём было установлено, что проблема в этой конструкции в символах "{" и "}", которые в сумме вызывают какие-то метаморфозы в браузерах. Причём если убрать "{", то баг исчезает, а если "}", то остаётся. Естественно, наличие ";" в конце правила, тип селектора (т.е даже если это будет селектор для ИЕ, вроде * html [selector]), тип правила (например предварение правила "//" или "_") ситуации НЕ исправляют, иначе было бы не так уж и страшно!

Особенно знание этого бага полезно людям, любящим объединять все стили в один файл, не вынося стили для IE в отдельный файл, вместо этого используя star-hack и иже с ним! В любом случае если вы относитесь к тем, кто не выносит стили для Internet Explorer'a в отдельный файл, то пишите хотя бы expression'ы в конце файла, иначе долго будете искать причину проблем!

20 полезных и красивых веб приложений

Reading time1 min
Views7.2K
Мы постоянно должны быть вдохновлены, чтобы не отставать от моды.

В этой статье я покажу вам 20 приложений, которые вдохновили нас, веб-приложения, которые изменили мир.

Давайте начнём.

Reinvigorate




Инструмент для отслеживания трафика в реальном времени с множеством полезных функций, включая «heat sensing».
Читаем Дальще

А давайте подружимся с SSH

Reading time7 min
Views3.3K
Многие мои знакомые так или иначе используют протокол SSH (заходя на свои роутеры, веб хостинги и непосредственно на собственные компьютеры дома и в офисе), при этом не все об этом знают.



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

В этой заметке вы узнаете:
  • как прописать псевдонимы для соединений
  • как настроить авторизацию без пароля
  • как передавать файлы по SSH
  • как запускать графические приложения по SSH
  • а так же получите общие советы по опциям SSHD


Читать дальше →

35 свежих и полезных jQuery плагинов

Reading time6 min
Views46K
Быстрый и мощный jQuery может помочь дизайнерам и разработчикам в создании прекрасных интерактивных сайтов, которые будут привлекательными и совместимыми с большинством из браузеров. Ваш сайт будет и интересным и развлекательным. Навигация, галереи и слайдшоу являются теми компонентами, которые могут блистать на вашем сайте.

Данная статья содержит 35 полезных и свежих jQuery плагинов сфокусированных на навигации, галереях, слайдшоу, календарях, табуляции и т.д., которые уменьшат время и требуемые усилия для увеличения количества посетителей вашего сайта.
Читаем дальше...

1001-ый способ вертикального выравнивания

Reading time2 min
Views128K
О вертикальном выравнивании блока неизвестной высоты по центру или низу родителя сказано много. Есть способы, основанные на display:table-cell для хороших браузеров (без кавычек) и expression для IE, способы, основанные на относительном позиционировании (могут плохо работать при переполнении). В этой заметке будет описан способ, работающий на особенностях такого мощного отображения, как встроенный блок (display:inline-block).
Читать дальше →

Договор на техническое обслуживание и поддержку сайта

Reading time9 min
Views125K
Добрый день, коллеги!

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

Интересный подход для кэширования моделей

Reading time3 min
Views1.7K
На днях я получил задание реализовать кэширование в моделях. В обсуждениях с коллегами родилась довольно интересная, на мой взгляд, идея, которую я бы хотел выставить на ваш суд.
Читать дальше →

Простота в хорошем веб-дизайне

Reading time4 min
Views12K
Простота в дизайне сайта не обязательно должно означать минималистическую эстетику. В простых сайтах просто убираются все ненужные элементы из дизайна, содержимого и кода. В то время как минималистические сайты в основном соответствуют этим критериям, существуют много сайтов, которые никак нельзя отнести к минималистическим, но они все же являются простыми.



Данная статья содержит список нескольких преимуществ простого дизайна сайта, также некоторые легкие методы для упрощения процесса дизайна.
Идем дальше...

Пример хорошего промо-сайта

Reading time1 min
Views3.2K
Честно скажу — балдею от Форд Мустанга, буквально оргазмирую ;) И мооожет быть… когдааа нибудь… у меня такой будет. А пока — периодическое посматривание этого монстрика лишь мотивирует меня, заставляя делать больше и лучше )

image

Да, дорого, непрактично в наших реалиях… (можете написать мне еще тысячу доводов), но сегодня зашел на новый сайт и…
Читать дальше →

Текст любой ценой: WCBFF и DOC

Reading time9 min
Views29K
Несколько позже, чем хотелось, но продолжаем наш разговор о получении текста из разных форматов данных. Мы с вами уже познакомились с тем, как работать с изначально XML-base файлами (docx и odt), прочитали текст из pdf, преобразовали содержимое rtf в plain-text. Теперь перейдём в вкусненькому да сладенькому — формату DOC.
Читать дальше →

7 шагов для систематизации процесса дизайна и разработки

Reading time6 min
Views4.4K
Систематизация означает создание процессов или предопределенного набора мер, которые предназначены для ускорения выполнения трудоемких и повторяющихся задач.

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

Социальная сеть, сайт, портал и стартап для художников и иллюстраторов illustrators.ru

Reading time2 min
Views4.1K
Знакомьтесь, Illustrators.ru!

Так как я сам работал долгое время художником-иллюстратором, несколько лет назад появилась идея сделать сайт, который объединил бы под своим началом профессиональных авторов со всей территории бывшего Советского Союза. После распада СССР сама профессия практически исчезла, оставив армию стареющих безработных книжных и журнальных иллюстраторов. И только в начале 2000-х годов начали появляться новые авторы, которые в отличие от старой гвардии рисуют на компьютерах, с помощью чудесной диковины — планшета Wacom!

Основным отличием от профильных ресурсов, являлось то, что на сайте существовала система премодерирования авторов. На сайт не могли попасть начинающие авторы и любители «порисовать». Только профессионалы, которые зарабатывают иллюстрацией на жизнь. За это время на сайте зарегистрировалось не так много авторов, всего около 1600. Но это действительно профессиональные авторы и этим сайт на мой взгляд ценен в первую очередь и эту ценность надо сохранить для потомков :).

Первая версия сайта стартовала в 2006 году, примерно через полтора года появилась вторая обновленная версия, но на том же самописном PHP-движке, изменен был по сути только дизайн.

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

image

Читать дальше →

Как подружить фриланс и полную занятость?

Reading time4 min
Views2.3K

Пролог


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

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

Как сделать сайт более iPhone-совместимым за 5 шагов

Reading time2 min
Views55K
Тот факт, что iPhone предлагает наиболее развитый мобильный браузер среди мобильных платформ, пожалуй, ни у кого не вызовет сомнений. Однако не все знают, что довольно небольшими усилиями можно сайт сделать еще более дружественным к тем, кто смотрят его на iPhone или iPod Touch.

Ниже предлагаются простые 5 шагов, с которых можно начать, на примере сайта WHOIS Digger.

Шаг 1. Аналог favicon.ico

Когда пользователь создает ссылку на ваш сайт в виде иконки в SpringBoard, iPhone автоматически формирует картинку из скриншота страницы. В результате почти всегда получается неразборчивая каша, которая на гордое звание «иконки для iPhone» никак не тянет. Пропишите этот тег в заголовке страницы:

<link rel="apple-touch-icon" href="res/iphone_icon.png" />

и добавьте соответствующую картинку res/iphone_icon.png размером 57х57 пикселов. iPhone сам добавит скругленные углы и полукруглый блик, сделав вашу иконку похожей на остальные.

Вот так выглядит исходная картинка и иконка на рабочем столе iPhone:


Читать дальше →

Откуда берутся посредственные сайты?

Reading time4 min
Views1.7K
image
Автор изображения: wiseacre.

Кто виноват?


Кем бы вы ни были: фрилансером, сотрудником веб-студии, заказчиком сайта или просто сторонним наблюдателем — наверняка вы задавались вопросом «Откуда в русском интернете столько плохих сайтов?». Кто виноват в том, что в рунете много сайтов с неудобной навигацией, непродуманной типографикой, бестолковыми текстами и неряшливыми картинками. Работники студий? Фрилансеры? Клиенты? Давайте копнем глубже и посмотрим на процесс создания сайтов в различных студиях.
Читать дальше →

Откуда действительно берутся посредственные сайты

Reading time4 min
Views979
Я не то что не согласен с предыдущим оратором, я просто долгое время принимал участие в создании посредственных сайтов. Не в рунете конечно, но здесь у нас происходит такая же фигня.

Сперва стоит определиться, и далее не путать посредственные сайты с откровенно идиотскими сайтами. Первые вроде как ничего сами по себе, но особого восторга не вызывают, юзабилити где-то на среднем уровне, косячки вылезают и прочие неудобства. В общем, клиенту нравится, а гордиться таким сайтом никто не будет. Другое дело идиотские сайты — это большинство поделки фрилансеров-недоучек, у которых единственный плюс, что они стоят 2 тыщи рублей штука. Последние я не рассматриваю.

Итак, процесс создания посредственного сайта…

Читать дальше →

3 способа улучшить общение с клиентами

Reading time4 min
Views5.7K
В интернете очень легко стать безличным. Мы прячемся за никами, псевдо-организациями, номерами мессенджеров и адресами электронной почты. Но при этом мы все ещё остаемся живыми, чувствительными и привязанными к реальному общению людьми. И чем более безличным становится отношение между нами, тем меньше доверия и привязанности остается. В данном случае, я говорю не только о любви или дружбе. Это также сильно влияет на бизнес-связи, и неправильное позиционирование легко превратит ваш «теплый и уютный» бренд в «холодный и машиноподобный».

Я хочу посоветовать 3 простых способа сделать общение с клиентами в интернете гораздо более персональным. Эти проверенные методы не только улучшат ваш PR с нынешними заказчиками, но и помогут не отпугивать новых потенциальных покупателей.

upd: спасибо, перенес во Фриланс.

Читать дальше →

jQueryPad — мечта разработчика jQuery

Reading time1 min
Views1.6K
Доступен для бесплатной загрузки инструмент jQueryPad, который может значительно облегчить жизнь разработчикам использующим jQuery. Этот инструмент предлагает работу с целевым html, запросами jQuery и результатом запросов в одном окне:



Здесь, нижняя часть с текстом — это встроенный компонент Internet Explorer с результатом работы jQuery и возможностью посмотреть исходный код. jQueryPad так же находит другие установленные браузеры для организации просмотра результата в них. Пример найденных браузеров на скриншоте в блоге автора.

jQueryPad написан на WPF и требует для работы .NET Framework 3.5 Service Pack 1

Почитать анонс jQueryPad можно в блоге автора.
Прямая ссылка на архив с программой.

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity