Pull to refresh
5
0
Юрий @script

User

Send message

Вся правда о шаблонизаторах

Reading time10 min
Views35K
Статейка старенькая, но думаю до сих пор актуальная

Cлишком часто я в последнее время слышу слово «шаблонизатор». Не утихают споры между сторонниками разных шаблонных движков. Одни говорят что логика в шаблонах это хорошо, другие считают что это зло. Даже сейчас очень часто встречаются проекты, написанные вообще без применения какого либо шаблонизатора. Но в этой статье я не буду предпринимать попыток стать на сторону одной из сторон. Я не буду вам доказывать преимущества ни одного из подходов. Я просто постараюсь рассказать обо всех из них с точки зрения теории. Эта статья не о конкретных программных продуктах, а о способах выделения логики представления в ваших приложениях.
Читать дальше →

В поисках идеала

Reading time2 min
Views1.8K
Раз пошла такая пьянка, то и я, в свою очередь, решил представить на суд общественности свой вариант макета, который, как мне кажется, находится очень близко к идеальному.
И вот что у меня получилось в итоге?

Кэширование js сжатием gzip

Reading time2 min
Views4.2K
Cache — временные данные или устройство по их хранению, созданные для ускорения чтения/записи. Все программисты это знают. Ускорение загрузки web-сайтов тема обширная, начинающаяся с сервера и заканчивающаяся клиентом. К сожалению я не нашёл более-менее подходящих решений по объединению и кэшированию js-кода, поэтому к своему блогу я написал свою схему, о которой вкратце и расскажу..
Существует сжатие «packer», которое убирает все символы форматирования и переименовывает имена функций и переменных в js и предоставляет т.н. minified-версию скрипта. Все с этим прекрасно знакомы на примере больших библиотек jQuery, TinyMCE, prototype. Кроме того что код становится совершенно не читаемым, это может вызвать неработоспособность кода, когда имена переменных динамические.
Моя идея простая — разделять js/css по файлам разработчикам надо для поддержания модульной структуры. Обычно я в контроллере создаю список файлов которые надо присоединить к данному документу, вместо того что-бы прописывать это вручную в темплейте. Но теперь надо сделать так, что-бы до показа темплейта вызывалась функция кэширования, которая проходилась бы по списку, проверяла из них локальные файлы на время изменения, объединяла в один файл и создавала или перезаписывала gz-файл с именем, сформированным из md5-хэша имён входящих файлов.
Всё просто и в сумме заняло часа 4 на раздумье. Привожу метод cache_js из класса Controller.
Читать дальше →

Автоматическое определение языка произвольного текста на РНР — библиотека PHPLangautodetect

Reading time15 min
Views20K
Знаете, работа с стартапе, который пытается создать что-то новое и уникальное на рынке очень захватывает. И не только открывающимися возможностями, но и часто нетривиальными задачами и вопросами, которые ставятся перед создателями и которые раньше никто не решал. Вот один из таких вопросов как раз вчера появился передо мной: дано нам произвольную строку текста, заведомо известно, что она может быть двух, а в некоторых случаях и трехъязычной, то есть там смешанный текст из нескольких языков. Необходимо прозрачно для пользователя определить язык, на котором написан текст.

На самом деле задача не такая и редкая — подобная функциональность есть и в текстовых редакторах, и в переключателе клавиатуры PuntoSwitcher, да и в системах машинного перевода такой функционал востребован, не говоря уже про системы поиска информации. Кстати, именно в контексте создания специализированного поисковика и классификатора текстов и появилась такая проблема. Необходимо было получить такую возможность в собственной программе на платформе РНР и при этом не задействовать сторонние сервисы — подобная возможность в виде веб-сервиса присутствует в Google Language API (в своём блоге я уже исследовал этот сервис), однако она выполняется удалённо и имеет некоторые существенные для нас ограничения, в частности, процедура опознания языка выполняется с существенной задержкой и асинхронна по своей природе. Кроме этого очень хотелось иметь полный контроль над процессом и иметь возможность его гибко настраивать, чего, увы, нет в сторонних сервисах. Поэтому пришлось подумать и попробовать реализовать собственными силами, результат же представляем вашему вниманию.
Читать дальше →

Оптимизация размера файлов: уплотняем поток

Reading time1 min
Views1.4K
После ряда статей на тему минимизации размера файлов и распределения их по нескольким хостам у меня возник вопрос: какое оптимальное соотношение между числом (или размером) «встроенных» и внешних файлов? Какая часть страницы должна загружаться вместе с основным HTML-файлом, а какая — только с внешними файлами? Для решения этих и ряда других вопросов я собрал тестовое окружение в виде одной странице, для которой применены различные оптимизационные техники (заодно и посмотрел, как реально все эти техники влияют на скорость загрузки страницы).

Шаг первый: простая страница



