Состоялся (http://www.netsurf-browser.org/about/news.html) выпуск минималистичного многоплатформенного web-браузера NetSurf 3.9 (http://www.netsurf-browser.org/), способного работать на системах с несколькими десятками мегабайт ОЗУ. Выпуск подготовлен для Linux, Windows, Haiku, AmigaOS, RISC OS и различных Unix-подобных систем. Код браузера написан на языке Си и распространяется под лицензией GPLv2. Новый выпуск примечателен поддержкой CSS Media Queries, улучшением обработки JavaScript и исправлением накопившихся ошибок.
Браузером поддерживаются вкладки, закладки, отображение эскизов страниц, автодополнение URL в адресной строке, масштабирование страниц, HTTPS, SVG, интерфейс для управления Cookie, режим сохранения страниц с изображениями, стандарты HTML 4.01, CSS 2.1 и частично HTML5. Предоставляется ограниченная поддержка JavaScript, которая по умолчанию отключена. Страницы отображаются при помощи собственного браузерного движка, основу которого составляют библиотеки Hubbub (http://www.netsurf-browser.org/projects/hubbub/), LibCSS (http://www.netsurf-browser.org/projects/libcss/) и LibDOM (http://www.netsurf-browser.org/projects/libdom/). Для обработки JavaScript применяется движок Duktape (http://duktape.org/).
URL: http://www.netsurf-browser.org/about/news.html
Новость: https://www.opennet.dev/opennews/art.shtml?num=51147
Выгледит как IE6
если б еще и работал как ie6 :-(
В консоле может?
> В консоле может?Как ни удивительно - может, но специфической:
The ABLE framebuffer
This surface handler enables NetSurf's framebuffer front end to run directly on the ABLE bootloader, shipped with hardware from Simtec.для linux fb фронтенд - сам напиши, раз оно тебе надо. Там не особо сложно, а backend'у все равно на чем отрисовывать. А разработчикам оно неинтересно.
Нет, серёзно. Я кажется использовал нетсёрф в фреймбуфере. Удалите, ведь это секретная информация!
> если б еще и работал как ie6 :-(Не хватает SSL3? <marquee>? ActiveX? scrollbar-face-color? Temporary Internet Files\main[34].js? VBScript?
не хватает "assertion failed" и "core dumped". В смысле, в ie6 - он в свое время просто работал.
> не хватает "assertion failed" и "core dumped". В смысле, в ie6 -
> он в свое время просто работал.Нет, там это называлось вот так: «Internet Explorer has encountered a problem and needs to close. We are sorry for the inconvenience.»
Хотя, надо признать, встречалось это (как и корки лисы) на моей памяти реже, чем разыменование рандомного мусора, заботливо переданного родительским процессом (!) хромого в libgtk. Впрочем, это было несколько лет назад, с тех пор я этот дурацкий обозреватель даже для тестов не запускаю.
Ты так говоришь, как будто это что-то плохое.
Вообще-то на вид скорее похоже на ранний файрфокс, версии 1.5-2.0
текст на русском в нем очень печально выглядит.
Открыл в netsurf-3.8 на e2k-alt-linux: opennet.ru, altlinux.org, anna-news.info; с текстами на русском наблюдаю полный порядок. Может, у Вас что-то не то с локальными шрифтами/fontconfig/freetype?
на форточках кракозябры.
Ну его, я лучше из минималок QtWeb буду юзать.
Он хоть opennet нормально рендрит.
http://prntscr.com/oiwq2e
чего бы хромому и не видеть? только зачем удалять гланды через дымоход, когда можно хромога просто так запускать, без qt?
оно на WebKit
> оно на WebKit
> What's new in version 3.8.5 (released on Sep 9, 2013)Окей, в вебкит верю. Старый, без самых последних перделок, всё как мы тут любим. Непонятно только, сколько в нём уязвимостей при этом накопилось за все эти годы.
При попытке конпилять выдаёт:
> fatal error: filter-lexer.hКакой это пакет в бубунте?
Вот полная ошибка:
> src/filter-parser.y:15:26: fatal error: filter-lexer.h: Нет такого файла или каталога
Смотрите, надо так:
apt-file search filter-lexer.hТолько вот результата-то нет...
Это файл из комплекта НетСурфа, его не надо ставить.
а ты README совсем не читаешь? flex тебе нужно установить
Конпелять на бубунте? Месье знает толк..
В чём проблема?
В source-based или гибридных дистрибутивах данная задача (собрать пакет) решается легко и непринужденно, там и все инструменты уже готовы. А анониму выше придется потрахаться ;)
Ой, а не скомпиляете ли его в генте, пожалуйста?
Да запросто. Как вам удобней расплачиваться?
Трансбукально.
Бинарники, скомпилированные в Gentoo, не пригодны для дальнейшего распространения. Во-первых, из-за march, требующего сильно новый процессор. У того, кто будет запускать, может не быть какого-нибудь SSSE3. Во-вторых, из-за up-to-date системных библиотек. Если программа зависит от десяти библиотек - хоть одна из них не существует в системе, в которой её будут запускать. Например libgnutls у нас очень любит ломать ABI, и между двумя версиями Ubuntu может произойти перескок с *.so.51 до *.so.53 (числа "из головы"). Естественно, мы скомпилируем с *.so.52
ты не поверишь, это в ней - настраивается.как и march, -O6 и прочие глупости - прекрасненько приводятся к общему знаменателю.
Есть у меня распрекрасный кусок гуана, который компилится именно гентой - потому что для нее есть какой-то почти подходящий под текущую версию оверлей, что в нем написано - я нифига не понимаю, поправил только цифирки версий, но нужный бинарник в результате - образуется.
А работает после этого в докере собранном с "official [dickhead produced] image", который вообще дебиан (и в котором его не собрать).
> Конпелять на бубунте?В своё время, Райан "Иккулус" Гордон выбрал Ubuntu в качестве домашней системы. А он точно не "начинающий пользователь". Начиная с 1999 года, он создал сотни портов игр на Linux
> Конпелять на бубунте? Месье знает толк..Какая нафиг разница, на чём конпелять? =/
Искать файлы в пакетах на дебианоподобных дистрах можно утилитой apt-file.
судя по названию - никакой, это что-то автогенерящееся, что у тебя почему-то забыло сгенериться. Но с такими умениями лучше тебе ничего не конпелять, а ждать ебилдов.
* ты че, конпелять не умеешь? жди ебилдов.
* зах тебе билды - иди и сам конпеляй.
> * ты че, конпелять не умеешь? жди ебилдов.ну да, че не так-то? Либо умеешь, либо жди, де6..., пардон, ебилдов жди, да. Там те кто умеют, за тебя уже все покомпиляли.
это не пакет. это исходный файл сорцов. его не хватает. смотрите гайд по установке.
> на системах с несколькими десятками мегабайт ОЗУБраузер-то может и способен, но вот многие современные сайты — это сложные раздутые программы с кучей зависимостей, которые сами по себе требуют кучу памяти независимо от браузера. Если сайт желает разместить в памяти гигабайт JS-объектов, а без JS вообще не работает, никакой браузер его не исправит.
Тут все просто: поддержка JS по умолчанию отключена, а если включить, то будет ограниченная.
Спасибо, Кэп!
На «многих современных сайтах» JS у меня как раз жостко порезан, чтобы они даже не пытались «разместить в памяти гигабайт JS-объектов», и я ничуть не страдаю от этого ;)
Ну а уж коли совсем никак, то просто в мусор такой сайт - инет большой.
> Спасибо, Кэп!
> На «многих современных сайтах» JS у меня как раз жостко порезан, чтобы
> они даже не пытались «разместить в памяти гигабайт JS-объектов», и я
> ничуть не страдаю от этого ;)Только вот оптимизацию для таких вот "тяжелых" сайтоприложений в оставшихся 2½ браузерных движках не порежешь никак, там все переписывать придется.
Поэтому и без JS, на простом тексте, память жрется сотнями МБ – очень хорошо заметно при открытии объемных html-доков или книг.
JS? Пфф. Парачка "правильно" сформированных CSS и дерьмово свёрстаный HTML и браузер уже захлёбывается.
О, это же то, что нужно! В договор с уеб-дезигнерами включать пункт, чтобы их творение корректно отображалось в NetSurf. Нет - пнх и соси лапу.
Хотят всё это отнюдь не «уеб-дезигнеры», глупыш, а те, кто и заказывают музыку. Кто будет требовать такое, пчёлы против мёда? Не знаю, работал ли ты с такими людьми когда-нибудь, но там тотальный карго-культ. «Как на другом сайте, который я вчера видел» это норма. Неважно, что на твоём сайте это не нужно от слова совсем, и что не сочетается с ещё десятком плюшек, «натасканных» ещё с десятка сайтов. Зато СОВРЕМЕННО.Вот что что, а развитие CSS это как раз хорошо. Не нужно вкручивать кучу JS и изоленты, когда можно прописать пару строк CSS'а. А то так доиграемся, что и border-radius не нужен и linear-gradient() для слабаков. Ну будешь ты больше картинок грузить в результате, может ещё и 1px распоркам вернуться, но зачем?
Во-первых, фичастые сайты тоже можно делать по уму, а можно и примитивные сайты-визитки делать по-дэ6ильному.
Когда при загрузке одной страницы броузер тащит сотни маленьких css и js (а при работе в мобильном интернете даже в центре крупного города или в wi-fi где-нибудь в молле часть из них обрывается по таймауту) - это при том, что заранее известно, что эти css и js будут нужны и их заранее можно упихнуть в один минифицированный файл, или когда загрузка статичных элементов выполняется не средствами самого браузера, а за каким-то хреном с помощью жабаскрипта - это никакими хотелками клиентов не оправдывается.
> в один минифицированный файлОсобой погоды не сделает. Тонна говнокода продолжить быть тонной говнокода и будет жрать как не в себя. Тем более что если используется какая-нибудь готовая CMS, где ты вообще никак не контролируешь, в скольких файлах будут CSS/JS. А использовать их будут, потому что на более серьёзную разработку хоть на питоне, хоть на рубях, никто денег и времени выделять не будет.
> …загрузка статичных элементов выполняется не средствами самого браузера, а за каким-то хреном с помощью жабаскрипта - это никакими хотелками клиентов не оправдывается.
Вообще-то она именно этим и оправдывается. Динамическую загрузку картинок делают чтобы сэкономить трафик или костыльно подгружать разные картинки в зависимости от разрешения/плотности точек монитора. То, что это нередко юзабилити вгрызается в плинтус никого не волнует. Потерпят немножко, чай не маленькие.
> Особой погоды не сделаетВ плане загрузки проца и хаванья памяти - да, не сделает. Но с точки зрения загрузки - ещё как сделает. Я уже перестал удивляться, когда вместо текста у меня серые полоски из-за того, что часть таких маленьких файликов потерялась по пути. Приходится заново загружать страницу (ни в коем случае, упаси боже, не по F5, только поставить курсор в адресную строку и нажать ввод).
> Динамическую загрузку картинок делают чтобы сэкономить трафик или костыльно подгружать разные картинки в зависимости от ...Это я могу понять (например, когда динамически подгружаются полноразмерные фотки по мере кликанья по тумбнейлам - это правильно), но когда такие технологии применяются для сайта с тремя статичными страничками (главная, "о нас"+контакты, прайс) из-за того, что автор освоил одну CMS и просто в её встроенном редакторе эти три странички сверстал - это удручает. А то ещё бывает, что скрипт скачивает не картинку, а текст в base-64, в браузере преобразует в бинарник и только после этого показывает, причём ставит её фоном, а сверху накрывает тайлом прозрачных гифов 1*1 - за это вообще убивать хочется.
Неплохой способ еще больше унизить веб-макак!
> Парачка "правильно" сформированных CSS и дерьмово свёрстаный HTML и браузер уже захлёбываетсяКак у тебя вообще opennet открылся...
> Браузер-то может и способен, но вот многие современные сайты — это сложные раздутые программы с кучей зависимостей, которые сами по себе требуют кучу памяти независимо от браузера. Если сайт желает разместить в памяти гигабайт JS-объектов, а без JS вообще не работает, никакой браузер его не исправит.Глупенький. JS может CPU сожрать, но выжрать больше десятка метров RAM -- очень нетривиальная задача для реального приложения, а сам байткод занимает считанные килобайты
Больше всего оперативной памяти жрёт DOM. Живи теперь с этим
> Больше всего оперативной памяти жрёт DOM. Живи теперь с этимЭто до тех пор, пока вебфреймворк не создаст виртуальный DOM. После этого vDOM будет жрать больше памяти, чем DOM.
> Это до тех пор, пока вебфреймворк не создаст виртуальный DOM. После этого vDOM будет жрать больше памяти, чем DOM.Пробежался по верхам React и ничегошеньки не понял. https://ru.reactjs.org/docs/faq-internals.html
>> Это до тех пор, пока вебфреймворк не создаст виртуальный DOM. После этого vDOM будет жрать больше памяти, чем DOM.
> Пробежался по верхам React и ничегошеньки не понял. https://ru.reactjs.org/docs/faq-internals.htmlhtml элементы -- это низкоуровневые кубики, из них строятся более сложные элементы страницы, типа виджетов. У виджета может быть сложное состояние. Например, вот есть у нас опеннет, тут такими виджетами могут быть комменты, текст внутри коммента -- это часть его состояния. Если, допустим, коммент подсвечивается когда на него мышкой наводишь, то наличие/отсутствие подсветки -- это тоже состояние.
На заре web-приложений, состояние хранили непосредственно в DOM, тебе надо изменить фон элемента, ты его меняешь. Но там с этим какие-то проблемы проявились. То ли с производительностью, то ли с залипанием интерфейса во время массированных обновлений DOM, то ли ещё с чем-то. И react зафигачил Virtual DOM, который зеркалирует структуру DOM, и программист работает с ней, а Virtual DOM как-то особенно правильно обновляет DOM в соответствии с Virtual DOM.
На опеннете все эти сложности не нужны, потому что содержимое комментов не меняется (по-крайней мере, пока не обновишь страницу), и всяких интерактивностей минимум или вообще нет. Но в других случаях это не так.
Сам я не веб-разработчик, я просто где-то читал об этом полуслучайно, поэтому подробнее объяснить зачем это и как этим пользоваться я не могу.
Теплее, однако следовало сперва сходить по ссылке. Виртуальный DOM ни разу не копия реального DOM. Элемент виртуального DOM содержит лишь 2 атрибута: объекты state и props. Идея в том, что если state и props не изменились, то и элемент реального DOM не изменился. Для ускорения операций сравнения в React и Redux принята условность: мутации запрещены. Если элемент (будь то объект или список) требует изменения -- создаётся новый объект или список. Тогда необходимость полного сравнения исчезает -- достаточно сравнить ссылки.В сухом остатке виртуальный DOM сводится к рекурсивному сравнению ссылок с целью найти, какой именно элемент реального DOM изменился. Сравнение ссылок происходит супербыстро
И, собственно, где это применяется. Вылазь из криокамеры, server side rendering сегодня почти моветон. Почитай про AJAX и single page application
Все так хорошо в теории, все очень разумно и эффективно, но на деле почему-то веб-сайты становятся все более тяжелыми и тормозными.> И, собственно, где это применяется. Вылазь из криокамеры, server side rendering сегодня почти моветон. Почитай про AJAX и single page application
А чем плох старый добрый подход с формированием готовых html-страниц на сервере для сайтов ориентированных на контент, которые в сущности не являются приложениями со сложным интерфейсом и большим объемом интерактивности? Мода приоритетнее инженерной обоснованности?
> А чем плох старый добрый подход с формированием готовых html-страниц на сервере для сайтов ориентированных на контентна кой черт, мешанина из хтмл и логики, вот уж нафиг.
> не являются приложениями со сложным интерфейсом и большим объемом интерактивности
таких больше нет
> Мода приоритетнее инженерной обоснованности?
инженерной обоснованности == мешанина из хтмл и логики, тогда лучше быть модным
> таких больше нетТаких большинство, говоря о предназначении и о функциональности сайтов, а не о том, как технически они реализованы.
> инженерной обоснованности == мешанина из хтмл и логики, тогда лучше быть модным
Очень странный критерий для решения о том, какие именно части приложения должны быть разнесены по сети. То, что и за HTML, и за логику отвечает сервер, вовсе не означает, что там должна быть мешанина, это вполне могут быть четко разделенные уровни на сервере.
> И, собственно, где это применяется. Вылазь из криокамеры, server side rendering сегодня
> почти моветон. Почитай про AJAX и single page applicationНе переживай так. Пройдёт два года, и клиент-side рендеринг станет моветором. Это js, где всё происходит революция каждые полгода.
> Сам я не веб-разработчик, я просто где-то читал об этом полуслучайно, поэтому подробнее объяснить зачем это и как этим пользоваться я не могу.
> Не переживай так. Пройдёт два года, и клиент-side рендеринг станет моветором. Это js, где всё происходит революция каждые полгода.https://pp.userapi.com/c845016/v845016127/1997a1/mI_ojMEzXdY...
>> Сам я не веб-разработчик, я просто где-то читал об этом полуслучайно, поэтому подробнее объяснить зачем это и как этим пользоваться я не могу.
>> Не переживай так. Пройдёт два года, и клиент-side рендеринг станет моветором. Это js, где всё происходит революция каждые полгода.
> https://pp.userapi.com/c845016/v845016127/1997a1/mI_ojMEzXdY...Для того, чтобы видеть революционный тренд жабаскрипта, вовсе не обязательно быть экспертом. Революции они достаточно громкие события, чтобы их можно было бы регистрировать наблюдая с безопасного расстояния.
>стандарты HTML 4.01, CSS 2.1 и частично HTML5Разработчики живут в смещенном примерно на 6 лет временном потоке.
Они просто не спешат ;) И плевать хотели на "современных уеб-разработчиков" и их высеры.
Вот когда ты не можешь себе такого позволить, то это действительно печально.
> Они просто не спешат ;) И плевать хотели на "современных уеб-разработчиков" и их высеры."Пробившись попусту час целой,
Пошла и говорит с досадою: 'Ну, что ж!
На взгляд-то он хорош,
Да зелен - ягодки нет зрелой:
Тотчас оскомину набьешь'."
(с)"Жители деревни Виллариба (...)" (с)
С каких пор крыловская лиса переселилась в испанию? Кстати, для тех кто не в курсе, был даже такой сериал: https://www.imdb.com/title/tt0108982/
Она не переселялась. Это две разных истории со смыслами имеющими отношение к.
Было бы им плевать - не писали бы браузер с javascript и html5, а пользовались бы каким-нибудь lynx и не парились. Раз уж начали внедрять - так пусть доделывают.
> Было бы им плевать - не писали бы браузер с javascript и
> html5, а пользовались бы каким-нибудь lynx и не парились.а они и не парятся - у них project goal - have fun!
lynx им, видимо, неинтересно.
> так пусть доделывают.
иди и доделывай, чо как маленький? Это тру опенсорс. Без жырного спонсора, без менеджеров с дидлайнами и идиотскими требованиями, без попыток угодить всем и даже без кнопки donate.
Куда засылать код - там написано.
> иди и доделывай, чо как маленький?Сразу видно взрослого человека. Чего так возбудился, никнейм позоришь. Лет 10 назад в качестве курсовой в универе я бы этим занялся, а сегодня я денег зарабатываю за компом и в своё свободное время экраны, кроме телевизора с фильмом, видеть не хочу.
> Без жырного спонсора, без менеджеров с дидлайнами и идиотскими требованиями, без попыток угодить всем и даже без кнопки donate. Куда засылать код - там написано.
Если тебе скучно на каникулах - так займись улучшением браузера. Я всего лишь высказал своё мнение обычного пользователя и никого не просил его поддерживать или оспаривать.
XHTML бы. Этот вариант HTML'я, как раз, который был прописан, структурирован и "жёсток". Он бы по рукам стучал верстальшикам-фронтендерам хорошо. Но это не для массового бизнеса.
> XHTML бы. Этот вариант HTML'я, как раз, который был прописан, структурирован и
> "жёсток". Он бы по рукам стучал верстальшикам-фронтендерам хорошо.Расскажите же, в чём "аморфен" и "мягок" HTML5 и какие ужасы случаются с ним на фронтэнде в противовес тому, от чего чудесно были застрахованы применяющие XHTML? Неужто вёрстка едет? Или кроссбраузерности не завезли?! И пруфов, пруфов.
Ну, разве что с точки зрения потокового скрапинга неудобен. HTML позволяет ломать вложенность тегов, но хитрожопые браузерные движки такое обрабатывают, а вот стандартным SAX-парсером не разобрать DOM быстренько, так как HTML, в отличие от XHTML, строгим подмножеством XML не является :(
У вас просто выплеск залежавшихся и достигших половой зрелости (далека история-то уже) эмоций, вероятно в закладках надежды возлагало :) Срочно выпить пива! Проидет.
>HTML позволяет ломать вложенность теговНу, с вложенностью тегов косячат только совсем зеленые нубы в верстке, да и то, как правило, недолго.
В любом случае, DOM приходится парсить в память целиком, потому что раз на раз не приходится и страничка очередного Васяна может оказаться всратой, а со строгим XML можно здорово сэкономить на памяти. Впрочем, железяки щас стоят много дешевле человеко-часов умеренно обученного кодераста, поэтому, кхе-кхе, живём.
> страничка очередного Васяна...скорее всего сделана на модном Bootstrap'е, в котором, при всей его костыльности, заложенной как основная идея, с валидностью HTML всё очень даже в порядке.
Васян с тобой не согласен, он парсит дом в уме, проверяя все тэги
Ну что-то подобное и заявлено:Hubbub is an HTML5 compliant parsing library, written in C.
...
Parses HTML, good and bad
...
на 16. html4.01 - это какой-то 2002й, dhtml.ru уже, наверное, написали.хотя, да, css2 - продвинутые ребята, стал быть. Правда, если приглядеться, там и с ним не все идеально ;-)
Зато без жабаскрипт! Который и в 2002м уже вовсю использовали хотя бы для минимальной валидации форм.
Не, какой-то жабоскрипт и в 3.8 наблюдается -- покрмере собирается оно именно с mozjs.PS: надо же, как раз на днях к ним на огонёк заглядывал -- не пропустил ли чего; оказывается, всего лишь поторопился %) Применяю вторым браузером на эльбрусе (третьим -- линкс, а четвёртому, похоже, не бывать, ну или всяко не в этом году).
а что первым?
52.9
> CSS 2.1 и частично HTML5Что из этих двух высер?
> Вот когда ты не можешь себе такого позволить, то это действительно печально.Завезли поддержку медиа в HTML5 и избавились от флеша - высер;
Завезли нормальную возможность построения блоков и перестали верстать сайты средствами, которые ваще для этого не предназначены - высер.
Пусть сразу завозят поддержку WebAssembly. JS - прошлый век!Ё
Поделка на коленке, которая не может нормально отображать большинство сайтов.
Наконец то появился достойный конкурент Mozilla Firefox. Удачи!
Говорите сразу: убийца Google Chrome!
Убийца dillo 3.0
В виде dildo 3.9
А пошто его под андроид нету ???
Посмотрел их рекомендации по стилю кода, https://www.netsurf-browser.org/developers/StyleGuide.pdf , обнаружил, что у них перед функциями обязательно комментарий ставить, ужаснулся.
Печально, но всеми этими альтернативными браузерами просто тяжело пользоваться из-за обилия багов и кривого отображения современный сайтов (даже без js).
Эх, поставил (3.8 ещё в арче), протащился. Думал, что нашёл браузер мечты, а он падучей болеет... на втором попавшемся сайтеnetsurf-gtk3: content/fetchers/curl.c:718: fetch_curl_initiate_fetch: Assertion `codem == CURLM_OK || codem == CURLM_CALL_MULTI_PERFORM' failed.
/bin/netsurf: line 7: 23483 Aborted (core dumped) /usr/bin/netsurf-gtk3 "$@"
Гм, у меня в падениях не замечен. Правда, он всё-таки вторым подрабатывает, а не основным -- обычно смотрит в collectd'овые данные...PS: патчик в 3.9 не успел, пойдёт уже в следующий: https://bugs.netsurf-browser.org/mantis/view.php?id=2617
out of memory
Конечно всё здорово, но вот как то без контрольных сумм, без gpg-подписи файла как то кхм...
Есть и плюс огромный, так хорошо летает на процессоре Intel Atom!