• Михаил Бессмельцев с коллегой разработал новые алгоритмы для векторизации графики


      Слева направо: оригинал, оснащённое поле (frame field) и окончательный результат. На базе зашумлённого растрового изображение в оттенках серого вычисляется оснащённое поле, выровненное по линиям картинки. На острые углы типа X- и T-пересечений накладываются векторы по обоим направлениям. Затем из этого поля извлекается топология чертежа — и производится окончательная генерация векторных кривых

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

      Первые алгоритмы векторизации изображений появились в начале 1990-х годов и
      использовались в инструментах для редактирования векторной графики, таких как Adobe Illustrator (Live Trace), CorelDRAW (PowerTRACE) и Inkscape. Несмотря на их широкое внедрение в промышленности, эти алгоритмы до сих пор страдают от серьёзных недостатков и находятся в активной разработке. В нескольких индустриях, где векторизация крайне необходима, включая традиционную анимацию и инженерное проектирование, она часто выполняется вручную. Дизайнеры кропотливо обводят отсканированное изображение с помощью инструментов рисования.
      Читать дальше →
    • 10 малоизвестных возможностей Objective-C

      • Tutorial
      Приветствую уважаемых хабражителей!

      Objective-C — язык с богатым рантаймом, но в данной статье речь пойдёт не о содержимом хедера <objc/runtime.h>, а о некоторых возможностях самого языка, о которых многие разработчики и не догадываются. Да, на них натыкаешься, читая документацию, отмечаешь про себя «хм, интересно, надо как-нибудь копнуть», но они обычно быстро вылетают из головы. А начинающие разработчики часто вообще читают документацию наискосок.

      В этой статье я собрал 10 удивительных на мой взгляд свойств языка Objective-C. Некоторые свойства самоочевидны, некоторые далеко не таковы. За использование некоторых в боевом коде надо бить по рукам, другие же способны помочь в оптимизации критических мест кода и в отладке. В конце статьи имеется ссылка на исходник, показывающий на примере все эти фичи.

      Итак, начну с самого «вкусного» на мой взгляд: безымянные методы.

      1. Безымянные методы


      Читать дальше →
    • Новые техпроцессы для производства микросхем все чаще откладывают — почему?

        В конце августа производитель полупроводниковых интегральных микросхем GlobalFoundries (работает с AMD) прекратил разработку 7-нанометровых техпроцессов. За несколько месяцев до этого компания Intel объявила, что вновь откладывает выпуск своего 10-нанометрового чипа.

        О причинах этих решений и ситуации в индустрии, рассказываем дальше.

        Читать дальше →
      • Самые маленькие Linux-компьютеры



          Несколько дней назад активисты движения за свободное аппаратное обеспечение выпустили вторую версию крошечного Linux-компьютера VoCore2 размером 25,6×25,6×3,0 мм, то есть с крупную монету (почти вписались по площади в квадратный дюйм). В спичечный коробок поместится примерно восемь таких компьютеров.

          Это потомок того самого VoCore, на который собирали деньги через Indiegogo. Всё-таки собрали, и проект живёт. Это абсолютно открытый компьютер, который кто угодно может собрать из указанных комплектующих (или купить плату в сборе за $17,99). Компьютер работает на прошивке OpenWrt/LEDE, то есть идеально подходит на роль портативного маршрутизатора.
          Читать дальше →
        • Договоры бывают разные, или на что вы подписались

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

          image

          Что это вообще, блин, такое?


          Читать дальше →
        • ЦНИИмаш: SpaceX якобы реализует советские разработки. Почему у Илона Маска столько врагов



            Замгендиректора головного научного института «Роскосмоса» ЦНИИмаш Александр Медведев вчера в ходе научной конференции в Москве сделал громкое заявление. По его словам, многоразовые ракеты SpaceX не основаны на каких-либо принципиально новых технологиях, а базируются на разработках советских инженеров и учёных:

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

            В прошлом веке советская космонавтика занимала ведущие позиции в мире, так что в откровении руководителя ЦНИИмаш нет ничего удивительного, скорее чувствуется гордость и горечь. Известна история, как в октябре 2001 года Илон Маск приезжал в Москву и пытался купить баллистические ракеты, но не смог договориться о цене.
            Читать дальше →
          • Раскрываем номера пользователей Telegram

              image

              Последнее время безопасность Telegram (далее – телеграм) все чаще поддается критике и встает вопрос: «действительно ли телеграм хорошо защищен?»

              Как и для любого мессенджера – важна его максимальная интеграция со сторонними сервисами. Для примера, телеграм в первую очередь работает с вашей телефонной книгой. Он синхронизирует ваши номера со своей базой и проверяет на наличие регистрации в телеграме. Далее – телеграм предлагает вам свободные сообщения и звонки с вашими потенциальными друзьями. «Удобно» — что еще сказать?

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

                — Идея с айфонами — полное говно. — начал встречу Сергей.

                — Извините, Сергей, я не ослышалась? — недобро прищурившись, спросила Светлана Владимировна.

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

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

                — И это говорит человек, больше всех радеющий за развитие? — с ехидной улыбкой спросила Марина, директор по качеству?

                — Ты бы молчала лучше… — вздохнул Сергей.

                — А ты мне рот не затыкай! — улыбка с лица Марины исчезла. — Сам предлагаешь эти айфоны, сам потом их говном называешь. Как баба капризная.

                — Идея не Сергея, а моя. — твердо проговорила Светлана Владимировна. — Сергей, я жду объяснений. И выбирайте, пожалуйста, выражения, вы не с программистами разговариваете. Да и с программистами так разговаривать не стоит.
                Читать дальше →
              • Введение в программирование шейдеров для верстальщиков

                • Tutorial


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


                Все это побудило создать введение в те аспекты работы с шейдерами, которые наиболее вероятно пригодятся в работе именно верстальщику для создания различных 2d-эффектов с картинками на сайте. Конечно с поправкой на то, что сами по себе в дизайне интерфейсов они у нас применяются относительно редко. Мы сделаем стартовый шаблон на чистом JS без сторонних библиотек и рассмотрим идеи создания некоторых популярных эффектов, основанных на сдвиге пикселей, которые сложно сделать на SVG, но при этом они легко реализуются с помощью шейдеров.

                Читать дальше →
                • +40
                • 11,7k
                • 8
              • Исследователи утверждают, что спрятаться от слежки Google практически невозможно



                  Google — крупнейшая в мире рекламная компания. Она выпускает самый популярный в мире браузер, владеет самой популярной мобильной платформой и поддерживает работу крупнейшей поисковой системы в интернете. У видеосервиса, почтового и картографического сервисов Google более 1 млрд пользователей (у каждого из них). Компания использует повсеместную распространённость своих продуктов для отслеживания поведения пользователей в онлайне и IRL, чтобы впоследствии таргетировать их платной рекламой. От точности таргетирования и обширности собираемых данных напрямую зависят доходы Google.

                  К сожалению, в современных условиях практически невозможно уклониться от слежки со стороны Google. К таким выводам пришли специалисты из организации Digital Content Next и Университета Вандербильта. Результаты их исследования Google Data Collection (pdf) опубликованы в открытом доступе.
                  Читать дальше →
                • LLTR Часть 2: Алгоритм определения топологии сети по собранной статистике

                    Link Layer Topology Reveal logo


                    Q: Что у нас есть?
                    A: Статистика, собранная с хостов.


                    Q: Что мы хотим получить?
                    A: Топологию сети! Точнее, нужно построить правильную цепочку пиров (хостов) для RingSync.


                    Нам предстоит придумать алгоритм, который вначале превратит статистику в топологию сети, а затем – в цепочку пиров. Пока алгоритм выглядит так:


                    статистика –-[*магия*]--> топология сети --[*магия*]--> цепочка пиров
                    Читать дальше →
                  • Почему не стоит выкидывать Radeon, если ты увлекся машинным обучением?

                      image


                      Свою рабочую станцию мне выдалось собирать, будучи студентом. Достаточно логично, что я отдавал предпочтение вычислительным решениям AMD. потому что это дешево выгодно по соотношению цена/качество. Я долго подбирал компоненты, в итоге уложился в 40к с комплектом из FX-8320 и RX-460 2GB. Сначала этот комплект казался идеальным! Мы с соседом по комнате слегка майнили Monero и мой набор показывал 650h/s против 550h/s на наборе из i5-85xx и Nvidia 1050Ti. Правда, от моего набора в комнате бывало слегка жарковато по ночам, но это решилось, когда я приобрел башенный кулер к CPU.

                      Читать дальше →
                    • Обзор техник реализации игрового ИИ

                      • Перевод
                      image

                      Введение


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

                      Я буду предполагать, что вы знакомы с видеоиграми, немного разбираетесь в таких математических концепциях, как геометрия, тригонометрия и т.д. Большинство примеров кода будет записано псевдокодом, поэтому вам не потребуется знание какого-то конкретного языка.

                      Что же такое «игровой ИИ»?


                      Игровой ИИ в основном занимается выбором действий сущности в зависимости от текущих условий. В традиционной литературе по ИИ называет это управлением "интеллектуальными агентами". Агентом обычно является персонаж игры, но это может быть и машина, робот или даже нечто более абстрактное — целая группа сущностей, страна или цивилизация. В любом случае это объект, следящий за своим окружением, принимающий на основании него решения и действующий в соответствии с этими решениями. Иногда это называют циклом «восприятие-мышление-действие» (Sense/Think/Act):

                      • Восприятие: агент распознаёт — или ему сообщают — информацию об окружении, которая может влиять на его поведение (например, находящиеся поблизости опасности, собираемые предметы, важные точки и так далее)
                      • Мышление: агент принимает решение о том, как поступить в ответ (например, решает, достаточно ли безопасно собрать предметы, стоит ли ему сражаться или лучше сначала спрятаться)
                      • Действие: агент выполняет действия для реализации своих решений (например, начинает двигаться по маршруту к врагу или к предмету, и так далее)
                      • … затем из-за действий персонажей ситуация изменяется, поэтому цикл должен повториться с новыми данными.
                      Читать дальше →
                    • Почему персонажи видеоигр почти никогда не раздеваются

                      • Перевод

                      Видеоигры быстро становятся изумительным симулякром реальности. Мы можем блуждать по невообразимым мирам, общаться с правдоподобными персонажами и наносить нацистам убедительно выглядящие побои. Тем не менее, видеоигры всё ещё испытывают проблемы со снятием одежды.

                      Посмотрите на сцену из игры 2010 года Mass Effect 2 с раздевающимся Джейкобом. На первый взгляд кажется, что он стянул рубашку, как это сделал бы любой человек, демонстрируя невидимому оператору заработанные в боях кубики пресса. А теперь приглядитесь внимательно: к моменту, когда его руки движутся по телу, «снимая» рубашку, её уже нет. Игра переключилась с одетой на раздетую модель с помощью иллюзии, заставляющей игрока подумать, что он снимает рубашку.
                      Читать дальше →
                    • Как подготовиться к собеседованию в Google и не пройти его. Дважды



                        Заголовок статьи звучит как epic fail, но на самом деле все не так однозначно. Да и в общем и целом эта история закончилась весьма позитивно, хоть и не в Google. Но это уже тема для другой статьи. В этой же статье я расскажу о трех вещах: каким образом проходил мой процесс подготовки, каким образом проходили интервью в Google и почему же на мой взгляд все не так однозначно, как может показаться.
                        Кому интересно, прошу под кат.
                      • Корпоративная шизофрения

                          — Последний вопрос нашей повестки. – зашуршала бумажками Светлана Владимировна. – Оценка удовлетворенности персонала. Татьяна, вам слово.

                          — Добрый день, коллеги. – поднялась со стула молодая, симпатичная девушка, новый HR-директор. – Как вы знаете, мы провели оценку удовлетворенности персонала, и результаты, к сожалению, неутешительные.

                          Татьяна выдержала театральную паузу, оглядывая всех присутствующих менеджеров – и топ, и не топ.

                          — Удовлетворенность стала ниже, по сравнению с прошлым годом. – видя, что реакции нет, сконфуженно продолжила Татьяна. – С этим нужно что-то делать. Я подготовила несколько предложений. Светлана Владимировна, можно озвучить?

                          — Начинается… — раздался тихий шепот с дальнего конца стола.

                          — Что, простите? – подняла бровь директор. – Я что, с разнорабочими разговариваю? Или с руководителями, которые радеют за благо предприятия? Марина, это вы сейчас сказали?

                          — Нет, не я. – возмутилась Марина, директор по качеству. – Вон, умник наш. Господин ИТ-директор. Сергей, отвлекись от телефона, что ты там все время делаешь?
                          Читать дальше →
                        • Могут ли дети в селах стать программистами, если рядом учат только на железнодорожников. Разговор с «Кружком»



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

                            Оказалось, такие истории еще случаются. В 2017 году несколько молодых преподавателей программирования из Московских школ дополнительного образования собрались в команду, назвали ее «Кружок» и поехали по городам России рассказывать детям о технологиях. Они посетили Воткинск, Калугу, Вязьму. Затем в селе Глазок под руководством ребят дети создали сайт, и тут же попали в телевизор и заголовки крупнейших СМИ.

                            Сейчас «Кружок» едет с туром по 10 городам, а в конце августа планирует провести фестиваль в селе Сардаял.

                            Преподаватели «Кружка» Саша Братчиков и Александр Патлух рассказали нам с fillpackart каково это — учить детей программированию и заниматься таким вот «технологическим миссионерством».
                            Читать дальше →
                          • 5 приемов работы с CSS, о которых вам следует знать


                              Наблюдая за потоком вопросов по CSS на Тостере уже давно заметил, что многие из них повторяются много-много раз. Да, есть совсем глупые вопросы, на которые так и тянет ответить RTFM! Но есть и более занятные. Они связаны с не совсем стандартной версткой. Не такой, чтобы глаза на лоб лезли, но и заметно выходящей за рамки условного бутстрапа и традиционных туториалов для новичков. Похожие вопросы довольно сложно загуглить — обычно вся суть в картинке, но и отвечать каждый раз надоедает. В этой статье мы постараемся посмотреть некоторые приемы, охватывающие довольно широкий круг подобных вопросов. Информация в первую очередь адресуется начинающим верстальщикам, но возможно и опытным будет, чем вдохновиться.

                              Читать дальше →
                            • Почему хватит считать нейронные сети черным ящиком?

                              image

                              Если вы достаточно долго увлекаетесь нейросетевыми технологиями, то наверняка встречались с мнением, кратко заключенным в риторическом вопросе: «Как ты объяснишь человеку, когда нейросеть считает, что у него рак?». И если в лучшем случае такие мысли заставят тебя сомневаться в использовании нейросетей в достаточно ответственных сферах, то в худшем случае ты можешь и потерять весь свой интерес.

                              Читать дальше →
                            • Делаем литературные часы на основе электронной книги

                              • Перевод


                              Моя девушка читает книги запоем. Она преподаёт и изучает английскую литературу, поэтому прочитывает в среднем по 80 книг в год.

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

                              Часы обновляются ежеминутно; например, в 9:23 на Kindle будет написано:
                              My father met me at the station, the dog jumped up to meet me, missed, and nearly fell in front of the 9.23pm Birmingham express.

                              [цитата из книги Сью Таунсенд «The Secret Diary & Growing Pains of Adrian Mole Aged 13¾» / прим. перев.]
                              Читать дальше →