суббота, 24 декабря 2011 г.

Симпатичная антирекламка на базе Тампера

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

if (document.getElementById('ad_creative_1') != null)
{
var adcreativ = document.getElementById('ad_creative_1');
adcreativ.parentNode.removeChild(adcreativ);
}

setTimeout(function (e)
{
    if (document.getElementById('e14332_skip-button')) {
        var elem = new Array(document.getElementById('e14332_skip-button'), document.getElementById('e14332_promobox'));
        var ev = document.createEvent("MouseEvents");
        ev.initEvent("click", false, false);
        elem[0].dispatchEvent(ev);
        elem[1].parentNode.removeChild(elem[1]);
        clearTimeout(this);
    }
}
}, 1000);

ЗЫ поставьте еще Skip-Ad для ютуба 

пятница, 14 октября 2011 г.

Ubuntu 11.10 + IronHide дрова для Asus N53SV

#!/bin/sh
sudo apt-add-repository ppa:mj-casalogic/ironhide
sudo apt-get update
sudo apt-get install ironhide
sudo apt-get install ironhide-ui

Лечим Ubuntu 11.10 после апгрейда

#!/bin/sh
sudo mv /var/run/* /run/
sudo mv /var/lock/* /run/lock/
sudo rm -rf “/var/run”
sudo rm -rf “/var/lock”
sudo ln -s /run /var/run
sudo ln -s /run/lock /var/lock

среда, 12 октября 2011 г.

Установка дров на Asus N53SV (deprecated)

Инструкция устарела, хоть и рабочая, пользуйтесь этой

#!/bin/sh
sudo apt-get install ppa-purge
sudo ppa-purge ppa:ubuntu-x-swat/x-updates
sudo ppa-purge ppa:xorg-edgers/ppa
sudo apt-add-repository ppa:mj-casalogic/bumblebee
sudo apt-get update
sudo apt-get install bumblebee

Фишка в том, что надо ставить из репов Бамблби...

суббота, 8 октября 2011 г.

Иконки в юнити

gsettings set com.canonical.Unity.Panel systray-whitelist "['all']"

воскресенье, 2 октября 2011 г.

Windows 7 - постоянный перезапуск проводника

Пробуем так
- Панель управления - Персонализация - Свойства папок

Там переходим на вторую вкладку и снимаем/ставим флажки

- Отображать в виде значков, а не эскизов(вроде как-то так)

Пролистните дальше и посмотрите, что еще подозрительного включено на отображение, в основном это проблема именно эскизов.

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

Так же радикальный вариант для эстетов
- качаем ShellExView
- выравниваем по Company
- вырубаем все, что не Майкрософт

В итоге получаем очищенное контекстное меню винды.

четверг, 29 сентября 2011 г.

Создание многотомного архива tar+split

tar -cj /home/dorianmj/backups/archive.tar.bz2 . | split -d -b 1024m - archive_part

-d - использовать числовые индексы
-b - размер слайса

cat archive_part* > archive.tar.bz2

склеить все обратно

cat archive_part* | tar -xj

склеить и распаковать

среда, 21 сентября 2011 г.

ImageMagic из сырцов

#!/bin/sh
# Версию желательно брать не бету, а стабильную предыдущую
cd
wget ftp://ftp.imagemagick.org/pub/ImageMagick/delegates/jpegsrc.vX.tar.gz
tar -xf jpegsrc.vX.tar.gz
cd `find . -maxdepth 1 -type d -name "jpeg*"`
./configure
make
make test
sudo make install

sudo ldconfig

cd
wget ftp://ftp.imagemagick.org/pub/ImageMagick/ImageMagick.tar.gz
tar xvfz ImageMagick.tar.gz
cd `find . -maxdepth 1 -type d -name "ImageMagic*"`
./configure --with-jpeg
make
sudo make install

sudo ldconfig

identify -list format

PS - если работаете с сетевым ресурсом и валятся ошибки - проблема в скорости доступа...

Для видео

#!bin/sh
# Удаляем старье
sudo apt-get remove ffmpeg x264 libx264-dev

# Обновляем кеш или что-то там в общем так надо
sudo apt-get update

# Ставим нужные пакеты
sudo apt-get install build-essential subversion git-core checkinstall yasm texi2html libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvorbis-dev libvpx-dev libx11-dev libxfixes-dev libxvidcore-dev lib1g-dev

# Установка x264(h.264)
cd
git clone git://git.videolan.org/x264
cd x264
./configure --enable-static
make
sudo checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes --fstrans=no --default

# Устанавливаем FFMpeg
cd
git clone git://git.videolan.org/ffmpeg
cd ffmpeg
./configure --enable-gpl --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-nonfree --enable-postproc --enable-version3 --enable-x11grab
make
sudo checkinstall --pkgname=ffmpeg --pkgversion="5:$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default
hash x264 ffmpeg ffplay ffprobe

man ffmpeg # Изучаем...

четверг, 30 июня 2011 г.

Аналог php file() тока более задроченная и крутая =)


#define BUFFER_ADD 256

struct sFileToArray
{
char ** strings;
int stringsNum;
};
int fileToArray(const char * fName, struct sFileToArray * stringsStruct)
{
FILE * fHandle = fopen(fName, "r");
int sizeOfArray = BUFFER_ADD;
char ** strings = (char **)calloc(sizeOfArray, sizeof(char *));
if (fHandle == NULL)
{
printf("Cannot open file");
return 1;
}
char ch;
int pos = 0;
int length = BUFFER_ADD;
int stringNum = 0;
strings[stringNum] = (char *)calloc(length, sizeof(char));
while ((ch = fgetc(fHandle)) != EOF)
{
if (ch != '\n')
{
if ((pos + 1) >= length)
{
length += BUFFER_ADD;
strings[stringNum] = (char *)realloc(strings[stringNum], (length * sizeof(char)));
}
strings[stringNum][pos++] = ch;
strings[stringNum][pos] = 0;
continue;
}
pos = 0;
length = BUFFER_ADD;
if ((stringNum + 1) >= sizeOfArray)
{
sizeOfArray += BUFFER_ADD;
strings = (char **)realloc(strings, (sizeOfArray * sizeof(char *)));
}
strings[++stringNum] = (char *)calloc(length, sizeof(char));
}
stringsStruct->strings = strings;
stringsStruct->stringsNum = stringNum;
return stringNum;
}

размер файла


int fileSize(FILE * fHandle)
{
if (fHandle == NULL)
{
printf("Cannot open file");
return -1;
}
fseek(fHandle, 0, SEEK_END);
int sizeOfArray = ftell(fHandle);
fseek(fHandle, 0, SEEK_SET);
return sizeOfArray;
}

вторник, 28 июня 2011 г.

Безлимитный прием текста


#include ‹stdlib.h›
#include ‹stdio.h›
#include ‹string.h›

#define BUFFER_ADD 8

int getcEx(char * str);

int main()
{
char * str = (char *)calloc(BUFFER_ADD, sizeof(char));
getcEx(str);
printf(str);
free(str);
return 0;
}

int getcEx(char * str)
{
char ch;
int pos = 0, length = strlen(str);

while ((ch = getc(stdin)) != '\n')
{
if ((pos + 1) >= length)
{
length += BUFFER_ADD;
str = (char *)realloc(str, length);
}
str[pos++] = ch;
str[pos] = 0;
}
return 0;
}



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

воскресенье, 1 мая 2011 г.

Очередное спасение утопающих

Касательно Ubuntu 11.04, как я настраиваю сетку
1 - нам понадобится DNSMasq
sudo apt-get install dnsmasq
2 - затем начинаем колупать конфиги
sudo geany /etc/dnsmasq.conf
там можно все потереть, либо найдите закомментированные строки
interface=wlan0
если интерфейс совпадает(ifconfig -a), то просто раскоментить и все
3 - далее там же надо прописать правила раздачи айпишников для dhcp
dhcp-range=192.168.2.1,192.168.2.255
у меня вафля будет на второй подсети
спаси и сохрани
4 - открываем следующий конфиг
sudo geany /etc/sysctl.conf
net.ipv4.ip_forward=1 тут по дефолту ноль, форвардинг запрещен, потому меняем на 1, форвардинг запущен
спаси и сохрани
5 - в терминале набиваем
sudo iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
eth1 - мой основной интерфейс, который раздает инет, на него данная команда перенаправит все реквесты, тем самым все остальные интерфейсы будут питаться с eth1
6 - сохраним наши извращения
sudo iptables-save /home/(ваше имя пользователя в домашней папке)/rules
7 - открываем конфиг интерфейсов
sudo geany /etc/network/interfaces
содержимое примерно такое
auto lo eth1 wlan0 # при загрузке поднимаем все интерфейсы
iface lo inet loopback # петля

iface eth1 inet static # собсна источник инета, его у меня выдает роутер
address 192.168.1.2 # это все мона убрать если выше заменить static на dhcp
netmask 255.255.255.0 # --||--
gateway 192.168.1.1 # --||--
hostname ubuntuhome

iface wlan0 inet static
address 192.168.2.1 # --||--
netmask 255.255.255.0 # --||--
broadcast 192.168.2.255 # --||--
network 192.168.2.0 # --||--
wireless-essid networkname # имя нашей сети
wireless-key "s:passe" # пароль не более 5 символов ибо WEP
wireless-mode ad-hoc # режим ад-хок
wireless-channel 11 # канал
wireless-rate 54Mb/s # скорость, чиста пиар на 54 мегабита
hostname ubuntuhome

pre-up iptables-restore < /home/mark/rules # врубание роутинга с нашими настройками
 
post-down iptables-save > /home/mark/rules # вырубание и сохранение настроек на всяк случай
8 - The End
sudo reboot


PS: незабудьте удалить менеджер сетевых настроек(NetworkManager or WiCD) ибо они, как и девушки, созданы для тех кто не умеет скачивать порно нахаляву.

среда, 16 февраля 2011 г.

Спасение утопающих Asus F3Sa

качаем драйвер видеокамеры (ссылка может отмереть, так что выкручивайтесь при помощи гугла)

tar -xzf stk11xx-2.1.0.tar.gz
cd stk11xx-2.1.0
make -f Makefile.standalone
sudo mkdir -p /lib/modules/$(uname -r)/kernel/drivers/usb/media
sudo install -m 644 -o 0 -g 0 stk11xx.ko /lib/modules/$(uname -r)/kernel/drivers/usb/media
sudo depmod -a // генерим зависимости модуля
sudo modprobe stk11xx // запускаем видеокамерку
make -f Makefile.standalone clean // моемся

после сих телодвижений рекомендую замутить еще вот какие
/usr/lib/pm-utils/sleep.d здесь создаем что нить с именем 002sleeper.sh с внутренностями

case $1 in
false)
modprobe stk11xx // просыпаемся и стартуем модуль
;;
true)
modprobe -r stk11xx // засыпаем предварительно убив модуль и избавившись от ошибок
;;
esac

если активно юзаете гибернацию, то все тоже самое только в папке /usr/lib/pm-utils/power.d

Архив блога