Категория: Компьютеры

Заметки о программировании и на околокомпьютерные темы

Вложенные категории: Игры, Delphi

SManga

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

Очень удобно, сразу увлёкся мангой, так легко стало читать.

Всегда на связи и менее доступны

Я заметил, что установка аськи на мобильник ведёт к тому, что человек становится менее доступен, чем прежде.

Его аккаунт всё время в сети, но попробуйте написать ему – нет ответа. Или он едет в транспорте, или мобильник валяется на дне портфеля, или сообщение в общей суматохе будет сброшено, когда ему позвонят.

Даже если сообщения хранятся на сервере, и рано или поздно дойдут, создаётся чувство, что связь с человеком хуже. Ведь раньше, всегда, когда он был онлайн – ему можно было написать и получить ответ. А теперь пишешь как в пустоту.

Поэтому я придумал для себя такую политику IM:
1. В аське и джаббере я доступен по-прежнему только тогда, когда включён мой компьютер (домашний, ноутбук или рабочий). В большинстве случаев я могу ответить сразу, как к нему подойду.
2. В скайпе я доступен всегда, когда включён мобильник. У скайпа хорошая синхронизация и сообщения он доставляет и на мобильник, и на стационарный комп, так что это лучший способ быстро до меня достучаться.

Решайте сами, что вам важнее: если поговорить – ловите в аське, как раньше, если срочно связаться – пишите в скайп.
(А также можно послать личное сообщение в контакте, похоже, я их тоже к мобильнику подключил. Чё только на свете не сделаешь)

Для будущих поколений – Как настроить IMAP на андроиде

В качестве шифрования обязательно указывать SSL, а не TLS и не “без шифрования”.

Купил себе телефон на Android 2.3

Samsung Galaxy Ace S5838 или как-то так.

Сам телефон удобный. Ловит интернет через GPRS, 3G, разный вай-фай. Уже поставил скайп, читалку для Aozora Ruby (японские тексты с разметкой). В общем, доволен.

Недоволен гуглом. В последнее время так всегда. Только плотнее общаешься с гуглом – сплошное недовольство.
Это его-то ставили в пример Майкрософт? Даже в худшие годы Винда не была таким глючным и бестолковым продуктом, как в последнее время гугл.

(смешные жалобы на гугл)

Пытаюсь подключиться по имапу к почте на Google Apps – не подключается.

Два часа возни и сорок тредов таких же горемык спустя, нахожу в справке:
Если у вас не подключается по IMAP, зайдите на apps.google.com/yourdomainname.com/UnlockCaptch… и введите капчу.

Что?
А как я должен был догадаться, блин?

Ну ладно. Захожу по этому адресу, ввожу капчу:
– Капча не та.

Ввожу ещё раз:
– Пароль не тот.

Почему пароль-то, блин, не тот, я его скопипастил из ластпасса! Проверяю, логинюсь – правильный пароль. Копирую в UnlockCaptcha – неправильный. И что блин теперь?

Два часа возни и сорок тредов таких же горемык спустя, нахожу:
Если ваш аккаунт Google Apps старый – вам нужно туда, куда написано в справке. А если уже прошёл обновление (непрошеное, между прочим) – вам теперь на google.com/accounts/UnlockCaptcha

Что?
А как я должен был догадаться, блин? А написать об этом в справке, перенаправить старую капчу на новую? А ответить, в конце концов, хоть в одном из тех сорока тредов? Майкрософт свои форумы поддержки старательно отслеживает, между прочим.

Но ладно. IMAP так и не заработал. (Бог его знает, почему). А раз уж речь зашла про долбанный гугл, расскажу ещё вот что.

В какой-то момент гугл решил, что надо Всё Объединить (хотя никто не просил).

Есть такая штука, Google Apps, это gmail для вашего собственного домена. Например, для boku.ru, чтоб понятней было.
Раньше можно было залогиниться в me@boku.ru, и этот логин работал для веб-интерфейса почты boku.ru. А логин на гугле работал для почты гугла. Всё логично.

Потом гуглу захотелось сделать универсально. Облачная инженерия, как Спольски это называет.

Гугл сделал так, чтобы любой аккаунт работал везде. Хочешь – логинься в гугле под me@boku.ru. Это здорово!
Но при этом гугл сделал так, чтобы работал только один аккаунт. Хочешь залогиниться на boku.ru – разлогинься в гугле. А вот это уже, друзья и товарищи, слово с буквы П на букву Ц, и совсем не ПЛОВЕЦ. Начинаем перелогиниваться между аккаунтами по десять раз на дню, потому, что гуглу захотелось странного.

Мало того.

