Search
Write a publication
Pull to refresh
56
0
Илья @WST

Инженер-программист

Send message

«Галоп пикселя — часть третья» — Анимация

Reading time32 min
Views78K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)

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

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

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

Лопаты в руки.


Лопатить пиксели

ChakraCore: проверка JavaScript-движка для Microsoft Edge

Reading time10 min
Views17K
В декабре 2015 года на конференции JSConf US разработчики объявили, что планируют открыть исходный код ключевых компонентов JavaScript-движка Chakra, работающего в Microsoft Edge. Недавно исходный код ChackraCore под MIT лицензией опубликовали в соответствующем репозитории на GitHub. В статье я расскажу, что удалось найти интересного в проекте с помощью статического анализатора PVS-Studio.

Введение


ChakraCore это базовая составляющая Chakra, высокопроизводительный движок JavaScript, который запускает приложения Microsoft Edge и Windows, написанные на HTML/CSS/JS. ChakraCore поддерживает JIT-компиляцию на JavaScript для x86/x64/ARM, сборку мусора и широкий спектр самых последних возможностей JavaScript.

PVS-Studio — это статический анализатор для выявления ошибок в исходном коде программ, написанных на языках С, C++ и C#. Инструмент PVS-Studio предназначен для разработчиков современных приложений и интегрируется в среды Visual Studio 2010-2015.
Читать дальше →

Systemd: пишем собственные .service и .target

Reading time5 min
Views115K
У меня появился Linux на домашнем компьютере, и я поспешил обжиться в новой ОС. Она была установлена с systemd init process. Это было мое первое знакомство с этим новым инструментом. Cвой ноутбук я использую для каждодневной жизни и для программирования. Мне хотелось включать рабочие программы (Apache2 и MySQL) только на время, пока я их использую, чтобы не тратить впустую ресурсы своего компьютера. Дополнительно, для тестирования я написал bash скрипт, который выгружает содержимое одной из MySQL БД c жесткого диска в ОЗУ (в tmpfs) – так тесты выполняются значительно быстрее. По идее, я мог бы начинать свой рабочий день вот так:
systemctl start apache2.service
systemctl start mysqld.service
/root/scripts/mysqld-tmpfs start

И заканчивать его:
systemctl stop apache2.service
systemctl stop mysqld.service
/root/scripts/mysqld-tmpfs stop

Но мне хотелось сделать вещи “как надо”.
Читать дальше →

За два года из России ушли около 60 известных брендов и компаний: причины не только в кризисе

Reading time4 min
Views38K
По оценкам издания «Коммерсант», за последние два года из России ушло около 60 известных брендов и компаний — в полтора раза больше, чем во время кризиса 2008 года.

Британская консалтинговая компания Global Counsel в конце прошлого года опубликовала отчет, в котором говорится, что в 2016 году Россию покинут многие мировые компании. Компания проанализировала финансовую отчетность 46 компаний, представленных в России, среди них — BP, Royal Dutch Shell, Deutsche Bank, Siemens, Lafarge, ConocoPhillips. По мнению Global Counsel, большинство из них будут сворачивать бизнес в России.

Однако такая тенденция наметилась не для всех отраслей. Прогноз в основном относится к финансовому сектору и энергетике, частично – к ИТ-отрасли. А к фармацевтике например, не относится совсем.
Читать дальше →

Собираем VirtualBox под Windows

Reading time40 min
Views40K

 Введение


Как известно большинству пользователей Windows-версии VirtualBox (далее — VB, не путать с Visual Basic), в релизе 4.3.14 разработчики этой программы добавили дополнительный механизм защиты, называемый «hardening» (что можно перевести как «упрочнение»), который привёл к многочисленным проблемам совместимости VB с антивирусами, драйверами крипто-модулей и даже отдельными обновлениями самой Windows, в результате чего виртуальные машины попросту отказываются запускаться. В лучшем случае пользователю приходится ждать около месяца, пока проблемная программа, о которой он сообщит разработчикам, окажется учтена в следующем релизе VB. В худшем случае придётся либо удалять конфликтующую программу (или системное обновление), либо откатывать VB до версии 4.3.12 — последней, в которой не было этой защиты. Многочисленные предложения к разработчикам о добавлении пользовательского списка исключений или опции, отключающей защиту целиком, остаются без внимания. Единственный внятный ответ с их стороны звучит так: «не хотите защиту — компилируйте из исходников сами». Что ж, придётся этим заняться.

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

