LINUX.ORG.RU

Сообщения kulti

 

Можно ли запускать виртуальную машину, чтобы она не меняла образ?

Собсна сабж.

Более детальное описание: есть виртуальная машина с настроенным окружением. Можно ли запустить kvm в таком режиме, чтобы все изменения фс в виртуальной машине не писались обратно в образ? Да, можно решить задачу копированием образа или созданием ее с нуля, но возможно существуют более «прямой» способ?

Т.е. хочется чего-то вроде copy-on-write.

 , ,

kulti
()

association_proxy для одной таблицы

Есть отношение многое ко многим для одной таблицы, т.е. элементы в этой таблицы могут быть подъэлементами из той же таблицы.

Для этого сделал две таблички:

class Item(Base):
  __tablename__ = 'items'

  id = Column(String, nullable=False, primary_key=True)
  name = Column(String, unique=True, nullable=False)

  set_item = relationship("ItemSet", foreign_keys="ItemSet.set_id")
  item_set = relationship("ItemSet", foreign_keys="ItemSet.item_id")

class ItemSet(Base):
  __tablename__ = 'item_set'

  item_id = Column(String, ForeignKey('items.id', onupdate="CASCADE", ondelete="CASCADE"), primary_key=True)
  set_id = Column(String, ForeignKey('items.id', onupdate="CASCADE", ondelete="CASCADE"), primary_key=True)

  item = relationship("Item", foreign_keys='ItemSet.item_id')
  items_set = relationship("Item", foreign_keys='ItemSet.set_id')

Отношения вроде работают, а вот добавить association_proxy, чтобы сразу выбирались все подэлементы или элементы в которые входит текущий никак не выходит. Пробую что-то в этом духе:

  items = association_proxy(ItemSet.__tablename__, 'item')
  sets = association_proxy(ItemSet.__tablename__, 'items_set')
Но судя по результату для обоих используется отношение по item_id.

SqlAlchemy 0.8.1, python 2.7.5

 ,

kulti
()

Чем плох складной велосипед?

Был у меня обычный велосипед Kross какой-то тыщ за 15. На время ремонта пришлось его поставить на этаж. И вот вчера его украли.

Задумался о том, как бы место в квартире для нового найти. Первый вариант повесить за переднее колесо, поставив на козла, но не знаю, делают ли так и чем это чревато. Другой вариант - купить складной.

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

Какие минусы есть у складных велосипедов? И стоит ли брать полноразмерый велосипед с обычными колесами(24-26) или все-таки лучше небольшй и забавный с маленькими колесами? Катаюсь, в основном, на работу и в магазин.

 

kulti
()

Yet another backup tool

Я из тех, кто еще не делает бэкапы. Точнее код я храню в репозиториях не у себя, но всякие конфиги не бэкаплю, а надо бы.

Посмотрел на rdiff-backup и rsnapshot. И, честно, с ходу не понял, подходят они мне или нет. Про рдиф как-то совсем не хочется думать, т.к. Бекапы локальной машины (комментарий)

Про rsnapshot почитал на оффсайте, но так и не понял, как решить следующии две проблемы без велосипеда:

1. Например я хочу бэкапить на какой-то внешний диск, который подмонтирован далеко не всегда. Т.е. я хочу его примонтировать - забэкапить - отмонтировать. Для этого у них есть preexec и postexec, но они не будут выполнены при удалении старых бэкапов(ротации).

2. Он работает по типу крона, но ведь компьютер может быть выключен в момент, когда нужно бэкап сделать. Хотелось бы в этом случае делать бэкап по включении машинки.

Вообще, требования к бэкап туле у меня простые:

1. Чтоб монтировала, если нужно

2. Чтоб бэкапила «не по крону»

3. Чтоб работала не от рута

4. Возможность принудительного запуска бэкапа

5. Желательно бэкап в VCS Может проще свой велосипед написать?

 ,

kulti
()

Как бы выпилить nepomuk... или замаскирвать kde определенной версии?

В версии 4.11 kdelibs начал требовать nepomuk, при этом use semantic-desktop выпилен.

Первая идея была: запретить kde-4.11, но перечислять все пакеты - это ж ерунда какая-то. Почитав ебилды, попробовал выставить KDE_OVERRIDE_MINIMAL в 4.10.5 и замаскировать kdelibs-4.11.0. Но при обновлении системы , emerge все равно пытается тянуть 11 версию.

Вторая идея: окончательно отказаться от kde программ, которых я использую пяток по старой памяти. Но от kdevelop отказаться не могу.

