четверг, 31 мая 2012 г.

Linux, конвертируем mkv в avi

**********************************************
Данная статья - это кросспостинг с http://my.runtu.org/blog/hawk/linux-konvertiruem-mkv-v-avi
Оригинал статьи ,доступен для прочтения здесь: http://unixa.ru/linux/linux-konvertiruem-mkv-v-avi.html

********************************************
Модно стало последнее время фильмы в mkv загонять, но к сожалению данный формат не понимают большинство DVD плееров. Благо есть Linux, в котором делается все это очень просто и легко одной командой:
mencoder /path/file.mkv -oac mp3lame -ovc copy -o /path/file.avi
Команда перекодирует mkv-файл в mpeg4 с mp3 звуком.
Если mencoder не установлен, то исправим это:
$sudo apt-get install mencoder
На самом деле mencoder имеет множество опций, почитать о которых можно в man mencoder.
Можно например перекодировать видео XVIDом (должен присутствовать в системе) с нужным битрейдом:
$mencoder /path/file.mkv -oac mp3lame -ovc xvid -xvidencopts vhq=1:bitrate=1250 -o /path/file.avi
Можно еще поколдовать с опциями и к примеру обрезать черные поля с помощью фильтра crop, а с помощью scale можно смаштабировать картинку и т.д.

суббота, 12 мая 2012 г.

ReSize fotos in folder в 10 потоков

#coding: UTF-8
import threading, Queue, os
from PIL import Image

queue = Queue.Queue() # создаем очередь 
THREADS = 10

for i in os.listdir('.'):
    if i.split('.')[-1] == 'JPG':
        queue.put(Image.open(i))

def chage_file(img):
    #узнать ориентацию файла
    print 'Открытие файла ' + img.filename
    i_size = img.size
    if i_size[0] > i_size[1]: # если больше то 800х600
        #изменить размер
        r_img = img.resize((800,600), Image.ANTIALIAS)
    else:
        r_img = img.resize((600,800), Image.ANTIALIAS)
        #переименовать и сохранить
    print 'Сохранение файла' + img.filename
    r_img.save('NEW_'+img.filename)

def repeat():  
    while True:  
        try:  
            item = queue.get_nowait() # ждём данные  
        except Queue.Empty:  
            break  
        chage_file(item) # передаем данные в нашу функцию  
        #time.sleep(0.5)  
        queue.task_done() # задача завершена  

for tr in xrange(THREADS):
    t = threading.Thread(target=repeat) # создаем нить
    t.start()

queue.join()

четверг, 10 мая 2012 г.

ReSize fotos in folder

#coding: UTF-8
from PIL import Image
import os
def chage_file(img):
    #узнать ориентацию файла
    print 'Открытие файла ' + img.filename
    i_size = img.size
    if i_size[0] > i_size[1]: # если больше то 800х600
        #изменить размер
        r_img = img.resize((800,600), Image.ANTIALIAS)
    else:
        r_img = img.resize((600,800), Image.ANTIALIAS)
    #переименовать и сохранить
    print 'Сохранение файла'
    r_img.save('NEW_'+img.filename)

def resize_file(orientation, img):
    print 'Изменение размера файла'
    if orientation:
        return img.resize((800,600), Image.ANTIALIAS)
    else:
        return img.resize((600,800), Image.ANTIALIAS)
kolvo_files = 0

for i in os.listdir('.'):
    if i.split('.')[-1] == 'JPG':
        kolvo_files += 1
        chage_file(Image.open(i))
print "Количество обработанных файлов = ", kolvo_files

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

Первый опыт PyQt4

pyuic4 название_файла_с_кодом.py -o шаблон.ui
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'dialog1.ui'
#
# Created: Thu Dec 22 00:40:39 2011
#      by: PyQt4 UI code generator 4.7.3
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

class Ui_MainDialog(object):
    def setupUi(self, MainDialog):
        MainDialog.setObjectName("MainDialog")
        MainDialog.resize(400, 300)
        self.newDialogButton = QtGui.QPushButton(MainDialog)
        self.newDialogButton.setGeometry(QtCore.QRect(300, 260, 90, 27))
        self.newDialogButton.setObjectName("newDialogButton")

        self.retranslateUi(MainDialog)
        QtCore.QMetaObject.connectSlotsByName(MainDialog)

    def retranslateUi(self, MainDialog):
        MainDialog.setWindowTitle(QtGui.QApplication.translate("MainDialog", "Main Dialog", None, QtGui.QApplication.UnicodeUTF8))
        self.newDialogButton.setText(QtGui.QApplication.translate("MainDialog", "New Dialog", None, QtGui.QApplication.UnicodeUTF8))
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'dialog2.ui'
#
# Created: Thu Dec 22 00:40:51 2011
#      by: PyQt4 UI code generator 4.7.3
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

