Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Самый лучший топик

Habr

«Статистический анализ топиков попавших на первую страницу» или «Самый лучший топик выстрелит во вторник, после обеда, в разделе «Я умный», соберет больше всех голосов и комментариев».


Вытянуто с главной страницы. Линии некоторых кривых для большей наглядности нормализованы. Сырой материал можно изучить здесь.
Читать дальше →
Всего голосов 155: ↑124 и ↓31 +93
Просмотры 340
Комментарии 27

Иерархия классов C++ на коленке

Чулан

Предисловие


Как при помощи awk, tiddlywiki и такой-то матери разобраться в структуре классов, которые вы видите первый раз, а сделать что-то надо ещё вчера.
Внимание: использование данного метода очень ограниченное, к тому же в нормальных средах разработки этот приём и не нужен. Но у меня был проект на C++ в BCB6, так что пришлось делать самому.

Что имеем


Набор классов, порядка 150 штук. В процессе разработки системы имена у части из них поменялись, а названия файлов остались прежние. И сразу выяснить, кто-кому родственник не представляется возможным. Есть Class Explorer — но он не информативен, а самое главное, невозможно выяснить какие именно классы наследуются от данного.

Что требуется для выполнения анализа

(предполагается, что мы проводим изыскания в Windows)

  • AWK/GAWK
  • браузер, умеющий работать с TW (Firefox, Opera, IE)

Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Просмотры 1K
Комментарии 0

Происхождение названий некоторых команд Unix

*nix *
Знание истории происхождения вещей и их названий, будь то простой карандаш, автомобиль или команда операционной системы, делает их повседневное использование намного интереснее. В этой заметке я постарался разобраться в причинах странного, казалось бы, наименования некоторых программ, используемых в операционной системе Unix и её родственниках: *BSD, Solaris, HP-UX, Linux и т.д.

Перепечатка моей статьи, написанной, в свою очередь, по мотивам страницы What does {some strange unix command name} stand for?

Читать дальше →
Всего голосов 112: ↑107 и ↓5 +102
Просмотры 6.7K
Комментарии 37

Шейпирование трафика в Linux. Часть 2

Системное администрирование *
Вторая часть статьи об управлении трафиком в Linux. В статье приведены примеры приоретизации трафика (QoS) и рассказано об использовании hash таблиц при фильтрации трафика (fast hash tables), использование которых позволяет существенно увеличить производительность.
Читать дальше →
Всего голосов 38: ↑29 и ↓9 +20
Просмотры 11K
Комментарии 14

DIY SSL-certificate monitoring script для ленивых

Настройка Linux *
Продолжаю эпопею самодельных велосипедов.

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

Так как админчики зачастую ленивые и, бывает, не документируют свою работу, а так же любят что-то сделать и забыть(про существование сервера), я решил что мой способ лучше(и универсальней) и приступил к написанию скрипта.

Итак, что понадобится:
  • OpenSSL
  • Nmap
  • Bash
  • bc
  • awk

Скрипт сканирует заданные подсети на наличие открытого 443-го порта и, с помощью openssl, проверяет сертификат. Потом выводит сертификаты, которые истекают в ближайший месяц. Так же проверяет в днсе обратные зоны и, если не находит (запись в обратной зоне), радостно об этом сообщает. Результаты складываются в отдельные файлы(«хорошие сертификаты», истекающие/просроченные, ошибка соединения, айпи-адреса без обратной зоны) и в один общий файл.

Скрипт под катом.
Читать дальше →
Всего голосов 39: ↑31 и ↓8 +23
Просмотры 3.3K
Комментарии 18

Рабочий метод разрыва конкретного активного соединения из командной строки linux (drop/kill/cut/close ESTABLISHED connection)

Настройка Linux *
Иногда бывает необходимо принудительно разорвать активное соединение. Самый распространенный способ:

netstat -na
kill PID


Проблема в том, что один воркер может одновременно обслуживать несколько соединений, поэтому правильнее будет убить соединение а не воркер. Для этого на многих форумах рекомендуют использовать tcpkilll, cutter или awk+hping3. Однако, хоть эти утилиты и находятся в официальных репозиториях, мне не удалось заставить их разрывать соединения.

После продолжительных поисков был обнаружен perl скрипт killcx, разрывающий соединение по удаленному хосту и порту.

killcx 94.133.119.242:4403
Читать дальше →
Всего голосов 39: ↑35 и ↓4 +31
Просмотры 35K
Комментарии 26

Файл⇨строка или активность работы над файлом

Системы управления версиями *
Большинство разработчиков знакома с таким продуктом, как визуализатор code_swarm (на google code). Как минимум каждый третий наверняка выгружал для него лог и создавал видео, которое визуализирует процесс разработки приложения, в котором видно активность программистов. Ну и конечно каждый второй видел видео подобного рода. Практически все эти видео делались на срезе отношения программист⇨файл.
В этой статье будет описан процесс формирования лога в срезе отношения файл⇨строка, то есть с генерированное видео будет демонстрировать активность работы над файлом.

Кому это интересно под прошу под кат.
В статье будет использованы:
  • Git — VCS
  • code_swarm — визуализатор истории репозиториев.
  • gource — визуализатор истории репозиториев.
  • Эмулятор среды linux в Windows или UNIX OS (с git уже идет для win эмулятор msysgit)
  • MEncoder — свободный кодировщик видео
  • ffmpeg — программа для конвертации видео с использованием различных кодеков.
Далее...
Всего голосов 44: ↑42 и ↓2 +40
Просмотры 1.9K
Комментарии 12

Конфигурация Mercurial+Nginx для управления большим количеством репозиториев

Системное администрирование *
Под катом описан пример конфигурации связки mercurial+nginx и приведен скрипт автоматизации всего вышеперечисленного.
Читать дальше →
Всего голосов 33: ↑29 и ↓4 +25
Просмотры 5.5K
Комментарии 11

Клиент для сервиса Forvo.com подручными средствами

Настройка Linux **nix *
Думаю, ни для кого не секрет, что иностранные слова легче запомнить когда знаешь как они произносятся. Благо, для этого есть отличный online-сервис Forvo — база произношений слов. Этот сервис предлагает веб-интерфейс (а также api с некоторыми ограничениями, о котором чуть позже), для доступа к базе и прослушивания слов. Но каждый раз открывать браузер для прослушивания — не очень удобно. Поэтому я начал искать простенький forvo-клиент. Требования у меня были следующими: простота использования, никаких GUI, легкая переносимость, отсутствие требования хранения каких-либо настроек. Но вот незадача — все попытки найти подобный, простенький клиент под Linux не увенчались успехом, что меня сильно удивило. Ведь реализация такого клиента, является, по сути не слишком уж сложной задачей. Таким образом, я понял что придется написать утилиту самому.
Читать дальше →
Всего голосов 11: ↑8 и ↓3 +5
Просмотры 4.3K
Комментарии 12

Си-подобный текстовый процессор AWK

Настройка Linux *
Из песочницы
В данной статье будут представлены основные возможности языка AWK, сопровождаемые примерами. Также будет затронут вопрос о области его использования. Данная публикация носит ознакомительный характер. Ну что ж, поехали…

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


Самая первая версия AWK была создана корпорацией Bell Laboratories в 1977г. Название AWK означает инициалы его создателей Alfred Aho, Peter Weinberger и Brian Kernighan. Хотелось бы отметить, что в данном языке прослеживается влияние С, SNOBOL4 и Bourne Shell. Предназначен для обработки символьных и числовых полей в записях структурированных текстов.
Читать дальше →
Всего голосов 67: ↑47 и ↓20 +27
Просмотры 2.8K
Комментарии 12

Языку программирования Perl сегодня исполнилось 25 лет

Perl *Разработка веб-сайтов *Open source *
18 декабря 1987 года лингвист Ларри Уолл опубликовал в ньюс-группе comp.sources.misc первую версию языка программирования Perl — Perl 1.0.0.

Название языка представляет собой аббревиатуру, которая расшифровывается как Practical Extraction and Report Language — «практический язык для извлечения данных и составления отчётов». Perl создавался как более удобная альтернатива для sh, awk и sed, но к настоящему времени вырос в нечто большее, чем просто утилита для построчного разбора текстового потока. Сейчас Perl широко используется в системном администрировании, веб-разработке, сетевом программировании, играх и многих других областях.

Это лёгкий в освоении и использовании язык, который отличается высокой эффективностью, а главными достоинствами считаются поддержка различных парадигм программирования, контроль за памятью и большая коллекция сторонних модулей. И конечно — возможность решить любую задачу несколькими способами.
Читать дальше →
Всего голосов 78: ↑73 и ↓5 +68
Просмотры 13K
Комментарии 118

Парсинг CSV-файла средствами bash и awk

Оболочки *
Из песочницы
Tutorial
Доброго времени суток, Хаброчитатель!

Возникла у меня необходимость перевести интерфейс одной системы. Перевод для каждой формы лежит в отдельном XML-файле, а файлы группами разбросаны по папкам, что очень неудобно. Решено было создать единый словарь, чтобы в Excel’е работать с переводом всех форм. Данная задача в свою очередь разбивается на 2 подзадачи: извлечь информацию из всех XML-файлов в один CSV-файл, после перевода из CSV-файла создать XML-файлы с прежней структурой. В качестве инструментов были выбраны bash и awk. Первую подзадачу описывать смысла нет, так как она достаточно тривиальная. А вот как распарсить CSV-файл?
Узнать
Всего голосов 6: ↑4 и ↓2 +2
Просмотры 6K
Комментарии 2

«Инструментарий системного администратора» или «Как мы работаем»

Блог компании Southbridge
Как работают системные администраторы, что используют в своем повседневном труде, какие утилиты облегчают нам жизнь?
Мы постараемся вкратце ответить на эти вопросы и описать, как устроена наша работа.

Итак, что в принципе, должен делать (уметь делать) системный администратор:
Устанавливать/обновлять/удалять ПО
Настройку ПО
Планировать работы
Документировать
Мониторить состояние ИТ-систем
Диагностировать и поддерживать ИТ-системы
Резервное копирование/архивацию ПО и данных

Для всего этого есть немало различного ПО, постараемся описать все самое необходимое.
Читать дальше →
Всего голосов 58: ↑35 и ↓23 +12
Просмотры 70K
Комментарии 37

Создание CloudFoundry/IBM Bluemix buildpack или веб сервис на Awk (gawk)

Блог компании IBM Bluemix Разработка веб-сайтов *
Tutorial
gawk — глазеть разинув рот, таращить глаза



Дальше никаких шуток, я действительно опишу как запустить Awk (Gawk) веб сервис на IBM Bluemix.

CloudFoundry и созданная на его основе платформа IBM Bluemix поддерживают много разных языков программирования и веб фреймворков. Все это благодаря поддержке билдпаков (мой перевод слова buildpack). Билдпак можно рассматривать как плагин, который отвечает за установку и настройку среды выполнения приложения. Создают билдпак обычно в двух случаях.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Просмотры 5.7K
Комментарии 0

Утилиты командной строки могут быть в 235-раз быстрее вашего Hadoop кластера

Высокая производительность *Алгоритмы *Big Data *Hadoop *
Перевод
Примечания tsafin:

Перед публикацией своего цикла статей по MapReduce в Caché, мне показалось важным озвучить данную прошлогоднюю точку зрения из статьи Адама Дрейка «Command-line tools can be 235x faster than your Hadoop cluster». К сожалению оригинальная статья Тома Хайдена, на которую он ссылается стала уже недоступна на сайте Тома, но её, по-прежнему, можно найти в архивах. Для полноты картины предлагаю ознакомиться и с ней тоже.

Введение


Посещая в очередной раз свои любимые сайты, я нашел крутую статью Тома Хайдена об использовании Amazon Elastic Map Reduce (EMR) и mrjob для вычисления статистики отношения выигрыш/проигрыш в наборе данных со статистикой по шахматным матчам, которую он скачал с сайта millionbase archive, и c которой он начал играться используя EMR. Так как объем данных был всего 1.75GB, описывающий 2 миллиона шахматных партий, то я скептически отнесся к использованию Hadoop для данной задачи, хотя были и понятны его намерения просто поиграться и изучить плотнее, на реальном примере, утилиту mrjob и инфраструктуру EMR.
Читать дальше →
Всего голосов 70: ↑66 и ↓4 +62
Просмотры 44K
Комментарии 48

Занимательная математика командной строки

*nix *
Tutorial

Если вы пользователь Linux, Free/Open BSD или другой свободной ОС, есть вероятность, что интерфейс командной строки вам не чужд. В таком случае можно использовать командную оболочку для простых арифметических действий. Для этого не нужно устанавливать дополнительных программ, все уже есть в базовом наборе операционной системы. Они позволяют качественно заменить привычный калькулятор на столике счетовода.


к awk-гадалке ходи
Всего голосов 51: ↑49 и ↓2 +47
Просмотры 48K
Комментарии 40

Не доверяйте SUDO, она может вас подвести

Информационная безопасность *

Всем доброго времени суток, в этой статье постараюсь описать некоторые способы обхода ограничений на исполнение команд в ОС Linux, советы по использованию которых можно часто встретить на различных форумах. Демонстрация будет проведена на примере задания Restricted shells с сайта Root-Me. Итак, начнём.
Читать дальше →
Всего голосов 99: ↑94 и ↓5 +89
Просмотры 43K
Комментарии 8

Bash-скрипты, часть 8: язык обработки данных awk

Блог компании RUVDS.com Настройка Linux *Системное администрирование *
Перевод
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит



В прошлый раз мы говорили о потоковом редакторе sed и рассмотрели немало примеров обработки текста с его помощью. Sed способен решать многие задачи, но есть у него и ограничения. Иногда нужен более совершенный инструмент для обработки данных, нечто вроде языка программирования. Собственно говоря, такой инструмент — awk.
Читать дальше →
Всего голосов 30: ↑27 и ↓3 +24
Просмотры 207K
Комментарии 18

Рождение Software Tools: как и зачем появились GREP и AWK

Программирование *Системное программирование **nix *
image
Этим летом мне на глаза попалось эссе Брайана Кернигана «Иногда старые способы — лучшие», опубликованное в честь 25-летнего юбилея журнала IEEE Software в 2008 году. В нем профессор Керниган рассказывал о том, какие инструменты он использует в работе.

В тот момент он был занят двумя сложными проектами — один из них подразумевал экспертный анализ проекта на 100 000 строк кода, написанный на C и Assembler в 1990 году, под Windows XP; другой — перенос кода с экзотического языка L1 на не менее экзотический язык L2 при помощи программы, написанной на неназванном скриптовом языке под Linux. Удивительно, но для столь разных задач профессор Керниган вместо IDE использовал один и тот же набор инструментов — grep, diff, sort, awk, wc и прочих «старых знакомых» из эпохи раннего Unix. Более того, многие инструменты и IDE конца прошлого десятилетия он подверг критике за неудобность и несовершенство.

Действительно, к некоторым вещам в своей жизни мы привыкли настолько сильно, что уже воспринимаем их за данность и критиковать их нам даже не приходит в голову — нам кажется, будто они существовали всегда. Подобный образ мышления помогает адаптироваться к потоку новой информации и неизбежен в современном мире, но давайте не будем сегодня отказывать себе в удовольствии «спуститься на уровень ниже», чтобы увидеть, как появилась сама идея программных инструментов (они же далее по тексту — «software tools», утилиты, команды Unix).
Читать дальше →
Всего голосов 20: ↑18 и ↓2 +16
Просмотры 8.3K
Комментарии 2

Парсим 25TB с помощью AWK и R

Блог компании VK Высокая производительность *Облачные вычисления *Big Data *R *
Перевод

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

«Просто покажи решение!» Если вы хотите всего лишь увидеть, к чему я пришёл, то переходите к главе «Становлюсь изобретательнее», но я считаю, что интереснее и полезнее почитать про неудачи.


Недавно мне поручили настроить процесс обработки большого объёма исходных последовательностей ДНК (технически это SNP-чип). Нужно было быстро получать данные о заданном генетическом местоположении (которое называется SNP) для последующего моделирования и прочих задач. С помощью R и AWK мне удалось очистить и организовать данные естественным образом, сильно ускорив обработку запросов. Далось мне это нелегко и потребовало многочисленных итераций. Эта статья поможет вам избежать некоторых моих ошибок и продемонстрирует, что же у меня в конце концов получилось.
Всего голосов 74: ↑72 и ↓2 +70
Просмотры 12K
Комментарии 11
1