Pull to refresh
  • by relevance
  • by date
  • by rating

GNU command line utils

IT-companies
Ни для кого не секрет, что Mac OS X базируется на BSD, и, как следствие, получила в наследство полный комплект BSD-шных command line утилит, таких как ls, find, xargs, и многие другие. Они хорошие и правильные, и использовать их вполне можно — однако если вы долго использовали Linux, наверняка вы привыкли к GNU версиям этих утилит, то есть, к примеру, --длинным-аргументам, нормальной опции --help — ну и вообще выработали определенные привычки. К числу таких людей принадлежу и я, и когда мне понадобилось набрать пару десятков команд в Terminal.app, через 10 минут я начал рвать волосы на груди нервничать и читать man, что не способствовало производительности труда.
Несколько позже я подумал — а почему, собственно, я не могу использоваться GNU версии утилит — только потому, что они не поставляются с системой? Нет, это — не UNIX way!
Читать дальше →
Total votes 28: ↑24 and ↓4 +20
Views 1.2K
Comments 28

Qwate.ru — улучшенная система поиска

Self Promo
Наконец мы закончили тестинг нашей поисковой системы: Квэйт.ру. Мы работали над ней несколько месяцев, стараясь сделать поиск как можно чище, лучше, быстрее и удобнее. Итак, начнем…



http://qwate.ru
http://qwate.com

Основные особенности:
1. Обработка запроса по технологии «Qwate MorfoWords».
2. Катализированный поиск с ручным отбором сайтов — это поиск по отдельным разделам интернета, например по Программам, Торрентам, Обзорам, Энциклопедиям, Словарям, Людям, Подаркам, Закладкам, Книгам, Программам, Скриптам и т.д. Удобно ведь когда в поиске нету различных бессмысленных блогов и прочей ненужной информации.
3. Удобный расширенный поиск без перезагрузки страницы. Функции поиска расширяются всего 1 кликом!
4. Переключение результатов без перезагрузки страницы с автоматической прокруткой. (Отключаемо в настройках)
5. Система «Подсказки слов» для быстрого набора запросов с результатами. (Отключаемо в настройках)
6. Собственная система исправления ошибок в запросах.
8. Перевод результатов и страниц на русский язык 1 кликом.
9. Просмотр Картинок и Видеороликов сразу на сайте.
10. Скриншоты к сайтам.
11. История запросов.
12. Faviconки к сайтам, как у Yandexa.

Приятный дизайн, а также многие другие приятные мелочи…

Представляем для вас ролик, показывающий возможности нашей поисковой системы:
http://ru.youtube.com/watch?v=Iwe41Ia0Kwc&fmt=18

В правом верхнем углу вы найдете кнопочку по добавлению поиска Qwate в ваш броузер, как сейчас стоит Yandex или Google. (Доступно для пользователей Firefox и Internet Explorer.)

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

Надеемся, вам понравится наш сервис! Принимаем отзывы и предложения по улучшению…
Total votes 154: ↑132.5 and ↓21.5 +111
Views 801
Comments 271

Связывание таблиц в Model::find()

CakePHP *
Translation
Перевод заметки на Bakery от Nate, одного из авторов CakePHP. Мне она показалась интересной и иллюстрирующей как же работает этот фреймворк, но сложной для понимания на английском языке.

В этой заметке описывается малоизвестный приём, позволяющий осуществлять связывание таблиц (joins) в запросах CakePHP напрямую, не используя методы bind и unbind.

Внимание: Приём сработает только если вы используете новый синтаксис Model::find(), который имеет всего два параметра. В противном случае читайте Cookbook или API.

Читать дальше →
Total votes 3: ↑3 and ↓0 +3
Views 2.1K
Comments 8

Еще один глупый скрипт для сортировки фотографий по EXIF под *nix

Lumber room
Как-то так получилось, что на домашней файло-помойке скопилось 20Гб фотографий в не отсортированном виде. Причем, если в последнее время я и дочка пользуемся EOS Utility и она аккуратно складывает фотографии по годам/месяцам/дням, то все фотографии ранее и с других фотоаппаратов просто сваливались в различные поддиректории. Соответственно захотелось причесать этот бардак, для чего был и сделано следующее:

1. Установлен пакет exifprobe (Он читает информацию об EXIF )
2. Написан скриптик «sort_by_exif_date.sh»:
#!/bin/bash
if [ -f "${1}" ]
then
CurrDate=`/usr/bin/exifprobe -L "${1}" | awk 'BEGIN {DateTime=""} /DateTime/{DateTime=$3} END{print DateTime}' | sed s/\'//g`
ToPath=`echo ./${CurrDate}/ | sed 's/:/\//g'`
if [ "$CurrDate" = "" ]
then
ToPath="./Unknown/"
fi

mkdir -p ${ToPath}
mv "${1}" ${ToPath}
Cmd=""${1}" To ${ToPath}"
echo ${Cmd}
fi

