Сохранен 193
https://2ch.hk/pr/res/420393.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Пишем свой браузер

 Аноним 28/12/14 Вск 12:02:32 #1 №420393 
14197573526630.png
Уже более 5 лет я собираюсь написать браузер (до кучи и свой HTML, но это мелочи), что в последнее время стало особенно для меня актуально. Opera сыграла в ящик, Firefox с каждой версией все отвратительней, остальное и браузерами назвать сложно. А так как я сам не осиляю, то прошу вас всех сделать все за меня.

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

1. Каждый пишет что может и на чем умеет

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

2. На первых порах можно юзать кучи библиотек из разных языков

Можно быстренько будет слепить свой днс-кешер, http-кешер, работу с кукисами, http и https, скейлеры графики и еще миллион низкоуровневых утилит, которые будут нужны в процессе отображения странички. Посмотрите на links, половина которого они и составляют.

3. Можно тырить код из Links / Netsurf, если кто-то осилит собрать блинк или v8 то тоже милости просим.

4. Срать на стандарты, делаем удобный браузер, а если там где-то текст на 10 пикселей уедет в сторону - ну и хуй с ним. По мотивам http://habrahabr.ru/post/246857/

В общем, интересуюсь теорией и практикой написания подобной опердени с совместными усилиями анонов, хочу услышать слова о ненужности и своем идиотизме. Примерные этапы на картинке, чем больше шрифт - тем важнее. Самое главное, изобрести "сервер кукисов" или "сервер закладок" так, чтобы он не кушал больше всех остальных компонентов.
sageАноним 28/12/14 Вск 12:03:49 #2 №420394 
>>420393
скрам
Аноним 28/12/14 Вск 12:09:49 #3 №420395 
>>420394
а если я не умею в скрам?
sageАноним 28/12/14 Вск 12:12:08 #4 №420397 
>>420395
ну тогда нахуй скрам
Аноним 28/12/14 Вск 12:15:02 #5 №420399 
>>420393
Давай сначала ты скажешь, зачем тебе свой браузер? Чем он должен выгодно отличаться от аналогов? Почему бы просто не форкнуть какой-нибудь готовый браузер и не обвешать его плугинами?
Аноним 28/12/14 Вск 12:19:21 #6 №420400 
>>420399
Ну вот для начала хочу браузер как links по скорости http://links.twibright.com/download/binaries/win32/
Можешь зайти на http://habrahabr.ru/post/246857/ и увидеть скриншот.
Ни один аналог не может тягаться с ним по скорости/потреблению ресурсов. Плагины не умеет (да и не нужны они).
sageАноним 28/12/14 Вск 12:27:22 #7 №420403 
>>420400
>Ну вот для начала хочу браузер как links по скорости
>хоть пиздон, хоть жаба, хоть луа
Дальше надо что-то объяснять, болезный?
Аноним 28/12/14 Вск 13:37:10 #8 №420417 
>>420393
иди ка ты лучше нахуй
Аноним 28/12/14 Вск 13:46:45 #9 №420420 
>>420400
>как links по скорости
Он же в жс не умеет же, а судя по скрину ещё и в цсс. Конечно, он будет быстрее.
Аноним 28/12/14 Вск 13:58:23 #10 №420425 
>>420393
>http://habrahabr.ru/post/246857
Тот самый таинственный браузер. Ответить в этот итт тред не получилось, кстати
Аноним 28/12/14 Вск 14:27:30 #11 №420433 
>>420403
Парсинг страницы практически на любом языке будет занимать одинаковое количество ресурсов. Я бы конечно предложил сразу все писать на сишечке, но половина анонов сразу убежит, другая напишет неюзабельное говно через джва года.

>>420420
Вот охота получить такое же быстрое, только чуть красивше.
sageАноним 28/12/14 Вск 15:39:47 #12 №420446 
14197703874010.png
>>420393
Двощую вот этого.
Заебало тяжеловесное хромоговно, жрущее 50% от моего RAM.
Подписываюсь на тредж. Надеюсь опушка возьмется.
Links - годнобраузер, базарю.
Аноним 28/12/14 Вск 15:44:02 #13 №420447 
>>420446
Сажа приклеилась.
Аноним 28/12/14 Вск 16:08:42 #14 №420454 
>>420393
https://www.mozilla.org/en-US/research/projects/
>Servo is an experimental project to build a Web browser engine for a new generation of hardware: mobile devices, multi-core processors and high-performance GPUs. With Servo, we are rethinking the browser at every level of the technology stack — from input parsing to page layout to graphics rendering — to optimize for power efficiency and maximum parallelism.
>Servo builds on top of Rust to provide a secure and reliable foundation. Memory safety at the core of the platform ensures a high degree of assurance in the browser’s trusted computing base. Rust’s lightweight task mechanism also promises to allow fine-grained isolation between browser components, such as tabs and extensions, without the need for expensive runtime protection schemes, like operating system process isolation.

https://github.com/servo/servo/wiki
Аноним 28/12/14 Вск 18:02:31 #15 №420494 
>>420446

У тебя на пике по моему webkit рендерер. То есть тот же Хром без яваскрипта.

Можно использовать старый Хром (он ест раза в 2 меньше, но его трудно достать), или например отключить яваскрипт везде кроме избранных сайтов — потребление памяти снижается (я мерял, попробуй сам сравнить например html страницу c тестом и страницу с пустым тегом script). Можно подкрутить разные настройки типа размеров кешей — современные браузеры используют большие кеши в памяти чтобы создать видимость более быстрой работы.

Фаерфокс насколько я знаю, в истории сохраняет страницу полностью, со всем состоянием JS машины, а это тоже немало.

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

В общем, выгоднее форкнуть или подкрутить существующий проект. Алсо, прежде чем заниматься оптимизациями, нало померять, например на N самых популярных сайтах, кто и сколько памяти расходует и на что. Может эта память например кеширует распакованные картинки чтобы они быстрее отображались (распаковка блоьшого джипег может занимать 50-100 мс на хорошем CPU, а современные вебмастера люябт на фон страницу залепить джипег, пнг или даже видео).

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

Разумеется, померять, проанализировать и разобраться в ситуации вряд ли под илу разработчикам уровня pr. Возьмите старую Оперу, отключите в ней яваскрипт и флеш и она будет потреблять мегабат 200-300 на 40-50 вкладок. Только вот ее движок на современных сайтах тормозит нещадно (и криво их отображает) и прокрутка напоминает слайдшоу.

Я лично просто взял привычку закрывать вкладки в Хроме и докупил памяти.
Аноним 28/12/14 Вск 18:04:52 #16 №420497 
>>420454

> to optimize for power efficiency and maximum parallelism.
Это значит он будет есть повышать скорость загрузки и рендеринга ценой потребления памяти, так как на мобильных устройствах ее относительно много, и вкладок обычно много не открвыают (то есть ты можешь открыть много но они все равно выгрузятся).
Аноним 28/12/14 Вск 18:42:38 #17 №420503 
>>420494
>пердолинг с кешами и прочей хуитой
вместо достойной нормального человека оптимизации коджа. Инфа 100%, что webkit писали криворукожопые обезьяны из гугла. Про V8 вообще умолчу. И да, страницы вообще не нужно кешить, ибо малые размеры.А вот тяжелые файлы - да, но не в ОЗУ, как это сделано у хромопидоров и их подсосков. В общем всё что ты написал - хуита малой оптимизации, в который выйграется максимум 50-100 мб, против 3 гб.


>закрывать вкладки в Хроме и докупил памяти.
Ты просто не осознаешь какой ты дибил.
Аноним 28/12/14 Вск 19:20:18 #18 №420513 
>Пока меня интересует сама возможность запиливания своего браузера разными анонами

Не существует такой возможности.
Современные браузеры - это самое сложное програмное обеспечение создаваемое людьми, это сложнее чем написать ОС или ПО для запуска ракеты в космос. Не существует даже одного отдельного человека, который обладает всеми необходимыми для написания браузера знаниями.
Аноним 28/12/14 Вск 19:23:00 #19 №420514 
веб браузер на lisp: https://github.com/AeroNotix/lispkit
использует webkit.

хотелось бы что бы браузер был менее прожорлив, но так-же хотелось бы что бы он был более управляем. как emacs (emacs lisp), stumpwm (common lisp).