class Ui_SecondDialog(object):
    def setupUi(self, SecondDialog):
        SecondDialog.setObjectName("SecondDialog")
        SecondDialog.resize(400, 300)

        self.retranslateUi(SecondDialog)
        QtCore.QMetaObject.connectSlotsByName(SecondDialog)

    def retranslateUi(self, SecondDialog):
        SecondDialog.setWindowTitle(QtGui.QApplication.translate("SecondDialog", "Dialog", None, QtGui.QApplication.UnicodeUTF8))
import sys
from PyQt4 import QtGui, QtCore
from dialog1 import Ui_MainDialog
from dialog2 import Ui_SecondDialog

class MainDialig(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MainDialig,self).__init__(parent)
        
        self.secondDialog = SecondDialog(parent)

        self.ui = Ui_MainDialog()
        self.ui.setupUi(self)
        self.ui.newDialogButton.clicked.connect(self.showSecondDialog)

    def showSecondDialog(self):
        self.secondDialog.show()

class SecondDialog(QtGui.QWidget):
    def __init__(self, parent=None):
        super(SecondDialog,self).__init__(parent)
        self.ui = Ui_SecondDialog()
        self.ui.setupUi(self)

def main():
    app = QtGui.QApplication(sys.argv)
    mainWindow = MainDialig()
    mainWindow.show()
    sys.exit(app.exec_())

if __name__=='__main__':
    main()
from dialog1 import Ui_MainDialog
from dialog2 import Ui_SecondDialog
class MainDialig(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MainDialig,self).__init__(parent)
self.secondDialog = SecondDialog(parent)
self.ui = Ui_MainDialog()
self.ui.setupUi(self)
self.ui.newDialogButton.clicked.connect(self.showSecondDialog)
def showSecondDialog(self):
    self.secondDialog.show()
class SecondDialog(QtGui.QWidget):
    def __init__(self, parent=None):
        super(SecondDialog,self).__init__(parent)
        self.ui = Ui_SecondDialog()
        self.ui.setupUi(self)
def main():
    app = QtGui.QApplication(sys.argv)
    mainWindow = MainDialig()
    mainWindow.show()
    sys.exit(app.exec_())

if __name__=='__main__':
    main()
mainWindow = MainDialig()
mainWindow.show()
import sys
from PyQt4 import QtGui, QtCore
from dialog1 import Ui_MainDialog

class MainDialig(QtGui.QWidget):
    def __init__(self, parent=None):
        super(MainDialig,self).__init__(parent)
        
        self.ui = Ui_MainDialog()
        self.ui.setupUi(self)
        ##############
        #Добавление функционала к элементам окна
        ##############

def main():
    app = QtGui.QApplication(sys.argv)

    mainWindow = MainDialig()

    # знак "=" не зря не выделен. Дело в том, что такая строка обязательна, но меняется то, что выделено. 

    mainWindow.show() 
    sys.exit(app.exec_())

if __name__=='__main__':
    main()

среда, 9 марта 2011 г.

netbeans если ШГ

Запускать netbeans, чтоб не ШГ, т.е. со сглаживанием и т.д. надо такой командой:
netbeans -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd_hrgb

воскресенье, 6 марта 2011 г.

Sorry, there have been more than 5 failed login attempts for this account. It is temporarily blocked.

Гуглил-гуглил-гуглил.... и нашел ответ. Надо удалить все записи из таблицы flood:
DELETE FROM flood;

Drupal 7 восстановление пароля

Столкнулся с проблемой восстановления пароля в drupal 7. Помню в 6ке пароли хешировались в md5, а в 7ке в sha512. Если есть доступ к БД друпала то все просто. В папке ./scripts лежит скрипт password-hash.sh. Использовать его крайне просто:
password-hash.sh "новый_пароль"
Потом поменять в таблице users хеш  пароля для своего пользователя.