Последний элемент массива в цикле foreach

$rgData=array
(
    'sid' => 22,
    'parent' => 0,
    'lvl' => 0,
    'title' => 'вап',
    'weight' => 0,
    'status' => 1,
    'aaa' => 0
);
//ключ-значение
$sResult=join(',', array_map(function($x, $y){return '"'.$x.'"="'.$y.'"';}, array_keys($rgData), array_values($rgData)));
//var_dump($sResult);
 
//только значения
$sResult=join(',', array_map(function($x){return '"'.$x.'"';}, array_values($rgData)));
//var_dump($sResult);

Вариант так же подходит для отображения кучи элементов в заданном формате из массива:

$sResult=join(', ', array_map(function($x){return $x['title'] . '(вес: ' . $x['weight'] . ' грамм)' ;}, array_values($rgData)));

Select view from mssql in php

Пришлось немного поковыряться с MSSQL. В ходе работы наткнулся на странную особенность: из среды Microsoft SQL Server Management Studio все выборки идут отлично, а в случае использования где-либо еще за пределами этой среды натыкаюсь на то ли баги, то ли…
В общем, для того, чтобы сделать select из view в mssql необходимо перед select’ом выполнить следующий запрос:

$sql = 'SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_WARNINGS ON
SET ANSI_PADDING ON
SET ARITHABORT ON';

Yii::app()->mssql->createCommand($sql)->queryAll();

После этого select можно делать стандартным методом:

$sql = 'SELECT * FROM View_Region_client;';

$distributor_link = Yii::app()->mssql->createCommand($sql)->queryAll();

Иначе, в случае не использования, можем наткнуться на ошибки типа:

 SQLSTATE[HY000]: General error: 208 General SQL Server error: Check messages from the SQL Server [208] (severity 16) [(null)]. The SQL statement executed was: SELECT * FROM DHWRiver.dbo.View_Region_client;

А вообще – не используйте, дети, mssql. От лукавого это все.

Magnet ссылки в Google Chrome в Windows

Для того, чтобы указать приложение по умолчанию, которое будет обрабатывать ссылки типа “magnet” в Google Chrome на Windows необходимо сделать следующее:

1 – Открыть regedit (Пуск → Выполнить → regedit)
2 – Перейти в ветку HKEY_CLASSES_ROOT\magnet\shell\open\command
3 – Тип “REG_SZ” и значение – полный путь до приложения с ключом. Например: “C:\Program Files\Peers\Peers.exe /magnet %1”

Решение проблем со флешем

Большинство сайтов с видеороликами, вроде YouTube, используют Flash для показа видео. У многих людей возникают проблемы с плагином для броузера Adobe Flash. Наиболее часто встречающаяся проблема — неработающий звук. Ниже представлены 10 способов решить проблемы со звуком в Flash.

1. Файлы Flash хранятся во временной папке. Если скачанный файл оказался битым, это может быть причиной неработающего звука.

Удалите следующие папки:
C:\Documents and Settings\%UserName%\Application Data\Adobe\Flash Player
C:\Documents and Settings\%UserName%\Application Data\Macromedia\Flash Player

2. Удалите временные файлы интернета.

Internet Explorer: Сервис -> Свойства Обозревателя
Firefox: Инструменты -> Удалить личные данные…
Opera: Инструменты -> Удалить личные данные…

3. Очистите папку с временными файлами.

Используйте эту команду для очистки папки с временными файлами:
Пуск -> Выполнить -> RMDIR /S /Q “%TEMP%”

4. Установите самую свежую версию Flash-плагина. Вы можете скачать её ЗДЕСЬ. Если возникают проблемы с обновлением плагина, удалите его текущую версию с помощью этой программы. Перед тем как её запускать, закройте броузер(ы).

5. Запустите K-Lite Codec Tweak Tool. Сверху должна быть опция для исправления проблем со звуком (Midi, WaveOut)[ссылка]. Выберите её и нажмите «Далее». Если опция неактивна, коррекция реестра не требуется.

6. Перейдите на страницу настройки проигрывателя Flash — ЗДЕСЬ.
Отметьте галочкой опцию “Allow third-party Flash content to store data on your computer”.

7. Убедитесь, что настройки звука правильные:
Пуск -> Настройка -> Панель Управления -> Звуковые и Аудио Устройства -> Звук

8. Если установлен QuickTime, откройте его панель настройки. Во вкладке “Audio” установите “Default Music Synthesizer” в положение “General MIDI”.
Во вкладке “Advanced” отключите “Enable playback of Adobe Flash tracks”.
Во вкладке “browser” щёлкните по “MIME Settings”. Убедитесь, что в “Miscellaneous” “Flash media” не включено.

