2014-12-24

Для PostgreSQL развиваются механизмы ускорения за счёт привлечения GPU


В рамках проекта PG-Storm при участии компании NEC развивается дополнение к СУБД PostgreSQL, позволяющее вынести на плечи GPU выполнение некоторых операций обработки SQL-запроса. В частности, за счёт привлечения GPU могут быть ускорены такие операции как сравнительный перебор элементов таблиц, агрегирование записей и слияние хэшей.
Код для выполнения на стороне GPU генерируется в момент разбора SQL-запроса при помощи специального JIT-компилятора и в дальнейшем выполняется параллельно с другими связанными с текущим запросом операциями, выполняемыми на CPU. Для выполнения заданий на GPU задействован OpenCL. Из присутствующих на данной стадии развития проекта ограничений отмечается возможность использования GPU только для данных, хранимых в оперативной памяти. Увеличение производительности операций слияния таких таблиц при использовании GPU увеличивается в десятки раз.




source1
source2

Выпуск HTTP-сервера nginx 1.7.9

Доступен новый выпуск основной ветки высокопроизводительного HTTP-сервера nginx 1.7.9, в котором продолжено развитие новых возможностей. Основные изменения:
  • Поддержка переменных в директивах expires, proxy_cache, fastcgi_cache, scgi_cache и uwsgi_cache;
  • Поддержка загрузки секретных ключей с аппаратных токенов при помощи движков OpenSSL;
  • Новая директива autoindex_format, позволяющая выбрать формат (html, xml, json и jsonp) вывода списка элементов директории;
  • Налажено использование директив proxy_pass, fastcgi_pass, scgi_pass и uwsgi_pass внутри блоков "if" и "limit_except";
  • Решены проблемы со сборкой nginx с использованием BoringSSL (форк OpenSSL от Google). 
source1
source2

2014-12-21

Релиз web-фреймворка Ruby on Rails 4.2

Доступен релиз MVC (Model-View-Controller) web-фреймворка Ruby on Rails 4.2. Отмечается, что версия 4.2 будет последним значительным выпуском серии 4.x, следующим выйдет Rails 5.0.
Основные новшества:
  • Добавлен фреймворк Active Job, предоставляющий унифицированный программный интерфейс, работающий поверх систем организации работы очередей, таких как Resque, Delayed Job и Sidekiq;
  • В Action Mailer добавлен метод deliver_later, позволяющий отправить сообщение в асинхронном режиме по мере освобождения очереди отправляемых сообщений без блокирования текущего обработчика;
  • Представлен Adequate Record, набор улучшений к Active Record, позволяющий до двух раз увеличить производительность операций поиска (вызовы find и find_by), за счёт кэширования типовых SQL-запросов;
  • Включение компонента Web Console, обеспечивающего вывод интерактивной консоли на страницах ошибок;
  • Поддержка внешних ключей (foreign keys) в универсальном языке определения структуры базы данных;
source1
source2

2014-12-12

Выпуск cистемы управления контейнерной виртуализацией Docker 1.4

Анонсирован релиз инструментария для управления изолированными Linux-контейнерами Docker 1.4, предоставляющего высокоуровневый API для манипуляции контейнерами на уровне изоляции отдельных приложений. В частности, Docker позволяет не заботясь о формировании начинки контейнера запускать произвольные процессы в режиме изоляции и затем переносить и клонировать сформированные для данных процессов контейнеры на другие серверы, беря на себя всю работу по созданию, обслуживанию и сопровождению контейнеров. Код Docker написан на языке Go и распространяется под лицензией Apache 2.0.

Инструментарий базируется на применении встроенных в ядро Linux штатных механизмов изоляции на основе пространств имён (namespaces) и групп управления (cgroups). Для создания контейнеров предлагается использовать libcontainer (обёртка над namespaces и cgroups), также возможно применение lxc, libvirt, systemd-nspawn и других систем изоляции. Для формирования контейнера достаточно загрузить базовый образ окружения (docker pull base), после чего можно запускать в изолированных окружениях произвольные приложения (например, для запуска bash можно выполнить "docker run -i -t base /bin/bash").
Из добавленных в Docker 1.4 новшеств можно отметить:
  • Новый драйвер для организации хранилища поверх многослойной файловой системы OverlayFS, код которой вошёл в состав ядра Linux 3.18;
  • В управляющий демон добавлена опция "-label" для установки меток в форме "ключ=значение", выводимых при выполнении команды "docker info";
  • Поддержка установки переменных окружения через указание в Dockerfile опции "ENV name=value name2=value2...";
  • В вывод команды "docker info" добавлено отображение полей с идентификатором и именем;
  • Возможность фильтрации событий по имени события, контейнеру и образу окружения;
  • Команда "docker cp" расширена поддержкой копирования данных из разделов контейнера.
