LINUX.ORG.RU

Избранные сообщения a1batross

Разгон Ryzen 2600

Форум — Talks

Купил кулер AMD Wraith MAX. В спецификации заявлено, что он может рассеивать до 140 W. Решил разогнать Ryzen 2600. Выставил частоту 4.1 Ghz и вольтаж 1.35V. Запустил стресс тест в CPU-Z. HVMonitor во вкладке Powers процессора показывает Max Package 115 W после получаса стресс теста и температуру 75 градусов. Это реальный TDP? Вольтаж я выставил в пределах идеального значения хз кем оно расчитано, но на сайте уверяют что в диапазоне 1.35-1.375V деградации ядра не будет. К моему великому стыду в электронике ничего не понимаю. Жду комментариев от знатоков.

 ,

tz4678 ()

Годный открытый софт для Android

Форум — Mobile

Зачем эта тема?

  • Не хотелось бы скатывать предыдущую тему в подборку софта
  • Годнота есть не только в F-Droid

Может быть эта тема окажется для кого-нибудь полезной.

Софт

Частично перенесён из темы по ссылке выше

  • MAPS.ME - навигация, использует OpenStreetMap. Maps - форк с вырезанной рекламой и трекерами.
  • Aegis - 2FA аутентификатор. Поддерживает импорт из других аутентификаторов (нужен root), установку пароля на вход (он же будет ключом к расшифровке). Бонусом гайд по подключению сторонних аутентификаторов к Battle.net.
  • ConnectBot - SSH клиент. Поддерживает SSH и Telnet.
  • oandbackup - открытый аналог TitaniumBackup
  • Scarlet Notes FD - замена Google Keep. Есть синхронизация (как я понял, для включения облачной синхронизации нужно установить версию из Google Play).
  • K-9 Mail - почтовый клиент, поддерживает шифрование OpenPGP (требуется OpenKeychain)
  • Nextcloud - клиент для Nextcloud
  • DAVx⁵ - синхронизация (вместо гуглокалендаря)
  • KDE Connect - интеграция телефона с Plasma (в какой-то момент ещё и с Gnome)
  • OsmAnd~ - навигация, использует OpenStreetMap, и насколько я помню, может использовать и другие источники карт. Приложение платное, полная версия находится в магазинах, ссылки на сайте. Переход на MicroG и немного свободного софта (комментарий)
  • andOTP - простой аутентификатор с возможностью экспорта/импорта и шифрования бэкапов
  • EDS Lite - клиент для работы с криптоконтейнерами VeraCrypt, TrueCrypt, LUKS. Полная версия находится здесь.
  • Password Store - клиент для pass
  • Shelter - песочница для изоляции приложений. Некоторые пишут, что приложение может окирпичить телефон, так что будьте аккуратнее.
  • Forecastie - прогноз погоды, использует OSM, есть погодная карта
  • Gadgetbridge - подключение умных часов и браслетов
  • Scrambled Exif - удаление EXIF из фотографий
  • Kiwix - выкачивание Википедии и некоторых других вики-сайтов и чтение их оффлайн
  • Vanilla Music - музыкальный плеер. Насколько я знаю, единственный поддерживающий теги в OGG Opus. По запросу «vanilla» в F-Droid находятся полезные дополнения.
  • Simple Mobile Tools - простые открытые реализации галереи, календаря, файлового менеджера, контактов, заметок, музыкального плеера, фонарика, калькулятора и других приложений
  • GameDealz - неофициальный клиент для сайта IsThereAnyDeal. Вкратце - поиск скидок на игры.
  • Phoenix for VK - открытый клиент для ВКонтакте. Полная версия платная, но можно собрать её самому. Есть опциональное e2e шифрование сообщений.
  • ClassyShark3xodus - сканирование всех приложений в системе на предмет трекеров. Использует базу Exodus Privacy.
  • Revolution IRC - клиент для IRC с неплохим интерфейсом
  • Bromite - форк хромиума, нацеленный на приватность и блокировку рекламы. Синхронизация, экономия данных и прочее - вырезано. Репозиторий для F-Droid - здесь. Имеет свой WebView с автоматической блокировкой рекламы.
  • Carnet - заметки. Поддержка синхронизации через Nextcloud.

Предлагаю дополнить список в комментариях.

 , ,

ozz_is_here_again ()

KWin теперь не тормозит

Форум — Talks

http://tildearrow.zapto.org/?p=announce&month=4&year=2019&item=kw...

Улучшения на глаз. Плазма теперь не только не падает.

 , , , ,

BceM_IIpuBeT ()

Инвайты в еще один инстанс Mastodon: lor.sh

Форум — Talks

Привет, котаны.

Недавно я узнал о таком проекте, как Mastodon, и таки решил поднять, о чем писал ранее.

Mastodon – это федеративный аналог Twitter на основе ActivityPub, протокола, разработанного консорциумом W3C. Вы можете общаться и «фолловить» пользователей с других серверов.

Интересная особенность Mastodon — наличие «ленты сервера», что помогает искать интересные посты от людей из комьюнити.

Кроме веб версии существует также множество клиентов, включая Android и GNU/Linux. Полный список можно посмотреть на сайте проекта.

Особенности сервера:

  1. Пингвины.
  2. Вариация на Tango в качестве основной темы.
  3. Отсутствие списков блокировки.
  4. Цензура отсутствует. Тем не менее, не следует постить очевидно противоправный контент, а также засирать ленту мусором — используйте для этого другие сервера.
  5. На данный момент регистрация доступна только по инвайтам (создание инвайтов доступно для пользователей).

