Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra)
@ 2008-03-13 11:29:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
О "защите от копирования книг":
Посидел в ванне - еще раз посмотрел на "защиту от литреса" - все оказалось еще примитивнее, чем я думал:


Юзать: java -jar LIB-Read.jar dyachenko_marina mednyi_korol 30 >dyach.html
(30 - число страниц)
Но жаба в данном случае - стрельба из пушки по воробьям - я-то готовился подменять заголовки, с куками трахаться etc - а все оказалось не просто просто, а очень просто. Вылезу из ванны - может на bash перепишу - думаю, в строчки 3-4 влезет.

import org.apache.commons.httpclient.*;
import org.apache.commons.httpclient.methods.GetMethod;

import java.io.IOException;
import java.text.MessageFormat;
import java.util.regex.*;

public class Main {
    private static HttpClient client = new HttpClient();
    private static String bookUrl(String auth, String bk, int pg) { return MessageFormat.format("http://lib.aldebaran.ru/author/{0}/{0}_{1}/{0}_{1}__{2}.html", auth, bk, pg); }

    public static void main(String[] args) {
        for (int pg = 0; pg != Integer.parseInt(args [2]); ++ pg)
            System.out.println(filter (get(getRef(getRef(bookUrl(args [0], args [1], pg+1))))) + "\n\n<hr>\n\n");
    }

    // удаление срача
    private static String filter(String s) {
        Matcher pattern = Pattern.compile("s \\+= '([^']*)';").matcher(s);
        StringBuilder res = new StringBuilder();
        while (pattern.find ()) res.append(pattern.group(1)).append("\n");
        return Pattern.compile("(<span class=h>[^<]*</span>)").matcher(res.toString()).replaceAll("");
    }

    private static String get(String uri) {
        final HttpMethod method = new GetMethod(uri);
        try { client.executeMethod(method); return method.getResponseBodyAsString(); }
        catch (IOException e) { e.printStackTrace(); return null; }
    }

    private static String getRef(String url) {
//        return Pattern.compile("[\"'](http://[a-zA-Z0-9.-]+/getpage/[0-9]+/[0-9A-Fa-f]+)['\"]").matcher(get(url)).group(1);
        final Matcher matcher = Pattern.compile("[\"'](http://[a-zA-Z0-9.-]+/getpage/[0-9]+/[0-9A-Fa-f]+)['\"]").matcher(get(url));
        matcher.find ();
        return matcher.group(1);
    }
}


(Читать комментарии) - (Добавить комментарий)

Re: двойной ответ
[info]ppkk
2008-03-20 22:31 (ссылка)
это более богатая идея,
А, по-моему, Яваскрипт более гибок. Не попробуешь и так и эдак, даже субъективно оценивать сложно…

да. потому что тогда эти страницы переделают.
При том, что они будут соответствовать стандартам.

> Опера на Acid3 работает крайне нестабильно
сегодняшняя, например, 77/100, ничего не падает. я ж не юзаю ветку 9.2x, это тормоз ущербный
А ты помучай, помучай. Не знаю, я очень недоволен 9.2, 9.5 не пробовал, но ранее бОльшей стабильности не замечал в тестовых версиях. Насчёт тормозов: ну, отключение Яваскрипта обычно помогает, а от страниц, без него не работающих совсем, я стараюсь не зависеть.

фишка аксида именно в том, что если верно рендерят аксид — то верно рендерят и остальное
Это вряд ли. Такой тест — недостижимый обычно идеал. Программы пишутся так, что даже при одинаковых исходных состояниях то, что видимо нормально выполняются действия a, b, a-b, b-a, a-b-a и т.п., не может гарантировать, что a-b-a-b-… (тысячу раз) выполнится нормально. Характер действий Оперы (полный вылет в некоторых ситуациях, при повторном запуске) это и показывает: она не могла показать 46/100 два раза подряд даже при "удалении личных данных" между.
Acid3, как я понимаю, проверяет возможность использования некоторых "современных" технологий, а не анализирует работу броузера, как её воспринимает пользователь, сколько он жрёт памяти и т.п.

>плохо развиваться в сторону пользователя
??? как одно с другим связано? O_o
Есть разница между получением картинки "как надо" на одном наборе из сотни специфических тестов и, например, удобством интерфейса, быстродействием в типичных ситуациях. В Acid3, например, заложено обязательная эффективность использования вычислительных мощностей? Многоступенчатые неестественные усложнения движка для поддержки "фишек" могут вызвать тормоза.
Safari не рассматриваю лично я, ибо не имею мака
Для любителей тестовых версий β выходила довольно давно (кажется, была убогой, но портировать сложный хороший [если не врут] продукт, который дорабатывали напильником, очень сложно).

>и очень глючными.
Opera 9.50 β…

Я по своему опыту сужу: Опера 5 или 6 была (сравнительно) шустрой и без глюков, а сейчас я ощущаю её неудобным, но привычным броузером без хороших альтернатив и страдаю.
Собственно, версия 9 такое отношение и вызвала в первую очередь.
Кстати о фишках: "табы" как раз предъявляют повышенные требования к непадению броузера целиком на каких-то страницах…

На Мозиллу да Огнелиса смотрел мало, общее впечатление — что-то тяжёлое. Может и неправ. "Виджеты" не собираюсь использовать нигде.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: двойной ответ
[info]ketmar
2008-03-20 23:33 (ссылка)
>А, по-моему, Яваскрипт более гибок.
SVG не отменяет жабоскрипта. просто рисовать в SVG проще.

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

>А ты помучай, помучай
избави демоны! я не могу юзать 9.2. она ОЧЕНЬ медленная. на pIII/600 это заметно без напрягов.
а вообще — я юзер исключительно Оперы ещё с версии 3.5, сравнивать есть с чем. я ещё помню, какая была радость, когда ввели поддержку разных кодировок; и версию, где была вмонтированая аська. %-)

>ранее бОльшей стабильности не замечал в тестовых версиях
раз на раз. вот в новой тестовой, например, отвалилось открытие новых страниц из кнопок и комстроки. регресс, но не падает.

хотя вру: падает. от простой жабоскриптовой строчки. надо бы проверить на 9.2x, но лень. но такой жабаскрипт пишут только больные Кэтмары. %-)

>Программы пишутся так, что даже при одинаковых исходных состояниях то,
[крыс погрыз]
>не может гарантировать, что a-b-a-b-… (тысячу раз) выполнится нормально.

это ты не программу описал, а быдлокод. если программа ведёт себя непредсказуемо — в ней баг. точка. баг надо найти и убить. для чего служат unit и regression тесты, а также формальные доказательства работоспособности алгоритмов. ну и я бы с удовольствием увидел повсеместное внедрение literate programming.

я программирую уже не первый десяток лет, так что позволил себе вот такой снобизм. %-)

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

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

>В Acid3, например, заложено обязательная эффективность использования
>вычислительных мощностей?

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

>Для любителей тестовых версий β выходила довольно давно
под винду, afaik. под Linux не видел. а винду не держу.

под Linux есть только midori, построеный на webkit. но оно падает само по себе просто от удивления, что кто-то скачал страницу. %-)

>ейчас я ощущаю её неудобным, но привычным броузером без хороших
>альтернатив и страдаю.

Kestrel быстр. я не преувеличиваю, когда говорю, что 9.2x — тормозит. она действительно тормозит. и периодически Kestrel ускоряют (а не затормаживают с каждой новой версией). и я уверен, что будут ускорять, ибо и layout engine, и javasctipt engine одни и те же, что на десктопе, что на мобиле. а у мобилы ресурсов-то пшик. а оперовцы живут за счёт мобил.

>"табы" как раз предъявляют повышенные требования к непадению броузера
>целиком на каких-то страницах…

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

>На Мозиллу да Огнелиса смотрел мало, общее впечатление — что-то тяжёлое.
так и есть. я обычно 40–80 вкладок открытых держу. до 100–150 доходит тоже часто. тормозилла на 30-и начинает заикаться, нервничать и свопиться. Опера на том же конфиге летает как и летала.

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

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

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: двойной ответ
[info]ppkk
2008-03-24 18:53 (ссылка)
если программа ведёт себя непредсказуемо — в ней баг. точка. баг надо найти и убить. для чего служат unit и regression тесты, а также формальные доказательства работоспособности алгоритмов.
Да, только вот борьба за новые возможности, сложные стандарты и тест-флагман, под который чешутся руки затачивать движок — существенно провоцируют глюки программ. Я именно об этом.

