пятница, 2 декабря 2011 г.

Чтобы не забыть:
настройка FreeTDS соединения с MSSQL

1) Установить собственно FreeTDS и unixODBC
aptitude install freetds-dev
aptitude install tdsodbc
2) настроить freetds.conf, odbcinst.ini, odbc.ini
    #cat  /etc/odbcinst.ini
    [FreeTDS]
    Description  = TDS driver (Sybase/MS SQL)
    Driver          = /usr/lib/odbc/libtdsodbc.so
    Setup           = /usr/lib/odbc/libtdsS.so
    CPTimeout  =
    CPReuse      =
    FileUsage     = 1

    #cat  /etc/odbc.ini
    [SERVER]
    Description = ODBC connection via FreeTDS
    Driver = FreeTDS
    Servername = wts7
    Database
    UID         = 
    PWD
    Port         = 
    Trace = No

    #cat /etc/freetds/freetds.conf
    [wts7]
    host = 192.168.0.67
    port = 1433
    tds version = 7.0


    3) проверим
    isql -v SERVER sa sql***
    sqsh -S wts7 -U sa -P sql***
    sqsh -S 192.168.0.67 -U sq -P sql***
    tsql -H 192.168.0.67 -p 1433 -U sa ----- ?????

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

    Чтобы не забыть. Пример использования windows USB принтера (опубликовано на [harbour-users] Harbour + Windows + Printer USB пользователем Itamar M. Lisn Jr.)
      
    /*
     * $Id: testprn.prg 13647 2010-01-19 22:19:54Z vszakats $
     */

    #include "common.ch"
    #include "hbwin.ch"

    PROCEDURE Main( cPar1 )
      LOCAL nPrn := 1
      LOCAL cBMPFile := Space( 40 )
      LOCAL aPrn := WIN_PRINTERLIST()
      LOCAL GetList := {}

      CLS

      IF Empty( aPrn )
         Alert("No printers installed - Cannot continue")
         QUIT
      ENDIF

      DO WHILE nPrn != 0
         CLS
         @ 0, 0 SAY "Win_Prn() Class test program. Choose a printer to test"
         @ 1, 0 SAY "Bitmap file name" GET cBMPFile PICT "@K"
         READ
         @ 2, 0 TO MaxRow(), MaxCol()
         nPrn := AChoice( 3, 1, MaxRow() - 1, MaxCol() - 1, aPrn, .T.,, nPrn )
         IF nPrn != 0
            PrnTest( aPrn[ nPrn ], cBMPFile, iif( ISCHARACTER( cPar1 )
    .AND. Lower( cPar1 ) == "ask", .T., NIL ) )
         ENDIF
      ENDDO

      RETURN

    STATIC PROCEDURE PrnTest( cPrinter, cBMPFile, lAsk )
      LOCAL oPrinter := Win_Prn():New( cPrinter )
      LOCAL aFonts
      LOCAL x
      LOCAL nColFixed
      LOCAL nColTTF
      LOCAL nColCharSet

      oPrinter:Landscape := .F.
      oPrinter:FormType  := WIN_DMPAPER_A4
      oPrinter:Copies    := 1
      IF ISLOGICAL( lAsk )
         oPrinter:AskProperties := lAsk
      ENDIF

      IF ! oPrinter:Create()
         Alert( "Cannot Create Printer" )
      ELSE
         IF ! oPrinter:startDoc( "Win_Prn(Doc name in Printer Properties)" )
            Alert( "StartDoc() failed" )
         ELSE
            oPrinter:SetPen( WIN_PS_SOLID, 1, HB_WIN_RGB_RED )
            oPrinter:Bold( WIN_FW_EXTRABOLD )
            oPrinter:TextOut( oPrinter:PrinterName + ": MaxRow() = " +
    Str( oPrinter:MaxRow(), 4 ) + "   MaxCol() = " + Str(
    oPrinter:MaxCol(), 4 ) )
            oPrinter:Bold( WIN_FW_DONTCARE )
            oPrinter:NewLine()
            oPrinter:TextOut("   Partial list of available fonts that are
    available for OEM_")
            oPrinter:NewLine()
            oPrinter:UnderLine( .T. )
            oPrinter:Italic( .T. )
    //       oPrinter:SetFont( "Courier New", 7, { 3, -50 } )  // Compressed print
            nColFixed   := 40 * oPrinter:CharWidth
            nColTTF     := 48 * oPrinter:CharWidth
            nColCharSet := 60 * oPrinter:CharWidth
            oPrinter:TextOut( "FontName" )
            oPrinter:SetPos( nColFixed )
            oPrinter:TextOut( "Fixed?" )
            oPrinter:SetPos( nColTTF )
            oPrinter:TextOut( "TrueType?" )
            oPrinter:SetPos( nColCharset )
            oPrinter:TextOut( "CharSet#", .T. )
            oPrinter:NewLine()
            oPrinter:Italic( .F. )
            oPrinter:UnderLine( .F. )
            aFonts := oPrinter:GetFonts()
            oPrinter:NewLine()
            FOR x:= 1 TO Len( aFonts ) STEP 2
               oPrinter:CharSet( aFonts[ x, 4 ] )
               IF oPrinter:SetFont( aFonts[ x, 1 ] )       // Could use
    "IF oPrinter:SetFontOk" after call to oPrinter:SetFont()
                  IF oPrinter:FontName == aFonts[ x, 1 ]  // Make sure
    Windows didn't pick a different font
                     oPrinter:TextOut( aFonts[ x, 1 ] )
                     oPrinter:SetPos( nColFixed )
                     oPrinter:TextOut( iif( aFonts[ x, 2 ], "Yes", "No" ) )
                     oPrinter:SetPos( nColTTF )
                     oPrinter:TextOut( iif( aFonts[ x, 3 ], "Yes", "No" ) )
                     oPrinter:SetPos( nColCharSet )
                     oPrinter:TextOut( Str( aFonts[ x, 4 ], 5 ) )
                     oPrinter:SetPos( oPrinter:LeftMargin, oPrinter:PosY
    + ( oPrinter:CharHeight * 2 ) )
                     IF oPrinter:PRow() > oPrinter:MaxRow() - 16  //
    Could use "oPrinter:NewPage()" to start a new page
                        EXIT
                     ENDIF
                  ENDIF
               ENDIF
               oPrinter:Line( 0, oPrinter:PosY + 5, 2000, oPrinter:PosY + 5 )
            NEXT
            oPrinter:SetFont( "Lucida Console", 8, { 3, -50 } )  //
    Alternative Compressed print
            oPrinter:CharSet( 0 )  // Reset default charset
            oPrinter:Bold( WIN_FW_EXTRABOLD )
            oPrinter:NewLine()
            oPrinter:TextOut( "This is on line" + Str( oPrinter:Prow(), 4
    ) + ", Printed bold, " )
            oPrinter:TextOut( " finishing at Column: " )
            oPrinter:TextOut( Str( oPrinter:Pcol(), 4 ) )
            oPrinter:SetPrc( oPrinter:Prow() + 3, 0 )
            oPrinter:Bold( WIN_FW_DONTCARE )
            oPrinter:TextOut( "Notice: UNDERLINE only prints correctly if
    there is a blank line after", .T. )
            oPrinter:TextOut( "        it. This is because of :LineHeight
    and the next line", .T. )
            oPrinter:TextOut( "        printing over top of the
    underline. To avoid this happening", .T. )
            oPrinter:TextOut( "        you can to alter :LineHeight or
    use a smaller font, or use :SetBkMode( WIN_TRANSPARENT )" )
            oPrinter:NewLine()
            oPrinter:NewLine()
            oPrinter:SetFont( "Lucida Console", 18, 0 )  // Large print
            oPrinter:SetColor( HB_WIN_RGB_GREEN )
            oPrinter:TextOut( "Finally some larger print" )
            oPrinter:Box(   0, oPrinter:PosY + 100, 100, oPrinter:PosY + 200 )
            oPrinter:Arc( 200, oPrinter:PosY + 100, 300, oPrinter:PosY + 200 )
            oPrinter:Ellipse( 400, oPrinter:PosY + 100, 500, oPrinter:PosY + 200 )
            oPrinter:FillRect( 600, oPrinter:PosY + 100, 700,
    oPrinter:PosY + 200, HB_WIN_RGB_RED )

    //       To print a barcode;
    //       Replace 'BCod39HN' with your own bar code font or any other font
    //         oPrinter:TextAtFont( oPrinter:MM_TO_POSX( 30 ),
    oPrinter:MM_TO_POSY( 60 ), "1234567890", "BCod39HN", 24, 0 )
    //
            PrintBitMap( oPrinter, cBMPFile )

            oPrinter:EndDoc()
         ENDIF
         oPrinter:Destroy()
      ENDIF

      RETURN

    STATIC PROCEDURE PrintBitMap( oPrn, cBitFile )
      LOCAL oBMP

      IF Empty( cBitFile )
         *
      ELSEIF ! hb_FileExists( cBitFile )
         Alert( cBitFile + " not found " )
      ELSE
         oBMP := Win_BMP():New()
         IF oBmp:loadFile( cBitFile )

            oBmp:Draw( oPrn, { 200, 200, 2000, 1500 } )

            // Note: Can also use this method to print bitmap
            //   oBmp:Rect := { 200, 200, 2000, 1500 }
            //   oPrn:DrawBitMap( oBmp )

         ENDIF
         oBMP:Destroy()
      ENDIF

      RETURN

    пятница, 11 марта 2011 г.

    теперь в инете пойдет поток освященных битов.

    http://www.lenta.ru/news/2011/03/10/noevil/
    Скорее всего это они для "чтобы постебаться". Других объяснений нет. Ну или им из правительства спустили директиву "срочно обсвятить, или мы за себя не отвечаем! плата по таксе, такса в прейскуранте ЗАО РПЦ"

    воскресенье, 20 февраля 2011 г.

    Вот на новый год фотографировались, а получились призраки

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










    На следующем снимке Мои домочадцы, только как-то странно они выглядят.







    А вот и все мы. Посмотрите, каие прозрачные! и никакого монтажа!
    просто ошибка в настройке камеры!

    Информация о фотографии
    01.01.2011
    1600×1200 пикс. – 238 Кб
    Имя файла: SDC11980.JPG
    Фотоаппарат: Samsung Techwin
    Модель: 
    ISO: 80
    Экспозиция: 8.0 сек.
    Диафрагма: 2.8
    Фокусное расстояние: 6.3мм
    Использовалась вспышка: Да
    Широта: н/д
    Долгота: н/д
    (на первой фотке вспышка выключена) Вот  как то так и снимают призраков туристы. в темноте камера выставляет большую экспозицию, делает вспышку. Остальное дело фантазии или случайного "друга".Вот вам и привидения. Раньше я думал, что нужны какие-тио хитрые камеры, чтобы так сделать снимок, но опят показал, что это реально во вполне домашних условиях.
    А вот напоследок еще снимочек 
    Это снято на огненном шоу фаерщиков (надо сказать, что ребята - молодци! получил огромное удовольствие от шоу!)
    на фотке имеет место быть круглый блик.
    надожив несколько фильтров в GIMP ничего толком не увидел. Справа вверху - дорожный знак слева  тоже стнанный груг, но более бледный, а перед лицом девушки - яркий голубой круг. съемка велась на площадке перед ДК профсоюзов на Космонавтов. направление на люксор (знак обозначает пешеходную дорожку от ДК к Титова. Что там могло так бликовать?






    воскресенье, 13 февраля 2011 г.

    вот как-то понадобилось организовать цикл в блоке кода.

    // выполняется блок кода пока истинно условие
    function DoWhile(usl,action)
    local ret
    do while eval(usl)
       ret:=eval(action)
    enddo
    return ret
    А вот и функции для накопления итогов в БД. Тут и создание сводного файла, и добавление записи.
     
    //
    // ФУНКЦИЯ НАКОПЛЕНИЯ ИТОГОВ В СВОДНОМ ФАЙЛЕ
    // ПАРАМЕТРЫ : ключевое значение,aлиас области свода,добавляемый массив,
    function disk_add(key_V,sel,mas)
      local i,s
      s:=select()
      if ! empty(sel)
         dbselectarea(sel)
      endif
      if !dbseek(key_V)
        dbappend()
        REPLACE key WITH key_V         //******************************
      endif
      aeval(mas,{|x,i|fieldput(i+1,x+fieldget(i+1))})
      dbselectarea(s)
    return(NIL)
    
    #define DEF_TYP  "C"
    
    #define DEF_LEN  12
    #define DEF_DEC  1
    #define DEF_FCNT 10
    #define DEF_NAME "_svod.dbf"
    //
    // ФУНКЦИЯ СОЗДАНИЯ СВОДНОГО ФАЙЛА
    // ПАРАМЕТРЫ :
    // ИМЯ,ТИП КЛЮЧА,ДЛИНА КЛЮЧА,КОЛИЧЕСТВО ГРАФ,массив форматов{{длина,дес.}, ...}
    //_svod.dbf, "C",    10     ,    DEF_FCNT   , {...,{DEF_LEN,DEF_DEC},...}
    function disk_CREATE(name,KEY_TYP,KEY_LEN,NUM,mas)
    LOCAL I,FNUM,FLEN,FDEC,S,SS,NM,STRU:={}
    SS:=SELECT()
    IF NAME==NIL
      NAME:=DEF_NAME
    ENDIF
    IF KEY_TYP==NIL
      KEY_TYP:="C"
    ENDIF
    IF KEY_LEN==NIL
      KEY_TYP:=10
    ENDIF
    if valtype(mas)#"A"
      mas:={}
    endif
    if (fnum:=max(num,len(mas)))==0
       fnum:=DEF_FCNT
    endif
    aadd(stru,{"KEY",KEY_TYP,KEY_LEN,0})
    for i:=1 to fnum
       nm:="P"+alltrim(str(i))
       flen:=if(i<=len(mas).and.valtype(mas[i,1])="N",mas[i,1],DEF_LEN)
       fdec:=if(i<=len(mas).and.valtype(mas[i,2])="N",mas[i,2],DEF_DEC)
       aadd(stru,{nm,"N",flen,fdec})
    endfor
    dbcreate(name,stru)
    use (name) new exclusive
    index on key to _tmp_ind
    s:=SELECT()
    DBSELECTAREA(SS)
    return (S)
    Вот откопал свой старенький простенький форматер для печати. еще в ДОС работал. Ну и заодно пару других функций: перевод любых данных в строку (удобно для отладки, например), суммирование данных в каком-то разрезе (это было нужно для формирования статистических "простыней".Это чем-то сходно с хэшами, но тогда я еще об этом не знал ;-) При большом объеме бывало мало памяти, так что пришлось потом писать функцию для накопления итогов в БД. Алгоритм тот же. работало достаточно быстро на 286 компах.
    // Функция форматирования строк таблиц для печати
    // ПОЛУЧАЕТ   : массив значений и массив,содержащий ширину граф.
    // ВОЗВРАЩАЕТ : массив строк с отформатированными по ширине графами.
    // ПРИМЕР
    // a:="Олейников"
    // b:="ИНЖЕНЕР-ПРОГРАММИСТ"
    // c:=19011971
    // d:=24
    // e:=LineFormat({a,b,c,d},{10,8,8,4})
    // ****************************************
    //* e cтало равным -
    //*{{"Oлейников  ИНЖЕНЕР- 19011971   24"+CHR(13)+CHR(10)},
    //* {"           ПРОГРАММ              "+CHR(13)+CHR(10)},
    //* {"           ИСТ                   "+CHR(13)+CHR(10)}}
    // e:=LineFormat({a,b,c,d},{10,8,8,4},"|")
    // ****************************************
    //* e cтало равным -
    //*{{"Oлейников |ИНЖЕНЕР-|19011971|  24|"+CHR(13)+CHR(10)},
    //* {"          |ПРОГРАММ|        |    |"+CHR(13)+CHR(10)},
    //* {"          |ИСТ     |        |    |"+CHR(13)+CHR(10)}}




    #define EOL             (CHR(13)+CHR(10))


    function LineFormat(MAS,MMM,x) // ЗНАЧЕНИЯ,ШИРИНА ГРАФ,разделитель
    local lH:=0,ii:=0,i:=0,pos,fff,bbb,buf:="",RET:={},D:={}
    local ND,priznak:=.f.,PPR,TMP,n:={},pnt,xx,lH1
    D:=ACLONE(MAS)
    lH:=len(mas)
    lH1:=len(mmm)
     FOR I= 1 TO LH
      if i<=lh1
        ii:=i
       else
        aadd(mmm,mmm[ii])
      endif
      D[I]=XTOC(D[I],mmm[i])
      aadd(n,1)
     NEXT
     if x==NIL
       x=" "
     endif
    *n=1
    do while .t.
     priznak:=.f.
    * buf=ltrim(x)
     for i=1 to Lh
      do while .t.
       TMP:=AT(";",substr(D[i],n[i],mmm[i]))
       IF TMP>1
         FFF:=TMP-1
         PPR:=1
        ELSeIF TMP=0
         FFF:=MMM[I]
         PPR:=0
        ELSeIF TMP=1
         n[i]++
         loop
       ENDIF
       exit
      enddo
      bbb:=substr(D[i],n[i],fff)
      buf+=(padr(bbb,MMM[I])+x)
      if !empty(bbb)
        priznak=.t.
      endif
      n[i]+=(FFF+PPR)                            // ЕСЛИ PPR=1 - ПРОПУСТИМ ;
     endfor
     if !priznak
         IF  LEN(RET)=0 ;  RET:={" "} ;  ENDIF
         exit
      else
       AADD(RET,RTRIM(buf)+EOL)
       buf:=""
     endif
    enddo
    return RET


    * Функция перевода данных любого типа в строковый.
    *  Правила перевода:
    * строка - без изменения
    * число  - строка
    * дата   - строка
    * объект - "объект"
    * NIL    - "пусто!"
    * блок кода - строка от результата
    * массив    - слияние строк от элементов
    * мемо      - мемо
    * логическое- "истина" или " ложь "
    function xtoc(parm,len,dec)
        local t:="",ln:=0,i:=0,p:=.f.,ret
        ret:=""
        t=valtype(parm)
        DO Case
            CASE t="A"
                ln=len(parm)
                For i=1 to ln
                    ret:=ret+xtoc(parm[i])
                Next
            CASE t="B"
                ret:=xtoc(eval(parm))
            CASE t="C"
                ret:=parm
            CASE t="D"
                ret:=dtoc(parm)
            CASE t="L"
                ret:=if(parm,"истина"," ложь ")
            CASE t="M"
                ret:=parm
            CASE t="N"
                If !empty(len).and.!empty(dec)
                   ret:=str(parm,len,dec)
                 elseif !empty(len)
    *               ret:=str(parm,len)
                    IF LEN(ALLTRIM(STR(parm)))>len
                       RET:=REPLICATE("*",LEN)
                      ELSE
                       RET:=PADL(STR(PARM),LEN)
                    ENDIF
                 else
                   ret:=str(parm)
                EndIF
                p:=.t.
            CASE t="O"
                ret:="объект"
            CASE t="U"
                ret:="пусто!"
            OTHERWISE
                ret:=".?."
       EndCASE
    return ret


    * Функция накопления итогов в двумерном массиве.
    * перед вызовом необходим существующий двумерный массив;
    * первый элемент в строке - ключ,остальные - значения
    * к его элементам добавятся(по ключу) элементы массива для суммирования
    *FUNCTION ADD (KEY,MAS,M)  //КЛЮЧ,MАССИВ СУММ И МАССИВ ДЛЯ СУММИРОВАНИЯ
    * LOCAL LN:=0,NOM:=0,I:=0,ELEM:={},LN1,LN2
    * IF !EMPTY(MAS).AND.(NOM:=ASCAN(MAS,{|x|x[1]==KEY}))>0
    *   LN1:=LEN(MAS[NOM])-1
    *   LN2:=LEN(M)
    *   LN=MIN(LN1,LN2)
    *   FOR I=1 TO LN
    *      MAS[NOM,I+1]+=M[I]
    *   ENDFOR
    *   IF LN1
    *     FOR I=1 TO LN2-LN1
    *      AADD(MAS[NOM],M[ln+I])
    *     NEXT
    *   ENDIF
    *  ELSE
    *   LN:=LEN(M)
    *   ELEM:={KEY}
    *   FOR I=1 TO LN
    *    AADD(ELEM,M[I])
    *   ENDFOR
    *    AADD(MAS,ACLONE(ELEM))
    *  ENDIF
    * RETURN MAS
    *

    вторник, 8 февраля 2011 г.

    Образовательный стандарт

    Образовательный стандарт.
    не претендую на глубокий анализ - я не специалист и постараюсь не делать общих выводов. Так, по верхушкам, по цитатам. 
    Вот читаем базу по  "Концепция духовно-нравственного развития и воспитания личности гражданина России " (страница 10):
    "В советский период государство обрело всю полноту власти
    над гражданином и его частной жизнью. Устраняя влияние церк
    ви на общественную и личную жизнь, подавляя религиозное со
    знание, советское государство само стало претендовать на роль
    новой вселенской церкви. Спектр жизненных смыслов был сжат
    до веры в коммунизм и служения коммунистической партии."
    Бред какой-то! гундение типично-русских интеллигентиков.

    там же на 21 странице вижу бредовый словесный понос:
    "Педагогическая поддержка самоопределения личности, раз
    вития её способностей, таланта, передача ей системных науч
    ных знаний, умений, навыков и компетенций, необходимых
    для успешной социализации, сами по себе не создают достаточ
    ных условий для свободного развития и социальной зрелости
    личности. Личность несвободна, если она не отличает добро от
    зла, не ценит жизнь, труд, семью, других людей, общество, Оте
    чество, т. е. всё то, в чём в нравственном отношении утвержда
    ет себя человек и развивается его личность. Знания наук и нез
    нание добра, острый ум и глухое сердце таят угрозу для челове
    ка, ограничивают и деформируют его личностное развитие.
    Духовно нравственное развитие и воспитание обучающихся
    должны быть интегрированы в основные виды деятельности
    обучающихся: урочную, внеурочную, внешкольную и общест
    венно полезную. Иными словами, необходима интегратив
    ность программ духовно нравственного воспитания. Одной
    из таких программ может быть обучение духовным основам
    религиозной культуры и светской жизни."
    это почва для оправдания введения тех самых ОПК как обязательного предмета. Это очень оскорбляет мои атеистические воззрения.

    В самом стандарте есть такой перл "
    ·формирование осознанного и уважительного отношения к традиционным российским религиям и религиозным организациям, к вере и религиозным убеждениям;
    " - комментарий такой: с чего бы мне как-то осознанно уважать что-то, что само меня не уважает (ну например настойчиво прозелитят)? Нет, я буду всеми силами стараться привить ребенку настороженное отношение к любым религиозным проявлениям. Любая религия - искуственная несвобода, изначально объяснимая. в диком обществе она признана заменить совесть, но не сейчас. Она выполнилы свои функции и должна быть заменена.

    Интересно, почему " элементарные представления о религиозной картине мира, роли традиционных религий в развитии Российского государства, в истории и культуре нашей страны; " не в предмете История средних веков, а в "Воспитание нравственных чувств и этического сознания: "

    Почему вообще вот это "
    ·ознакомление по желанию обучающихся и с согласия родителей (законных представителей) с деятельностью традиционных религиозных организаций (путём проведения экскурсий в места богослужения, добровольного участия в подготовке и проведении религиозных праздников, встреч с религиозными деятелями);" включено в программу школы? Кто верит, что это будет добровольно? Я - нет. Хотя, посмотрим.
    А!!! Вот и ответ " При разработке и осуществлении программы духовно-нравственного развития и воспитания обучающихся на ступени начального общего образования образовательное учреждение может взаимодействовать, в том числе на системной основе, с традиционными религиозными организациями, общественными организациями и объединениями гражданско-патриотической, культурной, экологической и иной направленности, детско-юношескими и молодёжными движениями, организациями, объединениями, разделяющими в своей деятельности базовые национальные ценности и готовыми содействовать достижению национального педагогического идеала. При этом могут быть использованы различные формы взаимодействия:" ! то есть если с попами будут взаимодействовать на системной основе - даже согласия родителей не спросят - включено в программу!


    воскресенье, 6 февраля 2011 г.

    дермократия

    воистинно свободная и демокрасская страна:

    Губернатор Белгородской обл. запретил День святого Валентина
    Губернатор Белгородской обл. запретил День святого Валентина
    В Белгородской области запретили праздновать День св. Валентина. Соответствующее поручение дал губернатор Белгородской области Евгений Савченко, передает РСН.

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

    Директива благословлена архиепископом Белгородским и Старооскольским Иоанном и подписана первым замгубернатора области Олегом Полухиным. Чиновники, помимо контроля за исполнением поручения, также должны объяснить гражданам через...Читать далее >

    попы ликуют! на очереди Новый год, Масленница, всенародное проклинание Пушкина за сказку о попе, закрытие оставшихся планетариев и сжигание персонала вместе с оборудованием, замена астрономии на закон божЫй.
    Занимайтесь своими делами, господин Савченко! Фигней маяться мы и сами можем, без вашего участия.

    среда, 26 января 2011 г.

    Хочу сказать:

    1) чтобы похоронить Ленина, сделайте сначала больше чем он.
    2)не так страшен чеченский бандит(ка) с бомбой, как продажный русский гаишник.

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

    Зарегистрируйтесь на DROPBOX и подарите мне 250М

    В итоге никто не проиграет, но, мне почему-то кажется, что многие просто уйдут на сайт проекта, чтобы другому на халяву не подфортило ;-0