Search
Write a publication
Pull to refresh
25
0

кодер-самоучка, пробую себя в переводе

Send message

Сократить бэкапы на 99.5% с hashget

Reading time8 min
Views12K

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


Это обзорная статья для описания возможностей. Само использование hashget (довольно простое) описано в README проекта и wiki-документации.


Сравнение


По закону жанра, начну сразу с интриги — сравнения результатов:


Data sample unpacked size .tar.gz hashget .tar.gz
Wordpress-5.1.1 43 Mb 11 Mb ( 26% ) 155 Kb ( 0.3% )
Linux kernel 5.0.4 934 Mb 161 Mb ( 20% ) 4.7 Mb ( 0.5% )
Debian 9 (LAMP) LXC VM 724 Mb 165 Mb ( 23% ) 4.1 Mb ( 0.5% )

Предыстория, каким должен быть идеальный и эффективный бэкап


Каждый раз, когда я делал бэкап свежесозданной виртуалки, мне не давало покоя чувство, что я что-то делаю не так. Почему у меня получается увесистый бэкап от системы, где моего бесценного нетленного творчества — однострочный index.html с текстом "Hello world"?

Читать дальше →

Тёмные времена наступают

Reading time5 min
Views45K

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


2018 год показал: тёмные режимы на подходе. Теперь, когда мы уже на полпути в 2019, мы можем с уверенностью сказать: они здесь, и они везде.


Пример старого монитора «зеленым-по-чёрному»

Начнем с того, что тёмный режим — это совсем не новая концепция. Его используют уже достаточно давно. А когда-то на самом деле давно только его и использовали: мониторы были вида «зеленым-по-чёрному», но только потому, что люминесцентное покрытие внутри излучало зеленоватое свечение при воздействии на него излучения.


Но даже после внедрения цветных мониторов тёмный режим продолжал жить. Почему же так?

Читать дальше →

Использование Typescript с React – руководство для новичков

Reading time6 min
Views192K
Друзья, в преддверии выходных хотим поделиться с вами еще одной интересной публикацией, которую хотим приурочить к запуску новой группы по курсу «Разработчик JavaScript».



Потратив последние несколько месяцев на разработку приложений на React и библиотек с использованием Typescript, я решил поделиться некоторыми вещами, которые узнал за это время. В этом руководстве я расскажу вам про шаблоны, которые я использую для Typescript и React в 80% случаев.

Стоит ли изучать Typescript для разработки приложений на React? Стоит, еще как стоит! Для себя я осознал на практике, что строгая типизация приводит к написанию гораздо более надежного кода, быстрой разработке, особенно в крупных проектах. Сначала вы, вероятно, будете разочарованы, но по мере работы вы обнаружите, что хотя бы минимальный шаблон действительно будет очень кстати.

И если вы застряли на чем-то, помните, что вы всегда можете типизировать что- нибудь как any. Any – ваш новый друг. А теперь перейдем непосредственно к примерам.
Читать дальше →

История одного SQL расследования

Reading time8 min
Views8.2K

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


Предыстория


Чтобы было понятно о чём речь, я расскажу совсем немного о VWO. Это платформа, с помощью которой можно запускать разные таргетированные кампании на своих сайтах: проводить A/B эксперименты, отслеживать посетителей и конверсии, делать анализ воронки продаж, отображать тепловые карты и проигрывать записи визитов.


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


Используя платформу, можно сделать произвольный запрос на большом наборе данных. Вот простенький пример:


Показать все клики на странице "abc.com"
ОТ <даты d1> ДО <даты d2>
для людей, которые
использовали Chrome ИЛИ
(находились в Европе И использовали iPhone)

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


Медленный запрос


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


Покажи все записи сессий
для пользователей посетивших любую страницу
с урлом, где есть "/jobs"

На этом сайте было огромное количество трафика, и мы хранили более миллиона уникальных URL-адресов только для него. И они хотели найти довольно простой шаблон урла, относящегося к их бизнес-модели.


Читать дальше →

Рождение и смерть альбома: разбираемся, как менялись музыкальные форматы за последние 100 лет

