Pull to refresh

Основы Linux от основателя Gentoo. Часть 2 (2/5): Назначения папок, поиск файлов

Reading time 9 min
Views 66K
Configuring Linux *
Translation
В данном отрывке рассказано о стандарте иерархии файловой системы (FHS), почему директории так называются и для чего они нужны. Упомянута переменная окружения PATH и разобраны основные команды для поиска файлов в системе, такие как whereis, find и locate (slocate).



Навигация по основам Linux от основателя Gentoo:

Часть I
  1. BASH: основы навигации (вступление)
  2. Управление файлами и директориями
  3. Ссылки, а также удаление файлов и директорий
  4. Glob-подстановки (итоги и ссылки)

Часть II
  1. Регулярные выражения (вступление)
  2. Назначения папок, поиск файлов
  3. Управление процессами
  4. Обработка текста и перенаправления
  5. Модули ядра (итоги и ссылки)


Читать дальше →
Total votes 61: ↑53 and ↓8 +45
Comments 39

Уязвимость в стандартной функции glob() как угроза для FTP-серверов

Reading time 2 min
Views 2.8K
Information Security *
Сайт SecurityReason сообщает об обнаружении опасной ошибки в реализации библиотечной функции glob() из стандартной библиотеки языка C (libc) на множестве платформ.