3. Запущено вот такое:
find. -path "./200[1234567890]" -prune -o -exec ~/bin/sort_by_exif_date.sh {} \;
4. И почищены пустые директории (удалились только пустые):
find. -type d -exec rmdir "{}" \;


В результате все фотографии, имевшии exif информацию, разложились по папочкам, все неопознанное упало в папку Unkonown.

Таким образом, о добрый %USERNAME%, я уменьшил меру Хаоса на одной отдельно взятой файло-помойке.
Total votes 54: ↑42 and ↓12 +30
Views 917
Comments 29

Поиск по комментариям.

Habr
Не знаю как всем, лично я очень люблю хабр. Если я, что-то пропустил, начинаю испытывать информационный голод. Когда хабр был молод, публиковались статьи; делались заметки, умные ссылки и мысли. Буквально два дня назад, я очень сильно захотел поиграть в одну Flash игру, вспомнил, что видел ее на хабре — поиграл называется, найти я ее не могу. Может быть поиск по комментария как бы и помог, но его нет. Это не первый случай, когда я, что либо видел но как то не запомнил, а потом начинаются томительные поиски. Так может все таки сделать поиск по комментариям?

P.S Если все же кто то знает про игру, отпишите :)
Начинается с того, что по лесу едет трамвай, потом останавливается и высаживает пионеров ими мы потом проходим различные препятствии.
Total votes 3: ↑2 and ↓1 +1
Views 874
Comments 21

Упорядочиваем диски скриптом весом меньше килобайта

Configuring Linux *
Пока грипповирус подкашивает наши ряды (я уже выбыл из строя), страна празднует (у кого-нибудь стол таки был?) непонятные праздники, а Россия вот вот нападёт на Польшу (аааа), самое время упорядочить нашу коллекцию болванок %).
Итак, возьмём в руки всю силу cat'а, grep'а, sed'а и bash'а и напишем маленький но очень полезный скриптик.

Читать дальше →
Total votes 17: ↑10 and ↓7 +3
Views 941
Comments 9

Изменение UID&GID пользователя и его файлов

Configuring Linux *
reuid.png - image uploaded to Picamatic
Встала тут передо мной задача изменить UID и GID пользователя и правильно изменить владельца всех файлов.
Дело в том, что я работаю за двумя компьютерами попеременно, и файлы mysql лежат у меня на флешке. Получилось так, что id пользователя mysql на обоих компах отличается и мускл не может получить доступ к своим файлам. Присваивать права 0666 скучно, и по этому поводу я решил научиться грамотно изменять uid пользователя :)

Казалось бы, всё просто, но есть два нюанса которые необходимо учесть:
  1. UID и GID не всегда одинаковы для пользователя и его группы
  2. Не все файлы принадлежат одновременно юзеру mysql и группе mysql: файлы для chown нужно искать отдельно
Статья написана для тех, кто ещё не делал ничего подобного а также кто хочет научиться продвинутому использованию команды find и узнать что такое xargs.

Читать дальше →
Total votes 16: ↑11 and ↓5 +6
Views 27K
Comments 16

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

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
Views 59K
Comments 39

Поиск в строке. Реализация в CPython

Python *
Довольно давно на одной из презентаций выпускников одной из так называемых ИТ-академий докладчика спросили о деталях реализации поиска подстроки в строке толи в Java, толи в .Net. Выпускник конечно не смог ничего вразумительного ответить, а я отложил вопрос в и без того длинный todo-лист.

Прошло время, Python стал для меня актуальней enterprise платформ, так что вашему вниманию разбор алгоритма поиска подстроки в Python.
Читать дальше →
Total votes 55: ↑52 and ↓3 +49
Views 6.4K
Comments 10

Поиск файлов по содержимому из терминала

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

image

Читать дальше →
Total votes 57: ↑14 and ↓43 -29
Views 112K
Comments 40

Внутренности jQuery. Поиск кода, выполняемого по событию

JavaScript *jQuery *Google Chrome
Чем дальше в лес, тем толще партизаны. Нет, не так. Чем старше веб, тем больше джаваскрипта

Клиентского кода в веб-приложениях с каждым годом действительно становится все больше. Подчас это десятки файлов с сотнями функций. И что делать, когда нам нужно поменять код, выполняемый по событию (например, клик по ссылке). Как его найти? Задавшись решением этой задачи, я придумал несколько разных вариантов. Каждый из них имеет свои плюсы и минусы. И в конце статьи я предлагаю метод, который мне кажется оптимальным.
Читать дальше →
Total votes 132: ↑125 and ↓7 +118
Views 23K
Comments 34

Так как же удалить миллионы файлов из одной папки?

Configuring Linux *System administration **nix *

Феерическая расстановка точек над i в вопросе удаления файлов из переполненной директории.

Прочитал статью Необычное переполнение жесткого диска или как удалить миллионы файлов из одной папки и очень удивился. Неужели в стандартном инструментарии Linux нет простых средств для работы с переполненными директориями и необходимо прибегать к столь низкоуровневым способам, как вызов getdents() напрямую.

