Как стать автором
Поиск
Написать публикацию
Обновить
63
0
Андрей @Smi1e

Пользователь

Отправить сообщение

Self-contained дистрибуция .NET Core приложений

Время на прочтение3 мин
Количество просмотров31K

Если вы вдруг пропустили, то .NET теперь open source, а .NET Core это бесплатный, open source, кроссплатформенный фреймворк, который вы можете скачать и запустить за время <10 минут. Вы можете получить его на Mac, Windows и на пол-дюжине Unix-ов с сайта dot.net Попробуйте его вместе с бесплатной, кроссплатформенной Visual Studio Code и вы будете писать на C# и F# всегда и везде.
Читать дальше →

Двенадцать полезных Chrome DevTools Tips

Время на прочтение4 мин
Количество просмотров83K
В данной статье мы рассмотрим некоторые функции инструментов разработчика Chrome. Конкретно я использую Chrome Canary и вам советую. И не потому, что это отсылка на маленьких милых птиц, которые пожертвовали своими жизнями чтобы мы могли добывать свежий уголь.

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

(В статье ниже присутствуют анимированные гифги, которые начинают раздражать после первого цикла. Поэтому я советую открыть dev tools и удалить DOM ноды, которые отвечают за изображения.)

Итак, поехали:

Копируем переменную в буфер обмена


Об этой возможности я узнал из комментариев, и считаю ее достаточно полезной чтобы быть описанной в начале. Иногда бывает нужно скопировать содержимое переменной в буфер обмена. Например html код или json объект. Для этого можно использовать copy функцию.

copy (someVariable)

Теперь текстовое представление переменной скопировано в буфер обмена.
Читать дальше →

Samsung Pay на свой страх и риск запустился в России — мнения экспертов

Время на прочтение7 мин
Количество просмотров50K

Фото: Reuters

Сегодня, 29 сентября 2016 года, в России начинает работу платежный сервис Samsung Pay, предназначенный для бесконтактной оплаты товаров и услуг. До конца года он станет доступен для обладателей смартфонов серии Galaxy, выпущенных не ранее 2016 года. Пока Samsung Pay могут использовать только владельцы MasterCard.

Год назад Samsung Pay успешно запустился в США. Но не стоит забывать, что там бесконтактные платежи значительно сильнее распространены, чем в России. Во многом это произошло благодаря основному конкуренту компании на рынке — Apple. Ни для кого не будет сюрпризом тот факт, что на территории РФ до сих пор большой процент наличных платежей — люди в отдельных городах по-прежнему получают зарплату, в основном, конвертами в бухгалтерии.

Помимо того, что бесконтактные платежи – прогрессивная технология, она считается еще самой безопасной. По крайней мере, в этом уверены представители Samsung Pay. Компания обещает, что платежи будут совершенно безопасными. Но что стоит за этими обещаниями? Благодаря чему это будет достигнуто?
Читать дальше →

Программирование&Музыка: понимаем и пишем VSTi синтезатор на C# WPF. Часть 1

Время на прочтение26 мин
Количество просмотров53K

Занимаясь музыкальным творчеством, я часто делаю аранжировки и записи на компьютере — используя кучу всяких VST плагинов и инструментов. Стыдно признаться — я никогда не понимал, как "накручивают" звуки в синтезаторах. Программирование позволило мне написать свой синтезатор, "пропустить через себя" процесс создания звука.


Я планирую несколько статей, в которых будет пошагово рассказано, как написать свой VST плагин/инструмент: программирование осциллятора, частотного фильтра, различных эффектов и модуляции параметров. Упор будет сделан на практику, объяснение программисту простым языком, как же все это работает. Теорию (суровые выводы и доказательства) обойдем стороной (естественно, будут ссылки на статьи и книги).


Обычно плагины пишутся на C++ (кроссплатформенность, возможность эффективно реализовать алгоритмы), но я решил выбрать более подходящий для меня язык — C#; сфокусироваться на изучении самого синтезатора, алгоритмов, а не технических деталей программирования. Для создания красивого интерфейса я использовал WPF. Возможность использования архитектуры .NET дала возможность библиотека-обертка VST. NET.


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



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


Построчный разбор лицензии MIT

Время на прочтение15 мин
Количество просмотров111K

171 слово, которое должен понимать любой программист


Лицензия MIT – самая популярная лицензия для программ с открытым кодом. Здесь приводится одно из её прочтений, с построчным разбором.

Читаем лицензию


Если вы разрабатываете программы с открытым кодом, и не читали эту лицензию подробно – а она состоит всего из 171 слова – вам нужно этим заняться. Особенно, если вы не занимаетесь лицензиями на ежедневной основе. Отметьте всё, что вам непонятно. А я повторю все эти слова, по порядку и по кусочкам, вместе с контекстом и комментариями. При этом важно представлять себе её целиком.
Читать дальше →

Определяем Phantom-ных ботов

Время на прочтение6 мин
Количество просмотров19K
» Перевод статьи Detecting PhantomJS Based Visitors | Неплохое обсуждение статьи на Hacker News

Статья старая, помидорами не кидайтесь — лучше делитесь опытом в комментариях.

