Pull to refresh
2
Karma
0
Rating
Michael Vlasov @Vumik

Web-разработчик, IT-специалист

Учебное пособие по кэшированию, часть 2

High performance *Website development *
Translation
Вторая часть довольно подробного и интересного изложения материала, касающегося кэша и его использования. Часть 1.

Автор, Mark Nottingham, — признанный эксперт в области HTTP-протокола и веб-кэширования. Является председателем IETF HTTPbis Working Group. Принимал участие в редактировании HTTP/1.1, part. 6: Caching. В настоящий момент участвует в разработке HTTP/2.0.

Текст распространяется под лицензией Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 Unported License.

От переводчика: об опечатках и неточностях просьба сообщать в личку. Спасибо.
Читать дальше →
Total votes 16: ↑15 and ↓1 +14
Views 166K
Comments 2

Реализация семантического новостного агрегатора с широкими поисковыми возможностями

Search engines *Semantics *
Sandbox
Цель этой статьи — поделиться опытом и идеями реализации проекта, основанного на полном преобразовании текстов в семантическое представление и организации семантического (смыслового) поиска по полученной базе знаний. Речь пойдет об основных принципах функционирования этой системы, используемых технологиях, и проблемах, возникающих при ее реализации.

Зачем это нужно?


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

Семантический поиск – это не только ответ по смыслу на набранную в поисковой строке фразу, а в целом способ взаимодействия пользователя с системой. Семантическим запросом может быть не только простое понятие или фраза, но и документ — система при этом выдает семантически связанные документы. Профиль интересов пользователя – это тоже семантический запрос и может действовать в «фоновом режиме» параллельно с другими запросами.
Читать дальше →
Total votes 14: ↑13 and ↓1 +12
Views 9.9K
Comments 14

Какие фильмы запомнились нам своей музыкой

Аудиомания corporate blog Working with video *Popular science Demoscene Sound


Фото Simon Bonaventure CC BY-SA

Музыка должна делать фильм запоминающимся, придавать ему пикантности, душевности, то есть выделять в фильме самые главные моменты, впечатления от которых остаются с вами надолго.
Читать дальше →
Total votes 29: ↑22 and ↓7 +15
Views 30K
Comments 144

350+ полезных ресурсов, книг и инструментов для работы с Docker

1cloud.ru corporate blog Website development *Development of mobile applications *Development for e-commerce *Development for IOT *
Translation
Мы уже ни раз приводили полезные руководства и подборки источников для разработчиков. На этот раз мы решили продолжить тему контейнеров, которую мы затрагивали ранее, и рассказать о подборке тематических ресурсов на GitHub.

Читать дальше →
Total votes 34: ↑31 and ↓3 +28
Views 96K
Comments 8

Скрипт для быстрой оценки состояния Linux систем

ua-hosting.company corporate blog
Обязанность системного администратора — следить за загруженностью системы, за пользователями, создавать резервную копию и бла-бла-бла. Для наиболее повторяющихся задач существуют различные сценарии, которые позволяют сохранить пальцы на руках и сделать постоянно повторяющиеся задачи более простыми. Здесь представлен скрипт, который не стремится автоматизировать задачи типичного системного администратора, но он может быть полезен для тех новичков, желающих получить часть необходимой информации об их системе, сети, пользователях, нагрузке, RAM, владельцах, внутреннем и внешнем IP и т.п.

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

Вы можете свободно использовать, изменять, распространять приведенные ниже фрагменты кода. Скрипт максимально оптимизирован, чтобы выводить только необходимые данные и обращаться только к нужным директориям — ничего лишнего.
Давайте попробуем
Total votes 44: ↑25 and ↓19 +6
Views 22K
Comments 47

Быстрый старт за 5 минут с Angular 2 beta

Website development *JavaScript *Angular *
Tutorial
Translation
Вашему вниманию предлагается перевод туториала «5 min quickstart» от команды Angular. Туториал описывает процесс создания «Hello World»-приложения на новом фреймворке Angular 2, который недавно получил статус «бета».

Давайте начнём с нуля и построим суперпростое приложение Angular2 на TypeScript.

Демо


Запуск работающего примера — это самый лучший способ увидеть, как оживает приложение на Angular 2.
Нажатие этой ссылки открывает новую вкладку, загружает пример в plunker и отображает простое сообщение:
My First Angular 2 App

Читать дальше →
Total votes 26: ↑22 and ↓4 +18
Views 160K
Comments 36

Кому и зачем все-таки нужен Go?

