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

VMWare & PHP: Импорт списка виртуальных машин

m7volaus

Достаточно долго искал решение на PHP для импорта из vSphere (ESXi) списка виртуальных машин с различными параметрами. В результате из нескольких проектов удалось собрать решение для себя.

Как обычно выкладываю результат на https://github.com/spions/vmware_import_host_list.

(далее…)

Smarty: Расширяем возможности strip_tags

smarty

Удаляем из Smarty\libs\plugins\ файл modifiercompiler.strip_tags.php на его место записываем файл modifier.strip_tags.php (обратите внимание, что файлы отличаются в названиях)

В результате получаем расширенный функционал «strip_tags»:

  • {$string|strip_tags} strips all tags and replaces them with a space
  • {$string|strip_tags:false} strips all tags without replacing them with a space
  • {$string|strip_tags:'<b><br>’} strips all tags except b and br tags and replaces them with a space
  • {$string|strip_tags:false:'<b><br>’} strips all tags except b and br tags without replacing them with a space

Delphi: динамические массивы

delphi массив

Некоторые полезности при работе с динамическими массивами:

Очистить переменную в оперативной памяти

  ZeroMemory(@l_synchronizations, SizeOf(Tl_synchronizations));

Процедура SetLength изменяет размер строки, одномерного динамического массива или многомерного динамического массива

1) В корне неверное решение, массив на то и динамически, чтобы не иметь ограничений
  setlength(analiz_programs_out, 1000);

2) Инициируем массив, по размеру массива данных. 
Верно до первого условия, при котором какое-либо значение исходного 
массива отбрасывается.
  setlength(analiz_programs_out, Length(b));

3) Не будет работать для разорванного заполения массивов
  setlength(analiz_film.names, ii + 1);

4) Наиболее правильный из придуманных решений
 setlength(analiz_film.Genres, Length(analiz_film.Genres) + 1);

 Добавляем следующий элемент.
 analiz_film.Genres[Length(analiz_film.Genres) - 1] := database_Genre_Add(b[i, 1], 1);

FFmpeg базовые команды

FFmpeg базовые команды

В прошлом посте я рассказал как установить FFmpeg на CentOS 6.4.

В данном посте я рассмотрю базовые команды, которые существенно облегчат работу с FFMpeg.  Огромное количество информации содержится в мануалах, они как известно рулез, так что если какая-то информация оказалась за пределами поста, «man ffmpeg» вам в помощь.

Для понимания, более простых конструкций, например такой:


ffmpeg -ss 5 -i a.mp4 -aspect 4:3 -f image2 -r 1 -vframes 300 a%2d.jpg

чуть ниже я перечислю наиболее часто используемые опции.

(далее…)

$ 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/ (надо записать пока не потерял….)

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