Просмотр статистики текущего дня в Google Analytics

Новости

Tagged Under :

Конечно, данный пост не тянет на категорию “Палю тему”, но, возможно, кому-то будет полезен.

Я бы не писал данный пост, если бы несколько раз не видел высказываний о том, что минусом средства аналитики от Google есть то, что нет возможности просматривать информацию о текущем дне. Вообще-то я и сам не сразу заметил, что это не так.

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

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

Ускорение работы сайта на PHP

Новости

Tagged Under :

Есть много отличных статей по оптимизации работы блогов, сайтов. Кратко рассмотрим два популярных и подробно 3й, который я нигде не встречал.

1. Первый заключается в уменьшении количества запросов к базе данных путем замены вставки PHP кода в шаблонах на постоянные значения. Например в WordPress в шаблоне вместо

<?php bloginfo(‘name’); ?>

Мы прописываем название блога. В моем случае – “Записки IT-шника”. Уменьшение запросов без потери функциональности – отличная оптимизация, но MySQL – не самое слабое звено, если не самое сильное.

Минус данного способа – уменьшение гибкости темы. Это значит, что для смены статического текста нам придется лезть в файл с шаблоном, а не использовать админку CMSки. Так теряется главное преимущество использования шаблонизаторов.

2. Второе решение – включение кэширования. Для того же WordPress’a есть плагины WP-Cache, WP-Super cache. Это решение позволяет не строить страницу с нуля, а использовать предыдущие построения, обновляя их с некоторой регулярностью. Данный вид оптимизации ускоряет работу PHP.

Минусом его есть то, что не все пользователи всегда будут видеть актуальную информацию.

3. Рассмотрим способ ускорения работы абсолютно любого PHP кода. Для того чтобы понять как все работает более подробно рассмотрим как интерпретатор выполняет PHP код:

  1. Фаза синтаксического анализа. Интерпретатор анализирует PHP код. Если находит в нем ошибки выводит сообщение об этом. Если код валиден – переходим к след. пункту.
  2. Фаза трансляции. Интерпретатор переводит PHP код во внутреннее представление. Этот код (в java это называется байт-кодом) далее и выполняется.
  3. Фаза выполнения. Интерпретатор выполняет последовательно все команды программы. Ошибки могут появляться только времени выполнения.

Первые 2 фазы выполняются каждый раз при запуске PHP скрипта и результаты их работы сохраняются только в оперативной памяти на время работы проекта. Компания Zend (автор современного ядра PHP) является коммерческой и предлагает нам продукт, который преобразует программу на PHP в вид, готовый сразу к третей фазе. Этот продукт называется Zend Guard. Кроме этой функции этот продукт умеет обфусцировать код, устанавливать время работы программы и многое другое,но это уже тема для другого разговора. Продукт этот платный, но есть вот такой вариант ;) . Интерфейс программы довольно простой, поэтому не буду останавливаться на том, как её использовать. Отмечу только то, что если вы скачаете программу с предложенного мною торрента вам нужно будет скопировать файл “zend_guard.zl” из папки “Zend_Guard-5_0_1-Keyfile-by-Crogg” в папку “C:\Program Files\Zend\Zend Guard -
5.0.1\plugins\com.zend.guard.core.resources.win32.x86_5.0.1\resources” так у вас будет полнофункцианальная программа, но только до 10 июля 2010. Потом можно будет найти что-то свежее или использовать DataFuck для решения этой проблемы.

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

Из плюсов – ускоряется любой код. Не имеет задержки отображения информации как в случае с кэшированием, не нарушает принцип работы шаблонизатора.

Для ускорения работы рекомендую использовать все три способа.

База погибших в Великой Отечественной войне

Новости

Tagged Under :

В Великой Отечественной войне погибло очень много людей. Разные исследователи этого вопроса называют различные цифры. Конечно, это не принципиально важно сколько точно. Главное, что люди положили свои жизни за нас – своих детей, внуков, правнуков. Участники войны – наши герои, которые заслуживают вечной памяти! К сожалению, в ситуации военных действий не все документы, доходившие до родственников погибших, содержали исчерпывающую информацию о месте и причине гибели солдат.

Моя бабушка плохо помнит своего отца, и всю жизнь считала, что он погиб где-то в Польше. Как оказалось, он был убит и похоронен на западе Украины. Бабушка несколько раз бывала недалеко от места его захоронения (менее 50 км), но она об этом тогда не знала.

Россия проделала огромную работу по оцифровке отчетов о безвозвратных потерях (такими называются людские жертвы). Теперь каждый желающий может просмотреть на сканированное изображения журнала отчета о безвозвратных потерях вот здесь (честно говоря, хоть я и не считаю себя слишком мнительным человеком, но от просмотра страниц этих журналов испытываешь какое-то странное чувство). Вооружившись Google Maps и Яндекс.Карты (кстати, именно там я нашел нужное село), можно найти места захоронения наших прадедов и хотя бы 9 мая положить цветы на их могилку.

Начать поиск!

Деление багов по характеру их проявления

Новости

Tagged Under :

Bug

