background preloader

Coding

Facebook Twitter

Алгоритмы и структуры данных - Stepic. Detailed description Данный курс — это модификация первой части базового курса «Алгоритмы и структуры данных», читающегося в Computer Science Center. Раз вы уже здесь, нет смысла подробно объяснять, почему важно знать алгоритмы. И всё же в двух словах: без алгоритмов был бы невозможен технологический прогресс; алгоритмы используются практически во всех областях computer science (например, в криптографии, анализе текстов, изображений и видео, биоинформатике); каждый уважающий себя программист должен знать базовые алгоритмы и структуры данных, чтобы писать эффективные программы.

Мы попытались изложить материал максимально доступно — не слишком углубляясь в формальности, но и не жертвуя при этом строгостью. Мы тщательно подобрали задачи для закрепления материала. Мы надеемся, что курс будет вам интересен и полезен и что он поможет вам проникнуться тем, насколько простыми и красивыми бывают алгоритмические идеи. Пишем эффективный blur на Android. Сегодня мы попытаемся разобраться с методами размытия (blur) доступными для Android разработчиков. Прочитав определенное число статей и постов на StackOverflow, можно сказать, что мнений и способов выполнить эту задачу достаточно много.

Я попытаюсь собрать все это в кучу. И так, зачем? Все чаще и чаще можно заметить эффект размытия в приложениях появляющихся на просторах Google Play Store. На написание данной статьи меня подтолкнула серия статей Blurring Images, поэтому первая часть статьи будет очень схожа. Вот примерно то, чего мы будем пытаться добиться: Приступим Для начала хочу показать с чем мы работаем. И вот как выглядит layout фрагмента (fragment_layout.xml): Как видим, ничего военного — обычная картинка на весь экран с текстом посередине. Наша цель — размыть фон текста, тем самым подчеркнув его. Из картинки вырезаем тот участок, который находится непосредственно за TextViewРазмываемПолучившийся результат ставим как фон для TextView Renderscript Вернемся к blur(): Вот что получилось:

D3.js - Data-Driven Documents. Box2d: анатомия коллизий. Что такое коллизии? В Box2D принято считать, что друг с другом сталкиваются тела, однако на самом деле при расчете коллизий используются фикстуры (fixtures, переводы слова существуют, но я не уверен, есть ли среди них устоявшийся). Объекты могут сталкиваться разными способами, поэтому библиотека предоставляет большое количество уточняющей информации, которая может быть использована в игровой логике. Например, вы можете захотеть узнать следующее:Когда столкновение начинается и заканчиваетсяТочку соприкосновения фикстурВектор нормали к линии контакта фикстурКакая энергия была приложена и результат коллизии Обычно столкновение происходит очень быстро, однако в этой статье мы попытаемся взять одну конкретную коллизию и замедлить ее, чтобы успеть рассмотреть детали происходящего и информацию, которую можно извлечь из события.

В нашем сценарии будут сталкиваться две полигональные фикстуры в мире с нулевой гравитацией (чтобы лучше контролировать процесс). Получении информации о столкновении. Применение уравнения Пуассона в задачах обработки изображений | Компьютерная Графика и Мультимедиа. Уравнение Пуассона Уравнение Пуассона – дифференциальное уравнение в частных производных. С его помощью можно описать некоторые физические процессы и явления, такие как стационарное поле температуры и электростатическое поле. Общий вид уравнение Пуассона выглядит следующим образом: . Неизвестной функцией здесь выступает функция f. Зачастую уравнение решают на каком-то ограниченном множестве. Дирихле: Неймана: Смешанные. Здесь – граница рассматриваемой области, а f*– некоторая известная функция. Несмотря на то, что уравнение Пуассона исторически возникло в процессе решения задач математической физики, в последнее время оно находит все большее применение и в других областях, в том числе в области обработки изображений.

Восстановление изображения по векторному полю градиентов На данный момент для большого спектра задач обработки изображений предложены методы, содержащие в качестве одного из этапов построение и решение уравнения Пуассона. Пусть изображение – замкнутое подмножество , с границей . Recursion. Chris Tralie Recursive functions and ACSL examples Something is said to be recursive if it is "self-similar. " Hence, recursive functions are functions that call themselves. Recursive functions can be written mathematically, as you will see, but they are also supported in many programming languages, such as C++ and Java. It is easiest to understand what a recursive function is by looking at some examples. Find f(6) for the following function: Here are the steps below:f(6) = f(5) + 2(6) f(5) = f(4) + 2(5) f(4) = f(3) + 2(4)f(3) = f(2) + 2(3) f(2) = 2f(3) = 2 + 2(3) = 8f(4) = 8 + 2(4) = 16f(5) = 16 + 2(5) = 26f(6) = 26 + 2(6) = 38 The answer is 38. Factorials and the Fibonacci sequence Two well-known examples of recursion are factorials and the Fibonacci sequence:As you may already know, the factorial of a number is the product of all of the natural numbers from 1 to the number in series, and it is signified by an exclamation point.

