apt-get -y install aptitude software-properties-common python-software-properties
[ ]
 

Ошибка:

На сервере установлен nvm, при подключении через ssh он не загружается.

Причины:

При входе через ssh вместо .bashrc всегда запускается .bash_profile, а загрузчик nvm прописывается себя в .bashrc

Решение:

Создать на сервере файл ~/.bash_profile с командой загрузки bashrc:

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

Дополнительно:

Эта параша может продолжать писать, что node not found, в этом случае надо сделать живительный nvm use default

[ ]
 

Ошибка:

Происходит хуйчаво, после чего не работает нихуя, а в журнале ошибок Шиndoшs вот эта сраная пидаралестичкая ошибка блядская.

- 
- 
   
  10010 
  0 
  2 
  0 
  0 
  0x80000000000000 
   
  58180 
   
   
  System 
  a37704a1 
   
  
- 
  {82154420-0FBF-11D4-8313-005004526AB4} 
  
  

Как починять:

  1. Запустить regedit, найти там к какому конкретному приложению относится {GUID}. В моем случае это был "Libreoffice Service Manager (Ver 1.0)"
  2. Запустить dcomcnfg
  3. В выпадающем списке слева, т.к. справа, благодаря стараниям LGBT-отдела Windows, нихуя не будет, и это попервой вводит в ступор, открыть "Службы компоненов->Компьютеры->Мой компьютер->Настройка DCOM->{Libreoffice Service Manager (Ver 1.0)}->ПКМ->Свойства"
  4. Помастурбировать настройками этого COM-приложения, поменять права доступа, пользователя, подобавлять групп, и прочее и прочее

Позволю себе процитировать себя же:

В общем, я снова поставил (вы сбрасывали?) пользователя, от имени которого запускается LibreOffice равным "Администратор", перезагрузил сервер, открыл LibreOffice, вылезло окно восстановления LibreofficeWriter документа, сделал восстановление - внутри ничего не было, закрыл LibreOffice, запустил 1С - все сохраняется и отрабатывает без ошибок, в том числе и с клиентских компьютеров.

Пока оно не сломалось где-нибудь еще, моя гипотеза такова: обработка печати договора неким образом крашит LibreOffice, тот при следующем открытии ждет подтверждения восстановления документа, из-за этого COM объект не регистрируется должным образом, и все стопорится (еще и не открывается, а висит в процессах отжирая процессорное время до полной перезагрузки компьютера). В нашем случае ситуацию еще ухудшило то, что LibreOffice, если мне не изменяет память, открывался от другого пользователя, под которым никто никогда не заходил, и восстановление это, наверное, при запуске там будет висеть и до сих пор.
В инструкции к линуксовой версии libreoffice указан флаг --norestore, позволяющий пропускать этап восстановления поврежденных документов. Аналогичный флаг должен существовать и для Windows-версии. Вопросы следующие:
1. возможно ли создавать COM объекты с флагами? Если да, то будет разумно использовать --norestore для автоматических операций.
2. каким образом обработка создает ситуацию, при которой ломается LibreOffice? Быть может там происходит kill процесса вместо нормального его закрытия? Желательно этот момент обнаружить и убрать.

Ошибка:

После обновления версии 1С на сервере, необходимо обновить клиент, но после установки версии клиента, все равно выскакивает сообщение о том, что версии клиента и сервера не соответствуют.

Причина:

Подключение идёт через веб-модуль. Криво-косое сообщение об ошибке выглядит так, будто версия клиента более ранняя, чем версия сервера. На самом деле, после обновления версии сервера 1с, версию веб-сервера необходимо обновлять отдельно и дополнительно ("переопубликовывать"). После перепубликаципи ошибка исчезает.

Ошибка:

При работе с transform - стримом выводилась ошибка

$ coffee urlsgenerator.coffee|coffee splitter-case.coffee 
/home/space1000/tst/streams/splitter-case.coffee:8
      this.push(chunk.toString());
           ^
TypeError: undefined is not a function
  at [object Object]._onTimeout (/home/space1000/tst/streams/splitter-case.coffee:5:9)
  at Timer.listOnTimeout (timers.js:110:15)

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: write EPIPE
  at exports._errnoException (util.js:746:11)
  at WriteWrap.afterWrite (net.js:766:14)

Причина:

Ошибка не связана с потоками или стримингом. Ошибка была простой ошибкой, которую выкидывает интерпретатор в процессе работы кода. В данном случае она находится в самом верху:

/home/space1000/tst/streams/splitter-case.coffee:8
      this.push(chunk.toString());
           ^
TypeError: undefined is not a function

Однако, ввиду того, что в stdout уже пайпнут вышеупомянутый трасформ-стрим, обычный вывод ошибок, который в ноде идёт не в stderr, а в stdout (интересно, можно ли это изменить?), да и вообще вывод в stdout чего угодно уже считается тяжким преступлением и карается выбрасыванием Error: write EPIPE, что и придаёт обычной с виду ошибке такую мудацкую нечитаемую форму, которая заставляет пенять на какие-то скрытые баги в коде самой ноды или coffeescript или вообще хуй знает чего.

Пример:

urlsgenerator.coffee

rs = (require 'stream').Readable()
rs.drained = false

outputData = 
[
  "http://ya.ru "
  "http://goo"
  "gle.com\n"
  "http://bing.com "
  "http://y"
  "aho"
  "o.com\n"
  "http://rambler.ru"
]

intervalId = setInterval(
  ->
    if rs.drained
      if outputData.length isnt 0
        rs.drained = false
        #console.error(outputData.shift())
        rs.push(outputData.shift())
      else
        rs.push(null)
        clearInterval(intervalId)
  ,250
)

rs._read = ->
  rs.drained = true

rs.pipe(process.stdout)

splitter-case.coffee

ts = new (require 'stream').Transform()
ts._transform = (chunk, encoding, done) ->
  setTimeout(
    ->
      @.push(chunk.toString())
      done()
    ,1000
  )
 
process.stdin.pipe(ts)
ts.pipe(process.stdout)

Вывод:

$ coffee urlsgenerator.coffee|coffee splitter-case.coffee 
/home/space1000/tst/streams/splitter-case.coffee:8
      this.push(chunk.toString());
           ^
TypeError: undefined is not a function
  at [object Object]._onTimeout (/home/space1000/tst/streams/splitter-case.coffee:5:9)
  at Timer.listOnTimeout (timers.js:110:15)

events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: write EPIPE
  at exports._errnoException (util.js:746:11)
  at WriteWrap.afterWrite (net.js:766:14)

Обновлённый код splitter-case с исправленной (типичной) ошибкой:

ts = new (require 'stream').Transform()
ts._transform = (chunk, encoding, done) ->
  setTimeout(
    =>
      @.push(chunk.toString())
      done()
    ,1000
  )
 
process.stdin.pipe(ts)
ts.pipe(process.stdout)

Результат выполнения той же операции:

$ coffee urlsgenerator.coffee|coffee splitter-case.coffee 
http://ya.ru http://google.com
http://bing.com http://yahoo.com
http://rambler.ru

[ ]
 

Ошибка:

Firefox по нажатии Ctrl+F выдает поиск с включенной чувствительностью к регистру.

Решение:

Зайти в about:config и установить

accessibility.typeaheadfind.casesensitive

равным 0

[ ]
 

Ошибка:
После запуска coffee всегда печатает надпись

Running node v0.11.13

Возможная причина проблемы:

Всё запускается через жопу NVM:

$ cat .bashrc|grep "alias coffee"
alias coffee='nvm run 0.11.13 --harmony /usr/local/bin/coffee'
$ nvm run 0.11.13 /usr/local/bin/coffee 123.coffee
Running node v0.11.13
123

Решение:

Убедиться, что bin/coffee запускается напрямую, а не какими-то окольными путями.

$ /usr/local/bin/coffee 123.coffee
123
[ ]
 

Код:

process.stdout.push "123"

Ошибка:

Running node v0.11.13
_stream_readable.js:445
    stream.read(0);
           ^
TypeError: object is not a function
  at maybeReadMore_ (_stream_readable.js:445:12)
  at _stream_readable.js:435:7
  at process._tickCallback (node.js:343:11)
  at Function.Module.runMain (module.js:492:11)
  at startup (node.js:124:16)
  at node.js:807:3

Причина:

push() предназначен для Readable потоков. Для Writable используется write()

[ ]
 

Симптомы: При попытке обновить package возникает вот эта хуйня.
Лечение: обновить npm. Несколько раз с разными флагами и из-под разных версий node, желательно из-под самой последней, а то бывают привиреды.

[ ]