Я заинтересован

Полноценное Python приложение на Android

Reading time4 min
Views188K


В этой статье я хотел бы рассказать о том, как создать полноценное приложение на Python для Android. Нет, это не очередной мануал для создания скрипта для sl4a, это мануал по созданию полноценного приложения с UI, возможностью собрать apk и выложить на Android Market. Заодно я хотел бы похвалиться своим первым приложением на google.play, это не hello world, а полезное приложение для фотографов, хотя и узко специализированное.
Читать дальше →

ИМХО о выступлении Грефа на Гайдаровском форуме и об опасности революций

Reading time6 min
Views14K
Выступление Германа Оскаровича Грефа не осталось незамеченным не только среди политического и экономического истеблишмента, но и получило резонанс в ИТ-сообществе. Еще бы. «Agile, cloud-based, deep machine learning, artificial intelligence», – и все эти базворды не из уст айти-гика, а слова государственного деятеля, президента и председателя правления Сбербанка России. Думаю, что Герман Оскарович, конечно, не сам писал тезисы айтишной части своего выступления, а, как обычно, помогали эму в этом айти-советники.

Далее в посте цитаты из выступления по посту на Geektimes, вопросы, которые они у меня вызвали, мои ответы и гипотезы о том, что айти-советники хотели сказать и, наконец, брюзжание на тему об опасности революций.

Цитата: «В прошлом году мы сделали 27 000 изменений платформы. Для сравнения — 5 лет назад мы делали 600-800 изменений. В этом году мы сделаем 41 000 изменений. Если посмотреть на банки – мы в шоколаде, все в порядке. Если посмотреть на вот этих ребят всех – Amazon, Google и так далее, то Amazon делает 10 000 изменений своей платформы в день. 10 000 в день и 40 000 в год это несопоставимые вещи. Time to market – часы, и time to market – месяцы, это неконкурентоспособная история».

Вопрос: О чем свидетельствует число изменений платформы в единицу времени?

Ответ: Ни о чем, кроме производительности программистов.

Гипотеза: Численность сотрудников компании Amazon, примерно 100000 человек. Поскольку бизнес компании — продажа товаров и услуги через Интернет, а не производство ПО, то айтишники в ней — обслуга, и, полагаю, что они составляют не более 5% от общей численности. Итого, где-то, 5000 человек. Из них программистов, примерно, четверть, то есть, 1250 человек. Остальные менеджеры, аналитики, тестировщики и прочие админы. Считаем производительность.

Среднее количество изменений, переданных программистом в тестирование за рабочий день, = 10 000 изменений в день / 1 250 программистов = 8 изменений в день.

И это очень крутой конкурентный результат.
Читать дальше →

Ох уж эта Черная пятница 2015

Reading time4 min
Views23K
image

Продолжаю писать традиционный ежегодный пост о результатах Черной пятницы. Прошлые статьи здесь: 2013 год, 2014 год. В 2015 году Черная пятница проходила в период с 27 по 29 ноября (включительно). В этот раз данные были собраны о большем кол-ве магазинов. Вот список 11 магазинов, которые попали под анализ: ozon, enter, technopark, mvideo, euroset, svyaznoy, eldorado, citilink, tehnosila, holodilnik, pleer. Все результаты будут показаны в диаграммах и таблицах. Начнем.
Читать дальше →

Патчим современное приложение для работы под Windows 2000

Reading time1 min
Views26K
Если вы думаете, что Windows 2000 умерла, это далеко не так, она прекрасно трудится на старом железе, пусть без патчей безопасности, но в домашней интрасети это простительно. Устаревшая система на устаревшем Pentium-4 что может быть прекрасней? Да и ностальгические чувства зачастую требуют вернуться к старому интерфейсу, чтобы ощутить себя на полтора десятка лет моложе.

Конечно, OS/2 смотрелась бы еще лучше, но c ней большие проблемы с современным софтом. На Windows 2000 проблем тоже хватает. Например, утилита по восстановлению удаленных файлов отказалась работать. Выдает якобы, что исполняемый файл не является приложением Win32. На Windows 7 при этом работает прекрасно.


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

Ваше проектирование – отстой

Reading time5 min
Views33K
… но это нормально. Любое проектирование отстой. И всегда будет отстоем.

Если вы мне не верите, давайте объясню…

Ни один проект не переживает встречи с реализацией


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

