Ruby: установка и управление gem в Ruby

www.rubygems.org – основной сайт с гемами

Ubuntu/Centos/Gentoo

Установка ruby/gems:

sudo apt-get/yum/emerge install ruby
sudo apt-get/yum/emerge install rubygems

Гемы обычно ставятся через утилиту gem – она заведует поиском/установкой/удалениями гемов и имеет другие полезные команды. Краткий ман. Утилита поддерживает мультиверсионность гемов – если последняя вышедшая версия используемого вами gem не совместима с той, которую вы используете сейчас, то можно использовать обе версии одновременно. 

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

Ruby: gem oci8 для работы с БД Oracle

INSTALL

Gem oci8 как в Ubuntu, так и в Gentoo использует oracle instantclient для работы, поэтому сначала нужно поставить его. Полностью процесс установки gem описан тут.

После установки instantclient устанавливаем уже расширение:

  • Установка Ubuntu требует обязательное определение переменной LD_LIBRARY_PATH.
~$ sudo env LD_LIBRARY_PATH=/usr/lib/oracle/12.1/client64/lib gem install ruby-oci8
Building native extensions.  


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

PHP: работа с БД Oracle используя расширение oci8 в Ubuntu 14.04

Install
Установка расширения Oci8 для работы с БД Oracle.
Ставим pecl.
sudo apt-get install php-pear php-xml php7.0-xml php7.0-dev 
sudo apt-get install pecl
Через pecl ставим Oci8. При установке указываем путь в oracle lib.
sudo pecl install oci8 
instantclient,/usr/lib/oracle/<ver>/client64/lib
Добавляем extension в php.ini.


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

PHP: установка php7 на ubuntu 14.04, CentOS 7

PHP7

Является самой актуальной (если не брать во внимание dev версию php 8) и производительной версией php.

Ubuntu 14.04

Установка php7 на Ubuntu 14.04 делается через предварительное добавление app-репозитория ppa:ondrej/php.

sudo apt-get install python-software-properties software-properties-common
sudo LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
sudo apt-get update

Далее удаляем опционально php5 (Purge удалит и конфигурационные файлы).

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

PHP serialize и json

PHP serialize – метод превращения данных (строки, массива) в байт строку с возможностью последующего извлечения через unserialize. Ранее был популярен, но сейчас лучше использовать json:

  1. serialize работает только в php
  2. serialize из коробки имеет проблемы со спец. символами (пример ниже)

Ошибка “Notice: unserialize(): Error at offset 454707 of 455688 bytes in”

Варианты решения:

  1. переделать на json – самый простой и эффективный на практике
  2. использовать DECOCE – учитываем, что не работает с array
  3. использовать REGEXP для удаления “плохих” символов массово – можно потерять часть данных
  4. искать символ(ы)  по значению байта (455688) на которые ругается serialize через dd, sql в базу и прочие шаманства и удалять их направленно

json – по сути аналог serialize, только более стандартизирован и стабилен.

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

PHP: простая файловая шара (upload, download, delete, open)

DOWNLOAD/OPEN

При генерации файла обязательно делаем скобки вокруг “file_name”, иначе в случае если в имени файла есть пробел firefox будет показывать только первое слово, хотя другие браузеры этим страдать не будут. Mozilla давно сказала, что исправлять это не будет т.к. такое поведение соответствует RFC.

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

Ruby: работа с Excel (xls) и CSV с гемами spreadsheet, axlsx

В целом про csv/excel тут.

Для работы с CSV достаточно системной библиотеки CSV.

 

CSV

Работа с CSV

# открываем файл, каждая строка является массивом, каждая ячейкам – элементом массива

csv.foreach("csv.csv") do |line|
puts line.inspect
end

# если нам нужно сохранить весь файл в двумерный массив (array, в нем строки в виде отдельных array) – просто вызываем read.

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

phantomjs – парсинг web с поддержкой js

Зачем
В отличии от mechanize, который очень удобен и функционален, phantomjs, судя прямо из названия, поддерживает исполнение javascript без установки браузера.
Установка
Устанавливать проще всего через apt-get/yum. Можно так же скачать пакет с сайта, плюсом будет самая свежая версия пакета.


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

Несколько полезных JavaScript

confirm при нажатии на кнопку

Например кнопку “удалить” в файловой шаре.

echo "<td><button type=submit name=file_dlt value=\"$file\" onclick=\"return confirm('Вы уверены?')\">Удалить</button></td>";
Добавление строки в таблицу по OnClick

Стырено отсюда. Причем штука настолько крутая, что копирует весь html от строки родителя – значения полей (в моем кейсе хорошо), checkbox, связанные.

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

PHP библиотека PHPExcel для работы с Excel

Для работы с Excel использовал библиотеку PHPExcel. Установка простейшая – кладем папку Classes в нужную папку на сервере, указываем корректные пути в include/require.

Примеры кода по чтению/генерации файлов Excel можно посмотреть на github странице библиотеки.

 

Красивости

и этим не ограничивается функционал, это лишь то, что использовал:

  • mergeCells(“cell_range”) – Объединение указанных ячеек в одну.


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