The Determinant of a square matrix The Towers of Hanoi. Chris Tralie : Poisson Image Editing. Chris Tralie Introduction Poisson Image Editing is a technique for "seamlessly blending" two images together fully automatically. It was originally conceived in this paper by Patrick Perez, Michel Gangnet, and Andrew Blake from Microsoft Research UK. To motivate the problem, look at an example: What if we wanted to take this image of me and some college friends at the beach... ...and this image of a Great White shark ...and make it way more badass by cutting out the shark and putting it in the water in front of us: The problem is, it's really obvious that picture is fake. Well, since I'm writing this, the answer must be yes (it's Poisson Image Editing).

Please Note: The images used in the rest of the writeup were either taken by me and my friends, or were taken from Wikimedia commons. Matching the Gradient with Boundary Conditions This whole algorithm actually boils down to a very simple idea. Given alone, the image gradient is under-constrained. Results and Discussion Example 1 Example 2. Применение преобразования Пуассона для бесшовного наложения изображений. В задачах машинного зрения и автоматизированной обработки изображений зачастую встречается задача бесшовного наложения изображений. Для наглядности, сразу приведу пример. Бесшовным наложением изображений (блендингом) будем называть метод, позволяющий вставить часть одного изображения в другое так, чтобы не было заметно швов на границах вставляемого изображения.

Данный метод как бы подстраивает вставляемую часть под остальное изображение. На самом деле для получения результата используется только градиентное поле вставляемой части и значения пикселей исходного изображения на границе обрабатываемой области. Постановка задачи Пусть у нас имеются изображения А, на которое в определенном месте накладывается изображение В. Для бесшовного блендинга необходимо чтобы градиент изображения А в области изображения В равнялся градиенту изображения В. Решение Определим границу вставляемой области следующим образом: И вычислим градиент накладываемого изображения: Восстановление по градиенту изображения В:

Learning Xcode 5 As a Designer — Design / UX. Your First Screen Type a Message UI Navigation Bar Rounded Corners Often in CSS, you don’t want to use images for basic things like rounded corners. Linking To Another Screen 1px Lines Toolbar Navigation iOS’s stock toolbar is pretty customizable, allowing you to change the colors, texts and icons. Scrolling Download the Xcode Project Go ahead, play with the Ripple Xcode functional prototype and edit the styling as you wish: No Codes If you look past the complex parts, Xcode is way friendly than HTML/CSS/SCSS/Javascript. Discuss on Designer News. Делаем свой джойстик для Unity3D с батчингом и спрайтами. Некоторое время назад мне понадобился мобильный джойстик для управления персонажем. Посмотрев на стандартный джойстик из включенного в дистрибутивную версию Unity3D пакета я понял, что это не совсем то, что мне нужно. Во-первых, там очень сильно закрученная и мудреная система вложенных друг в друга объектов.

Во-вторых, джойстик не «подскакивает» к пальцу при нажатии. В-третьих, почему-то он ограничивается квадратом, а не кругом. Чтобы не изобретать велосипед, решил поискать бесплатный джойстик в местном Asset Store. Я решил помочь себе и другим, сделав бесплатный джойстик без использования платных GUI библиотек вроде NGUI. Unity3D версии 4.3 наделала много шума добавлением нативной поддержки разработки 2D игр. Проблема стандартного джойстика была еще и в том, что используемая для отрисовки GUITexture не батчится, на каждую GUITexture на экране тратится ровно 1 Draw Call. Этот же принцип, по-моему, используется в системах вроде NGUI (я не работал с ней, не могу сказать точно). Введение в Android NDK. Для разработки приложений под ОС Android, Google предоставляет два пакета разработки: SDK и NDK.

Про SDK существует много статей, книжек, а так же хорошие guidelines от Google. Но про NDK даже сам Google мало что пишет. А из стоящих книг я бы выделил только одну, Cinar O. — Pro Android C++ with the NDK – 2012. Эта статья ориентирована на тех, кто ещё не знаком (или мало знаком) с Android NDK и хотел бы укрепить свои знания. Внимание я уделю JNI, так как мне кажется начинать нужно именно с этого интерфейса. Так же, в конце рассмотрим небольшой пример с двумя функциями записи и чтения файла. Что такое Android NDK? Android NDK (native development kit) – это набор инструментов, которые позволяют реализовать часть вашего приложения используя такие языки как С/С++. Для чего используют NDK? Google рекомендует прибегать к использованию NDK только в редчайших случаях. Что такое JNI? Преимущества JNI Как устроен JNI JNI таблица, организована как таблица виртуальных функций в С++.

Обработка ошибок Потоки. Создание QR-кодов на C/C++ 9 июня 2013 в 00:47 Это простой пример использования библиотеки libqrencode от FUKUCHI Kentaro для генерации bmp-файла с QR-кодом для какого-то текста. В интернете полно ссылок на эту библиотеку, но ни одного примера ее использования. libqrencode поддерживает QR Code model 2, описанный в JIS (Japanese Industrial Standards) X0510:2004 или ISO/IEC 18004. В настоящее время не поддерживаются режимы ECI и FNC1 QR Code model 1. Предисловие QR-код — это двухмерный код, который может быть считан различными устройствами. Сегодня, практически в каждом смартфоне есть QRCode reader. Использование кода Для использования кода, приведенного выше, необходимо скачать библиотеку libqrencode, ссылка на которую есть в самом начале поста и поместить ее исходники (можно в отдельной папке) в папку с проектом. Изменив дефайны, можно перекомпилировать программу, для генерации разных url / выходных файлов / размеров пикселей / цветов пикселей.

Только зарегистрированные пользователи могут оставлять комментарии. Добавляем Web API для программы на C++ с помощью библиотеки POCO / Блог компании Инфопульс Украина. Portable Components, кроссплатформенная библиотека для C++ «Система должна быть спроектирована так, чтобы оставаться как можно проще после серии внесенных в нее изменений»Бьярне Строуструп – программист, автор языка C++ Преамбула В данной статье мне бы хотелось бы рассказать о довольно популярной, но так редко освещаемой на Хабре библиотеке Portable Components (сокр. POCO). Она будет полезна как разработчикам бизнес-логики программного продукта, так и в решении большинства прикладных задач. При всем изобилии кроссплатформенных библиотек для C++ всё больше людей сталкиваются с POCO лицом к лицу и не знают с чего начать. В данной статье я постараюсь описать технологии, заложенные в библиотеке и дать простейшие примеры решения некоторых задач.

Также хотелось бы отметить, что за плечами библиотеки множество успешных как Open Source, так и коммерческих проектов. Описание POCO представляет собой коллекцию классов, упрощающих процесс разработки, отладки и тестирования программного продукта. Как изучать POCO Основные модули и примеры использования Utility. Archive of Interesting Code.

The Archive of Interesting Code is an (ambitious) effort on my part to research, intuit, and code up every interesting algorithm and data structure ever invented. In doing so, I hope both to learn the mathematical techniques that power these technologies and to improve my skills as a programmer. In case you're curious what I'm someday hoping to having implemented on this page, you can check out my TODO list. If you're interested in using any of this code in your applications, feel free to do so! You don't need to cite me or this website as a source, though I would appreciate it if you did. However, please don't plagiarize the code here by claiming authorship - that would just be dishonest.

I also caution you that while I'm fairly confident that the code on this site is correct, I haven't mercilessly tested every line, and so there may be a lurking bug or two here. Enjoy! Overview | POCO C++ Libraries. Добавляем Web API для программы на C++ с помощью библиотеки POCO / Блог компании Инфопульс Украина. Win32 Modeless Dialog Boxes. OpenColorIO/src/aftereffects at master · imageworks/OpenColorIO. Asio C++ library. Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. What does Asio provide? Asio provides the basic building blocks for C++ networking, concurrency and other kinds of I/O. What kind of applications can use Asio? Asio is used in all kinds of applications, from phone apps to the world's fastest share markets. Asio and Boost.Asio Asio comes in two variants: (non-Boost) Asio and Boost.Asio.

More... License Asio is released under the Boost Software License. Supported Platforms The following platforms and compilers have been tested: Win32 and Win64 using Visual C++ 7.1, 8.0, 9.0 and 10.0. The following platforms may also work: Win32 using Borland C++Builder 2007. «Boost.Asio C++ Network Programming». Глава 1: Приступая к работе с Boost.Asio. Привет Хабралюди! Это мой первый пост, поэтому не судите строго. Я хочу начать вольный перевод книги John Torjo «Boost.Asio C++ Network Programming» вот ссылка на нее. Содержание: Во-первых разберем что есть Boost.Asio, как его собрать, а так же несколько примеров.

Вы узнаете, что Boost.Asio больше, чем сетевая библиотека. Что такое Boost.Asio? Если коротко, Boost.Asio это, большей частью, кросс-платформенная С++ библиотека для программирования сетей и некоторых других низкоуровневых программ ввода/вывода. Read(stream, buffer [, extra options]) async_read(stream, buffer [, extra options], handler) write(stream, buffer [, extra options]) async_write(stream, buffer [, extra options], handler) Как вы успели заметить в предыдущем фрагменте кода функции принимают экземпляр потока, которым может быть что угодно (не только сокет, мы можем читать и писать в него). История Boost.Asio была принята в Boost 1.35 в декабре 2005г, после начала разработки в 2003г. Зависимости Сборка Boost.Asio Таймеры. MacTech | The journal of Apple technology. Node.js on Android (English version) - shutdown -r now.

Android - under the hood. Паттерны ООП в примерах для iOS. Camera and lighting - 03 - Space Shooter - Unity Official Tutorials. Node.js for Android by Paddy Byers at LXJS 2012 at Lisbon, Portugal - EveryTalk.tv. Bob's Track Builder. Лучшие книги по геймдизайну (ОБНОВЛЕНО) Learning Xcode 5 As a Designer — Design/UX. Паттерны ООП в примерах для iOS. Platformer Art Deluxe. Порядок событий в Unity3D. Погружение в скрипты игрового движка Unity3d, ч.1.

Unity3d + SQLite. Modelling by numbers: Part One A | Jayelinda's Web. Kryonet - TCP and UDP client/server library for Java. Mapping with Google - Course. L-System. Custom UI for Android | Janrain Developers. Git-Book.