Showing posts tagged rants

Долго к этому шёл, но пришёл: нельзя вливаться в проект, который не контроллируешь полностью. По крайней мере при первом же конфликте нужно из него выливаться. Любая попытка убедить людей в том, что их решение — не оптимальное, оборачивается тратой огромного количества нервов впустую. Если люди хотят пользоваться говном, а не системой — пусть пользуются, и пусть это будет их проблемой, а не моей. Наёмника не должно волновать за что ему платят.

«Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots. So far the Universe is winning.»

Хотел сообщить о паре багов в Audacity. Почитал как это делается, больше не хочу. Но всё ещё не понимаю, как можно написать такой шумодав, который работает только с 44.1/48 кГц, но падает при 8. Даже если чарами выделить буфер в стэке (оно на C++), всё равно не понимаю. И особенно — почему нельзя сделать обработку исключений каких-нибудь.

SQLite collation

SQLite 3.0 comes with a single built-in collating sequence named “BINARY” which is implemented using the memcmp() routine from the standard C library. The BINARY collating sequence works well for English text.

Very, very well:

$ SELECT id,title FROM channels ORDER BY title;
31|Wired's Gadget Lab Podcast
65|ZA Tech Show
33|freetonik TV
34|olymp

Больше никаких D-линков

При большом количестве p2p соединений — это нормальная ситуация. Причиной тому — переполнение NAT таблицы устройства, о чём не раз говорилось на форуме и давались рекомендации по использованию p2p клиентов. Ресурсы устройства не безграничны, что обусловлено производительностью CPU и объемом оперативной памяти.

dlink.ru

Даже не знаю, что с этим делать

Пример кода на PHP:

// Получим имя таблицы
if (preg_match("/no such column:\s*(\S+)/i", $info[2], $matches) or
    preg_match("/has no column named\s*(\S+)/i", $info[2], $matches)) {

  $cname = trim($matches[1]);
  if (preg_match("/from(.+)(?=where|order|\s*)/i", $sql, $matches) or
      preg_match("/into\s*(\S+)\(/i", $sql, $matches) or
      preg_match("/update\s*(\S+)\s/i", $sql, $matches)) {

      $tlist = explode(',',$matches[1]);
      foreach ($tlist as $tbl) {
        $tbl = trim($tbl);
        $spec = TableManager::checkColumn($tbl, $cname);
        if (!empty($spec)) {
          self::addColumn($tbl, $cname, $spec);
          $sth = $this->prepare($sql);
          $sth->execute($params);
          return $sth;
        }
      }
  }
}

Напомнило старое собеседование с программистом, которого попросили проверить, есть ли в тексте слово. Нашёл с помощью strcmp(“слово”). А если слово с большой буквы? «Да не вопрос!» И добавил strcmp(“Слово”).