вот к примеру у firefox есть tab groups (ctrl+shit+e). так-же табы есть у pdf/djvu читалки (qpdfview), но нет групп. так-же мне хотелось быть регулярно делать backup табов и групп.

мне кажется такое можно было сделать универсально с помощью window manager для всех приложений:
{math-group: [{exec: firefox, url: url, page-top-offset: ...}, {exec: firefox, url: ...}...

если будет какой-то механизм для обмена (url page-top-offset).. между WM и приложениями.

не разбирался с firefox, но мне кажется, будет сделать легче между lisp браузером, где я могу получить текущий url, и lisp WM. может у Xorg есть какие-то properties для каждого окна. не думал пока над этим.
Аноним 28/12/14 Вск 20:18:57 #20 №420535 
>>420494
>Фаерфокс насколько я знаю, в истории сохраняет страницу полностью, со всем состоянием JS машины
И при переходе "НАЗАД" грузит её с сервера. Либо ты чего-то не знаешь, либо это такой жуткий быдолкодинг, что мне и добавить нечего.
Аноним 28/12/14 Вск 20:44:16 #21 №420539 
Браузер не нужен, нужен новый WWW, новые принципы работы страниц.
Аноним 28/12/14 Вск 21:25:48 #22 №420551 
>>420539
Поддвачну. Запилим свои интернеты с браузерами и проксями.
Аноним 28/12/14 Вск 22:43:28 #23 №420558 
>>420539
http2 ПРИДЕ, ПОРЯДОК НАВЕДЕ
на самом деле, нихуя подобного
Аноним 28/12/14 Вск 22:46:29 #24 №420559 
14197959899700.jpg
>>420539
>>420551
Два чаю этим ребятам, нужно совершенно новый принцип динамического интернета. А не устаревшее говно(http) на костылях(php с одной стороны и js c другой) что бы быть хоть сколько-то похожей не на парашу из 90-х. Сейчас веб по факту нихера не 2.0, сейчас все тот же 1.0, с кучей побочной хуйни, а вот когда изобретут простой и легкий способ передачи данных между сервером и клиентом, без кучи побочной хуйни, причем в реальном времени, а не как сейчас пошагово, то и будет настоящий 2.0

Берись, станешь богаче Цукенберга и Билла Гейтса, базарю.
изучаю_вебмакакинг_и_охуеваю_от_того_как_там_все_ебано-кун
Аноним 28/12/14 Вск 23:02:45 #25 №420560 
>>420497
Нет, это значит, что эффективность повышается за счет распараллеливания всего, что можно распараллелить.
Аноним 29/12/14 Пнд 01:17:01 #26 №420582 
>>420559
Это всё уже есть, не знаю в каком говне ты там колупаешься, но у меня в проекте одни вебсокеты, вебмессаги, шаред воркеры, и т.д.

А так да, реализовать весь веб через модель акторов, например, был бы вин, но если у йоба-коммитетов получилось говно, то зекачеры соснут однозначно и прямо вначале.
Аноним 29/12/14 Пнд 01:21:54 #27 №420584 
>>420582
>веб через модель акторов, например, был бы вин
>акторов
И уже обосрался.
Аноним 29/12/14 Пнд 01:37:41 #28 №420589 
14198062611230.jpg
предлагаю зделать распределенную борду, суть такова. полностью распределенная - вся инфа храница на клиентах. одна точка входа в виде js-SPA приложения, которая может хоститься где угодно. вся информация передается зашифрованно по хитрожопому протоколу типа tor, чтобы все было анонимно. джва года хочу такую борду.
Аноним 29/12/14 Пнд 01:49:58 #29 №420594 
>>420584
Обоснуй. Единственная достойная конкурентная модель с детонационной семантикой и формальный обоснованием же. Олсо, на практике тоже самая удобная и расширяемая.

Смоделировать веб через акторов вообще нехуй делать, другое дело реализовать.
Аноним 29/12/14 Пнд 01:56:42 #30 №420595 
>>420594
Те же Web-сервисы с конечными точками, которые моделируются как адреса акторов.
Те же Web Messaging. Пассинг сообщений путь по TCP будет.
Аноним 29/12/14 Пнд 02:04:27 #31 №420599 
>>420594
>на практике тоже самая удобная и расширяемая.
Бесполезная хуита с заявкой на параллелизм и с глубоким отсосом у отладки.
Да и объектно-ориентированные языки уже давно придуманы. Плюс, асинхронность здесь уже определяет сам погромист, разделяя данные.
Аноним 29/12/14 Пнд 02:41:37 #32 №420602 
>>420599
>с заявкой на параллелизм
Параллелизм как раз не заявляется, потому что конкурентность =/= параллелизм. Будет обеспечен параллелизм или нет зависит от реализующей платформы.
>и с глубоким отсосом у отладки
Какая нахуй отладка, это математическая модель, всё зависит от реализации. В том же ирлонге весь месседж пассинг, хоть локальный, хоть распределённый отлаживается на нехуй делать.
>Да и объектно-ориентированные языки уже давно придуманы.
Это тут причём? И что тебе мешает выразить эту модель в термах ООП, как в Scala или Java Akka?
> Плюс, асинхронность здесь уже определяет сам погромист, разделяя данные.
Так на акторах задаются как асинхронные так и блокирующие протоколы. И данные заизолированы, sharing nothing же.

Короче, я так понял ты просто нихуя не сечёшь в этой теме, какой-то хуиты начитался по верхам и кукарекаешь.
Аноним 29/12/14 Пнд 04:24:11 #33 №420609 
ОП, вот тебе ссылка, по ней всё расписано: http://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html

>>420594
> Единственная достойная конкурентная модель с детонационной семантикой и формальный обоснованием же. Олсо, на практике тоже самая удобная и расширяемая.
Зачем нужны акторы, если есть каналы?
Аноним 29/12/14 Пнд 04:53:42 #34 №420610 
>>420400
Есть вот такой браузер http://www.dillo.org/
Аноним 29/12/14 Пнд 13:13:40 #35 №420662 
>>420602
Воу-воу, палехчи паринь.

>потому что конкурентность =/= параллелизм
Википедия грит, что ты пиздунишка:
>Concurrent computing is a form of computing in which several computations are executing during overlapping time periods – concurrently – instead of sequentially (one completing before the next starts).

http://en.wikipedia.org/wiki/Concurrent_computing
http://en.wikipedia.org/wiki/Concurrency_(computer_science)

>Какая нахуй отладка
>В том же ирлонге весь
>легко отлаживается
Нечитаемый пиздец, ты хотел сказать?

>выразить эту модель в термах ООП
Нахуя? Костыли костыльчики?

>я так понял ты просто нихуя не сечёшь в этой теме
Двощую. Вижу ты просто начитался хуиты на эту тему и кукарекаешь, когда можно сделать всё несколько проще, со старым добрым С++.
Аноним 29/12/14 Пнд 13:14:21 #36 №420663 
>>420610
Прочитал как DILDO
Аноним 29/12/14 Пнд 13:37:35 #37 №420667 
>>420662
Тебя не смущает что в этой же статье
>Concurrent programming is usually considered to be more general than parallel programming...
Конкурентность - это модель вычисления, это больше свойство кода и моделирования. Паралельность - это выполнение, это свойство реализации.
Конкурентные программы могут выполняться не параллельно. Некоторые платформы реализуют распаралеливание конкурентных программ, тот же Erlang, некоторые нет.

>Нечитаемый пиздец
Это ты вообще о чём?

>Нахуя? Костыли костыльчики?
Ты что дибил? Акторы это мат модель, выразить её можно любыми термами, при чём тут костыли? Вот в Scala, например, очень хорошо получилось, ты лучше бы посмотрел сначала, а потом ебало разевал.

>со старым добрым С++.
А понятно, тупоголовый слесарь, залазь обратно под шконарь.

>Нечитаемый пиздец
>со старым добрым С++
Kek.
Аноним 29/12/14 Пнд 13:54:40 #38 №420672 
>>420662
https://www.youtube.com/watch?v=cN_DpYBzKso

Даже годибилы знают что конкуренси != паралел, но только не крестоблядь.
Крестобляди не нужны акторы, не нужно CSP, ССS, она останется верна архаичному контрол флоу на локах и блокировках как диды писали, в лучшем случае может высрать очередной FSM. Эриксоны с нокиями и моторолами позаменяли крестоговно на ирлонк ещё 10 лет назад, но креторабу это ничего не говорит, он будет превозмогать дальше.
Аноним 29/12/14 Пнд 13:55:01 #39 №420673 
>>420667
>поясняет за параллелизм
>рассказывает охуительные истории про реализацию на любых языках
>..вместо простого и доброго OOP


>слесарь
Что ещё вскукарекнешь?
Аноним 29/12/14 Пнд 13:57:38 #40 №420675 
>>420672
>годибилы знают
>конкуренси != паралел
Всё-всё, можешь не кукарекать. Мы поняли, что ты долбоеб.
Аноним 29/12/14 Пнд 14:02:11 #41 №420677 
>>420673
>..вместо простого и доброго OOP
Как на мэйнстрим ООP выразить конкуретность? В нём объект и процесс (или тред) - разные сущности с разным временем жизни.

>>420675
Что сказать то хотел, туловище?
Аноним 29/12/14 Пнд 14:16:17 #42 №420683 
Вообще бывают конкурентность без параллельности (тот же ивент дривен), параллельность без конкурентности (всякая хуйня типа #pragma omp for) и конкурентность и параллельность вместе (когда компилятор или виртмашина автоматически распараллеливают конкурентный код в лучшем случае, или когда долбоёб байтораб задрачивает всякие локи, семафоры и т.д - в худшем).
Аноним 29/12/14 Пнд 14:20:10 #43 №420685 
14198520109880.jpg
>>420677
>В нём объект и процесс (или тред) - разные сущности
Ебать дибил. Процесс - сущность действия, производимая над неким объектом(данными) в некий момент t, позволяющая повлиять на выполнение действия.
ООП позволяет распределить часть объектов в систему и получить конкуренси (при условии, что DATA не будут связаны, что в вебе частично возможно) без пердолинга на функциональщине и прочих псевдо-ооп (акторы), как это любят делать функципетушки, а потом запутываются и тонут в собственном говнокоде (i.e. haskell, Erlang).
Аноним 29/12/14 Пнд 14:22:03 #44 №420688 
>>420683
В целом все твои вскукареки про акторы, суть евент-система, только с изъёбством, вместо хрошего, годного программирования.
Аноним 29/12/14 Пнд 14:38:07 #45 №420694 
>>420393
Вам нужен по меньшей мере один человек, который прочёл стандарт от начала и до конца несколько раз, потом в обратном порядке не менее одного раза, затем рандомно по всей спецификации и ещё раз, следуя по кросс-ссылкам. Это касается как whatwg спецификаций, так и w3c спецификаций. Если у вас будет такой человек, то он вам скажет, почему эта затея по настоящему глупая
Аноним 29/12/14 Пнд 14:55:36 #46 №420699 
>>420694
Вут? Мы хотим создать СВОИ™ интернеты. Дропнул чтение спецификаций w3c, после прочтения нескольких первых глав. Такой лютой, тяжеловесной хуиты, без нормального оглавления и без лишних сложностей я еще не встречал.
Аноним 29/12/14 Пнд 15:23:37 #47 №420703 
>>420699
Попробуй https://whatwg.org/
В любом случае лучше отталкиваться от уже существующего. Лично я бы прикрутил к вебу нормальный p2p и хватит.
Аноним 29/12/14 Пнд 15:35:59 #48 №420705 
проиграл с треда, вот уж действительно история повторяется, уже при мне 3 или 4й раз хотят сделать i2p борду и интернет. можете найти на гугло коде если не удалили, концепции прошлых участников.

Аноним 29/12/14 Пнд 18:18:04 #49 №420732 
Давайте лучше думать о написании своего браузера, для начала.

Итак, у нас есть:
1. links
2. netsurf
3. dillo
4. hv3

Осталось натырить кода/сделать свое. На днях попробую сделать "прокручиваемый канвас", который будет рендерить прямоугольнички с текстом/графикой. Можно будет кормить его по UDP байткодом, а в каком-то говне вроде пиздона изгиляться с парсингом всех этих ваших CSS и генерить layout.
Аноним 29/12/14 Пнд 23:40:19 #50 №420778 
Чот я не понял, а за счет чего наколеночное говно без идеи должно стать более эффективным в плане производительности и потребления памяти? В чем понт пилить очередной uzbl/dwb/surf/luakit/dildlo/hbro/тысячи их?
Был бы смысл, если б какой-нибудь из вышеперечисленных огрызков к servo прикручивали, а так...
Аноним 30/12/14 Втр 00:41:31 #51 №420809 
>>420778
>uzbl
>Uzbl использует WebKit
Обосрамс.
Аноним 30/12/14 Втр 01:08:41 #52 №420821 
>>420809
Ичо? Все перечисленные на вебките. Кроме дилло.
Аноним 30/12/14 Втр 10:10:49 #53 №420849 
>>420393
Cookie - сразу нет. Это зло.
Аноним 30/12/14 Втр 11:08:18 #54 №420854 
>>420849
а как ты состояние сайта на клиенте хранить будешь без куков, болезный?
Аноним 30/12/14 Втр 11:50:53 #55 №420856 
>>420854
>состояние
нинужно
 Аноним 30/12/14 Втр 11:56:49 #56 №420858 
>>420854
может все в локалсторадж просто?
Аноним 30/12/14 Втр 14:50:19 #57 №420891 
>>420849>>420854>>420856
Куки "как есть" зло и не нужны, но без них хуй куда залогинишься, даже поиском порой хуй воспользуешься, поэтому "куки менеджер" - это больше, чем просто хранилка кей-велью с идиотским поведением, доменами, путями и кучей флагов.
Аноним 30/12/14 Втр 14:51:48 #58 №420892 
14199403086720.png
Как должен выглядеть браузер
Аноним 30/12/14 Втр 20:32:54 #59 №420925 
>>420685
>прочих псевдо-ооп (акторы)
Поржал в голос с крестопидора-идиота. Акторы это и есть настоящее, а не псевдо-ооп.
Просвещайся, чухан:
http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/doc_kay_oop_en
Про сетевое взаимодействие там тоже есть, кстати.
>ООП позволяет распределить часть объектов
>распределить часть объектов в систему и получить конкуренси
>получить конкуренси (при условии, что DATA не будут связаны
>DATA
>псевдо-ооп (акторы), как это любят делать функципетушки
>тонут в собственном говнокоде (i.e. haskell, Erlang).
Вообще, ты бы поучился грамотно мысли выражать. Пока слышно только невразумительное кукареканье.
Аноним 30/12/14 Втр 20:57:02 #60 №420927 
Вообще я тоже думал о таком. Запилю свой собственный браузер сразу после того, как закончу писать распределённый MMO-движок и впилю собственую операционку. После всего этого я возможно запилю свой ЯП даже на данный момент меня устраивают те ЯП, что уже есть.
Аноним 30/12/14 Втр 21:23:47 #61 №420931 
14199638277120.png
>>420925
>запостил ссылку
Смотри-ка, а ты не так плох, мартыхан.
Уже начинаешь пытаться, что-то соображать, вон, ссылочки пошли. Того и гляди, соображать начнешь. Кстати ты бы прочитал, статейку-то, а то неразборчивое мямлянье да вскукареки с твоей параши только утомляют цивилизованных господ вроде меня.

>Акторы это и есть настоящее, а не псевдо-ооп.
Необучаемость как есть.
Процитирую, специально для тебя, бздунишка:
>The Actor model adopts the philosophy that everything is an actor. This is similar to the everything is an object philosophy used by some object-oriented programming languages, but differs in that object-oriented software is typically executed sequentially, while the Actor model is inherently concurrent.
http://en.wikipedia.org/wiki/Actor_model

>>420892
Что из них бровузер?
Аноним 30/12/14 Втр 22:15:42 #62 №420940 
>>420931
>object-oriented programming languages
>object-oriented software
>o-o-o-ko-ko-pok-pok-o-o-kok
Чушок, ты вообще понимаешь что такое ООП? Причем здесь конкурентность? Я ему Алана Кея, он мне какую-то статью из википедии.
Аноним 30/12/14 Втр 22:25:22 #63 №420942 
>>420940
>что такое ООП?
>Причем здесь конкурентность?
>АЛАН КЕЙ!1
Вы посмотрите на него. Он теперь решил дибилом прикинуться.
Аноним 30/12/14 Втр 23:18:01 #64 №420951 
>>420942
Питух, ты чтоле еще не понял что я не твой изначальный собеседник и говорил с тобой только про ООП?
Аноним 30/12/14 Втр 23:19:58 #65 №420952 
>>420927
> После всего этого я возможно запилю свой ЯП даже
Блядь, это самое простое из всего, что ты назвал.
> на данный момент меня устраивают те ЯП, что уже есть
M-M-MAXIMUM GOVNOED
Аноним 30/12/14 Втр 23:23:30 #66 №420953 
>>420951
Ебать дибил.
Аноним 30/12/14 Втр 23:54:22 #67 №420958 
ИТТ дебил думает что смолток - это и есть модель акторов.

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

Актор =/= объект, потому что объект не конкурентен, он не может выполнять что-то одновременно с другими объектами, если его не запихнуть в отдельный тред. Тред - конкуретный примитив, актор - конкуретный примитив, объект - нет.


Главный проёб Алана Кея в том, что он хуй знает зачем взял месседж пассинг из модели акторов, чтобы выражать через него ПОСЛЕДОВАТЕЛЬНЫЕ операции, в то время как они более явно выражаются обычным вызовом метода. Акторы же нужны для выражения конкурентных операций.

Спроси у гейос-девелоперов, сильно им их месседж пассинг помогает для написания конкуретного кода или они по старинке ебутся с локами и синхронизациями. Без подключения всяких inspired by Erlang актор либ типа VVActors, разумеется.

По сути, Джое - первый кто запилил акторы в промышленный язык, и единственный кто не проебал главное правило всей концепции - sharing nothing. Сразу видно, что он осилил диссеры Хьюитта и Агха, в отличие от всяких Аланов-хуяланов, понапиздивших по верхам модных фитч, чтоб было.
sageАноним 31/12/14 Срд 00:07:46 #68 №420959 
>>420958
Алан-хуялан вон DSL-ориентированное программирование изобретает, а ты всё на двоще со школьниками срешься.
Аноним 31/12/14 Срд 00:16:47 #69 №420961 
>>420959
>DSL-ориентированное программирование
Фейспалм.jpg
Вангую очередной отсос, хотя ему не привыкать.

А я пописываю актор-комбинаторную либу для ирлонга и хочу внедрить понятие объединения акторов в системы и исчисления этих систем из теории систем.
Аноним 31/12/14 Срд 00:20:31 #70 №420963 
>>420958
>ИТТ дебил думает что смолток - это и есть модель акторов.
Нет, я думаю что актор это объект.
>Актор =/= объект, потому что объект не конкурентен
Ты знаешь что такое необходимое и достаточное условие,?
>он не может выполнять что-то одновременно с другими объектами, если его не запихнуть в отдельный тред. Тред - конкуретный примитив, актор - конкуретный примитив, объект - нет.
>взял месседж пассинг из модели акторов, чтобы выражать через него ПОСЛЕДОВАТЕЛЬНЫЕ операции
Пруф?
Статью неосилил чтоле?
Короче, специально для умственно отсталых:
>OOP to me means only
>messaging,
есть
>local retention and protection and hiding of state-process, and
есть
>extreme late-binding of all things.
есть
Ни о какой конкурентности речь не идёт. Все, соси хуй, и так разжевал уже все для дауна.
sageАноним 31/12/14 Срд 00:26:50 #71 №420967 
>>420961
>пописываю актор-комбинаторную либу для ирлонга
Ты соси, не отвлекайся. Ванговать потом будешь.
sageАноним 31/12/14 Срд 00:28:45 #72 №420969 
>>420963
>Нет, я думаю что актор это объект.
>акторы
>Ни о какой конкурентности речь не идёт.

Понятно. Ты просто дебил.
Аноним 31/12/14 Срд 00:33:41 #73 №420971 
>>420959
> DSL-ориентированное программирование
Общий ЛNСП что-ли?
sageАноним 31/12/14 Срд 00:35:02 #74 №420972 
>>420963
https://en.wikipedia.org/wiki/Actor_model

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

Начинается со слов
>The actor model in computer science is a mathematical model of concurrent computation
sageАноним 31/12/14 Срд 00:36:07 #75 №420973 
>>420971
Лисп, по сравнению с сабжем, примерно то же, что и сишные структуры с ООП.
sageАноним 31/12/14 Срд 00:43:56 #76 №420976 
>>420973
То есть через лисп сабж выразить можно, но через сабж нельзя выразить то, что можно через лисп? Нахуй тогда это говно надо?
Аноним 31/12/14 Срд 00:44:38 #77 №420977 
>>420973
Ну ещё есть языки на основе переписывания термов, которые не столь убоги.
sageАноним 31/12/14 Срд 00:45:45 #78 №420978 
>>420976
Лолчто?
sageАноним 31/12/14 Срд 00:48:57 #79 №420979 
>>420978
На С структурах можно вполне себе заебашить ООП, а вот как С структуры выразить из ООП - хз.
sageАноним 31/12/14 Срд 00:51:26 #80 №420980 
>>420979
Эм.. И где ты углядел принципиальную нереализуемость?
Аноним 31/12/14 Срд 00:57:58 #81 №420984 
>>420980
указатели
sageАноним 31/12/14 Срд 01:01:33 #82 №420985 
>>420984
Ну и реализуй у объектов интерфейс указателей. В чем проблема?
sageАноним 31/12/14 Срд 01:16:50 #83 №420991 
>>420984
Для полноты ощущений можешь даже синглетон "Память" забабахать, в котором будут регистрироваться объекты-структуры.
Аноним 31/12/14 Срд 01:47:54 #84 №420997 
>>420854
В локальной базе данных или хранилище. Как угодно называй. Разницу, надеюсь, знаешь.
Аноним 31/12/14 Срд 01:51:45 #85 №420999 
Вангуя батхёрт печеньеедов приведу один пример, показывающий превосходство стораджа над куками.

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

Мало того, что сокращается количество гоняемого трафика, так ещё и снижается нагрузка на сервер (учитывая большое число клиентов), плюс повышается безопастность, так как меньше возможностей перехватить сессию.
Аноним 31/12/14 Срд 01:57:53 #86 №421001 
14199802739400.jpg
>>420958
Не буду тратить много времени на разбор твоего поста.
>Тред - конкуретный примитив,
>актор - конкуретный примитив,
>объект - нет, он не может выполнять что-то одновременно с другими объектами
Ебать, ну так это проблемы shell, то бишь VM.
При надобности, конкуренси (как я уже упомянул ранее) можно запилить и с помощью ООП, изъебнувшись с потоками. При этом разницу что на реализации акторопараши, что на ООП(хотя бы в smalltalk) никто не заметит (хотя зависит от хуевости VM). Плюс можно запилить нативную конкуренси в реализацию ООП, но тут на выходе мы получим реализацию акторов.
sageАноним 31/12/14 Срд 02:23:20 #87 №421006 
>>421001
>можно
Можно и ООП на сишные стуктуры натянуть, а можно и, как выяснилось ИИТ, наоборот.
Только зачем?
Аноним 31/12/14 Срд 02:50:34 #88 №421011 
>>420969
>Ни о какой конкурентности речь не идёт
В определении ООП, дебил.
>>420972
>Начинается со слов
>>The actor model in computer science is a mathematical model of concurrent computation
Ну и как же это противоречит тому что я говорю? Модель акторов это и и модель конкурентных вычислений, и представление ОО-парадигмы.
Аноним 31/12/14 Срд 05:03:13 #89 №421016 
>>420958
Дай ссылки на диссеры Хьюита и Агха, плиз.

>>420959
И ты тоже дай ссыль, я как раз такой стартап задумал.

>>420985
Ты забыл, что нативные C-шные структуры, указатели и особенно концепция памяти напрямую ложатся на фон-неймановскую архитектуру. Чего не скажешь про их ООП-шные реализации — компилятор должен быть либо сильно умным, либо засранным ad hoc оптимизациями, чтобы смочь нормально оптимизировать объект класса Pointer[X] и класс Memory.

> При надобности, конкуренси (как я уже упомянул ранее) можно запилить и с помощью ООП, изъебнувшись с потоками.
Не надо изъёбываться. Есть сепаратные объекты. См. «Основы объектно-ориентированного программирования» Б. Мейера.

>>420997
Я так и не понял, как ты собрался состояние сайта хранить на клиенте. Вот смотри, подключается к твоему интернет-магазину клиент. Выбирает дилдо, нажимает под ним кнопку «в корзину». Его браузер, соответственно, подключается к твоему серваку, отправляет JSON «{tovar: "dildo modeli DLDX-100500", deistviye: "polojit w korzinu"}», отключается. Потом меняет разрешение экрана, меняет настройки прокси браузера, до кучи у него еще браузер крешится и перезапускается, он снова заходит на твой сайт и пытается завершить покупку. Как при помощи технологии локального стораджа сервак поймёт, что вновь подключившийся клиент с принципиально новым отпечатком браузера и чистой RAM — это во-о-он тот клиент, у которого в корзине лежит дилдо, 1 шт.?
Аноним 31/12/14 Срд 05:28:03 #90 №421017 
>>421016
>вновь подключившийся клиент с принципиально новым отпечатком браузера и чистой RAM — это во-о-он тот клиент, у которого в корзине лежит дилдо, 1 шт.?
Никак. Да это и не нужно же. Главный сценарий примерно следующий:
- чел чего-то набивал вроде длинного текста
- пнул системник и комп отрубился
- после перезагрузки чел продолжил вбивать не с начала, а с того места, где закончил

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

Кирпичи это хороший материал. Но делать из кирпича табуретки по меньшей мере глупо же.
Аноним 31/12/14 Срд 15:01:20 #91 №421069 
>>420999
збс сэкономил
Аноним 31/12/14 Срд 15:03:42 #92 №421071 
>>421016
ебать ты даун, наш броузер не будт крошится и все операции будут атомарные
Аноним 31/12/14 Срд 16:39:33 #93 №421097 
>>421006
Вот и я о том же. Акторы на хуй не нужно. Старый добрый ООП идеально подходит для написания своего бровузера.
Аноним 31/12/14 Срд 19:26:20 #94 №421116 
>>421017
Ты понимаешь, что ты поехавший, блядь? Я тебе говорю, что мне нужно состояние корзины сохранять между подключениями, а ты мне: «Вы рассуждаете в ключе "есть технология - как ещё применить?", а надо "есть задача - какие для этого есть технологии?"» Чего несешь? Вообще охуеть.
Аноним 01/01/15 Чтв 21:54:35 #95 №421330 
>>420594
>детонационной
вот тут-то я и проиграл!
sageАноним 02/01/15 Птн 01:56:37 #96 №421434 
>>421016
>Ты забыл, что нативные C-шные структуры...
ООП на структурах тоже эффективностью в т.ч. и в плане производительности не отличается. Но речь-то шла о принципиальной нереализуемости.
Аноним 04/01/15 Вск 00:25:08 #97 №421964 
Хочу, чтобы кто-нибудь сделал headless-браузер. Требования такие:

1. Потребляет минимум RAM
2. Может сериализовать текущее состояние DOM в файл а затем восстановиться из этого состояния обратно
3. Предоставляет API для автоматизации страниц (поиск элементов в DOM-дереве, эмуляция мышки, скроллинга, ввода с клавиатуры, снятие скриншота)
4. Не имеет уникальных особенностей для идентификации через JavaScript, т.е. косит под какой-нибудь существующий браузер Firefox/Chrome/IE
5. Кроссплатформенный

Сейчас приходится довольствоваться связкой phantomjs+selenium, которая из этого списка может похвастаться только п.5
sageАноним 04/01/15 Вск 23:32:27 #98 №422260 
>>421964
Что плотишь?
Аноним 09/01/15 Птн 00:13:37 #99 №423524 
>>420393
Я знаю, на чем мы будем пейсать новый броузер:
>BESEN is an acronym for "B ero's E cma S cript E ngine", and it is a complete ECMAScript Fifth Edition >Implemention in Object Pascal, which is compilable with Delphi >=7 and Free Pascal >= 2.5.1 (maybe also >2.4.1).

>BESEN is licensed under the LGPL v2.1 with static-linking-exception.
https://github.com/BeRo1985/besen
Мимо_паскале_бог
Аноним 22/01/15 Чтв 07:29:18 #100 №427607 
Близок к запиливанию браузера на bash + perl + imagemagick. Пиздец, но лучше ничего не придумалось. Как сделать совместную работу по проектированию? Ничего не понимаю.
Аноним 22/01/15 Чтв 09:05:39 #101 №427617 
>>420393
Браузер онли на плюсах должен быть. Иначе слайдшоу по строчке.
Аноним 22/01/15 Чтв 17:27:20 #102 №427761 
14219368403050.png
МАМА, ТЫ ГОРДИШЬСЯ МНОЙ?
Аноним 22/01/15 Чтв 18:09:00 #103 №427777 
14219393409600.png
Лол, я не знаю что за хуйню я сделал
Аноним 22/01/15 Чтв 18:50:34 #104 №427800 
>>427617
>онли на плюсах
>слайдшоу
Никаких плюсов! Только ассемблер.
Эти ваши примитивные компиляторы никогда не сгенерируют более эффективный код, чем написанный программистом вручную.
Аноним 22/01/15 Чтв 18:59:09 #105 №427803 
>>427617
Только на fasm ты хотел сказать?
Аноним 22/01/15 Чтв 19:38:07 #106 №427827 
>>427800
Сгенерируют.
Аноним 22/01/15 Чтв 19:46:43 #107 №427838 
>>427827 Нет.
Аноним 22/01/15 Чтв 19:57:25 #108 №427850 
>>427827
Нет [2]
http://thedeemon.livejournal.com/49226.html
Аноним 24/01/15 Суб 00:35:30 #109 №428483 
А я просрал то, скриншоты чего вы видели.
Аноним 24/01/15 Суб 01:22:31 #110 №428493 
>>427761
На чем написана эта параша?
Аноним 24/01/15 Суб 03:23:04 #111 №428521 
>>428493
На опеннете.
Аноним 24/01/15 Суб 12:12:26 #112 №428578 
>>428483
Как ты просрал?
Бекапы делай
Аноним 24/01/15 Суб 12:18:01 #113 №428582 
>>428483
Долбоёб, хули.
Аноним 24/01/15 Суб 13:07:09 #114 №428590 
>>428493
На сишке. Была написана

>>428578
Уже поздно. Но ничего, может я напишу. Может кто-то из местных напишет.
Аноним 24/01/15 Суб 16:47:00 #115 №428678 
>>420393
>Opera сыграла в ящик, Firefox с каждой версией все отвратительней, остальное и браузерами назвать сложно.
Так может вот это остальное слегка допилить до того, что можно будет назвать браузерами, а не пилить заново?
Аноним 24/01/15 Суб 18:49:29 #116 №428711 
>>428678
Чтобы это допилить, надо в этом разобраться. Пока будешь разбираться - свое напишешь 10 раз.
Аноним 24/01/15 Суб 19:27:14 #117 №428717 
>>428678
servo форкни.
Аноним 24/01/15 Суб 19:44:26 #118 №428721 
>>428717
https://github.com/servo/servo/blob/master/components/servo/main.rs#L77 это какая-то хаскельная параша, тем более нерабочая, может что-нибудь другое?
Аноним 24/01/15 Суб 19:50:57 #119 №428725 
>>428721
Какой хаскель, это раст.
А ну давай быстро делай блять.
Аноним 24/01/15 Суб 21:06:38 #120 №428736 
14221227989730.png
>>428721
> тем более нерабочая
Анус у тебя нерабочий.
Аноним 24/01/15 Суб 21:38:56 #121 №428750 
>>428725
fn get_args() -> Vec<String> {
os::args()
}

Ну и в каком месте это не хаскель?
Аноним 24/01/15 Суб 21:42:53 #122 №428751 
>>428736
Ну ок, полурабочий. Тем не менее, ОПа не устраивал интерфейс браузеров, дык подпилить интерфейс, зачем с движком трахаться?
Аноним 24/01/15 Суб 21:53:57 #123 №428755 
>>428751
Это веселее.
Аноним 24/01/15 Суб 22:02:17 #124 №428757 
>>428751
С движком нужно трахаться потому, что существующие движки вроде gecko и webkit — кривое говно, не способное даже в подобие параллельности (пример: http://www.youtube.com/watch?v=nwI69Smjhx8. На самом деле, всё ещё хуже, так как, емнип, существующие движки не способны пересчитать страницу частично после изменения DOM, только целиком) и с тяжёлым историческим наследием со времён Mosaic.
Аноним 24/01/15 Суб 22:35:17 #125 №428765 
>>428757
что ты несешь, йоп.

в chrome dev tools можно даже включить показ того, что именно браузер перересовывает, после DOM манипуляций
sageАноним 24/01/15 Суб 22:43:37 #126 №428768 
>>428757
Обоссал этого.
Аноним 24/01/15 Суб 22:44:56 #127 №428769 
>>428765
Ну ок, всё-таки могут. Но выполнять JS с одновременным расчётом разметки таки уже нет. Не говоря уже о параллельном изменении DOM при этом.
Аноним 24/01/15 Суб 22:50:12 #128 №428771 
>>428757
Ну ок, сначала подпилить интерфейс, чтобы был браузер, и только потом, если кого не устроит производительность движка, можно попилить движок.
Аноним 25/01/15 Вск 01:43:12 #129 №428860 
Хуле вы хуйней страдаете? Взяли бы hbro, накалякали в глэйде интерфейс, запилили необходимый функционал.

Design principles
° Do one thing well
A web browser is not a {window|bookmarks|history|download|passwords|package} manager, let alone an operating system. A web browser retrieves, renders and traverses web pages, period.
° Keep It Simple, Stupid
The program should be written with simplicity in mind, and without obsession for performance, features or release frequency. It should boot instantly, consume little memory and offer an uncluttered graphical interface. The code should be easy to grasp (well, as long as you speak Haskell...) to encourage users to hack it. Simplicity provides lightness, scalability, stability and maintainability.
° Extensible
Configuration system should allow users to implement extra features. External programs should be able to query/command the web browser.
° Good defaults
The default behavior should be suitable for users that cannot afford or don't want to spend (waste ?) their time in tweaks.
° Keyboard driven
Keyboard control should be made as much convenient, with as little mouse intervention, as possible.
Аноним 25/01/15 Вск 01:48:56 #130 №428861 
>>428860
> Keyboard control should be made as much convenient, with as little mouse intervention, as possible.
У кого-то VIM головного мозга.
Аноним 25/01/15 Вск 02:50:03 #131 №428877 
>>428861
Не нравится - сделай мышевозню. В чем проблема?
Аноним 27/01/15 Втр 06:05:26 #132 №429667 
14223279266600.png
>>428751
>Тем не менее, ОПа не устраивал интерфейс браузеров, дык подпилить интерфейс, зачем с движком трахаться?
ОП на связи.
Свое путешествие в мир отсосов я начал именно с того, что матерясь взял вебкит и начал его "доводить до ума". К сожалению, получилось не очень. Вот то, что у меня не получилось:

1. Запретить ему ВСЕ редиректы. А то твиттер меня редиректит и грит "включить жабоскрипт". Хороший браузер отобразит твиттер как есть, если кто и будет послан нахуй - авторы твиттера, а не я.

2. Запрет на исполнение всех скриптов есть, а вот запретить часть скриптов - хуй.

3. Как запретить браузеру лазить на другие домены? Можно повесить хук за загрузку урла, но сложно понять что случилось - была нажата ссылка, сработал жабоскрипт, оно редиректится или произошло что-то еще. То, что я сейчас высрал - часто загружает лишнее, но блокирует переход по ссылкам. Типичный кондишонрейс.

4. Я никак не контролирую кеш или кукисы, о безопасности можно даже не заикаться.

5. Поиск текста на странице - вроде простая штука, а как сделать? В гугле можно найти способы залезть в недокументированные вызовы.

Есть еще куча всякой хрени, которую я или закостылял, или просто не смог решить никак вообще. С горя я написал стрипалку дизайна и вообще собираюсь переходить на отображение текста, вообще без разметки. Да, мне абсолютно похуй ваша параллельность, прогрессивная загрузка и прочее. Мне нужен браузер, который будет рендерить страницу (целиком) за 0.01 секунды, при этом я его смогу направить на любой сайт и не остаться с вирусней/малварей и прочей дрянью. Ближе всех под эти требования попадает links. Но вот загрузка картинок в нем через жопу (лично патчил, чтобы он сосач отображал), а о проходе теста клаудвафли и говорить нечего. Я уже не говорю, что оно лазиет на разные домены, вызывая потенциальный XSS. Ну и соременные "дивные" сайты в нем выглядят мегауродски. С каждым днем табличных сайтов все меньше.

Вообще, я очень долго хотел перепилить линкс. Линкс - это ОЯЕБУ сколько всего в одном флаконе:
1. свои библиотеки графики (картинки, скейл и т.д.)
2. своя подсистема графики (драйвера для вывода)
3. свои библиотеки шрифтов
4. своя подсистема работы с сетью
5. свой layout engine, который парсит HTML без промежуточного DOM
И вот погружаешься во все это и просто охуеваешь. Я лично не смог разобраться во всем, сделал только штук 5 разных патчей, да и те не отослал никуда. Всякие Блинки и Сервы трогать боязно, там точно не разберусь.

Было бы круто, если бы можно было сделать "кубики" для браузера, из которых его и собирать, возможно даже в рантайме. Т.е. layout engine отдельно, шрифты отдельно, а "шкурки" со всякими букмарками - отдельно. Причем морда - это наверное самое сложное, вон посмотрите на операстов и то, что у них получается нынче.
Аноним 27/01/15 Втр 06:48:21 #133 №429670 
>>429667
А ты уверен, что тебе нужен именно браузер, а не клиент к двачу, свитору, etc?
Аноним 27/01/15 Втр 06:57:58 #134 №429672 
>>429667
> линкс
Может всё-таки лучше netsurf?
> Всякие Блинки и Сервы трогать боязно, там точно не разберусь.
Понимаю. Тем не менее, ты читал http://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html?
> Было бы круто, если бы можно было сделать "кубики" для браузера, из которых его и собирать, возможно даже в рантайме. Т.е. layout engine отдельно, шрифты отдельно, а "шкурки" со всякими букмарками - отдельно. Причем морда - это наверное самое сложное, вон посмотрите на операстов и то, что у них получается нынче.
Тебе может быть немного интересно вот что: http://breach.cc/
Аноним 27/01/15 Втр 10:46:30 #135 №429696 
>>429672
>http://breach.cc/
>который будет рендерить страницу (целиком) за 0.01 секунды
>Entirely written in Javascript
Аноним 27/01/15 Втр 11:49:47 #136 №429727 
>>429670
>А ты уверен, что тебе нужен именно браузер, а не клиент к двачу, свитору, etc?
И "да", и "нет" одновременно. На этот ваш свитер я захожу 1 раз в месяц (или того реже), матерюсь от того, что браузер тормозит/редиректит/вылетает и больше туда стараюсь не заходить. Поэтому держать выделенный клиент для него я согласен только в виде 2-3 регекспов, которые выдерут все со страницы и красиво мне покажут в простом textview.

Еще одна причина - мне надо гуглить, следовательно я попаду на сайты вида vasya-pupkin.narod.da.ru, а делать клиенты под них - сам понимаешь, занятие малореальное.

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


>>429672
>Может всё-таки лучше netsurf?
По идее, да. Достаточно красивый код, правда нахуя они там столько правил для CSS нагенерили я не понял. Правда я его уже третий год пытаюсь собрать под сперму, все руки не доходят. В идеале, мне нужен браузер под сперму и ведроид, что там с портабельностью плохо уже помню. Надо будет выковырять layout engine из него.

>Тем не менее, ты читал http://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html?
Конечно читал, правда последние серии про рисование не осилил, сильно был жар в заднице. Ведь основная цель браузера - это всеже работа с текстом, а не рендеринг прямоугольничков. В статье совершенно никак это не показывается.

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

>Тебе может быть немного интересно вот что: http://breach.cc/
Блять, мою задумку все же реализовали! Правда, уходить от хрома, чтобы придти к хрому и ноде? Как экспериментальный проект, штука наверняка интересная, но я убежал оттуда в ужасе, представив это на десктопе.
Аноним 27/01/15 Втр 11:57:20 #137 №429729 
>>429727
>а там десяток социальных кнопок подгружается и пиздец
А NoScript или хотя бы ghostery на планшет не завезли?
Аноним 27/01/15 Втр 21:59:22 #138 №430019 
>>429696
Опять же, проблемы движка. Вот почему так нужен Servo.

>>429727
> Ведь основная цель браузера - это всеже работа с текстом, а не рендеринг прямоугольничков.
Когда-то давно это было так, сегодня же не совсем. Даже в бложиках сейчас много динамики.
> Как экспериментальный проект, штука наверняка интересная, но я убежал оттуда в ужасе, представив это на десктопе.
Почему? Меня лишь смущает JS вместо языка программирования (хотя возможность компилировать в него другие языки несколько сглаживает ситуацию).
Аноним 27/01/15 Втр 22:01:41 #139 №430024 
Кстати, мозилловцы тоже не брезгуют связкой HTML5+JS: https://github.com/mozilla/browser.html
Аноним 30/01/15 Птн 21:31:50 #140 №431135 
>>420393
Можно парсить HTML с помощью libxml2,
самое сложное вообщем-то состоит именно в этом, в построении DOM, парсинге CSS, построении slyte tree и layout tree.

Всё это сделать, и считай браузер готов, осталость только отрисовку на OpenGL прикрутить. Правда, браузер будет супертормозной всё равно. Но что угодно лучше, чем говно которое сейчас есть.
Аноним 31/01/15 Суб 00:07:49 #141 №431182 
>>431135
>Можно парсить HTML с помощью libxml2
Нельзя. У тебя половина сайтов работать не будет.
>самое сложное вообщем-то состоит именно в этом
Нет. Ещё жаваскрипт, как минимум.
Аноним 31/01/15 Суб 13:27:43 #142 №431318 
>>431182
жаваскрипт - ненужно
Аноним 31/01/15 Суб 14:07:08 #143 №431324 
>>431318
Тогда какой смысл заморачиваться с реализацией своего велосипеда, если полно нормальных браузеров, шустро работающих без жс.
Аноним 31/01/15 Суб 14:13:14 #144 №431329 
>>431318
Как там у вас в двухтысячных?
Аноним 31/01/15 Суб 14:17:21 #145 №431331 
14227030418020.png
>>431329
Нормально. Глаза только побаливают
Аноним 31/01/15 Суб 15:00:57 #146 №431339 
>>429667
В качестве конструктора браузеров задумывался Mozilla suite, нынче Seamonkey.
Аноним 01/02/15 Вск 02:35:01 #147 №431584 
>>420393
Хорошая задача, она не такая сложная как может показаться: вот цикл постов в которых http://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html строится рендерер HTML
Аноним 01/02/15 Вск 02:42:07 #148 №431586 
>>420694
Вот чем отличаются англоязычные ресурсы от русскоязычных - на первых тебе скажут so cool let's hack it! и может даже помогут немного, а на вторых тебя пошлют подальше с мутным обоснованием почему то что ты предлагаешь работать не будет.
Может так получается потому что люди в странах третьего мира ненавидят свою жизнь и работу, и не имеют времени на pet projects.
Аноним 01/02/15 Вск 07:17:43 #149 №431615 
>>431586
Вот чем отличаются англоязычные ресурсы от русскоязычных - на первых бегают розовые пони и может даже какают бабочками немного, а на вторых при получении малейшей критики жалуются: А В ЕВРОПИ ВСЁ ПАДРУГОМУ.
Может так получается потому что некоторые до сих пор думают, что люди в джинсах и с жвачкой просто не могут какать не бабочками.

Я не тот анон, но тоже считаю, что полноценный движок силами анонов нереализуем, т.к. не хватит никакого энтузиазма, не говоря уж об остальном.
Аноним 01/02/15 Вск 11:47:28 #150 №431641 
>>420393
Предлагаю написать консольный браузер. Полностью текстовый.
Аноним 01/02/15 Вск 11:48:13 #151 №431642 
>>431641
Картинки преобразовываются в аски графику.
sageАноним 01/02/15 Вск 11:54:08 #152 №431646 
>>431641
Зачем, если их и так тысячи?
Аноним 01/02/15 Вск 13:35:47 #153 №431663 
http://fifth-browser.sourceforge.net/features.html - отличный набор фич
Аноним 01/02/15 Вск 20:05:29 #154 №431858 
>>431642
зачем, консоль же умеет в картинки.
Аноним 02/02/15 Пнд 02:55:24 #155 №432060 
>>431663
вот только я ждал 3 часа пока собирался webkitfltk, а потом он мне сказал, error: no space left on device
Аноним 02/02/15 Пнд 09:02:05 #156 №432089 
>>432060
А ты представь, какой у меня был баребух, когда webkit-gtk через 11 часов сборки ёбнулся с ошибкой.
Аноним 03/02/15 Втр 02:59:06 #157 №432442 
>>431663
собрал, падает часто. При любом переходе по ссылке на tumblr, youtube, больше ничего не открывал. Неюзабельно. Хотя, идея проигрывать видео во внешнем плеере мне очень понравилась.
Аноним 03/02/15 Втр 11:37:57 #158 №432517 
14229526776900.png
14229526776911.png
14229526776922.png
>>420400
Лолд.
Аноним 03/02/15 Втр 12:10:32 #159 №432522 
>>431318
А как же вк, твиттер, лайвджорнал, двачи? Ютуб я ещё могу понять, скармливать ссылку какому-нибудь vlc.
Аноним 03/02/15 Втр 12:11:11 #160 №432524 
>>432522
Опять же, сайты типа stackoverflow без жс выглядят ну слишком говном и многое даже недоступно.
Аноним 03/02/15 Втр 13:14:26 #161 №432544 
Не устаю проигрывать с местных аутистов.
"Браузер должен показывать текст", "жс - не нужно", лолд.
Аноним 04/02/15 Срд 03:53:04 #162 №432842 
>>432442
Я тебе больше скажу. Я тут почитал NPAPI, оно хоть и подыхает, но все еще есть. Так вот, при инициализации, происходит слияние плагина (говнофлеша) и всех кишок браузера, которые можно дергать из плагина. Надо сказать, что на этот интерфейс ложится даже менеджмент памяти. Будет сделать не просто, но было бы очень полезно. Сделать это надо ради хуков на все-все возможные функции. Хуки эти транслируют события в некий абстрактный интерфейс, откуда можно было бы скармливать события простым скриптам, хотя бы на JS.

А дальше можно делать все быстро и смешно. К примеру, заходим мы на ютуб, вимео, всякие говносайты с порнухой. Там открывается родной флеш-плеер, проходит всяческие авторизации, считает хеши и прочее говнецо. Так как это настоящий оригинальный флеш, то он пройдет абсолютно любые верификации. И как только мы отловим вызов, окончившийся video/x-flv, то СНОСИМ ПЛАГИН НАХУЙ БЛЯТЬ, СНОСИМ НАЧИСТО! На этом месте можно аллочить мплеер или просто вывести прямую ссылку на видео, запустить внешний плеер и все такое. И смотреть кино без говнофлеша. Можно делать АЗАЗА и БУГОГА.

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

>>432517
Линкс есть в графическом виде, даже с кортинками.

>>432522
Двачи - это отличный пример. Вспомни куклоскрипт, без которого многие считают двачи неюзабельными!
Вот он, пример альтернативного клиента, который запускается без спроса со стороны сервера и облегчает жизнь пользователю.
Особенно в свете последних событий, когда обезьяна начала блокировать куклоскрипт из-за политических разногласий.
А если клиент (браузер) полностью самописный, то тут уже ничего не поделаешь, ничего не заблокировать и никак не навязать пользователю своих правил.

>>432524
Стековерфлоу отлично выглядит без JS, все заебись. Правда, я его только читаю, ничего там не пишу.
Аноним 04/02/15 Срд 11:52:16 #163 №432904 
>>432842
Про линкс в курсе, запостил скрины по-приколу. Что до графической версии, то там вырвиглазные шревты, нет вкладок и нет жс. Куклоскрипт туда никак не присобачить, и вообще, для его работы надо разрешать и жс, и куки, если мы про лису.
Аноним 04/02/15 Срд 13:27:36 #164 №432941 
>>432904
Ну давай разберем тобой написанное

>по-приколу
складывается впечатление, что ты реально контуженный долбоеб

>шрефты
они там вкомпилированы и за это я готов любить линкс еще больше. Равно как и за пост-процессинг шрифтов.

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

>нет JS
Когда-то давно был, но выпилен за ненужностью. Если его добавить, то скорее всего мы получим уже не быстрый и охуенный браузер

>куклоскрипт
но его можно переписать как часть браузера (расширение) и JS для этого совсем не нужен
Аноним 04/02/15 Срд 13:32:00 #165 №432942 
>>432941
>можно переписать как часть браузера
Для всех сайтов клиентскую часть переписывать будешь, лалка?
Аноним 04/02/15 Срд 14:03:12 #166 №432956 
>>432941
> они там вкомпилированы и за это я готов любить линкс еще больше. Равно как и за пост-процессинг шрифтов.
Спасибо я в курсе. Это не делает их менее вырвиглазными.
>за это готов любить линкс ещё больше
Это очень нишевое применение, тупо как тестер работы интернета на мироволновках, не более.
>и нахуй не нужны, у меня открыты сотни окон оного. Когда браузер почти не кушает ресурсов - можно себе позволить
Да просто непривычно.
>выпилен за ненужностью
Ну у меня двачи не работают, например, про контактики всякие я вообще молчу.
>но его можно переписать как часть браузера (расширение) и JS для этого совсем не нужен
Переписывай. Ещё для твиттера и ютуба костыли напиши.
Аноним 04/02/15 Срд 17:41:20 #167 №433048 
>>432942
Да, вот уже: https://github.com/l29ah/w3crapcli

>>432956
Сижу на сперме7 ультимейт с клиртайпом, шрифты линкса - лучшие.
Для поддержки двочей я его патчил, впрочем нынче и ванильная версия работает, обезьяна починила.
Аноним 04/02/15 Срд 18:59:58 #168 №433094 
>>433048
У меня не работало: не показывает капчу.
>Да, вот уже: https://github.com/l29ah/w3crapcli
И как это с линкс совместить?
Аноним 04/02/15 Срд 19:05:14 #169 №433096 
Из консольных есть ещё w3m, поддерживает картинки, печеньки, когда-то даже был патч от узкоглазых добавляющий поддержку js, но он давно утерян.
Аноним 05/02/15 Чтв 22:00:57 #170 №433606 
>>420494
>он ест раза в 2 меньше, но его трудно достать
>но его трудно достать
эй, старый хром есть? сколько?
Аноним 08/02/15 Вск 16:16:58 #171 №434805 
>>433094
никак не совместить, но если мы пишем свой браузер, то проблем нет
Аноним 12/02/15 Чтв 13:14:42 #172 №436225 
Появилась идея и проблема. Каждый сайт должен иметь свои настройки. К примеру, какие куки блокировать, какие файлы можно загружать, какие домены являются доверенными. К примеру, я могу разрешить ходить на yandex.net отсюда, но только за капчей.

Подумав шире я понял, что к любому объекту можно применить правила фильтрации, спуфинга и скриптинга (эмуляции). К примеру, работа с сетью и URI:
http://example.com/ads.png - отфильтровать (просто не загружать)
http://example.com/script.js - подменить на свой (даже если его нет)
http://example.com/feed.rss - запустить локальный скрипт, который распарсит главную и сделает RSS

Аналогично с доменами, куками, CSS и даже с селекторами DOM. Да с чем угодно, до включения/выключения события onclick/onmousemove

Т.е. мне нужна key-value база вида

domains-google-analshit.com=blocked
domains-2ch.hk=allow-as-primary
domains-2ch.hk-to-yandex.net=allow-as-slave
domains-2ch.hk-to-cloudflare.com=allow-as-slave
domains-2ch.hk-to-google.com=emulate:/sites/google/
domains-2ch.hk-to-ytimgs.com=allow-as-images
urlfilter-2ch.hk/styles.css=static-file:/sosach.css
urlfilter-2ch.hk/images/tv2ch.jpg=blocked

Как вы понимаете, настроек надо допизды и для каждого сайта, каждой куки, каждой формы свои настройки. Какое хранилище мне заюзать? И чтобы памяти много не юзать и к диску не обращаться? Я сразу думаю делать мобильное приложение, там с памятью и IO туго все. В голове пока вертится только фильтр Блума и всякие хеши, но это еще больше только увеличит использование памяти.
Аноним 12/02/15 Чтв 21:16:53 #173 №436444 
>>420559
>А не устаревшее говно(http)
ох ебать, http это просто протокол передачи файлов, хули ты до него доебался?
>что то бы быть хоть сколько-то похожей не на парашу из 90-х
ебаные хипстопидоры, это вы скатили интернеты в говно, в 90-х сайты были прекрасны - только текст и графика, а потом пришли петухи с "хачю шобы музыка играла и снежинки падали и закругленные края!", и пиздец
sageАноним 12/02/15 Чтв 21:32:14 #174 №436453 
>>436444
> ко-ко-ко-ко-ку-ка-ре-ку диды раньше вон ваапще тряпками жёппы вытирали!!!
Аноним 12/02/15 Чтв 21:57:12 #175 №436470 
>>436453
просто ты еблан, для которого важнее форма, а не содержание
Аноним 12/02/15 Чтв 22:04:42 #176 №436478 
>>436453
И правильно. Тряпкой-то вон подтерся, постирал - и всё, готова для повторного применения.
Аноним 12/02/15 Чтв 22:45:58 #177 №436488 
>>436453
Одно хорошее правило проебали-таки. Правило ненавязчивого жаваскрипта. Сейчас без этого говна ничего работать не будет. И ладно бы, нормальный язык и нормальные работники, так хуй там. Страничка документации по qt при любом действии подвешивает браузер на 5-6 секунд. Но все жрут и нахваливают. И это в то время, когда производители железа жопу рвут, чтобы экономить энергию.
Аноним 13/02/15 Птн 00:23:41 #178 №436532 
>>436488
> Страничка документации по qt при любом действии подвешивает браузер на 5-6 секунд
...из-за убогости современных движков, которые не могут в параллелизм. Как починить — см. Servo.
Аноним 13/02/15 Птн 00:51:18 #179 №436542 
>>436532
Из-за убогости фронтенд-разработчиков.
Не на своем же железе исполнять, вот и делают абы как.
Аноним 13/02/15 Птн 01:45:59 #180 №436553 
>>436532
Документация таки должна выглядеть и работать вот так: http://www.w3.org/TR/xml11 или даже так: http://man7.org/linux/man-pages/man2/fork.2.html
Аноним 13/02/15 Птн 10:14:09 #181 №436608 
>>436532
>...из-за убогости современных движков, которые не могут в параллелизм
ты охуел что ли, просто вывести форматированный текст ему уже нужен параллелизм
Аноним 13/02/15 Птн 16:46:04 #182 №436763 
Лучше скажите где и как мне хранить настройки/закладки/куки/спамы, я вот тут >>436225 страдал
Аноним 13/02/15 Птн 17:51:26 #183 №436797 
>>436763
Обычный словарик уже пробовал?
Аноним 13/02/15 Птн 18:02:52 #184 №436802 
>>436797
Что есть словарик? хеш? Нет, не пробовал, списки в хешах хранить жутко неудобно, на перезапись много ресурсов.
А списков у меня много. Да и запрос, скажем кукисов с учетом path сделать сложно, надо все и вся перебирать
Аноним 24/02/15 Втр 15:50:13 #185 №441679 
Блджад, я не могу даже придумать простейший сторадж, а ведь дальше писать весь браузер.
sageАноним 24/02/15 Втр 20:02:13 #186 №441775 
>>441679
ты просто обычный наследственный дебил и ничего у тебя не получится(

нужно использовать хеш-таблицу, не еби мозги
Аноним 09/03/15 Пнд 00:25:14 #187 №447583 
БАМП
Аноним 16/03/15 Пнд 16:15:51 #188 №450928 
bump
Аноним 16/03/15 Пнд 17:08:23 #189 №450939 
Пиши на хаскеле с нуля: очень круто писать всё на хаскелле..
Аноним 16/03/15 Пнд 19:18:32 #190 №451004 
>>450939
http://hrothen.github.io/2014/09/05/lets-build-a-browser-engine-in-haskell/
Аноним 25/03/15 Срд 06:10:00 #191 №454777 
Тут посоветовали юзать http://sphia.org/get.html, дескать модно и молодежно. Какие подводные камни?

Ваш ОП, которому негде хранить настройки
sageАноним 25/03/15 Срд 09:58:05 #192 №454815 
>>436225
>>454777
У меня от тебя ПРЕЖДЕВРЕМЕННАЯ ОПТИМИЗАЦИЯ.
Уже наговнякал бы с обычными хешами, а потом прикрутил какой-нибудь berkdb. Но нет, надо зациклиться на какой-то малозначимой хуйне.
Аноним 11/04/15 Суб 00:40:35 #193 №462248 
>>454777
НАЧАЛЬНИК, ТЫ?! АЗАЗАЗА
comments powered by Disqus