Почему я просто не воспользовался другими инстансами?

  1. Мне хотелось, чтобы ядро пользователей было связано с ЛОР как комьюнити.
  2. Из предыдущего следует, что лента будет значительно интереснее, чем на любом случайном сервере.
  3. Меня не устраивали длинные доменные имена.
  4. Fediverse — это о том, чтобы инстансов было большее.

Непосредственно инвайт: https://lor.sh/invite/mEy2bknx

 , , , ,

jollheef ()

Есть тут любители funeral doom?

Форум — Talks

Затравка https://www.youtube.com/watch?v=eh6WnswoG8M
Рекомендуйте группы

 ,

bga_ ()

OpenBSD Foundation опять перевыполнил план по донатам

Форум — Talks

Год еще не закончился, а ребята уже собрали на $120k больше, чем планировали:

https://www.openbsdfoundation.org/campaign2018.html

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

 , ,

kirk_johnson ()

NVidia Optimus / Primus / Vulkan

Форум — Desktop

Привет, ЛОР!
Если ты не в курсе, то на онтопике в лэптопах в конфигурациях с двумя видеокартами (Intel+Nvidia) при использовании нормальных проприетарных драйверов и bumblebee/optirun — не работает Vulkan: https://github.com/Bumblebee-Project/Bumblebee/issues/769

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

Сабж: https://github.com/felixdoerre/primus_vk

Я скомпилировал, протестировал — действительно работает, однако, FPS в несколько раз ниже как в тестах, так и в игрульках.

Просьба счастливых обладателей ноутбуков с оптимусом скомпилять и проверить у себя (хотя бы в том же vulkan-smoketest) — сколько сантиметров выдаёт по сравнению с Интелем

Мои результаты:

Intel = 210 FPS
Nvidia + primus_vk = 40 FPS
Nvidia + nvidia-xrun (отдельный X-сервер) = 560 FPS

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

 , , , ,

annerleen ()

Релиз Revolution IRC 0.4.1 — свободный современный IRC-клиент для Android

Новости — Android
Группа Android

Revolution IRC — современный IRC-клиент для платформы Android в стиле Material design.

29 августа 2018 года состоялся релиз версии 0.4.0 и в тот же день состоялся релиз версии 0.4.1 с иправлением критической ошибки.

( Основные изменения... )

На текущий момент, это единственный активно развиваемый проект среди самодостаточных IRC-клиентов в репозитории F-Droid.

>>> Скачать исходный код (GitHub)

>>> Установить APK: F-Droid | Google Play

>>> Подробности

 , , ,

atsym ()

Компания Valve представила проект Proton для запуска Windows-игр в Linux

Новости — Open Source
Группа Open Source

Компания Valve представила проект Proton, в рамках которого на базе Wine подготовлено решение для запуска в Linux сборок игровых приложений, созданных для Windows. Цель проекта — обеспечить возможность запуска под Linux всех Windows-игр из каталога Steam. На данный момент объявлено о 100% поддержке 26 игр. Наработки проекта опубликованы под лицензией BSD (работа велась в тесном сотрудничестве с Wine и многие изменения уже перенесены в оригинальный Wine и сопутствующие проекты, такие как DXVK и vk3d).

В 2010 году компания Valve объявила о выпуске сервиса Steam Play, позволяющего при помощи единственного платежа получить доступ к играм для любой из трёх ОС: Windows, macOS и Linux. С тех пор более 3000 игр в каталоге Steam обзавелись версиями для Linux, и поддержка новых игр не прекращается и по сей день. На этом компания не остановилась, и два года назад началась работа по улучшению качества и производительности решений по запуску непортированных Windows-игр в Steam.

Большая часть наработок попала в Wine и другие проекты по обеспечению совместимости. Кампания так же занималась интегрированием этих решений в клиенте Steam. Результатом этой работы стала новая бета-версия Steam Play, которая включает модифицированную версию Wine под названием Proton, оптимизированную для запуска игр, собранных для Windows, без их модификации.

Возможности, которые предоставляет Proton, включают:

  • Запуск Windows-игр в Linux-клиенте Steam напрямую, включая полноценную поддержку Steamworks и OpenVR;
  • Реализации DirectX 11 (на базе DXVK) и 12 (на базе vk3d), работающие через трансляцию вызовов DirectX в API Vulkan, что позволяет снизить негативное влияние на производительность и улучшить совместимость с играми;
  • Улучшенная поддержка полноэкранного режима: игры, которые не поддерживают родное разрешение, будут автоматически растянуты на весь экран;
  • Улучшена поддержка игровых контроллеров: игры теперь должны работать со всеми устройствами, которые знает Steam;
  • Значительно увеличена производительность многопоточных игр по сравнению с оригинальным Wine (задействован набор патчей esync для улучшения поддержки многопоточных приложений в Wine).

( читать дальше... )

>>> Подробности

 , , , ,

newsbot ()

PisiLinux 1.2 и актуальный софт

Галерея — Скриншоты

Итак, сабж с ядром 3.19 и кедами 4.14. На снимке запущены appimage-пакеты с firefox 61 и inkscape 0.92 с gtk3. Я пользователь нетребовательный, поэтому все работает. Где-то в фоне еще есть azpainter, в котором отчего-то не рисуются произвольные линии.

Из привнесенного оформления лишь слегка модифицированная QTStep — тема Плазмы. Местами иконки Suru. Система запущена в VirtualBox.

Репозитории, кстати, живы. В две кнопки все обновляется и ставится из графического пакетного менеджера. Тем временем на github (да, два месяца как перенесли и все еще..) Pisi Linux 2.0 активная деятельность, не иначе, готовится корректирующий релиз.

>>> Просмотр (1600x900, 139 Kb)

 ,

Deleted ()

ЛОР, посоветуй VN

Форум — Talks

Сейчас прохожу Grisaia no Kaijitsu, следующая скорее всего будет Ever 17.