Начал я с обычной страницы, для которой использовалось только gzip-сжатие HTML-файла. Это самое простое, что может быть сделано для оптимизации страницы (на самом деле, причиной было то, что мне не хотелось специально отключать сжатие для одного хоста, а потом его включать обратно :). Данная страница бралась за основу, с которой сравнивалось все остальное.

читать дальше на webo.in →

2+3

Reading time1 min
Views726
Маленькая заметка о том как запускать несколько разных версий Лиса. Простым пользователям нафиг ненадо, а вот вебразработчикам и кодерам пригодится.
Предположим у вас уже есть Лис версии 2.0.*, и вы стремясь к рекорду скачали 3.0. Не спешите ставить, если все пустить на самотек — установку по умолчанию то затрется ваш предведущий профайл. Поэтому запускаем уже установленую версию фокса с ключем -ProfileManager, примерно так firefox -ProfileManager.
Создаем дополнительный профайл, после чего начинаем установку третьей версии. Ее необходимо ставить отдельно не в туже директорию, я выбрал директорию рядом. Получилось примерно так, особой гениальностью я не блистаю потому и приставка к версии.

Версия Куда поставил Профиль
2.0.14 C:/Program Files/Firefox/2.0.14/ 2.0.14
3.0 C:/Program Files/Firefox/3.0/ 3.0


А теперь давайте создадим башскрипт firefox.bat который собственно и будет запускать фокс
@echo off
set MOZ_NO_REMOTE=1
start "" "C:\Program Files\Firefox\%1\firefox.exe" -p %1
set MOZ_NO_REMOTE=0


Это мой батник, под мои условия установки (всего 1 файл). Если у вас пути отличаются или профайлы по-другом называются, измените его под свои условия, или создайте для каждой версии свою версию. Я же создал два ярлыка для башскрипта, и пеердаю в качестве аргумента версию Лисицы.

Ну а теперь задача за малым, как различать версии по ярлыкам? Просто укажите путь к новым иконкам которые вы можете взять со следующих источников



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

Государственная регистрация бизнеса

Reading time10 min
Views7.2K
Ко дню рождения своей компании хочу поделиться с Хабром опытом и знаниями по регистрации юридического лица, которые приобрел за год. Я не юрист и не бухгалтер, поэтому, как говорят в американской рекламе, перед применением проконсультируйтесь со специалистом. Постараюсь расказать про налоги при упрощенной системе налогообложения, про процесс регистрации юрлица, про госорганы, с которыми потребуется взаимодействовать. Надеюсь поможет кому-нибудь не совершить ошибок, которые я совершил. Все приведенные цифры справедливы на дату публикации хабратопика, факты из жизни относятся к Москве.

1. Налоги
Существует основной режим налогообложения (ОСНО) и несколько спецрежимов. Один из спецрежимов — упрощенная система налогообложения (УСН, УСНО или упрощенка). Право на упрощенку имеют малые предприятия с годовым оборотом, не превышающим примерно 20 млн рублей (точную сумму можно получить, применив к сумме, указанной в главе 26.2 налогового кодекса РФ инфляционные коэффициенты). Кроме того, есть ограничение по численности штатных сотрудников (не более 100 человек) и некоторые ограничения по видам деятельности. Далее мы будем говорить только об УСНО, так как ведением учета по ОСНО не владею.

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

Ежедневная порция знаний. Хочется больше.

Reading time2 min
Views1.1K
Прошу отнестись терпимо и дочитать до конца. Может быть это не совсем подходящий блог, и вообще было бы лучше создать отдельный (на что пока не хватает кармы).

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

Мне нужно быть в курсе возможностей современных технологий и тенденций, чтобы знать что сделать можно, чего нельзя, что хорошо, что плохо. Поэтому я ежедневно получаю порцию знаний. Многие источники у нас с тобой, читатель, конечно совпадут. Но, разумеется, кто-то здесь найдет новое. Это наиболее авторитетные, сильные источники. Даю гарантию, что если вы с ними не знакомы, то познакомившись вырастете на несколько уровней. От них уже расходятся второсортные ручейки, ученики. Итак, источники (порядок ничего не значит):
Читать дальше →

sup рвёт тексты

Reading time1 min
Views4.2K
Почти все сайты использующие тег SUP никак не инструктируют браузер как его отображать. А ведь отображение по-умолчанию откровенно хромает — тег этот рвёт тексты, высота строки где присутствует SUP увеличивается и в результате нам предстают хаотично разбросанные строки, а не параграф. Сложно даже быстро понять, является ли такое экстра-пространство разбивкой между строками, или между параграфами.


Два варианта superscript'а: «мой» и стандартный.

Самое интересное, что такое поведение можно легко исправить, достаточно добавить глобальный стиль навроде этого:
Читать дальше →

Оформление кликабельных картинок

Reading time1 min
Views7.6K
img

