Search
Write a publication
Pull to refresh
0
Артём Семенко @A-Stimread⁠-⁠only

Инженер

Send message

Введение в Git

Reading time17 min
Views160K

Оглавление


Предисловие
1. Настройка git
....1.1 Конфигурационные файлы
....1.2 Настройки по умолчанию
....1.3 Псевдонимы (aliases)
2. Основы git
....2.1 Создание репозитория
....2.2 Состояние файлов
....2.3 Работа с индексом
....2.4 Работа с коммитами
....2.5 Просмотр истории
....2.6 Работа с удалённым репозиторием
3. Ветвление в git
....3.1 Базовые операций
....3.2 Слияние веток
....3.3 Rerere
4. Указатели в git
....4.1 Перемещение указателей
5. Рекомендуемая литература

Предисловие


Git — самая популярная распределённая система контроля версиями.[1][2]

Основное предназначение Git – это сохранение снимков последовательно улучшающихся состояний вашего проекта (Pro git, 2019).
Читать дальше →

Обыскать 314 км² за 10 часов — финальное сражение инженеров-поисковиков против леса

Reading time15 min
Views39K


Представьте задачу — в лесу пропали два человека. Один из них еще подвижен, другой лежит на месте и не может пошевелиться. Известна точка, где их видели последний раз. Радиус поиска вокруг нее — 10 километров. Получается территория площадью 314 км2. У вас есть десять часов на поиск с помощью новейших технологий.

Услышав условие в первый раз, я подумал: «пфф, подержите мое пиво». Но потом увидел, как передовые решения спотыкаются обо все, что возможно и невозможно учесть. Летом я писал, как около 20 инженерных команд пытались решить задачу в десятки раз проще, но делали это на пределе возможностей, и только четыре команды справились. Лес оказался территорией скрытых подвохов, где современные технологии бессильны.

Тогда это был лишь полуфинал конкурса «Одиссея», организованного благотворительным фондом «Система» — цель которого придумать, как модернизировать поиск пропавших в дикой природе людей. В начале октября в Вологодской области прошел его финал. Четыре команды столкнулись с той самой задачей. Я отправился на место, чтобы понаблюдать за одним из конкурсных дней. И в этот раз ехал с мыслью, что задача — нерешаемая. Но я никак не ждал увидеть «Настоящий детектив» для любителей DIY-электроники.

Как быстро делать прототипы устройств и почему это важно. Доклад Яндекс.Такси

Reading time16 min
Views29K
Любой технически сложный hardware-проект — всегда уравнение с множеством неизвестных: платформа, компоненты, технологии, производство, функциональность, реализуемость. «Пощупать», что получается, можно, когда пройдены дорогостоящие этапы: R&D, выбор комплектующих, разработка программ и поиск фабрики для производства.



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

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

Основы компьютерных сетей. Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP

Reading time51 min
Views316K


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

Алгоритм Гровера и поиск данных

Reading time5 min
Views15K
image

Привет, Хаброжители! Мы недавно сдали в типографию книгу Криса Бернхарда «Квантовые вычисления для настоящих айтишников». Здесь решили поделиться отрывком из книги «Алгоритм Гровера и поиск данных»

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

Свой алгоритм Лов Гровер изобрел в 1996 году. Подобно алгоритмам Дойча и Саймона, он имеет более высокую скорость выполнения, по сравнению с классическими алгоритмами с точки зрения запроса сложности. Однако мы не сможем реализовать действующий алгоритм поиска данных, не имея оракулов, которым могли бы задавать свои вопросы. Мы должны сконструировать алгоритм, выполняющий работу оракула. Но прежде чем начать говорить о реализации алгоритма Гровера, посмотрим, что он делает и как.
Читать дальше →

Разбираемся в основах Blockchain: Задача Византийских Генералов. Часть 1

Reading time6 min
Views31K
Перевод статьи подготовлен специально для студентов курса «Архитектор высоких нагрузок», который стартует уже в этом месяце.