Из того, что уже играл - четыре тайпмуновские, двое врат штайна, ну и Saya no Uta.

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

Что взять еще?

 

slvrn ()

Веб как он есть

Форум — Talks

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

— Это теперь называется Front-End инженер, но да, я — именно он. Я работаю с вебом в 2016. Визуализации, музыкальные плееры, летающие дроны, которые играют в футбол, все что угодно. Я только что вернулся из JsConf и ReactConf, так что я знаю новейшие технологии для создания веб-приложений.

— Круто. Мне нужно создать страницу, которая отображает последние действия со стороны пользователей, так что мне просто нужно получить данные от REST и отобразить их в какой-то фильтруемой таблице, ну и обновлять её, если что-то изменится на сервере. Я думал, может быть, использовать JQuery для извлечения и отображения данных?

— О, Мой Бог! Нет! Никто больше не использует JQuery. Ты должен попробовать React: это — 2016!

— Интересно. Что такое React?

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

— Звучит заманчиво. Могу ли я использовать React для отображения данных с сервера?

— Ага, но сначала нужно добавить React и React DOM в виде библиотек.

— Подожди, почему две библиотеки?

— Ну, одна — это сама библиотека, а вторая — для манипулирования DOM, который ты теперь можешь описать в JSX.

— JSX? Что такое JSX?

— JSX — это просто расширение синтаксиса JavaScript, который выглядит очень похоже на XML. Это своего рода еще один способ описать DOM. Думай о нем, как об улучшенном HTML.

— Что случилось с HTML?

— Это 2016. Никто больше не пишет на сыром HTML.

— Ну хорошо. Если я добавляю эти две библиотеки, то я могу использовать React?

— Не совсем. Нужно добавить Babel, а затем можно использовать React.

— Другая библиотека? Что за Babel?

— О, Babel — это транспайлер, он позволяет ориентироваться на конкретные версии JavaScript, в то время как пишешь код в любой версии JavaScript. Тебе не обязательно добавлять Babel для того, чтобы писать на ReactJS, но если ты это не сделаешь, то ты застрял с ES5, ну а это 2016, ты должен кодить в ES2016+ как и все крутые чуваки.

— ES5? ES2016+? Я потерялся. Что за ES5 и ES2016+?

— ES5 означает ECMAScript 5. Это версия, на которую ориентируется большинство, поскольку она реализована в большинстве браузеров на сегодняшний день.

— ECMAScript?

— Да, знаешь стандарт JavaScript, который был основан в 1999 году после его первоначального выпуска в 1995 году? Тогда, когда JavaScript был назван LiveScript и только работал в Netscape Navigator. Это было очень запутано тогда, но, к счастью, теперь все ясно, и у нас есть 7 версий этой реализации.

— 7 версий. Серьезно. А ES5 и ES2016+ это?…

— Пятое и седьмое издание соответственно.

— Подожди, а что случилось с шестым?

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

— Хорошо. А зачем использовать ES2016+ над ES6 тогда?

— Ну, ты можешь использовать ES6, но для интересных штук, типа async и await, тебе нужно использовать ES2016+. В противном случае ты застрял с ES6 генераторами и сопрограммами для блокировки асинхронных вызовов и нормального управления потоком.

— Я понятия не имею, что ты только что сказал, и все эти имена запутаны. Слушай, я просто хочу загрузить кучу данных с сервера, просто подключить JQuery из CDN и просто получить данные с помощью AJAX. Почему я не могу сделать это?

— Чувак, это 2016. Никто не использует JQuery больше, это заканчивается кучей запутанного кода. Все же это знают.

— Ясно. Так что моя альтернатива — это загрузить три библиотеки для извлечения данных и отображения таблицы HTML.

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

— Понятно. А что за менеджер модулей?

— Определение зависит от окружающей среды, но для веба мы обычно подразумеваем все, что поддерживает модули AMD или CommonJS.

— Хорошооооо. А AMD и CommonJS это?…

— Определения. Есть куча способов, чтобы описать, как несколько библиотек и классов JavaScript должны взаимодействовать. Ты можешь написать несколько файлов JavaScript, определяющих API AMD или CommonJS, и использовать что-то вроде Browserify, чтобы связывать их.

— Хорошо, имеет смысл… наверное. А что такое Browserify?

— Это инструмент, который позволяет связать CommonJS описанния зависимостей для файлов, которые могут быть запущены в браузере. Он был создан, потому что большинство людей публикуют эти зависимости в NPM.

— NPM?

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

— Как CDN?

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

— О, как Bower!

— Да, но это 2016, сейчас никто больше не использует Bower.

— Хм, ясно… так мне нужно загрузить библиотеки из NPM?

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

— О, это как в Angular!

— Angular это слишком 2015. Но да. Angular тоже там есть, наряду с VueJS, RxJS и другими интересными библиотеками из 2016. Хочешь узнать о них?

— Давай придерживаться React, я уже узнал слишком много о нем. Так что, если мне нужно использовать React, я вытяну его из этого NPM, а затем использую Browserify?

— Да.

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

— Ага, именно поэтому ты используешь менеджер задач, типа как Grunt или Gulp, или Broccoli для автоматизации запуска Browserify. Ты даже можешь использовать Mimosa.

— Grunt? Gulp? Broccoli? Mimosa? Черт возьми, о чём мы говорим сейчас?

— Task менеджеры. Но они уже не такие крутые. Мы использовали их в стиле 2015 с Makefiles, но теперь мы перешли на Webpack.

— Makefiles? Я думал, что в основном это используется для C или C++ проектов.

— Ага, но, видимо, в вебе мы любим делать вещи сложными, а затем вернуться к основам. Мы делаем это типа каждый год. Ты подожди, через год или два мы еще запилим сборки (assemblies) в вебе.

— Пффф. Ты упомянул что-то под названием Webpack?

— Это другой менеджер модулей для браузера, в то же время он и своего рода Task менеджер. Это как улучшенная версия Browserify.

— ОК. А почему он лучше?

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

— Я очень запутался в этих CommonJS/ES6.

— Да все в этом запутались, но можешь больше не париться, потому что есть SystemJS.

— О, Боже, опять что-то-JS. Хорошо, а что это за SystemJS?

— Ну, в отличие от Browserify и WebPack 1.x, SystemJS представляет собой динамический модуль загрузчика, который позволяет связать несколько модулей в нескольких файлах, а не связывая их в один большой файл.

— Подожди, я думал, что мы хотели объединить наши библиотеки в один большой файл и загрузить его!

— Да, но из-за HTTP/2 несколько HTTP запросов на самом деле лучше.

— Стоять! Так чего же мы не можем просто добавить три оригинальные библиотеки для React?

— Ты, конечно, можешь добавить их в качестве внешних скриптов с CDN, но все равно нужно будет добавить Babel.

— Эх. И это плохо, не так ли?

— Да, придется включить полностью Babel-core, а это не будет эффективным для production. На production необходимо выполнить ряд предварительных задач, чтобы проект был полностью готов, а это ритуал, в сравнении с которым вызвать дьявола — это рецепт как сварить яйцо. Надо будет минимизировать файлы, сделать uglify, поиграться со стилями, подумать о загрузке скриптов…

— Понял, понял. Но если не скачивать библиотеки непосредственно с CDN, то как иначе?

— Я бы сделал транспайл из TypeScript с помощью комбо Webpack + SystemJS + Babel.

— TypeScript? Я думал, что мы пишем код на JavaScript!

— Typescript — это и есть JavaScript, или, лучше сказать, надмножество JavaScript. Более конкретно — JavaScript на версии ES6. Ну, та шестая версия, о которой мы говорили.

— Я думал, что ES2016+ — уже надмножество ES6! Почему нам сейчас нужен еще и TypeScript?

— Потому что это позволяет нам использовать JavaScript как типизированный язык и уменьшить количество ошибок во время выполнения. Это 2016, надо добавить некоторые типы в код на JavaScript.

— И TypeScript, очевидно, делает это.

— И Flow, хотя он проверяет только типы, в то время как TypeScript является надстройкой JavaScript, который нужно скомпилировать.

— Эээ… и Flow?

— Это — инструмент для проверки статической типизации, сделанный парнями из Facebook. Они написали его на OCaml, так как функциональное программирование является удивительно крутым.

— OCaml? Функциональное программирование?

— Ну это то, что сегодня юзают крутые пацаны, ну типа, знаешь, 2016. Функциональное программирование. Функции высокого порядка. Currying. Pure функции.

— Я понятия не имею, что это.

— Никто не понимает, в начале. Надо просто знать, что функциональное программирование лучше, чем объектно-ориентированное программирование, и это то, что мы должны использовать в 2016 году.

— Подожди, я учил ООП в универе, я думал, что это круто?

— Ну так было пока Oracle не купил Java. Я имею в виду, что ООП был хорош раньше, и его используют до сих пор, но теперь каждый понимает, что манипулировать состояниями эквивалентно пинанию младенцев, так что теперь все движется к immutable объектам и функциональному программированию. Ребята из Haskell уже 100 лет кричат об этом, и это я еще не упоминал Elm. Но, к счастью, в сети теперь у нас есть такие библиотеки, как Ramda, которые позволяют нам использовать функциональное программирование на простом JavaScript.

— Ты что, просто придумываешь имена? Что еще за Ramnda?

— Нет. Ramda. Как и Lambda. Ну, знаешь, библиотека Дэвида Чембера?

— Дэвида кого?

— Дэвида Чембера. Крутой чел. Один из авторов Ramda. Глянь еще работы Эрика Мейера, если серьезно относишься к изучению функционального программирования.

— А Эрик Мейер это?…

— Тоже функциональщик. Крутой чел. У него есть куча презентаций, где он в странной цветной футболке громит Agile. Еще глянь что делают Tj, Jash Kenas, Sindre Sorhus, Paul Irish, Addy Osmani…

— ОК. Притормози. Все это хорошо и прекрасно, но я думаю, что все это слишком сложно и ненужно для простой выборки данных и их отображения. Я уверен, что я не должен знать этих людей или все эти вещи, чтобы создать таблицу с динамическими данными. Давай вернемся к React. Как я могу извлечь данные с сервера в React?

— Ну, на самом деле для выборки данных не надо React, он отображает данные.

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

— Используй Fetch для получения данных с сервера.

— Использовать Fetch для выборки данных? Тот, кто называет эти вещи, нуждается в тезаурусе.

— О, да. Fetch это имя нативной реализации для выполнения XMLHttpRequests.

— О, AJAX.

— AJAX это просто запросы XMLHttpRequest. А Fetch позволяет делать AJAX на основе промисов, которые затем можно резолвить, чтобы избежать callback hell.

— Callback hell?

— Да. Каждый раз, когда выполняется асинхронный запрос, ты должен ждать его ответа, который заставляет добавить функцию внутри функции, которая называется пирамида callback hell.

— О, хорошо. А промисы решают эту проблему?

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

— И это можно сделать с помощью Fetch?

— Да, но только в некоторых браузерах, в противном случае необходимо включить Fetch polyfill или использовать Request, Bluebird или Axios.

— Сколько библиотек мне нужно знать, ради бога? Сколько из них?

— Это JavaScript. Тут тысячи библиотек, которые делают одно и то же. Мы знаем эти библиотеки. Наши библиотеки огрооооомные, а иногда мы добавляем картинки с Guy Fieri в них.

— Guy Fieri? Давай покончим с этим. Что эти Bluebird, Request и Axios делают?

— Это библиотеки для выполнения XMLHttpRequests, которые возвращают промисы.

— А методы AJAX JQuery не возвращают промисы?

— Мы больше не используем «J» в 2016. Просто используйте Fetch polyfill или Bluebird, Request или Axios. Затем управляй промисами с async, await и Бац!, у тебя правильный поток управления.

— Это третий раз, когда ты говоришь о await, но я понятия не имею, что это такое.

— Await позволяет блокировать асинхронный вызов, что позволяет лучше все контролировать во время получения данных и увеличивает читаемость кода. Это потрясающе, просто нужно, чтобы убедиться, что ты добавил stage-3 в Babel, или использовать синтаксис асинхронных функций и плагин transform-async-to-generator.

— Это безумие.

— Нет, безумие — что нужно перекомпилировать код TypeScript, а затем транспайлить его с Babel, чтобы использовать await.

— Шта!? Это не входит в TypeScript?

— Входит в следующей версии, но в версии 1.7 он только ES6, так что если хочешь использовать await в браузере, сначала нужно скомпилировать код TypeScript в ES6, а затем транспайлить с Babel в ES5.

— Я не знаю, что сказать.

— Слушай, это легко. Пиши весь код в TypeScript. Все модули, использующие Fetch компилируй в ES6, транспайль их с Babel с stage-3, и загружай с SystemJS. Если у тебя нет Fetch, используй polyfill, или Bluebird, Request или Axios, и обрабатывай промисы с await.

— У нас очень разные определения «легко». Так, с этим ритуалом я, наконец, получил данные и теперь я могу показать их с помощью React правильно?

— А приложение будет обрабатывать любые изменения состояния?

— Грр, я не думаю. Мне просто нужно отобразить данные.

— О, слава богу. В противном случае мне пришлось бы объяснить Flux и реализации, такие как Flummox, Alt, Fluxible. Хотя, если быть честным ты должен использовать Redux.

— Как же достали эти имена. Опять же, мне просто нужно отобразить данные.

— А, если просто отобразить данные, не надо начинать с React. Можно взять движок шаблонов.

— Ты шутишь, что ли? Думаешь, это смешно?

— Да я просто объяснил, что ты мог бы использовать.

— Стоп. Просто остановись.

— Я имею в виду, даже если просто использовать шаблонизатор, я бы все равно использовал комбо TypeScript + SystemJS + Babel на твоем месте.

— Мне нужно отобразить данные на странице, а не выполнить оригинальный фаталити Sub Zero из Мортал Комбат. Просто скажи мне, какой движок шаблонов использовать.

— Их много, с каким ты знаком?

— Уф, не могу вспомнить название. Это было давно.

— jTemplates? jQote? PURE?

— Не то. Еще один?

— Transparency? JSRender? MarkupJS? KnockoutJS?

— Другой

— PlatesJS? JQuery-tmpl? Handlebars? Некоторые люди до сих пор используют его.

— Может быть. А есть что-то похожее на последний?

— Mustache, underscore? Я думаю, что теперь даже у lodash есть шаблонизатор, но это своего рода 2014.

— Грр… возможно он был поновее.

— Jade? DustJS?

— Нет.

— DotJS? EJS?

— Нет.

— Nunjucks? ЕСТ?

— Нет.

— Чувак, никто не любит синтаксис CoffeeScript в любом случае. Jade?

— Нет, ты уже сказал Jade.

— Ну я имел в виду Pug. Я имел в виду Jade. Я имею в виду, Jade теперь Pug.

— Пф. Нет. Не помню. Какой из них ты бы использовал?

— Наверное, нативный ES6 template strings.

— Дай угадаю. Это требует ES6.

— Да.

— Который, в зависимости от того, какой браузер я использую требует Babel.

— Да.

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

— Да.

— Который, требует Browserify или Wepback, или, скорее всего, SystemJS.

— Да.

— Который, если это не Webpack, в идеале должен управляться Task runner-ом.

— Да.

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

— Да.

— А потом отправить это на обработку в Babel, если я хочу использовать await.

— Да.

— Так что я могу затем использовать Fetch, промисы и управление потоком и всю эту магию.

— Только не забудь polyfill Fetch, если он не поддерживается, Safari до сих пор не может справиться с этим.

— Знаешь что. Я думаю, мы закончим здесь. На самом деле, я думаю, я закончил. Я закончил с этим вебом и с JavaScript в целом.

— Хорошо, через несколько лет мы все будем кодить в Elm или WebAssembly.

— Я просто хочу вернуться к бэкэнду. Я не могу справиться со всеми этими изменениями, версиями, изданиями, компиляторами и транспайлерами. Сообщество JavaScript безумно, если оно думает, что кто-то может идти в ногу с этим.

— Понятно. Тебе тогда надо попробовать сообщество Python.

— Почему?

— Слышал о Python 3?

 , , , ,

StReLoK ()

В снапе нашли майнер

Форум — Talks

 , , ,

entefeed ()

Исходники System Shock открыли. Кто возьмется за портирование?

Форум — Talks

Сабж. Правда, это исходники Mac OS версии, притом трудночитаемые (эти лайнэндинги...).

 ,

Meyer ()

Онтопик

Галерея — Скриншоты