Что посоветуете?

 , ,

kulti
()

IT-бизнес для одного человека

Какие варианты есть для микробизнеса(бизнес из одного человека)? Без инвестицей со стороны, т.е. вкладывая только своей труд и остатки своей зарплаты?

Я пришел к выводу, что для начала можно делать краткосрочные проекты в свободное от работы время. У меня уже есть один такой, активную работу над которым я практически закончил. С этим проектом мне повезло, т.к. это по сути для друга, у которого уже есть свой бизнес. А сейчас уже думаю, что бы еще поделать, но уже «без связей».

Думается мне, что нужно брать уже готовые площадки, т.к. в этом случае не нужно сильно заморачиваться на раскрутку, зарабатывание репутации и получение аудитории, а так же возиться с системами оплаты. Пока я вижу только три подходящих площадки:

  1. Соцсети. А именно социальные игры. Да, тут много минусов (флэш, аморальность сбора денег с 95% людей), но и плюсов дофига, а главное историй успеха (как большого, т.к. и совсем крошечного).
  2. Ютуб. Тут главная сложность, что мне неинтересно было бы делать что-то ориентированное на хомячков, т.е. большой аудитории не собрать, а, следовательно, не заработать, чтоб на жизнь хватало.
  3. Флэш игры на конгрегейтах и игры для мобильных устройств. Объединил в одну группу, т.к. либо зарабатываешь на рекламе, либо продаешь копии игры(сайт-локи).

Какие еще варианты в этом направлении есть?

С другой стороны все площадки с готовой аудиторией забирают себе бешеные проценты (вплоть до 70%). Понятно, за что они берут - раскрутиться самому с нуля не так-то просто.

Напоминаю, что я веду разговор об бизнесе для одно человека-по-сути-программиста. Что еще он может сделать, кроме интернет сервиса с платной подпиской и/или платными доп-услугами?

 

kulti
()

Библиотека для работы с превьюшками изображений

Чо-т я в этих ваших яваскриптах совсем заплутал. Нашел какой-то полудохлый скрипт для увелечения изображения при клике, но его нужно сильно допиливать, а изучать js совсем не хочется.

Наверняка есть библиотеки, с каким-нибудь простым, как бревно, интерфейсом и требующие несколько дополнительных строчек для инициализации и указания id контейнера, который нужно будет превьювить.

Ткните носом.

PS. и на сколько будет плохо с точки зрения лицензий, если я jQuery и прочие сторонние скрипты положу у себя? А то будут недоступны или поменяют что-нибудь там у себя, а тебе потом расхлебывать...

 ,

kulti
()

Легковесная очередь сообщений с python-api

Есть процесс, который «всегда» работает(вебсервер). Нужно из него класть в очередь сообщения, которые потом будут выбиратсья скриптом, запускаемом по крону. Всякие ынтырпрай монстры типа hornetq или rabbitmq использовать не хочется, т.к. нужно для небольшой нагрузки и на локалхосте.

Никаких готовых решений не нашел пока. Из более-менее адекватных идей - использовать sqlite для хранения очереди сообщений. С обычным файлом слишком много мороки вокруг нужно самому мутить.

Кто что посоветует?

 ,

kulti
()

Не сбрасывается счетчик уведомлений

Написано «Уведомления (1)». Тыкаю - попадаю в трекер, единичка пропадает. Перехожу на непрочитанное сообщение (или еще куда) - единичка возвращается.

kulti
()

Как бы попроще проверить foreign_keys?

Сначала скажу, почему меня не устраивает проверка во время комита.

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

Во-вторых, даже с включенной проверкой, сообщение об ошибке не объяснят, какого именно ключа нет. Просто пишет, что мол не смогло foreign-ключ собрать.

Вот, наговнокодил чуток. Повис, на том, как задать filter в последней строчке. Не могу выцепить класс модели для таблицы по foreign-ключу.

def check_foreign(session, obj):
  obj_table = obj.metadata.tables[obj.__tablename__]
  for (t_k, t_v) in zip(obj_table.columns.keys(), obj_table.columns.values()):
    for f_k in t_v.foreign_keys:
      (table, column) = f_k.target_fullname.split('.')
      f_v = getattr(obj, t_k)
      if f_v:
        f_t = obj.metadata.tables[table]
        print session.query(f_t).filter(getattr(f_t, column) == f_v)

 ,

kulti
()

Как заставить ноутбук стоять ровно?

Имеется ноутбук с металическим корпусом(из магниева сплава, Toshiba Portege Z930) и я хз, из-за чего он вдруг стал неровно стоять. Может всегда такой был, а я не замечал.

Передняя левая ножка поднимается буквально на 2 миллиметра, но этого более чем достаточно, чтобы иногда доставлять неудобства.

Ножки расположены, как 5 на кубике, но вроде центральная ножка не мешает. Вот думаю, где взять ровную поверхность с дырочкой, чтобы проверить, отрывать «лишнюю» ножку просто так не хочется.

Если смысл пытаться его «выпрямить», положив сверху какой-нить небольшой вес на ночь или несколько ночей? В этом случае за матрицу переживаю, ессно =) Может есть простой способ «нарастить» резиновую ножку?

Пробовал на разных ровных поверхностях. Следов стачивания на ножках не наблюдается.

 

kulti
()

Возвращать только изменившийся кусочек html'я

Предположим, есть некоторая html-страничка, на которой если что-то и меняется, то всего лишь одно число и/или пара слов.

Если это число или данные меняются редко и не так важна их точность, то можно генерить страничку и кэшировать на час/сутки.

Но если дело обстоит не так? Нарпимер, разные люди видят страничку по разному, т.к. пришли из разных мест (или кто-то что-то нажал). Можно ли и в этом случае не возвращать страничку, а говорить «304 Not Modified, но вот тут не 1, а 2»?

Для любителей конкретики: есть простенький интернет магазин, единственное, что меняется на страничке - это кол-во товаров в корзине.

 ,

kulti
()

Не применяется css

В корне сайта лежит my.css. В head добавлен тег:

<link type="text/css" rel="stylesheet" href="/my.css" />

На локалхосте все шоколадно. Когда деплою на хостинге, то css перестает применятся.

В access-логах видно, что css скачивается с 200 ОК (а потом 304, естественно).

Сайтик полная статика, крутится на lighttpd. В конфиге в mimetype css добавлен.

Почему css не применяется?

 

kulti
()

Барахлит засыпание ноута по всем фронтам

Засыпание при закрытии крышки ноутубка (Toshiba PORTEGE Z930-D3S) я всегда настраивал в acpi default.sh.

grep -q closed /proc/acpi/button/lid/LID/state && /usr/sbin/pm-suspend
Иногда, по неясным пока причинам, перестает засыпть. Т.е. закрываю крышку - засыпает. Открываю - просыпается. Потом опять закрываю - уже не засыпает. Иногда два раза засыпает - на третий нет.

Включал логирование и смотрел, какие event'ы ходят. После просыпания acpi, как язык отрезали. Перезапуск acpid не помогает.

Более того, если попытаться усыпить ноут, просто запустив pm-suspend, то может все зависнуть. Даже sysrq клавиши не работают...

Специально после такого зависона загрузился в флэшки и сохранил все логи. Ничего интересного в них не нашел.

Куда копать?

 ,

kulti
()

Собираюсь купить ноут - покритикуйте план настройки

Выбрал себе ультрабук. 1 мая пойду его смотреть вживую и, судя по всему, покупать.

Во-первых, хочу заглянуть в биос, чтоб там можно было UEFI отключить (вроде как можно, но лучше проверю). На что еще стоит обратить внимание? Вроде как все остальное (экран, клавиатура, внешний вид etc) чисто субъективные вещи.

Во-вторых, там только один диск (cd-привода тоже нет, второй не воткнуть) SSD, с которыми не имел еще счастья поработать. Свою генточку хочу настроить там так:

1. Диск делить на разделы не вижу смысла. 2. Файловая система - ext4. Монтировать с default,noatime,discard. Журнал не отключать, т.к. пишут, что discard работать не будет. 3. PORT_TMPDIR будет указывать куда-нить в /tmp (которая, в свою очередь, в tmpfs, естественно). 4. Все директории, что нужны portag'у замонтировать по nfs c домашнего сервера. При недоступности nfs (если я не дома, например, а надо засинкаться и собрать) замаунтить в tmpfs. 5. /usr/src тоже на сервак закинуть.

Единственное, что беспокоит - это /home. С одной стороны там много файлов, которые часто меняются. С другой - монтирование этого добра по nfs убивает всю мобильность девайса (ради чего он и покупается). Видимо нужно в tmpfs закинуть какие-нибудь кэши браузеров и других программ. А по поводу остального (то, что я там пишу код и компилирую) просто не париться.