Эта функция предназначена для получения списка файлов, чьи имена удовлетворяют заданному шаблону. Ошибка заключается в том, что ограничение на выдачу функции, задаваемое переменной GLOB_LIMIT, не действует в случае задания некорректных путей в шаблоне. Такими некорректными значениями могут быть, например, «*/../*/../*foo» или «{..,..,..}/*/{..,..,..}/*bar». При этом вызов функции glob() может исчерпать всю доступную память процесса.

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

Уязвимости подвержены, по последним данным, как минимум следующие ОС: OpenBSD 4.7, NetBSD 5.0.2, FreeBSD 7.3/8.1, Oracle/Sun Solaris 10, а также все версии Linux с GLIBC. Уязвимость пока что устранена только в NetBSD; компании и сообщества, занимающиеся разработкой вышеперечисленных (за исключением NetBSD) операционных систем, пока не дают никакой информации; именно поэтому уязвимость классифицируется как «0-day». Сообщается также, что vsftpd не подвержен уязвимости.

Желающим попробовать уязвимость в действии могу предложить набрать в bash консоли команду наподобие
ls ../../*/../*/*/../../*/*/*/*

Можно эксплуатировать, например, из PHP:
php -r 'print glob("../../*/../*/*/../../*/*/*/*");'

или Python
python -c 'import glob; glob.glob("../../*/../*/*/../../*/*/*/*")'
и из любого другого языка, обращающегося к этой функции.

Оригинальный отчет об уязвимости тут: securityreason.com/securityalert/7822
Total votes 87: ↑81 and ↓6 +75
Comments 50

В Сети заработала новая социальная сеть Path

Reading time 2 min
Views 13K
Social networks and communities


Понятное дело, первый вопрос, который возникает после прочтения заголовка: «Ну и что? Этих социальных сетей уже больше, чем грибов в среднестатистическом лесу после среднестатистического сентябрьского дождика». Ответ прост — социальная сеть Path не похожа на другие, отличаясь всем, чем только можно. Дело в том, что в ней вообще нельзя обмениваться текстовыми сообщениями, выкладывать музыку или видео — средством общения служат картинки, и только картинки.

Читать дальше →
Total votes 23: ↑14 and ↓9 +5
Comments 23

Изобретаем язык программирования для тренировки мозгов. Или эзотерический язык программирования за 5 минут

Reading time 2 min
Views 5.8K
Abnormal programming *
Изучая вики по эзотерическим языкам я наткнулся на интересный язык программирования Piet. Отличительной особенностью которого является графическое представление программы. Например, эта программа выводит «Hello World!»
image
И показалось мне, что данная программа похожа на QR-Code.
image
Только Piet использует цветовую кодировку. А QR-Code использует комбинацию расположения точек.
Читать дальше →
Total votes 84: ↑74 and ↓10 +64
Comments 23

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

Reading time 4 min
Views 13K
Development for Android *

Возникла задача сделать анимацию — двигать картинку вдоль заданной кривой. Погуглил и с удивлением нашел, что несколько вопросов с подобной задачей на stackoverflow.com остаются без ответа уже не один год. Пришлось засучить рукава, покопаться в документации и найти подходящее решение.
за подробностями...
Total votes 75: ↑71 and ↓4 +67
Comments 25

Сервис Path был уличен в загрузке всей адресной книги iPhone на свои серверы

Reading time 1 min
Views 1.2K
Information Security *
Причиной очередного инцидента с потенциальным нарушением безопасности и приватности пользователей iPhone стал социальный сервис Path 2.0, отметившийся в ежегодной премии Crunchies Awards известного техноблога за лучший дизайн в 2011 году.

Сервис Path 2.0 позволяет путем использования мобильных приложений для iOS и Android делать записи и делиться контентом одновременно в нескольких социальных сетях. Сингапурский Ruby/iOS-разработчик Arun Tampi, исследуя поведение приложения Path, обнаружил, что вся адресная книга его смартфона (имена, номера телефонов, адреса электронной почты) отсылается на сервер приложения, причем разрешения на доступ ко всем записям не было дано (сам процесс обнаружения такого факта детально описан автором у него в блоге).
Узнать подробности
Total votes 53: ↑46 and ↓7 +39
Comments 39

Новый ресурс для помощи в настройках социальных сетей, BlissControl.com

Reading time 1 min
Views 832
Website development *
Хочу поделится проeктом который построил в последие выходные.

Идея проста, помочь юзерам найти одноименные (или похожие) настройки в разных социальных сетях.

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

Русских сетей пока нет, но планируем добавить вместе с добавкой разных языков.

BlissControl.com


* хочу добавить, никакой авторизации и API тут нет. Только направление с помощью линка в правильное место.
Total votes 43: ↑30 and ↓13 +17
Comments 5

Четыре профессиональные деформации программистов на языке Perl, демонстрируемые на живом примере

Reading time 8 min
Views 8.1K
Perl *Programming *
Эдсгер Вибе Дейкстра оказался известен, в частности, как автор нескольких ёмких и выразительных высказываний, очерчивающих бездну профессиональной деформации программистов, предпочитающих тот или иной неуютный язык программирования. Небезызвестны, в частности, следующие оценки Дейкстры (я процитирую их по Викицитатнику):

  • «Программирование на КОБОЛе калечит мозг, поэтому обучение ему должно трактоваться как преступление». («The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense».)
     
  • «Студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации». («It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration».)

Дейкстра умер 6 августа 2002 года. Сегодня, спустя десять с небольшим лет после его смерти, мы вправе оглянуться вокруг и спросить себя: а насколько изменились обстоятельства? Иными словами: а сейчас (в наши дни) среди широко употребляемых языков программирования есть ли такие языки, использование которых влечёт для склонных к ним программистов почти неминуемый риск заметной профессиональной деформации?

Как мне кажется, они есть; и это прежде всего те языки, которые подпадают под определение write-only language, то есть поощряют написание такого исходного кода, прочтение и понимание которого слишком трудно, неоправданно трудно (как правило, даже труднее, чем его написание автором кода), хотя в нормальных языках должно быть наоборот.

Наиболее употребительным из таких языков является Perl.

Будьте покойны: я не намерен просто ткнуть пальцем в Perl и объявить, что он плох. Это вышло бы слишком малоубедительно без доказательств и подробностей. И именно поэтому прямо сейчас на примере, взятом из жизни, я покажу вам четыре механизма, при помощи которых Perl воздействует на сознание программиста и поощряет сочинение им такого кода, который оказывается неприглядным write-only.

Читать дальше →
Total votes 105: ↑45 and ↓60 -15
Comments 90

Разговор с создателями топовых iOS-приложений: «Маркетинг – ничто, дизайн – всё». Path

Reading time 5 min
Views 24K
Development of mobile applications *
В процессе разработки своего первого мобильного приложения мне очень не хватало опыта более продвинутых товарищей по рынку. Я решил заполнить эту информационную брешь. Перед вами первый из серии материалов, написанных на основе моего общения с создателями самых разных приложений. Критерии отбора – известность и наличие приложения в моем iPhone.

Самыми оперативными откликнувшимися на мои запросы были создатели Path, им и слово. В следующих постах расскажем про приложения Twitter, 4square, Pedometer, Bump, Shazam и другие.
Читать дальше →
Total votes 46: ↑40 and ↓6 +34
Comments 16

Новые Nokia Imaging SDK и графические приложения: подробности

Reading time 4 min
Views 7K
Microsoft Lumia corporate blog Development for Windows Phone *
Привет, хабр!
Вместе с презентацией камерофона Nokia Lumia 1020 на прошлой неделе в Нью-Йорке мы представили набор средств разработки Nokia Imaging SDK. Плюс, много было сказано о ряде новых приложений, созданных при помощи данного SDK и расширяющих возможности работы смартфона с изображениями. В список разработчиков этих программ вошли в том числе Hipstamatic, Path, Vyclone, SNAPCAM, Panagraph, Yelp, CNN и Foursquare. Также было объявлено о доступности в скором времени известного «социального журнала» Flipboard и приложения видеосоцсети Vine для Windows Phone.
Под катом мы расскажем подробнее и об этих приложениях, и, конечно, о новом Nokia Imaging SDK

Читать дальше →
Total votes 36: ↑24 and ↓12 +12
Comments 2

Настройка JavaCV в Windows 7

Reading time 2 min
Views 19K
Java *Eclipse *Image processing *
Инструкция применима также для 2.4+ версии OpenCV и JavaCV

Я искал библиотеки для обработки изображений в Java. Мне порекомендовали JavaCV.
JavaCV предоставляет оболочки для OpenCV, так что вы можете напрямую использовать OpenCV функции в Java.
Определим пару шагов, которые следует выполнить чтобы установить JavaCV в Windows 7.
JavaCV
Читать дальше →
Total votes 12: ↑8 and ↓4 +4
Comments 10

Анимация SVG-элемента path

Reading time 5 min
Views 120K
Website development *Data visualization *
Tutorial
Думаю многие видели обзоры игровых консолей нового поколения от Polygon (Vox Media). Это те, где консоли отрисовывались в стиле blueprint'ов:

PlayStation 4

Обзоры выглядели круто, довольно необычно и ново. О том как реализована основная фишка обзоров — SVG анимация, как сделать нечто подобное самому, и какие ещё «секретные» возможности скрывает старый добрый SVG в плане анимации элемента path — можно узнать под катом.
Читать дальше →
Total votes 64: ↑62 and ↓2 +60
Comments 15

Использование npm для глобальной установки приложений, наделённых GUI и основанных на nw.js

Reading time 4 min
Views 18K
JavaScript *Node.JS *
Tutorial
Команда «npm install» в менеджере пакетов npm чаще всего употребляется для локальной установки зависимостей некоторого модуля, совершаемой в его подкаталоге «/node_modules».

Однако возможен и запуск этой команды с ключом «-g» (от слóва «global»). Он обеспечивает установку указанного ей пакета в некоторое глобальное (то есть общее для всей системы) место. Кроме того, в PATH (для последующего запуска из любого желаемого каталога) оказывается прописанною та команда, которая была указана в свойстве «"bin"» в файле package.json у установленного пакета.

Таким общим местом, согласно документации, под Windows служит подкаталог «/node_modules» в каталоге установки Node. В остальных же системах таким общим местом чаще всего оказывается каталог «/usr/local/lib/node_modules» (тогда как Node там устанавливается в каталог «/usr/local/bin»).

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

  • Команда «npm install jshint -g» обеспечивает появление в PATH команды «jshint», служащей для запуска JSHint.
     
  • Команда «npm install browserify -g» обеспечивает появление в PATH команды «browserify», служащей для запуска Browserify.
     
  • Команда «npm install less -g» обеспечивает появление в PATH команды «lessc», служащей для запуска Less.js.

Однако на CLI (на командной строке) свет клином не сошёлся — и читателям Хабрахабра должно уж вполне быть известно, что приложение на языке JavaScript, употребляющее API Node.js, можно снабдить и GUI (графическим интерфейсом пользователя), сочинённым на языках HTML и CSS. Для этого придётся и запускать такое приложение вместо Node на том движке, который до прошлого года назывался node-webkit, а в нынешнем (2015) году оказался 14 января переименованным в nw.js.

Ваши GUI-приложения также могут глобально быть установлены в системе из npm-пакета при помощи npm. Давайте поговорим об этом.

Читать дальше →
Total votes 26: ↑24 and ↓2 +22
Comments 4

Использование SVG путей в canvas для движения объектов

Reading time 3 min
Views 6.4K
JavaScript *Canvas *
Sandbox
Если для анимации объекта в canvas (и не только), нужно перемещать его по некоторому желаемому пути, возможно даже по нескольким, которые могут выбираться случайным образом или последовательно, то это можно сделать с помощью svg путей. Давайте, для начала, запустим по траектории простой но зеленый квадрат.

image


Для этого сделаем или позаимствуем svg, с одним или несколькими путями.

Создадим элемент с помощью функции document.createElementNS. MDN сообщает нам, что метод имеет базовую поддержку во всех современных браузерах. Затем добавим созданному элементу путь.
Total votes 16: ↑15 and ↓1 +14
Comments 16

T-SQL. Формирование XML со списком значений

Reading time 8 min
Views 13K
SQL *XML *Microsoft SQL Server *


Небольшая заметка по формированию XML


FOR XML PATH


Для формирования структуры XML-документа со списком значений можно воспользоваться режимом PATH для FOR XML в T-SQL.

<root>
    <level1>
        <level2></level2>
        <values>
            <value></value>
            <value></value> 
            <value></value>
            <value></value>
            <value></value>
        </values>
     </level1>
     <level1>
         <level2></level2>
         <values>
             <value></value>
             <value></value>
             <value></value>
             <value></value>
             <value></value>
         </values>
     </level1>
</root>
Читать дальше →
Total votes 5: ↑5 and ↓0 +5
Comments 9

Systemd для продолжающих. Part 2 — Триггеры на различные события

Reading time 5 min
Views 12K
Configuring Linux *System administration **nix *
Tutorial

Продолжаем цикл популярного балета, под названием «Systemd для продолжающих». В этой части, являющейся логическим продолжением предыдущей, поговорим о различных триггерах не связанных со временем. Эта часть будет не такой объёмной, но, не менее интересной. Вперёд!

Попробовать стащить сыр!
Total votes 48: ↑48 and ↓0 +48
Comments 30

Самая лучшая практика: работа с path в Python

Reading time 3 min
Views 17K
OTUS corporate blog Python *Programming *
Translation

В последней статье мы использовали рекурсивную функцию размером менее 10 строк для решения проблемы сканирования папок и ранжирования файлов по дате изменения и размеру.

Теперь я подниму планку и покажу, как можно было сделать лучше.

Читать далее
Total votes 18: ↑13 and ↓5 +8
Comments 4