LINUX.ORG.RU

Сообщения Siado

 

Какие системы видеонаблюдения есть под Linux для IP-камер?

Из бесплатных есть motion+mencoder и Zoneminder. Но второе оставляет желать лучшего. Из платных и серьезных есть Netavis Observer.

На какие решения еще можно обратить внимание?

 , ,

Siado
()

Рисовалка блок-схем с возможностью декомпозиции

Есть такая в природе? Единственное что нашел - это ramus. Но оно узко специализировано под IDEF

 

Siado
()

Задача для сисадминов, кому скучно

Задача:

Имеется парк машин и 1 сервер. На машинах крутится винда, под виндой крутится vmware в которой: одна виртуалка под Винду, другая виртуалка под линукс. Сделано это для того, чтобы если винда в виртуалке «засирается», а засирается она не реже раза в неделю - то можно очень просто взять и вернуть машину в исходное состояние. А сервер просто раздает себе интернеты.

Из такого условия сразу видно, что винда в виде пускалки vmware нафиг в этом деле не нужна и следует заменить ее на что-то более вменяемое.

А что-то более вменяемое для таких задач - это легковесная десктопная система, которая после полной загрузки показывает всего три кнопки: «Запустить виртуалку с виндой», «Запустить виртуалку с линуком» и «выключить/перезапустить компутер» Ну можно еще часы на пол экрана добавить и нескучные обои.

Так вот для этого требуется:

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

2. Установить туда lightdm

3. Установить туда openbox

3. Сделать чтобы пользователь автоматически логинился после запуска.

4. Накатить VirtualBox, разобраться с атоподключением USB флешек

5. Сделать из опенбокса «конфетку»: Оставить всего три вышеперечисленные кнопки и запретить пользователю управлять окнами - т.е. чтобы пользователь мог только выйти из программы, чтобы попасть на раб. стол., а все приложения запускать в полноэкранном виде

Ну а сервер будет управлять всеми этими машинами через ssh и хранить непорченные образы виртуалок.

З.ы. собственно вся задача состоит в создание конфига openbox для такой затеи.

З.ы.ы.

Выкладывайте конфиги в комментах =)

 , ,

Siado
()

Как преобразовать формулы в текст?

Необходимо достать из большого документа все формулы (libreoffice Math) и показать их «исходный текст»?

 

Siado
()

А вы знали, что раби на столько плох

Что даже библиотеку для тестирования раби-кода назвали соответствующе: https://rubygems.org/gems/bullshit/versions/0.1.3

 

Siado
()

1.338, 1.099

А что мы все о рубле да о рубле. А давайте про евру?

           01/07/2014    06/04/2015    %
eur/rub    46,75         60,729        29,9016042781
usd/rub    34,2615       55,28         61,3472848533
eur/usd    1,338         1,099         -17,8624813154

Как оно сейчас в европе? Сильно все подорожало?

 , ,

Siado
()

Как посмотреть лоркод на вставук картинок?

Сабже

Перемещено JB из talks

 

Siado
()

Выпуск графического тулкита GTK+ 3.16.0 с возможностью отрисовки через OpenGL

В GDK (GIMP Drawing Kit) встроена поддержка OpenGL, которая позволяет организовать отрисовку через OpenGL без использования внешних надстроек. Для рендеринга через OpenGL представлен новый виджет GtkGLArea, который ранее распространялся в виде внешнего дополнения. В обиход введён новый тип объекта GdkGLContext, который позволяет прикрепить контекст OpenGL к определённому окну GdkWindow и использовать команды OpenGL для отрисовки произвольных элементов GTK+ в данном окне. Реализация позволяет использовать OpenGL для отрисовки в окружениях X11 и Wayland через libepoxy с использованием GLX или EGL.

http://www.opennet.ru/opennews/art.shtml?num=41890

З.ы. оформите кто-нить новость

 ,

Siado
()

А можно ли добавить свою информацию к выхлопу iw <dev> scan ?

Сабж. Можно к AP добавлять свою инфу, кроме SSID, чтобы она была видна wi-fi клиентам при сканировании сети?

Что бы было как-то так:


$iw wlan0 scan
BSS f8:1a:12:e2:0f:33(on wlan0)
	TSF: 653461974831 usec (7d, 13:31:01)
	freq: 2417
	beacon interval: 100 TUs
	capability: ESS Privacy ShortPreamble ShortSlotTime (0x0431)
	signal: -84.00 dBm
	last seen: 0 ms ago
	Information elements from Probe Response frame:
	SSID: Ololo
	Custom Info: blablabla
	...

 , ,

Siado
()

Любителей электроники тред. Где взять проволку 0,75 мм?

В каких проводах обитает медная проволока диаметром 0,75 мм? Просто пойти купить - не катит, в продаже отсутствует, никак не могу найти. Витая пара не подходит, она 0,5 мм.

 проволока

Siado
()

Netgear WNR2200, запорол конфиг OpenWRT.

Прошил роутер WNR2200 (в магазине обзывался WNR2200-100RUS), установил опенврт с помощью такого рецепта:

1. Прошил dd-wrt
2. Стер dd-wrt (mtd erase linux)
3. Зашел в режим восстановления (30 сек при загрузке жать reset)
4. Через tftp залил OpenWRT

После прошивки все норм работало, но я решил «восстановить» конфиг от старого роутера с OpenWRT. После такого «восстановления» WNR2200 превратился в кирпич.

Наблюдается следующее:

При включении пингуется первые несколько секунд по адресу 192.168.1.1 с сообщением: Warning: time of day goes back, taking countermeasures

Прекращает пинговаться, через несколько секунд прохотят 5-6 нормальных пингов к 192.168.1.1. И замолкает.

Режим восстановления OpenWRT не работает, tcpdump молчит, кнопка reset никак не реагирует. В интернетах (http://bluesrocker.livejournal.com/2519.html) пишут, что кто-то умудрился восстановить закоротив некоторые контакты, но у меня такой вариант не прокатывает вообще.

Есть еще возможность его восстановить не прибегая к пайке?

 ,

Siado
()

Разыскиваются VDS/VPS в России?

Где дешевле всего?

 ,

Siado
()

Разыскивается экранный транспортир

Сабж. Чтобы была возможность мерять углы в градусах.

 ruler,

Siado
()

Кто-нить строил сеть на powerline адаптерах?

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

Говорят что очень сильно реагируют на какие-либо помехи в сети.

З.ы. а еще соместимо ли такое оборудование от разных производителей/моделей?

З.З.ы. Эти девайсы работают только в паре? Или можно сделать сеть одновременно из трех девайсов?

 

Siado
()

Юристам ЛОРа. Попадает ли деятельость под ФЗ «О связи»

Есть офис в котором размещен сервер. Офис имеет доступ к сети интернет и белый IP-адрес. На сервере планируется сделать платную услугу резервного копирования и/или хранения данных в облаке. Требует ли такая деятельность лицензирования?

 

Siado
()

А как называется интернет через лазерную установку?

Знаю что можно передавать инет с помощью лазреных установок, что-то навроде WiFi но граздо более стабильнее. Но никак не могу нагуглить где и почем купить такие установки, как их ставить плюсы/минусы и т.д. Гуглконгфу оказалось недостаточно прокачанным. Подскажите кто знает.

 , ,

Siado
()

Подкорректируйте SQL-запрос

Подкорректируйте запрос с JOIN'ами.

Вот такая простенькая база данных:

CREATE TABLE "house" (
"id" INTEGER NOT NULL PRIMARY KEY, 
"name" VARCHAR(255) NOT NULL, 
"location" VARCHAR(255) NOT NULL)

CREATE TABLE "contract" (
"id" INTEGER NOT NULL PRIMARY KEY, 
"name" VARCHAR(255) NOT NULL, 
"house_id" INTEGER NOT NULL, 
FOREIGN KEY ("house_id") REFERENCES "house" ("id"))

CREATE INDEX "contract_house_id" ON "contract" ("house_id")

CREATE TABLE "accrual" (
"id" INTEGER NOT NULL PRIMARY KEY, 
"datestamp" DATE NOT NULL, 
"value" REAL NOT NULL, 
"contract_id" INTEGER NOT NULL, 
FOREIGN KEY ("contract_id") REFERENCES "contract" ("id"))

CREATE INDEX "accrual_contract_id" ON "accrual" ("contract_id")

CREATE TABLE "payment" (
"id" INTEGER NOT NULL PRIMARY KEY, 
"datestamp" DATE NOT NULL, 
"value" REAL NOT NULL, 
"contract_id" INTEGER NOT NULL, 
FOREIGN KEY ("contract_id") REFERENCES "contract" ("id"))

CREATE INDEX "payment_contract_id" ON "payment" ("contract_id")

Вот такой запрос к базе данных отрабатывает отлично:

SELECT "t1"."id", "t1"."name", "t1"."location", 
  Count(Distinct("t2"."id")) AS ccount, 
  Sum("t3"."value") AS all_payments 
FROM "house" AS t1 
LEFT OUTER JOIN "contract" AS t2 ON ("t1"."id" = "t2"."house_id") 
LEFT OUTER JOIN "payment" AS t3 ON ("t2"."id" = "t3"."contract_id") 
GROUP BY "t1"."id", "t1"."name", "t1"."location"

А здесь начинаются проблемы. При попытке указать в запросе еще один join - то данные начинают дублироваться и не правильно суммируются, результат Sum(«t4».«value») AS all_accruals завышен в несколько раз.

SELECT "t1"."id", "t1"."name", "t1"."location", 
  Count(Distinct("t2"."id")) AS ccount, 
  Sum("t3"."value") AS all_payments, 
  Sum("t4"."value") AS all_accruals 
FROM "house" AS t1 
LEFT OUTER JOIN "contract" AS t2 ON ("t1"."id" = "t2"."house_id") 
LEFT OUTER JOIN "payment" AS t3 ON ("t2"."id" = "t3"."contract_id") 
LEFT OUTER JOIN "accrual" AS t4 ON ("t2"."id" = "t4"."contract_id") 
GROUP BY "t1"."id", "t1"."name", "t1"."location"

З.ы. Как правильно составить SQL-запрос чтобы получить необходимые данные: правильное суммирование payment и accrual к каждой записи.

SQL сгенерировался через ORM, вот вся БД:

# encoding: utf-8
# dependencies:
# pip install peewee

from peewee import SqliteDatabase, Model, CharField, DateField, ForeignKeyField,\
                   FloatField, fn, SelectQuery, JOIN_LEFT_OUTER
import datetime
from random import randint

db = SqliteDatabase('test_pw.db')

class House(Model):
   
    name = CharField()
    location = CharField()
    class Meta:
        datadb = db
 
class Contract(Model):
   
    name = CharField()
    house = ForeignKeyField(House, related_name='contracts')
    class Meta:
        datadb = db
 
class Payment(Model):
   
    datestamp = DateField()
    value = FloatField()
    contract = ForeignKeyField(Contract, related_name='payments')
    class Meta:
        datadb = db
 
class Accrual(Model):
   
    datestamp = DateField()
    value = FloatField()
    contract = ForeignKeyField(Contract, related_name='accruals')
    class Meta:
        datadb = db
 
 
def fill_db():
    models = [House, Contract, Accrual, Payment]
    db.drop_tables(models, safe=True)
    db.create_tables(models)
    
#     for i in models:
#         print i.sqlall()
    
    houses = [{'name': u'TestHouse', 'location': 'Yellow street'},
              {'name': u'GreenHouse', 'location': 'Green street'},
              {'name': u'OpenHouse', 'location': 'Blue street'},]
    
    contracts = [{'name': u'Contract01', 'house': 1},
                 {'name': u'Contract02', 'house': 1},
                 {'name': u'Contract03', 'house': 1},
                 {'name': u'Contract04', 'house': 2},
                 {'name': u'Contract05', 'house': 2},
                 {'name': u'Contract06', 'house': 2},
                 {'name': u'Contract07', 'house': 2},
                 {'name': u'Contract08', 'house': 3},
                 {'name': u'Contract09', 'house': 3},]
    
    def generate_accruals(howmuch):
        temp_list = []
        base_date = datetime.datetime.today()
        
        for i in range (howmuch):
            data = {}
            data['datestamp'] = base_date - datetime.timedelta(days=i)
            data['value'] = randint(100, 500)
            data['contract'] = randint(1,len(contracts))
            temp_list.append(data)
        return temp_list
  
    accruals = generate_accruals(20)
    payments = generate_accruals(20)
  
    def summ_data(data):
        tmp = 0
        for item in data:
            tmp+=item['value']
        return tmp
    
    print 'Total accruals:', summ_data(accruals)
    print 'Total payments:', summ_data(payments)

    with db.transaction():
        House.insert_many(houses).execute()
        Contract.insert_many(contracts).execute()
        Payment.insert_many(payments).execute()
        Accrual.insert_many(accruals).execute() 

fill_db()

query = SelectQuery(House,
                    House,
                    fn.Count(fn.Distinct(Contract.id)).alias('ccount'),
                    fn.Sum(Payment.value).alias('all_payments'),
                    fn.Sum(Accrual.value).alias('all_accruals'),
                    )\
        .join(Contract, JOIN_LEFT_OUTER)\
        .join(Payment, JOIN_LEFT_OUTER)\
        .switch(Contract).join(Accrual)\
        .group_by(House)
        
# print query.sql()

for item in query:
    print item.name, item.location, item.ccount, item.all_payments , item.all_accruals


Результат:

Total accruals: 6291 # всего начислений Total payments: 5656

TestHouse Yellow street 3 5127.0 4065.0 # только в одной записи начислений 5127 GreenHouse Green street 4 6017.0 5525.0 OpenHouse Blue street 2 2171.0 1522.0

Всего начислений после запроса: 13315

 , ,

Siado
()

peewee умеет запросы с арифметическими операциями?

Как в peewee сделать стандартный для SQL запрос на вроде такого:

SELECT OrderID, 
       ProductID, 
       UnitPrice*Quantity AS "Regular Price", 
FROM order_details;

Умеет peewee вообще такое? Как-то в документации глухо.

 , , ,

Siado
()

Подскажите, как сделать такой запрос в peewee

Есть три таблицы:

class House(Model):
    
    name = CharField()
    location = CharField()
    class Meta:
        datadb = db

class Contract(Model):
    
    name = CharField()
    surname = CharField()
    house = ForeignKeyField(House, related_name='contracts')
    class Meta:
        datadb = db

class Payment(Model):
    
    datestamp = DateField()
    Value = FloatField()
    contract = ForeignKeyField(Contract, related_name='payments')
    class Meta:
        datadb = db

Как в один запрос вывести таблицу такого содержания:

house.name, house.location, total_contracts(count), all_payments_sum 

 ,

Siado
()

Разыскивается игрушка для ленивых. Чтобы за меня играл компутер.

Какие есть игрушки, где относительно просто написать бота и наблюдать за его игровым процессом? =)

Сразу вспоминается онлайн-игра Ragnarok Online, а к ней проект Openkore. Можно дописать на перле поведение бота.

Что еще эдакого есть?

 ,

Siado
()

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