Просмотр списка установленных пакетов в CentOS
Посмотреть список установленных пакетов, их версий и вендоров в CentOS можно командой:
| 1 | rpm -qa --qf '%{NAME} %{VERSION} %{VENDOR}\n' | 
Посмотреть список установленных пакетов, их версий и вендоров в CentOS можно командой:
| 1 | rpm -qa --qf '%{NAME} %{VERSION} %{VENDOR}\n' | 
Представляю Вашему вниманию бандл для Symfony2 Standard Edition, разработанный для облегчения работы с большими наборами данных таблицы. SPS — это аббревиатура для поиска, разбиения на страницы, сортировки, то есть пакет может применять фильтры, обеспечивать пагинацию, сортировку данных. Бандл реализуется как служба, которая получает Doctrine\DBAL\Query\QueryBuilder или Doctrine\ORM\QueryBuilder и возвращает форму фильтров и массива с данными для… Читать далее »
Предлагаю postgresql функцию, позволяющую получить атрибуты всех полей и ключей из любых таблиц сервера. Начну с примера. Допустим надо вывести атрибуты таблицы fos_user:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | # select * from return_ro_tables_info() where tab_name='fos_user';  tab_name | attnum |         field         |   type    | isnotnull | pri |           default_adsrc           |     comment ----------+--------+-----------------------+-----------+-----------+-----+-----------------------------------+-----------------  fos_user |      1 | id                    | int8      | t         | t   |                                   |  fos_user |      2 | username              | varchar   | t         |     |                                   |  fos_user |      3 | username_canonical    | varchar   | t         |     |                                   |  fos_user |      4 | email                 | varchar   | t         |     |                                   |  fos_user |      5 | email_canonical       | varchar   | t         |     |                                   |  fos_user |      6 | enabled               | bool      | t         |     |                                   |  fos_user |      7 | salt                  | varchar   | t         |     |                                   |  fos_user |      8 | password              | varchar   | t         |     |                                   |  fos_user |      9 | last_login            | timestamp | f         |     | NULL::timestamp without time zone |  fos_user |     10 | locked                | bool      | t         |     |                                   |  fos_user |     11 | expired               | bool      | t         |     |                                   |  fos_user |     12 | expires_at            | timestamp | f         |     | NULL::timestamp without time zone |  fos_user |     13 | confirmation_token    | varchar   | f         |     | NULL::character varying           |  fos_user |     14 | password_requested_at | timestamp | f         |     | NULL::timestamp without time zone |  fos_user |     15 | roles                 | text      | t         |     |                                   | (DC2Type:array)  fos_user |     16 | credentials_expired   | bool      | t         |     |                                   |  fos_user |     17 | credentials_expire_at | timestamp | f         |     | NULL::timestamp without time zone | (17 rows) | 
Названия колонок таблицы говорят сами за себя, описывать не буду Ну и, собственно, сам код функции
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | -- Информация о колонках и ключах таблиц DROP FUNCTION IF EXISTS return_ro_tables_info(); CREATE OR REPLACE FUNCTION return_ro_tables_info() RETURNS TABLE(     tab_name      varchar,     attnum        integer,     field         varchar,     type          varchar,     isnotnull     boolean,     pri           boolean,     default_adsrc varchar,     comment       varchar ) AS $$     SELECT         c.relname::varchar AS tab_name,         a.attnum::integer,         a.attname::varchar AS field,         t.typname::varchar AS type,         a.attnotnull::boolean AS isnotnull,         (SELECT 't'::boolean             FROM pg_index             WHERE c.oid = pg_index.indrelid             AND pg_index.indkey[0] = a.attnum             AND pg_index.indisprimary = 't'         ) AS pri,         (SELECT pg_attrdef.adsrc::varchar             FROM pg_attrdef             WHERE c.oid = pg_attrdef.adrelid AND pg_attrdef.adnum=a.attnum         ) AS default_adsrc,         (SELECT pg_description.description::varchar             FROM pg_description WHERE pg_description.objoid = c.oid AND a.attnum = pg_description.objsubid         ) AS comment     FROM pg_attribute a, pg_class c, pg_type t, pg_namespace n     WHERE n.nspname = 'public'         AND a.attnum > 0         AND a.attrelid = c.oid         AND a.atttypid = t.oid         AND n.oid = c.relnamespace     ORDER BY  c.relname, a.attnum; $$ LANGUAGE sql; | 
Для конвертирования djvu в pdf необходимо установить ПО:
| 1 | sudo apt-get install libtiff-tools djvulibre-bin djvulibre-desktop | 
Затем файл djvu нужно конвертировать в формат tiff, для этого выполняем:
| 1 | ddjvu -format=tiff yourfile.djvu yourfile.tiff | 
И напоследок осталось конвертировать файл tiff в df, выполнив:
| 1 | tiff2pdf -j -o outfile.pdf yourfile.tiff | 
P.S. вышеуказанные команды для ОС Debian/Ubuntu. Для Centos apt-get меняем на yum
Довольно часто возникает необходимость в классе формы Symfony2, опциям поля типа «select» добавить HTML атрибуты. Сделать это можно так: расширяем метод
| 1 | Symfony\Component\Form\AbstractType::finishView | 
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |     /**      * @param FormView $view      * @param FormInterface $form      * @param array $options      */     public function finishView(FormView $view, FormInterface $form, array $options)     {         parent::finishView($view, $form, $options);         $additionalAttributes = array();         // myMethod - метод объекта $choice, возвращающий значение, которое надо подставить в атрибут         foreach ($view->children['orders']->vars['choices'] as $id => $choice) {             $additionalAttributes[$id] = array(                 'data-cost' => $this->propertyAccessor->getValue($choice->data, 'myMethod'),                 'disabled' => 'disabled',             );         }         foreach ($view->children['orders']->children as $id => $child) {             $child->vars['attr'] = array_replace(                 isset($child->vars['attr']) ? $child->vars['attr'] : array(),                 $additionalAttributes[$id]             );         }     } | 
Это руководство шаг за шагом продемонстрирует, как подключиться к WiFi сети в командной строке Linux. Будем использовать: wpa_supplicant iw ip ping iw — основной инструмент для сетевых задач, связанных с WiFi, таких как нахождение имени устройства WiFi, поиска точек доступа. wpa_supplicant — беспроводной инструмент для подключения к сети WPA / WPA2. ip — используется для… Читать далее »
Нередка ситуация, когда в классе формы требуется создать несколько элементов <select>, значения которых зависят друг от друга. Типичный пример — страны-города. На гитхабе есть решения, но они в составе бандлов. Предлагаю своё решение. Сразу, как будет выглядеть класс нашей формы:
| 1 2 3 4 5 6 7 8 9 10 11 12 | $builder     ->add('country', 'entity', array(         'class' => 'AppBundle:Country',         'empty_value'=> '== Choose country ==',         'required' => false,     ))     ->add('city', 'my_dependent_entity', array(         'class' => 'AppBundle:City',         'property' => 'name',         'parent_field' => 'country',     )) ; | 
Два поля — страны и города — список городов будет формироваться в зависимости от… Читать далее »
Возникают ситуации, когда надо привязать зависимую сущность Doctrine, а самой сущности нет, есть только её ID. Конечно, по ID всегда можно получить эту сущность
| 1 2 3 | $author = $this->getDoctrine()->getRepository('AcmeDemoBundle:Author')->find($autorId); $post = new Post(); $post->setAuthor($author); | 
Но можно избежать лишнее получение объекта. Для это у Doctrine2 есть Reference Proxies.
| 1 2 3 | $em = $this->getDoctrine()->getManager(); $post = new Post(); $post->setAuthor($em->getReference('Acme\DemoBundle\Entity\Author', $authorId)); | 
Скачивание всех URL, из файла MY_FILE:
| 1 | wget -i MY_FILE | 
Скачивание в указанный каталог ( -P ):
| 1 | wget -P /path/to/save ftp://ftp.example_site.org/some__file.iso | 
Использование имя username : password на FTP/HTTP:
| 1 2 | wget ftp://username:password@ftp.my_example.org/some__file.iso wget --user=username --password=password ftp://ftp.my_example.org/some__file.iso | 
Загрузка в фоновом режиме ( -b ):
| 1 | wget -b ftp://ftp.my_example.org/some__file.iso | 
Продолжить (-c continue) загрузку ранее не полностью загруженного файла:
| 1 | wget -c https://my_example.org/some__file.iso | 
Скачать страницы с глубиной следования 15, записывая протокол в файл my_log.log:
| 1 | wget -r -l 15 https://my_example.org/ -o my_log.log | 
Скачать содержимое каталога https://my_example.org/custom/my-directory/… Читать далее »
Получить размер всех директорий можно командой:
| 1 | du -s *|sort -nr|cut -f 2-|while read a;do du -hs $a;done |