Как стать автором
Обновить
2
0
intenter @intenter

Пользователь

Отправить сообщение

Эффективное кеширование. От теории к практике

Время на прочтение13 мин
Количество просмотров69K
image

Как правило, статьи о кешировании начинаются за здравие, а заканчиваются LRU кешем. Попробуем переломить эту тенденцию? Начнем с того, чем LRU плох, а закончим за здравие. Я надеюсь.

Вне зависимости от того, строите ли вы хайлоад сервис для миллионов посетителей или проектируете мобильное приложение, пишите операционную систему или СУБД — ключевое звено, влияющее на конечную стоимость системы и на отзывчивость интерфейса/сервиса — это кеш.
Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии59

Java и ограничения памяти в контейнерах: LXC, Docker и OpenVZ

Время на прочтение4 мин
Количество просмотров9.7K
Недавно была опубликована информативная статья Мэтта Уильямса о Java в Docker и существующих ограничениях памяти. Автор поднимает интересную тему о скрытой проблеме ограничения памяти, с которой пользователи могут столкнуться во время работы с контейнерами.

Большое количество репостов и лайков показывает, что данная тема довольно популярна среди Java-разработчиков.image

Поэтому хотелось бы более подробно проанализировать данную проблему и определить возможные пути ее решения.

Проблема


Мэтт описывает свое ночное «путешествие» в контейнере Docker со стандартным поведением памяти JVM. Он обнаружил, что ограничения RAM отображаются некорректно внутри контейнера. В результате, приложение Java, или любое другое, видит общий объем ресурсов оперативной памяти, выделенной для всей хост-машины, а JVM не может указать, сколько ресурсов было предоставлено родительскому контейнеру для работы. Это приводит к ошибке OutOfMemoryError, вызванной неправильным поведением динамической памяти JVM в контейнере.

Фабио Кунг, из Heroku, подробно описал основные причины возникновения этой проблемы в своей недавней статье "Память внутри контейнеров Linux. Или почему в контейнере Linux не работает free и top?"

Большинство инструментов Linux, предоставляющих метрики ресурсов системы, были созданы в то время, когда cgroups еще не существовали (например: free и top, как у procps). Они обычно читают метрики памяти из файловой системы proc: /proc/meminfo, /proc/vmstat, /proc/PID/smaps и других.
Читать дальше →
Всего голосов 16: ↑15 и ↓1+14
Комментарии3

Обучение машины — забавная штука: современное распознавание лиц с глубинным обучением

Время на прочтение12 мин
Количество просмотров97K
Вы заметили, что Фейсбук обрёл сверхъестественную способность распознавать ваших друзей на ваших фотографиях? В старые времена Фейсбук отмечал ваших друзей на фотографиях лишь после того, как вы щёлкали соответствующее изображение и вводили через клавиатуру имя вашего друга. Сейчас после вашей загрузки фотографии Фейсбук отмечает любого для вас, что похоже на волшебство:
Читать дальше →
Всего голосов 121: ↑121 и ↓0+121
Комментарии24

Нерабочий планшет + Orange Pi

Время на прочтение5 мин
Количество просмотров74K
За $8 можно превратить во вполне рабочую систему на Linux с монитором, клавиатурой и трекпоинтом:



Предыстория


Был когда-то у меня Lenovo Thinkpad Tablet. Аппарат очень не понравился и привёл к разочарованию как в Android так и в Lenovo и надолго отбил желание покупать что-то аналогичное. Не понравился он тем, что:
  1. Мне кажется, это ужасно, когда люди заплатившие немалые деньги за устройство вынуждены использовать эксплоиты чтобы воспользоваться уже имеющимся в нём функционалом. В итоге root я там так и не сделал.
  2. Через некоторое время начали отваливаться кнопки. Вначале питание. Её я кое-как припаял. Потом регулировки громкости. На них я забил и стал использовать программную регулировку.
  3. Рамка вокруг экрана. При размере планшета 259*179 мм, экран всего 216*135 мм (мерил линейкой, может быть погрешность в 1-2 мм). Т.е. экран занимает всего 63% поверхности. Наверное, эту рамку сделали, чтобы его удобней было держать не касаясь сенсорного экрана, но лучше было бы решить эту проблему как-то по-другому (не располагать по краям элементы управления или как-то отличать удержание от умышленного касания...), чтобы не заставлять пользователя таскать такую лопату.

Но однажды при загрузке он показал логотип Lenovo и на этом остановился. Попытка сбросить настройки через загрузочное меню привела к сообщению, что он не может что-то там подмонтировать. В сервис было решено не идти.
Читать дальше →
Всего голосов 19: ↑17 и ↓2+15
Комментарии50

