Analitycs

понедельник, 1 октября 2012 г.

Как вывести массив из PHP в JSON без всяких UTF конвертаций?

Если нужно вывести кириллический массив в JSON для последующей обработки в Javascript, генерируя его посредством PHP, да еще и в Windows-1251 (без всяких UTF-8, encoding и прочего)  - да, да - "мсье знает толк в извращениях" (с) ;-) ,

то можно воспользоваться вот такой жуткой конструкцией.

function php2js($a=false)
{
  if (is_null($a)) return 'null';
  if ($a === false) return 'false';
  if ($a === true) return 'true';
  if (is_scalar($a))
  {
    if (is_float($a))
    {
      // Always use "." for floats.
      $a = str_replace(",", ".", strval($a));
    }

    // All scalars are converted to strings to avoid indeterminism.
    // PHP's "1" and 1 are equal for all PHP operators, but
    // JS's "1" and 1 are not. So if we pass "1" or 1 from the PHP backend,
    // we should get the same result in the JS frontend (string).
    // Character replacements for JSON.
    static $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'),
    array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"'));
    return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"';
  }
  $isList = true;
  for ($i = 0, reset($a); $i < count($a); $i++, next($a))
  {
    if (key($a) !== $i)
    {
      $isList = false;
      break;
    }
  }
  $result = array();
  if ($isList)
  {
    foreach ($a as $v) $result[] = php2js($v);
    return '[ ' . join(', ', $result) . ' ]';
  }
  else
  {
    foreach ($a as $k => $v) $result[] = php2js($k).': '.php2js($v);
    return '{ ' . join(', ', $result) . ' }';
  }
}

Страшно, да...  но работает ;-). "Костыли - это кошерно" (с)

Найдено в дебрях PHP.net

пятница, 14 сентября 2012 г.

"Довакин, довакин, наал ок зин вас вахриин" (с)


Показываю нашу последнюю работу для NorthStarModels, мои - консультации в процессе разработки мастера, сборка и окраска.
Фигура доступна для заказа у производителя, подробности и больше фото тут.

суббота, 8 сентября 2012 г.

MacOS X Lion: Finder съедает всю память

После обновления MacOS  X до Lion достаточно часто появляется странная проблема с Finder - без всяких видимых причин он начинает активно есть память, отъедая 1.5 и даже больше 2 Гб.

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

Решение

Обновить Dropbox. Так как у него нет автоматического обновления - старая версия может плохо работать на новой ОС.

В моем случае обновление было с версии 1.4.1 до 1.4.17 - помогло


воскресенье, 19 августа 2012 г.

Почему умирают IT-блоги?

Будучи "в этих ваших интернетах" с 1997 года (с перерывами на учебу, работу и военную службу)  заметил одну интересную особенность.

А именно - практически любой блог ITшника, который пишет на профессиональные темы - рано или поздно обречен на угасание и умирание.

Причины вымирания IT блогов просты как грабли

  • Человек развивается - то, о чем он писал полгода назад активно и с горящими глазами, сейчас не представляет для него никакого интереса
  • Если человеку по прежнему интересно писать - то зачастую он  продолжает писать уже на другую тему, не связанную с той, с которой он начинал. Соответственно - теряются те читатели, которые подписались на него раньше из-за его профессиональных постов
  • Технологии стагнируются и сворачиваются - раньше в фокусе внимания был Delphi и - где он сейчас?
  • Чем более профессиональным ITшником становится человек со временем - тем меньше времени у него на написание текстов. Время - деньги ;-)

По этим причинам IT-шные блоги через несколько лет

  • превращаются в "днявочки" / "жжшечки", в которых человек начинает общаться со своими знакомыми, 
  • тупо закрываются 
  • забрасываются
  • продаются на сторону.

В плане сообществ - все еще грустнее

Профессиональные сообщества - выживают только за счет user-generated контента - смотрите, кто сейчас на плаву в IT среде? ХабраХабр да Stack-Overflow либо специализированные форумы с не сильно большой посещаемостью.

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

Единственное исключение - это те люди, чья деятельность напрямую зависит от их ИЗВЕСТНОСТИ - это тренеры, консультанты, фотографы и так далее.  То есть те люди, которые совершают сделки с большим количеством разных людей/организаций за действия, совершаемые за небольшие периоды времени.

Программисты и сисадмины к этому не стремятся - они, как правило - работают на одну-две организации долгое время, по этой причине - известность им не сильно помогает в профессиональной деятельности. Ну... если только они не закоренелые фрилансеры. ;-)

Но вот если программист хочет стать учителем-"гуру" - тогда да, блоггерство имеет смысл - генерируем контент, нагоняем учеников и продаем им секреты мастерства. Но увы - эти секреты зачастую устаревают или просто становятся неактуальными со временем - не забывайте, что если программист ДЕЙСТВУЮЩИЙ - плодить потенциальных конкурентов ему просто не выгодно.

По этому на плаву держаться либо сообщества с тысячами студентов, генерирующих сообщения ( с кнопками оценки like / facepalm, ) - в которые профессионалы иногда заходят поржать а иногда уделяют свое время  чтобы написать небольшой ответ к умным вопросам (типа StackOverflow), либо небольшие групки-сообщества, зачастую закрытые от публичного доступа.

А личные IT-блоги - потихоньку вымирают, ибо многим авторам просто не нравится вещать в пустоту...

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

Особых надежд на этот блог не возлагаю - это записная книжка ;-)

суббота, 18 августа 2012 г.

Блокировка аккаунта.

Здравствуйте,

 Ваш профиль будет заблокирован, в связи с жалобой, поступившей к администрации 14.08.2012.

Согласно пункту 14.3 пользовательского соглашения, Google оставляет за собой право временно приостановить либо прекратить предоставление услуг Google Mail, своевременно уведомив об этом пользователя.

Опровергнуть заявление можно, пройдя аутентификацию: http://support.google.com/cgi-bin/?start?unblocked=2008474861215660

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

Жалобе присвоен номер id2008474861215660.

С уважением, Google Team

Получено с адреса teame.suport.corp@gmail.com

"Божественно" (с) - я считаю... ссылка подменена, URL другой, но дизайн - один в один ;-)

четверг, 9 августа 2012 г.

FileMerge exited - Compare Script Error


Диагноз

При попытке сделать Diff файла в Coda -  не происходит вообще ничего.
При попытке сделать Diff в Versions вываливается такая ошибка.


FileMerge exited with the following error:

You have not agreed to the Xcode license agreements, please run 'xcodebuild -license' (for user-level acceptance) or 'sudo xcodebuild -license' (for system-wide acceptance) from within a Terminal window to review and agree to the Xcode license agreements.

Решение

Собственно - нужно сделать то, чего вам и рекомендуется ;-)

xcodebuild -license

потом Space - для пролистывания лиценций и печатаем agree - для того чтобы согласится.

Теперь - можно пользоваться. Что это было - не понял, либо обновление XCode (что вероятнее), либо Mountan Lion.



вторник, 7 августа 2012 г.

Ubuntu sudo без пароля

sudo visudo
Добавляем в самый конец строчку где superpuperuser - ваш логин
superpuperuser ALL=(ALL) NOPASSWD: ALL
Готово