Open source *System Programming *Go *
Recovery mode
image
Здарова! Короче, последнее время на хабре было много срачей вокруг Go: хороший-плохой, нужен-ненужен, много сравнивали с питоном, много сравнивали с растом, divan0 даже додумался перевести высер «Go vs Haskell» ну и в таком ключе. У меня сложилось ощущение, что из-за хайпа и агрессивного маркетинга языка некоторыми Иванами Данилюками очень мало кто понял, кому и зачем вообще Go может пригодиться, зачем его делали и стоит ли вообще его учить. Я тоже долгое время участвовал в этих срачах, принимая посменно сторону «фанов» языка и сторону оппозиции, но в конце-концов допер, в чем фокус. Сегодня немного потупил у дивана в посте и решил написать вот эту заметочку.

Давайте, пацаны, проходим в пост.
Читать дальше →
Total votes 208: ↑133 and ↓75 +58
Views 172K
Comments 252

Полезные сниппеты для Nginx конфигов

Nginx *


Доброго времени суток, уважаемые хабравчане! В Elasticweb мы негласно ратуем за Nginx и, наверное, мы одни из немногих хостингов, которые не поддерживают Apache и .htaccess соответственно. В связи с этим, большое количество обращений в тех. поддержку связано с оказанием помощи в написании конфигурационного файла для Nginx. Поэтому мы решили собрать коллекцию полезных сниппетов и коллекцию готовых Nging конфигов для наиболее популярных CMS/CMF/Фреймворков на PHP.

Читать дальше →
Total votes 94: ↑91 and ↓3 +88
Views 118K
Comments 44

Обзор платежных агрегаторов для приема платежей

Payment systems *
image Если вы владелец интернет-магазина и хотите, чтобы покупатель мог оплатить товары удобным ему способом, у вас есть два пути: подключать и настраивать оплату для каждой платежной системы отдельно — мучиться с интеграцией, подписанием договоров… либо сделать все быстро и без лишней волокиты — воспользоваться услугами компании, которая является платежным агрегатором. При выборе последнего варианта вам понадобится подписать всего один договор, а ваш покупатель сможет выбрать удобный ему способ оплаты из десятков доступных. Это и оффлайн способы, и электронные кошельки и, конечно же, оплата банковской картой. Платежных агрегаторов множество.

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

Чем же платежные агрегаторы отличаются друг от друга, и на что стоит обратить внимание?


Каждую компанию было решено рассмотреть по десяти параметрам. Ниже приведено детальное описание параметра и почему на это стоит обратить внимание.
Читать дальше →
Total votes 42: ↑38 and ↓4 +34
Views 300K
Comments 49

Мозг. Голографическая память. Биология квантовых вычислений

Biotechnologies Artificial Intelligence Physics Brain Supercomputers


Говорят, что чтобы правильно задать вопрос надо знать большую часть ответа. Основной вопрос, который обычно задают про мозг – это как он устроен и каковы принципы его работы? Вопрос хороший и вполне корректный. Но предположим, что нам удалось узнать «большую часть ответа». Допустим, что возникла теория, которая исключительно правдоподобно описывает работу мозга. Какой вопрос теперь будет «правильным»?
Читать дальше →
Total votes 23: ↑18 and ↓5 +13
Views 39K
Comments 35

Управление разработкой программного продукта на основе рисков

Website development *Programming *
image
Эта статья адресована тем, кто имеет отношение к разработке программного продукта. Понимание принципов управление процессом разработки не менее важно, чем фактические знания технологий программирования. Статья не адресована только тем, кто хочет стать или работает руководителем проекта (Project Manager), Понимание принципов управления принесет пользу на любой должности и в любой команде.
Читать дальше →
Total votes 16: ↑13 and ↓3 +10
Views 26K
Comments 14

Семь советов по внедрению HTTP/2

High performance *Website development *
Translation
Недавно вышла новая версия стандарта HTTP. В мае 2015 года был утвержден HTTP/2, который получил распространение среди браузеров и веб-серверов (включая NGINX и NGINX Plus). На данный момент более 60% используемых браузеров поддерживают HTTP/2, причем эта цифра продолжает увеличиваться с каждым месяцем.

Стандарт HTTP/2 основан на протоколе SPDY, разработанном компанией Google. В Google Chrome поддержка SPDY будет осуществляться до начала 2016 года. NGINX одним из первых реализовал протокол SPDY и сейчас играет ведущую роль в продвижении HTTP/2. Была опубликована статья, в которой дано подробное описание HTTP/2, приводится сравнение со SPDY и подробно описывается процесс внедрения нового протокола.
Читать дальше →
Total votes 22: ↑19 and ↓3 +16
Views 43K
Comments 10

Подборка бесплатных инструментов для разработчиков

