LINUX.ORG.RU

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

YT-DLP, очевидное-невероятное

Статьи — Desktop

В последнее время ютуб затеял какую-то реорганизацию и стал убирать из некоторых своих видео формат 22 (720p, единый файл, не dash). Может я наговариваю, конечно, на ютуб, но формат best (720p) всегда был, имхо.


Оказывается есть возможность получать другую таблицу форматов, отличную от дефолтной. У yt-dlp есть параметр --extractor-arg "youtube:player_client=mediaconnect" ([youtube] Format 22 is only sometimes extracted for some videos #10206).
Дефолтная таблица форматов:

$ yt-dlp -F 'https://youtu.be/eUyr9MJnj4w' 
Extracting cookies from firefox
Extracted 1328 cookies from firefox
[youtube] Extracting URL: https://youtu.be/eUyr9MJnj4w
[youtube] eUyr9MJnj4w: Downloading webpage
[youtube] eUyr9MJnj4w: Downloading ios player API JSON
[youtube] eUyr9MJnj4w: Downloading player 5b22937f
[youtube] eUyr9MJnj4w: Downloading m3u8 information
[info] Available formats for eUyr9MJnj4w:
ID  EXT   RESOLUTION FPS CH │   FILESIZE   TBR PROTO │ VCODEC          VBR ACODEC      ABR ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        0    │                  mhtml │ images                                  storyboard
sb2 mhtml 80x45        1    │                  mhtml │ images                                  storyboard
sb1 mhtml 160x90       1    │                  mhtml │ images                                  storyboard
sb0 mhtml 320x180      1    │                  mhtml │ images                                  storyboard
233 mp4   audio only        │                  m3u8  │ audio only          unknown             Default
234 mp4   audio only        │                  m3u8  │ audio only          unknown             Default
139 m4a   audio only      2 │    1.32MiB   49k https │ audio only          mp4a.40.5   49k 22k low, m4a_dash
249 webm  audio only      2 │    1.30MiB   48k https │ audio only          opus        48k 48k low, webm_dash
250 webm  audio only      2 │    1.70MiB   63k https │ audio only          opus        63k 48k low, webm_dash
140 m4a   audio only      2 │    3.51MiB  129k https │ audio only          mp4a.40.2  129k 44k medium, m4a_dash
251 webm  audio only      2 │    3.51MiB  130k https │ audio only          opus       130k 48k medium, webm_dash
602 mp4   256x144     15    │ ~  2.33MiB   86k m3u8  │ vp09.00.10.08   86k video only
394 mp4   256x144     30    │    1.68MiB   62k https │ av01.0.00M.08   62k video only          144p, mp4_dash
269 mp4   256x144     30    │ ~  4.16MiB  154k m3u8  │ avc1.4D400C    154k video only
160 mp4   256x144     30    │    1.55MiB   57k https │ avc1.4D400C     57k video only          144p, mp4_dash
603 mp4   256x144     30    │ ~  4.18MiB  154k m3u8  │ vp09.00.11.08  154k video only
278 webm  256x144     30    │    2.35MiB   87k https │ vp9             87k video only          144p, webm_dash
395 mp4   426x240     30    │    2.70MiB  100k https │ av01.0.00M.08  100k video only          240p, mp4_dash
229 mp4   426x240     30    │ ~  5.70MiB  211k m3u8  │ avc1.4D4015    211k video only
133 mp4   426x240     30    │    2.35MiB   87k https │ avc1.4D4015     87k video only          240p, mp4_dash
604 mp4   426x240     30    │ ~  7.76MiB  287k m3u8  │ vp09.00.20.08  287k video only
242 webm  426x240     30    │    3.59MiB  133k https │ vp9            133k video only          240p, webm_dash
396 mp4   640x360     30    │    5.02MiB  186k https │ av01.0.01M.08  186k video only          360p, mp4_dash
230 mp4   640x360     30    │ ~ 11.41MiB  421k m3u8  │ avc1.4D401E    421k video only
134 mp4   640x360     30    │    4.13MiB  153k https │ avc1.4D401E    153k video only          360p, mp4_dash
18  mp4   640x360     30  2 │ ≈  7.64MiB  282k https │ avc1.42001E         mp4a.40.2       44k 360p
605 mp4   640x360     30    │ ~ 15.03MiB  555k m3u8  │ vp09.00.21.08  555k video only
243 webm  640x360     30    │    6.06MiB  224k https │ vp9            224k video only          360p, webm_dash
397 mp4   854x480     30    │    8.40MiB  310k https │ av01.0.04M.08  310k video only          480p, mp4_dash
231 mp4   854x480     30    │ ~ 15.17MiB  561k m3u8  │ avc1.4D401F    561k video only
135 mp4   854x480     30    │    6.09MiB  225k https │ avc1.4D401F    225k video only          480p, mp4_dash
606 mp4   854x480     30    │ ~ 20.80MiB  769k m3u8  │ vp09.00.30.08  769k video only
244 webm  854x480     30    │    8.50MiB  314k https │ vp9            314k video only          480p, webm_dash
398 mp4   1280x720    30    │   14.51MiB  536k https │ av01.0.05M.08  536k video only          720p, mp4_dash
232 mp4   1280x720    30    │ ~ 24.57MiB  908k m3u8  │ avc1.4D401F    908k video only
136 mp4   1280x720    30    │   11.09MiB  410k https │ avc1.4D401F    410k video only          720p, mp4_dash
609 mp4   1280x720    30    │ ~ 31.59MiB 1167k m3u8  │ vp09.00.31.08 1167k video only
247 webm  1280x720    30    │   13.61MiB  503k https │ vp9            503k video only          720p, webm_dash
399 mp4   1920x1080   30    │   24.33MiB  899k https │ av01.0.08M.08  899k video only          1080p, mp4_dash
270 mp4   1920x1080   30    │ ~ 73.64MiB 2721k m3u8  │ avc1.640028   2721k video only
137 mp4   1920x1080   30    │   39.45MiB 1458k https │ avc1.640028   1458k video only          1080p, mp4_dash
614 mp4   1920x1080   30    │ ~ 53.22MiB 1967k m3u8  │ vp09.00.40.08 1967k video only
248 webm  1920x1080   30    │   26.78MiB  990k https │ vp9            990k video only          1080p, webm_dash
616 mp4   1920x1080   30    │ ~131.47MiB 4858k m3u8  │ vp09.00.40.08 4858k video only          Premium
400 mp4   2048x1152   30    │   60.94MiB 2252k https │ av01.0.08M.08 2252k video only          1080p, mp4_dash
620 mp4   2048x1152   30    │ ~151.23MiB 5589k m3u8  │ vp09.00.50.08 5589k video only
271 webm  2048x1152   30    │   82.90MiB 3063k https │ vp9           3063k video only          1080p, webm_dash

Новая таблица форматов с единым файлом/потоком для 720p (и 1080p):

$ yt-dlp -F 'https://youtu.be/eUyr9MJnj4w' --extractor-arg "youtube:player_client=mediaconnect"
Extracting cookies from firefox
Extracted 1329 cookies from firefox
[youtube] Extracting URL: https://youtu.be/eUyr9MJnj4w
[youtube] eUyr9MJnj4w: Downloading webpage
[youtube] eUyr9MJnj4w: Downloading mediaconnect player API JSON
[youtube] eUyr9MJnj4w: Downloading m3u8 information
[info] Available formats for eUyr9MJnj4w:
ID  EXT   RESOLUTION FPS CH │  FILESIZE   TBR PROTO │ VCODEC        VBR ACODEC      ABR ASR MORE INFO
────────────────────────────────────────────────────────────────────────────────────────────────────────────
sb3 mhtml 48x27        0    │                 mhtml │ images                                storyboard
sb2 mhtml 80x45        1    │                 mhtml │ images                                storyboard
sb1 mhtml 160x90       1    │                 mhtml │ images                                storyboard
sb0 mhtml 320x180      1    │                 mhtml │ images                                storyboard
140 m4a   audio only      2 │   3.51MiB  129k https │ audio only        mp4a.40.2  129k 44k medium, m4a_dash
160 mp4   256x144     30    │   1.55MiB   57k https │ avc1.4d400c   57k video only          144p, mp4_dash
91  mp4   256x144     30    │ ~ 4.16MiB  154k m3u8  │ avc1.4d400c       mp4a.40.5
133 mp4   426x240     30    │   2.35MiB   87k https │ avc1.4d4015   87k video only          240p, mp4_dash
92  mp4   426x240     30    │ ~ 5.70MiB  211k m3u8  │ avc1.4d4015       mp4a.40.5
134 mp4   640x360     30    │   4.13MiB  153k https │ avc1.4d401e  153k video only          360p, mp4_dash
93  mp4   640x360     30    │ ~11.41MiB  421k m3u8  │ avc1.4d401e       mp4a.40.2
18  mp4   640x360     30  2 │ ≈ 7.64MiB  282k https │ avc1.42001E       mp4a.40.2       44k 360p
135 mp4   854x480     30    │   6.09MiB  225k https │ avc1.4d401f  225k video only          480p, mp4_dash
94  mp4   854x480     30    │ ~15.17MiB  561k m3u8  │ avc1.4d401f       mp4a.40.2
136 mp4   1280x720    30    │  11.09MiB  410k https │ avc1.4d401f  410k video only          720p, mp4_dash
95  mp4   1280x720    30    │ ~24.57MiB  908k m3u8  │ avc1.4d401f       mp4a.40.2
137 mp4   1920x1080   30    │  39.45MiB 1458k https │ avc1.640028 1458k video only          1080p, mp4_dash
96  mp4   1920x1080   30    │ ~73.64MiB 2721k m3u8  │ avc1.640028       mp4a.40.2

Как скачивать 720p (формат единым файлом/потоком):

$ yt-dlp -f 95 'https://youtu.be/eUyr9MJnj4w' --extractor-arg "youtube:player_client=mediaconnect" 

Как воспроизводить 720p (формат единым файлом/потоком):

$ mpv --ytdl-format=95 'https://youtu.be/eUyr9MJnj4w' --ytdl-raw-options=extractor-arg="youtube:player_client=mediaconnect" 


Кроме того:

  • Для mpv можно создать профиль [youtube] в mpv.conf, где прописать условие срабатывания на ютубных ссылках, типа profile-cond=path:match('youtu%.?be') ~= nil или profile-cond=path:find('youtu%.?be') (1).
    И добавив в профиль параметр ytdl-raw-options=extractor-arg="youtube:player_client=mediaconnect" и ytdl-format=95/best.
  • Для yt-dlp, чтобы при наборе команды в терминале мучительно долго не вспоминать указанную в начале заметки длиннющую опцию, можно создать алиас. В конфиге yt-dlp прописываем, как пример, --alias 95f '-f 95 --extractor-arg="youtube:player_client=mediaconnect"'. Теперь, чтобы скачать, пишем yt-dlp --95f 'https://youtu.be/eUyr9MJnj4w'.


Для чего все это надо?

  • минус издержки на склеивание dash-потоков видео и аудио средствами ffmpeg;
  • возможность отправлять ссылку на стандартный вывод (stdout) какого-либо плеера, например vlc;
  • плюс, оказывается, и для 1080p существует подобный формат единого файла.
  • лучшая отзывчивость при перемотке во внешнем плеере (возможно верно для всех hls и не зависит от таблицы форматов)

 ,

krasnh
()

Осваиваем STM32 снизу: часть 1 - подключаем и исследуем плату

Статьи — Разработка

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Все файлы можно взять тут.

В данной серии статей мы попробуем поработать с процессором STM32 с помощью GNU утилит, немного познакомимся с ассемблером и отладкой.

Примеры написаны для популярной платы blue pill, построенной на микроконтроллере STM32F103C8T6.

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

 ,

vbr
()

Vivaldi 6.5 для Android

Новости — Проприетарное ПО
Vivaldi 6.5 для Android
Группа Проприетарное ПО

Компания Vivaldi Technologies объявила о выходе новой версии браузера Vivaldi 6.5 для Android.

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

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

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

 , ,

Shpankov
()

Осваиваем STM32 снизу: часть 9 - подключаем libc

Статьи — Разработка

Часть 1 Часть 2 Часть 3 Часть 4 Часть 5 Часть 6 Часть 7 Часть 8 Часть 9

Часть 9: подключаем libc

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

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

 ,

vbr
()

Ventoy 1.0.67 с поддержкой загрузки образов с локальных накопителей

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

В утилите Ventoy, предназначенной для загрузки ОС ПК и ноутбуков с файлов образов различных дистрибутивов, добавлена полноценная поддержка загрузки файлов ISO/WIM/IMG/VHDx/EFI напрямую с локальных накопителей без необходимости их копирования на загрузочную флешку (клавиша F2 на загрузочном экране Ventoy).

Инструкция по локальной загрузке с использованием специально подготовленных vlink-файлов

Ventoy — это кроссплатформенная утилита для Linux и Windows, созданная с целью заменить такие утилиты как Rufus, UNetbootin, balenaEtcher, ROSA Image Writter, Mac Linux USB Loader, mintstick и прочие проекты, часть из которых заброшена. Поддерживается загрузка образов Windows, WinPE, Linux, ChromeOS, Unix, VMware, и другие. Программа распространяется по лицензии GPLv3.

Ventoy поддерживает таблицы разделов MBR и GPT, Legacy Bios Boot, UEFI, Secure Boot, автоустановочные сценарии для Ubuntu, Debian, RedHat, SUSE и Windows.

В случае, когда необходимо часто создавать загрузочные флешки для различных ОС, использование Ventoy вместо традиционных утилит «Image Writer», поставляемых в составе многих популярных дистрибутивов, продлевает срок службы носителей, так как требует однократной установки, без необходимости постоянного затирания начальных секторов устройства и/или пересоздания таблицы разделов. Для установки Ventoy на флешку предлагается графический интерфейс на GTK3/Qt5. В процессе установки создается раздел exFAT с максимальным размером устройства, на который достаточно просто скопировать ISO файл ОС (НЕ используя утилиты вроде dd, cat). Этим же разделом можно продолжать пользоваться как обычно для хранения/копирования данных без повреждения работоспособности установленной на флешку Ventoy.

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

 , , ,

bhfq
()

Простая и лёгкая реализация UDP/IP для микроконтроллеров

Новости — Hardware and Drivers
Группа Hardware and Drivers

Ориентирована на применение в системах, где микроконтроллер выступает в роли UDP сервера, с которым извне устанавливает «соединение» клиент (да, само по себе UDP соединений не имеет, я знаю):

  • Библиотека полностью событийно-ориентирована.
  • Не надо писать никаких структур состояния приложения.
  • Нет сокетов – только коллбэки на событие прихода пакета.
  • Всего 890 строчек кода.
  • Поддерживается ARP ответ, ICMP ответ, UDP.
  • Имеет ARP таблицу, заполняемую от входящих IP пакетов. При отправке IP пакета, если MAC адрес не найден, то библиотека шлёт IP с широковещательным MAC.

Не поддерживаются:

  • ARP запросы;
  • ICMP запросы;
  • маршрутизация;
  • DHCP;
  • DNS.

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

 , ,

cvs-255
()

Удалить файлы с кракозябрами в именах

Форум — General

Добрый день! При распаковывании архива получил пару файлов и пару директорий с кракозябрами вместо имён (видимо содержимое архива была в cp1251 или какой-то другой Windows-кодировке). Вот так это выглядит в Dolphin (файловый менеджер KDE) и вот так в терминале. Когда пробую удалить в Dolphin получаю сообщение The file or folder does not exist и то же самое при попытке переименовать. Пробовал набрать в терминале rm -rf path_to_file (благо там вопросительными знаками обработалась часть), но безрезультатно. Как можно избавиться от этих артефактов?

 , , , ,

Hasek
()

BuguRTOS-4.0.0

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

Седьмого января 2019 года вышла встраиваемая операционная система реального времени BuguRTOS-4.0.0.

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

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

 , , ,

shkolnick-kun
()

Вышла Haiku R1/beta1

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

После 6 лет разработки вышла первая бета-версия операционной системы Haiku.

Haiku - операционная система, нацеленная на воссоздание существовавшей в 1994-2000 годах системы BeOS.

С момента вышедшей в 2012 году версии R1/alpha4, в систему было внесено множество изменений. Вот некоторые из них:

  • Добавлен пакетный менеджер HaikuDepot, позволяющий легко устанавливать и удалять приложения;
  • В систему включён по умолчанию браузер WebPositive, переведённый на движок WebKit и поддерживающий большинство современных сайтов;
  • Полностью переписан интерфейс управления сетевыми соединениями, доведена до ума поддержка wifi;
  • Добавлена поддержка потокового видео, как в браузере посредством HTML5, так и в нативном медиаплеере;
  • Добавлена поддержка GPT;
  • Обновлены драйверы Ethernet/WiFi, и множество других;
  • Существенно улучшена работа 64-битной версии системы;
  • Закрыто более 11000 багрепортов.

Не так давно в Haiku OS был портирован LibreOffice.

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

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

 , , ,

stav_artefakt
()

Релиз mtCellEdit 3.2 — свободный минималистичный редактор электронных таблиц (+ набор утилит)

Новости — Open Source
Релиз mtCellEdit 3.2 — свободный минималистичный редактор электронных таблиц (+ набор утилит)
Группа Open Source

mtCellEdit (Ced, Mark Tyler's Spreadsheet Program) — свободный кроссплатформенный минималистичный редактор электронных таблиц, разрабатываемый Марком Тайлером, автором графического редактора mtPaint. Код программы написан на языках C и C++, а для построения графического интерфейса используется тулкит Qt4 (или Qt5, опционально).

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

Стандартный формат документов для mtCellEdit — *.TSV.ZIP (набор текстовых файлов TSV, CSV и других внутри ZIP-архива; подобие ODF).

The default file format mtCellEdit uses is portable and transparent as it is a ZIP file containing TSV text files. I deliberately designed it this way so that data can be extracted and read by any modern spreadsheet program on any operating system without requiring mtCellEdit. Over the years I have been frustrated by binary and XML formats that make data only accessible via a single program (or by me wasting time manually converting each file, or by me writing a file format conversion program). This format ensures that my data never becomes stranded, and can be manipulated by whichever tool I choose for a particular job (i.e. spreadsheet programs, text editors, command line tools, etc).

Кроме mtCellEdit, в пакете исходного кода поставляется и набор разнообразных утилит:

  • mtCedCLI — интерактивный консольный редактор электронных таблиц. Набор функций, идентичный функциям mtCellEdit, но с CLI-интерфейсом (с использованием GNU readline).
  • mtCedUtils — набор консольных утилит для работы с текстовыми электронными таблицамми on text based spreadsheets (т.е. для работы с файлами TSV и CSV).
  • mtPixy — графический редактор растровой (пиксельной) графики и палитр. mtPixy можно использовать для создания PixelArt.
  • mtPixyCLI — интерактивный консольный редактор растровой (пиксельной) графики. Набор фукнций, идентичный функциям mtPixy, но с CLI-интерфейсом (с использованием GNU readline).
  • mtPixyUtils — набор консольных утилит для работы с файлами изображений.
  • mtRaft — графическая программа для анализа содержимого директорий.
  • mtDWCLI — интерактивная консольная программа для создания высококачественных рандомных данных, managing one time pads, шифрования/дешифрования файлов и использования стеганографии для хранения файлов внутри файлов PNG или FLAC (по принципу RARJpeg).
  • mtNetLog — очень простой консольный логгер сетевой активности.
  • mtRDC — консольная программа которая генерирует файлы со случайными данными (т.е. пароли, матрицы, and binary one time pads).
  • mtEleana — графическая программа для изучения результатов выборов в Соединённом Королевстве в период 1945-2015гг.

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

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

 , mtcelledit, , ,

atsym
()

Мультиязычность в Laravel 5

Форум — Web-development

Приветствую!

Возникла необходимость склепать несколько сайтов небольшого размера. Начал читать доки по Laravel 5. Идеология вроде достаточна понятна. Решил начать с того, что хочу смастерить в самом начале шаблон мультиязычного сайта. Нашел статью по этому вопросу. Прочитал - тоже все понятно. Но возникли вопросы по статье:

1) Автор статьи решил использовать middleware-решение. В комментах ему посоветовали другой вариант - просто использовать локаль в маршрутах. А автор статьи, и комментирующий обозвали друг друга огородостроителями :-) Кто из них прав? Если оба неправы - то как правильно?