Одновременно доступен корректирующие выпуск Docker 1.3.3, в котором устранены три уязвимости (проблемы также исправлены в Docker 1.4.0), которые были обнаружены в процессе аудита после выявления в ноябре двух критических проблем с безопасностью. Уязвимости проявляются при использовании готовых образов или образов, собранных Dockerfile, загруженных из сторонних непроверенных источников. Как и прошлые уязвимости, новые проблемы позволяют выполнить код или получить доступ к внешней ФС в процессе запуска или обработки специально модифицированного образа контейнера.
  • CVE-2014-9356 - возможность записи во внешние части ФС и выхода за пределы контейнера через манипуляции с абсолютными символическими ссылками;
  • CVE-2014-9357 - повышение привилегий (выполнение кода с правами root) в процессе декодирования специально оформленных архивов LZMA (.xz);
  • CVE-2014-9358 - проблемы с проверкой идентификатора образа контейнера, которые могут быть использованы для подмены загружаемого из репозитория образа или выхода за пределы допустимого файлового пути.
Дополнительно можно отметить публикацию компанией Docker трёх новых инструментов:
  • Docker Machine - система для быстрого развёртывание хостов в гостевых окружениях систем виртуализации, предназначенных для организации контейнерной виртуализации приложений на основе Docker. Осуществляет создание начинки сервера, установку на него Docker и настройку клиента для работы с данным сервером. Поддерживается создание серверов в виртуальных окружениях VirtualBox, VMware, AWS, Digital Ocean и Microsoft Azure;
  • Docker Swarm - средства кластеризации для упакованных в контейнеры приложений. Даёт возможность управлять кластером из нескольких хостов Docker (например, созданных с использованием Docker Machine) в форме работы с одним виртуальным хостом. Так как Swarm использует штатный Docker API, он может применяться для управления и другими поддерживающими данный API инструментами, такими как dokku, fig, krane, flynn, deis, docker-ui, shipyard, drone.io, Jenkins;
  • Docker Compose - позволяет организовать работу распределённого на несколько хостов приложения, в работу которого вовлечено несколько контейнеров, запущенных в кластере на базе Docker Swarm. 
source1
source2

2014-12-02

что тебе мешает добиться успеха

Гуглил про "самого умного в комнате" и наткнулся на перечень  причин нифиганеполучания :D
  • Отказ от ответственности
    (это же не твоя вина, что тебя не повысили. Они не ценят твой талант)
  • Прокрастинация
    (даже слово специальное придумали. Все это делают, я тоже могу немного потупить в интернете)
  • Перфекционизм
    (я не могу показать это кому-то, это ещё не готово!)
  • Боязнь критики
    (а вдруг мне скажут, что я — не очень?)
  • Страх провала
    (неудача — это нормально. Главное не сколько раз ты упал — а сколько поднялся)
  • Застревание в среде
    (если ты самый умный человек в комнате, значит ты находишься не в той комнате)
  • Неумение работать в команде
    (если все вокруг дураки, а один ты — умный, может быть дело в тебе?)
  • Отсутствие веры в свои силы
    («Тот, кто утверждает, что сможет, и тот, кто говорит, что не сможет, оба правы». Конфуций)
  • Непоследовательность
    (лучше всего следовать зову сердца. Но это не значит, что надо браться за тысячу новых дел)
  • Отсутствие видения успеха
    (надо понимать, зачем тебе работа до 5 утра)
1. Жизнь и бизнес состоят из большого количества скучных, нудных и банальных вещей. Сделав которые, неожиданно получаешь то самое, о чём не стыдно дать интервью.
2. Люди разные, но хотят в принципе одного и того же. Старик Маслоу был прав.
3. Реальные ценности создавать гораздо тяжелее, чем их видимость. Для второго вам понадобится только хороший пиарщик и много фантазии. С первым обычно всё сложнее — там есть цифры.
4. Люди ленивы. Они не хотят думать, проверять и готовиться. Недоделать, потерять из-за этого много чего и сделать как надо — привычнее, чем сделать как надо с самого начала.
5. 99% людей ни на что не способны. Из оставшегося процента 99% людей занимаются не тем, что интересно тебе. С оставшимися можно при совпадении многих случайных факторов сделать большое дело.
6. Лучший способ взять свою жизнь под контроль — задавать себе постоянно вопрос «Зачем мне это надо?». Сначала очень больно и страшно, а потом приходит порядок и ясность.
7. Счастье — это не радость. Счастье — это отсутствие несчастья.
8. Всем пофиг. Никого не интересует, как вы выглядите, чем занимаетесь и вообще ваша жизнь глобально. Лучший способ убедиться в этом — выйти на улицу в носках и сандалиях. Мир по-прежнему будет жить как жил, а про вас забудут мгновенно.
9. Когда принимаешь факт смерти и смиряешься с ним, все остальные проблемы кажутся абсолютно несущественными. Зная и понимая самые тёмные стороны общества гораздо проще ценить то, что имеешь. Старик Джобс был прав.
10. Можно жить, контролируя эмоции и стараясь принимать решения разумно. В этом нет ничего бесчеловечного.
11. Все специалисты — это высокообразованные знатоки «закона Ома для участка цепи в полдевятого вечера в доме Ивановых». В доме Петровых и утром — все иначе. Всей цепи вообще никто не видит.
12. Риски предпринимательства переоценены. Самый большой риск — в 60 лет осознать, что остаток жизни придётся жить на пенсию. Которой нет.
13. Всё меняется. Всегда всё меняется. Самая большая глупость — это пытаться остановить изменения, а не подстраиваться под них. Самая большая ценность в любом человеке — способность меняться.
14. Лучший способ обучения — быть помощником профессионала. Чуть хуже — пробовать самому без надзора знающего. Теория пригодится только как гипотеза, которую нужно проверить на практике.
15. Знание немногих принципов избавляет от необходимости знать многие факты.
16. Правды нет. Всё зависит от того, покупаете вы или продаёте.
17. Власть не дают, её берут.
18. Опыт важнее связей. Связи важнее денег.
19. Все проблемы и возможности людей только у них в сознании.
20. Люди меняются, только если этого требуют внешние условия. Чем сильнее нужно изменяться, тем более сильными и непреодолимыми должны быть условия. Лучший способ измениться — поставить себя в условия, когда невозможно этого не сделать.
21. Лучший способ провести свою жизнь — поставить себе большую, почти недостижимую цель и идти к ней всю жизнь. А всё остальное приложится само.
22. Секс, нецензурная лексика, шорты или отсутствие диплома никак не мешают делать большое дело.
23. В жизни есть тяжёлый путь и неправильный путь.
24. Долгосрочный успех не бывает быстрым. Либо так, либо так, но не вместе. Бизнес — это марафон.
25. Инстинкты нельзя игнорировать, из них нужно черпать силы.
26. Лучше сделать и пожалеть, чем не сделать и пожалеть.
27. Денег нужно столько, чтобы о них не думать.
28. Телефон, одежда и автомобиль ничего не говорят об обеспеченности человека — реально об этом могут сказать только выписка со счёта и бухгалтерский баланс. Ноль на счету лучше долгов.
29. Предсказать, как поведёт себя человек в экстремальной ситуации, невозможно. Расстояние от видимого благополучия повседневной жизни до экстрима очень невелико. Единственное, что беспокоит людей в экстремальных ситуациях — личное выживание и благополучие.
30. Отрицательный имидж лучше безызвестности.
31. Разница между бессмысленной упёртостью и пророческим упорством только в наличии результата во втором случае. Но обычно люди просто сдаются, даже не начав.
32. За любым фантастическим успехом 25-летних Цукербергов стоит пять-шесть 50-летних мужиков в костюмах и очках.
33. Слова почти ничего не значат. Важны только дела.
34. Лучший способ экономии денег при покупке товаров — не покупать товар вообще. Реальная потребность людей в вещах и услугах сильно переоценена.
35. Опыт измеряется не в годах, а в событиях.
36. Лучший способ наработать много хороших связей — быть полезным.
37. Если вам нужен отпуск от работы, то это не та работа, которой вы действительно хотите заниматься.
38. Если вы самый умный человек в комнате, то вы не в той комнате, где должны находиться.
39. В долгосрочной перспективе быть честным выгодно. Беречь честь надо смолоду.
40. С ростом сложности задач количество отдыха должно увеличиваться. Количество задач в течение дня должно стремиться к единице.
41. Фригидных женщин не бывает — бывают мужчины, которые недостаточно стараются. Большинство женщин кардинально недотраханы и закомплексованы.
42. Одиночество ужасно только для тех, кто не познал себя.
43. Люди не возвращают долги. Нельзя одалживать больше, чем готов этому человеку подарить.
44. У людей, которые постоянно развиваются и растут, не бывает кризиса среднего возраста. У них есть только постоянный ежедневный жизненный кризис.
45. При желании ударить палкой щенка надо помнить, что он может: а) запомнить это; б) вырасти в большую сильную собаку с острыми зубами и хорошей реакцией.
46. Если менять свободу и перспективы на колбасу, однажды не останется ни свободы, ни перспектив, ни колбасы.
47. Нет смысла никого прощать. Гораздо проще не обижаться вообще. Никто не обязан соответствовать чьим-то ожиданиям.
48. Успех — это не альтернатива неудаче. Успех это то, что приходит после серии неудач.
49. Чудеса случаются, но только с другими людьми. Свои чудеса надо тщательно и заранее готовить.
50. Мои права заканчиваются там, где начинаются права другого человека. Лучше иметь одного равного партнёра, чем много рабов или хозяев.
51. В любой момент можно оглянуться на 10 лет назад и сказать «тогда была куча возможностей, не то, что сейчас». В любой стране есть миллионеры и миллиардеры. Возможности есть всегда и везде.
52. Если бог существует, то все наши попытки понять и описать его равноценны попыткам рыбок понять кто, как и зачем меняет воду в аквариуме. Все религии — психотерапевтические практики, существующие для обогащения лидеров и ежедневного спокойствия адептов.
53. Контроль чего бы то ни было в большинстве случаев иллюзия. Прежде чем учиться управлять другими, надо научиться управлять собой.
54. Нет никакого смысла соответствовать ожиданиям других людей ради того, чтобы получить от них помощь в тяжёлой жизненной ситуации: большинство людей (включая, обычно, и родственников) не имеют ни ресурсов, ни опыта, ни желания вам помогать. Лучший способ убедиться в этом — попытаться собрать деньги на якобы операцию от смертельной болезни. Надеяться можно только на себя.
55. Предпринимателями не рождаются, ими становятся.
56. Лучший подарок родителей своим детям — самостоятельно обеспечить себе старость и не мешать детям обеспечивать свою.
57. Денег больше чем людей, способных ими эффективно управлять.
58. Если человек на протяжении недели 3 раза не отвечает на звонки в рабочее время по любым причинам или не отвечает на почту быстрее, чем за 24 часа по простым вопросам, дел с ним иметь нельзя.
59. Если проект на ранней стадии привлекает консультанта, чтобы привлечь инвестиции, то инвестиций проект не привлечёт.
60. Чтобы получить что-то большое, надо уметь делиться.
61. Люди считают, что хорошее формальное образование — ключ к успеху. Хотя в действительности ключом является понимание фактов наподобие этого.
62. Полезность услуги или товара зависит от количества потраченных денег только до определённой суммы.
63. Нельзя научить, можно только научиться. Нельзя мотивировать, можно только мотивироваться.
64. Принцы обычно женятся на принцессах. Нельзя продаться человеку гораздо лучше себя — можно только сделать так, чтобы тебя захотели купить.
65. Любая привычка вырабатывается за 90 дней. Любое дело можно нормально освоить за 10000 часов.
66. Мир справедлив. У каждого следствия есть своя причина. Каждый получает именно то, для получения чего создал условия.
67. Разница между людьми, которые в бизнесе всерьёз и понарошку: когда наступает пи*дец, вторые становятся правозащитниками, журналистами или политиками. А первые продолжают делать то, к чему стремились.
68. Достичь просветления и внутреннего спокойствия, будучи монахом в Гималаях, легко. Сделать то же самое, строя бизнес в мегаполисе — та ещё задача.
69. Сделать сложно и дорого — легко. Сделать просто и разумно — гораздо сложнее.
70. Пенсии не будет. Гарантий не существует.
71. Для изменений нужно время. Для больших изменений нужно много времени.
72. Объём знаний, который нужен, чтобы достичь определённой цели, вполне конкретен и ограничен. Знание кулинарии крайне маловероятно поможет при желании полететь на Марс, а опыт в дегустации вина — при создании лекарства от рака. Большинство из того, что люди считают необходимым набором знаний современного человека — или понты, или попытка развлечься, т.к. делать реальные дела тяжело и неприятно.
73. Лучший способ сделать так, чтобы женщина обратила на тебя внимание — обратить внимание на неё.
74. Громче всего о том, что всё плохо, кричат те, кто сделать хорошо не в состоянии. Они даже не представляют, насколько сложно сделать это самое «хорошо».
75. Уровень развития общества определяется тем уровнем, на котором в этой стране можно дать взятку. В отсталых странах это можно сделать везде. В передовых — только на уровне верховной власти. Это там называется лоббизмом.
76. Если инвесторы не дают денег или клиенты не покупают, причин для этого может быть всего три:
1. Ты хреново продаёшь;
2. Ты продаёшь хрень;
3. Ты продаёшь не тем людям.
77. Идеальных вещей и систем не бывает. Хорошо там, где нас нет. Любая вещь, событие, компания, человек выглядят замечательно, пока не начинаешь погружаться в детали.
78. Способность нарушать правила приходит сразу за готовностью принять все последствия нарушений.
79. Признаком подготовленной ситуации является то, что нужный результат достигается без усилий. Они прикладываются только при подготовке, а сам результат получается «сам собой».
80. Не надо искать там, где нет того, что хочется найти.
81. Людям хочется верить, что кто-то точно знает, как жить, достигать целей и не ошибаться. Таких людей не существует. Существуют только те, кто делают вид, что они такие, и умеют творчески работать с фактами. Никто не совершает больше ошибок и не сомневается больше, чем люди, выходящие за рамки своих знаний ради достижения своих целей.
82. За любым великим достижением лежит самоотречение.
83. Миром правят интроверты, которые умеют притворяться экстравертами.
84. 99% того, чем мы пользуемся, создано другими людьми.
85. Требования сделать в стране демократию, капитализм и вообще какой угодно строй — это, обычно, желание тихой и сытой жизни, а не этого самого строя. Для любого действия люди имеют две причины: красивую и настоящую.
86. Оптимально накопить не на чёрный день, а на чёрный год или десятилетие.
87. Заводить любые отношения имеет смысл, если с ними лучше, чем без них.
88. Авторитеты существуют для тех, кто неспособен думать сам.
89. Не нужно плыть по течению, не нужно плыть против течения. Нужно плыть туда, куда нужно плыть.
90. Есть смысл заботиться об интересах трёх групп людей: о себе лично, о ближайшем окружении и о человечестве в целом. Все промежуточные группы просто бессмысленны. Это называется мудрый эгоизм.
91. Нужно заниматься спортом, правильно питаться и вообще держать свою тушку в тонусе. Другой не будет. Лучше найти время на это, чем на лечение.
92. Правильно настроенная инфраструктура экономит кучу денег и времени. Всё, что может быть передано на аутсорс, автоматизировано или вообще отменено, должно быть передано на аутсорс, автоматизировано или отменено.
93. Лучший способ поверить в себя — добиться успеха тяжелым трудом после падения. Такое не забывается. И это работает почти всегда.
94. Говорить, что цель бизнеса — деньги, как говорить что цель жизни человека — дышать. Это не цель, это характеристика, необходимая для выживания.
95. Современные люди слишком мягкие в важных вопросах и слишком жёсткие — в неважных.
96. Человечество не меняется. Классические книги по философии, психологии и социологии до сих пор актуальны.
97. К выбору жены надо относиться ответственно. Лучше перестараться, чем недостараться. Жадность — лучшее средство от неподходящих женщин.
98. Уникальных ситуаций почти не бывает. Миллионы людей каждый день получают тот же опыт, что и миллионы людей до них. Если кажется, что ситуация уникальна, значит просто плохо искали аналоги.
99. Быть бедным — непрактично, небезопасно и стыдно.
100. Если жрать меньше калорий, чем тратить, довольно продолжительное время, то неизбежно худеешь. И не надо рассказывать про обмен веществ, гормоны и тяжелые кости — в концлагерях толстых не было.
Взял тут и тут 

Проект CoreOS представил Rocket, конкурирующий с Docker инструментарий управления контейнерами

Проект CoreOS, развивающий основанное идеях контейнерной изоляции серверное окружение, анонсировал создание нового инструментария для управления созданием, запуском и выполнением изолированных контейнеров - Rocket, выступающего в качестве более безопасной, переносимой и адаптированной для серверного применения альтернативы Docker. Rocket нацелен на манипуляцию контейнерами, построенными в соответствии со спецификацией App Container, также предложенной проектом CoreOS и нацеленной на создание универсального переносимого формата контейнеров.

Наиболее существенные отличия Rocket от Docker заключаются в использовании иной модели выполнения, позволяющей достигнуть значительно более высокого уровня защищённости. В Docker все операции проводятся с участием одного централизованного фонового процесса, что создаёт серьезные потенциальные проблемы с безопасностью, устранить которые можно лишь путём полной переработки организации работы. Также утверждается, что последнее время Docker отклонился от первоначальных задач и стал развивать функции, выходящие за рамки средств управления контейнерами, превращаясь в излишне усложнённую платформу.

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

Выделяются три основные стадии запуска контейнера:
  • Нулевая стадия, обработка которой производится силами утилиты rkt без привлечения дополнительных средств. На данной стадии производится начальная подготовка контейнера: генерация UUID и манифеста, создания файловой системы для контейнера, настройка директорий для выполнения следующих стадий, копирование исполняемого файла первой стадии в ФС контейнера, извлечение заданных ACI (App Container Image), распаковка образов и копирование приложений в директории третьей стадии;
  • Первая стадия, работа которой обеспечивается отдельным исполняемым файлом, имеющим полномочия настройки cgroups, запуска процессов и выполнения операций под пользователем root. На данной стадии осуществляется создание исполняемой группы на основе ФС, подготовленной в нулевой стадии, установка cgroups, пространств имён и точек монтирования. Настройка производится через генерацию unit-файлов systemd и использование systemd-nspawn для организации работы окружения;
  • Вторая стадия, на которой производится непосредственный запуск приложения в подготовленном контейнере. В частности, на данной стадии выполняется процесс инициализации содержимого контейнера, описанный в манифесте запуска приложения (Application Manifest).
Основные компоненты Rocket:
  • App Container Image - определяет образ, содержащий все необходимые элементы для запуска контейнера приложения. Для защиты применяется проверка по цифровой подписи и опционально шифрование, что позволяет использовать для распространения образов публичные сети хранения и BitTorrent;
  • App Container Runtime - определяет окружение для запуска контейнера приложения;
  • App Container Discovery - федеративный протокол для поиска и загрузки образов контейнеров приложений.
Для создания контейнеров и организации их изолированного выполнения применяются те же штатные механизмы ядра Linux, что в Docker - пространства имён (namespaces) и группы управления (cgroups). При этом, для управления контейнером используются средства запуска изолированных окружений, предоставляемые системным менеджером systemd. Для управления предложена новая консольная утилита rkt, предоставляющая набор команд, похожий на docker. Как и Docker, код Rocket написан на языке Go и поставляется под лицензией Apache 2.0.

Следование универсальной спецификации App Container, определяющей окружающие контейнер службы, позволяет создавать независимые собственные реализации, совместимые с Rocket. Более того, в будущем, когда App Container достигнет зрелости, планируется подготовить реализацию данной спецификации для Docker, что позволит обеспечить переносимость обоих проектов.

source1
source2