Задорнов
Найти книги М. Задорнова
Князь Рюрик. Откуда пошла земля Русская 2012
Рюрик. Полёт сокола 2013
Рюрик. Потерянная быль 2013
Слава Роду! Этимология русской жизни 2015
Моя записная книжка. Комментарии отключены из-за спама. Для вопросов используйте эту страничку
Найти книги М. Задорнова
Князь Рюрик. Откуда пошла земля Русская 2012
Рюрик. Полёт сокола 2013
Рюрик. Потерянная быль 2013
Слава Роду! Этимология русской жизни 2015
Покупал когда то такую вот шнягу
Хотел кошку на даче отпустить гулять. А она весом с кирпич оказалась.
Тем не менее раз купил надо извлечь пользу. Поделие китайское, инфы почти никакой нет, на трекинг сайтах over9000 моделей трекеров поддерживается, а этого нет ни у кого. Родной сайт 102.gpsjm.com говно полное, приложение аналогично. Но, можно смской передать трекеру свой адрес и порт для логирования.
Протокол неизвестен, поэтому пока что написал на питоне прокси и смотрю что эта голова шлет на свой сайт.
update:
Долбанные китайцы сделали keep-alive соединение, которое шняга поднимает и держит открытым.
Если оно открыто сервак без предупреждения шлет команды, а шняга по расписанию кидает координаты. Если в помещении и координат нет то только заряд аккума.
Тестирую разные интернет магазины.
Таким образом прихожу к выводу что на рынке нет адекватных бесплатных движков интернет-магазина.
Для чистоты эксперимента надо посмотреть битрикс и опенкарт.
https://habrahabr.ru/post/105954/
Работа с бекапами
Делаем бекап
mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql
Создаём структуру базы без данных
mysqldump —no-data — u USER -pPASSWORD DATABASE > /path/to/file/schema.sql
Если нужно сделать дамп только одной или нескольких таблиц
mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql
Создаём бекап и сразу его архивируем
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz
Создание бекапа с указанием его даты
mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`
Заливаем бекап в базу данных
mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql
Заливаем архив бекапа в базу
gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
или так
zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
Создаём новую базу данных
mysqladmin -u USER -pPASSWORD create NEWDATABASE
Удобно использовать бекап с дополнительными опциями -Q -c -e, т. е.
mysqldump -Q -c -e -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql, где:
-Q оборачивает имена обратными кавычками
-c делает полную вставку, включая имена колонок
-e делает расширенную вставку. Итоговый файл получается меньше и делается он чуть быстрее
Для просмотра списка баз данных можно использовать команду:
mysqlshow -u USER -pPASSWORD
А так же можно посмотреть список таблиц базы:
mysqlshow -u USER -pPASSWORD DATABASE
Для таблиц InnoDB надо добавлять —single-transaction, это гарантирует целостность данных бекапа.
Для таблиц MyISAN это не актуально, ибо они не поддерживают транзакционность.
Общие факты
Полезно под каждую базу на боевом сервере создавать своего пользователя
Кодировка базы может быть любой, если она UTF8
В большинстве случаев лучше использовать движок InnoDB
В php лучше забыть про сильно устаревшее расширение mysql и по-возможности использовать pdo или mysqli
Новую копию MySQL всегда можно настроить и оптимизировать
Без особой нужды не стоит открывать MySQL наружу. Вместо этого можно сделать проброс портов
ssh -fNL LOCAL_PORT:localhost:3306 REMOTE_USER@REMOTE_HOST
Работа с данными
Числа
На 32-битных системах практически нет смысла ставить для типа INTEGER свойство UNSIGNED, так как такие большие числа в php не поддерживаются.
На 64-битных системах, php поддерживает большие числа, вплоть до MySQL BIGINT со знаком.
Связанные таблицы («Foreign keys») должны иметь полное сходство по структуре ключей. Т. е. если у нас на одной таблице для поля указано «INTEGER UNSIGNED DEFAULT 0 NOT NULL» то и на другой должно быть указано аналогично
Для хранения булевых значений, нужно использовать TINYINT(1)
А деньги лучше хранить в DECIMAL(10, 2), где первое число обозначает количество всех знаков, включая запятую, а второе — количество знаков после запятой. Итого, у нас получится что DECIMAL(10,2) может сохранить 9999999,99
Строки
В старых версиях (до 5.0.3) VARCHAR была ограничена 255 символами, но сейчас можно указывать до 65535 символов
Помните, что тип TEXT ограничен только 64 килобитами, поэтому что бы сохранять «Войну и Мир» пользуйтесь «LONGTEXT»
Самая правильная кодировка для вашей БД UTF8
Даты
Не забывайте, что
DATE, TIME, DATETIME — выводятся в виде строк, поэтому поиск и сравнение дат происходит через преобразование
TIMESTAMP — хранится в виде UNIX_TIMESTAMP, и можно указать автоматически обновлять колонку
Сравнивая типы данных DATETIME и TIMESTAMP, не забывайте делать преобразование типов, например:
SELECT * FROM table WHERE `datetime` = DATE(`timestamp`)
Перечисления
Для перечислений правильно использовать тип ENUM
Правильно пишется так: ENUM(’мама’, ’мыла’, ’раму’)
Можно ставить значение по-умолчанию, как и для любой строки
В базе поле с перечислением хранится как число, поэтому скорость работы — потрясающе высокая
Количество перечислений ~ 65 тысяч
dev.mysql.com/doc/refman/4.1/en/storage-requirements.html
help.scibit.com/mascon/masconMySQL_Field_Types.html
Отладка
Если запросы тормозят, то можно включить лог для медленных запросов в /etc/mysql/my.cnf
А потом оптимизировать запросы через EXPLAIN
И наблюдать за запросами удобно через программу mytop
Подумать как можно реализовать
Индикатор поворота колес
Компания закупает продукцию по 75 у.е. На доставку товара от поставщика до склада компании тратится 25 у.е. В сумме закупка товара и затраты на доставку составляют 100 у.е. Этих два компонента являются слагаемыми себестоимости. При текущем ценообразовании компания зарабатывает 30 у.е. валовой прибыли. Валовая прибыль в сумме с себестоимостью определяет продажную цену компании 130 у.е.
Теперь давайте посмотрим, какова торговая наценка на данную продукцию? Торговая наценка — это отношение валовой прибыли к себестоимости, то есть в нашем случае 30 у.е. валовой прибыли делятся на 100 у.е. себестоимости продукции. Таким образом мы понимаем, сколько мы наценили на себестоимость.
Дальше давайте перейдём к понятию маржи (она же валовая рентабельность продаж). Валовая рентабельность продаж в нашем случае — 23%. Как определяется рентабельность продаж? Валовая прибыль (30 у.е.) делится на продажную цену компании (130 у.е.). То есть маржа — это отношение валовой прибыли к продажной цене компании. Маржа показывает, сколько мы заработали грязной, валовой прибыли от суммы продажи.
Стоит сказать, что наценка обычно применяется при ценообразовании. То есть руководство либо финансовый отдел может сказать ответственному менеджеру за продукт (менеджеру по закупкам), какая должна быть наценка на продукцию. Наценка — это инструмент в ценообразовании. С помощью торговой наценки формируются продажные цены.
Но с другой стороны существует рентабельность, прибыльность продаж (маржа). Данный показатель обычно используется при анализе компании — при определении эффективности определённой группы товаров либо направления. Данный показатель, в большей степени, используется финансовым отделом. Именно финансовый отдел определяет тот уровень рентабельности продаж, который должен быть у компании оптимальным, чтобы компания могла в дальнейшем нормально развиваться.
Стоит сказать, что конечная цель отдела финансов — определить чистую прибыль компании. Финансисты знают более детальную разбивку затрат, которая включается в валовую прибыль. Как вы знаете, валовая прибыль состоит из чистой прибыли и операционных затрат, которые компания несёт на свою деятельность. Уровень операционных затрат определяется, как отношение суммы операционных затрат к сумме продаж компании за определённый период. То есть, допустим, мы знаем, что уровень операционных затрат компании составляет 15,4% от продажной цены компании — в нашем случае это 20 у.е. от 130 у.е. Таким образом компания понимает, что валовая прибыль по данной продукции будет включать в себя операционные затраты на уровне 20 у.е. Если же отнять от 30 у.е. валовой прибыли 20 у.е. операционных затрат, то компания получит чистую прибыль в размере 10 у.е. Если разделить 10 у.е. чистой прибыли на продажную цену компании 130 у.е., то мы получим, что чистая прибыльность продаж компании составит 7,6%. То есть, как вы понимаете, чистая прибыльность продаж — это отношение суммы чистой прибыли компании при определённой продаже продукции к цене продажи на эту продукцию.
На основе предложенной схемы видно, что формулы торговой наценки и маржи имеют следующий вид.
Формула торговой наценки:
% наценки = ( (П.Ц. — СЕБ.) / СЕБ. ) * 100
Формула маржи:
маржа (%) = ( (П.Ц. — СЕБ.) / П.Ц. ) * 100
где, П.Ц. — продажная цена компании в у.е.,
СЕБ. — себестоимость продукции в у.е.
Давайте подставим в предложенные формулы компоненты цены (схема 1):
% наценки = ((130 у.е. — 100 y.e.)/100y.e.)*100 = 30%
маржа (%) = ((130 y.e. — 100 y.e.)/130 y.e.)*100 = 23%
Рентабельность продаж — коэффициент рентабельности, который показывает долю прибыли в каждом заработанном рубле. Обычно рассчитывается как отношение чистой прибыли (прибыли после налогообложения) за определённый период к выраженному в денежных средствах объёму продаж за тот же период. Формула рентабельности:
Рентабельность продаж = Чистая прибыль / Выручка
В рассмотренном случае рентабельность = 10/130 = 7,7%
Такую замечательную фразу я тут услышал от коллег, когда обсуждали метаморфозы, происходящие с техникой разных очень-очень солидных фирм. Делали, допустим, раньше в Германии хорошие автомобильные весы. Покупали их рукастые весовщики с Алтая, ставили в алтайскую землицу и работали эти весы по 20 лет без замечаний. В жару и мороз. А теперь весы эти заведомо нельзя ставить самому, ибо германский концерт предупреждает, что установку весов должны делать только их специально обученные специалисты. Они же будут весы мониторить и по надобности ремонтировать.
Да и просто с техникой происходят удивительные вещи. Она ломается! Причем глупо, быстро. Покупается приборина той же некогда железобетонно надежной германской фирмы, подключается — бах, пробой на корпус. Все в шоке — как это может быть. Германия же!? А вот может
Один из факторов, имхо, банальное отсутствие необходимости закладывать запас прочности. Вот пока они продавали свои приборины куда-то там в неведомую Сибирь раз и навсегда — запас прочности был. Ибо если чего не так — вернут целиком, попросят деньги назад и больше покупать не будут. А сейчас — есть представители, которые тут же приедут, посмотрят, наговорят с три короба.
Изделие не нужно предварительно испытывать до потери пульса. Само испытается — у потребителя. На то и мониторинг: «PLM вышел за границы заводов и конструкторских бюро и пришел к дилерам. Дилер, составляя отчеты о ремонтах и гарантийных случаях, отправляет их в систему PLM.
После чего инженеры на заводе могут оценивать, как их конструкция живет в реальном мире у конечного потребителя. Выясняют, в каких партиях возникают те или иные проблемы. И вот тут происходят уже явные подвижки в ухудшении качества продукции. Откровенно говоря, именно здесь качество и заканчивается. Теперь не завод проверяет продукт, а потребитель. Вместо ресурсных испытаний — реальная эксплуатация под присмотром дилера, но за собственный счет клиента. Зато получив PLM, инженеры сильно упростили для себя процесс разработки и исследования, переложив проверку получившегося результата на плечи покупателя. Это позволило очень серьезно сократить как сроки, так и средства на разработку изделия, не говоря уже о работе над ошибками в виде обязательного фейслифтинга или рестайлинга. Инженеры спокойно собирают данные обо всех неисправностях, анализируют и вносят изменения в конечную продукцию. Система, задуманная для повышения качества, стала ее убийцей.»
И в этой ситуации, действительно, «главным» становится маркетолог. Менеджер диктует инженеру какое СКО должно быть у его приборы. Инженер объясняет, что не получится такое СКО, ибо законы физики никто не отменял, а у менеджера есть волшебное — «Но у конкурентов — вот столько!» Инженер не знает как это у конкурента получилось, да и не может проверить — правда ли получилось. Ибо у конкурента теперь тоже инженер — не главный. Поэтому всякое может быть.
И инженер в лабораторных условиях при выпуске из производства дожимает приборину, чтобы казала искомые цифры. А в эксплуатации в Урюпинске ее сначала настраивает другой инженер, который кроет матом заводских и маркетологов, которые это все придумали; приборина в итоге как надо полностью все равно не работает, что инженер-дожиматель в принципе знает заранее. Потребителя просят никуда не лезть и сразу звать специалистов изготовителя — в том числе для того, чтобы потребитель, роясь в приборине, не нарыл чего не надо. Чего не надо изготовителю.
И вот так технологии развиваются, а техника не становится ни качественнее, ни дешевле, потому что всех этих сопроводителей-дожимателей же тоже нужно содержать. В итоге — раньше делали инженеры для людей, а теперь маркетологи для потребителей.
#Запрещаем загрузку файлов с внешних сайтов
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domainname.com/ [nc]
RewriteRule .*.(gif|jpg|png)$ http://domainname.com/img/stop_stealing_bandwidth.gif[nc]
#Запрещаем комментарии от пользователей без Referrer
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
Пассажиры 2016
Притяжение 2017
Джон Уик 2 2017
Обитель зла: Последняя глава 2016
Великая стена 2017
Конг: Остров черепа 2017
Последний охотник на ведьм
Капитан фантастик