2) Автор статьи в своем решении в некоторых местах парсит URL, потом его склеивает. А нельзя ли это решение упростить? А именно, прописывать в маршрутах URL без языка, до обработки брать текущую локаль из куков, и вставлять язык из куков или по умолчанию и отправлять на последующую обработку? Мне кажется, если получится избавиться от парсинга/склейки URL, то будет кода по-меньше. Ваше мнение?

И вопрос не по статье

Как посоветуете организовать хранение в БД мультиязычных материалов? Например различных новостей, событий, галлерей ... & etc.

 

Majestio
()

Что-то в этом вебе слишком много всего

Форум — Web-development

Хочу вот освоить веб, дабы зарабатывать на хлеб насущный. До этого зарабатывал на Delphi + разные SQL ну и баловался лиспом. Но всё это сейчас кормит довольно плохо.

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

Путём анализа stateofjs.com, rabota.yandex.ru и опроса населения получается как-то так:

bootstrap 3 + react + expressjs + webpack + nodejs + webstorm + babel + mysql

Есть ещё какие-то компиляторы для CCS, но до этого я пока не докопался даже.

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

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

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

Правильно ли выбрал направления развития? А то я тут начитался, что всё это хипстота и что PHP+html+jquery - это наше всё.

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

 

den73
()