Блокчейн – это децентрализованная система, состоящая из различных субъектов, которые действуют в зависимости от своих стимулов и имеющейся у них информации.

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

22 сайта для программиста, которые помогут заговорить на английском

Reading time3 min
Views133K
Хабр, привет!

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

Приступим!

Учить лексику


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

ЛеоПереводчик

С этим плагином удобно переписываться с коллегами. Он автоматически переводит непонятные слова и выражения. Незаменимый инструмент, когда нет времени на доскональные переводы и нужен срочный ответ.
Читать дальше →

IT за пределами Москвы

Reading time26 min
Views39K


Встречается мнение, что жизнь разработчика в Москве/Питере — это интересные задачи и отличные вакансии, а в остальных российских городах — прозябание в болоте.

Я не люблю такие обобщения. Да, что-то есть только в «двух столицах»: когда мы (JUG Ru Group) делали конференцию в Новосибирске, столкнулись с отсутствием нужного оборудования. Но в том же городе живёт известный многим Тагир lany Валеев, там он работает над IntelliJ IDEA, готовит крутые доклады и хабрапосты. И как тогда говорить, что там нечего делать?

Скоро мы проведём в Петербурге фестиваль TechTrain со слоганом «Узнай, чем живут другие», и там будут представлены многие IT-сообщества. А недавно в отпуске я ездил поездами по городам Транссиба, и фестиваль подал мне идею: в поездке узнать, чем живут айтишники в других городах, пообщавшись с активистами местных IT-сообществ. Я расспрашивал о их деятельности, о том, что в городе с IT, и о решении жить не в Москве. Делюсь с Хабром результатами.


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

Нейросети и глубокое обучение: онлайн-учебник, глава 6, ч.1: глубокое обучение

Reading time45 min
Views16K

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

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

Основная часть главы – введение в один из наиболее популярных типов глубоких сетей: глубокие свёрточные сети (ГСС). Мы поработаем с подробным примером использования свёрточной сети, с кодом и прочим, для решения задачи классификации рукописных цифр из набора данных MNIST:


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

Ограничения 8-битных игр и их точное воссоздание в Unity

Reading time14 min
Views29K
image

Ретро-игры с простыми механиками и пиксельной графикой способны пробуждать тёплые воспоминания у опытных игроков, и в то же время вполне доступны для более юной аудитории. Сегодня многие игры называются «ретро», но для создания ностальгического стиля требуются усилия и планирование. Именно поэтому мы пригласили ребят из Mega Cat Studios помочь нам в обсуждении этой темы. В этом посте мы рассмотрим всё необходимое для создания аутентичной графики в стиле игр для NES, в том числе важные параметры Unity, графические структуры и цветовые палитры.

Создание аутентичного арта в стиле NES


Для начала мы рассмотрим основы создания графики для игр, соответствующих ограничениям классической Nintendo Entertainment System. Это поколение консолей накладывает серьёзные ограничения на художников, стремящихся воспроизвести его аутентичную графику. Это ограничения на используемые палитры и на размер и количество объектов на экране. Кроме того, важно учитывать, что разрешение этой консоли составляет 256×240 пикселей.

Палитры


При создании совместимой с NES графики художник должен учитывать множество ограничений. Во-первых, самым важным из таких ограничений является то, как в изображении используются цветовые палитры. NES уникальна тем, что все возможные цвета палитры «зашиты» в консоль. NES выбирает, какие цвета использовать в изображении, отправляя наборы значений графическому процессору NES, после чего графический процессор возвращает цвета, соответствующие этим значениям. Ниже показано изображение цветовой палитры NES:


Эти цвета невозможно менять, потому что они являются частью самой консоли. Во всех играх NES используются сочетания этих цветов, из которых составляются изображения.
Читать дальше →

Выбор размера монитора: теория угловых размеров, обоснование и сравнение

Reading time7 min
Views261K