В наши дни во многих инцидентах по безопасности используется автоматизация (со стороны злоумышленников). Web-scraping, повторное использование паролей, click-fraud — все это совершается злоумышленниками в попытках (зачастую успешных) замаскироваться под обычного пользователя, то есть по сути выглядеть для сервера как броузер обычного пользователя. Как владелец сайта, вы наверно хотите быть уверены в том что обслуживаете людей а не бездушные железки, а как поставщик сервиса вы наверно хотите еще и доступ дать к своему контенту через api, а не через тяжелый и глючный web-интерфейс.
Читать дальше →

learnopengl. Урок 1.1 — OpenGL

Время на прочтение7 мин
Количество просмотров357K
Здравствуйте. Несколько недель назад я начинал серию переводов статей по изучению OpenGL. Но на 4 статье один хабровчанин заметил, что мои переводы могут нарушать лицензию, по которой распространяются учебные материалы, предоставленные в исходной статье. И действительно, мои переводы нарушали лицензию. Для разрешения этой проблемы я обратился к авторам того набора уроков, но так и не смог добиться нормального ответа. По этой причине я связался с автором другого, не менее (а возможно даже и более) крутого, набора уроков по OpenGL: Joey de Vries. И он дал полное разрешение на перевод его набора уроков. Его уроки гораздо более обширные, чем прошлый набор, поэтому эти переводы растянутся на долго. И я обещаю, будет интересно. Заинтересовавшихся прошу под кат.

Также я встал на распутье: либо я опишу все основы вроде создания окна и контекста в одной статье, чтобы не плодить статьи, но в таком случае такую огромную статью не всякий осилит; либо я также как и раньше буду переводить, опираясь на иерархию оригинала. Я решил выбрать второй вариант.

На счет уроков по Vulkan: к сожалению мне тяжело сейчас написать уроки по данному API по причине скудной видеокарты на данный момент, которая просто не поддерживает Vulkan API, поэтому уроки по данному API будут только после обновления видеокарты.
Читать дальше →

Верстка: отображаем пользовательский контент

Время на прочтение8 мин
Количество просмотров33K
Под пользовательским контентом в этой статье мы понимаем любой текст на странице, автором которого является пользователь. Чаще всего это комментарии, пользовательские записи «на стене» в микроблоге, информация «о себе» в профиле и все в таком роде. Задача не то чтобы очень сложная, но требует внимательности и хорошего понимания основ верстки. В этой статье сделана попытка собрать воедино то наиболее важное, что нужно знать о верстке, включающей пользовательский текст.


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

История вышек связи: «главная телебашня страны»

Время на прочтение5 мин
Количество просмотров21K

Уфимская телебашня.

До того, как основным источником связи в России стали вышки сотовых сетей, на территории страны десятки лет существовала другая глобальная инфраструктура беспроводных коммуникаций, до сих пор поражающая воображение своим размахом. Под катом говорим о «проекте 410» — телебашнях СССР, установленных почти в каждом крупном городе.
Читать дальше →

Сжатие мобильной графики в формат ETC1 и открытая утилита

Время на прочтение9 мин
Количество просмотров17K
При развитии free-to-play мобильной игры вместе с новыми фичами регулярно добавляется и новая графика. Часть ее включается в дистрибутив, часть скачивается в ходе игры. Для возможности запуска приложения на устройствах с небольшим размером оперативной памяти разработчики применяют аппаратно сжатые текстуры.



Формат ETC1 обязателен к поддержке на всех Android-устройствах с OpenGL ES 2.0 и является хорошей отправной точкой оптимизации потребляемой оперативной памяти. По сравнению с форматами PNG, JPEG, WebP загрузка текстур ETC1 осуществляется без интенсивных расчетов обычным копированием памяти. Также улучшается производительность игры по причине меньших размеров данных текстур пересылаемых из медленной памяти в быструю.
Читать дальше →

Как герои игры OverWatch однажды облысели, а мы вернули им шевелюры

Время на прочтение5 мин
Количество просмотров14K
image
Одной из возможностей Parallels Desktop 12 для Mac является поддержка РС-игр. Существуют множество игр, доступных только для Windows и Xbox, и с помощью Parallels Desktop в эти игры можно играть на Mac без перезагрузки — внутри виртуальной машины. Можно ли считать, что проблема игр для PC на Mac полностью решена? Пока нет, но мы работаем над этим. В этой статье описаны несколько примеров того, как мы это делаем.
Читать дальше →

Пишем Hello World для HoloLens

Время на прочтение15 мин
Количество просмотров23K
Спешим поделиться уникальным материалом подготовленным специально для нашего блога Глебом Захаровым, HoloLens Lead компании Zengalt – пошаговая инструкция по разработке приложения для Microsoft HoloLens и его запуска в эмуляторе. В статье вы найдете также обзор самого устройства и узнаете о типах приложений.


HoloLens — это Windows 10 PC (2GB RAM, 64GB SSD, x86 CPU, GPU, HPU, BT, WiFi, подробно спецификации можно посмотреть тут) в виде устройства, похожего на очки для горных лыж. Через очки видно все вокруг, хотя они немного затемняют картинку.

