Добрый день, Хабравчане! Статья для новичков, каких то сверх новых идей вы здесь не увидите. Да и данный функционал, скорее всего, реализовывался десятки раз на различных языках. Идея состоит в том, что бы получив ссылку на пост в твиттере в котором содержится видео, забрать это видео и конвертировать в mkv.

Программирование *
Искусство создания компьютерных программ
10 Git-команд, которые стоит знать разработчику

В этой статье мы обсудим разные Git-команды, которые могут оказаться полезными для разработчика или специалиста по Big Data. Вы узнаете, как проверять, удалять и приводить код в порядок. А еще рассмотрим способы выхода из Vim и экономию времени с помощью псевдонимов Bash и конфигурации редактора Git.
Веб скрапинг для веб разработчиков: краткое резюме

Многочисленные ресурсы рассказывают об единственно верном методе извлечения данных с веб-страницы. Но реальность такова, что для этого можно использовать несколько решений и инструментов.
- Какие есть варианты программного извлечения данных с веб-страницы?
- Плюсы и минусы каждого подхода?
- Как использовать облачные ресурсы для увеличения степени автоматизации?
Статья поможет получить ответы на эти вопросы.
Выпуск Rust 1.33
Команда разработчиков Rust рада сообщить о выпуске новой версии Rust, 1.33.0. Rust — это язык программирования, который дает возможность каждому создавать надежное и эффективное программное обеспечение.
Если у вас установлена предыдущая версия Rust с помощью rustup
, то для обновления Rust до версии 1.33.0 вам достаточно выполнить:
$ rustup update stable
Если у вас еще не установлен rustup
, вы можете установить его с соответствующей страницы нашего веб-сайта. С подробными примечаниями к выпуску Rust 1.33.0 можно ознакомиться на GitHub.
Что вошло в стабильную версию 1.33.0
Основные улучшения этого выпуска: значительное расширение возможностей const fn
и стабилизация нового Pin API.
Расширение возможностей const fn
const fn
теперь умеет гораздо больше, а именно:
- безусловное (irrefutable) сопоставление с образцом (например,
const fn foo((x, y): (u8, u8)) { ... }
) let
привязки (например,let x = 1;
)- изменяемые
let
привязки (например,let mut x = 1;
) - выражения присваивания (например
x = y
) и операторов присваивания (например,x += y
), включая присваивание проекциям (например, полю структуры или результату оператора индексирования —x[3] = 42
) - инструкции выражений (expression statements) (например,
3;
)
Применение смарт-аккаунтов Waves: от аукционов до бонусных программ

Блокчейн часто ассоциируется лишь с криптовалютами, но области применения технологии DLT значительно шире. Одно из самых перспективных направлений для применения блокчейна – смарт-контракт, выполняющийся автоматически и не требующий доверия между сторонами, его заключившими.
RIDE – язык для смарт-контрактов
Waves разработала специальный язык для смарт-контрактов – RIDE. Его полная документация находится здесь. А вот – статья на эту тему на Хабре.
Контракт на RIDE является предикатом и возвращает на выходе «true» или «false». Соответственно, транзакция либо записывается в блокчейн, либо отвергается. Смарт-контракт полностью гарантирует исполнение заданных условий. Генерация транзакций из контракта в RIDE на данный момент невозможна.
FunTech iOS-meetup #1

