Pull to refresh
90
0
Send message

Пишем социальную сеть на Ruby on Rails. Часть 2

Reading time 3 min
Views 2.6K

Прошлая статья:

Пишем социальную сеть на Ruby on Rails. Часть 1

Всем привет, сегодня вторая часть серии статей "Пишем социальную сеть на Ruby on Rails" и сегодня я планирую добавить CI/CD.

Читать далее
Total votes 4: ↑4 and ↓0 +4
Comments 3

Топ-10 книг для разработчика

Reading time 6 min
Views 130K

Совершенствоваться в сфере разработки — это не только писать хороший код, но и читать о том, как его писать.




Привет, хабр! Продолжаю делиться полезными подборками. Совсем недавно я опубликовал 2 поста с перечнем Github репозиториев: Часть1 и Часть2. На этот раз предлагаю вашему вниманию подборку полезных книг для разработчиков. Кому интересно — добро пожаловать под кат.
Читать дальше →
Total votes 30: ↑26 and ↓4 +22
Comments 40

Анализ кода демо Second Reality

Reading time 11 min
Views 7.5K

23 июля 2013 года был опубликован исходный код демо Second Reality (1993 год). Как и многим, мне не терпелось взглянуть на внутренности демо, которое так вдохновляло нас на протяжении всех этих лет.

Я ожидал увидеть монолитный хаос из ассемблера, но вместо него я, к удивлению своему, обнаружил сложную архитектуру, изящным образом объединяющую несколько языков. Никогда раньше не видел я подобного кода, идеально представляющего два неотъемлемых аспекта разработки демо:

  • Командная работа.
  • Обфускация.

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

Часть 1: введение


Демо


Прежде чем приступать к коду, дам ссылку на захват легендарного демо в HD-видео (Майкла Хата). Сегодня это единственный способ полноценно оценить демо без графических глитчей (даже DOSBox не может правильно его запускать).

Total votes 33: ↑33 and ↓0 +33
Comments 6

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

Reading time 9 min
Views 49K
В последнее время я вижу, как довольно большое количество людей применяет контейнерную виртуализацию только для того, чтобы запереть потенциально небезопасное приложение внутри контейнера. Как правило, используют для этого 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
Comments 34

BPF для самых маленьких, часть нулевая: classic BPF

Reading time 22 min
Views 51K

Berkeley Packet Filters (BPF) — это технология ядра Linux, которая не сходит с первых полос англоязычных технических изданий вот уже несколько лет подряд. Конференции забиты докладами про использование и разработку BPF. David Miller, мантейнер сетевой подсистемы Linux, называет свой доклад на Linux Plumbers 2018 «This talk is not about XDP» (XDP – это один из вариантов использования BPF). Brendan Gregg читает доклады под названием Linux BPF Superpowers. Toke Høiland-Jørgensen смеется, что ядро это теперь microkernel. Thomas Graf рекламирует идею о том, что BPF — это javascript для ядра.


На Хабре до сих пор нет систематического описания BPF, и поэтому я в серии статей постараюсь рассказать про историю технологии, описать архитектуру и средства разработки, очертить области применения и практики использования BPF. В этой, нулевой, статье цикла рассказывается история и архитектура классического BPF, а также раскрываются тайны принципов работы tcpdump, seccomp, strace, и многое другое.


Разработка BPF контролируется сетевым сообществом Linux, основные существующие применения BPF связаны с сетями и поэтому, с позволения @eucariot, я назвал серию "BPF для самых маленьких", в честь великой серии "Сети для самых маленьких".

Читать дальше →
Total votes 62: ↑62 and ↓0 +62
Comments 5

Настройка Firefox в Linux

Level of difficulty Medium
Reading time 127 min
Views 87K
Решил написать о настройке Firefox для Linux. В интернете похожие статьи тоже есть, но в основном они по старым версиям браузера. Радикальных отличий в настройке Firefox для Linux или для Windows нет, однако есть свои особенности.
Читать дальше →
Total votes 35: ↑30 and ↓5 +25
Comments 365

Компьютер ПЭВМ «Поиск». Электронмаш