Выбирая очередной монитор, решил «упростить» себе процесс выбора среди обилия мониторов на рынке. А получилось использовать некоторую, возможно даже научно-обоснованную, теорию, покрывающую многие области человеческой деятельности, в общем, и выбор монитора, в частности.

Надеюсь, мои изыскания кому-то также пригодятся, а также позволят сохранить зрение и нервы.
Читать дальше →

Самодокументируемый код – это (как правило) чушь

Reading time7 min
Views38K
Всем привет!

Предваряя сегодняшнюю переводную публикацию, сразу отметим, что этот текст задуман как follow-up недавнему дискуссионному материалу "Прекратите усердствовать с комментариями в коде". Нас настолько впечатлила развернувшаяся там дискуссия и 189 комментариев по состоянию на 19.07.2019, что мы решили дать здесь слово и другому автору с портала Medium (Кристоферу Лейну), который практически по всем принципиальным вопросам полемизирует с тезисами Брайана Норлендера, автора первой статьи. Отметим, что в оригинале данная статья вышла на месяц позже предыдущей (16 мая и 16 июня), но собрала практически вдвое меньше аплодисментов (706 против 1,5K на момент публикации перевода). Посмотрим, что будет на Хабре…



Снимок взят с сайта rawpixels.com от автора Pexels
Читать дальше →

Текстурирование, или что нужно знать, чтобы стать Художником по поверхностям. Часть 1. Пиксель

Reading time10 min
Views42K

О чем эта серия уроков?


В данной серии статей я постараюсь максимально раскрыть теорию создания текстур для игровой индустрии, начиная от самого понятия «пиксель» и заканчивая построением сложных материалов (шейдеров) в игровом движке на примере Unreal Engine 4.

Часть 1. Пиксель — вы ее читаете.
Часть 2. Маски и текстуры здесь.
Часть 3. PBR и материалы здесь.
Часть 4. Модели, нормали и развертка здесь.
Часть 5. Система материалов здесь.

Я попытаюсь охватить такие программы, как Windows Paint, Photoshop, Substance Painter, Substance Designer и, возможно, Quixel (Не особо вижу смысла в этой программе, так как после прочтения всех статей у читающих должно сформироваться полностью понимание того, как работать с текстурами, и Quixel станет интуитивно понятен).

Я постараюсь разобрать максимально подробно такие понятия, как PBR, маски и различные виды текстур.

И все это будет рассмотрено с самых низких и базовых уровней для первоклашек и тех, кто с этим вообще никогда и ни-ни, чтобы по завершении прочтения этих статей, у читающего не оставалось никаких вопросов, было максимальное понимание, как это все работает, и он мог начать уверено работать с текстурами и шейдерами в любом ПО, так как основа (база, суть) у всех одна.
Читать дальше →

Что на самом деле случилось с исчезнувшим малайзийским Боингом (часть 1/3)

Reading time11 min
Views206K
1. Исчезновение
2. Прибрежный бродяга
3. Золотая жила
4. Заговоры
5. Возможный сценарий
6. Капитан
7. Истина



1. Исчезновение


Тихой лунной ночью 8 марта 2014 года Боинг 777-200ER, эксплуатируемый Malaysia Airlines, вылетел из Куала-Лумпура в 0:42 и повернул в сторону Пекина, поднявшись на предназначенный ему эшелон 350, то есть на высоту 10 650 метров. Обозначение авиакомпании Malaysia Airlines — MH. Номер рейса — 370. Самолетом управлял Фарик Хамид, второй пилот, ему было 27 лет. Это был его последний тренировочный рейс, после которого его ждало завершение сертификации. Действиями Фарика руководил командир воздушного судна, человек по имени Захари Ахмад Шах, который в 53 года был одним из самых старших капитанов в Malaysia Airlines. По малайзийским обычаям, его звали просто Захари. Он был женат и имел троих взрослых детей. Жил в закрытом коттеджном посёлке. Имел два дома. В первом доме у него был установлен авиасимулятор, Microsoft Flight Simulator. Он регулярно летал на нем и часто писал на онлайн-форумах о своем хобби. Фарик относился к Захари с почтением, но тот не злоупотреблял своей властью.