9. Проверьте наличие файла «msacm32.drv» в папке Windows «system32». Если его там нет, скопируйте с другого компьютера (с такой же версией Windows) и поместите в папку «system32».

10. Если проблемы со звуком возникают и в других приложениях, попробуйте переустановить драйверы звуковой карты.

© Первоисточник неизвестен

Ошибка С0000034 при операции обновления Windows 7 SP1

Данная ошибка возникает при попытке обновления Windows 7 до Service Pack 1.
В частности по скольку на данный момент Я пользуюсь лицензионной копией этой операционной системы Я могу с легким сердцем позвонить в техническую поддержку Microsoft, но т.к. я не силен в английском (в Российское представительство работает с 8 до 20 по МСК) – это был не вариант.
Итак, проблема возникает при попытке обновления Windows 7 до SP1.
На данный момент решается следующим образом:

  • При загрузке операционной системы выберите средства восстановления ОС
  • При поиске проблем нажмите “Отмена”
  • В появившемся окне выберите “Не отправлять”
  • Нажмите ссылку “Просмотреть расширенные опции восстановления и поддержки”
  • В новом окне выберите последний пункт “Command promt” или “Командная строка”
  • Наберите notepad.exe
  • Нажмите “Файл” – “Открыть”
  • Смените “Тип файла” с “тхт” на “Все файлы”
  • Перейдите в папку C:\Windows\winsxs\ (или в папку Windows на вашем системном разделе, если он у вас не С)
  • В этой папке найдите файл pending.xml и сделайте его копию
  • Откройте основной файл pending.xml и с помощью поиска (CTRL+F) найдите следующий текст БЕЗ КАВЫЧЕК: “0000000000000000.cdf-ms
  • Выделите и удалите всю строку
    <Checkpoint/>
    <DeleteFile path="\SystemRoot\WinSxS\FileMaps\_0000000000000000.cdf-ms"/>
    <MoveFile source="\SystemRoot\WinSxS\Temp\PendingRenames\e56db1db48d4cb0199440000b01de419._0000000000000000.cdf-ms" destination="\SystemRoot\WinSxS\FileMaps\_0000000000000000.cdf-ms"/>
    
  • Сохраните файл и перезагрузите компьютер.

Учтите, что текст в вашем файле pending.xml может незначительно отличаться от указанного выше.

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

Если ничего вообще не помогло или вы не нашли этого файла, то можете попробовать решить проблему так, как описано в этой статье.

Если Вам помогло – расскажите друзьям в Твиттере.

Удаление порнобаннеров

Есть несколько способов удаления порнобаннеров. Я пользуюсь каждым – в зависимости от ситуации. Сейчас я попробую описать самые популярные из них. Данная статья не совсем для новичков. Коллеги могут попробовать дополнить:

1 вариант (ленивый):
Удаление с помощью кодов. Существует несколько сайтов, на которых уже есть коды доступа для баннеров. Некоторые из них помогают, а некоторые не очень. Continue reading “Удаление порнобаннеров”

Обработка ответа от MySQL в Perl и Template Toolkit

Буду периодически писать о Perl и Template Toolkit. Информации в интернете чуть более, чем достаточно, а я буду собирать то, что нужно мне здесь.

При работе с БД получая данные с помощью fetchall_hashref($key) шаблоны надо парсить так:

Получаем ответ от БД

$res->fetchall_hashref($key_field);

, где $key_field ключ, который будет использоваться для дальнейшей обработки.
Подробнее про функцию тут.

После в шаблоне организуем foreach:

                [% FOREACH variable IN variables.pairs %]
                    [% variable.value.field %]<br />
                [% END %]

, где variables – хэш, .pairs – обработчик Template Toolkit, который присвоит variable ключи и значения без потерь. После этого к любому полю в строке можно будет получить доступ указав variable.value.field, заменив .field на название своего поля в таблице.
Подробнее про pairs тут.

Домашний “роутер” на Freebsd – часть 2

Продолжим нашу тему домашнего роутера на Freebsd.

В этом посте я опишу как сделать bridge из wi-fi и lan, hostapd, который позволит управлять wi-fi точкой доступа (например мы сможем поставить шифрование WPA2-PSK), а так же настроим DHCP для FreeBSD. Для тех кому нужен только wi-fi (или lan) могут настроить так же, как и здесь опустив настройку бриджа.

Итак – мы собрали ядро в необходимыми параметрами и устройством if_bridge.
Continue reading “Домашний “роутер” на Freebsd – часть 2″