Рубрика «Программирование» - 842

PHPixie Amalgama — Интернационализация в PHPixie - 1 Я уже достаточно давно использую PHPixie в работе и очень доволен, единственное чего мне не хватало — это поддержка многоязычности. Так как я работаю в Казахстане, большинство заказчиков хотят на своем сайте несколько локализаций, особенно это касается государственных учреждений. PHPixie был моим первым фреймворком, переходить на что-то другое не хотелось(хотя признаюсь чуть не изменил со старушкой коханой) и я писал «уродливые костыли», что-бы реализовать мультиязычность. В этой статье речь пойдет о моём новом вполне удобном и изящном «костыле», которым я решил поделиться — модуле «PHPixie Amalgama».
Читать полностью »

В продолжение статьи о КОП я подробней расскажу о тестировании компонентов.
Существует много информации о юнит-тестировании и BDD, эта статья будет посвящена настройке SpecFlow для работы с Unity Engine, а также содержать общие рекомендации по созданию тестируемой архитектуры игры с компонентно-ориентированным подходом.
Читать полностью »

Содержание

Вы властны над своим разумом, но не над внешними событиями. Когда вы поймёте это, вы обретёте силу.
Марк Аврелий, «Медитации».

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

Обработчики событий

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

Умный дом Noolite. Датчики и шлюз. Java API - 1

Здравствуй, уважаемый %username%!

Сегодня мы будем рассматривать относительно новые девайсы белорусской компании Ноотехника — датчики и Ethernet-шлюз. Так же будет предоставлена Java-библиотека для работы с API.
За подробностями — под кат.
Читать полностью »

Моделирование пандемий с помощью языка Wolfram Language (системы Mathematica 10) на примере лихорадки Эбола - 1
Перевод поста Виталия Каурова (Vitaliy Kaurov) "Modeling a Pandemic like Ebola with the Wolfram Language".

Выражаю благодарность за помощь в переводе участникам сообщества ВКонтакте Русскоязычной поддержки Wolfram Mathematica: Еве Фрумен, Курбану Магомедову, Глебу Михновцу, Андрею Кротких.

Скачать перевод в виде документа Mathematica, который содержит весь код использованный в статье, можно здесь (архив, ~100 МБ).

Данные крайне важны для беспристрастного взгляда в будущее, но одни только данные еще не являются прогнозом. Для предсказания развития пандемий, террористических актов, природных катастроф, падений рынков и других сложных явлений нашего мира необходимы научные модели. Один из инструментов борьбы с текущей ужасающей вспышкой лихорадки Эбола — создание компьютерной модели возможного распространения вируса. Понимая, где и как быстро вспышка может проявиться, правительственные структуры смогут организовать эффективные профилактические меры для снижения скорости передачи и, в конечном итоге, остановить эпидемию. Наша цель сейчас: продемонстрировать построение математической модели, описывающей глобальное распространение пандемии на основе реальных данных. Модель применима к любой эпидемии, но мы будем иногда упоминать и использовать данные о текущей вспышке лихорадки Эбола в качестве примера. Результаты не следует рассматривать как реалистичную количественную оценку текущей пандемии вируса Эбола.
Читать полностью »

После официального анонса Apple Watch многие остались в недоумении — что же это такое, почему вокруг этого столько шума и действительно ли сдулся Apple. Было совершенно непонятно, зачем же эта штука нужна, что в ней такого особенного и чем она будет лучше других часов от конкурентов? Маркетинговая болтовня Тима Кука и попытки рисовать на этом девайсе не убедили совершенно.

Apple Watch. Что можно и чего нельзя в приложениях, разбор SDK - 1

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

Результаты исследование несколько озадачили.
Читать полностью »

За один проход.

Среди задач по программированию часто попадаются такие: дана последовательность однотипных элементов (обычно это числа), требуется за один проход по ней найти какую-нибудь характеристику (среднее квадратическое отклонение, количество минимальных элементов, непрерывный участок с наибольшей суммой...) Дополнительное ограничение — последовательность может быть очень длинной, и в память не поместится. Других ограничений на элементы последовательности, обычно, не накладывается.
С этими задачами всё, более или менее, понятно: нужно найти то, что на мехмате МГУ называют «индуктивным расширением» искомой функции, и реализовать её вычисление. Если найти не удалось (требуемый объём памяти слишком велик), то задача не решается.
Но попадаются и другие задачи. В них есть дополнительные ограничения на элементы последовательности в совокупности, и эти ограничения приходится существенно использовать для решения (и проверять их не надо). Простейшая такая задача выглядит так:

Задача 1. В последовательности записаны целые числа от 1 до N в произвольном порядке, но одно из чисел пропущено (остальные встречаются ровно по одному разу). N заранее неизвестно. Определить пропущенное число

Решение очевидно: просматриваем числа, находим их количество K и сумму S. По условию, N=K+1, значит, сумма чисел от 1 до N будет равна (K+1)*(K+2)/2, и пропущенное число равно (K+1)*(K+2)/2-S. Если вы почему-то боитесь переполнений, то работайте с беззнаковыми числами (там переполнения не страшны — но будьте осторожны с вычислением (K+1)*(K+2)/2 :) ), или вместо суммы ищите XOR всех чисел.

Читать полностью »

Когда вы открываете веб-страницу в браузере, он получает исходный текст HTML и разбирает (парсит) его примерно так, как наш парсер из главы 11 разбирал программу. Браузер строит модель структуры документа и использует её, чтобы нарисовать страницу на экране.

Это представление документа и есть одна из игрушек, доступных в песочнице JavaScript. Вы можете читать её и изменять. Она изменяется в реальном времени – как только вы её подправляете, страница на экране обновляется, отражая изменения.
Читать полностью »

Я часто слышу советы по сравнению алгоритмов — “проведи бенчмарк и будет понятно”. Или сам довольно часто хочу проверить производительность того или иного инструмента или алгоритма.

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

Буквально пару дней назад Apple выпустила Xcode 6.2 с поддержкой iOS 8.2 beta и WatchKit.
Данный фреймворк предназначен для взаимодействия с Apple Watch и разработки приложений для них.
Впрочем, все не так просто.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js