Блогът на Борис Димитров

freebsd , linux , system & network admin blog
  • Home
  • За мен
15 фев 2010

Mount /usr/ports във Freebsd Jail

Имам 3 Jail-a искам да си инсталирам и в 3те нещо от /usr/ports :

mount_nullfs /usr/ports/ /usr/jails/ns/usr/ports
mount_nullfs /usr/ports/ /usr/jails/mail/usr/ports
mount_nullfs /usr/ports/ /usr/jails/www/usr/ports

15 февруари, 2010 at 14:36 by admin

Tags: admin, Freebsd, shell, полезно
Posted in Freebsd, Servers | No Comments »

14 фев 2010

Протест против промените в ЗЕС

ДО МЕДИИТЕ И ВСИЧКИ ГРАЖДАНИ

В Сряда, 17 февруари, Парламентът ще гласува на второ четене промените в Закона за електронните съобщения (ЗЕС), даващи достъп на МВР до трафичните данни на гражданите. По традиция, както се вижда от нееднократните и повтарящи се опити за промени и допълнения на този закон, МВР се домогва до безконтролно и нерегламентирано проследяване на трафичните данни на гражданите. Известният с лоша слава „интерфейс“ за проследяване на трафичните данни на гражданите, въпреки обещанията на премиера Борисов и министър Цветанов да бъде премахнат, в предложената за второ четене версия на промените в ЗЕС се заменя със „система от мониторинг център и други входно-изходни програмно-технически средства“. Играейки си с думите, депутатите от ГЕРБ ще “поправят най-голямата грешка” на Бойко Борисов, за каквато той сам обяви в медиите това, че се е вслушал в общественото мнение. Така милиционерската, ретроградна и рестриктивна философия на предложенията за промени в закона ще бъде запазена.

При тези обстоятелства, макар и в последния възможен момент, рано сутрин, и в работен ден, неформалната организация на млади български граждани и блогъри „България е наша“ ви призовава на протест:

СРЯДА
17 ФЕВРУАРИ
(извън “обозначената зона” от 20 метра отстояние от Народното Събрание)
ПЛОЩАД НАРОДНО СЪБРАНИЕ
09:00 до 11:00 ч.

„България е наша“ се противопоставя на обръщането на презумпцията за невинност, с което всеки български гражданин се превръща в потенциален престъпник, терорист или педофил. Ние сме против ограничаването и нарушаването на фундаментални човешки права, гарантирани от Конституцията на Република България, извинявайки това с несъществуващи изисквания на ЕС и Директива 24/2006. Ние вярваме, в конституционните основи, че всички граждани представляват държавата, а гражданските права са фундамент на държавността. Следователно всяка форма на неоснователно, своеволно и ненужно нарушение на гражданските права подронва устоите на държавата и демократичните принципи на управление. Ние определяме промените в ЗЕС като лоши и създаващи възможност за безнаказано извършване на престъпления и злоупотреби от страна на държавните институции и МВР. И ние се противопоставяме на това!
Ние от „България е наша“ призоваваме всички – граждани, депутати, полицаи, пожарникари, граждански организации, правозащитни организации, политически партии, определящи се като демократични, всички българи, ТЕБ, четящия тези редове, да се присъедините към нас. Да не допуснем приемането на калпав, недемократичен и ретрограден закон, за да направим България по-добра за всички, защото:

БЪЛГАРИЯ Е НАША!

14 февруари, 2010 at 5:22 by admin

Tags: демокрация, ЗЕС, протест
Posted in Лични, Новини | No Comments »

9 фев 2010

shell recursive rename

Ако искаме да сменим ‘foo’ с ‘bar’ в имената на ВСИЧКИ (recursive) файлове в даден директория :

Само принтира промените :
find . -type f -print0 | xargs -0 rename -n ’s/foo/bar/g’

Прави промените :
find . -type f -print0 | xargs -0 rename ’s/foo/bar/g’

9 февруари, 2010 at 13:10 by admin

Tags: admin, полезно
Posted in Freebsd, Linux | No Comments »

8 фев 2010

shell find & replace recursive

Много мразя като ми се налага да променям едно и също нещо в много различни файлове !
Затова е следният ред :

find * -type f -exec sed -i ’s/ТОВА ТЪРСИМ/ПРОМЕНЯМЕ С ТОВА/’ {} \;

Казах ли колко обичам sed ?

8 февруари, 2010 at 19:51 by admin

