PHP это ваша первая школьная любовь, та самая, которую вы робко держали за руку, прогуливаясь по парку.
Если языки программирования это девушки, то PHP это подрочить. Множество людей с этого начинали, множество людей говорят, что это приводит к пагубным результатам. Впрочем, есть плюс: можно быстро достичь желаемого эффекта, не задумываясь о последствиях. Главное не перестараться, иначе с девушками потом просто не получится.
Хм, и я даже не заметил совсем очевидную ачивку старика, «Medal of total space awesomeness». Жаль, что текст нечитаем в 1080p. Окончательный ответ даст 4k-версия.
На самом деле пока не появится полного непротиворечивого описания сюжета, например, на Википедии, судить о сюжете сложно. По крайней мере судя по количеству смен сцен они явно пытались уложить в 10 минут нечто неукладываемое. В случае с Elephant Dreams лично я, пока не прочитал расшифровку сюжета, упорно не понимал смысл всего происходящего. Какой-то старик, подросток, куча механизмов, зубастая телефонная трубка, подросток убивает старика. А когда недавно сломал сборку со словами completely safe, ещё раз вспомнил противоречивость сюжета:
— At the left we can see… At the right we can see the…
Everything is safe. Perfectly safe.
Emo?
Emo! Watch out!
Are you hurt?
— I don't think so. You?
— I'm Ok.
— Get up. Emo, it's not safe here. Let's go.
— What's next?
— You'll see!
Пересмотрев фильм несколько раз (благо размер это позволяет), я пришёл к следующему выводу. Происходящее на экране — 3D-игра будущего, имеющая несколько сценариев (spaces, которые во множественном числе, а не космос). Одна группа людей проходит кампанию, в которой нужно наладить отношения с роботами. При этом активно использует сохранений состояний после каждого успешного момента (memory synced and locked, state saved, memory playback). На доске перебираются разные варианты, куча вариантов уже испробовано. Главный герой этой части — старик — при запуске симуляции становится молодым и пробует вариант за вариантом, мотивируя это фразой «I just want to be awesome in space».
Другая группа людей берёт в руки оружие и играют по сценарию отражения нападения. Куча нубов погибают, не нанеся никакого урона. Barley (чернокожий) профи по сценариям (awesome in all spaces, то есть космос тут не причём), выпивая сок пачку за пачкой, заваливает снайперкой-дробовиком (лол) гору роботов. Соответственно, 2D-версия всего происходящего показана справа в титрах (убывающий ХП). Повёрнуто:
А вы задумывались, что происходит при выполнении команды? Виснуть должна не rm, а шелл ещё на шаге подстановки. rm и прочие утилиты даже не должны знать о существовании glob. Напечатав звёздочку, вы заставили шелл генерировать огромную строку из имён файлов, разделённых пробелами. А потом, если даже генерация удалась бы, эту огромную строку rm бы парсил (напишите echo * для доказательства).
К чему я: написали бы cd .. && rm -r dirname, и всё бы прошло нормально.
Из приключенческих записок пользователя Ubuntu 12.10, 28 августа 2012:
lockal@lockal-OEM:~$ sudo apt-get upgrade
…
The following packages will be REMOVED:
indicator-status-provider-mc5 indicator-status-provider-pidgin libdbusmenu-qt2:i386 libindicator-messages-status-provider1 libqt4-dbus:i386 libqt4-declarative:i386 libqt4-network:i386 libqt4-script:i386 libqt4-sql:i386
libqt4-sql-mysql:i386 libqt4-xml:i386 libqt4-xmlpatterns:i386 libqtcore4:i386 libqtgui4:i386 skype skype-bin:i386 sni-qt:i386
На всякий случай, чтобы не писали жёлтые статьи
Я же написал, что это альфа-версия Ubuntu 12.10. Это простое удаление по зависимости, вызванное ошибками в сборке пакетов. Ничего ужасного по сравнению с многими другими приключениями пользователя альфа-бета версий Ubuntu.
Так что пока это не оракловская пустышка Java, хотя, если Microsoft будет забивать на обновления, skype закончит так же, как и оракловская Java (в итоге сделали немного по другому, но сам текст впечатляет).
In the near future (exact date TBD), Canonical will remove all Sun JDK packages from the Partner archive. This will be accomplished by pushing empty packages to the archive, so that the Sun JDK will be removed from all users machines when they do a software update. Users of these packages who have not migrated to an alternative solution will experience failures after the package updates have removed Oracle Java from the system.
Под линуксом однозначно Shutter. Умеет заливать скриншоты на файлохранилища и FTP, Можно размывать или затирать участки, быстро расставлять стрелочки, числовые метки, тексты, рамки и так далее. Знает базовые эффекты, типа 3d, мокрого пола, теней и так далее.
Всякий раз, когда вам нужны функции из C++11 (или даже не вошедшие в него), но нет возможности использовать C++11, смотрите буст. По лямдам, по именованным аргументам, по статическим assert-ам, по хитрым контейнерам и алгоритмам, по потокам, по регулярным выражениям и по концептам в том числе. Тем более ключевое слово «концепт» вы знаете. www.boost.org/doc/libs/1_51_0/libs/concept_check/concept_check.htm. Там же есть описание реализации.
Только, наверное, интенсивность для дисперсии нужно общую брать (max(r, g, b)). Иначе, представим, что в по красной компоненте наибольшая дисперсия в левом верхнем квадранте, по зелёной — в правом верхнем, по синей — где нибудь ещё. В итоге будут взяты средние значения компонент из разных квадрантов и получатся абсолютно новые цвета.
Или вообще считать не по RGB, а HSL (не уверен про расчёт среднего hue).
Как-то не очень… Из лучшего, что я когда-либо видел — www.youtube.com/watch?v=Gzj723LkRJY. Это видео 2005 года с демонстрацией TextMate и Ruby on Rails. Oops! And here we go, we have a title. Now we need to add a body. Oops! And we have a body. Видео из топика производит в принципе похожее впечатление, но не то. Делается изначально непонятно что на неизвестных технологиях, какие-то куски уже написаны заранее, видео ускорено (и это подаётся со словом продуктивность). Да и музыка не самая удачная (исключительно личное мнение). Это так, на заметку для будущих промо-видео.
А вот и C++11 с новыми тредами. Собирается минимум на gcc 4.7, не раньше с g++ -std=c++0x -pthread.
Светлое будущее. На ассемблере разворачивается в 1280 строк
#include <iostream>
#include <thread>
#include <mutex>
int main()
{
const size_t N = 5000, num_threads = std::thread::hardware_concurrency();
std::thread t[num_threads];
std::mutex mutex;
auto func = [&mutex, num_threads](size_t start, size_t end, double &result) {
auto sum = 0.0;
for (auto i = start; i < end; i++) {
auto x = (i + .5) / N;
sum += 4.0 / (1.0 + x * x);
}
std::lock_guard<std::mutex> lock(mutex);
result += sum;
};
auto sum = 0.0;
size_t i;
for (i = 0; i < num_threads - 1; i++)
t[i] = std::thread(func, i * num_threads, (i + 1) * num_threads, std::ref(sum));
if (i * num_threads < N)
t[i] = std::thread(func, i * num_threads, N, std::ref(sum));
for (auto &thread : t)
thread.join();
std::cout << (sum / N) << std::endl;
}
Если языки программирования это девушки, то PHP это подрочить. Множество людей с этого начинали, множество людей говорят, что это приводит к пагубным результатам. Впрочем, есть плюс: можно быстро достичь желаемого эффекта, не задумываясь о последствиях. Главное не перестараться, иначе с девушками потом просто не получится.
Ах да, ждём ебилдов! И заодно репозитарий на Github.
translate.yandex.net/api/v1/tr.json/translate?lang=en-ru&text=precious&text=thing
Берегите Яндекс, это немногое, что у нас, программистов-переводчиков, осталось. Напомню, что Google ещё год назад закрыл бесплатный API на перевод.
Пересмотрев фильм несколько раз (благо размер это позволяет), я пришёл к следующему выводу. Происходящее на экране — 3D-игра будущего, имеющая несколько сценариев (spaces, которые во множественном числе, а не космос). Одна группа людей проходит кампанию, в которой нужно наладить отношения с роботами. При этом активно использует сохранений состояний после каждого успешного момента (memory synced and locked, state saved, memory playback). На доске перебираются разные варианты, куча вариантов уже испробовано. Главный герой этой части — старик — при запуске симуляции становится молодым и пробует вариант за вариантом, мотивируя это фразой «I just want to be awesome in space».
Другая группа людей берёт в руки оружие и играют по сценарию отражения нападения. Куча нубов погибают, не нанеся никакого урона. Barley (чернокожий) профи по сценариям (awesome in all spaces, то есть космос тут не причём), выпивая сок пачку за пачкой, заваливает снайперкой-дробовиком (лол) гору роботов. Соответственно, 2D-версия всего происходящего показана справа в титрах (убывающий ХП). Повёрнуто:
А вы задумывались, что происходит при выполнении команды? Виснуть должна не rm, а шелл ещё на шаге подстановки. rm и прочие утилиты даже не должны знать о существовании glob. Напечатав звёздочку, вы заставили шелл генерировать огромную строку из имён файлов, разделённых пробелами. А потом, если даже генерация удалась бы, эту огромную строку rm бы парсил (напишите
echo *
для доказательства).К чему я: написали бы
cd .. && rm -r dirname
, и всё бы прошло нормально.Так что пока это не оракловская пустышка Java, хотя, если Microsoft будет забивать на обновления, skype закончит так же, как и оракловская Java (в итоге сделали немного по другому, но сам текст впечатляет).
habrastorage.org/storage2/530/b03/638/530b036382e0a669cb1fbeb719f24220.jpg
Отдельные каналы, цветущие края:
habrastorage.org/storage2/d59/1c2/55b/d591c255bb7f9a5c6cfdb81789165aa4.png
Максимальный канал:
habrastorage.org/storage2/0c9/b65/62d/0c9b6562df0c87f15d0bb3f5f21de405.png
Выбор по отдельным интенсивностям: при сильном увеличении видны мусорные пиксели из компонент разных квадрантов.
Выбор квадранта по значению (максимальной интенсивности): всё чисто.
Или вообще считать не по RGB, а HSL (не уверен про расчёт среднего hue).
g++ -std=c++0x -pthread
.