Приглашаем вас на первый FunTech iOS-meetup, который пройдёт 23-го марта в Москве.
Программа
«Крутим RunLoop. Как устроена лента ВКонтакте», VK, Александр Терентьев
В своём докладе Александр расскажет о том, с какими задачами и проблемами при реализации сложных коллекций возможно столкнуться. Объяснит причины «тормозов» при анимации скролла и как их исправить. Приоткроет тайну, как реализован один из самых важных и популярных разделов приложения ВКонтакте — лента новостей.
Рассылка Push-уведомлений с SpringBoot сервера
Предисловие
Приветствую Вас. Недавно передо мной стала задача — настроить Push-уведомления на сайте. С этим я столкнулся впервые и во много разобраться мне помогла эта статья. В ней же уже есть описание серверной стороны, но, в процессе изучения данной темы я обнаружил более удобный способ реализации средствами самой библиотеки Firebase. Собственно, о нем я и хотел бы вам рассказать, т.к. внятного объяснения в интернете мне не удалось найти.
Также данная статья может быть полезна программирующим на Node.js, Python и Go, поскольку библиотека есть и на этих языках.
Mayhem — машина, способная находить уязвимости в программах и исправлять их
Программа заняла первое место в конкурсе Cyber Grand Challenge от DARPA, посвящённом автоматизации этичного взлома
В 2011 года, когда инвестор Марк Андриссен сказал, что «программы поедают мир», эта идея была свежей. Сейчас очевидно, что ПО проникает во все аспекты наших жизней. От сложных электронных устройств типа медицинского оборудования и робомобилей до простейших, вроде лампочек, подсоединённых к интернету и термометров – нас окружает ПО.
А это значит, что мы уязвимы для атак на это ПО, как никогда раньше.
Композитный «datasource»-объект и элементы функционального подхода
UICollectionView
с определенным типом ячеек одну ячейку совершенно другого типа, причем делать это лишь в особенном случае, который обрабатывается «выше» и никак не зависит от UICollectionView
напрямую. Задача эта породила, если мне не изменяет память, пару-тройку уродливых if
-else
-блоков внутри методов UICollectionViewDataSource
и UICollectionViewDelegate
, которые благополучно осели в «production»-коде и, наверное, никуда оттуда уже не денутся.В рамках упомянутой задачи смысла продумывать какое-либо более элегантное решение, тратить на это время и «думательную» энергию, не было. Тем не менее эта история мне запомнилась: я размышлял над тем, чтобы попробовать реализовать некий «datasource»-объект, который бы мог составляться из любого числа других «datasource»-объектов в единое целое. Решение, очевидно, должно быть обобщенным, подходить для любого числа составляющих (включая ноль и один) и не зависеть от конкретных типов. Оказалось, что это не только реально, но и не слишком сложно (хотя сделать код при этом еще и «красивым» – немного труднее).
Жизнь на частицах
Классический пример системы с простыми правилами и сложным поведением — клеточные автоматы, именно на них я и ориентировался, пытаясь подобрать правила. Конечно же, для клеточных автоматов правила будут в большинстве случаев проще. Но частицы могут быть красивее!
Под катом много мегабайт гифок.

Унифицированная обработка ошибок (C++ вариант для микроконтроллеров)
std
не совсем подходят для реализации в микроконтроллере. Существуют также некоторые ограничения в использовании динамически выделяемой памяти, RTTI, исключений и так далее. В общем случае, чтобы писать компактный и быстрый код нельзя просто так взять библиотеку std
и начать пользоваться, скажем операторами типа typeid
, потому что необходима поддержка RTTI, а это уже накладные расходы, хоть и не очень большие.Поэтому иногда приходится изобретать велосипеды, чтобы выполнить все эти условия. Таких задач немного, но они есть. В данном посте, хотелось бы рассказать про вроде бы как простую задачку — расширить коды возврата существующих подсистем в ПО для микроконтроллера.
Повышаем производительность в компонентах-функциях React с помощью React.memo ()

Новые языки программирования незаметно убивают нашу связь с реальностью

Однажды настанет день, когда команды в программировании будут выглядеть вроде «эй, компьютер, сделай-ка мне вот эту хреновину».
Что там будет под капотом, ни одна живая душа уже не поймет. Команда «хреновина» интерпретируется в абзац с описанием, который интерпретируется в ключевые слова, который интерпретируется в набор векторных обозначений, который интерпретируется в какой-нибудь С, который скомпилируется в…
и где-то там внизу превратится в электрические импульсы на железяках.
Программистами станут лощеные гуманитарии с «высокими вербальными способностями, коммуникативными навыками и умением быть няшей в команде». Слава богу до этого дня, как до Аляски на упряжке, но каждый раз изобретая очередной Kotlin, мы этот день приближаем.
Просто я задумался — а не стали ли наши ЯПы уже чем-то таким? Чуть более умным эквивалентом фразы «компьютер, сделай хреновину». Кучей формализованных протоколов для электричества, про которое мы уже забыть забыли. Штукой, которая все сильнее рвет нашу связь с механической реальностью.
Я часто слышу фразу: «Фил, отступись, хватит думать обо всякой чепухе». Но блин, будь проклят тот день, когда на Хабре напишут «хватит думать».
Ближайшие события
Стажировки для разработчиков в Авито: боевые задачи и работа с опытными наставниками
Почему работа в боевых проектах высоконагруженной разработки для новичка зачастую лучше короткой летней практики? Почему личный контакт с наставником — залог успешного входа в профессию? И какие они, стажировки для начинающих разработчиков в Авито? В этой статье я отвечаю на все эти вопросы, рассказываю о впечатлениях наставников и стажёров и анонсирую новые стажёрские вакансии в Авито.
RxJava2 + Retrofit 2. Модифицируем адаптер для обработки состояния отсутствия интернета на Android

Довольно часто необходимо делать повторные запросы в сеть, например, когда у пользователя не было интернета и он захотел получить данные из интернета. Неплохо бы было заново кинуть запрос при его появлении. Хорошая практика — показать пользователю определенный UI, который объяснил бы ему что произошло и позволил бы заново кинуть запрос. Добавление такой логики может быть довольно болезненной, особенно, когда у нас огромное множество ViewModel классов. Конечно, можно реализовать логику резапросов в каждом ViewModel классе, но это не удобно и возникает огромная вероятность появления ошибок.
Как решает типичные проблемы программист Google

От переводчика: публикуем для вас перевод статьи Стива Меррита, сотрудника Google, который рассказывает о том, как он решает типичные проблемы программирования. Пост будет полезен, в первую очередь, начинающим программистам.
В этой статье я расскажу о своей стратегии решения проблем, возникающих в ходе работы над проектом, от старта до финиша. Я использую ее в ежедневном рабочем процессе в Google, а также при работе с кодерами любых уровней (коллегами, выпускниками bootcamps, студентами университетов). Структурированная методика минимизирует затраты времени на отладку и одновременно приводит к созданию более качественного кода.
Кстати, эта же стратегия зачастую срабатывает в ходе собеседований в крупных технологичных корпорациях. Три года назад я получил работу в Google благодаря ей.
Анонсирован Dart 2.2: более производительный машинный код, поддержка Set литералов
Сегодня (26 февраля 2019) мы объявляем о выпуске Dart 2.2 SDK — обновления для Dart 2, которое предлагает улучшенную производительность ahead-of-time (AOT) кода и поддержку Set литералов.

freetype 2 и opengl пишем текст
Функциональное мышление. Часть 9
Это уже 9 часть серии статей по функциональному программированию на F#! Уверен, на Хабре существует не очень много настолько длинных циклов. Но мы не собираемся останавливаться. Сегодня расскажем про вложенные функции, модули, пространства имен и смешивание типов и функций в модулях.
Качество кода

Каждый разработчик понимает качество по-своему, исходя из опыта. Представления джунов и лидов различаются, и это приводит к разногласиям. Каждая команда для отдельных проектов оценивает код по-своему. Команда обновляется, разработчики уходят, тимлиды сменяются — определение качества меняется. Эту проблему попробует помочь решить Иван Ботанов (StressoID) из Tinkoff.ru — Frontend-developer, преподаватель онлайн-курса по Angular, спикер на митапах и конференциях, ведущий уроков на YouTube и, иногда, тренер команд в компаниях.
В расшифровке доклада Ивана на Frontend Conf поговорим о читаемости, нейминге, декларативности, Code style, и косвенно коснемся отношений джунов и лидов: ошибки, грабли и «сгорание» тимлидов.
Disclaimer: Подготовьтесь морально, в тексте будет много плохого кода, взятого с «особенного» сайта.
Вклад авторов
alizar 4446.2ru_vds 4222.8olegchir 3644.4badcasedaily1 3035.0haqreu 2951.0tangro 2672.2nmivan 2585.0kesn 2578.0MaxRokatansky 2523.0DmitrySpb79 2296.0