Архив категории ‘Программирование’

$ svn update. Conflict discovered…

Conflict discovered in 'services.html'.
Select: (p) postpone, (df) diff-full, (e) edit,
        (mc) mine-conflict, (tc) theirs-conflict,
        (s) show all options: p
C    services.html
Обновлено до редакции 11.
Summary of conflicts:
  Text conflicts: 1

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

  • (e) edit
     — редактировать файл с изменениями;
  • (df) diff-full
     — показать все конфликтующие изменения;
  • (r) resolved
     — принять файл, содержащий маркеры слияния конфликтующих изменений;
  • (dc) display-conflict
     — показать все конфликты;
  • (mf) mine-full
     — принять свою версию и игнорировать полученные изменения;
  • (tf) theirs-full
     — принять полностью полученную версию файла и отказаться от своих изменений;
  • (p) postpone
     — отметить конфликт и разрешить его позднее;
  • (l) launch
     — использовать внешние средства для разрешения конфликта.

Поставить статус разрешенного конфликта:

svn resolved

Рекурсивное добавление всех файлов и папок в систему контроля версий svn: svn add –force *

PHP поиск «узких» мест в коде. Xdebug + WinCacheGrind

узкие места кода

Узкие места — это части кода, которые являются основными потребителями времени и ресурсов, во время своего выполнения.
Если с ресурсами все более или менее нормально, то со временем выполнения, на одном из моих ресурсов, определенно проблема. Главная страница формировалась порядка 1500ms, что не приемлемо.

Для заинтересованных, время отработки снизилось до 400ms, что допустимо для такого рода проектов.

(далее…)

Delphi + Git


Пора перебираться с Svn на Git, даже FAQ по необходимому мне функционалу, в частности по выдергиванию всяких полезностей для мой delphi 7  нашел…

http://delphi.frantic.im/delphi-and-git/ (надо записать пока не потерял….)

Вот она сила привычки…

Экранирование амперсанта («&») в XML

Спецсимволы XML

#x9 [HT] Горизонтальная табуляция (horizontal tabulation)
#xA [LF] Перевод строки (line feed)
#xD [CR] Возврат каретки (carriage return)
#x20 [SP] Пробел (space)
#x21 ! Восклицательный знак (exclamation sign)
#x22 « Двойные кавычки (quotation mark)
#x26 & Амперсант (ampersand)
#x27 Апостроф или одинарные кавычки (apostrophe)
#x3C < «Знак «»меньше»» или левая угловая скобка (less-than sign)»
#x3F ? Вопросительный знак (question mark)
#xA0 [NBSP] Неразрываемый пробел (no-break space)

 

Специальную роль в разметке XML играет символ &.

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

В XML эта проблема решается заменой «&» -> «&amp;».

Через PHP это делается не сложной регуляркой:

$s = preg_replace('/&[^; ]{0,6}.?/e', "((substr('\\0',-1) == ';') ? '\\0' : '&'.substr('\\0',1))", $s);

UPD: Итоговый код получился таким:

		$tpl_output = preg_replace('/&[^; ]{0,6}.?/e', "((substr('\\0',-1) == ';') ? '\\0' : '&'.substr('\\0',1))", $tpl_output);
		$tpl_output = preg_replace("/&(?![A-Za-z]{0,4}\w{2,3};|#[0-9]{2,3};)/","&" ,html_entity_decode($tpl_output, ENT_COMPAT, 'UTF-8'));

Delphi: Конвертация даты

время

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

Добавляем в uses модуль DateUtils.

Делать будем через FormatSettings:TFormatSettings; и StrToDateTime.

var
FormatSettings,FormatSettings1: TFormatSettings;
inputstr,outputstr:string;
 
begin
FormatSettings.ShortDateFormat := 'yyyy-mm-dd';
FormatSettings.DateSeparator := '-';
FormatSettings.LongTimeFormat := 'hh:nn:ss';
FormatSettings.TimeSeparator := ':';
 
FormatSettings1.ShortDateFormat := 'dd.MM.yyyy';
FormatSettings1.LongTimeFormat := 'hh:nn:ss';
FormatSettings1.TimeSeparator := ':';
FormatSettings1.DateSeparator := '.';
 
InputStr:='2013-03-13 21:10:00';
outputstr:=datetimetostr(StrToDateTime(inputstr, FormatSettings), FormatSettings1);
end;

В итоге получаем из «2013-03-13 21:10:00 -> 13.03.2013 21:10:00».

(далее…)

WordPress: локальная разработка

wordpress-training

Некоторые привычки бывают очень полезными. Я привык разделять локальную разработку и продакшен. Тестировать код и вносить изменения надо только на локальной копии, по факту успешной реализации выкатывать изменения через VCS (SVN или Git) на продакшен.

«Шуршун» в этом отношении не стал исключением. WP постоянно норовил перекинуть меня с «local» домена на основной, чем сильно мешал работать. Пришлось накатить довольно таки стандартный «костыль», который применяет различные параметры в зависимости от входящего доменного имени.

В коде я поменял имя основного домена для движка (WP_HOME и WP_SITEURL), но никто не мешает втиснуть в условия параметры подключения к базе (‘DB_NAME’,’DB_USER’ и т.д.) или другие полезности.

Дополнения файла wp-config.php:

if ($_SERVER['HTTP_HOST']=='local.shurshun.ru') {
    DEFINE ('WP_HOME', 'http://local.shurshun.ru'); 
    DEFINE ('WP_SITEURL', 'http://local.shurshun.ru'); 
}else{
    DEFINE ('WP_HOME', 'http://shurshun.ru'); 
    DEFINE ('WP_SITEURL', 'http://shurshun.ru'); 
}

Как видно из кода — ничего сложного.

Яндекс. Школа разработки интерфейсов.

Яндекс. Школа разработки интерфейсов

Очередной курс лекций от компании «Яндекс», на этот раз посвященный веб-разработке.
Школа разработки интерфейсов (ШРИ) организована компанией Яндекс в 2012 году для студентов старших курсов и  выпускников вузов, желающих развиваться в области фронтенд-разработки веб-сервисов.

Обучение в Школе разработки интерфейсов включает в себя две части. Курс лекций, посвященных различным аспектам промышленной фронтенд-разработки, и более практическую часть, связанную непосредственно с разработкой.

На занятиях сотрудники Яндекса рассказывают об инструментах разработчика, о том, как лучше и эффективнее вести работу в команде, о приёмах, которые позволяют сэкономить время, немного о дизайне. Практику ведут ведущие фронтенд-разработчики Яндекса, разрабатывающие интерфейсы для Поиска, Почты, Карт и других сервисов Яндекса.

Курс можно скачать в виде одного торрента: Школа разработки интерфейсов, или просмотреть непосредственно с первоисточника: Яндекс: ШРИ

(далее…)