Reading time6 min
Views10K
В прошлых статьях мы говорили об изменяющейся роли критиков в мире музыки. Теперь же поговорим о том, как альбомный формат потерял былую значимость — и что пришло ему на смену.


Фото Florencia Viadana / Unsplash

Как альбомы завоевали музыкальный рынок


В первой половине XX века музыкальная индустрия была совсем не похожа на то, с чем мы знакомы сейчас. Отчасти изменения были связаны с популярными тогда технологиями — главным музыкальным форматом того времени были шеллаковые пластинки, которые проигрывались со скоростью 78 оборотов в минуту. Стандартная 10-дюймовая пластинка вмещала лишь три минуты музыки на каждой стороне — это серьезно ограничивало длину материала. Даже оркестровая музыка намеренно сокращалась, чтобы уместиться на пластинке. Первые записи «Рапсодии в стиле Блюз» Гершвина длились в районе 9 минут, почти в два раза меньше, чем оригинальная версия произведения. Неудивительно, что синглы составляли подавляющее большинство релизов.

Интеграционные тесты баз данных с помощью Spring Boot и Testcontainers

Reading time5 min
Views25K

1. Обзор


С помощью Spring Data JPA можно легко создавать запросы к БД и тестировать их с помощью встроенной базы данных H2.


Но иногда тестирование на реальной базе данных намного более полезно, особенно если мы используем запросы, привязанные к конкретной реализации БД.


В этом руководстве мы покажем, как использовать Testcontainers для интеграционного тестирования со Spring Data JPA и базой данных PostgreSQL.

Читать дальше →

Аппаратное ускорение глубоких нейросетей: GPU, FPGA, ASIC, TPU, VPU, IPU, DPU, NPU, RPU, NNP и другие буквы

Reading time28 min
Views95K


14 мая, когда Трамп готовился спустить всех собак на Huawei, я мирно сидел в Шеньжене на Huawei STW 2019 — большой конференции на 1000 участников — в программе которой были доклады Филипа Вонга, вице-президента по исследованиям TSMC по перспективам не-фон-неймановских вычислительных архитектур, и Хенга Ляо, Huawei Fellow, Chief Scientist Huawei 2012 Lab, на тему разработки новой архитектуры тензорных процессоров и нейропроцессоров. TSMC, если знаете, делает нейроускорители для Apple и Huawei по технологии 7 nm (которой мало кто владеет), а Huawei по нейропроцессорам готова составить серьезную конкуренцию Google и NVIDIA.

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

Только в прошлом году в тему было вложено больше 3 миллиардов долларов. Google уже давно объявил нейросети стратегическим направлением, активно строит их аппаратную и программную поддержку. NVIDIA, почувствовав, что трон зашатался, вкладывает фантастические усилия в библиотеки ускорения нейросетей и новое железо. Intel в 2016 году потратил 0,8 миллиарда на покупку двух компаний, занимающихся аппаратным ускорением нейросетей. И это при том, что основные покупки еще не начались, а количество игроков перевалило за полсотни и быстро растет.


TPU, VPU, IPU, DPU, NPU, RPU, NNP — что все это означает и кто победит? Попробуем разобраться. Кому интересно — велкам под кат!
Читать дальше →

Дженерики в TypeScript: разбираемся вместе

Reading time5 min
Views84K

Всем привет! Команда TestMace публикует очередной перевод статьи из мира web-разработки. На этот раз для новичков! Приятного чтения.


Развеем пелену таинственности и недопонимания над синтаксисом <T> и наконец подружимся с ним



Наверное, только матёрые разработчики Java или других строго типизированных языков не хлопают глазами, увидев дженерик в TypeScript. Его синтаксис коренным образом отличается от всего того, что мы привыкли видеть в JavaScript, поэтому так непросто сходу догадаться, что он вообще делает.


Я бы хотел показать вам, что на самом деле всё гораздо проще, чем кажется. Я докажу, что если вы способны реализовать на JavaScript функцию с аргументами, то вы сможете использовать дженерики без лишних усилий. Поехали!