4 вопроса про C++ UB

Форум — Development

ничего не знаю ни о С++ или даже о С, но из любопытства возникли вопросы. может быть кому-то будет не трудно кратко ответить.

1. вот тут говорят что в С++ некое UB. если стандарт не определяет поведение для какого-то случая, то он явно это делает? т.е. там сказано типа «when X then Y must happens, in any other case - UB»? или же UB — это просто всё то, что не покрыто стандартом («а вот об этом там ничего не сказано»)?

2. регламентирует ли стандарт scope UB? или как это сказать, рамки последствий от инструкций, результат которых не определен? к примеру, в программе используется конструкция с UB, в результате чего обнулилась совсем не относящаяся к вопросу память и арифметика стала работать неправильно и т.д. гипотетический компилятор, который такую программу скомпилировал - он формально соответствовал Стандарту С++ ? или же стандарт строго очерчивает область в которой могут наблюдаться произвольный эффект?

3. что сам стандарт говорит о компилиуемости кода с неопределенным поведением? предписывает ли стандарт компилятору (претендующему на полное соответствие стандарту) отвергать код, последствия которого (даже если они имеют строго очерченные рамки) не определены стандартом?

4. возможно ли теоретически построить такой компилятор, который бы допускал инструкции с UB, но гарантировал бы отсутствие вреда от них через пресечение использования их результатов. пример: в точке A вы пишете конструкцию с у которой часть эффекта определена, а часть - UB, и всё работает нормально. но где-то далее вы добавили код (точка B) для определения результата которого необходимо использовать ранее полученный эффект из A (который UB). и вот уже такую компилятор отвергает сразу (либо останавливает ее в рантайме). ведутся ли такие разработки?

 