В салоне самолёта находились 10 бортпроводников, все малайзийцы. Им предстояло позаботиться о 227 пассажирах, включая пятерых детей. Большинство пассажиров были китайцами; из числа остальных 38 были малайзийцами, а прочие (в порядке убывания) были гражданами Индонезии, Австралии, Индии, Франции, США, Ирана, Украины, Канады, Новой Зеландии, Нидерландов, России и Тайваня.
Читать дальше →

Нейросети и глубокое обучение, глава 1: использование нейросетей для распознавания рукописных цифр

Reading time56 min
Views146K

Примечание


Michael NielsenПеред вами – перевод свободной онлайн-книги Майкла Нильсена «Neural Networks and Deep Learning», распространяемой под лицензией Creative Commons Attribution-NonCommercial 3.0 Unported License. Мотивацией к его созданию послужил успешный опыт перевода учебника по программированию, "Выразительный JavaScript". Книга по нейросетям тоже достаточно популярна, на неё активно ссылаются авторы англоязычных статей. Её переводов я не нашёл, за исключением перевода начала первой главы с сокращениями.

Желающие отблагодарить автора книги могут сделать это на её официальной странице, переводом через PayPal или биткоин. Для поддержки переводчика на Хабре есть форма «поддержать автора».


Введение


Этот учебник подробно расскажет вам о таких понятиях, как:

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

Нейросети (НС) и глубокое обучение (ГО) на сегодня дают наилучшее решение многих задач из областей распознавания изображений, голоса и обработки естественного языка. Этот учебник научит вас многим ключевым концепциям, лежащим в основе НС и ГО.
Читать дальше →

Сети кабельного телевидения для самых маленьких. Часть 9: Головная станция

Reading time2 min
Views9.2K


Головная станция собирает сигналы с нескольких источников, обрабатывает их и вещает в кабельную сеть.
Читать дальше →

Вейвлет-анализ. Часть 3

Reading time20 min
Views13K

Введение


При проведении CWT анализа средствами библиотеки PyWavelets (бесплатное программное обеспечение с открытым исходным кодом, выпущенное по лицензии MIT) возникают проблемы с визуализацией результата. Предложенная разработчиками тестовая программа по визуализации приведена в следующем листинге:

Листинг
 import pywt
import numpy as np
import matplotlib.pyplot as plt
t = np.linspace(-1, 1, 200, endpoint=False)
sig  = np.cos(2 * np.pi * 7 * t) + np.real(np.exp(-7*(t-0.4)**2)*np.exp(1j*2*np.pi*2*(t-0.4)))
widths = np.arange(1, 31)
cwtmatr, freqs = pywt.cwt(sig, widths, 'cmor1-1.5')
plt.imshow(cwtmatr, extent=[-1, 1, 1, 31], cmap='PRGn', aspect='auto',
             vmax=abs(cwtmatr).max(), vmin=-abs(cwtmatr).max())  # doctest: +SKIP
plt.show() # doctest: +SKIP

При работе с комплексными вейвлетами, например с 'cmor1-1.5', программа выдаёт ошибку:

File"C:\Users\User\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\image.py", line 642, in set_data
    raise TypeError("Image data cannot be converted to float")
TypeError: Image data cannot be converted to float

Указанная ошибка, а так же сложности с выбором масштаба (widths) для обеспечения необходимого временного разрешения, затрудняют, особенно для начинающих пользователей, изучение CWT анализа, что и побудило меня к написанию данной статьи учебного характера.

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

Аппаратное ускорение глубоких нейросетей: 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 — что все это означает и кто победит? Попробуем разобраться. Кому интересно — велкам под кат!
Читать дальше →

Make it True — Разработка логической игры на Unity

Reading time49 min
Views18K


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

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

Information

Rating
Does not participate
Location
Пенза, Пензенская обл., Россия
Date of birth
Registered
Activity