Баг – (от англ. bug – жук) программная ошибка, которая приводит к тому, что программа не всегда правильно (или же всегда не правильно) работает. Следует отличать баги от синтаксических ошибок, которые не позволяют программе скомпилироваться или выполниться и других технических ошибок. Для борьбы с багами есть множество средств, которые ускоряют этот процесс. Считается, что на отладку программу (нахождение и исправление ошибок) у программиста уходит большая часть времени работы. Новые языки, такие как C#, синтаксически решают некоторые проблемы возникновения багов в классическом C++ и других native-языках:

  • сквозной проход по блоку switch
  • использование неинициализированных переменных в коде
  • некорректные приведения типов

Так, бытует утверждение, что использование языка C#, технологии .NET и среды VS ускоряет процесс разработки типичных программ в 5 раз, поскольку в этом наборе есть отличные инструменты для борьбы с багами.

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

Борбаг (Bohr bug) – баг, который проявляется постоянно, стабильно. К таким ошибкам может относиться неправильное логическое условие, ошибка в арифметическом выражении и другие ошибки, на которые не влияет случайность. Такие баги, как правило, находятся проще других.

Гейзенбаг (Heisenbug) – баг, который меняет свои свойства или исчезает при попытке его выявить. Название происходит от принципа неопределенности Гейзенберга, который упрощенно звучит как изменение наблюдаемого объекта в результате самого наблюдения. Такой баг может проявляться в релизе программы, но бездействовать в отладочной версии. Причинами, к примеру, могут быть:

  • неинициализированная переменная, которая в режиме отладки занимала память заполненную нулями, а в режиме релиза – случайное значение
  • многопоточность в отладочной версии программы и в релизе могут протекать по разному, так может быть невидимой проблема состязания за ресурсы потоков, которые работают медленнее в версии отладки

Мандельбаг (Mandelbug) – баг, который приводит к тому, что работа программы выглядит хаотичной. К таким ошибкам может относиться, например, динамическое выделение памяти переменным, которые не инициализируются. В результате значения переменных получаются практически случайными, и их использование в арифметических операциях приводит к неожиданным и случайным результатам.

Шрёдинбаг (Schroedinbug) – баг, найденный кем-то в исходном коде и осознание того, что с наличием этого бага программа не может правильно работать. После этого эта программа перестает работать правильно. Так, как такие случаи встречаются (и слава Богу!) крайне редко и их изучение по этой причине не представляется возможным – есть только предположения их природы. Такое может произойти при сложной структуре парных ошибок, которые приводят к тому, что одна ошибка компенсирует действие другой. Так система становиться очень чувствительной к изменениям.

Халяве приходит конец или как новый год встретишь – так его и проведешь

Новости

Tagged Under : ,

11

Недавно, я узнал о попытке Oracle’a (владельца компании Sun, которая владеет MySQL AB) сделать всеми любимую СУБД MySQL платной. Я, как и многие, подписал петицию в поддержку того, что MySQL должен оставаться бесплатным. Эта акция настолько многочисленна, что за один день мне о ней сообщили сразу несколько человек. Я не уверен, что это что-то изменит, но тем не менее мне это также ничего не стоит, а потому я решил все-таки отправить свое мнение. Проблема остро стоит еще и потому, что это серверное ПО, а мы в основном арендуем сервера у хостеров, которые уберут эту замечательную СУБД с бесплатных хостингов, и повысят стоимость на платных. Конечно, на локалхосте я почти плевал на разницу платного/бесплатного ПО (хоть и предпочитаю по возможности бесплатное), а вот компания-хостер не захочет рисковать. Все таки были прецеденты закрытия инфостора.

Сегодня я наткнулся на пост на хабре, в котором указан документ, согласно которому, наступает такая ситуация, что бесплатные (ранее бесплатные) доменные зоны такие как:

  • net.ru
  • org.ru
  • pp.ru
  • +региональные доменные зоны

становятся платными.

Собственно, и раньше они не в полном смысле слова были бесплатными, т.к. нелимитированные регистрации проходили платно, а бесплатно принималось лишь 4 заявки в час. Но это был хоть какой-то шанс бесплатно получить домен, если он тебе нужен, а не в том случае, если ты киберсквотишь их. Мой рекорд по регистрации домена в зоне net.ru – 4я попытка оказалась удачной. Антирекорд – 61я попытка. Так из моих доменов в этих зонах я скорее всего оставлю только парочку. Регистрация доменов в этих зонах мне чем-то напоминала советские магазины – все не очень дорого, но ничего нет в продаже. Нет, я не жадный. И у меня есть домены 2го уровня в платных зонах, но то что можно получить бесплатно мне не хочется из принципа покупать за деньги.

Вот такое неприятное начало года, хотя началось все это, конечно, раньше, а теперь мы только пожинаем плоды. Open Source программное обеспечение покупают и делают платным. Это однозначный минус для разработчиков. Что касается доменов – теперь придется платить за них деньги. С одной стороны это плохо, а с другой – меньше будет таких доменов, сайты на которых de facto не существуют. Зона станет чище. Плюс это или минус – для кого как. Лично для меня, пожалуй, – минус.