CloudMTS corporate blog Website development *Programming *Game development *Development for e-commerce *
Translation
Сегодня мы представляем вашему вниманию адаптированную подборку инструментов (в том числе облачных) для разработчиков, которые позволяют создавать по-настоящему качественные проекты. Здесь представлены исключительно SaaS, PaaS и IaaS сервисы, предоставляющие бесплатные пакеты для разработчиков инфраструктурного ПО.

Читать дальше →
Total votes 96: ↑89 and ↓7 +82
Views 183K
Comments 38

Изолируем демоны с systemd или «вам не нужен Docker для этого!»

Information Security *
В последнее время я вижу, как довольно большое количество людей применяет контейнерную виртуализацию только для того, чтобы запереть потенциально небезопасное приложение внутри контейнера. Как правило, используют для этого Docker из-за его распространенности, и не знают ничего лучше. Действительно, многие демоны первоначально запускаются от имени root, а далее либо понижают свои привилегии, либо master-процесс порождает обрабатывающие процессы с пониженными привилегиями. А есть и такие, которые работают исключительно от root. Если в демоне обнаружат уязвимость, которая позволяет получить доступ с максимальными привилегиями, будет не очень приятно обнаружить злоумышленников, уже успевших скачать все данные и оставить вирусов.
Контейнеризация, предоставляемая Docker и другим подобным ПО, действительно спасает от этой проблемы, но также и привносит новые: необходимо создавать контейнер для каждого демона, заботиться о сохранности измененных файлов, обновлять базовый образ, да и сами контейнеры часто основаны на разных ОС, которые необходимо хранить на диске, хотя они вам, в общем-то, и не особо нужны. Что делать, если вам не нужны контейнеры как таковые, в Docker Hub приложение собрано не так, как нужно вам, да и версия устарела, SELinux и AppArmor кажутся вам слишком сложными, а вам бы хотелось запускать его в вашем окружении, но используя такую же изоляцию, которую использует Docker?

Capabilities

В чем отличие обычного пользователя от root? Почему root может управлять сетью, загружать модули ядра, монтировать файловые системы, убивать процессы любых пользователей, а обычный пользователь лишен таких возможностей? Все дело в capabilities — средстве для управления привилегиями. Все эти привилегии даются пользователю с UID 0 (т.е. root) по умолчанию, а у обычного пользователя нет ни одного из них. Привилегии можно как дать, так и отобрать. Так, например, привычная команда ping требует создания RAW-сокета, что невозможно сделать от имени обычного пользователя. Исторически, на ping ставили SUID-флаг, который просто запускал программу от имени суперпользователя, но сейчас все современные дистрибутивы выставляют CAP_NET_RAW capability, которая позволяет запускать ping из-под любого аккаунта.
Получить список установленных capabilities файла можно командой getcap из состава libcap.
% getcap $(which ping)
/usr/bin/ping = cap_net_raw+ep

Флаг p здесь означает permitted, т.е. у приложения есть возможность использовать заданную capability, e значит effective — приложение будет ее использовать, и есть еще флаг iinheritable, что дает возможность сохранять список capabilities при вызове функции execve().
Capabilities можно задать как на уровне ФС, так и просто у отдельного потока программы. Получить capability, которая не была доступна с момента запуска, нельзя, т.е. привилегии можно только понижать, но не повышать.
Также существуют биты безопасности (Secure Bits), их три: KEEP_CAPS позволяет сохранить capability при вызове setuid, NO_SETUID_FIXUP отключает перенастройку capability при вызове setuid, и NOROOT запрещает выдачу дополнительных привилегий при запуске suid-программ.
Читать дальше →
Total votes 72: ↑70 and ↓2 +68
Views 47K
Comments 34

Про роль техлида

Website development *Designing and refactoring *
Sandbox

Для кого эта статья?


В основном статья для технических лидеров команд разработчиков ПО и тех, кто стремится ими стать. И, конечно, для остальных, кого заинтересовала тема.  Для тех, кому интересно мнение относительно роли технического лидера, и для тех, кто готов делиться собственными соображениями на этот счет.

Что будет обсуждаться далее? В основном, это будут мысли на тему роли технического лидера, важных моментов в его работе, а также совсем немного про архитектуру и модульность.

image
Читать дальше →
Total votes 27: ↑22 and ↓5 +17
Views 50K
Comments 15

Как я делал веб-версию KeePass

Information Security *Website development *JavaScript *Programming *HTML *
Как-то мне надо было добавить в админку просмотр списка паролей. База хранилась на сервере в формате KeePass (kdbx v2), сервер был на ноде — недолго думая, я взял первый попавшийся пакет и сделал. А потом понадобилось то же самое, но прямо у пользователя в браузере, без сервера. Ничего не нашлось. Первым желанием было форкнуть либу и заменить использование node api, но от первого просмотра кода желание пропало, решил сделать сам.



Под катом расскажу о проблемах, с которыми я столкнулся, и способах их решения
Читать дальше →
Total votes 134: ↑133 and ↓1 +132
Views 77K
Comments 162

Шпаргалка Java программиста 2: Триста пятьдесят самых популярных не мобильных Java opensource проектов на github

Website development *Open source *Programming *Java *GitHub *
Что это и зачем оно надо: Как известно, главное преимущество Java мира в том в нем существует огромное количество open-source проектов на на все случаи жизни, однако найти нужный на github'e не так просто, так как описание проекта часто мало информативно, зачастую сложно даже понять этот проект для Android'a или нет. В этой статье я автоматически и полуавтоматически собрал Java проекты, убрал старые и проекты только для Android'a, выбрал 350 набравших больше всего звезд, разделил по категориям и перевел описания.

Если вы хотите убедиться что базы данных пишут не только на C, найти проекты для работы с большими данными или нейронными сетями, пишите свой язык программирования для JVM и хотите посмотреть как это уже сделано или же просто хотите узнать какие новые возможности можно найти в Java мире open-source то это статья вам, думаю, может пригодится.

В чем смысл серии статей 'Шпаргалки Java программиста'
За время работы Java программистом я заметил, что как правило программисты постоянно и планомерно используют от силы 10-20% от возможностей той или иной технологии, при этом остальные возможности быстро забываются и при появлении новых требований, переходе на новую работу или подготовке к техническому интервью приходится перечитывать все документации и спецификации с нуля. Зато наличие краткого конспекта особенностей тех или иных технологий (шпаргалок) позволяет быстро освежить в памяти особенности той или иной технологии.


Другие статьи серии: часть 1. JPA и Hibernate в вопросах и ответах

Update: Внимание, актуальная версия со много большим количеством ссылок, находиться теперь в моем github'e проекте useful-java-links, по этой ссылке.


Читать дальше →
Total votes 51: ↑43 and ↓8 +35
Views 160K
Comments 49

Еще один способ автоматизировать/тестировать игру

Game development *
У Вас есть знакомый, который постоянно играет в какую-нибудь игру в контакте? Не знаю как Вас, а меня нервирует когда взрослый человек тратит по 12 часов на не очень умную игру. Вот глядя на одного такого знакомого захотелось написать робота, который бы играл вместо него.

Не так давно на Хабре была целая волна статей, посвященных ботам для браузерных игр: [1], [2], [3] и т.д.
Казалось бы все способы уже перебрали, но недавно я натолкнулся еще на один весьма интересный и менее трудоемкий способ.

Кому хочется посмотреть как же написать бота для игры в 30 строчек кода — прошу под кат.
Читать дальше →
Total votes 72: ↑69 and ↓3 +66
Views 18K
Comments 20

Строим real-time веб-приложения с RethinkDB

Website development *
Translation
От переводчика: Совсем недавно узнал про эту довольно интересную базу данных и как раз наткнулся на свежую статью. На Хабре нет почти ни слова о RethinkDB, в связи с чем было решено сделать этот перевод. Добро пожаловать под кат!

image

База данных RethinkDB упрощает разработку веб-приложений, рассчитанных на обновления в режиме реального времени.
Читать дальше →
Total votes 25: ↑23 and ↓2 +21
Views 42K
Comments 36

MJX X800 — гексакоптер с удивительными функциями за 29.99$

Dronk.Ru corporate blog Gadgets Robotics IOT Multicopters
Recovery mode
Я думал, что меня уже сложно удивить и порадовать какой-то «мелкотой», но описание квадрокоптера MJX X800 меня зацепило и я заказал его, правда, без особых надежд на хороший продукт, тем более с фирмой MJX я не был знаком, а стоимость в 29.99$ не внушала оптимизма получить качественный продукт.

Но я ошибся. Очевидно, что компания MJX действительно постаралась сделать X800 таким, чтобы сформировать доверие к своей продукции: хорошее проектирование и сборка, 6 винтов, качественный пластик и самое крутое — функция переключения пульта в режим «Gravity control», когда наклонами в полёте ты управляешь не стиком, а наклонами самого пульта. При этом функция не навязывается, а дополняет обычный пульт, то есть можешь быть обычным пилотом, а можешь переключить в режим «мага и волшебника» и управлять одной рукой.

Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Views 26K
Comments 13

Information

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