Для тех, кто не в курсе проблемы, краткое описание: если вы случайно создали в одной директории огромное количество файлов без иерархии — т.е. от 5 млн файлов, лежащих в одной единственной плоской директории, то быстро удалить их не получится. Кроме того, не все утилиты в linux могут это сделать в принципе — либо будут сильно нагружать процессор/HDD, либо займут очень много памяти.

Так что я выделил время, организовал тестовый полигон и попробовал различные средства, как предложенные в комментариях, так и найденные в различных статьях и свои собственные.
Читать дальше →
Total votes 155: ↑145 and ↓10 +135
Views 135K
Comments 103

Создание плагинов для AutoCAD с помощью .NET API (часть 6 – поиск и изменение объектов на чертеже)

CAD/CAM *
Tutorial
Это шестая часть цикла про разработку плагинов для AutoCAD. В ней поговорим про поиск объектов на чертеже, а также про их изменение.

public static string disclaimer = "Автор не является профессиональным разработчиком и не обладает глубокими знаниями AutoCAD. Этот пост – просто небольшой рассказ о создании плагина.";
Поиск и спасение
Total votes 10: ↑9 and ↓1 +8
Views 11K
Comments 11

Нечто «крадет» место на диске?

ua-hosting.company corporate blog
Если Вы не следите за оставшимся свободным местом в корневом разделе — то Вас могут ожидать неприятные новости. В случае переполнения данного раздела, важные для Вашего проекта сервисы перестанут работать. Согласитесь, неработающий MySQL или web server скажется на проекте не лучшим образом.

Читать дальше →
Total votes 38: ↑22 and ↓16 +6
Views 27K
Comments 47

Пишем замену find(1) на golang под Linux

Abnormal programming *Programming *Go *
Для одной внутренней утилиты мне понадобилось написать сканирование изменений в директории, по аналогии с утилитой find, и я столкнулся с неожиданной вещью: стандартный Open()+Readdir()+Close() в go очень медленным по сравнению с тем, как работает linux'овая утилита find. На картинке можно видеть strace этой утилиты. Можно видеть, что она делает какие-то очень странные системные вызовы, и в этих системных вызовах мы и попытаемся разобраться и написать аналог find на go, который будет работать только под Linux, но зато со сравнимой скоростью.

Читать дальше →
Total votes 26: ↑23 and ↓3 +20
Views 14K
Comments 25

Рекурсивное множественное добавление IP для блокировки в файл .htaccess

Hosting *nix *Server Administration *
Задача. На web-сервере в домашней папке ~/public_html привычным образом располагаются каталоги различных сайтов. Таким же привычным образом в каждом каталоге сайта располагается файл .htaccess. Известно, что с помощью этого файла, в том числе, ограничивается доступ по IP. В моём случае этот файл выглядит так:

Order Allow,Deny
Allow from all
Deny from 194.87.147.196

Эта запись (блок) встречается в каждом файле .htaccess каждого сайта в папке public_html всего один раз. И если требуется заблокировать доступ ко всем сайтам по IP, например 194.165.16.76 – в каждый файл, после строки «Allow from all» добавляется новая строка:

Deny from 194.165.16.76

Вопрос: что же делать, когда на сервере не 2 и не 3 сайта, а намного больше?
Вот как я попытался решить эту задачу.
Читать дальше →
Total votes 19: ↑11 and ↓8 +3
Views 5K
Comments 16

Некоторые аспекты управления VDS-сервером под Linux

VDSina.ru corporate blog Hosting Configuring Linux *Nginx *Server Administration *
VDS (Virtual Dedicated Server) — услуга, в рамках которой пользователь получает виртуальный выделенный сервер с максимальными привилегиями. Это эмуляция реального физического сервера, у него есть рутовый доступ, возможность установки произвольных операционных систем и любого софта. При этом он обходится значительно дешевле аренды сопоставимого по мощности физического сервера.

На сервер можно поставить ОС со своего образа или воспользоваться готовым образом в панели управления.



Предположим, мы поставили Debian 10 и веб-сервер Nginx, который идёт в стандартном репозитории (apt install nginx). Давайте посмотрим, какие полезные утилиты и команды помогут в управлении сервером под Linux. Рассмотрим и отдельно Nginx, и сам VDS-сервер в целом.
Читать дальше →
Total votes 42: ↑39 and ↓3 +36
Views 9.7K
Comments 8

Сила bash

System Programming *Development for Linux *
Tutorial

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

Читать далее
Total votes 18: ↑0 and ↓18 -18
Views 3.4K
Comments 12

Найти подстроку в строке

Programming *Algorithms *Design Software Data Engineering *
Sandbox

Алгоритм поиска строки Бойера — Мура — алгоритм общего назначения, предназначенный для поиска подстроки в строке.

Давайте попробуем найти вхождение подстроки в строку.

Подготовка к собеседованию
Total votes 22: ↑20 and ↓2 +18
Views 8.4K
Comments 12