Бюджетный стартовый набор Arduino

Время на прочтение3 мин
Количество просмотров47K
У меня более 10 лет стажа в IT-индустрии, но как радиолюбитель — я полнейший нуб. Как и многих в последнее время, меня заинтересовали возможности Arduino. Но не в качестве крутого устройства по управлению всем вокруг, а больше в качестве программируемого конструктора и развлечения.

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

Итак, если вы хотите собрать бюджетный набор с ардуинкой, пригодный для прохождения большинства уроков, а времени для изучения рынка нет, то последующий текст для вас.
Читать дальше →
Всего голосов 24: ↑16 и ↓8+8
Комментарии39

Nevo — смарт-часы для тех, кому не нужны смарт-часы?

Время на прочтение3 мин
Количество просмотров21K
Вчерашний пост с критикой умных вещей с точки зрения потребителя — далеко не первое подобное высказывание. Действительно смарт-часы, гаджеты для умного дома нужны далеко не всем. Правда, все это порой превращается в специальную эстафету из серии: «Я единственный, кто не смотрел Игру престолов...», «Я единственный, кто не играет в Покемонов...», «Я единственный, кто не носит смарт-часы и фитнес-трекер...»



Впрочем, производители тоже понимают, что многие их девайсы не являются предметом первой необходимости. Вот и рекламная кампания Nevo некогда была построена по принципу: «для тех, кому не нужны смарт-часы». И в качестве своеобразного продолжения вчерашнего поста, мы немного о них расскажем.
Читать дальше →
Всего голосов 12: ↑11 и ↓1+10
Комментарии26

Властелин Колец

Время на прочтение12 мин
Количество просмотров50K
Привет Гиктаймс!

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

В прошлом голосовании, с большим отрывом, победил Властелин Колец. На этот раз Q&A делать не буду, поскольку все равно приходится все дублировать в комментариях.


Читать дальше →
Всего голосов 53: ↑43 и ↓10+33
Комментарии378

5 датчиков автопилота и их (пока) неразрешимые трудности

Время на прочтение5 мин
Количество просмотров35K


Первая часть обзора проблем автопилота отлично зашла и время двигаться дальше. Жизнь не стоит на месте и «Теслы» все так же бьются (Tesla Model X тоже, но пока без помощи автопилота). Что не так с датчиками систем ADAS? И почему в ближайшие годы ничего кардинально не изменится?

Многие, как ни удивительно, приблизились к своим физическим возможностям. Об этом можно говорить уверенно, потому что перечисленные ниже системы используются не только на автомобилях и имеют крупные рынки сбыта за пределами автомира. Это большие деньги, миллиардные бюджеты на R&D и достаточно медленный прогресс.

Теперь подробнее.

Видов датчиков — как пальцев на руке, пять:
  • камеры,
  • радары,
  • лидары,
  • ультразвук,
  • инфракрасные камеры.
Читать дальше →
Всего голосов 42: ↑34 и ↓8+26
Комментарии240

Как отучить соседского кота гадить на газон: используем машинное зрение и глубокое обучение

Время на прочтение3 мин
Количество просмотров65K
Чтобы отвадить кота от привычки оставлять «подарки» на газоне, можно использовать разные способы: силки для мелких животных, самодельные ловушки из ящиков с кирпичом на крышке и приманкой внутри, народные методы вроде обмазанных чесноком корок цитрусовых. Наконец, можно сидеть весь день с тапком в руке.

Инженер Nvidia считает, что поступать так с соседскими животными — как-то не по-соседски. К тому же он хотел попробовать нейросети на практике. Поэтому он использовал более продвинутый метод: он взял плату Nvidia Jetson TX1, IP-камеру Foscam, плату для разработки Particle Photon, подсоединённую к реле, и домашнюю систему полива газона. Коты мокрые — но живые и здоровые.

image
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии119

Запуск cron внутри Docker-контейнера

Время на прочтение6 мин
Количество просмотров73K

Так уж вышло, что запуск cron в Docker-контейнере — дело весьма специфическое, если не сказать сложное. В сети полно решений и идей на эту тему. Вот один из самых популярных (и простых) способов запуска:
cron -f

Но такое решение (и большинство других тоже) обладает рядом недостатков, которые сходу обойти достаточно сложно:
  • неудобство просмотра логов (команда docker logs не работает)
  • cron использует свой собственный Environment (переменные окружения, переданные при запуске контейнера, не видимы для cron заданий)
  • невозможно нормально (gracefully) остановить контейнер командой docker stop (в конце концов в контейнер прилетает SIGKILL)
  • контейнер останавливается с ненулевым кодом ошибки
Читать дальше →
Всего голосов 24: ↑19 и ↓5+14
Комментарии86

Пособие по Ansible

Время на прочтение29 мин
Количество просмотров685K

управление конфигурацией оркестра


Это практическое пособие познакомит вас c Ansible. Вам понадобится виртуальная или реальная машина, которая будет выступать в роли узла для Ansible. Окружение для Vagrant идет в комплекте с этим пособием.


Ansible — это программное решение для удаленного управления конфигурациями. Оно позволяет настраивать удаленные машины. Главное его отличие от других подобных систем в том, что Ansible использует существующую инфраструктуру SSH, в то время как другие (chef, puppet, и пр.) требуют установки специального PKI-окружения.


Пособие покрывает такие темы:


  1. Установка Ansible и Vagrant
  2. Файл инвенторизации
  3. Модули shell, copy, сбор фактов, переменные
  4. Запуск на группу хостов
  5. Плейбуки
  6. Пример: поднимаем кластер, устанавливаем и настраиваем Apache и балансировщик нагрузок HAproxy
  7. Обработка ошибок, откат
  8. Шаблоны конфигурации
  9. Роли

Ansible использует так называемый push mode: конфигурация «проталкивается» (push) с главной машины. Другие CM-системы обычно поступают наоборот – узлы «тянут» (pull) конфигурацию с главной машины.


Этот режим интересен потому что вам не нужно иметь публично доступную главную машину для удаленной настройки узлов; это узлы должны быть доступны (позже мы увидим, что скрытые узлы также могут получать конфигурацию).

Читать дальше →
Всего голосов 35: ↑32 и ↓3+29
Комментарии15

МФТИ запустил онлайн-магистратуру по современной комбинаторике

Время на прочтение3 мин
Количество просмотров23K
Со следующего года десять студентов смогут обучаться в полноценной магистратуре МФТИ и получить диплом государственного образца, не выходя из дома. Ведущие зарубежные вузы, такие как Гарвард и Стенфорд, уже имеют подобного рода программы, но для России это беспрецедентный образовательный эксперимент. Уверенности в его успехе добавляет уже развитая на Физтехе культура онлайн-обучения, связанная с такими проектами, как курсы на Coursera, НПОО и «Лекторий», запущенных той же командой, которая будет отвечать за онлайн-магистратуру в МФТИ.

image

Обучение в онлайн-магистратуре будет осуществляться по направлению «Современная комбинаторика». Для преподавания разделов прикладной и фундаментальной математики в новом формате нужны передовые преподаватели. Одним из таких специалистов является Андрей Райгородский — ученый с мировым именем и заведующий кафедрой дискретной математики МФТИ.



Мы расскажем, как будет строиться образовательный процесс!
Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии63

Исходный код «Аполлона-11» опубликован на Github

Время на прочтение3 мин
Количество просмотров36K


20 июля 2009 года в честь 40-летия высадки на Луну распечатки с исходным кодом программы для бортового управляющего компьютера КА «Аполлон» (Apollo Guidance Computer, AGC) были оцифрованы и выложены в интернете. Прошло семь лет — и сейчас этот уникальный образец компьютерной истории получил вторую жизнь. Сегодня исходный код для AGC на ассемблере опубликован на Github в полном виде, открыт для поиска, комментариев, форков и т.д.

В коде можно найти вызовы ставших знаменитыми ошибок с кодами 1201 и 1202, которые так беспокоили Нила Армстронга, и многое другое.
Читать дальше →
Всего голосов 30: ↑27 и ↓3+24
Комментарии29

CodingFuture + Puppet. Часть V: базы данных (cfdb)

Время на прочтение8 мин
Количество просмотров6.2K

cfdb use cases


Вкратце:


  1. cfdb — модуль развёртывания и автонастройки узлов и кластеров баз данных и доступа к ним с высокой доступностью и защитой от сбоев.
  2. Как proof-of-concept поддерживаются MySQL и PostgreSQL на базе Percona Server/XtraDB Cluster и официальных сборок PostgreSQL+repmgr.
  3. Изоляция ресурсов на базе cgroups, интеграция с настройками сетевого фильтра через модуль cfnetwork и строгий контроль доступа средствами СУБД.
  4. Запись на один узел для минимизации конфликтов и распределение нагрузки для read-only доступа.
  5. Автоматическая проверка здоровья кластера и фактической осуществимости доступа.
  6. Ручное и автоматическое локальное резервное копирование, автоматизированное восстановление данных.
  7. Поддержка автоматической миграции уже существующих баз данных

