Обновить
56
0
Alexander@speshuric

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

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

Контейнеры: Поиски «магического фреймворка» и почему им стал Kubernetes

Время на прочтение7 мин
Охват и читатели27K


Мы в «Латере» занимаемся созданием биллинга для операторов связи. В блоге на Хабре мы не только рассказываем об особенностях нашей системы и деталях ее разработки (например, обеспечении отказоустойчивости), но и публикуем материалы о работе с инфраструктурой в целом. Инженер проекта Haleby.se написал в блоге материал, в котором рассказал о причинах выбора в качестве инструмента оркестрации Docker-контейнеров технологии Kubernetes. Мы представляем вашему вниманию основные мысли этой заметки.
Читать дальше →

Абсолютно бесшумный, компактный безвентиляторный компьютер на полноценном десктопном процессоре. DIY реализация

Время на прочтение4 мин
Охват и читатели58K


Однажды, в очередной раз занимаясь вычислением «запевшего» вентилятора в классическом системнике, я задумался на тему бесшумного идеального персонального компьютера для себя. Результат — на КДПВ.

Основные задачи, выполняемые мною на ПК, это разработка несложных вещей в САПР, редактирование документов в Ворде/Экселе а также просмотр котиков разной полезной информации в интернете. А ещё, наверное, стоит сказать что я работаю в фирме, имеющей станок для лазерной резки металла, гильотину, листогиб, и-вот-это-всё.
Читать дальше →

Топ-10 торрент-трекеров за бугром

Время на прочтение4 мин
Охват и читатели251K
Ниже будет представлен список самых посещаемых торрент-сайтов за 2016 год. В начале 2016 года лидировал KickassTorrents, за ним следовал торрент-трекер The Pirate Bay. Многое случилось за последнее время, некоторые торрент-сайты исчезли, другие заняли их место «под солнцем».



Пользователи конечно же привыкают к тому или иному сайту, но в случае его исчезновения/ блокировки с удовольствием, не брезгуя, перепрыгивают на другие. Эта тенденция прослеживается и согласно данным нового списка топ торрентов. Первые позиции занимают всем известные старые игроки, но также появилась парочка торрент-новичков. После 10 лет работы, популярный торрент-ресурс EZTV был закрыт в мае прошлого года.
читать дальше

Микроскоп + Телескоп =?

Время на прочтение5 мин
Охват и читатели22K


На первый взгляд, в заголовке написана какая-то чепуха. Эти оптические приборы совершенно противоположны по назначению, зачем их складывать? Тем не менее я решил попробовать объединить микроскоп и телескоп в единую конструкцию. Моей целью будет получение фотографий Луны через цифровой микроскоп DigiMicro Mobile. Считайте это занимательным экспериментом с оптикой наподобие макросъемки через капельку воды, а не серьезным руководством по астрофотографии.
Читать дальше →

Знакомьтесь, линейные модели

Время на прочтение10 мин
Охват и читатели51K
Машинное обучение шагает по планете. Искусственный интеллект, поскрипывая нейронными сетями, постепенно опережает людей в тех задачах, до которых успел дотянуться своими нейронами. Однако не стоит забывать и про простую модель линейной регрессии. Во-первых, потому что на ней построены многие сложные методы машинного обучения, включая нейронные сети. А, во-вторых, потому что зачастую прикладные бизнес-задачи легко, быстро и качественно решаются именно линейными моделями.
И для начала небольшой тест. Можно ли с помощью линейной модели описать:
— зависимость веса человека от его роста?
— длительность ожидания в очереди в магазине в разное время суток?
— посещаемость сайта в фазе экспоненциального роста?
— динамику во времени количества человек, ожидающих поезда на станции метро?
— вероятность, что клиент не оформит заказ на сайте в зависимости от его производительности?
Как вы догадываетесь, на все вопросы ответ будет «Да, можно». Так что линейные модели не так просты, как может показаться на первый взгляд. Поэтому давайте познакомимся с их богатым разнообразием.
Читать дальше →

Релиз ownCloud 9.0 — opensource альтернативы Dropbox и другим облачным хранилищам

Время на прочтение4 мин
Охват и читатели53K


Вышел новый релиз персональной облачной платформы ownCloud 9.0.

Я уже писал про ownCloud раньше. Я очень люблю этот комбайн из хранилища данных с синхронизацией, версионированием, галереей, календарем, хранением контактов и прочими плюшками. Серверная часть написана на PHP, поддерживаются протоколы WebDAV, CardDAV, CalDAV. Клиентский софт есть под Linux, OS-X, Windows, мобильных платформы и через web интерфейс. В теории может работать с петабайтными объемами данных.

Сервис может работать в федеративном режиме — есть возможность объединять и линковать независимые ownCloud-инстансы, делиться каталогами и другими данными. В качестве файловой системы можно использовать GPFS, GlusterFS и другие распределенные варианты. Хорошо допилена интеграция в инфраструктуру Amazon.

Changelog:
  1. Возможность добавлять комментарии и теги к файлам
  2. Новая система уведомлений
  3. (Федеративный режим) Автодополнение имен пользователей
  4. (Федеративный режим) Списки доверенных серверов
  5. Код для дополненией и основных файлов наконец подписан
  6. Добавили новую систему обновления
  7. Улучшения производительности при совместном доступе к каталогам
  8. Новое API для External Storage
  9. Различные улучшения системы безопасности

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

Книга «Алгоритмы: разработка и применение. Классика Computer Science»

Время на прочтение11 мин
Охват и читатели43K
Привет, Хаброжители! У нас вышла новинка:

image Впервые на русском языке выходит одна из самых авторитетных книг по разработке и использованию алгоритмов. Алгоритмы — это основа программирования, определяющая, каким образом программное обеспечение будет использовать структуры данных.

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

Алгоритмический анализ состоит из двух фундаментальных компонентов: выделения математи-чески чистого ядра задачи и выявления методов проектирования подходящего алгоритма на осно-вании структуры задачи. И чем лучше аналитик владеет полным арсеналом возможных методов проектирования, тем быст-рее он начинает распознавать «чистые» формулировки, лежащие в основе запутанных задач реального мира.
Читать дальше →

Обзор примитивов синхронизации — спинлоки и тайны ядра процессора

Время на прочтение5 мин
Охват и читатели61K
Последняя статья про классические примитивы синхронизации.

(Наверное, потом напишу ещё одну про совсем уже нетипичную задачу, но это потом.)

Сегодня мы немножко заглянем в процессор. Чуть-чуть.

По сути, мы будем говорить про единственный примитив, который принципиально отличается от остальных: спинлок. Spinlock.

В комментариях к предыдущим заметкам возникла дискуссия — насколько справедливо вообще выделять спинлок как примитив, ведь по сути он — просто мьютекс, верно? Он выполняет ту же функцию — запрещает одновременное исполнение фрагмента кода несколькими параллельными нитями.

На уровне процесса всё так и есть — различия между спинлоком и мьютексом — чисто технические, вопрос реализации и производительности.

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

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

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

Итак, иерархия реализации такова: mutex/cond/sema сделаны на базе спинлоков, спинлоки — на базе атомарных операций, предоставляемых процессором. Мы в них немного заглянем сегодня.

Как устроен спинлок?
Читать дальше →

Обзор примитивов синхронизации — Семафор и немного lockless-а

Время на прочтение6 мин
Охват и читатели31K
В прошлой заметке мы обсудили самую известную пару из лагеря инструментов синхронизации тредов — mutex и cond. Сегодня встретимся с sema — примитивом, который умеет заменять предыдущие два в одиночку.

Но сначала — пара слов о случайных пробуждениях. (Спасибо xaizek, который мне об этом напомнил.) В принципе, строго реализованные механизмы синхронизации этим не страдают, но, тем не менее, опытный программист на это никогда не полагается.

Напомню фрагмент кода:

while(total_free_mem <= 0)
    {
    wait_cond(&got_free_mem, &allocator_mutex);
    }


Здесь цикл вокруг wait_cond гарантирует нам, что даже если мы вернёмся из ожидания события случайно или по ошибке, ничего страшного не случится — проверка в while обеспечит нам уверенность, что нужное состояние проверяемого объекта достигнуто. Если нет — поспим ещё в ожидании.

Отметим ещё раз, что проверяем мы состояние объекта (total_free_mem <= 0) при запертом мьютексе, то есть никто не может его менять в то же самое время.
Читать дальше →

Хеди Ламарр. И в кино обнаженной сняться, и во врага торпедой пульнуть

Время на прочтение5 мин
Охват и читатели60K

Хеди Ламарр (Hedy Lamarr) — популярная в 1930—1940-е годы австрийская, а затем американская актриса кино, а также изобретательница.

В 16 лет ушла из дома. Поступила в театральную школу, начала сниматься в кино.

В 23 года, после четырех лет неудачного брака, подсыпав снотворное горничной, сбегает. На пароходе «Нормандия» она отправляется из Лондона в Нью-Йорк.

Electronic Frontier Foundation присудили Ламарр в 1997 году награду (за изобретение почти 60-ти летней давности), а 49% прав на патент выкупила компания WiLan, в 2014 включили в Зал славы изобретателей.

9 ноября, день рождения Хеди Ламарр, в немецкоязычных странах отмечается как День изобретателя.

А вот история из жизни. Госэкзамен на военной кафедре ДВФУ, 2005 год.

Капитан первого ранга:
— Рядовой MagisterLudi, вам последний вопрос. Ответите, значит сдали экзамен, но учтите, этой темы нет в вашем учебном плане. Как обеспечить связь между кораблем и базой, чтобы противник не смог заглушить частоту, на которой вы передаете сообщение?
— Псевдослучайная перестройка частоты.
— Сдал.

Капитан третьего ранга молча сделал фейспалм в углу аудитории, потому что последние полгода он заставлял меня и еще троих ребят прочесывать интернет на тему его кандидатской по ПСПЧ. Председатель комиссии, капитан первого ранга, естественно, этого не знал.

Откуда мифы про Agile

Время на прочтение4 мин
Охват и читатели9.6K

Сейчас много говорят о гибких подходах к разработке программного обеспечения. И даже пытаются внедрить для выполнения гос. контрактов. С другой стороны, много компаний спотыкаются на этих подходах. И хотя в компаниях делают что нужно, и даже Scrum-мастер в них есть, программный Продукт почему-то перестает развиваться, и появляется много задач на исправление дефектов. Давайте разберемся почему так происходит.

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

Все ядерные взрывы на одной карте

Время на прочтение2 мин
Охват и читатели84K
image

Американская компания Esri разработала интерактивную карту, которая показывает все 2624 успешных ядерных взрывов, начиная с 1945 года, сообщает independent.

Первым успешным ядерным взрывом в истории было испытание «Тринити», проведенное армией США в июле 1945 года.
Энергия взрыва той бомбы была эквивалентна приблизительно 21 килотонне тротила. Один из руководителей проекта, Роберт Оппенгеймер, американский физик-теоретик, сказал: «Мы знали, что мир не будет прежним. Кто-то смеялся, кто-то плакал, но большинство людей молчали, и я вспомнил строку из индуистского священного писания: „Я стал Смертью, уничтожителем Миров“».
Читать дальше →

Альтернативы Raspberry Pi

Время на прочтение4 мин
Охват и читатели55K
Когда речь заходит об одноплатных компьютерах (single-board computer), вероятно, первым на ум приходит именно Raspberry Pi. Тем более, что недавно вышла третья «малина», которая шустрее и мощнее предыдущих версий. Крохотные компьютеры этой линейки, изначально предназначавшиеся под обучение информатике, способны делать много чего интересного. Эта «машинка» может стать метеостанцией на солнечной энергии, управляющим центром «умного дома», игровой приставкой для любителей 8-битной классики и даже сердцем радиоуправляемых моделей. Тут все зависит от фантазии, желания и прямоты рук.



Но несмотря на все свои особенности и преимущества, Raspberry Pi конечно же несовершенен. На рынке одноплатных компьютеров есть и другие модели. Ниже представлена подборка альтернатив RPi, заслуживающих внимания.

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

Бинаризация изображений: алгоритм Брэдли

Время на прочтение5 мин
Охват и читатели71K
Этот пост я хочу посвятить приятному трофею, добытому в англоязычном интернете. Речь пойдет об одном из методов адаптивной бинаризации изображений, методе Брэдли (или Брэдли-Рота, поскольку авторов двое).

Немного теории


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

Главная цель бинаризации, это радикальное уменьшение количества информации, с которой приходится работать. Просто говоря, удачная бинаризация сильно упрощает последующую работу с изображением. С другой стороны, неудачи в процессе бинаризации могут привети к искажениям, таким, как разрывы в линиях, потеря значащих деталей, нарушение целостности объектов, появление шума и непредсказуемое искажение символов из-за неоднородностей фона. Различные методы бинаризации имеют свои слабые места: так, например, метод Оцу может приводить к утрате мелких деталей и „слипанию“ близлежащих символов, а метод Ниблэка грешит появлением ложных объектов в случае неоднородностей фона с низкой контрастностью. Отсюда следует, что каждый метод должен быть применен в своей области.
Читать дальше →

Создание архитектуры программы или как проектировать табуретку

Время на прочтение25 мин
Охват и читатели730K
Взявшись за написание небольшого, но реального и растущего проекта, мы «на собственной шкуре» убедились, насколько важно то, чтобы программа не только хорошо работала, но и была хорошо организована. Не верьте, что продуманная архитектура нужна только большим проектам (просто для больших проектов «смертельность» отсутствия архитектуры очевидна). Сложность, как правило, растет гораздо быстрее размеров программы. И если не позаботиться об этом заранее, то довольно быстро наступает момент, когда ты перестаешь ее контролировать. Правильная архитектура экономит очень много сил, времени и денег. А нередко вообще определяет то, выживет ваш проект или нет. И даже если речь идет всего лишь о «построении табуретки» все равно вначале очень полезно ее спроектировать.

К моему удивлению оказалось, что на вроде бы актуальный вопрос: «Как построить хорошую/красивую архитектуру ПО?» — не так легко найти ответ. Не смотря на то, что есть много книг и статей, посвященных и шаблонам проектирования и принципам проектирования, например, принципам SOLID (кратко описаны тут, подробно и с примерами можно посмотреть тут, тут и тут) и тому, как правильно оформлять код, все равно оставалось чувство, что чего-то важного не хватает. Это было похоже на то, как если бы вам дали множество замечательных и полезных инструментов, но забыли главное — объяснить, а как же «проектировать табуретку».

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

Данная статья является попыткой ответить на эти вопросы хотя бы в первом приближении.
Читать дальше →

Если бы повара ходили на собеседования, как программисты

Время на прочтение4 мин
Охват и читатели36K
Недавно мне попалась на глаза старая публикация и как-то случайно родился ответ.

Интервьюер: Мы ищем шеф-повара во французский ресторан. Расскажите о своем опыте работы.

Соискатель: Можно сказать, что у меня уже 20 лет профессионального опыта. Я занимаюсь готовкой с 7 лет. Когда мама уходила на работу — я сам разогревал себе пиццу в микроволновке.
Читать дальше →
12 ...
144

Информация

В рейтинге
4 732-й
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность