Mr.KTO blog


  • Рубрики

  • Поиск

  •  
      
реклама на mrkto.com





C++  →  include_once() в C++

1 сентября 2009

Только недавно до меня дошло :), зачем нужен такой код в *.h хедер-файлах:

#ifndef Unit1H
#define Unit1H

// содержимое Unit1.h (заголовки функций...)
// будет исполнено только 1 раз

#endif

По идее то же можно использовать и для PHP. Вдруг кому-то пригодится:

if (!defined('filePHP')):
define("filePHP", 1);

// содержимое php-файла, выполняемое 1 раз

endif;

PHP  →  Вычисления при инициализации свойств класса

13 февраля 2009

Как известно, при инициализации свойств класса мы не можем использовать какие-либо вычисления:

class A {
    var $a = 2*2; // --неверно
    var $b = "st"."r"; // --неверно
    var $c = $_SERVER['REMOTE_ADDR']; // --неверно
}

Однако, есть способ обойти это:

define("A_a", 2*2);
define("A_b", "st"."r");
define("A_c", $_SERVER['REMOTE_ADDR']);

class A {
    var $a = A_a;
    var $b = A_b;
    var $c = A_c;
}

Только что придумал, собснно.

UPD: Это позволяет при наследовании – не заботится о parent::__construct(); в конструкторе потомка. Полезно, если вы и так используете константы для свойств класса (напр. DEFAULT_a, DEFAULT_b)

CSS и вёрстка  →  Псевдо-ClearType

9 февраля 2009

Я давно смотрю справку по PHP онлайн на сайте php.net. Потому что там к каждой функции, к каждой страниче есть комментарии пользователей, из которых подчас узнаёшь очень интересные моменты. А также экономишь много часов на поиск багов.

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


первый - Consolas, второй - он же, но с включённым ClearType [ссылка]

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

Первый способ - это просто включить ClearType.

  • В Internet Explorer 7 - это Сервис / Свойства обозревателя / Дополнительно / Мультимедия - Всегда использовать ClearType для HTML.
  • Opera - хотя пока и не поддерживает сглаживание шрифтов, но можно включить ClearType для всех приложений Windows: На рабочем столе Свойства / Оформление / Эффекты / галочка Применять следующий метод сглаживания экранных сшифтов, выбор: ClearType.

Второй - отключить шрифт Consolas на php.net

  • Вместо того, чтобы удалять из Панель управления / Шрифты - мы в
  • Opera: в opera:config включим User CSS в Author и User Display Mode, после чего: прав. кнопкой на сайте php.net / Настройки для сайта / Вид / Моя таблица стилей - укажем путь к файлу содержащему строчку:
    code, pre, tt { font-family: "Courier New", Courier, monospace !important; }

Другие  →  О чём писать?

1 февраля 2009

Хочу прямо спросить: Чего Вы ждёте от данного блога?

Какие посты Вам интересно читать:

Не ставлю никакого AJAX-опроса, т.к. хочу чтобы Вы описали всё своими словами. Благо, комментарии у меня без капчи/регистрации/премодерации. (И без спама :) – если это ещё актуально – могу написать и выложить такой плагин.)

Софт  →  Набор твиков для Windows

21 ноября 2008

Для редактирования реестра вызовите: + R, regedit

Поиск в файлах *.php, *.htm, *.cpp и др. Отключить поиск по расширениям.

В любой папке: Ctrl+F, Отключить помощника.
Настроить помощника / Изменить способ поиска – расширенный.
Настроить помощника / Используя службу индексирования / Изменить параметры;
Там: Вид / Настроить, галочка "Дерево консоли", OK;
Слева на папке "Служба..." - Свойства, галочка "Индексировать файлы с неизвестными расширениями", OK.

Стандартная иконка HTML-файлов после установки Internet Explorer 7

HKEY_CLASSES_ROOT\htmlfile\  и
HKEY_CLASSES_ROOT\mhtmlfile\  Удалить подраздел: ShellEx\

Теперь в любой папке: Сервис / Свойства папки / Типы файлов.
Выбрать HTM, HTML, MHT, MHTML. Дополнительно / Сменить значок,
указать путь: C:\Program Files\Internet Explorer\IEXPLORE.EXE и выбрать второй значок в первой колонке.

Пропала иконка Internet Explorer на рабочем столе –

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
Explorer\HideDesktopIcons\NewStartPanel (или \ClassicStartMenu)
Создать или изменить DWORD(32bit): {871C5380-42A0-1069-A2EA-08002B30309D} на 0
Обновить рабочий стол (F5).

Убрать "Ярлык для" (при создании ярлыков приложений)

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ "link"=hex:00,00,00,00