Как запустить PaleMoon на Windows XP?
А вот так!
Винда выполняет функцию ядра, дисплея, драйвера тачпада (windows версия более функциональна) и, разумеется X-сервера.
Пришлось так сделать из-за специфичного оборудования: SiS M650 в линуксе работает только с самосборным ядром (во всяких дебианах драйвер не собран и нужно дособирать модули), а 3d драйвера нет и не будет (я писать этот драйвер уж точно не буду)
К сожалению в colinux довольно старое ядро и проверять, работает ли оно с более новыми glibc мне лень, потому установлен precise.
С 2012 года в линуксах почти ничего хорошего не произошло, так что пусть остаётся. К тому же вероятно иксы будут использоваться по сети, а не локально.
Производительность иксов отличная, даже AIGLX работает.
После некоторого допила (-xkblayout us,ru -xkbvariant basic,winkeys -xkbopions grp:caps_toggle) работает русская раскладка в Xming
Из проблем - дурацкий драйвер для тачпада synaptic - прокрутку он делает путём поиска в текущем окне виндовой полосы прокрутки. Так что прокрутка не работает ни в одном приложении, использующем какой-либо тулкит вместо виндового gdi

Изначально хотел использовать windows 2000 для этих целей, но не смог завести драйвер RNDIS. И на xp он не подключался к андройдофону, пока не поставил обновление до SP3. Так бы потребление памяти системой было бы в разы меньше. Всего тут доступно 512 мегабайт

>>> Просмотр (1024x768, 241 Kb)

 ,

mittorn ()

Вопросы по C, и вообще.

Форум — Development

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

  1. Как лучше обрабатывать malloc == NULL? Игнорировать или кидаться аbort() не хочется, но обработать нужно, обрабатывать каждый вызов?
  2. Писать свои строки или есть библиотека? Строки хранить как utf8 или utf32?
  3. Динамические массивы, писать свои, есть готовые? Как находить оптимальный размер для увеличение массива при расширении, нужно ли вообще заранее выделять память?
  4. Куда лучше выводить ошибку? Можно в консоль, но на винде не прокатит вроде, плюс ничего не видно.
  5. Нормальная ли идея: Есть много строк по 3-16 символов, сделать MyMemAllocate который при выделении (64 > X) байт, выделяет память в уже аллоцированном буфере на пару мегабайт к примеру... А при MyMemRealloc(X > 64) перемещает память из этого буфера в системную кучу. Перед данными хранить байт отвечающий за тип кучи.
  6. Когда структуру нужно передавать через стек а когда по указателю?
  7. на x86_64 быстрее uint32_t или uint64_t?
  8. for(...;i != len;...) vs for(...;i < len;...)
  9. Всегда ли ((unsigned)0-1) == ((unsigned)0-1)?
  10. На чем быстро рисовать графику (картиночки, кнопочки)? SDL2 говорят медленный.
  11. Есть много текста, с разным шрифтом, разным размером. Как лучше такое рисовать? (ttf), нарисовать алфавит для каждого {размер+шрифт}, или нарисовать алфавит с очень большим размером а потом сжимать для буков меньшего размера? Рендерит кто нибудь TTF на видеокарте кстати?
  12. Есть много объектов с одинаковыми и неизвестными именами, делать отдельную структуру (в виде чего?) где будут храниться эти имена дабы не занимать память одинаковыми строками?
  13. Как лучше хранить значения key:value что бы быстро с ними работать?
    1. если значений мало,
    2. если значений много.
  14. Можно ли как то поставить обработчик на изменение участка памяти? Костыль, но нужно. (Win/Linux хотя бы)
  15. Актуальна ли для современных систем фрагментация кучи?
  16. Какие библиотеки есть для многопоточного? Что можно почитать? SDL_Thread тоже медленный?
  17. Вот допустим решил я распарсить INI файл, как лучше его читать? По линиям? Сразу весь? Проецировать?
  18. Библиотека для RegExp?
  19. Какие флаги для строгости компилятора юзать стоит? Я использую: -std=c89 -Wall -pedantic

Ну или можно книжку где это расписанно.

 , ,

linuhs_user ()

Android жалуется на нехватку свободного места при установке любого приложения

Форум — Mobile

Обновился до Android 7.
Раньше жил с парой свободных мегабайт и всё работало. После обновления package manager отказывается устанавливать приложения занимающие больше чем пара мегабайт если свободно меньше приблидительно 700 мегабайт. Как это исправить? Освободить место не предлагать - и так 500 мегабайт свободно.
Хотел поставить какой-нибудь клиент для matrix, но там похоже разрабам руки надо оторвать - всё весит 15-30 мегабайт. Откуда столько?

 ,

mittorn ()

Taisei Project 1.2

Новости — Игры
Группа Игры

Вышла новая версия Taisei Project, свободного клона и фан-игры серии Touhou Project. Как и официальные игры из серии, Taisei - это шутер в поджанре «пулевой ад», где основной упор сделан на избегание множества вражеских снарядов, движущихся красивыми узорами по всему экрану.

Из основных изменений в этом релизе:

  • Полностью оригинальное музыкальное сопровождение, близкое по стилю к официальным играм Touhou.
  • Множество новых звуковых эффектов.
  • Большие изменения в геймплее, касающиеся как способностей главных героинь, так и уровней, и конечно-же боссов.
  • Сюжет, диалоги, и концовки были полностью переписаны.
  • Множество спрайтов были заменены на новые, и все боссы теперь полностью анимированны.
  • Улучшена поддержка игровых контроллеров.

>>> Подробности

 , , ,

Akari ()

Защищаемся от Meltdown и Spectre

Форум — General

Привет

Предлагаю собирать инфу о Meltdown и Spectre.

Пока у меня получилось найти пару тестов своей системы, но мало информации о том, как защититься. И никакой конкретной информации о том как увидеть влияние на performance - все ограничиваются цифрами, но не тем как провести реальные тесты.

О чем говорим:

Spectre     - Variant 1 - 2017-5753 - Bounds Check Bypass
Spectre     - Variant 2 - 2017-5715 - Branch Target Injection
Meltdown    - Variant 3 - 2017-5754 - Rogue Data Cache Load
BranchScope -           -           - Attack on Directional Branch Predictor
(еще восемь - см. ниже)
LazyFP                  - 2018-3665 - Exploiting lazy FPU state switching
Wiki
8 новых уязвимостей

SpectrePrime, MeltdownPrime:
То, же что и Spectre, Meltdown, но использующие альтернативный способ восстановления данных из кеша, который увеличивает точность восстановления.
Считается что программные методы защиты от Spectre и Meltdown также защищают и от SpectrePrime и MeltdownPrime. А вот аппаратная защита должна отельно учитывать учитывать SpectrePrime и MeltdownPrime.
Источник: Opennet

BranchScope:
Напоминает второй вариант атаки Spectre но отличается способом создания условий для влияния на состояние блока предсказания переходов.
Метод был протестирован на процессорах Intel Sandy Bridge, Haswell и Skylake, и продемонстрировал уровень ошибок менее 1%.
Утверждается, что предложенный для Spectre V2 метод защиты (Retpoline) не эффективен против BranchScope, но для блокирования атаки предложен иной метод защиты, который может быть реализован как программно, так и на аппаратном уровне. По мнению компании Intel предложенная в обновлении микрокода техника защиты от первого варианта Spectre (на основе инструкции LFENCE) будет эффективна и для защиты от атаки BranchScope. Для защиты важных данных также могут применяться типовые криптографические методы защиты от утечки по сторонним каналам.
Больше деталей - на OpenNet.

LazyFP:
Через проведение атаки по сторонним каналам атакующий может определить значения регистров FPU, MMX, SSE, AVX и AVX-512, используемых другим процессом. Например, в данных регистрах могут содержаться параметры для криптографических вычислений и имеющий доступ к локальной системе злоумышленник может попытаться использовать их для определения ключа шифрования. При использовании систем виртуализации проблема может применяться для определения состояния регистров другой гостевой системы или другого процесса в текущей гостевой системе.
Больше деталей - на OpenNet, Intel, blog.cyberus-technology.de.

Уязвимые архитектуры:
- Meltdown - только Intel, притом практически все начиная с выпуска 1995 года (источник).
- Spectre - все процессоры с фичей speculative execution, то есть почти все современные процессоры, в т. ч. Intel, AMD, ARM, IBM Power, IBM System Z (источник).
- Еще 8 - подтверждено на Intel на AMD и ARM не тестировалось (источник).
- LazyFP - только процессоры линейки Intel Core. Не проявляется на чипах Intel Atom/Knights и CPU AMD.

Тесты на наличие уязвимостей:
- https://github.com/IAIK/meltdown/ - реальный эксплоит.
- https://github.com/speed47/spectre-meltdown-checker - это скорее проверяет наличие фиксо/mitigations в системе.
- https://github.com/tesla707/Spectreprime-attack - SpectrePrime реальный эксплоит - https://blog.cyberus-technology.de/posts/2018-06-06-intel-lazyfp-vulnerabilit... - здесь только куски эксплоита в разделе «The Attack», рабочие версии пока не опубликованы. Если знаете лучше или более полные - говорите.

Защита:
Meltdown
Для защиты активируется Kernel page-table isolation (KPTI, старое название - KEISER)
1. Обновление ядра до версий 4.14.12, 4.9.75, and 4.4.110 или выше (Gentoo Wiki)
2. Активировать Kernel/User page tables isolation в ядре - опция ядра CONFIG_PAGE_TABLE_ISOLATION (askubuntu.com) - доступно только для 64-битного ядра.
- Отключать, если не в ядре - с помощью параметра ядра nopti (источник) или echo 0 > /sys/kernel/debug/x86/pti_enabled (источник - Redhat). Нужно владельцам процессоров не-Intel (например, AMD), так как KPTI дает проседание по performance'у, а для AMD это не актуально, так как уязвимость затрагивает только Intel.
Патчинг компиляторов и гипервизоры не требуется.
Как я понял, это полностью устраняет проблему Meltdown.
Фичи процессоров process-context identifiers (PCID) и invalidate process-context identifiers (INVPCID) позволяет снизить проседание перформанса из-за включения KPTI (источник, источник, источник). Доступна только на процессорах Intel: PCID - некоторые Westmere family, Sandy Bridge, INVPCID - Haswell и выше (источник). Также требуется ядро 4.14.12 или выше (источник). Проверить наличие фич в процессоре можно в /proc/cpuinfo (источник)

Spectre
1. Подгрузка микрокода процессора - Intel Microcode update 01/08/2018
- Мануал для Gentoo
- Если я правильно понял, то критерий успеха подгрузки микрокода процессора с фиксом можно узнать так: grep -q "cpu_insecure\|cpu_meltdown\|kaiser" /proc/cpuinfo (askubuntu.com)
Но как я понял, микрокод есть не для всех процессоров, в частности нет для Core 2 Duo . Подозреваю что здесь полный перечень Интеловских процессоров, для которых есть обновление.
2. Поддержка на уровне ядра начиная с какой верии - непонятно):
- Indirect Branch Restricted Speculation (IBRS) (Как выставлять). Притом у него 2 режима, подробней здесь. как проверять/выставлять - Redhat. Но - создана новая атака
- Indirect Branch Prediction Barrier (IBPB) (SGX - Software Guard Extensions) - тоже описан здесь и здесь, как проверять/выставлять - Redhat. Но новая атака SgxPectre показывает что данный механизм не эффективен.
- STIBP - иногда упоминают (раз, два), но детальной информации вообще не нашел.
3. Патчинг компиляторов
- Для GCC:
- - Добавление опции -mindirect-branch, -mindirect-branch-loop, -mfunction-return, -mindirect-branch-register с которыми нужно перекомпилить... всё? Где скачать - непонятно. Насколько полно решают проблему - непонятно.
- - retpoline - добавление опции -mindirect-branch=thunk-extern. С ней нужно перекомпилить ядро с наложенным патчем (где скачать?). Пока есть для gcc 8 (mailing list) и gcc 7.3 (OpenNet, Phoronix); в планах портировать фикс gcc 6/5/4. Похоже, что для процессоров архитектуры Skylake и более поздних проблему решает не полностью (источник).
- LLVM - TBD
4. Патчинг гипервизоров - https://github.com/hannob/meltdownspectre-patches , раздел Virtualization Не ясно закрывает ли это проблему полностью.
- VirtualBox 5.2.6 и 5.1.32 (источник).
5. Патчинг браузеров (потому как уязвимость можно эксплуатировать даже через JavaScript):
- Chrome 63 - нужно включить опцию chrome://flags#enable-site-per-process ; в Chrome 64 включено по дефолту.
- Firefox 57.0.4 (источник)

