Alexander Mylnikov

18Nov/110

D7 – Remove Meta Tag Generator

To delete next line <meta name="Generator" content="Drupal 7 (http://drupal.org)" /> It's in includes/common.inc line 320-328 removed these two lines by putting //

//      'name' => 'Generator', //      'content' => 'Drupal ' . $version . ' (http://drupal.org)',

And then removed ['#attributes']['content'] from this line.

$elements['system_meta_generator']['#attached']['drupal_add_http_header'][] = array('X-Generator', $elements['system_meta_generator']['#attributes']['content']);
17Nov/111

Strict warning : Only variables should be passed by reference dans views_page_title_pattern_alter()

Since then, when I go on pages made by views, I got this srtict warning :

Strict warning : Only variables should be passed by reference dans views_page_title_pattern_alter() (line 33 in /sites/all/modules/page_title/modules/views.page_title.inc).

To fix the original problem in views.page_title.inc, replace line 33 with this:

// $h = array_shift(array_splice($h, count($args)-1, 1));
$hh = array_splice($h, count($args)-1, 1);
$h = array_shift($hh);

30Sep/110

КОДЫ ДЛЯ ОТКРЫТИЯ ДОМОФОНОВ

КОДЫ ДЛЯ ОТКРЫТИЯ ДОМОФОНОВ:
Код "VIZIT" - *#4230 или *#423
Код "CYFRAL" - (буква - "B") 100 (буква - "B") 7272
Код "METACOM" - 65535-1234-8
Код "ELTIS" - (буква - "B") 1234-2-1-3-3-123
Q: Как еще можно открыть Cyfral?
A: "В"41"В"1410
Или просто ввести 07054. Иногда помогает.
Q: Как можно открыть домофон Eltis?
A: "B"100"В"7273
"В"100"В"2323
Также можно попробовать варианты от Cifral.
Q: На домофоне VIZIT клавишь * и # нет, что делать?
A: Есть C и K. С — * K — #

24Sep/110

New one

!) С одного компьютера на другой необходимо передать 4 файла: два, содержащих музыкальные композиции, и два, содержащих изображения. Компьютеры соединены двумя независимыми каналами связи: канал №1 имеет пропускную способность 512 Кбайт в секунду, а канал №2 имеет пропускную способность 256 Кбайт в секунду. По двум каналам могут одновременно передаваться разные файлы, но каждый файл можно передать только по одному каналу целиком, не прерывая начавшуюся передачу. После окончания передачи файлов канал связи незамедлительно готов к передаче следующего файла.

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

Имя файла Характеристика файла
A Музыкальная стереофоническая композиция, длительностью 16 секунд, кодированная с частотой дискретизации 16000 Гц и 65536 уровнями квантования
B Музыкальная монофоническая композиция, длительностью 128 секунд, кодированная с частотой дискретизации 32000 Гц и 256 уровнями квантования
C Изображение, размером 1024 на 1024 точек, кодированное с использованием палитры из 224 цветов
D Изображение, размером 1024 на 512 точек, кодированное с использованием палитры из 65536 цветов

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

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

При записи ответа сначала укажите подряд имена файлов, которые нужно передать по каналу №1 (если файлов несколько, их можно указать в любом порядке), а затем через запятую имена файлов, которые нужно передать по каналу №2 (если файлов несколько, их можно указать в любом порядке). Например, ответ AB,CD будет означать, что по каналу №1 нужно передать файлы A и B, а по каналу №2 — файлы C и D.

2)

Передача информации от устройства A к устройству B организована с контролем ошибок передачи данных через проверку контрольной суммы и управлением скоростью передачи данных. Передача осуществляется пакетами по 2048 байт, в которые кроме непосредственно передаваемых данных входит их контрольная сумма. Протокол передачи данных работает следующим образом:

  1. Передатчик начинает передавать приемнику пакеты со скоростью, равной максимальной пропускной способности канала.
  2. После получения каждого пакета приемник проверяет контрольную сумму и отправляет отчет о проверке передатчику. Процессы проверки и доставки отчета вместе занимают ровно 2 секунды. Передатчик не активен, пока не получит отчет о результатах передачи пакета.
  3. Если проверка прошла успешно, то передатчик передает следующий пакет. Если проверка завершилась неудачей, передатчик заново отправляет не прошедший проверку пакет.
  4. Если при передаче данных на скорости, равной максимальной пропускной способности канала, подряд следует две неудачных попытки передать пакет, то передатчик уменьшает скорость передачи данных до половины максимальной пропускной способности канала и предпринимает очередную попытку. Дальнейшая передача данных происходит на этой уменьшенной скорости.
  5. Если при передаче на уменьшенной скорости подряд следуют две удачные попытки передать пакет, то передатчик возвращается к передаче данных на скорости, равной максимальной пропускной способности канала.