В общем, подскажите, на что еще стоит посмотреть при покупке; чего еще подкрутить в системе, чтоб ssd раньше времени не сдох; и что можно сделать с хомяком.

PS. гентушную вики читал; это тоже.

 ,

kulti
()

Удаленная разработка в привычном окружении

Иногда бывает так, что основного компьютера нет под рукой, а поделать что-нибудь в уже привычном окружении хочется. Можно, конечно, таскать с собой флешку или ssd, но перегружаться в новую систему - это явный оверхед.

Какие есть варианты? Я придумал, но пока не реализовал на практике ни одного из следующих:

1. Заиметь статик-ip для основного компьютера. Минусы: комп должен быть всегда включен и исправен; нужно платить за ip.

2. Купить vps, настроить там все, а любая другая машинка используется, как тонкий клиент. Минусы: нужно еще больше платить. Платить лишнего не хочется, т.к. эта самая возможность порабоать удаленно не очень часто нужна.

3. Написать скриптов для настройки окружения. Минусы: вряд ли получится с первого раза написать как надо, а вылавливать все грабли на новом окружении как-то не очень приятно.

4. Сделать виртуалку и положить ее образ на какой-нибудь дропбокс или гугло-диск. Минусы: нужно не забывать ее выключать на одной машине, прежде чем юзать на другой.

kulti
()

Постоянно крутится куллер

Умер у меня куллер в ноуте. Оказалось, что купить такой же почти нереально. Купил другой, вроде как подходящий. Но проблема в том, что он крутится не переставая. Т.е. биос стартанул, куллер запустился и все. Крутится на полных оборотах до сих пор.

Можно ли что-нибудь сделать? Или дело скорее всего в контроллере на материнской плате, который не ожидал такого подарка?

kulti
()

Чем бы себя с пользой развлечь

Суть такова: вот уже почти год каждую субботу мы всей семьей целенаправленно проводим 6 часов без компа. В это время мы играем в настольные игры (вплоть до DnD), делаем работу по дому, несколько раз собирали модели etc. Лично я в это время еще читаю, проектирую что-нибудь.

Собственно вопрос, чем бы еще таким интересным заняться, чтобы и польза была (для дома, мозга, здоровья или еще чего-нибудь) и чтобы результаты труда не складировались (модели - это интересно и для мелкой моторики/пространственного воображения хорошо, но они слишком много места зря занимают).

В общем, посоветуйте хобби, чтобы руками что-то делать и чтобы результаты место зря не занимали (выкидывались, полезно или повтороно использовались).

 ,

kulti
()

При работе с PostgreSQL тормозит сеть

Изучая производительность базы данных на наших задачах был удивлен, что тормозит сеть. Сделал простой тест, дабы убедиться.

PQexec(conn, "NOTIFY a");
PQexec(conn, "begin;NOTIFY a;commit");

Что первый, что второй вариант, выдают порядка 15000 раз в секунду. Но, если разбить вторую строчку на три запроса:

PQexec(conn, "begin");
PQexec(conn, "NOTIFY a");
PQexec(conn, "commit");
То будучи разделенными они выдадут всего 5000 раз в секунду.

Как я понял, никакого способа общаться с PostgreSQL-сервером кроме как через сокет нет. Или все-таки есть?

Может, как-то можно затюнить сам юникс сокет?

Вариант объеденять запросы в один не подходит(придется править odbc-драйвер и кучу нашего кода).

 , ,

kulti
()

Как проще всего создавать и препроцессить 3d-модели

Понадобилось мне тут отобразить 3d-модели. Их несколько и они перекрывают друг друга. Пока тренируюсь (играюсь) на кубике. И, как я понял, OpenGL сам невидимые грани мне не отрежет. Придется химичить самому (с этим разобрался).

Т.к. моделей у меня ограниченное кол-во и каждая из них будет просматриваться с определенного ракурса, то можно заранее обработать модель, отрезав все ненужное. А потом просто отсортировать объекты на сцене по степени удаленности от наблюдателя и рисовать с самой дальней.

Понятно, что все равно придется нарисовать лишнего (особенно, если объект вообще перекрыт другими моделями. Но это, в принципе, не проблема. А проблем у меня две:

1. Насколько мой подход коряв? Или может красив? =)

2. В какой формат лучше всего экспортировать 3d модели (и анимацию), чтобы потом легко достать mesh?

PS. Если кто посоветует, как по быстрому освежить в памяти линейную алгебру, тоже буду признателен. А то за давностью лет подзабылась...

 , , псевдо-3d

kulti
()

RSS подписка на новые темы