LazyFP
- В ядре Linux защита была реализована ещё в феврале 2016 года, путём применения по умолчанию режима Eager FP (eagerfpu=on) и удаления возможности активации Lazy FP. Уязвимость затрагивает ядра Linux до версии 4.6 или системы с процессорами без поддержки инструкции XSAVE (до Sandy Bridge), в которых по умолчанию применялся режим Lazy FP. В старых ядрах Linux для защиты можно использовать опцию «eagerfpu=on», которая присутствует начиная с ядра 3.7.
Влияние на performance:
- Хороший отчет Redhat о том, какое проседание performance'а на каких операциях
- Бенчмарки Phoronix: разные режимы IBRS/IBPB, Spectre, Meltdown
. Как сказано выше, наличие PCID и INVPCID в процессорах делает проседание по performance'у меньше.
Методология (как проверить у себя) - TBD
- Конкретный софт: bind

В каких процессорах Intel какая защита релизована
Habr: Больше кофе, меньше кофеина: Intel 9th Gen (часть 1), искать глава «Исправления безопасности оборудования и программного обеспечения»

Открытые вопросы:
1. Ваш набор тестов на наличие уязвимостей Meltdown и Spectre
2. Ваш рецепт по фиксу
3. Как включать/выключать IBPB и STIBP?
4. Ссылки на патчи для компиляторов
5. Приведите тест (не результаты, а методику), который бы показал влияние на performance
6. Если покупать железо, как знать что оно не подвержено Meltdown и Spectre?

Пожалуйста, дополняйте информацию, особенно там, где написано TBD, где видите неточности или пробелы. Давайте вместе расставим точки над i и победим этот недуг.

 , ,

Kroz ()

Я не знаю как писать на «C» ¯\_(ツ)_/¯.

Форум — Development

Всем привет, ну начну с того что некоторое время назад решил писать своё поделие, ну вроде сервис в основе которого kore.io и в процессе появились потребности, система тестирования, HTML шаблонизатор, обработка utf-8 под мои потребности ну и то-ли NIH синдром то-ли спортивный интерес (не так важно) пишется всё самостоятельно (не без вашей помощи, за что спасибо), но в процессе так же задумался над переносимостью и... ребят я даже немного потерялся.

Порядок байт. Ну начнём с того что например для обработки utf-8 по всем фронтам побитовые сдвиги и чтение отдельных битов, ну вроде ладно чё, в чём проблема, а проблема например в том что порядок байт разный и что мне определять сначала что у меня sparc64 или i386 а потом уже с учётом этого читать байты с конца или с начала?

Атомарность. Ну хорошо 32bit умирает, но мне пофигу если я пишу библиотеку то я хочу что бы она работала везде, ладно у меня может не быть uint64_t и знание того что где то long 64bit, а где то 32bit и я могу смело (да?) писать unsigned long long и быть уверенным что в 64 битной системе это 64 а в 32 битной это тоже 64 но эмулируется через два 32битных инта и вот тут как бы уже нет гарантий что операции записи переменной или чтения отработают.

Вернусь к типам. Мне нравиться что у меня богатый выбор типов на все случаи жизни и конструкции для создания своих типов, а также смешанные типы (union). ладно я могу «впереди планеты всей» и иметь целевую платформу x86_64, а на остальных... ну ломается логика и х** с ними, но что будет когда придёт x86_128, не ржите я серьёзно если я использую (вынужден) в случае utf-8 использовать битовые операции каков вариант что снова придётся что-то менять. Ах да, касаемо тонны zise_t ptrdiff_t u/int8/16/32/64_t fast хераст и прочих что являются typedef от фундаментальных char/short/int/long/long long/ + signed/unsigned, я правильно понимаю что нет никакой разницы пишу ли я uint64_t или unsigned long long int ?

libc Эмм, с89/с99/с11 где то напрямую отказываются от поддержки стандарта msvc не хочет с99 реализовывать в полной мере, тоесть уже нет гарантий, ладно на дворе почти 2018 надо с11, но и тут glibc не имеет <threads.h> а musl имеет, как при этом всём гарантированно быть уверенным что у меня есть гарантия реализации стандарта. Как жить :D И да в случае если на какой либо системе нет <stdint.h> и я намеренно пишу unsigned long long int подразумевая (на данный момент) uint64_t это нормально?

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

Дайте советы если есть желание или почитать что что-бы просвятиться. У меня есть желание писать железный код, но чем больше я закапываюсь во всём этом тем меньше понимания как собственно его писать железно.

Выдыхаю ::) Ну и по традиции cast сишников i-rinat, beastie, ncrmnt, Iron_Bug, peregrine, xpahos, anonymous_incognito, ncrmnt, DELIRIUM.

 , , , ,

Deleted ()