Val Petruchek

подписывайтесь, а то хуже будет!  

ПОДПИСЫВАЙТЕСЬ НА RSS

Все профессии интересны

08.01.12 @ 23:55 — Programming, Links, Life

Две ссылки о совершенно разных на первый взгляд вещах:
1) русский дирижёр рассказывает о слухе, звуках, звукоряде, строе - вообще какой-то отдельный мир.
2) русский американский почтальон описывает свой обычный рабочий день.

Мне, как инфоголику (это как алкоголик, только вместо водки - информация), очень нравятся такие концентрированные тексты о незнакомых мне профессиях, написанные инсайдерами.

Именно за это я в своё время (интернета тогда ещё не было) перечитал всего Хейли, до которого смог добраться - за описание “внутренней кухни” отеля, аэропорта, больницы, электрокомпании и других предприятий народного хозяйства. У Хейли, правда, эта кухня щедро разбавлена водой в виде человеческих отношений, катастроф и прочих средств для повышения продаж его произведений.

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

А вот эта цитата из первой ссылки:

Поэтому так важно, когда мы вводим детей в мир музыки, чтобы они обязательно пели. И по возможности играли на инструменте, где звуки нужно извлекать самому, — не на клавишном. Я говорю как пострадавший. Потому что я вошел в музыку через фортепиано. И потом, уже когда я стал работать со старинными инструментами, серьезнейшим образом занимался перестройкой слуха. То, что мне удалось разрушить эту заскорузлую систему так называемого абсолютного слуха, воспитанного на домашнем фортепиано, говорит о том, что на самом деле абсолютный слух как таковой — это фикция. Слух — он изначально относителен.

- напомнила мне обучение программированию: нельзя учиться программировать на бейсике, goto. Тяжело переучиваться, по себе помню.

Как удалить фотки из вконтакта

Навеяно материалом с роема.

Пользователь вконтакта:

Больше, чем месяц назад я удалил все свои альбомы с фотографиями. Я не собираюсь их восстанавливать и не хочу, чтобы эти фотографии находились на серверах ВКонтакте, а так же были доступны по прямым ссылкам, например: http://csxxx.vkontakte.ru/uxxxx/xxxxxxx

Саппорт вконтакта:

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

Дуров вконтакта:

Если бы для доступа к статике (фотографиям) дергался Apache и PHP (технологии, необходимые для вывода остального контента с авторизацией), то система не прожила бы и минуты даже при 1% текущей нагрузки.

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

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

Это разумно: выдернуть сессию текущего пользователя, выдернуть информацию о фотке (владелец и его уровни приватности, альбом этой фотки и его публичность) - большой объём работы для такой простой задачи, как отдача одной картинки.

Поэтому, чтобы облегчить жизнь серверам, вконтакте решает проблему по-другому: каждой фотке присваивается неподбираемый URL. Если пользователь узнал этот урл, то значит у пользователя есть доступ к этой фотке.

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

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

Т.е. выдачу прав к фотографии надо рассматривать как перманентную, а не временную, тогда и уязвимости никакой нет.

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

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

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

Более того, мои скромные познания в линуксо/юниксах наводят меня на мысль о том, что файлы можно даже не переименовывать, а просто поставить на эти файлы такие права, чтобы пользователь, от имени которого работает вебсервер (nginx небось), не мог их читать.

Вот и всё, и данные “удалены”, и сервера не “дефрагментированы”. Более того, “удалённые” таким образом фотографии могут быть восстановлены, если владелец одумается и вернётся в лоно ВК.

Может я чего-то не понимаю в специфике работы больших сайтов™? Или VK просто душит жаба, что “удалённые” таким образом фотографии будут лежать мёртвым грузом на винтах - и показывать пользователям нельзя, и удалить нельзя (дефрагментация ведь!)?

Скайп оперативная память

09.12.11 @ 09:59 — Programming, Software, Skype

Скриншот диспетчера задач системы, в которой запущено три скайпа одновременно:

Объёмы памяти, потребляемой skype клиентами

Зачем ему столько? Они что там, друг с другом попарно в шахматы играют и строят ветви развития шагов на 7-8 вперёд?

Бородатый анекдот: Microsoft купила Skype, Skype написан на Delphi, как скоро майкрософт купит делфи?

Windows, Linux, Javascript

3 разных ссылки:

Google шарики

На google.ru сегодня демонстрация возможностей JavaScript в современных браузерах.

Работает в Chrome и Firefox, в опере не работает, в IE не должно (у меня ни логотипа, ни шариков).

При отключенном джаваскрипте показывает обычный логотип; при включенном - шарики.

Нет, это не флеш, это html вида:

<div class="particle circle" style="background-color: rgb(79, 122, 242); height: 18.0762px; width: 18.0762px; left: 256.157px; top: 68.7385px;"></div>

.particle{position:absolute;z-index:-1}
.circle{-moz-border-radius:160px;-webkit-border-radius:160px;-khtml-border-radius:160px;border-radius:160px}

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

Но завораживает, собака.

Комментарий от defproject:

все же новый лого google.ru хитрый ход. чтобы все могли увидеть тормознутость firefox

У меня особых тормозов с шариками в FF нет: тормозит как обычно, хром — как обычно летает.

Комментарий от Flash-а:

Если сохранить страницу не в опере, и потом запустить в ней, то шарики работают.

Гугл — гнусный дискриминатор (оперы)!

Я просто оставлю это здесь

03.08.10 @ 15:28 — Programming

/*
date: June 29, 2007

надо бы писать комментарии к этой программе, потому что делать она будет
довольно нетривиальные вещи, а разбирать логику только по коду будет непросто -
только что перечитывал исходники первого кроссворд-билдера, написанного на паскале в 1999 году
я был умный сцуко, меньше чем в 700 строк зарядил генерацию, рисование, сохранение и диалоги
с пользователем. а теперь вникать тяжеловато. хотя, походу, я отупел за 8 лет значительно.
заодно и проверим, насколько это поправимо.
*/

Как проверить, анимированный ли gif файл

20.07.10 @ 00:24 — PHP

function is_ani($filename)
{
    return (bool)
preg_match(‘#(\x00\x21\xF9\x04.{4}\x00\x2C.*){2,}#s’file_get_contents($filename));
}

php.net, там в комментах всегда куча сниппетов)

Как ломают сапу

17.07.10 @ 14:28 — Programming, PHP, WebSites

На форуме сапы человек пожаловался на “левые ссылки” среди продажных:

1. Их нет в списке ссылок на акаунте,
2. В sape акаунте прописан style для вывода ссылок, левые же выводятся без этого style

Хеш код один и все ссылки выводит sape_links - если из шаблона убрать конструкцию sape_links - не выводятся не левые ни правые ссылки.

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

Выяснили, что на сайте стоит “похаченный” sape.php:

Методика данного хака такая:
1. на сервер кидается файл (тут надо или фтп, или аналогичный доступ) под любым именем. В данном случае этот файл был спрятан в качестве jpg фотографии из галереи.

2. В sape.php вносится два изменения в return_links():
$f_name = base64_decode(’************’);
require_once($f_name);
где ********* - “закодированное” имя файла, кинутого на сервер на первом этапе

3. ….

4. PROFIT!!!

Внутри файла - “закодированный” php. Закодированность заключается в нечитаемости исходников, но раскодировать их несложно - используются функции base64_туда, base64_сюда, eval, пляска с файлом (файл открывает сам себя, считывает оттуда закодированный код, раскодирует его и выполняет).

По итогу закодированным оказывается код с другой биржи (типа линкфида), который ставится поверх сапы, и позволяет одновременно обрабатывать и сапоссылки, и свои ссылки. Вот цитата из кода:

define(’LINKFEED_USER’,'3baa192191449805df730ce2cea07a6f13408b14′);
define(’__SAPE_USER’,'’);
define(’_ML_ID’,'2BF37BAF09C11EECC16AF32F77063F20′);

По идее для такого хака нужен фтп доступ на сайт, т.к. даже если в директорию галереи (зачастую с правами доступа 0777) теоретически мог нагадить кто угодно на сервере, то sape.php при стандартных настройках не должен быть доступен.

Я бы посоветовал всем пользователям сапы - параноикам проверять sape.php на предмет изменений (для данного хака характерно наличие base64_decode — в нормальном (моём) sape.php эта функция не вызывается).

Save torrent as png

Чуваки написали конвертер .torrent файлов в формат .png (в обратную сторону тоже, даже в виде букмарклета на javascript). Получаются такие вот изображения:

Torrent file converted to png

Сподвиг их на это дело форчан, который позволяет аттачить картинки, но не позволяет аттачить торрент-файлы.

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

Если вы закодируете этим методом торрент-файл, содержащий ваш секретный passkey, то тот, к кому в руки попадёт png файл, сможет раскодировать его и узнать ваш passkey, т.к. этот метод не шифрует торрент-файл.

Passkey — это способ идентифицировать пользователя на торрент-трекере. По идее, используется на всех рейтинговых трекерах, например на torrents.net.ua или torrents.ru.

Зарегистрироваться на torrents.net.ua можно с помощью инвайта pl8GY3N8pXfl.

Ведванольненькие кроссворды онлайн

04.01.10 @ 22:39 — JavaScript, PHP, Creative

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

Я переписал старенький генератор (с паскаля на пхп) кроссвордов по заданной сетке, написал генератор тематических кроссвордов (сыроват пока), и с нуля сделал javascript.

Кроссвордов на сайте пока мало (да и те старые), но интерфейс меня прёт.

Баги (особенно интересуют макинтоши) можно мне в комменты писать (тут или в жж), добрые люди уже рассказали про Firefox+Search for text when I start typing.

Next Page »   
Реклама::

 
Реклама::