Word 2003 - убрать таб "Приступая к работе"

Сервис / Параметры / Вид, снять галочку "область задач".
Если не помогло - HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Common\General\
удалить параметр DoNotDismissFileNewTaskPane, перед этим закрыв Office, включая Outlook.

При редактировании в Word объекта Excel у него меняется стиль шрифта

HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Excel\Options\
Создать (DWORD) QFE_Boston=1

Outlook Express - Показывать контакты

HKEY_CURRENT_USER\Identities\{AAAAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAAA}\
Software\Microsoft\Outlook Express\5.0\ "Show Contacts" = 1

Outlook Express - изменить место хранения сообщений

В Сервис-Параметры-Обслуживание-Банк сообщений, на вопрос о выборе др. папки - да

Outlook Express - отключить Чтобы освободить место на диске, Outlook Express может сжать сообщения

Открываем блокнот ( + R, notepad) пишем туда следующее и сохраняем как OE_reset_compress_counter.reg. При очередном таком вопросе можно нажать отмена и запустить этот файл, чтобы следующие 100 запусков OE не предлагал сжимать сообщения.

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Identities\{C20C83A1-A65D-49B0-A287-11EAF7247D0A}\Software\Microsoft\Outlook Express\5.0]
"Compact Check Count"=dword:00000000

[HKEY_CURRENT_USER\Identities\{C20C83A1-A65D-49B0-A287-11EAF7247D0A}\Software\Microsoft\Outlook Express\5.0\Dont Show Dialogs]
"Compact Do not Ask Again"=-

Изменить место хранения папки «Мои Документы»

На рабочем столе прав. кнопкой мои док-ты и указать папку

Изменить место хранения данных Firefox (создать профайл, подробнее)

 + R, firefox.exe -p

Изменить место хранения данных Opera (Профили Opera)

Запустить Opera, открыть адрес opera:config.
 + R, %appdata%
Откроется папка "Application Data", из которой можно переместить папку "Opera" в нужное место.
Адрес старой папки - копировать и вставить в фильтр на странице opera:config и изменить все поля,
содержащие старый адрес на новый, нажать везде "Сохранить" и перезапусть Opera.

Изменить путь к папке Избранное Internet Explorer

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\
Explorer\User Shell Folders\ "Favorites" = путь\к\папке\

Расширение сохраняемых IE картинок jpeg

HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg\ "Extension" = .jpg

Русский шрифт в Photoshop

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage\ "1252" = c_1251.nls

Сообщеие: «Объект используется другим пользователем или программой»

Юзаем Unlocker (скачать).

_________________________________________________________

Горячие кавиши Google Reader

Domains  →  2725 названий Web 2.0 проектов

31 октября 2008

Проблемы с неймингом?

Скачать (txt) – в каждой строке по одному имени web2.0-стартапа. Всего 2725.

Всегда актуальная версия (xml) – включает в себя ссылки на логотипы и короткое описание. Можете построить свою Web2.0-карту.

Чтобы получить адрес стартапа и полное описание по имени: http://www.go2web20.net/infoPanel.aspx?appName=НазваниеСтартапа

SEO  →  SEO-сквоттинг. Ссылки с профайлов.

21 октября 2008

Всё началось с «Яндекс не любит мой блог» (в индексе он появился буквально неделю назад (а блогу больше 2-х лет)). Кто бы вы думали был (и остаётся!) на первом месте всё это время? Мой профиль на хабре!

Факторы:

  1. Доверие к социальным Web2.0 сервисам. Засчёт ссылок от вирусного маркетинга.
  2. Внутренняя оптимизация. Засчёт внутренней перелинковки (ник, как анкор).
  3. Оптимизация страницы профайла. А вы думали крупные шрифты – это web2.0-дизайн?

А что будет, если ещё накачать внешними ссылками ваш профиль?!!

С профайла ставится ссылка на продвигаемый сайт (нацеленная на юзеров!) Так, в Хабре даже при отрицательной карме можно вставлять картинки в профайл. И не забываем, что спамить комментами социалки можно не только для увеличения числа внутренних ссылок, но и для переходов с коммента на профайл и на сайт.

Итак, чего же вы ждёте? Медведев уже пролез в топ Яндекса. Где же ваши PlastikovieOkna.habrahabr.ru

_________________________________________________________

В моём блоге нет и не будет платных ссылок!

Профессиональные подкасты по вирусному маркетингу

Повторная регистрация блогспот-блогов - это тоже профайлы!

Как спамить flickr.com - инструкция

Делаем сплоги и прокачиваем профайлы на BarackObama.com

