Ебанатский дегенератизм - нередкое явление при работе с любыми СУБД, так уж складывается, что их разработкой занимаются довольно странные люди. Режим NO_ZERO_DATE пополняет список ебанизма. По умолчанию он включен с 5.7, и ровно с этого же момента он и начинает портить нам жизнь.

Проблема в том, что несмотря на его наличие, дата '0000-00-00 00:00:00' всё равно КАК-ТО БЛЯДЬ В БАЗУ ПОПАДАЕТ ёб вашу мать, а ошибка

MySQL Incorrect datetime value: '0000-00-00 00:00:00'

появляется только тогда, когда у вас горят сроки и надо в продакшене срочно что-то поправить. Ну естественно.

Поэтому мы делаем следующее:

  1. Мысленно посылаем инноваторов, внедривших NO_ZERO_DATE сначала в пизду, затем нахуй, а после - в ёбаный сатанинский ад.
  2. Заходим под root пользователем в базу.
  3. Выполняем запрос
SHOW VARIABLES LIKE 'sql_mode';

читире. Получаем в ответ что-то вроде "ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_..."
5. Ищем полчаса блядскую галочку "Full texts", спрятанную разработчиками phpMyAdmin в мелкошрифтную ссылку + Options.
6. Получаем в ответ что-то вроде

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

сем. Вычёркивам нахуй этот сучий гонорежим NO_ZERO_DATE.
8. Выполняем что-то вроде

SET GLOBAL sql_mode='ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

девить. Пишем пост в интернете про это блядство.
10. Охуеваем от того, что wordpress превращает вручную набранные цифры в списки и сбрасывает блядскую нумерацию, ведь до этого момента такого никогда еще не происходило. Ни разу.
11. Понимаем, что вести войну с вордпрессом нет уже ни сил, ни времени, ни желания.
12. Идём отвечать на 45 пропущенных звонков и 194 новых письма, накопившихся, пока мы исправляли этот внезапно свалившийся на голову дятлоебизм.

The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.The folder Inbox is full, and can't hold any more messages. To make room for more messages, delete any old or unwanted mail and compact the folder.

Нужно её ЗАКОДИРОВАТЬ. И тогда она, блядь, раскодируется.

iconv = require 'iconv-lite'
fileName = '%D0%90%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9%20%D0%BF%D1%80%D0%B0%D0%B9%D1%8111.08.15.xls'
fileName = unescape(fileName)
console.log fileName
fileName = iconv.encode(fileName,'iso8859-1')
console.log fileName.toString()

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

Причина:
Причина блядь в том, что, блядь, команда, блядь, sudo блядь service блядь proftpd блядь
restart МОЖЕТ И НЕ ЗАПУСТИТЬ proftpd. Вот просто может взять и не запустить, блядь. Сука, блядь, в 21 веке-то, блядь.

Решение:
Все программы писать только самостоятельно, начиная с ОС. Процессоры и железо тоже паять дома паяльником. Паяльник сделать самому из кедровых шишек, говна, и железа, добытого самостоятельно, в самостоятельно построенной шахте. Для реальности написать тесты на случай, если сила гравитации внезапно начнет инвертироваться на малых дистанциях или выражение 2+2 станет оказываться равным 64-м.

Костылики для больнушки:

sudo service proftpd stop;sleep 2;sudo service proftpd start

Костылики для больнушки №2:

sudo nano /etc/init.d/proftpd

Стандартные рецепты из гугла почему-то не сработали. Чтобы найти скрипт, рассылающий спам, воспользовался командами:

exim -bp # Выводит список писем в очереди на отправку
exim -Mvh XXXXXX-XXXXXX-XX # Выводит заголовок письма по его ID
exim -Mvb XXXXXX-XXXXXX-XX # Выводит тело письма по его ID
exim -Mvl XXXXXX-XXXXXX-XX # Выводит лог письма по его ID
[ ]
 
exim -bp|grep -o '[0-9a-zA-Z]\{6\}-[0-9a-zA-Z]\{6\}-[0-9a-zA-Z]\{2\}'|xargs -L1 exim -Mrm
[ ]
 

Блядь! Какого хера оно его выполняет вместо возврата deferred? Пиздец!

q = require("q")

a = q.Promise (resolve,reject,notify) ->
  setTimeout(
    ->
      bu = Math.random() * 100
      console.log("a", bu)
      resolve(bu)
    ,
    Math.random() * 3000
  )  

b = q.Promise (resolve,reject,notify) ->
  setTimeout(
    ->
      bu = Math.random() * 100
      console.log("b", bu)
      resolve(bu)
    ,
    1000 + Math.random() * 3000
  ) 

Результат вызова:

$ coffee promises_all.coffee 
Running node v0.11.13
a 83.59919420909137
b 5.926010990515351

Ну и что с этим блядь делать? Блядь. Блядь. Блядь.

q = require("q")

q.all([

  q.Promise (resolve,reject,notify) ->
    setTimeout(
      ->
        bu = Math.random() * 100
        console.log("a", bu)
        resolve(bu)
      ,
      Math.random() * 3000
    )
  ,
  q.Promise (resolve,reject,notify) ->
    setTimeout(
      ->
        bu = Math.random() * 100
        console.log("b", bu)
        resolve(bu)
      ,
      1000 + Math.random() * 3000
    ) 
    
])
.then (pizdec) ->
  console.log pizdec

Результат вызова:

$ coffee promises_all.coffee 
Running node v0.11.13
a 28.216111892834306
[ 28.216111892834306 ]
b 73.70093793142587

Сука блядь сука блядь сука блядь сука блядь. Эта сука блядь нихуя не понимает блядь что там блядь массив блядь вместо этого блядь она компилируется блядь в полную блядь хуйню блядь хотя блядь все отступы блядь расставлены блядь правильно блядь сука блядь. Вот блядь правильный вариант, блядь. Скобочек ей не хватает блядь сука блядь что за тупизм блядь.

q = require("q")

q.all([

  (a = q.Promise (resolve,reject,notify) ->
    setTimeout(
      ->
        bu = Math.random() * 100
        console.log("a", bu)
        resolve(bu)
      ,
      Math.random() * 3000
    )
  ),
  (b = q.Promise (resolve,reject,notify) ->
    setTimeout(
      ->
        bu = Math.random() * 100
        console.log("b", bu)
        resolve(bu)
      ,
      Math.random() * 3000
    ) 
  )

])
.then (pizdos) ->
  console.log pizdos

console.log a,b

Результат вывода:

$ coffee promises_all.coffee 
Running node v0.11.13
{ state: 'pending' } { state: 'pending' }
a 87.82047459390014
b 66.98890661355108
[ 87.82047459390014, 66.98890661355108 ]

В общем, грустно всё это.

Guess what? NPM again. In my case there was an 'ect' package that had its own installed version of coffe-script which was conflicted with the default coffe-script that caused

error: reserved word "yield"

on each exception and error throwed by js libraries

/blalbalba$ coffee start_application.coffee.sh
Running node v0.11.13
/home/user/node_modules/co/index.js:292
throw err;
^
/home/user/tst/test16.coffee:3:3: error: reserved word "yield"
yield request.get()
^

after I replaced /home/user/node_modules/ect/node_modules/ folder with /usr/local/lib/node_modules/ this shit has gone.

[ ]
 

Черезжопное исправление черезжопных проблем в OpenCart. Убирает обязательность выбора модели и невозможность удаления производителя после того, как его уже внесли.
Для работы требуется установленный и исправный VQMOD. Не будет работать в 99 случаев из ста, как и 2048 таких же модулей, которые я перепробовал и в итоге сел писать свой самостоятельно. В любом случае после установки нужно будет открывать и исправлять что-нибудь ручками, какое-нибудь несоответствие того что ищется и чем заменяется.
model_manufacturer_fix

Гуглобляди, похоронившие плоды трудов разработчиков Firefox и Opera под своим сраным WebKit'ом, выдранным из пидрофона, не смогли во вложенные формы и теперь любые попытки вставить <form> внутрь <form> просто, блядь, не рендерятся. Горите в аду, ёбаные рукожопые мудилы из Google.

you could look here