Tags: admin, Freebsd, Linux, полезно
Posted in Freebsd, Linux, Без категория | No Comments »

8 фев 2010

Perl конференция 2010

На 30.1.2010 в София се проведе втория (за България) Perl Workshop в София , част от ежегодни такива събития по целия свят. Миналата година за съжаление неможах да присъствам на събитието , но тази година грешката беше поправена :)

Накратко :
Гост от Русия беше Андрей Шитов който направи интересна презентация на Gearman. Идеята на gearman е да бъде диспечър за задачи (има клиенти освен за perl и за други езици за програмиране , дори и за бази данни – mysql , postgre) на локален или отдалечен сървър. Досега не съм ползвал такъв вид софтуер, но ми се струва удобно всички скриптове да се изпълняват на машина преназначена само затова. С презентацията си Андрей показа солидни разлики във времето на изпълнение със и без gearman, също така като голям плюс e балансирането на задачите. Лесен е за използване и добре документиран. Понеже на съм го ползвал (засега :) повече немога да споделя , мисля , че трябва да се пробва!
Самата презентация можете да видите тук :

http://www.slideshare.net/andy.sh/gearman-and-perl

Втората презентация беше за Catalyst Perl web framework от Петър Шангов (дано да се пише така на Български името му).Тази презентация за мен беше доста интересна защото ми се е налагало да работя с MVC Frameworks в миналото , но на PHP , интересен ми беше начинът как идеята е реализирана с perl. Оказа се че разликите не са чак толкова големи а идеята общо взето е една и съща. Много подробна презентация с добри обяснения за MVC модела като цяло и доста примери за реални ситуации. Това на което наблегна Петър е , че Catalyst сравнен с останалите frameworks в момента идва изцяло без никакви модули (разбира се на разположение на developer-a e да си изтегли такива от CPAN), а core-a е особено малък като размер и слоевете MODEL , VIEW са доста така да се каже олекотени за сметка на CONTROLLER-ите.Също ми се стори доста удобно , че Интересна презнетация.

Третата и най-интересна за мен като системен администратор презентация беше на Мариян Маринов , който говори за Event Driven Programming с perl модула AnyEvent. За мен това е нова концепция в системното програмиране която със сигурност ще пробвам. Идеята е ако ще се пишат демони за следене на даден процес или събитие да не се блокират системни ресурси които могат да се ползват за други задачи или приложения в същото време. Найстина е важно да се мисли от началото на проекта за performance-a на системата , защото с разширяването на задачите и усложняването им програмата започва да изисква повече и повече ресурси и това започва да вляе негативно на цялостния performance. Имам да чета доста по темата , по-натам ще пиша пак.

Останах с много добри впечатления от конференцията и хората там като цяло и съм им много благодарен за усилията които са положили за да я организират. Надявам се по-често да има такива събития в България.

8 февруари, 2010 at 16:37 by admin

Tags: admin, Perl
Posted in Freebsd, Linux, Perl | No Comments »

7 яну 2010

PHP-конвертиране на число в дума

Много полезен PHP клас за конвертиране на число в дума – по нета има и други скриптове но този членува правилно думите на български .


class TextualNumber
{
    var $units  = array();
    var $teens  = array();
    var $hundredth = array();
    var $tens   = array();
    var $suffix = array();

    function TextualNumber()
    {
        $this->units  = array('нула', 'едно', 'две', 'три', 'четери', 'пет', 'шест', 'седем', 'осем',
'девет');
        $this->teens  = array('десет', 'единадесет', 'дванадесет', 'тринадесет',
'четеринадесет', 'петнадесет', 'шестнадесет', 'седемнадесет',
'осемнадесет', 'деветнадесет');
        $this->hundredth =
array(1=>'сто','двеста','триста','четеристотин','петстотин','шестстотин','седемстотин',
'осемстотин','деветстотин');
        $this->tens   = array(2 => 'двадесет', 'тридесет', 'четеридесет', 'петдесет',
'шестдесет', 'седемдесет', 'осемдесет', 'деветдесет');
        $this->suffix = array('хиляди', 'милиона', 'милиарда', 'trillion', 'quadrillion');
    }

    /*
    * @param  string $int The number to convert. Optional.
    * @return text        Resulting text
    */
    function ToString($int)
    {
        // Check for purely numeric chars
        if (!preg_match('#^[\d.]+$#', $int)) {
            echo('Невалидни символи! Моля въведете числова стойност.');
            return;
        }

        // Handle decimals
        if (strpos($int, '.') !== false) {
            $decimal = substr($int, strpos($int, '.') + 1);
            $int     = substr($int, 0, strpos($int, '.'));
        }

        // Lose insignificant zeros
        $int = ltrim($int, '0');

        // Check for valid number
        if ($int == '') {
            $int = '0';
        }

        // Lose the negative, don't use abs() so as to allow large numbers
        if ($negative = ($int < 0)) {
            $int = substr($int, 1);
        }

        // Number too big?
        if (strlen($int) > 18) {
            //throw new Exception('Out of range');
            echo('Числото е повече от 18 символа!');
            return;
        }

        // Keep original number
        $orig = $int;

        /**
        * Main number deciphering bit thing
        */
        switch (strlen($int)) {

            // Single digit number
            case '1':
                $text = $this->units[$int];
                break;

            // Two digit number
            case '2':
                if ($int{0} == '1') {
                    $text = $this->teens[$int{1}];

                } else if ($int{1} == '0') {
                    $text = $this->tens[$int{0}];
                    if($this->flag == 3) $text = 'и '.$text;
                    echo $this->flag."";
                    $this->flag = 0;
                } else {
                    $text = $this->tens[$int{0}] . ' и ' . $this->units[$int{1}];
                }
                break;

            // Three digit number
            case '3':
                if ($int % 100 == 0) {
                    $text = $this->hundredth[$int{0}];
                } else {
                    $int_tmp = substr($int, 1);
                    if($int_tmp{0} == '0' || $int_tmp{0} == '1') $add = 'и';
                    $this->flag = 3;
                    $text = $this->hundredth[$int{0}] . " $add " . $this->GetText(substr($int, 1));
                }
                break;

            // Anything else
            default:
                $pieces      = array();
                $suffixIndex = 0;

                // Handle the last three digits
                $num = substr($int, -3);
                if ($num > 0) {
                    $pieces[] = $this->GetText($num);
                }
                $int = substr($int, 0, -3);
                // Now handle the thousands/millions etc
                while (strlen($int) > 3) {
                    $num   = substr($int, -3);
                    if ($num > 0) {
                        $pieces[] = $this->GetText($num) . ' ' . $this->suffix[$suffixIndex];
                    }
                    $int = substr($int, 0, -3);
                    $suffixIndex++;
                }

                if (substr($int, -3) == 1)
                {
                    $t = $this->suffix[$suffixIndex];
                    if($suffixIndex == 0 && $int == 1) $ending = 'а';
                    else $preff = 'един ';
                    $pieces[] = $preff . substr($t,0,-2) . $ending;
                }
                else
                {
                    $pieces[] = $this->GetText($int) . ' ' . $this->suffix[$suffixIndex];
                }
                /**
                * Figure out whether we need to add "and" in there somewhere
                */
                $pieces = array_reverse($pieces);

                if (count($pieces) > 1 AND strpos($pieces[count($pieces) - 1], ' и ') === false) {
                    $pieces[] = $pieces[count($pieces) - 1];
                    $pieces[count($pieces) - 2] = 'и';
                }

                // Create the text
                $text = implode(' ', $pieces);

                // Negative number?
                if ($negative) {
                    $text = 'минус ' . $text;
                }
                break;
        }

        /**
        * Handle any decimal part
        */
        if (!empty($decimal)) {
            $pieces  = array();
            $decimal = preg_replace('#[^0-9]#', '', $decimal);

            /*
            for ($i=0, $len=strlen($decimal); $i<$len; ++$i) {
                $pieces[] = $this->teens[$decimal{$i}];
            }
            */

            if(strlen($decimal) == '1')
            {
                $text .= ' лева и ' . $this->tens[$decimal{0}];
                $text .= ' стотинки. ';
            }

            else
            {
                $text .= ' лева и ' . $this->GetText($decimal);
                $text .= ' стотинки. ';
            }

	}

        return $text;
    }

    /**
    * Returns text for given number. Parameter should ideally
    * be a string (to handle large numbers) though integers are
    * OK.
    *
    * @param  string $int Number to convert
    * @return string      Resulting textual representation
    */
    function GetText($int)
    {
        return $this->ToString($int);
    }

    /**
    * Returns text and number for a randomly generated number.
    *
    * @return array Array of number and textual representation
    */
    function Get()
    {
        $int = mt_rand(1, 99999);
        return array($int, $this->ToString($int));
    }