Читать дальше →

Автоматика для дома своими руками

Reading time8 min
Views44K
Моя статья будет полезна тем, кто только задумывается над подобного рода системой, поможет определиться делать ли самому и ориентирована в основном на энтузиастов-колхозников. Изначально пишу “автоматика” а не умный дом, потому что на данном этапе умных функций в моей системе управления нет, сейчас стояла задача в сборе данных и управлении устройствами. Всё должно измениться в будущем, когда появятся алгоритмы, которые и сделают дом умным. С моей точки зрения, если вы можете включать свет со смартфона, то это не делает ваш дом умным. Умным он становится когда у вас написаны сценарии, которые помогают вам, облегчают контроль за домом и делают рутинные вещи незаметными для вас. Например, включить свет на крыльце, когда уровень освещённости ниже какого-либо порога, и выключить в два ночи, не включать полив если сегодня обещают осадки с вероятностью больше 60 процентов, если появилось движение в комнате то включить подсветку лестницы и т.д. И только в этом случае он становится “умным”.
Читать дальше →

Центр подготовки космонавтов имени Ю.А. Гагарина и Роскосмос начал открытый набор в отряд космонавтов

Reading time6 min
Views13K


В ФГБУ «НИИ ЦПК имени Ю.А. Гагарина» стартовал набор кандидатов в космонавты-испытатели Отряда космонавтов Роскосмоса 2019 года.

Но не простых, а инженерно-спортивно-волевых.

Претенденты должны иметь высшее образование по программам (только первые три ниже перечислены, остальные в публикации указаны) + опыт работы по полученной специальности не менее 3-х лет:

  • информатика и вычислительная техника;
  • электроника, радиотехника и системы связи;
  • фотоника, приборостроение, оптические и биотехнические системы и технологии.

У добровольцев должна быть в наличии выносливость, сила, быстрота, ловкость, гибкость, специальная физическая подготовленность – устойчивость к воздействию неблагоприятных факторов космического полёта (перегрузок, невесомости, гипоксии, вестибулярных раздражителей) и бортовая физическая тренированность.
Читать дальше →

Unity: бесконечный процедурно генерируемый город, получаемый при помощи алгоритма WFC (коллапс волновой функции)

Reading time7 min
Views27K
Привет, Хабр!

Как законодатели мод по теме Unity на российском рынке предлагаем вам почитать интересное исследование о практическом использовании алгоритма WFC (Wave Function Collapse), построенного по образу и подобию известного принципа квантовой механики и очень удобного при процедурной генерации уровней в играх. Ранее на Хабре уже публиковался подробный рассказ об этом алгоритме. Автор сегодняшней статьи Мариан Кляйнеберг рассматривает алгоритм в контексте трехмерной графики и генерации бесконечного города. Приятного чтения!

Читать дальше →

Vivaldi: Блокировка рекламы должна быть выбором пользователя

Reading time3 min
Views20K
image

Блокировать рекламу или нет?
Ваш выбор имеет значение!


Отказ от поддержки webRequest API, лежащего в основе почти всех существующих блокировщиков рекламы и скрытых трекеров, нарушит работу многих популярных расширений (таких, как AdBlock Plus, uBlock Origin и Ghostery). Альтернативный API уже находится на стадии разработки и тестирования, однако пока он не способен полностью заменить webRequest API.

Кроме того, предложенные Google изменения затронут не только блокировщики рекламы, но и защитные расширения, антивирусы и приложения для родительского контроля.
Читать дальше →

Электронное государство будущего

Reading time10 min
Views11K

«I have a dream…»
Мартин Лютер Кинг

image


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


Реально ли построить такое общество на нашей планете, полной войн, страданий, нищеты, неравенства, эксплуатации человека человеком? На планете, где 8 богатейших людей богаче, чем 3,5 миллиарда бедных?


Читать дальше →

Что нового в C# 8?

Reading time14 min
Views75K

«Восьмерка» еще даже не вышла RTM а я уже пишу про нее пост. Зачем? Ну, основная идея что тот, кто предупрежден — вооружен. Так что в этом посте будет про то что известно на текущий момент, а если это все подстава, ну, поделом.