На хабре уже были обзор этого устройства с конференции //Build. В этой статье я предлагаю вам написать приложение для HoloLens и запустить его в эмуляторе.
Читать дальше →

Screen Space Ambient Occlusion

Время на прочтение19 мин
Количество просмотров9.5K
Далее будет рассказано о том, как реализовать метод расчета рассеянного освещения Screen Space Ambient Occlusion на языке программирования С++ с использованем API DirectX11.
Читать дальше →

Как официально принимать валютные платежи из-за рубежа в России (ИП)

Время на прочтение4 мин
Количество просмотров55K
После моего комментария, периодически получаю однотипные вопросы о получении валютных платежей из-за рубежа.

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

О фундаментальных ошибках в дизайне языков программирования

Время на прочтение6 мин
Количество просмотров22K
Как-то раз мне на глаза попалась статья о том, что самой дорогой ошибкой в дизайне языков программирования было решение определять окончание строки в C по NULL-байту. Один из вариантов перевода этой статьи на Хабре (хотя я, по-моему, читал другой). Эта статья меня немного удивила. Во-первых, как будто в те времена экономии каждого бита памяти можно было шикануть и выделить ещё 2-4 байта в каждой строке на хранение её размера. Во-вторых, никаких особо катастрофических последствий это решения для программиста не несёт. Ошибок, которые можно по этому поводу совершить я могу придумать целых две: неверно выделить память для строки (забыть место под NULL) и неверно записать строку (забыть NULL). О первой ошибке уже предупреждают компиляторы, избежать второй помогает использование библиотечных функций. Всей-то беды.

Значительно большей проблемой времён дизайна языка С (и затем С++) мне кажется другое — оператор for. При всей его кажущейся безвредности — это просто кладезь потенциальных ошибок и проблем.

Давайте вспомним классическое его применение:

for (int i = 0; i < vec.size(); i++)
{...}

Что же здесь может пойти не так?
Читать дальше →

Как Dolphin Emulator победил последнюю непокорённую игру GameCube

Время на прочтение12 мин
Количество просмотров23K

В Dolphin 5.0 можно было хотя бы загрузить любую игру с GameCube. Кроме одной. Сложный способ использования блока управления памятью в PowerPC Star Wars: The Clone Wars до недавнего времени не позволял играть в неё через Dolphin. Но в версии Dolphin 5.0-540 эта проблема наконец решена: эмулятор научился загружать все игры GameCube из официальной библиотеки консоли.

Оптимизация кода: процессор

Уровень сложностиСложный
Время на прочтение18 мин
Количество просмотров117K
Все программы должны быть правильными, но некоторые программы должны быть быстрыми. Если программа обрабатывает видео-фреймы или сетевые пакеты в реальном времени, производительность является ключевым фактором. Недостаточно использовать эффективные алгоритмы и структуры данных. Нужно писать такой код, который компилятор легко оптимизирует и транслирует в быстрый исполняемый код.

image

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

Null, великий и ужасный

Время на прочтение5 мин
Количество просмотров127K

Ошибка дизайна


Именно так и никак иначе: null в C# — однозначно ошибочное решение, бездумно скопированное из более ранних языков.


  1. Самое страшное: в качестве значения любого ссылочного типа может использоваться универсальный предатель — null, на которого никак не среагирует компилятор. Зато во время исполнения легко получить нож в спину — NullReferenceException. Обрабатывать это исключение бесполезно: оно означает безусловную ошибку в коде.
  2. Перец на рану: сбой (NRE при попытке разыменования) может находится очень далеко от дефекта (использование null там, где ждут полноценный объект).
  3. Упитанный пушной зверек: null неизлечим — никакие будущие нововведения в платформе и языке не избавят нас от прокаженного унаследованного кода, который физически невозможно перестать использовать.

Этот ящик Пандоры был открыт еще при создании языка ALGOL W великим Хоаром, который позднее назвал собственную идею ошибкой на миллиард долларов.

На самом деле все не так плохо

Компенсация лагов для оружия в MechWarrior Online

Время на прочтение12 мин
Количество просмотров17K


Задержка в сети (лаг) — это реальность, которую нужно учитывать в многопользовательских играх. Сообщениям, передаваемым через Интернет, требуется время, чтобы достичь точки назначения. В зависимости от маршрута и его длины передача этих сообщений может занять довольно долгое время. Это может негативно влиять на процесс игры, особенно в динамичных клиент-серверных играх, таких как FPS. То, что кажется очень простой задачей (стреляй, пытаясь попасть в цель), внезапно становится очень сложным в создании плавного игрового процесса для всех игроков. Думаю, не нужно говорить, что создавать многопользовательские игры сложно, при этом возникает множество проблем, которые разработчики должны решить. В этой статье я расскажу, как система вооружения MechWarrior Online справляется с лагом.
Читать дальше →

Записывай всё

Время на прочтение8 мин
Количество просмотров37K

Один: «Ты записал, что я тебе сказал?». Второй: «Я запомнил!». Через час бездонная пропасть в памяти и звенящая тишина в голове.

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

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность