вторник, 9 сентября 2014 г.

MacOS X 10.9 копание конфигурации

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

Вся конфигурация пользователя и его сервисов находится в defaults
defaults read - чтение конфигурации (по умолчанию всей).
defaults write ...... - запись определенного параметров
MAN defaults

Сервисы/службы/демоны - инициализация

В линуксах есть init.d, upstart и др.
В Mac у нас launchd - это такой инструмент, который запускается первым и далее запускает все процессы, включая графическую оболочку, службу контроля учетных записей и т.д.

Если вы относительно продвинутый юзер и/или готовы переустанавливать операционную систему в случае чего, то можете поочередно разбираться с запускаемыми службами, решать нужен вам конкретный сервис или нет и выпиливать всё лишнее, добиваясь тем самым максимальной отдачи от системы, минимальных затрат оперативной памяти и процессорного времени, но тут тоже можно перестараться.


Один раз я выключил жизненно важный сервис, пришлось восстанавливать через CMD+S, загрузился в однопользовательском режиме и там набрал
mount -o rw,remount /
для переключения диска в режим чтения/записи, а далее можно работать как обычно и обратно выправлять конфигурацию.

Скрипты инициализации находятся в следующих директориях:

~/Library/LaunchAgents - агенты созданные для конкретного пользователя
/Library/LaunchAgents - агенты для всех пользователей, но созданные сторонним ПО
/Library/LaunchDaemons - службы созданные сторонним ПО
/System/Library/LaunchAgents - встроенные изначально в систему общие агенты /System/Library/LaunchDaemons - встроенные изначально в систему общие службы

Для работы с launchd, создана утилита launchctl
MAN launchctl
Launchd Habrahabr

Так же есть утилита bless, для управления загрузчиком на Mac.

Может пригодиться при различных опытах с загрузкой альтернативных систем.
bless --device /dev/disk0s1 --setBoot --legacy --verbose (так переключается в legacymode загрузчик, пригодится при установке единственной не EFI системы).
MAN bless
Русская документация bless

воскресенье, 16 февраля 2014 г.

Скрипт для установки LAMP на MacOS 10.9

Для всех тех, кому лень сидеть 30-40 минут, качать все пакеты, устанавливать, править конфиги и т.д. И для тех, кто просто хочет увидеть пример установки pkg и prefPane и монтирования dmg образов в полностью автоматическом режиме при помощи BASH скриптов.

https://github.com/PavelApostol/macscripts/blob/master/lamp-on-mac.sh

понедельник, 20 января 2014 г.

TRIM ENABLED SSD MacOS 10.9

sudo su

perl -pi -e 's|(\x52\x6F\x74\x61\x74\x69\x6F\x6E\x61\x6C\x00{1,20})[^\x00]{9}(\x00{1,20}\x54)|$1\x00\x00\x00\x00\x00\x00\x00\x00\x00$2|sg' /System/Library/Extensions/IOAHCIFamily.kext/Contents/PlugIns/IOAHCIBlockStorage.kext/Contents/MacOS/IOAHCIBlockStorage

touch /System/Library/Extensions/ 

четверг, 9 января 2014 г.

position:fixed in IE8 абсолютное позиционирование

Вот так можно сдвинуть объект на 30 процентов от края экрана и это будет работать с любым DOCTYPE и в любом браузере.





div#btn

 left:0;
position:fixed;
  _position:absolute;
  top:30%;
  _top:expression(eval(document.body.scrollTop+(window.screen.availHeight/100*30)));
}

четверг, 26 декабря 2013 г.

MacOS 10.9 первые шаги после установки

Первым делом, увидев MacOS, я долго не мог найти необходимого пункта в настройке, чтобы помочь вам в этом разобраться - решил сделать небольшое пособие.

Первоначальная настройка


1. Обновление
Первым делом, после установки MacOS, стоит открыть AppStore и поставить все предлагаемые обновления (вкладка обновление).



2. Настройка мыши/трекпада





В настройках мыши (если у вам Magic Mouse) отрегулируйте скорость движения и включите необходимые функции

Если снять галочку с пункта "Направление прокрутки: обычное",  то скролинг будет таким как на Windows/Linux.



В настройках трекпада тоже нужно включить необходимые функции и задать направление прокрутки (функции разделены по вкладкам).

Чтобы перетаскивать объекты (двигать ярлыки и окна) при помощи трекпада - нужно зайти в Универсальный доступ -> Мышь и трекпад и там в параметрах трекпада включить перетягивание.




3. Настройка "дока"
Dock - это аналог панели задач на Windows, тут одновременно ярлыки для быстрого запуска и запущенные программы.





По умолчанию Dock расположен не совсем удобно, он занимает место на рабочем столе. Мне больше нравится, когда он появляется только при необходимости.

























Ставим галочку "Автоматически показывать и скрывать Dock" и по желанию включаем увеличение.


Чтобы не вылазила ошибка о подписанных авторах "Программа ХХХ не может быть открыта, так как ее автор является неустановленным разработчиком"


нужно зайти в настройках в "Защита и безопасность"  и разрешить установку из любого источника


Для, того, чтобы установить программу - нужно ее перетащить в папку "Приложения", таким же способом и удаляются многие программы. Но системные приложения удаляются через свой инсталлятор.



Продолжение следует....

вторник, 24 декабря 2013 г.

Просмотр фотографий на MacOS

Просматривая архивы фоток, я опечалился что на маке нет такого просмотра как на винде, т.е. нельзя открыть одну фотку а потом стрелочками листать все фотки в папке.


На помощь приходит программа JustLooking


Может прокручивать фотки в папке, может поворачивать, в общем для того чтобы посмотреть свои фотки - самое то и бесплатно!

среда, 23 октября 2013 г.

OpenVZ Debian - работа в консоли (установка, настройка, использование)

1. Подготовка - установка пакетов

Находим нужное ядро
apt-cache search openvz | grep linux-headers

и устанавливаем его, например 
apt-get install  linux-image-2.6.32-5-openvz-amd64

далее устанавливаем утилиты 
apt-get install vzctl debootstrap vzquota bridge-utils
 

2.Создание и настройка виртуальных машин


ln -s /var/lib/vz /vz
cd /vz/template/cache/

в эту папку закачиваем необходимые образы в архиве tar.gz с сайта http://download.openvz.org
wget http://download.openvz.org/debian-systs/ostemplates/debian-6.0-amd64-minimal.tar.gz
wget http://download.openvz.org/template/precreated/contrib/debian-7.0-amd64-minimal.tar.gz

Создаем виртуальную машину (id - 101, образ - debian-7.0-amd64-minimal)

vzctl create 101 --ostemplate debian-7.0-amd64-minimal --config basic

 

Создаем интерфейс-мост для виртуалки, в виртуалке будет создан eth0, а в самой машине veth101.0

vzctl set 101 --netif_add eth0 --save

 

Прописываем имя хоста виртуалки

vzctl set 101 --hostname hostname.ru --save

 

Обем виртуальной памяти (выделено/максимально)

vzctl set 101 --privvmpages 512M:512M --save

 

Объем жесткого диска в виртуалке

vzctl set 101 --diskspace 10G:10G --save

 

DNS-сервер

vzctl set 101 --nameserver 8.8.8.8 --save 

 

Пароль root

vzctl set 101 --userpasswd root:password

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

nano /vz/private/101/etc/network/interfaces.head
и в этом файле пишем:
auto eth0
iface eth0 inet static
address 888.888.888.888
netmask 255.255.255.0
gateway 888.888.888.1

А потом создаем мост

На данном этапе очень важно осознать как работает мост, он работает примерно как хаб, т.е. если в основной хаб воткнуть свой хаб и в него втыкать кучу компов - то они пробросятся в основной хаб мостом. Так же и тут, у нас основной интерфейс на сервере, допустим он будет eth0 и у него IP:777.777.777.777, а на сервере крутятся виртуалки, для них вы докупаете IP - адреса у провайдера.

У интерфейса eth0 не должно быть прописано IP адреса, адрес, по которому мы будем подключаться к серверу(железному) нужно прописать к мосту.
nano /etc/network/if-up.d/bridge

и в файле пишем:
__________________________________________________________
#!/bin/bash
ifconfig br0 down
ifconfig eth0 down
ifconfig veth101.0 down
brctl delbr br0

# Запускаем бридж
brctl addbr br0
brctl addif br0 eth0
brctl addif br0 veth101.0
brctl stp br0 off

# Задаём IP моста, для дальнейшего управления им через ssh
ifconfig br0 777.777.777.777 netmask 255.255.0.0

# Удаляем IP сетевых карт
ifconfig eth1 0.0.0.0
ifconfig veth101.0 0.0.0.0

# Поднимаем интерфейсы сетевых карт и моста
ifconfig eth0 up
ifconfig veth101.0 up
ifconfig br0 up

route add default gw 777.777.777.1 #шлюз
________________________________________________________________________

Потом задаем права и делаем его исполняемым
chown root.root /etc/network/if-up.d/bridge
chmod +x  /etc/network/if-up.d/bridge

3. Управление виртуальными машинами

Просмотр списка машин и их статусов
vzlist -a
Запуск/перезапуск/остановка
vzctl start|restart|stop 101
Уничтожение
vzctl destroy 101


Материалы по теме


понедельник, 21 октября 2013 г.

PHP Обрезка изображений

Наша сверхсекретная лабаратория написала функцию обрезки изображений на PHP (не путать с масштабированием), например на фотке снизу какая то белая полоска или рамка, а вам нужно отрезать от картинки эту рамку.

crop("./image1.jpg","image2.jpg",left,top,right,bottom)

image1 -  входное изображение
image2 - выходное изображение
left - обрезка левого края
top - обрезка верхнего края
right  - .....
bottom - .....



  function crop ($inp,$out,$l=0,$t=0,$r,$b)
    {
        list($w, $h, $type) = getimagesize($inp);
        switch ($type)
        {
             case 1: $source = imagecreatefromgif($inp); break;
             case 2: $source = imagecreatefromjpeg($inp); break;
             case 3: $source = imagecreatefrompng($inp); break;
        }
        $n_w=$w-$l-$r; $n_h=$h-$t-$b;
        res = imagecreatetruecolor($n_w,$n_h);
        imagealphablending($res,false);
        imagecopy ($res,$source,0,0,$l,$t,$n_w,$n_h);
        imageSaveAlpha($res, true);

        switch ($type)
        {
         case 1: $source = imagegif($res,$out); break;
         case 2: $source = imagejpeg($res,$out); break;
         case 3: $source = imagepng($res,$out); break;
        }

        imageDestroy($res);
    }



Лицензионное соглашение: напишите "спасибо" в комментариях и пользуйтесь на здоровье.

воскресенье, 29 сентября 2013 г.

Как удалить BING из firefox,google chrome,etc (устанавливается с Divx) в MacOS

Данный плагин удаляется не в разделе плагинов и дополнений, а другим методом, нужно открыть новую вкладку в браузере (именно новую а не стартовую) и в левом нижнем углу увидите пункт "восстановить".

четверг, 20 июня 2013 г.

Горячие клавиши для MacOS (хоткеи, сочетания клавиш) и др.

В Linux и Windows сочетания клавиш совпадают (почти), но в MacOS  всё выглядит иначе, помимо сочетаний клавиш в данной статье будут описаны различные жесты и приемы, которы добавляют продуктивности в работе за компьютером.

Виртуальные рабочие столы

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

1. На Magic Mouse - двумя пальцами влево/вправо
2. На Magic TrackPad - четырьмя пальцами влево/вправо
3. На клавиатуре - CTRL+ВЛЕВО/ВПРАВО


Mission Control

отображение всех открытых окон, рабочих столов и выбор нужного окна

На этом же экране можно создавать дополнительные рабочие столы, для этого нужно навести курсор на верхний правый угол и нажать на появившися значек "плюс".
1. На Magic Mouse - двойной тап (без щелчка) двумя пальцами
2. На Magic TrackPad - провести четырьмя пальцами вверх
3. На клавиатуре - F3


Показать окна программы

У одной программы может быть несколько окон, при этом в доке отображается только один значок, для того, чтобы отобразить окна программы (например в браузере это может быть главное окно, окно загрузок и исходный код программы).
1. На Magic TrackPad - движение четырьмя пальцами вниз
2. На клавиатуре - F10


Запуск LaunchPad

LaunchPad  в MacOS - это некий аналог пуска, схожий с главным экраном на iOS
1. На трекпаде - свести 5 пальцев из сторон в одну точку, словно хватая мячик
2. На клавиатуре - F4


Снимок экрана

Shift+CMD+3 - снять весь экран и сохранить в файл
Shift+CMD+4 - снять выделенную область и сохранить в файл
Если добавочно нажимать еще и CTRL, то снимок будет копироваться в буфер обмена и не сохраняться в файл.

Переход назад-вперед, например в браузере

1. На Magic Mouse - смахивание одним пальцем влево/вправо
2. На трекпаде - смахивание двумя пальцами влево-вправо


Открытие ссылки в новом окне (браузер)

Клик по ссылке с зажатой кнопкой CMD

Работа с текстом

В конец строки строки (END) - CMD+ВПРАВО или  CTRL+E
В начало строки (HOME) - CMD+ВЛЕВО или CTRL+A
В конец слова ALT+ВРПАВО
В начало слова ALT+ВЛЕВО

Далее все хоткеи как в Windows, одно лишь различие что вместо CTRL нужно нажимать CMD
CMD+A - выделить всё
CMD+С - скопировать выделенное
CMD+X - вырезать
CMD+V - вставить
CMD+S - сохранить
.....

Работа с окнами

CMD+TAB - переключение между окнами
Cmd + Q  - закрыть программу
Cmd + W - закрыть окно (вкладку браузера)

Работа с файлами

cmd+delete (cmd+fn+back space) - удаление файла
cmd+opt+shift+delete ( cmd+opt+shift+fn+back space ) - аналог SHIFT+DEL, удаление, минуя корзину.


воскресенье, 26 мая 2013 г.

LAMP MacOS 10.8.3

Данная статья посвящается PHP разработчикам, который пересели на Mac с Linux, т.е. базовые знания консоли у вас должны быть


1. Конфигурируем и запускаем Apache

открываем конфиг /etc/apache2/httpd.conf
раскомментируем строчку для включения модуля PHP
LoadModule php5_module libexec/apache2/libphp5.so

При необходимости можно раскомментировать строчку относящуюся к Perl или закомментировать лишние модули для оптимизации ресурсов.

далее находим строки 
<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

и дописываем индексные файлы, т.е. приводим к такому виду
<IfModule dir_module>
    DirectoryIndex index.php index.htm index.html
</IfModule>

В конец файла дописываем
<Directory /www>

        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php
        </IfModule>
</Directory>

Include /etc/apache2/sites-enabled/*


Теперь создаем все необходимые директории
mkdir /etc/apache2/sites-enabled/
mkdir /www


Далее перегружаем apache командой
sudo apachectl restart

2. Конфигурируем php (5.3)


копируем дефолтный конфиг
cp /etc/php.ini.default /etc/php.ini

меняем следующие строки в php.ini:

short_open_tag = Off 
на
short_open_tag = On

чтобы работали такие теги как <?=$var;?>

post_max_size = 8M и upload_max_filesize = 2M
выставляем свои значения, я например ставлю оба параметра по 200 мегабайт, чтобы можно было в том же PHPMyAdmin грузить большие дампы бд.

3. Устанавливаем MySQL

качаем отсюда http://dev.mysql.com/downloads/mysql/
выбираем DMG под нашу систему и архитектуру

устанавливаем все 3 файла, в панели управления запускаем мускуль


добавляем mysql бинарики в PATH, для этого от имени рута дописываем в файл /etc/bashrc строчку

export PATH="/usr/local/mysql/bin:$PATH"


перезаходим в консоль (закроем и снова откроем)


задаем пароль для root
mysqladmin -u root password '123456'

теперь нужно решить траблу с сокетами
для этого открываем файл
/etc/php.ini
в нем надо найти три параметра, которые указывают на /var/mysql/mysql.sock и привести к такому виду

pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket = /tmp/mysql.sock




4. PhpMyAdmin

Качаем самую последнюю версию с сайта http://www.phpmyadmin.net/home_page/index.php


Заходим под админом
$ sudo su
Создаем папку
sh-3.2# mkdir /usr/local/phpmyadmin

Копируем в созданную папку наш архив
sh-3.2# cp Downloads/phpMyAdmin*.zip /usr/local/phpmyadmin/

Переходим в папку
sh-3.2# cd /usr/local/phpmyadmin/

Распаковываем архив
sh-3.2# unzip phpMyAdmin*.zip

Удаляем архив
sh-3.2# rm phpMyAdmin*.zip

Переименовываем папку
sh-3.2# mv phpMyAdmin*/ www

Cоздаем конфиг для apache
sh-3.2# nano apache.conf

вставляем в него такие строки
Alias /phpmyadmin /usr/local/phpmyadmin/www
<Directory /usr/local/phpmyadmin/www>
        Options FollowSymLinks
        DirectoryIndex index.php
        Options Indexes
        Order allow,deny
        Allow from all
        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php
                php_flag track_vars On
        </IfModule>
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/local/phpmyadmin/www/libraries>
    Order Deny,Allow
    Deny from All
</Directory>
<Directory /usr/local/phpmyadmin/www/lib>
    Order Deny,Allow
    Deny from All
</Directory>



Теперь создаем конфиг

cp www/config.sample.inc.php www/config.inc.php


Потом добавляем наш конфиг в общий конфиг апача
nano /etc/apache2/httpd.conf

в конец дописываем
Include /usr/local/phpmyadmin/apache.conf


После всех манипуляций можно перезапустить апач и mysql и попробовать зайти по адресу
http://localhost/phpmyadmin



суббота, 25 мая 2013 г.

Восстановление загрузочной записи (MBR) Windows 7

Загрузочный диск отличается от обычного наличием MBR  - главной загрузочной записи, если просто скопировать диск пофайлово, то Windows не загрузится, так же при установке и дальнейшем удалении Linux может возникнуть проблема при загрузке Windows 7.

Для того, чтобы восстановить MBR нужно загрузиться с установочного диска Windows 7, выбрать восстановление системы, далее запустить командную строку и выполнить в ней 2 команды:

Bootrec.exe /FixMbr
Bootrec.exe /FixBoot

среда, 22 мая 2013 г.

Как зайти в Bios на Mac Mini 2012 и др.

Многие пользователи задают в интернете вопрос "как зайти в BIOS на Mac". На самом деле на маке нет традиционного биоса, там стоит EFI, это тоже биос но уже более современного поколения, этот EFI представляет некую прошивку на материнской плате, которая загружает систему, имеет встроенные восстановительные утилиты и т.д.

Для того, чтобы загрузиться с внешнего диска (usb-cdrom,usb-flash...) нужно при включении удерживать кнопку С.

Для выбора загрузочного диска нужно удерживать кнопку Alt (option).

Для загрузки в безопасном режиме нужно удерживать кнопку Shift.

Для загрузки в Verbose режиме (вывод отчета загрузки) нужно удерживать CMD+V


Для того, чтобы войти в меню восстановления системы удерживайте сочетание Win+R или Command+R. Загрузится мини-оболочка, в которой можно переразметить диск, установить из интернета Mac OS (занимает около 4-6 часов).


Другие опции можно найти тут http://support.apple.com/kb/HT1533?viewlocale=ru_RU

понедельник, 21 января 2013 г.

Социальные кнопки на сайте

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

Для того, чтобы добавить социальные кнопки, не нужно быть супер специалистом или разбираться в API социальных сетей, для этого уже есть готовые решения.



























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

суббота, 12 января 2013 г.

ISPConfig смена порта и другие доработки

Обратите внимание, все модификации проверены на версии ISPConfig 3.0.4.6

Смена порта для создаваемых виртуалхостов apache

Данная манипуляция актуальна в том случае, когда вы ставите nginx перед apache, большинство инструкций в интернете предлагают редактировать файлы
apache_ispconfig.conf.master 
vhost.conf.master  

но это подходит для более старых версий, в новых версиях в данных конфигах вместо порта мы увидим

{tmpl_var name="port"}

следовательно сам порт прописан в ином месте, а именно в


/usr/local/ispconfig/server/plugins-enabled/apache2_plugin.inc.php 
/usr/local/ispconfig/server/plugins-enabled/apps_vhost_plugin.inc.php 

ищем в этих файлах цифру 80, относящуюся к порту и меняем на свой порт.

 

 

Поддержка кириллических и других punycode доменов

сперва включаем перекодировку в списке сайтов

1. Переходим в директорию с классами
cd /usr/local/ispconfig/interface/lib/classes

2. Скачиваем класс для перекодировки punycode
wget http://phlymail.com/download/Goodies/idna_convert_080.zip

3. Распаковываем
unzip idna_convert_080.zip


4. Открываем файл /usr/local/ispconfig/interface/lib/classes/listform_actions.inc.php

в функцию prepareDataRow, после строки
$key = $field['field'];

require_once('idna_convert.class.php');
$idn_class = new idna_convert(array('idn_version' => '2008'));
$rec[$key] = $idn_class->decode(stripslashes($rec[$key]));

далее продолжим идею и сделаем сохранение рф доменов