Reading time 10 min
Views 81K
image Сегодня я бы хотел немного рассказать о незаслуженно обделенном на Хабре вниманием советском ПЭВМ Поиск. Отличает данный компьютер от многочисленных Байтов, Ириш, Корветов, БК0010, Радио-Р86 и прочих то, что он был полу-совместим с IBM XT/PC. Машина базировалась на отечественном аналоге процессора Intel i8088 — КМ1810ВМ88, работающем на чуть завышенной частоте — ~ 5 MHz, против 4,7 MHz у оригинальной XT. Однако, в целом, компьютер работал медленнее, чем XT, потому что в Поиске не была реализована полноценная CGA видеокарта. Фактически, текстовые режимы эмулировались – видеоадаптер всегда работал в графическом режиме, а буквы на экране прорисовывал системный BIOS попиксельно. Естественно это отнимало кучу процессорного времени. Еще одним отличием от настоящей XT было отсутствие DMA, что так же сказывалось на быстродействии работы с памятью не в лучшую сторону. Да и самой памяти было далеко не 640Kb, которых бы конечно хватило всем, а поменьше, и ее хватало не всем. Однако, несмотря на все недостатки, ПЭВМ Поиск мог запускать актуальную в то время MS-DOS и работать практически со всеми популярными в то время приложениями и играми, начиная от Norton Commander и Digger, заканчивая Windows и Office. И цена, конечно… Если настоящую XT-шку могли позволить себе в основном только организации, то ПК Поиск был более-менее доступен для рядового советского инженера (месячная зарплата). Но обо всем по порядку…
Много фотографий на калькулятор и скриншотов
Total votes 137: ↑136 and ↓1 +135
Comments 32

История игрушки. Поле Чудес

Reading time 11 min
Views 297K
Случилось это в городе, закрытом от шпионов, цыган и бед социалистической экономики. В Советском Союзе было ровно 10 таких городов, повязанных атомным секретом.

Жизнь мальчиков с математическими способностями в атомных городах была предопределена — школа с пятерками по алгебре и геометрии, мех-мат столичного университета, возвращение в систему, квартира через год, кандидатская степень в 40 лет, ВАЗ 2103 к пятидесяти годам, звание доктора, гараж, шесть соток, четыре квадратных метра.

Бесконечные размышления о математическом моделировании ядерных взрывов разрывали мальчикам мозг. Мозг можно было отвлечь тремя способами — алкоголем, азартными играми и спортом. Секс и музыка помогали не всегда.

Pole Chudes для iPhone

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

Читать дальше →
Total votes 933: ↑923 and ↓10 +913
Comments 311

Настраиваем AirPrint на обычном USB принтере под Mac OS X 10.6.5 (Видео)

Reading time 1 min
Views 25K
Вчера вышла прошивка для устройств на iOS за номером 4.2.1, в паре с Mac OS X 10.6.5 она позволяет печатать на принтерах с iPad и iPhone.

Но есть маленькое НО, по задумке Apple это возможно только с определенными специальными принтерами.

Программка airprinthacktivator решает эту проблему в корне, и мы можем печатать на любом USB принтере.

Вот снял сегодня видео, как это работает.



Программку для активации функции AirPrint для обычных USB принтеров качаем тут — netputing.com/airprinthacktivator

На iPhone 4 тоже работает.
Total votes 35: ↑30 and ↓5 +25
Comments 45

Эффективная обработка фотографий в Photoshop

Reading time 6 min
Views 146K
Эффективная обработка фотографий в Photoshop

Читая статьи о Photoshop, я часто удивляюсь тому, насколько многие авторы усложняют решение по сути простых задач по обработке. Этим страдают и многие «монументальные» писатели, например Дэн Маргулис. Но ему это простительно – его задача написать о всех тонкостях и нюансах процесса обработки, рассмотреть его со всех ракурсов и сторон. Хотя именно эта особенность подачи материала в его книгах отталкивает многих читателей.

На самом деле, корни подобных способов «увеличить резкость в 40 действий» растут из очень простой вещи – люди, которые пишут эти уроки, никогда не работали с большим объемом фотографий. То есть, как правило, у них есть пара фотографий и они готовы в процессе их обработки убить вечер-другой. Но когда у тебя идут постоянные заказы, и с каждой фотосессии тебе надо серьезно обработать несколько десятков кадров – начинаешь задумываться о более простых и удобных способах обработки.

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