Читать дальше →
Всего голосов 9: ↑9 и ↓0+9
Комментарии6

40 туториалов для создания векторных иллюстраций

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

Туториалы бесплатные, но почти все на английском языке. Для удобства они поделены на три категории: приступая к работе, создание лиц, дизайн персонажей, ландшафт и окружающая среда и особые эффекты.

Итак, поехали:

Приступая к работе


1. Изучение векторной иллюстрации за 10 шагов



В этом уроке объясняется, каким образом создавать векторные иллюстрации используя Adobe Illustrator. Приводится объяснение ключевых параметров и инструментов, которое дополняется советами экспертов.

Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии8

Parasitica (рассказ)

Время на прочтение11 мин
Количество просмотров12K
image

Те, кому выпало жить при смене политических систем, помнят то граничащее с откровением чувство удивления, возникающее, когда выясняется, что самое прекрасное и гуманное общество на самом деле таковым не являлось. Природа власти допускает значительное разнообразие механизмов, форм и оттенков, при этом всегда оставляя лазейки для преемственности самого явления. Велика ли разница — схлопотать 10 лет за анекдот о Бессмертном (во времена диктатуры пролетариата) или за хентай на жёстком диске (во времена либеральной демократии)? Конечно, этот вопрос предполагает определённое обобщение и по сути своей является риторическим. Однако, понаблюдав за ходом истории самых разных стран, вы обнаружите, что на смену самой замечательной и прекрасной форме общественного управления приходит ещё более прекрасная и гуманная. По крайней мере, так считается до тех пор, пока её не сменит последующая. Таким образом, в какую бы эпоху вы не очутились на той или иной территории, вы непременно попадёте в самый лучший из всех существующих миров. Это удивительное в своей универсальности свойство настоящего подталкивает нас к ещё большему обобщению, по сравнению с которым предыдущее кажется невинной шуткой. Впрочем, не стану отрицать — подобные умозаключения легко могут привести нас на зыбкие почвы, где растут и процветают теории заговоров.
Читать дальше →
Всего голосов 31: ↑25 и ↓6+19
Комментарии26

Как я поменял основной домен в Google Apps

Время на прочтение2 мин
Количество просмотров24K
Недавно мне понадобилось организовать почтовый сервис для небольшой фирмы. И я вспомнил про завалявшийся у меня бесплатный аккаунт в Google Apps. К сожалению, основной домен, к которому аккаунт был привязан давно почил в бозе и оказался занят на текущий момент. Благо, к аккаунту были привязаны несколько дополнительных бесплатных доменов, один из которых оказался свободным и я его снова зарегистрировал. И тут передо мной возник вопрос, который вынесен в заголовок. Знакомая ситуация? Если обратиться к справке уважаемого Google, то узнаем, что это сделать невозможно.
Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии56

Пример базы Keepass для сетевого администратора

Время на прочтение4 мин
Количество просмотров57K


Все мы храним или хранили пароли от сетевых устройств в excel файлах. Бывает конечно и так, что хранить ничего не надо так как учетная запись на всех устройства одинаковая, надеюсь читатели поняли, что я говорю не про RADIUS или TACACS, а про ситуацию, когда учетная запись действительно одна.

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

Хорошо если в вашей компании есть ресурсы и обозначен стабильный рост. В таком случае в какой-то момент вы разворачиваете приложение для управлению сетью. Но кто-то, в конечном итоге, так и остаётся на уровне «контролцэ-контролвэ», из-за отсутсвия ресурсов, а может и по другим причинам. Именно для этих людей данная статья. Я расскажу как уйти от excel, сделать хранение паролей более удобным и получить некоторую автоматизацию типовых телодвижений. Заметка: все описания для Windows окружения.
Читать дальше →
Всего голосов 26: ↑22 и ↓4+18
Комментарии52

Видео докладов с Docker митапа

Время на прочтение1 мин
Количество просмотров19K

18-го июня мы провели Docker митап, а сегодня публикуем видео докладов.

Познавательного вам просмотра!
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии17

NW.js или Electron?

Время на прочтение3 мин
Количество просмотров62K


Если вы хотите создать собственное десктопное приложение на основе веб-технологий, то мир опенсорса предлагает два основных варианта: NW.js (ранее известный как node-webkit) и Electron (atom-shell). Выбор между ними не так очевиден, поэтому я решил создать сравнительную таблицу и остановиться на самых важных отличиях.
Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии34
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность