суббота, 24 апреля 2010 г.

Стул в Blender из скрипта на python

Задача
Нарисовать стул в Blender из скрипта на python.
Решение
from Blender import *

# Clean scene
def newactivescene():
    sc = Scene.New()
    oldsc = Scene.GetCurrent()
    sc.makeCurrent()
    Scene.Unlink(oldsc)
    return sc

sc = newactivescene()

# Camera
camera = Camera.New()
camob = Object.New('Camera')
camob.link(camera)
sc.link(camob)
camob.setLocation(3.5,-5,5.8)
camob.setEuler(60*2*3.14/360,0,30*2*3.14/360)
sc.setCurrentCamera(camob)

# Lamp
lamp = Lamp.New('Sun')
lampob = Object.New('Lamp')
lampob.link(lamp)
sc.link(lampob)
lampob.setLocation(2,-2.5,7)
lampob.setEuler(60*2*3.14/360,0,30*2*3.14/360)

# Legs height, weight
height = 1.9
weight = 1.8
# Legs
sc.objects.new(Mesh.Primitives.Cylinder(100,0.5,height)).\
setLocation(-weight/2,weight/2,height/2)
sc.objects.new(Mesh.Primitives.Cylinder(100,0.5,height)).\
setLocation(weight/2,weight/2,height/2)
sc.objects.new(Mesh.Primitives.Cylinder(100,0.5,height)).\
setLocation(weight/2,-weight/2,height/2)
sc.objects.new(Mesh.Primitives.Cylinder(100,0.5,height)).\
setLocation(-weight/2,-weight/2,height/2)
# Seat
sc.objects.new(Mesh.Primitives.Plane(weight+0.5)).\
setLocation(0,0,height)
# The back of
ob = sc.objects.new(Mesh.Primitives.Plane(weight+0.5))
ob.setLocation(0,(weight+0.5)/2,height+(weight+0.5)/2)
ob.setEuler(90*2*3.14/360,0,0)

Window.RedrawAll()

воскресенье, 11 апреля 2010 г.

Удаление содержимого html по маркеру в тегах на языке python

Задача
Оставить в строке, содержащей html код, всё кроме содержимого тегов (и самих тегов) помеченных определенным маркером ("ignoremarker").

четверг, 4 февраля 2010 г.

Stunnel выручил

Преамбула
Обслуживая один удаленный веб-сервис с доступом only HTTP, решил изменить (не без оснований) настройки cookies. В частности, переключил настройку cookies с cookies over HTTP на only secure cookies (over HTTPS).

воскресенье, 31 января 2010 г.

Subversion 1.6.9 - svn:externals

$ svn propset svn:externals 'object svn://svnserver/externalrepos/object' .
Теперь object внешняя по отношению к данному репозиторию с содержимым из svn://svnserver/externalrepos/object.
Надеюсь в следующих версиях синтаксис изменится.

пятница, 21 августа 2009 г.

Полное копирование таблиц Lua

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

пятница, 3 июля 2009 г.

Смена имени пользователя и домашней директории в Linux

Исходные данные
Имя пользователя : suser
Домашняя директория : /home/suser

Задача
Сменить suser -> duser
Сменить /home/suser -> /home/duser