Читать дальше →
Total votes 288: ↑244 and ↓44 +200
Comments 117

Обзор маршрутизатора NETGEAR WNR3500L

Reading time 6 min
Views 64K
Здравствуйте, хабралюди и хабрагости!
Увидел пару обзоров маршрутизаторов NETGEAR на Хабре за последнее время и решил внести свою лепту в это дело.На руках у меня где-то с апреля месяца имеется железка WNR3500L.
Ключевыми особенностями маршрутизатора можно назвать наличие гигабитных портов, usb-порта, wi-fi n-стандарта и сравнительно низкая цена (4500 рекомендованная, менее 4000 — в недорогих компьютерных магазинах) за предлагаемый функционал. Полноценный обзор мне сделать сложно, в силу отсутствия необходимого для этого железа в нужное время и в нужном месте, но кое-что интересное, полагаю, смогу написать. Сознательно включил в обзор ряд для многих очевидных моментов, которые не относятся напрямую к роутеру, но, тем не менее, некоторым хабрапосетителям могут быть новыми и интересными.

Внешний вид.

Внешний вид маршрутизатора мало отличается от WNR2000 или WNR3500 (использовано изображение с офф. сайта, глянец меня победил).



Матовые решетки сверху и снизу (производитель, по всей видимости, предлагает только вертикальную установку роутера), матовый пластик сзади (там, где подключаются кабеля) и хорошо притягивающий пыль и отпечатки пальцев глянец на всех остальных поверхностях.
Читать дальше →
Total votes 34: ↑25 and ↓9 +16
Comments 52

Преемник Blapkmarket'а — Warket

Reading time 2 min
Views 3.2K
image
По примеру Apple, Google решила встроить в Android Market и не прогадала, ведь всякому нравится, когда не приходится искать свежий софт, бегая как бешеная собака по сайтам произодителям, как это делает большинство пользователей к примеру WM или Symbian. Однако не ясно по каким причинам Google, одними почитаемый, другими презираемый, а третьими используемый, отказал России и некоторому количеству стран в возможносит купить приложения за деньги, оставив в списке только бесплатные приложения.
Читать дальше →
Total votes 52: ↑46 and ↓6 +40
Comments 79

Axelvox HD242 – удобный звук

Reading time 4 min
Views 44K
Сейчас буду рад рассказать Вам о новых наушниках с саморегулирующимся размером и очень высококачественным звуком, который оценят как простые слушатели, так и заядлые меломаны и профи.



Читать дальше →
Total votes 73: ↑49 and ↓24 +25
Comments 117

Интернет-радио

Reading time 3 min
Views 4.2K
последние несколько лет постоянно, часов по 10-16 в день, слушаю интернет-радио и вот небольшой список очень хороших, на мой взгляд, станций, которые постоянно развиваются и совершенствуются, выбирал те, которые меньше всего надоедают и их можно слушать очень долго:
Читать дальше →
Total votes 44: ↑37 and ↓7 +30
Comments 60

Релаксирующий редактор

Reading time 3 min
Views 5.8K
image

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

Под катом немного графики и впечатлений

Читать дальше →
Total votes 160: ↑138 and ↓22 +116
Comments 135

Установка с внешнего HDD

Reading time 2 min
Views 369K
image
Я уже как год отказался от DVD привода, а тенденции нетбуков говорят о правильности решения. Но перед мной встал вопрос, как установить операционку без DVD. Не к месту умерла флешка, а когда я пошел в магазин за новой, на глаза случайно попались внешний диски Seagate Expansion, 250Gb версия которого стоила буквально на 500 рублей дороже, чем 8Gb флешка (2323 рубля). А размер и весь которой, не сильно смущал карман куртки.
Размеры:141 x 18 x 80 мм
Вес:0.16 кг

Но как оказалось, установка Windows 7 с USB HDD, работает не по-такому же принципу как с USB FLASH. Разобравшись и проверив работоспособность, делюсь информацией с вами.
Работает как и для Настольных ПК, ноубтуков, так и для Нетбуков.
  • Подготовка HDD
  • Нарезка и подготовка разделов HDD;
  • Копирование Windows 7