Сколько времени заняла передача 32 пакетов, если известно, что максимальная пропускная способность канала составляет 512 байт в секунду, и известен отчет о количестве ошибок, возникавших при передаче каждого пакета.

Номер пакета Количество ошибок при передаче пакета
1-4 0
5 3
6 3
7-14 0
15 1
16 1
17 2
18 1
19-26 0
27 2
28 2
29 1
30 1
31-32 0

 

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

11Jul/110

Технология спутников-шпионов скоро будет доступна всем пользователям Интернета

Великобритания, Канада и Россия запускают совместный проект, который будет представлять собой нечто среднее между YouTube и Google Earth. На МКС установят две камеры, которые будут снимать поверхность планеты в реальном времени и транслировать её в качестве потокового видео. Один пиксель разрешения камер равен одному квадратному метру поверхности Земли. Камеры принадлежат канадскому стартапу UrtheCast, их стоимость не разглашается, но речь идет о миллионах долларов. Одна из камер снимает с трехцветной картинкой и средним разрешением, вторая с высоким разрешением и скоростью съемки 3.25 кадров в секунду. Отснятые кадры будут направляться на наземные станции по всему миру, и транслироваться через платформу  UrtheCast  в режиме реального времени. Вероятно, проект будет запущен летом 2012 года.

Пользователям будет предоставлена возможность видеть изображение, по качеству близкое с таковым у Google Earth. Можно будет увидеть здания и другие антропогенные объекты, крупные группы людей. Если очень хочется увидеть себя – это можно сделать. Достаточно надеть яркую одежду и лечь на землю. На изображении лежащий человек займет 2 пикселя.  Будет возможность масштабирования изображений, поиска популярных мест, передвижения изображения с целью изучения конкретного участка поверхности Земли, просмотра с ускорением или отматывания назад. В результате запуска проекта теперь можно будет в любое время узнать, над каким конкретно участком земли сейчас находится МКС, и когда она окажется над Вами.

11Jun/110

Что может Ctrl в Visual Studio

Одна простая клавиша Ctrl может значительно упростить работу в Visual Studio. Помимо типичных комбинаций, которые нам очень хорошо знакомы, существует также и большое количество других, менее известных, но от этого и более ценных.

Далее список того, что можно делать с клавишей Ctrl.


Редактирование и печать:

Ctrl+C, Ctrl+V, Ctrl+X, Ctrl+S — самое очевидное
Ctrl+P — мало ли, вдруг кому-то захочется распечатать свой код
Ctrl+Del, Ctrl+Backspace — удаление слова справа от курсора, слева от курсора
Ctrl+Enter, Ctrl+Shift+Enter — добавление строки над текущей, под текущей
Ctrl+J — завершение ввода выражения
Ctrl+U — перевод символа перед курсором в нижний регистр
Ctrl+Shift+U — перевод символа перед курсором в верхний регистр
Ctrl+= — выделение кода до предыдущего положения курсора
Ctrl+Left, Ctrl+Right — переход к предыдущему слову, следующему
Ctrl+Shift+Left, Ctrl+Shift+Right — выделение слова слева от курсора, справа от курсора
Ctrl+K, Ctrl+C(комбинация) — закомментирование строки
Ctrl+K, Ctrl+U(комбинация) — раскомментирование строки

Поиск и навигация:

Ctrl+F, Ctrl+Shift+F — поиск в документе, поиск в файлах
Ctrl+H, Ctrl+Shift+H — поиск с заменой в документе, поиск с заменой в файлах
Ctrl+F3, Ctrl+Shift+F3 — поиск выделенного текста в прямом и обратном направлениях
Ctrl+F4 — закрытие текущего окна
Ctrl+F6, Ctrl+Shift+F6 — переход к следующему окну, предыдущему(по принципу последний использовавшийся)
Ctrl+Tab, Ctrl+Shift+Tab — тот же эффект, только с отображением окон
Ctrl+Alt+Up, Ctrl+Alt+Down — выпадающий список открытых окон
Ctrl+- — переход к предыдущему положению курсора

— на панели инструментов
Ctrl+Up, Ctrl+Down — переход к следующей группе инструментов, предыдущей
Ctrl+PageUp, Ctrl+PageDown — переход к следующему окну, предыдущему

Компиляция и отладка:

Ctrl+F5 — запуск без отладки
Ctrl+Shift+B — сбилдить решение
Ctrl+D, Ctrl+E(комбинация) — список исключений при отладке
Ctrl+Shift+F9 — удалить все брейкпоинты

Рефакторинг:

Ctrl+R, Ctrl+M(комбинация) — выделение метода
Ctrl+R, Ctrl+E(комбинация) — инкапсуляция метода
Ctrl+R, Ctrl+I(комбинация) — выделение интерфейса
Ctrl+R, Ctrl+V(комбинация) — удаление параметра
Ctrl+R, Ctrl+O(комбинация) — изменить порядок параметров

Другое:

Ctrl+I — превращает курсор в бинокль, который при наведении на объект, выдает всплывающую подсказку о нем
Ctrl+Space — вывод подсказок IntelliSense
Ctrl+Alt+A — открытие командной строки
Ctrl+K, Ctrl+I(комбинация) — всплывающие подсказки
Ctrl+K, Ctrl+X(комбинация) — вставка шаблонов
Ctrl+K, Ctrl+F(комбинация) — форматирование выделенного текста
Ctrl+Alt+Space — вывод параметров функции при наборе
Ctrl+Shift+A — добавить новые item

— закладки(все в комбинации)
Ctrl+K, Ctrl+K — установить закладку
Ctrl+K, Ctrl+N — переход к следующей закладке
Ctrl+K, Ctrl+P — возврат к предыдущей закладке
Ctrl+K, Ctrl+L — удалить все закладки

И наконец, мое самое любимое — Ctrl+.
Самая часто встречающаяся неточность — попытка использовать какой-то класс, который еще не создан, либо который не был подключен. Именно для этого и существует комбинация Ctrl+. Достаточно нажать после имени класса, как всплывающее окно предложит либо заинклюдить необходимую библиотеку, либо создать новый класс.

13Apr/110

Скрытие продажных ссылок на статических сайтах

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

Как работает эта методика? Чтобы ответить на этот вопрос, следует прежде всего уяснить, чем отличается ссылка, проданная через биржу, от обычной, пусть даже и продажной. Рассмотрим для примера какую-то статическую страницу http://site.ru/page.html, на которой вручную установлена ссылка. Если к этой странице добавить любой параметр вида ?123, по адресу http://site.ru/page.html?123 ссылка должна показываться. Другое дело, если ссылка установлена ссылочным брокером - в этом случае добавление параметра не позволит отобразить ссылку, что будет свидетельствовать о ее продажности.

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

Итак, что нужно сделать. Прежде всего, заменить стандартный код Сапы

<?php
  if (!defined('_SAPE_USER')){
    define('_SAPE_USER', 'МОЙ КОД');
  }
  require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
  $sape = new SAPE_client();
?>

на такой:

<?php
  if (!defined('_SAPE_USER')){
    define('_SAPE_USER', 'МОЙ КОД');
  }
  require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape.php');
  require_once($_SERVER['DOCUMENT_ROOT'].'/'._SAPE_USER.'/sape_venality_name.php');
  $sape = new SAPE_client($sape_venality_name);
?>

Второе - создать файл с названием sape_venality_name.php и поместить его в папку Сапы. Содержание этого файла приводится ниже:

<?php
  $sape_venality_name=array();
  $allowed_pages=array("key.php","ping","remoute");
  $allowed_var=array("");
  $tm=explode("?",$_SERVER['REQUEST_URI']);
  if (isset($tm[1]) and $tm[0]==str_replace($allowed_pages,"",$tm[0])) {
    $k=preg_match_all("/(.*)=(.*)\&/Uis",$tm[1]."&",$am);
    $bm=array();
    for ($i=0; $i < $k; $i++) {
    if ($am[2][$i]=="" or !in_array($am[1][$i],$allowed_var))continue;
      $bm[]=$am[1][$i]."=".$am[2][$i];
    }
    $tm[1]=implode("&",$bm);
    $sape_venality_name['request_uri']=
    $_SERVER['REQUEST_URI']=($tm[1]=="") ? $tm[0]: implode("?",$tm);
  }
?>

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

13Apr/111

Загрузка файлов с русскими именами на WordPress

Проблема стара как мир. Как только ты пытаешься загрузить на сайт файл с русским именем, так сразу ничего не работает. проблема лечится.

необходимо установить плагин rustolat и в файле \wp-includes\functions.php заменить одну строчку

function wp_unique_filename( $dir, $filename, $unique_filename_callback = null ) {
// sanitize the file name before we begin processing
$filename = sanitize_file_name($filename);

на другую

function wp_unique_filename( $dir, $filename, $unique_filename_callback = null ) {
// sanitize the file name before we begin processing
$filename = sanitize_title_with_translit($filename);

точнее заменить надо всего лишь название функции sanitize_file_name на sanitize_title_with_translit и все будет.

PS: кому не нравится хак, тот можешь переименовывать свои русские файлы в транслит имена. удачи))