Архив автора: admin

изменяемый объект в аргументах

Тема замусолена до невозможности, но не удержался увидев код Request

def func(f, l=[]):
    l.append(f)
    return l

func является потенциально опасной. Смотрим что происходит при её использовании

>>> print(func(1))
[1]
>>> print(func(2))
[1, 2]


l ссылается на один и тот же объект, который все время и изменяется (вспоминаем концепцию python)

Решение очевидное — определить список в функции

Такое решение используется и в популярном фреймворке request

class Request(RequestHooksMixin):
    def __init__(self,
        method=None,
        url=None,
        headers=None,
        files=None,
        data=None,
        params=None,
        auth=None,
        cookies=None,
        hooks=None):

        # Default empty dicts for dict params.
        data = [] if data is None else data
        files = [] if files is None else files
        headers = {} if headers is None else headers
        params = {} if params is None else params
        hooks = {} if hooks is None else hooks

Ссылки

https://github.com/kennethreitz/requests/blob/master/requests/models.py

Автор: Евгений Курочкин

Медитация Художник своей жизни

Художник своей жизниВы давно рисовали? Просто так, от души…как рисуют дети, не особенно переживая, что они не умеют и у них что-то не получится. А ведь творчество раскрывает скрытые резервы и таланты, проявляя все самое лучшее, что есть в Вас. И сегодня у Вас будет возможность проявить себя и ощутить сполна в роли настоящего художника – Художника своей жизни!

Читать

Как поднять свой внутренний ресурс за 1 минуту?

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

Как можно быстро зарядить свою внутреннюю батарейку и поднять свой ресурс?

Для этого есть специальная формула У4П из 5 составляющих ее действий!

 

Читать

Разговор Души с Богом

Molitva Bogy— Алло, здравствуйте! Могу я поговорить с Богом?
— Здравствуйте! Соединяю!
— Здравствуй, Душа моя! Я внимательно слушаю тебя!
Господи, впереди Новый год! Прошу Тебя, исполни мои желания!
— Конечно, дорогая, все, что угодно! Но сначала, я тебя соединю с отделом исполненных желаний: постарайся понять, какие ты допускала ошибки в прошлом!
Читать

Подготовка образов HDD с DOS для IPMI

Как удаленно прошить BIOS системной платы или контроллер через IPMI?
В большинстве случаев для этого нужен DOS, но некоторые контроллеры нужно шить в EFI shell. При наличии физического доступа к серверу всегда есть дежурная флешка с DOS. Для удаленного способа нам придется подготовить образ загрузочного HDD с DOS, это проще и удобнее, чем готовить ISO-образ. IPMI в современных платах Supermicro может использовать в качестве Virtual Media образы HDD.
Тривиальная задача, но начинающих администраторов может поставить в тупик. Для начала нам понадобится дистрибутив MSDOS (некоторые платы не шьются под FreeDOS) и любой гипервизор. В данном случае будем использовать VirtualBox, но подойдет, естественно, любой, где запускается DOS и с которым вам удобно работать. Версию MSDOS лучше всего взять с поддержкой длинных имен, например 7.1.

Создаем ВМ с диском, достаточным для размещения образа BIOS. Размер образа для современных плат Supermicro X9 — 16МиБ, можно создать диск с небольшим запасом — 20МиБ. Добавляем установочный ISO c DOS.

Уверен, что с такой увлекательной и сложной задачей, как установка DOS вы можете справиться самостоятельно. Финальная задача — получить удобный способ работы с образом: добавлять/убирать из него файлы с прошивками. IMHO, это удобно делать в Linux. Для начала нужно конвертировать образ диска из формата VDI в простой «сырой» образ:

VBoxManage clonehd -format RAW dos.vdi dos.raw

Далее возникает небольшая проблема. Сразу смонтировать образ не получится, так как монтировать нужно не диск целиком, а раздел на нем. Для этого нужно узнать его смещение. Сделать это можно при помощи parted. Командой unit задаем единицу измерения (в байтах) и командой print выводим информацию о разделах.

[root@stand ~]# parted dos.img
GNU Parted 2.1
Using /root/dos.img
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit B
(parted) print
Model:  (file)
Disk /root/dos.img: 20971520B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number Start End Size Type File system Flags
1 32256B 20643839B 20611584B primary fat16 boot

(parted)

Нужное смещение — 32256 байт. Можно монтировать:

mkdir /mnt/disk1
mount -o loop,offset=32256 -t vfat dos.img /mnt/disk1

Копируем прошивки и еще какие-нибудь полезности (например, VC или NC, прописываем автозапуск в autoexec.bat), размонтируем образ, и можно грузиться:

При большом количестве администрируемых серверов можно грузить образы при помощи PXELinux, благо он поддерживает загрузку сжатых через gzip образов.

Автор: Dmitry Nosachev

Ельцин и питон

В доке питона по sqlite3 обнаружил Ельцина

import sqlite3

 

con = sqlite3.connect(":memory:")
cur = con.cursor()
cur.execute("create table people (name_last, age)")

 

who = "Yeltsin"
age = 72

 

# This is the qmark style:
cur.execute("insert into people values (?, ?)", (who, age))

 

# And this is the named style:
cur.execute("select * from people where name_last=:who and age=:age", {"who": who, "age": age})

 

print cur.fetchone()


Судя по дате создания модуля sqlite — это именно Борис

Ссылка

 

https://docs.python.org/2/library/sqlite3.html#cursor-objects

Автор: Евгений Курочкин