Сообщения

Сообщения за 2014

В C++ можно было программировать смайликами еще до того, как это стало мейнстимом

Изображение
С поддержкой в новых хипстерских языках Юникода в исходниках стало возможным использовать этот самый юникод для написания программ. Например: Утиная типизация и Swift Кроме всего прочего в языке Swift от яблок появилась возможность использовать unicode для имен переменных и типов, в итоге можно написать что-то такое: Утиная типизация в Swift C++11 В С/С++ возможность писать смайликами была задолго до появления шаблонов юникода вообще, и даже 8 битных кодировок в частности. Но поскольку C++ это язык суровых бородатых дядек, то смайлики все здесь текстовые, но от этого не теряющие своей выразительности. Синтаксис C++ и так  не подарок, но на нем, даже без использования шаблонов можно написать нечто подобное: Мама, я пишу смайликами на C++ Это совершенно валидная программа на C++11, она будет без ошибок скомпилирована и выполнена:  Пример в Online IDE Как это вообще возможно? ответ под катом:

Продолжаем играться с Жизнью

Изображение
Итак, Игру Жизнь мы уже ускорили  настало время превратить ее во что-то, во что действительно можно играть. Например такое: Первый концепт Играть мы будем за красненький  "космический корабль"  и стараться не столкнуться с зелененькими клетками поля. Космические корабли бороздят

iTunes Connect, что ты делаешь ахаха прекрати

Изображение
Сегодня при попытке зайти в iTunes Connect в раздел Sales and Trends разработчики стали получать вот такое замечательное сообщение: You do not have access to the application PIANO. Contact Us...  При этом ни у кого, и у меня в том числе, приложения "PIANO" не было. Ждем развития событий.

Ускоряем Game of Life.

Изображение
Планер (Glider) Игра жизнь Джона Конвея Conway's Game of Life  с 70-х годов превратилась из математической головоломки в сферу исследований именитых ученых. Жизнь - это простой клеточный автомат,    с двумя состояниями каждой клетки: "живая" и "мертвая" и несколькими элементарными правилами изменения состояний: Если у клетки ровно три живых соседа, то в ней "зарождается" жизнь; Если у клетки есть два или три соседа, и она жива, то она продолжает жить, иначе она "погибает" - от "одиночества" или от "перенаселения". У каждой клетки 8 соседей. Подробнее можно прочесть на вики . На  rosettacode.org  можно найти десятки реализаций. Но ни одной на Objective-C. Постараемся восполнить этот пробел.

Писькомерка для программистов

Изображение
Программисты тоже люди. И ничто человеческое им не чуждо. А значит им иногда нужно мериться друг с другом. А чем могут мериться программисты? Непосредственно проделанной работой, то есть "сколько кто накодил?" (прямо как в Индии, ага).

Продаем контент iTunes из своего приложения

Изображение
Начиная с iOS 6 у разработчиков появилась замечательная возможность продавать контент, из iTunes прямо внутри приложения, используя нативный интерфейс. Под контентом понимается не только музыка и книги или кино, но и другие приложения. Для подключения этой функциональности нужно буквально несколько строк кода:

Релиз новой игры: Numeromania

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

Подключаем шаговый двигатель к Arduino

Изображение
Итак, в наличие имеются Arduino Mega 2560, униполярный шаговый двигатель 28BYJ-48, контроллер для него(ULN2003), куча проводов и желание все это попробовать. Шаговый двигатель 28BYJ-48 и контроллер ULN2003

Дельта робот

Изображение
Дельта робот относится к так называемым параллельным роботам. В станках с ЧПУ, рабочие органы которых движутся по линейным направляющим в X, Y и Z плоскостях, которые жестко закреплены под 90° друг к другу. Дельта робот же построен на треугольниках и параллелограммах. Дельта робот и его кинематека

Эолова арфа и дорожка Кармана

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

Фальсифицируемость и теории отвергаемые "официальной" наукой

Изображение
Улыбающийся человек на фотографии Карл Раймунд Поппер. Австрийский ученый, философ активно критиковал существующие на то время понятия о научном методе, занимался проблемой демаркации знаний. И в 1935 году сформулировал критерий "научности" или "антинаучности" любой теории или гипотезы. Этим критерием является фальсифицируемость или "критерий Поппера" .

Рисуем наикратчейшее расстояние на карте

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

Ортодромия

Изображение
Какой кратчайший путь между двумя точками? Казалось бы, глупый вопрос. Со школы мы знаем, что кратчайшее расстояние между двумя точками на плоскости - прямая, отсюда:  `L = sqrt( (x_1-x_2)^2 + (y_1-y_2)^2 )` Ключевое слово здесь плоскость. Если поверхность вогнутая или выпуклая (например, поверхность земного шара), то приходится считаться с этой кривизной. Если мы прокладываем путь на карте и расстояние невелико (например, десятки километров), а точки находятся вблизи экватора, то можно считать, что земля на этом участке "плоская" и пренебречь ее формой. Это значительно упрощает расчеты: соединил две точки прямой при помощи линейки и всё. Погрешность при этом будет невелика. С увеличением расстояний кривизна земли все больше и больше влияет на конечный результат. И если необходимо провести действительно наикратчайший маршрут между двумя точками на Земле, то тут в игру вступает ортодромия: Вот так выглядит самый короткий путь