Pull to refresh
2
0
intenter @intenter

User

Send message

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

Reading time13 min
Views66K
image

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

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

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

Reading time4 min
Views9.6K
Недавно была опубликована информативная статья Мэтта Уильямса о 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 и других.
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments3

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

Reading time12 min
Views97K
Вы заметили, что Фейсбук обрёл сверхъестественную способность распознавать ваших друзей на ваших фотографиях? В старые времена Фейсбук отмечал ваших друзей на фотографиях лишь после того, как вы щёлкали соответствующее изображение и вводили через клавиатуру имя вашего друга. Сейчас после вашей загрузки фотографии Фейсбук отмечает любого для вас, что похоже на волшебство:
Читать дальше →
Total votes 121: ↑121 and ↓0+121
Comments22

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

Reading time5 min
Views74K
За $8 можно превратить во вполне рабочую систему на Linux с монитором, клавиатурой и трекпоинтом:



Предыстория


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

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

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

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

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

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

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

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



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

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

Reading time12 min
Views49K
Привет Гиктаймс!

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

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


Читать дальше →
Total votes 53: ↑43 and ↓10+33
Comments378

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

Reading time5 min
Views35K


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

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

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

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

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

Reading time3 min
Views64K
Чтобы отвадить кота от привычки оставлять «подарки» на газоне, можно использовать разные способы: силки для мелких животных, самодельные ловушки из ящиков с кирпичом на крышке и приманкой внутри, народные методы вроде обмазанных чесноком корок цитрусовых. Наконец, можно сидеть весь день с тапком в руке.

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

image
Читать дальше →
Total votes 39: ↑37 and ↓2+35
Comments119

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

Reading time6 min
Views71K

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

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

Пособие по Ansible

Reading time29 min
Views672K

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


Это практическое пособие познакомит вас 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) конфигурацию с главной машины.


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

Читать дальше →
Total votes 35: ↑32 and ↓3+29
Comments15

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

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

image

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



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

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

Reading time3 min
Views35K


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

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

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

Reading time8 min
Views6.1K

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. Поддержка автоматической миграции уже существующих баз данных

Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments6

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

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

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

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

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


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



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

Читать дальше →
Total votes 36: ↑35 and ↓1+34
Comments8

Parasitica (рассказ)

Reading time11 min
Views12K
image

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

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

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

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

Reading time4 min
Views56K


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

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

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

NW.js или Electron?

Reading time3 min
Views61K


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

Information

Rating
Does not participate
Location
Россия
Registered
Activity