Читать дальше →

Занимательная археология: стилевое руководство R под лупой

Reading time6 min
Views4.3K
Как известно, код читают намного чаще, чем пишут. Чтобы его мог читать хоть кто-то, кроме автора, и существуют стилевые гиды. Для R таковым может быть, например, руководство Хэдли.

Стилевой гид это не просто негласный договор разработчиков – за многими из правил стоит любопытная предыстория. Почему стрелка <- лучше знака равенства =, почему старожилы R не любят нижнее подчеркивание, как рекомендуемая длина строки связана с перфокартой, и о многом другом – далее.
Читать дальше →

PHDays 9: разбор заданий AI CTF

Reading time5 min
Views6.8K
Тема безопасности машинного обучения довольно хайповая последнее время и хотелось затронуть именно практическую ее сторону. А тут повод крутой — PHDays, где собираются самые разные специалисты из мира ИБ и есть возможность привлечь внимание к этой теме.

В общем-то мы сделали task-based CTF, с заданиями затрагивающих часть рисков безопасности применения техник машинного обучения.


Фотополимерный 3D-принтер из бытового видеопроектора создает объекты без слоев

Reading time3 min
Views14K


Принципиально иной подход к фотополимерной 3D-печати, разработанный в Калифорнийском университете в Беркли, позволяет создавать 3D-принты за несколько минут и дополнять 3D-печатными деталями существующие объекты.

Тренинг Cisco 200-125 CCNA v3.0. День 6. Заполняем пробелы (DHCP, TCP, «рукопожатие», распространенные номера портов)

Reading time13 min
Views15K
Прежде чем мы начнем сегодняшний видеоурок, хочу поблагодарить всех, кто способствовал популярности моего курса на YouTube. Когда я начал его около 8 месяцев назад, то не ожидал такого успеха – на сегодня мои уроки просмотрели 312724 человека, у меня 11208 подписчиков. Мне и не снилось, что это скромное начинание достигнет таких высот. Но не будем терять время и сразу перейдем к сегодняшнему занятию. Сегодня мы восполним пробелы, которые имели место в последних 7 видеоуроках. Хотя сегодня только 6 день, день 3 был разбит на 3 видеоурока, так что фактически сегодня вы посмотрите восьмой видеоурок.

Сегодня мы будем заниматься 3 важными темами: DHCP, передача TCP и наиболее употребительные номера портов. Мы уже говорили об IP-адресах, и одним из важнейших факторов конфигурации IP-адреса является DHCP.



DHCP расшифровывается как «протокол динамической настройки узла», это протокол, который помогает динамически настраивать IP-адреса для хостов. Итак, все мы видели это окно. При нажатии на параметр “получить IP-адрес автоматически” компьютер ищет DHCP-сервер, настроенный в одной подсети и отправляющий различные пакеты и запросы для IP-адреса. Протокол DHCP имеет 6 сообщений, из которых 4 имеют решающее значение для назначения IP-адреса.

Архитектура конечных автоматов в Unity для организации поведений юнитов

Reading time2 min
Views5.1K
Первым этапом разработки моей игры стала разработка RTS-движка. Я планирую написать серию постов о возникших задачах и их решениях в этом блоге. В этом посте я расскажу как организовал поведения юнитов.

Размышляя с чего начать вообще этот RTS движок, я пришел к выводу, что стоит начать с конкретики и от нее перейти к абстракции. Первой прикладной задачей, пришедшей на ум, был сбор ресурсов, а точнее, добыча дерева.

Уроки по SDL 2: Урок 2 — Main не резиновый

Reading time3 min
Views17K
Всем привет! Это мой второй урок по SDL 2. Информацию я всё ещё беру отсюда.

Итак, приветствую вас на уроке

Main не резиновый


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

Начнем написание кода с подключения SDL и объявления нескольких глобальных переменных.
Читать дальше →

Information

Rating
Does not participate
Location
Украина, Украина
Date of birth
Registered
Activity

Specialization

Software Developer, Fullstack Developer