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

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

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

Документация к 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%, поскольку чтение с диска всё равно никуда не денется.

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

    Всё должно быть файлами

    Первое правило хранения пользовательских данных: всё должно быть файлами.

    Букмарки, заметки, пароли, контакты, сохранённые игры, адреса серверов – каждый пункт списка должен лежать отдельным файлом, и если хранилище поддерживает группировку, то группы должны сохраняться как папки.

    И наоборот, примеры того, как делать ни в коем случае нельзя:
    – Нельзя хранить весь пользователський профиль в одном файле, как это делает Миранда.
    – Нельзя хранить весь контакт-лист в одном файле, как это делает Remote Admin
    – Нельзя хранить все заметки, контакты и букмарки в трёх файлах, как это делает Опера.

    Почему нельзя?

    Потому, что для файлов уже сделана куча полезных вещей, которые работают вне зависимости от содержимого. Например, вы можете вручную удалять и перемещать файлы. Объединять содержимое папок и синхронизировать их с помощью программ вроде Dropbox. Отправлять отдельные файлы по почте.

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

    Дополнение.
    Разумеется, лучше всего хранить данные не просто в файлах, а в текстовых файлах. В них легче находить изменения и другим будет проще работать с вашим форматом. Сейчас моден XML, но я бы не стал использовать его без прямой необходимости: достаточно текста, любого текста.

    Ещё одно правило: все пользовательские данные должны храниться в %USERPROFILE%\AppData\YourAppName. Тогда они не только будут переноситься с компьютера на компьютер при включенных Roaming Profiles, их ещё и будут автоматически бэкапить вместе со всем профилем пользователя.

    Играйте по правилам, и совершенно бесплатно получите огромное количество бонусов.

    LastPass FAIL

    На примере LastPass только что можно было убедиться, что дуракам не надо грабель, они на пустом месте лоб расшибут.

    Что случилось:
    Кто-то из LastPass заметил в логах подозрительные обращения к серверам. Не взлом, хочу заметить. Просто повышенную активность, которой они не нашли объяснения. В результате этой активности могла быть скачана пара сотен аккаунтов из миллиона.

    На всякий случай цифрами: 100 из 1 000 000.

    Эти скачанные аккаунты были зашифрованы, так что даже если они попали бы к злоумышленнику, никто не смог бы их прочесть! Тем более, что и злоумышленника, скорее всего, не было. В общем, как в игре Pandemic 2, на Аляске кто-то чихнул – SHUT. DOWN. EVERYTHING.

    LastPass решили выпендриться и показать, как серьёзно относятся к безопасности.

    Они заставили весь миллион пользователей сменить пароли.

    Остановимся на минуту и сделаем то, чего не сделали в LastPass: задумаемся над последствиями. Чем чревата одновременная смена паролей всеми пользователями сервиса?

    Ну во-первых, перегрузкой серверов. Что и произошло. Сервера LastPass весело легли и последние два дня почти не шевелятся. Из-за этого пароли сменить невозможно, а поскольку это требуется для продолжения работы, никто не может работать! А так как в LastPass хранятся все пароли, то десятки тысяч человек упорно долбят клавиши F5, всё повышая нагрузку на сервер.

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

    И наконец, если загадочный хакер действительно взломал сервера LastPass, получил к ним доступ, и не знает теперь, что делать с зашифрованными данными, а тут все пользователи подключаются и шлют ему сначала свои старые, а затем новые пароли, как вы думаете, что он скажет?
    Он скажет “Спасибо”.

    Да и каким образом вообще могла смена пароля защитить от подбора старого, слабого пароля к уже скачанным данным? Украденное злоумышленником не перешифруется магическим образом новым, сильным паролем.

    Из-за весьма ветренного подозрения на то, что 100 из 1 000 000 аккаунтов могли быть скачаны (при этом оставаясь зашифрованными и бесполезными), LastPass обрушил на несколько дней весь свой сервис, лишил десятки тысяч доступа к своим паролям и украл у них огромное количество времени.

    Выпендрились, что я могу сказать.

    Portal 2

    Первый Portal в момент выхода был никому не известен – так, бонус на диске с Half-Life 2: Episode 1. Второй Portal ждали и насочиняли такого, что игре не под силу было все надежды оправдать. Тем не менее, она это как-то сделала.

    Portal 2 очень длинный. До сражения с GlaDOS проходит примерно столько же, сколько в первом портале, но здесь это – треть игры. И каждая следующая часть не похожа на прошлую. Нигде не придётся “просто решать всё то же, что раньше”, постоянно – новые дизайны, подробности сюжета, игровые блоки.

    (спойлеры)

    Да, Portal – сказка. Алиса, падающая с GlaDOS в картофелине в кроличью нору. Или Дороти, падающая на повозке в подземные миры. Мы открыли эту книгу ради GlaDOS, но сказки так не работают, и перевернув последнюю страницу, мы помним не только циничный искуственный интеллект, а всех их – упрямого Кейва Джонсона, молчаливую Каролин, пустоголового Витли, безбашенные турели-брак и даже рабочих, готовых отдать свою жизнь за 60 баксов. (И ради науки, конечно).

    Все они теперь часть сказки, все они в ней навсегда, как поющие деревья в облаках и злые глаза в пещерах Кирандии.

    Едва ли Portal 2 мог бы быть лучше.

    WordPress

    Поставил себе WordPress на blog.boku.ru и настроил пока копирование туда постов. До чего же вордпресс удобен! Тут тебе и кеширование, и импорт рсс, и экспорт в любом формате, и свои темы, и нормальный CSS, и разметка постов какая в голову взбредёт.

    Впрочем, съезжать с дайри я пока не собираюсь.