Очень практично оформлять кликабельные картинки, к примеру при наведении на картинку появится изображения говорящее о том что эта картинка кликабельна — как на картинке выше.
Читать дальше

Выбираем доменную зону

Reading time9 min
Views128K
Более 24 лёт прошло с изобретения доменных имён (и 18 — с создания Всемирной паутины), а люди так до конца и не освоились в вопросе выбора доменного имени для сайта.

До сих пор распространено нелепое суеверие, будто домены третьего уровня менее привлекательны, нежели домены второго уровня; более того, не так давно мне приходилось сталкиваться с утверждениями, будто домен в зоне .info неприличен — и почему? только лишь из-за низкой цены!

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

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

40 советов по оптимизации вашего PHP-кода

Reading time4 min
Views57K
Всем доброго времени суток.

Перевод заметки "40 Tips for optimizing your php code". Автор — Reinhold Weber.

  1. Если метод может быть статическим, объявляйте его статическим.
  2. echo быстрее, чем print.
  3. Передавайте в echo несколько параметров, вместо того, чтобы использовать конкатенацию строк.
  4. Устанавливайте максимальное количество проходов ваших циклов for до цикла, а не во время его выполнения.
  5. Удаляйте свои переменные для освобождения памяти, тем более, если это большие массивы.
  6. Остерегайтесь магических методов, таких как __set, __get, __autoload.
  7. require_once дорого обходится.
  8. Указывайте полные пути в конструкциях include/require, меньше времени будет тратится на поиск файла.
  9. Если вам необходимо определить время, когда скрипт был запущен, используйте $_SERVER[’REQUEST_TIME’] вместо time().
  10. Старайтесь использовать strncasecmp, strpbrk и stripos вместо регулярных выражений.

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

Кастомайзим INPUT FILE.

Reading time3 min
Views68
Когда-то давно видел подобное действо на хабре ( спасибо elfiki за линк habrahabr.ru/blog/la_france/24341.html ), но, недавно, пришлось столкнуться с этим самому. Старое решение мне не понравилось количеством javascript, решил попробовать реализовать, по возможности, с минимальным JS. Пара просмотренных воркэраундов не подошла, так как задать размер в пикселях для input file мне не удалось (если это вообще реально), а даже при фиксированном шрифте в разных браузерах «пиксели», почему-то, «разные» получились. Особенно ИЕ удивил, уместив в DIV размером 400px два дива размером по 200 и еще половину третьего.

в итоге получилось примерно такое решение:



Итого, мое доработанное, может кому пригодится.

продолжение дальше

Прямые ссылки на AJAX веб-сайтах – наша технология Fullajax Direct Link.

Reading time7 min
Views10K
Приветствую всех читателей. Популярность AJAX такая, что это, по сути, уже стандарт де-факто для многих проектов. Хотя, как и все технологии (особенно, новые и/или модные), она часто применяется (чего уж грех таить) и там, где без нее не обойтись, и там, где вполне можно, а зачастую и нужно. Впрочем, сегодня речь пойдет о другом.

Одним из неприятных моментов при использовании AJAX – является отсутствие прямых ссылок на динамически сгенерированные страницы или их отдельные части. Здесь кроется и вообще-то концептуальный вопрос – а что, собственно говоря, является в таком подходе страницей – она не имеет некоторого статического представления, каждый раз совершенно другая (не путать с динамической генерацией на сервере), и, фактически, предоставляет пользователю окно в многомерное представление самой себя.

Но все же – допустим, у нас есть простенький, но претенциозный веб-сайт визитка, где по переходам меню AJAX подгружает и выводит контент, а мы хотим дать знакомому по ICQ ссылку на контактную страницу (или любую другую, не суть важно).

Есть два подхода решения проблемы ссылок.
Читать дальше →

Хорошее начало своего бизнеса

Reading time6 min
Views1.9K
Эту статью я написал не так давно, уже имея опыт предпринимателя. Одни моменты в ней — советы из собственной практики, другие — развитие идей, умозаключения. Но, думаю, если бы перед тем, как начинать свободное плавание предпринимателя мне кто-нибудь дал почитать подобный материал, я бы действовал несколько иначе.

Intro

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

Защита PHP скриптов от копирования — это возможно?

Reading time4 min
Views42K
Бывает так, что вам неохота предоставлять исходные коды проектов, которые вы разрабатывали. Для этого можно использовать программы-обфускаторы, о которых недавно шла речь.

А бывает, что вам не так хочется закрыть исходный код, как защитить скрипт от копирования. На мой взгляд, сокрытие исходного кода, в большинстве случаев, не имеет смысла без защиты от копирования.
Читать дальше →
12 ...
24

Information

Rating
Does not participate
Location
Астана, Акмолинская обл. (Целиноградская обл.), Казахстан
Date of birth
Registered
Activity