Как работает солнечная энергия. Часть 1.



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



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

Кольцо луны. Гигантская солнечная электростанция на луне



Большие задачи требуют столь же больших решений, поэтому корпорацию Shimizu в Японии не стоит обвинять в том, что они мыслят мелко. Они создали план по обеспечению человечества чистой энергией путем превращения Луны в некоторое подобие анти-Звезды смерти, гигантскую солнечную электростанцию, которая несет жизнь. Сейчас это может звучать как научная фантастика, но кто может быть уверенным в том, что это не произойдет в ближайшие 100 лет? Кто знает…



Читать дальше
C++

Тест на быстродействие: Hash Map vs Vector

Задача: определить контейнер, в котором оптимальнее всего хранить данные (текстуры, буферы и т.п.). Сравним наиболее подходящие варианты: сортированный массив и Hash Map.
Условие: контейнер один раз заполняется, а затем с ним ведется работа. (т.е. не рассматривается вариант изменения содержимого контейнера в реальном времени)
Критерий:
1. Скорость заполнения
2. Скорость выборки
Данные: поскольку задача поиска, то в качестве данных используются целые числа. Если требуется хранить структуры, то это повлияет только на скорость заполнения массива, но не время поиска данных. Ключ всегда лучше получать как хеш по данным или уникальное поле данных в структуре.


Читать дальше
C++

Как избавится от vcredist'a

При работе с Microsoft Visual Studio C++ возникает проблема распространения приложения. Для запуска оно требует некоторые CRT библиотеки, которые можно установить вместе с vcredist'ом. Данная статья покажет как настроить приложение, чтобы оно не требовало дополнительной установки.


Читать дальше
C++

Оптимизация кода на С++

Иногда бывает сложно решить, какую конструкцию лучше использовать i++ или ++i, либо выбрать между конструкцией if-else и switch. В этой статье, написанной специально для сообщества iT works, представлены наиболее реальные средства оптимизации кода, которые должен знать каждый профессиональный программист.

Некоторые считают, что времена оптимизации на уровне кода прошли навсегда, однако это не так. Сейчас существует множество платформ в которых нет таких могущественных компиляторов как в Microsoft Visual Studio. Например шейдерные языки (hlsl, glsl) или код для CUDA, PlayStation3, SPU или мобильные платформы. В зависимости от организации кода, может в десятки раз отличаться его эффективность иногда из-за неэффективности компилятора, на чаще из-за доступа к памяти.

Программируя для разных платформ изучите возможности вашего компилятора и особенности архитектуры процессора (если вы пишите для конкретной консоли). Проведите тесты производительности разных вариантов оптимизации. Часто сложно предполагать, какие именно способы будут наиболее эффективными. А эта статья подскажет разные приемы, которые могут вам помочь. Однако не следует оптимизировать слепо, без предварительного анализа и профилирования. Помните, что преждевременная оптимизация — это зло.

Если вы являетесь программистом в VS под Windows, то скорее всего со многими описанными приемами оптимизации компилятор эффективно справится. Обратите внимание на пункты работы с памятью, а так же я рекомендую ознакомиться с техникой Data oriented design. Некоторые советы по ее использования ищите в статье Методы оптимизации памяти.

Итак, начнем:

1. Используйте векторизацию данных и векторные команды их обработки (например SSE в CPU или упаковывайте данные если используете шейдеры или CUDA). Это позволит использовать SIMD (Single Instruction, Multiple Data) архитектуру, что значительно повысит скорость вычислений. Если вы решите использовать этот метод, то не забывайте про выравнивание данных в памяти.


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

5 инструментов работы с текстом которые вы обязаны знать

Текст имеет большое значение в мире UNIX. Почти все, что может потребоваться узнать о системе, может быть получено путем чтения текстовых файлов. Часто такие файлы могут иметь несколько тысяч строк. Иногда — двенадцать миллионов.

В таких случаях сложно обойтись без обработки текста. Обработка текста позволяет получить ответ быстрее и проще. Стоит отметить, что у всех есть вопросы к их системе. Например, «Сколько ошибок 404 случилось на моем сайте?», «Пытался ли кто-то получить доступ к моему серверу, а я об этом не знал?», «Какая из программ так сильно загружает CPU?»

Данная статья исследует основные пути получения ответов на вопросы с помощью набора стандартных инструментов. Ответы на вопросы будем получать с помощью одной строки запроса, комбинируя инструменты. Писать сценарии в этой статье не будем.



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

Дух Китая. Китайцы

Китайцы – очень доброжелательный народ. Постоянно стараются помочь. При каждой встрече тут принято приветствовать друг друга. Т.е. нас приветствуют, сколько бы мы раз не прошли за день около охранника в общежитии. При этом, если мы куда то идем вечером, то у него там уже постель стоит, он так и спит перед дверью. Жалко его становится, когда мы потом возвращаемся назад, так он видимо и бегает всю ночь от кровати, до двери.


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

Дух Китая. Дороги

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


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

Дух Китая. Китайский город

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


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