Pull to refresh
17
0
Daniel Newman @danielnewman

User

Send message

Функциональное программирование в шелле на примере xargs

Reading time6 min
Views24K
Abstract: рассказ о том, как быстро и красиво делать обработку списков в шелле, немного мануала по xargs и много воды про философию то ли программирования, то ли администрирования.

Немного SEO-оптимизации: карринг, лямбда-функция, композиция функций, map, фильтрация списка, работа с множествами в шелле.

Пример



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

Это не реальная «задача», это учебный пример, решая который (в решении будет однострочник) я расскажу про очень необычный и мощный инструмент системного администрирования — линейное функциональное программирование. Линейное оно, потому что использование пайпа "|" это линейное программирование, а использование xargs позволяет превратить сложную программу с вложенными циклами в однострочник функционального вида. Целью статьи будет не показать «как найти размер библиотек» и не пересказать аргументы xargs, а объяснить дух решения, пояснить стоящую за ним философию.

Лирика


Существует несколько стилей программирования. Один из них выглядит так: для каждого элемента списка сделать цикл, в котором для каждого элемента списка, если он не является пустой строкой, взять имя файла, и если размер файла не равен нулю, то прибавить к счётчику. Ах, да, сначала счётчик надо сделать нулём.

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

Даже словами видно, что второй вариант короче.
Читать дальше →

DEV {web} — конференция о Highload веб-разработке

Reading time1 min
Views6K
13 октября в Санкт-Петербурге пройдет конференция о веб-разработке сложных высоконагруженных проектов — DEV {web}.

image

Если вам интересно как правильно использовать в проектах с многомиллионной посещаемостью Java, PHP, MySQL, Postgres, что делать для балансировки нагрузки и как правильно кэшировать и работать с сессиями пользователей — регистрируйтесь и приходите!

Многоколоночность на CSS подробнее

Reading time2 min
Views81K
В продолжение своего топика Новое в CSS3: многоколоночность, flexbox, сеточная разметка предлагаю вам перевод статьи с более глубоким погружением в свойство многоколоночности с простыми и наглядными примерами.



Еще газетами и журналами на практике доказано, что разбитый на несколько колонок текст воспринимается намного проще. На веб-страницах до недавнего времени отобразить контент таким образом было проблемой, доходило до того, что верстальщик разделял текст на несколько div'ов. Но все может стать намного проще с CSS3 Multi Column Module.
Читать дальше →

Смс оповещение для студентов со странички вконтакте

Reading time7 min
Views34K
Здравствуйте уважаемые хабровчане!
Хотелось бы рассказать от том как я делал смс оповещение для своего факультета.
Я учусь на первом курсе ФСПО ИТМО. У нас на факультете есть так называемая диспетчерская служба которая занимается оповещением студентов об изменении в расписании, в интернете это осуществляется через страничку в контакте и твиттер.
Однажды произошёл небольшой скандал по поводу того что пол-группы не явилось на занятия из-за того, что не успели отследить изменение в расписании. В тот день у меня появилась идея создать смс оповещение с той самой Vk странички.
Да, я знаю, что для это есть специализированные сервисы, но это слишком просто…

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

Система online документации для JavaScript — ADWiki

Reading time1 min
Views11K


Ссылочки


Что ADWiki умеет:
  • Парсить файлы Вашего проекта описанные на jsdoc
  • Поднимать сайт с чистеньким дизайном на bootstrap
  • Организовывать на сайте небольшой блог, где Вы сможете дополнять документацию статьями о проекте


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

Обзор бюджетных аудиофильских наушников

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

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

Lehmann Audio Black Cube за 1000 р и 3 дня? Легко!

Reading time4 min
Views201K
Купил простенькие уши, чтоб по ночам можно было гаматься и иногда слушать музыку, взял недорогие, но большие KOSS UR20. Подключив к ресиверу был несколько ошарашен, звук очень и очень приятный, джаз и классика просто на ура идут. По НЧ конечно сильно проигрывают затычкам Koss the plug, и ощутимо KOSS Porta Pro, которые уже какой год таскаю как портативные. Был очень удивлен после когда решил послушать Koss Porta Pro после прослушивания композиций на KOSS UR20 — с порта про как будто в уши ваты натолкали. А я ведь считал их очень «приличными» в плане звука. Хотя может это время и атмосфера их могла так попортить? Все это к чему? Да так, решил собрать усилок для ушей, Усилок будет домашний, не портативный ни разу.
Решил для начала собрать клон Lehmann Audio Black Cube Linear doctorhead.ru/catalogue/?i=523
Вот результат:

Все вместе заняло около 3 вечеров и меньше 1000 р денег.
Кому интересно добро пожаловать под кат, будет очень много фоток с подробным описанием.
Читать дальше →

Тревожные звоночки: когда ваш диск лучше нести в ремонт

Reading time5 min
Views171K


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

ПЛИС это просто или АЛУ своими руками

Reading time4 min
Views23K
На Хабре достаточно много статей посвященных микроконтроллерам и языкам программирования на них, но не часто можно встретить статьи о программировании ПЛИС. Прошивки для ПЛИС можно писать на языках описания аппаратуры или рисовать схемы в САПРах фирм, производящих ПЛИС. Сегодня я хочу показать как можно запрограммировать АЛУ на ПЛИС фирмы Actel A3P250 (ProASIC 3 с числом эквивалентных вентилей 250 000) на языке описания аппаратуры SystemVerilog. Данная ПЛИС интересна тем, что позволяет прототипировать заказные микросхемы ASIC или БМК. Прошивки, которые синтезируются для данной ПЛИС можно превратить с серийную микросхему.

Кому интересно добро пожаловать под кат.
Читать дальше →

Bash: запускаем демон с дочерними процессами

Reading time5 min
Views44K
Доброго всем настроения!
Прочитал я вот эту статью, и решил немного сам взять в руки шашки, и попробовать сделать что-нибудь приятное для себя и для других.
Мой скрипт не делает никаких полезных вещей, но думаю для более менее начинающих писателей на bash он чему-нибудь научит, да и если будут комментарии, то и я научусь от тех людей которые укажут на мои ошибки.

Вводная

Скрипт будет запускаться в фоне демоном. Сразу думаю надо договориться что сам процесс который будет висеть в памяти постоянно я буду называть «Родителем». Родитель будет в определенном каталоге искать определенный файл, и если он существует, то файл будет удален и запущен процесс, который я буду называть «Потомок», целью которого будет просто спать какое-то время, и после чего завершиться. Но Родитель не должен будет запускать более одного Потомка в единицу времени. В принципе, если Вы прочитали вышеуказанную статью, то смысл я думаю понятен.
Читать дальше →

Обзор платформ для построения облаков

Reading time7 min
Views54K

Наверное всем уже надоели эти самые облака, но вкратце остановимся на том какие они бывают если кто-то не знает. В зависимости от модели развертывания они бывают:
  • private cloud
  • public cloud
  • hybrid cloud

Более подробно можно прочитать тут.
В зависимости от модели обслуживания:

Так вот мы с вами сегодня будем говорить о платформах для построения именно IaaS облаков. Поехали!
Читать дальше →

Отдаем файлы эффективно с помощью PHP

Reading time3 min
Views286K
Если Вам потребовалось отдавать файлы не напрямую веб сервером, а с помощью PHP (например для сбора статистики скачиваний), прошу под кат.
Три способа отправить пользователю файл и не повесить сервер

Сервис для создания планировок помещений и интерьеров

Reading time4 min
Views60K


Ровно год назад, мы с партнером, решили стать стартаперами. Точнее, поняли, что теперь мы партнеры-стартаперы. То как поменялась после этого наша жизнь — тема отдельной статьи. Сейчас хотелось бы уделить внимание нашему детищу — сервису планирования помещений и интерьеров.

Итак, пару лет назад, оба фаундера практически одновременно попали в жизненную ситуацию, которая бывает у всех — настало время ремонта.

Что из этого вышло

Методика аудита ИБ

Reading time2 min
Views9.3K
Как определить степень защищенности системы (объекта информатизации)?
Сегодня существует два наиболее распространенных типа аудита ИБ: первый – оценка соответствия требованиям стандартов (compliance) и второй – моделирование угроз и оценка рисков.
Оба типа имеют недостатки, результатом которых может стать некорректная оценка. В первом случае мы проверяем соответствие нашей системы требованиям, предъявляемым к широкому кругу систем. Эти требования не могут учитывать специфику конкретной системы, и поэтому существует вероятность наличия излишних требований или недостатка необходимых. Во втором случае результат зависит только от квалификации и осведомленности аудитора.

Под катом описана методика аудита ИБ, минимизирующая эти недостатки.
Читать дальше →

Пробиваем VMware vCenter

Reading time7 min
Views44K
Безопасность виртуальных системы – сейчас модный тренд, поэтому обойти стороной этот вопрос нельзя. Сегодня мы будем ломать самое сердце инфраструктуры VMware – сервер vCenter. При этом использовать будем 0-day уязвимости, чтобы жизнь медом не казалась. Ломать будем олдскульными методами, никак не связанными с виртуальными технологиями: тренд, конечно, модный, а вот баги все такие же банальные.

PS: Как водится у ответственных уайт-хатов, все описанные тут баги должны быть уже закрыты, были они 0-деями на момент взлома, то есть в 2011 году. Данный текст был опубликован в журнале Хакер № 7/12 (162), а также являлся основой для докладов на CONFidence 2012, PHD 2012 и Defcon 20.

Взломай меня полностью...

Yate: Яндекс.Почта перешла на новый шаблонизатор

Reading time5 min
Views63K
imageНекоторое время назад мы писали, что в Яндекс.Почте появился новый интерфейс, в котором используется шаблонизация данных в браузере. Немногие крупные сервисы отваживались на это, но мы и сейчас считаем такое решение наиболее удачным. Оно не только ускорило работу интерфейса, но и позволяет экономить трафик пользователя и эффективнее расходовать процессорное время серверов.

Тогда в качестве шаблонизатора мы использовали XSL, а данные передавали в формате XML. Переведя проект на новый интерфейс, мы начали искать другие способы ускорения работы интерфейса Яндекс.Почты.

Недавно мы перевели всю Почту на JS-шаблонизатор и JSON-данные.
И вот как это проходило

SCSS: пара полезных техник

Reading time3 min
Views32K
CSS – препроцессоры все популярнее среди веб – разработчиков. Почему?
Потому что они позволяют:
  • Сэкономить время
  • Применять принцип DRY в CSS
  • Сделать код более читаемым

На данный момент наиболее популярными препроцессорами являются SASS и LESS.

О том, почему SASS лучше LESS, можно почитать в этой статье. Лучше ли — вопрос спорный, однако, я перешел с LESS на SCSS хотя бы потому, что тут есть:
  • Циклы
  • Условные операторы
  • Списки

О сравнении синтаксиса SCSS и SASS, можно почитать в этой статье. Лично я выбрал SCSS по причине обратной совместимости с CSS и, как следствие, возможности быстро включать старые CSS файлы в проект посредством директивы import. Для этого им надо изменить расширение на .scss.

Об основах SCSS уже писали faiwer1 и AbleBoy2, здесь же я хочу описать пару техник, которые мне действительно помогли.
Читать дальше →

DNS сервер на локальном интерфейсе или простой путь к любви между программистами и администраторами

Reading time3 min
Views12K
У меня в подчиненни гетерогенная сеть из порядка 40 линукс серверов и несколько живых PHP программистов. Долгое время я просил вынести в единый конфигурационный унифицированный файл подключения к базам данных, серверам memcached, redis и sphinx. Но сегодня осенила гениальная идея. Связано это было с невзможностью быстро включить-выключить сервер из работы и отдать техподдержке на апгрейд убой. Конечно подождать пару часов когда серверов мало, попить чай и пообщаться с любимой можно, но это очень затрудняет работу с большим количеством машинок.

Идея заключается в следующем: делегировать на каждую из локальных машин зону описывающую все внутренние ресурсы, с временем жизни записей всего в несколько секунд. В случае каких-либо изменений, добавлении в кластер новых железок, выключении старых, смене адресации в существующих кластерах и так далее — достаточно отредактировать файл зоны на dns-master сервере и разлить его на слейвы то есть наши рабочие машины. Лично мне идея до сих пор кажется гениальной в своей простоте.
Читать дальше →

Полезные ссылки для PHP разработчика с MageConf 2012

Reading time2 min
Views28K
MageConf 201216.09.2012 в Киеве в три потока прошла конференция MageConf 2012. Два потока были посвящены системе Magento, третий – PHP. Посетив все 6 докладов на потоке PHP, хотел бы кратко изложить основную информацию, донесенную спикерами. В итоге пост получился набором полезных ссылок по разработке на PHP.

Докладчики особое внимание уделяли утилитам и софту, которыми они активно пользуются в Magento. Один из спикеров ранее был разработчиком портала i.ua.
Читать дальше →

Коллекция паттернов поведения для элементов отзывчивого веб-дизайна

Reading time1 min
Views29K
Думаю любому современному дизайнеру или верстальщику рано или поздно в голову приходила мысль «А почему бы на этом проекте не использовать принципы отзывчивого веб-дизайна?». Пожалуй, сложно найти человека, который не слышал о responsive design в наше время, когда сёрфить веб могут с телефона, микроволновки и тапочек. Приступая к работе над подобным проектом, неплохо было бы иметь под рукой примеры возможного поведения лейаута и его отдельных элементов.
Ну же, где паттерны то?!

Information

Rating
Does not participate
Location
Иерусалим, Израиль
Date of birth
Registered
Activity