Google скатывается в говно.

С сожалением и прискорбием могу отметить, что начиная с 2011 года google стремительно и неуклонно катится в говно. Google Apps стал глючить иногда почаще говноэса - почта то уходит, то приходит, то не пересылается нужным людям, google reader превратился в такое ублюдство, что пришлось купить greader, причем ублюдством стала (убрали нужные функции!) как android так и web версия ридера. Android market блядь запрашивает мои личные данные и, блядь, не принимает их, для оплата всякого говна при помощи кредитной карты! Из google adsense внезапно и безповоротно удален мой аккаунт, на котором, слава Великому Макаронному монстру, денег не было, причем удален под предлогом "смены механизма аккаунтов" или какого-то подобного говна, которое даст фору даже вебманям по глубине своей дибильности. Техподдержки у гугла нет. В ближайшие два года буду вынужден уйти с гугла к ёбаной матери. Впрочем, может оно и к лучшему. Параноик внутри меня говорит, что это кто-то дает знак что гугля под жосским колпаком, а все мои сообщения читают сомалийские пираты.

Я тут подумал и решил открыть на своем оффициальном™ блоге список компаний, услугами которых я никогда не буду пользоваться. Почему? Все просто - они звонят и отвлекают меня от работы. А я не то что не люблю. Я  НЕНАВИЖУ  когда меня отвлекают. Вот и сейчас. Звонит. Говорю не надо спасибо, мне не нужен ваш спам. И нет чтобы положить трубку, нет, блядь. Мне продолжают доказывать как мне охуенно нужен консультант++, хотя на работе и так уже есть один. В общем, я буду вести отдельную колоночку и прилагать все усилия, чтобы ни одна из организаций, с которыми я имею дело, услугами этих компаний не пользовалась. Ту, которая сейчас звонила, не запомнил, но не первая и не последняя же. Все такие компании будут находиться в категории под названием "Чёрный список". В первую очередь чтобы я сам не забыл.

Как узнать IP-адрес samba хоста

Странное неочевидное для меня решение с англоязычного форума.

sudo nano /etc/nsswitch.conf file
search for the line starting with hosts (my line was like this "hosts: files dns")
add "wins" to the line ("hosts: files dns wins")

now ping netbios name should also work from the linux pcs

После этого можно использовать netbios имена вместо ip из-под линукса:

$ ping FF6E8234
PING FF6E8234 (192.168.1.101) 56(84) bytes of data.
^C64 bytes from 192.168.1.101: icmp_req=1 ttl=128 time=0.166 ms

А как вытянуть из этого всего искомый IP-адрес мне уже не надо, а вы наверное лучше меня сделаете. Если не лень - потом допишите в комментарии. Спасибо.

[ ]
 

Может случиться, если вы заставили sshd крутиться на нестандартном порту и забыли, а на роутере пробросили порт 22. Второй раз у��е, блядь. Второй. Третьего не повторится.

На дворе 21 век, а функцию двунаправленной обратимой транслитерации на основе ГОСТ 16876-71 я так и не нашел! Поэтому написал собственную.

<?php

/**
 * Функция обратимой транслитерации на основе ГОСТ 16876-71
 * @author http://space1000.zxcv.one
 */

function translit_url($text,$decode = false)
{
  // Split text into array of unicode chars.
  preg_match_all('/./u', $text, $text);
  $text = $text[0];

  $simplePairs = array(
    'а' => 'a'   ,   'л' => 'l'   ,   'у' => 'u'   ,   
    'б' => 'b'   ,   'м' => 'm'   ,   'т' => 't'   , 
    'в' => 'v'   ,   'н' => 'n'   ,   'ы' => 'y'   ,
    'г' => 'g'   ,   'о' => 'o'   ,   'ф' => 'f'   ,
    'д' => 'd'   ,   'п' => 'p'   ,   
    'и' => 'i'   ,   'р' => 'r'   ,   

    'А' => 'A'   ,   'Л' => 'L'   ,   'У' => 'U'   ,
    'Б' => 'B'   ,   'М' => 'M'   ,   'Т' => 'T'   , 
    'В' => 'V'   ,   'Н' => 'N'   ,   'Ы' => 'Y'   ,
    'Г' => 'G'   ,   'О' => 'O'   ,   'Ф' => 'F'   ,
    'Д' => 'D'   ,   'П' => 'P'   ,   
    'И' => 'I'   ,   'Р' => 'R'   ,   
  );
  $complexPairs = array(
    'ж' => 'zh'  ,   'ч' => 'ch'  ,   'х' => 'kh'  ,
    'з' => 'z'   ,   'ц' => 'c'   ,   'к' => 'k'   ,

                                      'я' => 'ja'  ,
                     'щ' => 'shh' ,   'ю' => 'ju'  ,
    'э' => 'eh'  ,   'ш' => 'sh'  ,   'й' => 'jj'  ,
    'е' => 'e'   ,   'с' => 's'   ,   'ё' => 'jo'  ,   

    'Ж' => 'ZH'  ,   'Ч' => 'CH'  ,   'Х' => 'KH'  ,
    'З' => 'Z'   ,   'Ц' => 'C'   ,   'К' => 'K'   ,

                                      'Я' => 'JA'  ,    
                     'Щ' => 'SHH' ,   'Ю' => 'JU'  ,
    'Э' => 'EH'  ,   'Ш' => 'SH'  ,   'Й' => 'JJ'  ,
    'Е' => 'E'   ,   'С' => 'S'   ,   'Ё' => 'JO'  ,   

    'Ь' => "^'"  ,   'Ъ' => "^`"  ,
    'ь' => "'"   ,   'ъ' => "`"   ,   
  );
  $specialSymbols = array(
    "_" => "__",
    "-" => "_-",
    "'" => "_'",
    "`" => "_`",
    "^" => "_^",
    " " => "-",
  );
  $translitLatSymbols = array(
    'a','l','u','b','m','t','v','n','y','g','o',
    'f','d','p','i','r','z','c','k','e','s', 
    'A','L','U','B','M','T','V','N','Y','G','O',
    'F','D','P','I','R','Z','C','K','E','S', 
  );
  $simplePairsFlip = array_flip($simplePairs);
  $complexPairsFlip = array_flip($complexPairs);
  $specialSymbolsFlip = array_flip($specialSymbols);
  $charsToTranslit = array_merge(
    array_keys($simplePairs),
    array_keys($complexPairs)
  );
  $translitTable = array();
  foreach($simplePairs as $key => $val) $translitTable[$key] = $simplePairs[$key];
  foreach($complexPairs as $key => $val) $translitTable[$key] = $complexPairs[$key];
  foreach($specialSymbols as $key => $val) $translitTable[$key] = $specialSymbols[$key];
  $result = "";


  if($decode)
  {
    $char = array();
    $translitDisabled = false;
    for($pos = 0; $pos < count($text); $pos++)
    {
      $char[0] = $text[$pos];
      $char[1] = isset($text[$pos+1]) ? $text[$pos+1] : null;
      $char[2] = isset($text[$pos+2]) ? $text[$pos+2] : null;
      // Decoding specsymbols: [_-'`^ ]
      foreach($specialSymbolsFlip as $key => $val)
      {
        $search = "";
        for($j = 0; $j < strlen($key) ; $j++) $search.= $char[$j];
        if($search == $key)
        {
          $result.= $val;
          $pos += strlen($key) - 1;
          continue 2;
        }
      }
      // Lone '_' symbol disables or enables translitting.
      if($char[0] == '_')
      {
        $translitDisabled = !$translitDisabled;
        continue;
      }
      // When translit is disabled, simply add char to result.
      if($translitDisabled)
      {
        $result.= $char[0];
      }
      else
      {
        if(in_array($char[0],$simplePairs))
        {
          $result.= $simplePairsFlip[$char[0]];
          continue;
        }
        foreach($complexPairsFlip as $key => $val)
        {
          $search = "";
          for($j = 0; $j < strlen($key); $j++) $search.= $char[$j];
          if($search == $key)
          {
            $result.= $val;
            $pos += strlen($key) - 1;
            continue 2;
          }
        }
        // if nothing up worked
        $result.= $char[0];
        continue;
      }
    }
  }
  else
  {
    $translitDisabled = false;
    foreach($text as $char)
    {
      if(in_array($char,array_keys($specialSymbols)))
      {
        $result.= $translitTable[$char];
      }
      elseif(in_array($char,$charsToTranslit))
      {
        if($translitDisabled)
        {
          $result.= "_";
          $translitDisabled = false;
        }
        $result.= $translitTable[$char];
      }
      else
      {
        if(!$translitDisabled
        && in_array($char,$translitLatSymbols))
        {
          $result.= "_";
          $translitDisabled = true;
        }
        $result.= $char;
      }
    }
  }
  return $result;
}

Есть такая штука, называется ингалятор махольда. Весьма полезная. Последний раз я покупал его где-то год назад по смешной цене в 100 рублей, выздоровел и подарил болеющему знакомому. Уже тогда его было трудно найти, но я не придал этому факту значения. А зря. Сейчас его цена взлетела аж до 1600руб. Почему? Все просто - эффективные миньетжеры придумали продавать их "с наборами эфирных масел", которые нахуй никому не вперлись. И для каждого разумного мыслящего человека очевидно, что набор этих самых масел стоит от силы рублей 300, если туда вообще не нассали. Надеюсь я еще найду нормальный ингалятор махольда без торсионных масел, а тех кто поднял стоимость со 100 руб. до 1600 очень хочется послать на хуй. Чтоб вы сдохли. И дети ваши и родители и никто вам не помог. Я бы лично и с радостью пришел поссать на вашу могилу. Проблем вам, ребята. И чем больше тем лучше. Рака, СПИДа, коклюша, в конце концов.

А я ушел искать ингалятор по нормальной цене.

Маньяк отравленные деньги
На счёт детдома перевёл.
Погибло двадцать депутатов,
Два мэра и один префект.

[ ]
 

Раскопал свой старый годовалой давности фреймворк под php. Потыркался в него, понял почему идея классная, но не взлетит. А дело все в том, что php сам по себе язык скриптовый, а apache сам по себе такой сервер. И любые надстройки над этим всем будут выглядеть громоздко и уродливо. Если хочется фреймворков - надо ставить Node.JS и под него писать. И гораздо лучше использовать инструменты в их традиционном способе выполнения. Пускай даже с недостатками. Сделать из топора бензопилу в любом случае не получится. Лучше уж научиться хорошо пользоваться топором (а там есть свои нюансы).

Стандарт LSB предполагает, что в /opt устанавливаются все программные пакеты, которые не управляются пакетным менеджером.

Прим: таким как aptitude или yum.
http://unixforum.org/index.php?showtopic=83650

Был у меня оригинальный диск с драйверами для HP LaserJet 1200 PCL series, а потом я его просрал. А потом переустановил. И полезло из принтера говно вместо текста. Вместо драйверов на сайте hp.ru невнятная каша с говном, где выбрать что-либо адекватное с первого раза возможным не представляется, а если и скачаешь, то установщика там не будет (пичалька). Ну и в общем, починил я кое-как это говно, зайдя в настройки принтера и выставив там вместо "Использовать встроенные шрифты", "Использовать загружаемый шрифт". Казалось бы, проблема решена. А вот хуй! Говноэс новейшей версии не дремлет! Он сбросит нахуй все ваши настройки печати для принтера, ведь испортить вам (и мне) жизнь - основное, если не единственное назначение этого ёбаного казахского поделия. После долговременно-продолжительной ебли, выяснилось:
Помимо основных настроек в панели управления принтерами говнофорточек есть также еще одна сраная, тщательно запрятанная поебень, из которой говноэс и вытаскивает косячные настройки написанные ублюдками из эйч-пи. Собственно, вот эта ёбаная дрянь:


Если там донастроить, то говно перестанет дурно пахнуть.