Данные, которые вы ожидали как обязательные в ответе внешнего сервиса, могут отсутствовать (или быть невалидными). Ожидаемая уникальность может оказаться совсем не уникальной на практике (даже в sha1 когда-нибудь случаются коллизии). Процессы, которые предполагались надежными, будут падать гораздо чаще, чем вы ожидали.

Это нормально.

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

Недостающие данные могут быть сделаны опциональными или заменены умолчальными.

Некорректные данные можно рассматривать как отсутствующие, либо записывать их «как есть» и добавить дополнительную провалидированную версию, которая присутствует только если оригинал валидный.

Ограничение уникальности можно
Читать дальше →

Google исправила уязвимости в Android

Reading time2 min
Views11K
Google выпустила обновление безопасности для Android Nexus Security Bulletin — January 2016, которое закрывает 12 уязвимостей в этой мобильной ОС. Одна из исправленных уязвимостей CVE-2015-6636 (Remote Code Execution Vulnerability in Mediaserver) относится к типу Remote Code Execution (RCE) и позволяет злоумышленникам удаленно исполнить код с повышенными привилегиями в Android с использованием вредоносного мультимедийного файла. Для доставки этого файла может быть использовано MMS-сообщение или фишинговый веб-ресурс для браузера. Еще четыре критические уязвимости относятся к типу Elevation of Privilege (EoP) и позволяют атакующим повысить привилегии своего кода в системе до уровня ядра ОС.



Другие две уязвимости относятся к типу High, одна из них CVE-2015-6641 в компоненте Bluetooth позволяет атакующему подключиться по беспроводному подключению к устройству и получить доступ к личной информации пользователя. Другая уязвимость CVE-2015-6642 типа Information Disclosure в ядре позволяет обойти встроенные механизмы безопасности Android и получить повышенные привилегии в системе.

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

Что такое RESTful на самом деле

Reading time8 min
Views240K
А ваше приложение — RESTful? Чтобы ответить на этот вопрос нужно сначала разобраться что такое RESTful. Бытует мнение, что отдавать правильные коды ответов в HTTP — это уже RESTful. Или делать правильные идемпотентные HTTP-запросы — это вообще очень RESTful. Мы в Хекслете сделали практический курс по протоколу HTTP (отличия версий, отправка форм, аутентификация, куки и пр.), и в нем мы стараемся рассказать о правильном использовании запросов, но нужно понимать, что RESTful это не про HTTP, это вообще не про протоколы интернета. Современный веб и взаимодействие между браузером и сервером с помощью HTTP и URI могут удовлетворять принципам RESTful, а могут и не удовлетворять.

В сегодняшнем переводе — простое и понятное описание RESTful, и какой должна быть система, чтобы ее можно было так называть.

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

Генераторы хаоса на FPGA

Reading time8 min
Views36K
Всем привет!

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


Окунуться в мир хаоса...

Окружение разработки: Redmine + Git + ownCloud

Reading time15 min
Views28K
Данная статья появилась с целью обобщить довольно длительные попытки собрать удобное окружение для работы над проектами. Несомненно, существует множество сервисов готовых предоставить схожую функциональность, но их использование не всегда удобно и по различным причинам, может быть неприемлемо. Если возникла такая ситуация, надеюсь, представленная в статье конфигурация окажется полезной.



Сценарий использования данной связки, можно кратко описать следующим образом:

  • Файлы проекта хранятся в Git репозитории;
  • Репозиторий содержит настройки, исходники и другие файлы проекта, наличие которых удобно и допустимо в коллективном репозитории;
  • В корне расположена директория cloud, исключенная в .gitignore, в которую через WebDAV монтируется ownCloud папка, для остальных файлов;
  • Содержимое Git репозитория отслеживается в системе управления проектами Redmine.


План развертывания системы включает настройку следующих сервисов:

  1. OpenLDAP — единая учётная запись для всех сервисов;
  2. Redmine — запуск в Docker контейнере, создание и привязка Git репозитория, LDAP аутентификация;
  3. NGINX — доступ к Git репозиторию через HTTPS и LDAP аутентификация;
  4. ownCloud — LDAP аутентификация и монтирование папки через davfs2.

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

Кроме Польши, они забыли Сахалин!‌

Reading time2 min
Views19K
В своём посте пятилетней давности «Они забыли Польшу!» я рассказывал, что в Windows 95 поначалу можно было выбрать часовой пояс и региональные настройки кликом по карте мира, причём выбранный часовой пояс и выбранная страна подсвечивались.