thomasbug
()

Тест на codility.com

Форум — Job

Работадатель( иностранный и довольно известный (не мелкомягкий) ) просит пройти тест на codility.com . Подскажите вменяемые туториалы или что то подобное по его прохождению с хорошими результами ?

P.S Сейчас опять штудирую , Вирта и Кнута(его частично ,ибо всего читал довольно давно и заново читать надо много времени ) + тестовые задания ( типа этого тоже https://codility.com/public-report-detail/ ) на самом сайте тоже делаю.

 

pinachet
()

CakePHP плюсы, минусы, грабли и вилы

Форум — Web-development

Вопрос по сабжу.

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

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

У кого есть опыт работы с пирожёнкой, каковы впечатления?!

 , ,

Twissel
()

система для сборки с зависимостями для C++

Форум — Development

Нужна система для сборки с зависимостями для C++

В других технологиях есть альтернативы:
Maven - Java
Pip & Eggs - Python
Gems - Ruby
CPAN - Perl
cabal - Haskell
CTAN - TeX

Попробовал найти что-то подобное для Крестов, но с первого захода не осилил :(

Хотелось бы что-то Maven-like: XML с декларативным описанием зависимостей (исходников и бинарников) и описанием настроек сборки.

Важно:
- кроссплатформенность (Lin, Win, OSX) и возможность запускать из голой консоли
- зависимости должны лежать в интернете
- в том числе пред-собранные, без исходников, отдельно для каждой платформы/компилятора/...
- сборка через что-нибудь адекватное типа cmake
- удобная настройка выхлопа под разные дистрибутивы (на лине - использование системных либ, на шиндовсе и маке - «всё своё тащу с собой»)
- очень желательна искоробочная работа с гитхабом и другими подобными источниками (чтобы не поднимать свой сервер для работы с непубличными артефактами)

В качестве точки отсчёта, предлагаю считать за компиляторы только GCC-Linux, Clang-OSX и MSVS-Windows в «текущей» версии стандарта C++ (общяя часть для всех этих компиляторов) c cmake в качестве бэкенда сборки - всё остальное ненужно.

Спасибо за годные советы! С меня как всегда - ничего :3

 , ,

stevejobs
()

Посоветуйте монитор

Форум — Linux-hardware

Посоветуйте монитор, стоимостью до 13000руб.

 

nekromantos
()

Посоветуйте книги/учебники по OpenGL

Форум — Development

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

 ,

CatsCantFly
()

Открыт исходный код статического анализатора Infer

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

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

В настоящее время Infer умеет обнаруживать следующие проблемы в программах, написанных на C, Java и Objective-C:

  • разыменование NULL-указателей;
  • утечки памяти и ресурсов.

Исходный код Infer написан на языке OCaml и распространяется на условиях лицензии BSD.

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

 , ,

ymn
()

Разработка на PHP в vim

Форум — Web-development

Настроил отступы, поставил phpctags и плагины vim-php/tagbar-phpctags.vim и shawncplus/phpcomplete.vim. Плагин keith/investigate.vim ищет документацию в браузере. Syntastic проверяет синтаксис.

А как настраиваете vim для разработки на PHP вы?

 ,

opennota
()