Читать дальше →
Total votes 85: ↑61 and ↓24 +37
Comments 70

Codecademy запустил русскую версию

Reading time 1 min
Views 222K


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

Это стало возможным благодаря получению 10 млн долларов венчурного финансирования от Kleiner Perkins, Index Ventures, Union Square Ventures, Юрия Мильнера и Ричарда Брэнсона, сообщает TechCrunch.

Сервис помогает научиться программировать всем тем, кто хочет основать собственные технологические компании, не имея необходимых технических навыков. Новые пользователи, работая над наборами уроков от других пользователей, учатся писать простые функции и создавать более сложные задачи и решения.
Total votes 82: ↑73 and ↓9 +64
Comments 62

Упорядочивание аудиотеки. Практические советы

Reading time 9 min
Views 212K

Введение


Вообще, я во многих вопросах перфекционист. Если есть — нужно, чтобы было безупречно (иногда это сказывается отрицательно, но сейчас не об этом). Свою аудиоколлекцию я тоже привык держать в чистоте. Но со временем, при пополнении стало накапливаться много мелких неприятностей. Вот некоторые из них:
  • Разные шаблоны для имен файлов: 4 — Звезда | 04 — Звезда | 04. Звезда
  • Разные имена исполнителей в тегах: Чиж & Co | Чиж и Ко. | Mylene Farmer | Mylène Farmer
  • Не указаны исполнители альбома (что приводит к полному бардаку в альбомах-компиляциях)
  • Не совсем корректная информация об альбомах, состоящих из нескольких дисков
  • Путаница в годах изданий и переизданий (ремастеринг, и т.д.)
Ну и прочие мелочи.
Часто у пользователей коллекции составляют несколько тысяч, а иногда — несколько десятков тысяч записей. Так что, перелопачивать все вручную — долго и неэффективно.

Данное руководство предназначено для того, чтобы с минимальными затратами привести аудиоколлекцию к максимально упорядоченному виду. В отличие от общедоступной информации, которую можно найти в Интернет, здесь также присутствует мой личный опыт (как положительный, так и отрицательный). В итоге получаем полностью пересортированную коллекцию. Все нижесказанное можно применять для любых коллекций, однако оптимальный вариант — если коллекция по большей части состоит из полных официальных альбомов, с минимальным содержанием разрозненных треков.

Итак, начнем...
Total votes 80: ↑76 and ↓4 +72
Comments 78

Достоевский, Петербург, Яндекс.Карты

Reading time 1 min
Views 2.4K
В день рождения Федора Михайловича Достоевского хочется напомнить вам, что ближайшие выходные в Санкт-Петербурге можно провести не только в поисках дома из фильма «Питер FM», но и найти дом старухи-процентщицы, проверив заодно, точно ли 730 шагов отделяют его от места, где жил Родион Раскольников. В общем, предлагаем вам прогуляться по местам, связанным с главным ФМ русской литературы.



Пишите в комментариях, каких объектов не хватает в нашей «экскурсии». Мы всё проверим и добавим на карту.

Читатели и прогульщики
.
Total votes 31: ↑28 and ↓3 +25
Comments 5

Релаксирующие текстовые редакторы для Linux

Reading time 4 min
Views 8.7K
У самого ubuntu нету, поэтому попросили разместить. Думаю статья окажется полезной.

image
Еще в прошлом году на Хабре вышла статья о «релаксирующем» текстовом редакторе Ommwriter. Специфическая визуальная оболочка не могла не привлечь графоманов, нуждающихся в полном погружении в процесс написания текста. К сожалению, на момент выхода статьи хабраюзера langolf (а, впрочем, и до сих пор) не вышло ни одной версии для Linux.

Однако, это не означает, что аналогов Ommwriter не существует. Я был порядочно удивлен, случайно узнав о существовании многих программ, подходящих для такого рода графоманства. Поэтому мною был подготовлен небольшой обзор «focus on writing» текстовых редакторов для Linux.
Читать дальше →
Total votes 102: ↑91 and ↓11 +80
Comments 62
1

Information

Rating
Does not participate
Registered
Activity