PHP 5.3 и поддержка old passwords в MySQL

Очень любопытно — PHP наконец-то начал насаживать довольно старые стандарты — но почему-то от них не могут отказаться миллионы разработчиков.

После обновления PHP и либы mysqlnd один из production-серверов вскрякнул:

Warning: mysql_connect() [function.mysql-connect]: Premature end of data (mysqlnd_wireprotocol.c:554) in ...
Warning: mysql_connect() [function.mysql-connect]: OK packet 1 bytes shorter than expected in ...
Warning: mysql_connect() [function.mysql-connect]: mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication. Please use an administration tool to reset your password with the command SET PASSWORD = PASSWORD('your_existing_password'). This will store a new, and more secure, hash value in mysql.user. If this user is used in other scripts executed by PHP 5.2 or earlier you might need to remove the old-passwords flag from your my.cnf file in ...

Читать пост целиком »

Вертолетный шум MacBook Pro

MAMP App вконец меня выбесил своей абсолютной некрутостью виртуальных хостов.

Вычистил его корни отовсюду, запустил

sudo port install apache2 mod_perl2 mod_ssi_func mysql5-server mysql5-client php5 php5-mysql

ии кааак пойдет на взлет прошка моя — что прям думал со стола улетит — такой шум поднялся от кулеров — негодует видимо =)
Читать пост целиком »

Сбросить пароль в Redmine

Оказалось что это не так очевидно и просто как могло бы быть. Забыл админский пароль в Redmine.

Первым делом полез в БД — смотреть на хеши. Попробовал md5, потом все-таки полез в гугл искать алгоритм шифрования — оказалось SHA1. Но и с sha1 не пустило.

Смотрел таблицу users — поле hashed_password.
Читать пост целиком »

DevConf'2011 — 4 июня

http://devconf.ru
Буду дебютировать в роли докладчика на Perl-секции — http://devconf.ru/offers/24 , в 18-00, закрывая секцию.

«Концепция алгоритма построения стабильного многопоточного приложения которое обрабатывает слова, нормализуя их с помощью инструмента от Яндекса — mystem.»
Читать пост целиком »

Отключить рекламу Beeline

На телефон стали приходить USSD-сообщения. Порыл как отключить, поругался, всё как надо.
Оказывается, это услуга Хамелеон, подключаемая автоматически при проверке баланса через *102#.

Отключаем:

Или звоним 0684-700-000
Или *110*20#
Или меню «Beeinfo» —> «Хамелеон» —> «Активация» —> «Откл.»

C# — работа с вебом и файлами

Внутреннее веб-окружение офиса не имеет NS-записей — и мало того, из офиса нельзя достучаться к нему через внешний IP офиса.

А извне — можно, веб-гейт проброшен. Из-за этого приходилось каждый раз — дома и на работе — менять hosts-файл, раскомментируя нужные записи и закомментируя ненужные.
Читать пост целиком »

Передача параметров по ссылке в PHP

Как-то один свежеперенесённый проект накакал в логи приличное количество сообщений.

В них он слёзно молил включить ему allow_call_time_pass_reference — иначе он работать отказывался.

Иню-то включили, — но заставило насторожиться — с чего это ссылки начали так ругаться.
Читать пост целиком »

Построчно вывести два файла рядом

Самый оптимальный способ вывести два больших файла «рядом»

Предположим, что есть два файла
1.txt cодержит:
1
2
3
4
5

2.txt содержит
6
7
8
9
0

Надо вывести запись из файла 2.txt рядом с записью 1.txt

perl -le 'open F,"<$ARGV[0]";while (<STDIN>){chomp;print «$_\t».readline (*F);}close F;' 2.txt<1.txt

Читать пост целиком »

Выдача картинок из Гугла

Мерзоциды внедрили живой поиск и теперь пагинация страниц отсутствует — всё подгружается на одной и той же странице.

Впрочем, это не помешало такой-то матери и FireBug узнать — как надо грести страницы парсером.

images?um=1&hl=ru&gbv=2&prmdo=1&as_st=y&tbs=isch%3A1&sa=1&q=запрос&aq=f&aqi=g10&aql=&oq=&gs_rfai=&biw=1600&bih=338&addh=36&ijn=bg&page=2&start=25
Читать пост целиком »

LiveJournal TabIndex Greasemonkey plugin

Взьярённый от нововведений ЖЖ, набросал махонький Greasemonkey-скрипт, чтобы комментарии по-прежнему отправлялись в стиле Write-Tab-Space-Style

// Adding TabIndex to LJ Post button user script
// version 0.1 BETA!
// 2010-09-01
// Copyright © 2010, Andrew Jumashev
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//
// --------------------------------------------------------------------
//
// This is a Greasemonkey user script.
//
// To install, you need Greasemonkey: https://addons.mozilla.org/en-US/firefox/addon/748
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to «Install User Script».
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select «TabIndex LiveJournal», and click Uninstall.
//
// --------------------------------------------------------------------
//
// ==UserScript==
// @name TabIndex LiveJournal
// @namespace http://www.skazkin.ru/
// @description This is a quick patch on LiveJournal innovation with adding FB and Twitter repost options. This script supports old Write-Tab-Post style for writing comments.
// @include *.livejournal.com/*
// ==/UserScript==

Читать пост целиком »

Страница 2 из 1012345678910