PHP  →  file.php / Открыть с помощью... / PHP.EXE

15 октября 2008

Иногда, когда скрипт написан для коммандной строки, хочется запустить его сразу из меню проводника windows.

Ну, вообще-то, любой .php-файл можно открыть с помощью интерпретатора php.exe. По правой кнопке на файле / Открыть с помощью / и выбираем путь к файлу php.exe. Можем даже в свойствах .php-файла указать использовать php.exe для открытия по двойному щелчку (хотя вряд ли это кому-то нужно).

Итак, в любой папке создаём файл с именем php_batch.bat и пишем в него:

@echo off
echo ---------------------------------
echo * Running %~nx1...
echo _________________________________
echo *** Press any key to continue ***
echo ***     or Ctrl+C to stop     ***
echo ---------------------------------
pause >nul
SET start=%TIME%

C:\PHP\php.exe -f %1

echo.
echo ---------------------------------
echo * Finished %~nx1
echo _________________________________
echo ** Start = %start%
echo ** End   = %TIME%
echo ---------------------------------
pause >nul

Используем его, как я описал выше. Хотя можно ещё: Свойства папки / Типы файлов / php / Дополнительно / Создать / Действие: "Запустить в batch-режиме", Приложение: <путь к нашему *.bat>. Тогда в меню по правой кнопке появится соответствующий пункт.

В конце выводится время начала/окончания работы запускаемого php-скрипта, включая миллисекунды. (p.s.: %TIME:~0,-3% - время без миллисекунд).

Мы также можем выводить постранично результат работы скрипта, если напишем: C:\PHP\php.exe -f %1 | more

UPDATE: Вот как можно встроить php-код в bat-файл (некий аналог #!/usr/bin/php):

file.bat

@GOTO START
<?php

  ...php-код...

  /*
  :START
  @C:\PHP\php.exe -f %0
  @pause
  @exit
  */
?>

_________________________________________________________

Подробнее о bat-файлах и коммандной строке windows.

SEO  →  JS-редиректы которые не палятся Гуглом (и Яндексом)

12 октября 2008

Продвигаете Вы, допустим, сайт по средне- и низкочастотным запросам – например по названию бренда/модели/категории, что-то вроде «Asus F3Jc обзор». Но мы жадные – в магазине и в помине не было Асуса F3Jc (напр. мы просто поимели НЧ). И мы ставим неолавливаемый редирект на главную – пусть юзер покупает что есть:

<html>
<head><title>Asus F3Jc, обзор</title></head>
<body>
  <script>
  function dorefresh()
  {
      window.location="/index.php";
  }
  </script>
  <tr> <td></td> <td> <div> <h1>Ноутбук Asus F3Jc</h1>
  Сейчас Вы будете перемещены...<body onload='setTimeout(dorefresh,3000)'></div></td..

Гугл просто игнорирует второй тег <body, как ошибочный.

В то же время, обычные document.location=""-редиректы Гугл спокойно склеивает, как 301/302-е.

PHP  →  Кэшировние в 2 строчки

7 октября 2008

Ну, в 3. Или 4...

if (is_file("scriptname.session") && ($t = time() - filemtime("scriptname.session")) < $CACHE_TIME) {
    $dataModel = unserialize(file_get_contents("scriptname.session"));
} else {
    /* делаем что-то, и сохраняем данные в объекте $dataModel */
    $f = fopen("scriptname.session", "w") and fwrite($f, serialize($dataModel)) and fclose($f);
}

Неплохо было бы добавить auto chmod – автоматическую установку прав доступа к файлу:

if (is_file("scriptname.session") && (is_readable("scriptname.session") || chmod("scriptname.session", 0777)) &&...

При этом не забывать про безопасность – закрытие доступа к файлам *.session:

Это может быть папка с Deny from all в .htaccess.
Или .htaccess в текущей папке с

<Files *.session>
    Order allow,deny
    Deny from all
</Files>

Примечания:

  1. Мы используем функцию is_file, а не file_exists, т.к. вторая проверяет существование как файла, так и директории.
  2. В переменной $t мы сохранили сколько секунд назад истёк кэш.
  3. $CACHE_TIME = 15*60; – время истечения кэша в секундах (15 минут).
  4. $dataModel – перменная или объект класса, содержащий сессионные данные.
  5. Вместо file_put_contents (PHP 5 only) мы записываем сериализованные данные в файл в одной строчке через and (чтобы следующая ф-ция выполнялась только если предыдущая вернула не-false). Мы не используем &&, ибо приоритет операций.

Форматирование кэш-даты:

Далее »

Страница 2 из 7«1234567»