    /**
    * Returns currency version of a given number.
    *
    * @param  string $int   Number to convert
    * @param  string $major Word to use for left hand side of decimal point
    * @param  string $minor Word to use for right hand side of decimal point
    * @return string        Resulting string
    */
    function GetCurrency($int, $major = 'pound', $minor = 'pence')
    {
        if (strpos($int, '.') !== false) {
            $left  = substr($int, 0, strpos($int, '.'));
            $right = substr($int, strpos($int, '.') + 1);

            // Plural $major ?
            if ((int)abs($left) != 1) {
                $major .= 's';
            }

            $text  = $this->GetText($left) . " $major and " . $this->GetText($right) . " $minor";

        } else {
            $text = $this->GetText($int) . " $major";
        }

        return $text;
    }
}

Как да го ползваме ?


require_once("number2textBG.class.php");
$number = '12345678';
$t2n = new TextualNumber;
$txt = $t2n->GetText($number);
echo $txt;
?>

Източник – http://webstik.com/blog/page/kak-da-preobrazuvame-chislova-stoynost-v-dumi-chrez-php.html

7 януари, 2010 at 11:45 by admin

Tags: PHP, полезно
Posted in PHP | No Comments »

9 сеп 2009

virtualbox-ose и freebsd7.2 guest OS

Ако ви се наложи да инсталирате Freebsd7.x под VirtalBox-OSE този ред със сигурност ще ви спести доста нерви :

# vboxmanage modifyvm VM_NAME -nictype1 Am79C970A

Явно FreeBSD имат някакъв проблем с емулацията на networking-а във VirtualBOX , но както и да е – този ред решава проблема :)

Повече инфо има тук :
click

9 септември, 2009 at 4:10 by admin

Tags: Freebsd, полезно
Posted in Freebsd | No Comments »

8 юни 2009

Предишен/следващ ред от таблица mysql

Previous ID:

SELECT id FROM $mytable WHERE id < $id ORDER BY ID DESC LIMIT 1;

Next ID:

SELECT id FROM $mytable WHERE id > $id ORDER BY ID ASC LIMIT 1;

8 юни, 2009 at 13:07 by admin

Tags: admin
Posted in Без категория | No Comments »

4 юни 2009

партия лидер ли ?

Най-мазните хора които съм виждал от доста време насам , искали промяна виждаш ли – сещам се аз каква ще е промяната , ще има С-класи и вили по морето , от тоя плакат ТЕЧЕ МАЗНЯ !! шибаняци нещастни

lider

Това е моето мнение !

4 юни, 2009 at 13:15 by admin

Tags: срам
Posted in България | No Comments »

3 юни 2009

Скрипт за проверка дали даден процес е жив

Леко скриптче за проверка дали даден процес е жив (в случая snmpd) :

#!/bin/bash

hostname=b2.sysadmins-bg.net
email=billy@microsoft.com
snmpd_test=`pgrep snmpd`

# SNMPD TEST
if [ $snmpd_test != 1 ]
then
echo `echo host $hostname report: SNMPD DAEMON NOT RUNNING !!!|mail -s CHECK-IT-NOW $email`
fi

в crontab на 5 минути:

*/5 * * * * check-snmpd.sh > /dev/null 2>&1

толкоз .

3 юни, 2009 at 10:19 by admin

Tags: admin, Linux, Servers, полезно
Posted in Linux, Servers | No Comments »

« Older Entries
  • Превод

  • Календар

    март 2010
    П В С Ч П С Н
    « фев    
    1234567
    891011121314
    15161718192021
    22232425262728
    293031  
  • Категории

    • Freebsd (5)
    • Linux (5)
    • Networking (1)
    • Perl (1)
    • PHP (1)
    • Servers (6)
    • Без категория (2)
    • България (2)
    • Лични (2)
    • Новини (1)
  • ИТ

    • Корпоративни интернет решения
  • Приятели

    • :: KnowHow by Sto. :: line-by-line on commandline
    • Instudio54 Lifestyle Online Radio
    • Блогът на Иван Тодоров
    • Институт за имунологично здраве, имунопрофилактика, имунотерапия и биологична терапия на рака “д-р Русчо Иконописов”
  • Реклами


Блогът на Борис Димитров powered by WordPress
Hosted at Sysadmins-bg.net
Design & code by Jonk
Entries (RSS) and Comments (RSS).
18 queryes | 0,000 seconds.