я не могу юзать 9.2. она ОЧЕНЬ медленная. на pIII/600 это заметно без напрягов.
Согласен. Я перешёл на 9.50b, стало лучше. Тормоза остались, но какое-то эволюционное изменение произошло.
Кстати, чуть не перешёл на Огнелиса 2…12: у него со стабильностью-скоростью тоже неплохо.

>"табы" как раз предъявляют повышенные требования к непадению броузера
>целиком на каких-то страницах…
это да.

Кстати, такое ощущение, что в Оперу 9.50b ввертели поддержку истории разных окон, хотя точно не понимаю, что именно. У меня типовой глюк (был?): справка или что-то такое вызывается, что открывает новое окно Оперы, а старое падает. Тогда если сессия не сохранялась — "конец".

я обычно 40–80 вкладок открытых держу. до 100–150 доходит тоже
И это неудобно даже в разрешении 2048*1536 с мелким шрифтом. Да, согласен, что с этим можно дорабатывать. В Огнелисе, кстати, избежали нечитаемых заголовков в отличие от Оперы.

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

У меня почему-то отобразилось ранее 4080 и 100150, я испугался и долго не отвечал.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: двойной ответ
[info]ketmar
2008-03-24 21:24 (ссылка)
>Да, только вот борьба за новые возможности, сложные стандарты и
>тест-флагман, под который чешутся руки затачивать движок — существенно
>провоцируют глюки программ.

есть такое. поэтому, например, Kestrel уже почти год ходит в бетах — тестят, пиляют. %-)

>Тормоза остались
смотрите мой второй ответ, где про отключение поиска и апдейт до последнего снапшота (он ещё быстрее «официальной» беты).

>Кстати, чуть не перешёл на Огнелиса 2…12
я их постоянно скачиваю новых. всё бы ничего, если бы не дичайшие тормоза и ненастраиваемый интерфейс.

>справка или что-то такое вызывается
справку нельзя пока. %-) это ж develper snapshot, по сути. они где-то упоминали, что не надо звать справку, Опера очень обидится. %-)

>И это неудобно даже в разрешении 2048*1536 с мелким шрифтом
тут я даже рад, что неудобно. если бы я их не замечал — было бы открыто 300-400. потому что 80% этих вкладок — «интересная ссылка, потом пролистаю». а так, когда они забивают пол экрана, я таки разгребаю мусор и возвращаюсь к 10-20. чтобы через час опять под сотню нащёлкать. %-)

>В Огнелисе, кстати, избежали нечитаемых заголовков в отличие от Оперы.
??? там как раз напрочь нечитаемо. в Опере я включил режим «ellipsis in center» — удобно. отображает начало и конец заголовка, всё ясно и читаемо. как это сделать в лисе — не знаю.

>Видимо, разумно делать «группы» вкладок в разных окнах
неудобно. как вы выше писали — при крэше «пооконная» история не сохраняется. поэтому я не использую несколько окон.

>У меня почему-то отобразилось ранее 4080 и 100150, я испугался и долго не
>отвечал.

я бы сам испугался. %-)

(Ответить) (Уровень выше)

Re: двойной ответ
[info]ppkk
2008-03-24 19:02 (ссылка)
Ещё об Опере 9.50b: с включенным Яваскриптом некоторые страницы по сути не грузятся (например: lj.rossia.org/users/kouzdra/), может дело и в "разворачивателе" от [info]ketmar.

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

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: двойной ответ
[info]ketmar
2008-03-24 20:55 (ссылка)
>Ещё об Опере 9.50b: с включенным Яваскриптом некоторые страницы по сути
>не грузятся

что, «официальную бету»? выкинуть и забыть это старьё. читать сюда: Desktop Team Blog. тут дают самые новые.

>(например: lj.rossia.org/users/kouzdra/), может дело и в
>"разворачивателе" от ketmar

у самого Ketmar'а всё работает. ща отпишусь у себя.

>И автозаполнение какое-то странное в адресной строке: притормаживает
это фича полнотекстового поиска. насколько знаю, в новых она отключена. чинится так:
opera:config#UserPrefs|MaxVisitedPagesIndexSize
установить в 0. всё. тормоза пропали навсегда. заодно освободит на диске 150–300 метров. это индекс был.

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

(Ответить) (Уровень выше)


(Читать комментарии) -