Администратор домена Google Apps может включить или выключить дополнительные сервисы. Например, Google Docs для домена. Это хорошо и понятно: если мне Google Docs нафиг не сдался, зачем его держать?

С момента объединения эта система работает чуть иначе: не “дополнительные сервисы внутри домена включаются”, а “обычные сервисы в интернете выключаются”.

Заходишь на youtube, а тебе: администратор домена (какого, блин, домена?) не включил вам этого сервиса.

Чё?

Особое издевательство в том, что я и есть администратор домена. Я сам себе не включил интернет. Который непонятно зачем гугл выключил.

Мало того.

Включаю youtube. Включаю ВСЕ сервисы, которые есть, чтобы уж наверняка. Чтоб не обнаружить потом, что меня ещё где-нибудь в интернете превентивно забанил я сам (с услужливой допомогой гугла). Что б вы думали?

Есть сервис, который нельзя там включить. И пользователей Google Apps на него не будет пускать в принципе. Какой же это секретный сервис?

Справка Гугл.

Справка Гугл отключена для вас вашим администратором домена.

В смысле, Гугл… минуту. Я не могу даже нормально сформулировать свой вопрос. Это что вообще такое? Кто придумал банить справку-то? Ну её-то за что?

Ладно. Набираю в гугле “как включить справку гугл”. Находит. Находит несколько страниц об этом в справке. В справке гугл…

Окей, слава богу, кеш Гугла ещё работает, меня в нём ещё не забанили, и я смотрю справку Гугла через кеш Гугла, как китайский политзаключённый видеозапись движения танков на площади Тяньаньмэнь. Но ничего полезного там нет. Зато есть сорок тредов таких же горемык, откуда ясно, что справку Гугла включить никак нельзя из-за ошибки.

Этой ошибке уже больше года. Её и не думают исправлять. (Ведь так сложно, наверное). Ни в одном из тредов работники гугла не отвечают.
(Кстати, работники гугла вообще существуют? Кто-нибудь когда-нибудь их в интернете видел? Я вот ни разу).

Итого: пользоваться логинами Google Apps в веб-интерфейсе невозможно. Слава богу, что мне в общем-то нужен только логин по имап, а в вебе я могу оставаться под обычным гугловым аккаунтом.

Но вообще-то говоря, Гугл! У вас много миллиардов долларов, десятки тысяч программистов. Чё, сложно сделать привязку аккаунтов друг к другу, чтоб не перелогиниваться? Чё, оттестировать было сложно все процессы? Чё, мониторить форумы техподдержки большой напряг?

И этот марафон фейла – не первый. Про гугловый IMAP знаете?

Есть стандарт IMAP, поддерживающий папки для писем и теги. Письмо может лежать только в одной папке, но быть помеченным несколькими тегами.
Десяток лет существует стандарт, написана куча клиентов и серверов. И все, в целом, счастливы. Потому, что следуют стандарту.

Появляется гугл. Сопит, оглядывается… Нахоженная тропа не для слонов: прётся через кусты:

У гугла папки работают как теги. А теги не работают никак.

То есть, гугловые теги ваши IMAP-клиенты просто не получат. А получат папки, но только если письмо перенести из одной в другую – оно окажется в обеих. Разумеется, клиенты сходят с ума, и с гугловой почтой никто нормально работать долгое время не мог.

Как можно было такое написать – просто крыша едет. Либо программисты, либо менеджеры были либо без мозгов, либо с клешнями. Либо всё это вместе.

Но всё это было давным-давно в тридесятом царстве, и как вы думаете, за прошедшие шесть лет, как починил гугл свой имап? (Если вы думаете, что никак – вы правы). С тех пор изменилось только то, что некоторые имап-клиенты приноровились к тому уроду, не без которого в семье, и работают с умственно отсталым братцем особым образом.

А починить свой имап гугл не смог. За шесть лет. С десятками тысяч программистов. Злые языки… да что там, любые языки скажут, что гуглу просто невыгоден имап: они проталкивают идею использования веб-интерфейса своего GMail, а имап – ему альтернатива. Зачем его чинить? Даже напротив: лучше не чинить. Лучше даже сломать. Собственно, поэтому, скажут языки, его и сломали.

Ответить этим языкам нечего, да и незачем, поскольку они правы. Какой там у гугла слоган, “не делай зла?” Правда? Правда-правда?

Документация к PHP

Ножницы

Ножницы – отрезают кусок тонкого предмета от него самого. Для отрезания толстых предметов используйте Нож.

Параметры:

Предмет – предмет, от которого отрезают.

Возвращаемое значение:

Отрезанный кусок или null.

См. также:

Нож – отрезает кусок от толстого премета.
Пила – отрезает кусок от крепкого предмета.

Дополнения пользователей

(далее)

Ковыряние в ушах

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

Ножницы из подручных материалов

Если ваша версия PHP не поддерживает ножницы, используйте следующий трюк. Возьмите два длинных тонких предмета, например, авторучки или зубочистки, и смотайте их проволокой. Посередине намажьте клея для надёжности, а к двум концам зубочисток приклейте кольца от ключей. В принципе всё! У меня оно почему-то не работает, мелочи отлаживайте сами…

зачем нужен нож я не понимаю?!!!

кто нибудь может обеснить мне зачем, нужен нож это же то же самае в чём разница. какую версию мне исползовать?!!!! почему у ножа нет дырочек?!!! подскожите кто нибудь плиз!!!!

вот вам кусок кода

/\n((?:\*|#|\;|\:)+.*?(\[)((http\:\/\/|https\:\/\/|ftp\:\/\/|gopher\:\/\/|news\:\/\/)[\w\d\:\#\@\%\/\;\$\(\)\~\_\?\+\-\=\\\.&]*)(?<!')'('{1,4})(.*?)\\1'(?!')(\s+([^\[^\]]*))?(\])\n(?!(?:\*|#|\;|\:)+))/s
мне подошёл вроде бы

Эта функция абсолютно бесполезна!

Разработчики PHP ещё раз показали, что им совершенно плевать на пользователей. Кому нужно дурацкое приспособление, которым даже дерева разрезать нельзя? А в Бензопиле до сих пор не исправлен баг, из-за которого она глохнет…

Чтобы не обрезаться Ножницами…

Закройте их и обмотайте в закрытом виде десятью слоями изоленты.

Я написал код, который заменяет ножницы, нож, ножовку, бензопилу

Если вам вдруг будет скучно использовать стандартные функции! Только он сюда не влез, тут ограничения на комментарии 20 килобайт, так что я запостил его в своём блоге: ссылка. Милости прошу! Между прочим, мой блог вообще интересное место… Да… А ещё я отаку и очень, очень одинок…

Импорт постов с Diary.ru

Написал пару php-скриптов, которые могут пригодиться хозяевам дневников на diary:

diary_fix_rss.php – исправляет ошибочный RSS вашего блога. После недавних изменений в RSS записей даты печатаются на русском языке, и большая часть RSS-клиентов их не понимает. В результате записи перемешиваются. Этот скрипт всё чинит.

В качестве параметра нужно передавать номер пользователя. Номер можно узнать, например, из адреса RSS дневника на самом diary.ru (static.diary.ru/userdir/1/2/3/4/12345/rss.xml: 12345 – это ваш номер).

diary_export_rss.php – генератор RSS не только из последних, а вообще из всех записей дневника по вашему выбору. Это значит, что вы можете экспортировать через RSS любое количество любых записей за любые сроки. Весь дневник целиком (только это долго) или любую категорию.

Кроме того, скрипт делает много других приятных вещей: восстанавливает теги ..., удаляет <br /> и <p>, и заменяет их переносами строки, в общем, приводит неудобочитаемый HTML к его исходному виду.

Прошу прощения, но хостить их я не могу, поэтому желающим придётся заливать их на свой хостинг (ну или найдите мне человека, который не побоится их захостить для общего пользования).

Скачать скрипты.

Обратите внимание, что скрипт работает медленно (ему приходится спрашивать все посты с more по отдельности), так что если вы переносите весь дневник, имеет смысл разбить вашу тысячу записей на группы, скажем, по 50-100, и переносить по частям.

Три расширения для Оперы, о которых вы не знали

И четыре, о которых знали.

Четыре, о которых знали:

  • LastPass – хранит и синхронизирует все пароли в интернете
  • ImagePreviewPopup – показывает картинки при наведении мыши на ссылку
  • LinkRedirector – переходит по ссылке насквозь через промежуточные сайты
  • ImageAutosizer – щелчком подгоняет раскрытую картинку под размер экрана
  • Эти расширения наверняка стоят у любого пользователя Оперы. Жизнь без них тяжела, но слава богу, недолга. А вот следующие три малоизвестны, хотя не менее интересны.

    Easy User CSS

    Маленький редактор, в котором можно писать CSS-код, и он будет применяться к текущему сайту на ходу. Более того, он сохранится и будет всегда применяться к сайту. Перехвалить это расширение невозможно. Набрасывать дизайн CSS становится в тысячу раз быстрее, а вместо возни с пользовательскими CSS можно редактировать внешний вид любого сайта в тот же момент, как этого захотелось.

    HTML Ruby

    Включает поддержку тегов руби. Не то, чтобы стандарт html-руби в интернете пользовался особой популярностью, и не то, чтобы html-руби можно было встретить где-либо, кроме соответствующей страницы в Википедии, но любой японофил, разумеется, должен это расширение иметь установленным, поскольку иначе люди застыдят.

    Кстати, хорошо бы кто-нибудь сделал расширение, рендерящее txt-файлы с настоящим, исходным руби в красивом виде.

    Tilt!

    Поворачивает открытую страницу на произвольный угол. При этом страница продолжает работать. Говорите что хотите, а это расширение круче любых “Астероидов” и “Явись, о Комик Санс!“. У него есть и практическое применение: вращать фотографии на удобный угол.

    Pushing the limits

    Я, кажется, не рассказывал об этом смешном случае? Подходит ко мне как-то товарищ по работе:
    – Володя, ты же работал с MySQL… Не знаешь, как в нём увеличить максимальный размер запроса?

    Верный принципу “отвечай не на вопрос, а на то, что пытаются спросить”, я быстренько прокручиваю в голове варианты. Зачем ему это? Предельный размер запроса обычно такой, что достичь его нереально. Мегабайт или два. Текст такой длины – это как “Война и мир”. Ни один человек такого запроса не напишет.

    Может, он генерирует его автоматически?

    – А какой длины у тебя запрос? – спрашиваю я

    – Два гигабайта.

    – …………

    Если бы это был баттл-шонен, тут бы началась нарезка из шокированных лиц всех участников сражения. Воины бросают оружие и отступают плотнее к товарищам, потому, что панический ужас охватывает их при виде человека, у которого SQL-запрос размером два гигабайта. Мужчины скромно прикрывают свои автоматически сгенерированные SQL-запросы, которые, как теперь выясняется, совсем не такие большие, как им казалось!

    Два гигабайта. Это приказ серверу в четырёх тысячах томов, указание, для хранения которого нужно выстроить величественную библиотеку, это, можно сказать, то самое Слово – могучее и всеобъемлющее – во исполнение которого родилась вся вселенная. Если бы этот приказ зачитывал человек, на его оглашение ушло бы несколько лет.

    И какими данными нужно оперировать, чтобы о них можно было дать столько уточнений?!

    Реальность оказалась прозаична. Программист генерировал сценарий некоторой 3D-сцены, а потом сохранял его в MySQL-базу (sic!), передавая в хексе:
    INSERT INTO tableName VALUES Data=0x’5B7716A6A18… – и ещё два миллиарда букв.

    Реальность также оказалась прагматична. Вместо того, чтобы переучивать программиста делать что-нибудь более… здравомысленное, админ просто поднял максимальный размер пакета в MySQL до трёх гигабайт. Пока хватает.

    Default Programs Editor

    Как известно, начиная с Windows Vista пропали старые окна настройки действий для типов файлов, а вместо этого появился упрощённый настройщик, позволяющий выбрать только главное приложение, открывающее файл – так называемую “Программу по умолчанию”.

    Между тем, дополнительные действия (Edit, Print, Set as desktop background) никуда не делись, и их тоже часто хочется перенастроить. Для этой цели рекомендую утилиту, которой сам только что воспользовался и впечатления остались приятные:

    Default Programs Editor.

    Она умеет всё и больше, что умел старый интерфейс Проводника, и при этом бесплатна. Жалко только, что не open source – значит, рано или поздно станет платной. Ну что поделать.

    AniDB tool

    Обновил AniDB tool, консольную утилиту для хеширования и добавления аниме на anidb.

    Из интересного в обновлении добавилось распараллеливание работы. Медленных точек в программе три: таймауты AniDB (команды не чаще, чем раз в 2 секунды), чтение диска и вычисление хеша. Последнее – нагрузка на процессор.

    С таймаутами AniDB сделать ничего не получится. Чтение диска тоже, в общем, не ускоришь, единственное, что можно сделать – это устранить любые промедления. Как только один кусок считывается, сейчас же надо начинать читать другой.

    Для этого хеширование, обычно отнимающее примерно 30% времени, было вынесено из главного потока. Сам по себе MD5 вычисляется строго последовательно и параллелится очень плохо, однако хеш ED2k, который использует анидб, хоть и основан на MD5, но файл в нём разбивается на кусочки, каждый из которых хешируется, а потом от всех хешей берётся хеш. Поэтому хеширующих потоков можно сделать несколько.

    К сожалению, так можно максимум устранить те самые 30%, поскольку чтение с диска всё равно никуда не денется.

    Если здесь есть программисты, интересно, есть ли у кого-нибудь ещё какие-нибудь идеи, как процесс можно ускорить?