Из-за нестабильности географических границ, от этой идеи пришлось отказаться: карты оставили, но подсветку выбранного региона убрали. Наверное, именно в таком виде — с картами, но без подсветки, как в Win95 OSR2 и в Win98 — эти два аплета «панели управления» запомнились большинству пользователей.



К 1997 г. Польша объединилась с одним из соседних часовых поясов, так что «польский часовой пояс» перестал существовать. Из-за небрежности программистов Windows, не предвидевших, что число часовых поясов на планете со временем может меняться, — с исчезновением польского пояса исчезла и вся Польша с карты.
Вы сами без труда можете заметить это различие на приведённом выше скриншоте: на «карте региональных настроек» Польша есть, а на «карте часовых поясов» Балтийское море «разлилось» и её всю «затопило».
В таком виде — с «затопленной» Польшей — карта часовых поясов просуществовала ещё десять лет, но никто не замечал недостачи. Наконец, в Windows Vista карту часовых поясов удалили окончательно, так и не исправив.

Но это не единственное различие между двумя картами!
Читать дальше →

WebGL для всех

Reading time11 min
Views54K


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

WebGL, в отличие от Javascript, имеет высокий порог вхождения, его до сих пор мало кто использует, а ещё меньше тех, кто об этом пишет. Большинство руководств или статей перепрыгивают сразу на использование какой-нибудь библиотеки. Но мы-то с вами знаем, что большие универсальные инструменты не всегда пригодны для наших задач или, возможно, делают это на неприемлемом уровне: проигрывают в скорости, поставляются с ненужным багажом и т.д.

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

Лоукост хостинг выделенных серверов в России. Возможно ли?

Reading time6 min
Views19K
Айхор

В прошлой статье с похожим заголовком, мы рассказали и даже доказали, что лоукост хостинг виртуальных серверов (VPS) в России возможен. Но как обстоят дела с арендой выделенных серверов? Возможно ли в России сдавать серверы по ценам Hetzner-а, предоставляя клиентам гигабитные каналы?

Мы решили провести небольшую аналитику и попробовать дать ответ на заголовок поста. Также мы создали лоукост-конфигуратор выделенных серверов на базе имеющегося у нас оборудования. Что из этого вышло – вы сейчас узнаете.
Читать дальше →

Разработка языков программирования и компиляторов в СССР

Reading time32 min
Views75K
Идеальный язык программирования — это такая же недостижимая мечта, как и идеальная жизнь. Но стремление к совершенству приводит к появлению вещей, которые делают нашу жизнь лучше. Скептики могут увидеть в этом изобретение очередного велосипеда. Но и это не бывает напрасным: если очередной велосипед не стал лучше прежнего, то сам процесс улучшает изобретателей. Велосипед может быть забыт и выкинут, а вот изобретатели приобретут инженерный опыт.



Программирующая Программа — первый компилятор


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

Расчет трансформатора для обратноходового импульсного источника питания (Flyback)

Reading time18 min
Views142K
Популярность обратноходовых источников питания (ОИП, Flyback) последнее время сильно возросла в связи с простотой и дешевизной этого схемного решения – на рынке можно часто встретить интегральные схемы, включающие в себя практически всю высоковольтную часть такого источника, пользователю остается только подключить трансформатор и собрать низковольтную часть по стандартным схемам. Для расчета трансформаторов также имеется большое количество программного обеспечения – начиная от универсальных программ и заканчивая специализированным ПО производителей интегральных схем.

Сегодня же я хочу поговорить о ручном расчете импульсного трансформатора. «Зачем это нужно?», может спросить читатель. Во-первых, ручной расчет трансформатора подразумевает полное понимание процессов, происходящих в источнике питания, чего зачастую не происходит, если начинающий радиолюбитель рассчитывает трансформатор в специальном ПО. Во-вторых, ручной расчет позволяет выбирать оптимальные параметры функционирования источника (и иметь представление, какой параметр в какую сторону надо изменить для достижения заданного результата) еще на этапе разработки.
Читать дальше →

ИТ-риски при процедуре покупки акций

Reading time6 min
Views9.2K


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

Естественно, всё это хорошо автоматизировано уже очень давно, но проблемы случаются. Рассмотрим конкретно ИТ-риски в процессе.
Читать дальше →

Information

Rating
Does not participate
Location
Красногвардейское, Адыгея, Россия
Date of birth
Registered
Activity