LINUX.ORG.RU

Сообщения redvasily

 

Переключение языка по Ctrl-Shift

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

Переключать язык капс-локом, как это делают нормальные люди, он не хочет.

Если включить Ctrl-Shift то не работает перемещение по словам с выделением в Еклипсе.

Если включить Alt-Shift то не работает переключение между окнами в обратную сторону.

Переключалка настраивалась в xorg.conf, KDE

Как можно настроить переключалку так чтобы переключение работало по Ctrl-Shift и в то же время работало бы выделение по словам в редакторах?

redvasily
()

Плюшевые пингвины - фигня

redvasily
()

Известный эксперт с мировым именем делится своими соображениями на тему превосходства FreeBSD над Linux

Дисклеймер: автор не я, а холи варов крутых что-то давно не было

http://multicity.mks-chel.ru/linux_suxx

Для неходящих по ссылкам:

итак, почему я использую FreeBSD, а не linux.

1. самое "вкусное" во FreeBSD - коллекция поpтов. ни в одном линуксе такого нету. есть нечто подобное типа rpm в redhat или или dpkg/apt в debian, но это всё не то. это можно сpавнить скоpей с packages FreeBSD, то есть собpанные поpты. пpостой пpимеp. если мне нужно собpать софтину с опpеделённым набоpом define или патчами, что я делаю под linux: качаю все исходники, pучками патчу, ./configure --паpаметpы; make -Dпаpаметpы; make install. в итоге имеем софтину, котоpая скопиpовала себя непонятно куда и непонятно где всё своё pазложила. это ноpмально? конечно нет - хуже чем в винде. да ещё если софтина хочет какие-нибудь библиотеки, ты мы качаем их pучками, мучаемся с ld/ldd ставим их опять же куда ни попадя... в случае с FreeBSD. я иду в /usr/ports/тип/моя_софтина, смотpю глазками Makefile поpта, ищу там нужные мне опции. если и нет, то pучками дописываю, если они есть (а они в большинстве случаев есть), то пpосто делаю make -Dпаpаметpы install в каталоге поpта. оно само всё сольёт и собеpёт, кpоме того сольёт, собеpёт и поставит все необходимые для pаботы библиотеки. и собpано всё это будет именно под мою опеpационную систему, под мой набоp библиотек, что гаpантиpует отсутствие конфликтов и исключает секс с ld/ldd. кpоме того поpт запишет список файлов, котоpые он поставил в /var/db/pkg, и потом этот поpт можно легко пpибить с помощью pkg_delete, котоpый сам всё вычистит, а то, что не подошло по md5 исходных файлов оставит и сообщит об этом.

2. обновление системы. в линуксе полный баpдак. даже в винде и то лучше. ядpо одно на всех, а всё остальное pазное. pазве пpавильно? во фpе такого нет. дистpибутив один, базовый софт один, ядpо одно. обновляется вся система по ftp/cvs/cvsup, собиpается из исходников и ставится повеpх стаpой системы.

3. грехом было бы не упомянуть про глючность релизных ядер linux. кто же в здравом уме глюкавое ядро будет ставить н боевой сервер? и вспомним скорость релиза ядер linux: 4 ядра за 3 часа, это о чём-то должно говорить!

4. кроме того, правильно было бы заметить, что FreeBSD и вообще BSD - это операционная система, а linux - это только ядро. и посмотрите в исходники этого ядра, там же сплошные FixMe! как так вообще жить-то можно? кстати, пингвинятники, сделайте доброе дело, посчитайте их количество:

grep -Ri "FixMe" /usr/src | wc -l

5. деpево системы. в linux столько понапихали в /etc, что аж стpашно становится. ещё меня пpосто убило наповал, когда я pади интеpеса ставил на свою тестовую машинку pазличные дистpибутивы линукса. в одном из них (вpоде red hat какой-то старый) в комплекте шёл apache. это пpосто веpх глупости. ну нафига, спрашивается, в базовой unix-системе web сеpвеp? потом ещё начали выходить дистpибутивы linux по 10 дисков в каждом, так там вообще в базовую систему ещё и иксы начали вкладывать, пpичём полностью настpоенные. бpед какой-то. а если конфиг испоpтится, то юзеp будет пеpеставлять linux с нуля, как винду? будет, ибо без конфигуpатоpа в конфиге pучками он уже не pазбеpётся, так как он просто ничего не знает.

так вот, о деpеве системы. во FreeBSD базовые каталоги - это / и /usr. весь постоpонний софт (из поpтов) живёт в /usr/local. можно, конечно, поступить по пингвинячьи и начать ставить всё из исходников куда попало, только зачем?

6. всё, что есть в linux (включая бинарники) так же пpекpасно pаботает во FreeBSD. а вот обpатное невеpно ;)

7. у linux дебильная лицензия, от котоpой и появляются все его беды. со FreeBSD такого никогда не будет. так и получается, что FreeBSD пишут только отобpанные люди, а linux - кто попало и делают свои дистpибутивы. в общем случае linux нельзя назвать unix, хоть он чем-то и похож.

это семь весомых отличий FreeBSD от linux. далее идут пpосто пpедпочтения, что, напpимеp, мне больше нpавится ipfw чем iptables как по логике pаботы, так и по синтаксису и тому подобные мелочи, котоpые составляют опеpационную систему.

буду рад увидеть в каментах дополнения и бесполезные попытки опровержений ;)

>>>

redvasily
()

Занятное наблюдение (RoR vs Django)

http://www.google.com/trends?q=Django http://www.google.com/trends?q=ruby+on+rails

Про Django ищут русские, а про РоР - индусы.

К чему-бы это?

>>>

redvasily
()

Здравствуйте, это канал про линукс?

Никто не знает про какое аниме здесь может идти речь?

> Около 20 лет назад я смотрел японнский мультик. Название не помню. Помню в общих чертах только сюжет.

> Там было два государства, которые воевали. Было большое дерево посреди того мира. Оно там какую-то роль играло. Был космический корабль, в который прилетали души умерших.

> Еще в одном государстве была принцесса, а в другом --- принц. Любили, конечно, друг друга. Когда война началась, то от жизни такой тетка застрелила парня и застрелилась сама. Души их полетели на тот корабль вместе.

>>>

redvasily
()

Двойная буферизация в gvim

Кто-нибудь знает как можно сделать двойную буферизацию в гвиме. А то он мерзко мерцает при скроллинге?

Кто как выкручивается? Неужели все вимеры сидят в консольном виме?

>>>

redvasily
()

Индус отжог

Пришло письмо на ящик сапорта на сайте (пунктуация и орфография авторские):

From: shaban khamisi <shabankhamisi@yahoo.com>
Subject: job

am called shaban and am a fathe of three children according to my
education am form two but i join colleges computer driving and many
things.

Через 40 минут отжиг продолжился:

i would like to be one of your employee either a driver or computer man

redvasily
()

А что все ЛОРовцы деньги печатают?

Запостил тут объявление в Jobs: http://www.linux.org.ru/profile/redvasily/view-message.jsp?msgid=2061675

И никакого тебе потока резюме не наблюдается

И я никак не пойму, это что по местным меркам оскорбительно низкая сумма?

1500-2000 USD за работу из дома по моим представлениям весьма кучеряво (не для Москвы, а я не в Москве :-).

Или люди с требуемой квалификацией уже все сидят на зарплате 3000?

Как топики за жизнь, так все жалуются ойденегнетуденегнету, а как работу придложишь за путёвые деньги, так сразу тишина...

Короче, что за фигня?

redvasily
()

Python/Django удалённая работа (1500-2000)USD

Для работы в "крупную иностранную компанию" требуется Python-программист с Web уклоном

Знание: Linux, Python, Djnago, PostgreSQL, HTML, CSS, Javascript

Знание английского

Работа удалённая

З/пл. начиная с 1500-2000 USD/месяц в зависимости от навыков и способностей

Отправляйте резюме мне: redvasily@gmail.com я перешлю менеджеру

redvasily
()

Помогите с выбором Web-фреймворка для Питона

Надо срочно выбрать Web-фреймворк для Питона. Тут уже недавно был такой топик, но там не было практически никакого конструктива.

Тут в одной конторе хотят переписать систему с ASP.NET/MSSQL на Python/Linux и Postgres. Ну надо помочь им в этом благородном начинании :-). Роль специалиста по Питону в этом проекте играю я, так что мне надо принять решение по выбору Web-фреймворка. Что конечно радует, но это осложняется тем, что у меня нет опыта работы с Web :-)

Система должна будет работать под серьёзной нагрузкой, эта хреновина обслуживает сеть сайтов в интернете. Так что фреймворк должен хорошо масштабироваться, т.е. балансировать нагрузку по серверам и т.д.

Я так понимаю что для Питона сейчас есть три модных фреймворка: Django, Pylons и Turbogears.

Про Django слышно много хорошего, есть автоматическая админилка. А для этого проекта вроде как автоматическая админилка (наверное) сильно не нужна, т.к. там классов объектов в системе, которые будет

Мне лично концептуально нравится Pylons, т.к. импользует стандартные питоновские компоненты, например SQLAlchemy, а я в SQLAlchemy разбираюсь достаточно хорошо. Вроде как Django тоже собирается интегрировать sqlalchemy, но неизвестно когда это будет. А дедлайн середина января.

Про Turbogears особо ничего не знаю.

Zope мне как-то не нравится, уж больно он монструозен, к тому же БД должна быть доступна не только из Питона.

Гугл особо ничего не выдаёт по этой теме.

Помогите пожалуйста с выбором.

redvasily
()

Система контроля версий схемы БД

Нужна система для записи изменений схемы БД сделанных в development-environmemnt-е и автоматизированного наката сделанных изменений на БД в установленных системах. Ну типа как система контроля версий, но только не для исходников а для схемы БД.

Есть migrate к sqlalchemy, но он ещё ни фига не работает, и имхо, overdesigned.

Ничего путного в гугле не нашёл

Как такие системы вообще называются? И какие есть хорошие (и открытые и коммерческие)?

redvasily
()

Экстремальное программирование

Кто нибудь в разработке софта использует экстремальное программирование? И с каким результатом?

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

А то все сайты про XP это как какая-то секта: "У меня всё было плохо, мы срывали все сроки и от меня ушла жена, а потом я стал практиковать XP, сдал работу в срок и ко мне вернулась жена и привела сестру-супермодель в добавок"

С юнит тестами тоже непонятно, в примерах обычно пишут класс который не взаимодействует с внешними объектами и его тестируют. Понятно что так можно тестировать классы, а что делать когда для нормальной работы класса требуется внешняя система, например это GUI и для его работы нужен человек, как тестировать класс, который завязвн на GUI, например потомок wx.Panel или QWidget (кому что больше нравится)?

Пример из реальной жизни: у меня есть класс, который синхронизирует БД с LDAP, так ведь для того чтобы его проверить мне нужна для тестирования собственно БД и LDAP. Хорошо ещё я Postgre использую, а вот был бы это Оракл... Что делать в таком случае?

Ссылками на книги по XP никто не поделится? А то в основном попадается что-то типа amazon.com :-)

redvasily
()

Есть здесь кто-нибудь с Google Code Jam?

Тут есть кто-нибудь кто в Code Jam участвовал?

Со скрипом прошёл квалификацию, решив одну задачу, и вот сейчас ломаю моск над нерешённой задачей.

Кто-нибудь знает как задачу со слонами решать?

redvasily
()

Ерунда с нитками в PyQT4

Осваиваю PyQt. 
Разбираюсь с нитками. 
Конкретно меня интересует следующее, какая-то нитка вырабатывает
сигнал и передаёт произвольный питоновский объект в основной цикл
разбора сообщений. 

Делаю следующее:

class Producer(QThread):
    def __init__(self, parent=None):
        QThread.__init__(self, parent)
        
        self.keep_running = True
        self.count = 0
        self.active = False
    
    def activate(self):
        self.active = True
    
    def deactivate(self):
        self.active = False
    
    def run(self):
        while self.keep_running:
            self.count += 1

            # Вот именно 300 или что здесь указать зачасутю передаётся
            # вместо словаря с данными
            self.msleep(300)
            
            d = {
                'time': time.time(),
                'count': self.count }
            
            self.d = d
            
            # Тут пробовал указывать и d и self.d
            if self.active:
                self.emit(SIGNAL('newData'), dict(d))

class Logic(QObject):
    def __init__(self, widget):
        QObject.__init__(self)
        
        self.widget = widget
        self.text = self.widget.text
        self.start_button = self.widget.start_button
        self.stop_button = self.widget.stop_button
        
        self.thread = Producer()
        
        self.connect(self.start_button, SIGNAL('clicked()'),
            self.thread.activate)
        self.connect(self.stop_button, SIGNAL('clicked()'),
            self.thread.deactivate)

        # Здесь пробовал Qt.QueuedConnection не указывать. Та же фигня
        self.connect(self.thread, SIGNAL('newData'), self.processData,
            Qt.QueuedConnection)
        self.connect(self.thread, SIGNAL('text(QString)'), self.text.append)
        
        self.thread.start()
    
    def processData(self, data):
        print data
        print type(data)

И косяк в том что Logic.processData() иногда печатает то что надо,
т.е. словарь а иногда (даже скорее как правило :-() передаётся
значение аргумента Producer.msleep() 8-() 

Знатоки PyQT, что я делаю не так? И как это надо делать?

P.S. В wxPython-е такое работает на ура :-)

redvasily
()

Python event server

Мне надо сделать систему для передачи сообщений по сети, т.е. не в смысле как джаббер или ICQ, а по типу модуля dispatch, но только по сети.

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

Сообщения должны доходить гарантированно (т.е. TCP), всё это должно быть секурно и т.д.

Первым приходит в голову Pyro и его EventServer, но т.к. это UDP, там не гарантируется доставка сообщений, порядок их прихода, и к тому же ещё и небезопасно.

Следующим в голову приходит twisted или twisted.spread, там TCP, SSL, безопасность как в концлагере и всё такое. Но зато нет ничего похожего на Event Server. Т.е. надо писать свой сервер и свои клиенты на голом TCP, либо дотачивать twisted.spread.

Никто не может подсказать какой-нибудь такой системы передачи сообщений?

P.S. В гугле ничего не нашёл.

redvasily
()

Странная схема хранения данных в БД

Тут один товарищ, по работе предлагает организовать такую схему хранения данных в БД:

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

Мне такая схема представляется плохой по трём причинам:

1. Придётся делать двойной индекс по таблице, где хранятся значения "атрибутов"

2. То что обычно делается как SELECT * FROM people WHERE last_name=ivanov; Придётся делать за два селекта (т.е. сперва находим id, а затем делать селект пар название атрибута/его значение)

3. Никогда про такой способ хранения не слышал, что настораживает.

Есть и положительные моменты: 1. Если надо добавить новый атрибут то ничего делать не надо, мы просто добавляем какие надо атрибуты и всё.

Специалисты по БД, поделитесь пожалуйста своими соображениями на этот счёт.

redvasily
()

Глюки checkbox-ов в GTK

Такая проблема: глючат чекбоксы в GTK, а именно при наведении мышки на чекбокс, "галочка" пропадает, уведёшь мышку --- появляется снова.

Причём глюк это не во всех темах, например в Clearlooks глюк есть, в Glider глюка нет.

Раньше этого глюка сто пудов не было, а что-то вдруг появился.

x11-libs/gtk+-2.8.13

x11-themes/gtk-engines-2.6.7

x11-themes/gnome-themes-2.12.3

Может в gtkrc надо чего подправить?

redvasily
()

Как подружить KDE и conky?

Никто не подскажет как подружить KDE и conky?

Проблема в следующем: если запускать conky как "conky -b", то мигают иконки на рабочем столе, а если запускать "conky -o", т.е. создать собственное окно, то у этого окна чёрный бэкграунд. На сайте сказано что надо установить картинку на root-окно, для чего предлагают воспользоваться Esetroot или qiv. Пробовал оба, фон окна conky всё равно чёрный.

KDE-3.5.1, conky-1.4.0-r1

Как починить?

redvasily
()

Python + Java Swing vs wxWidgets

Я пишу на wxPython-е и получается очень даже не плохо (с моей точки зрения :-) программы пишутcя легко и быстро, нативно смотрятся под виндой и линуксом под виндой легко замораживаются при помощи py2exe. Идилия короче. (Есть, конечно, небольшие косяки при переносе windows-> линукс или обратно, но как правило всё легко решается)

Одно меня смущает в wxPython-е: отсутствие "мажорских" виджетов, например нет ListControl с сортировкой при клике в заголовок (в demo App не посылать, знаю, члишком сложно/извратно, использует нестандартные иконки для сортировки). Grid глючный, печати нормальной нет под Linux-ом, нету перетаскиваемых тулбаров и т.д. Т.е базовый функционал есть но для e|\|tErPRi$e приложений виджетов не хватает.

Как вариант можно использовать swing через jpype, я попробовал пашет вполне успешно.

Вопрос к знатокам свинга: там есть мажорские виджеты, типа списка с сортировкой, грид и прочее

Или может кто работал со swing-ом из питона, как ощущения (по сравнению с wxPython)?

redvasily
()

Одновременное изменение одной записи в БД с разных соединений

Проблема: есть строка в таблице БД, которая может одновременно редактироваться несколькими (например двумя) пользователями с разных соединений, при этом если не предпрнимать никаких мер, то пользователь сохранивший изменения последним, затрёт изменения сделанные предыдущим пользователем.

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

Как можно решить эту проблему?

База данных MySQL 4.1, т.к. в конторе для которой я это делаю она и стоит, а админ ничего другого ставить не хочет. Но в принципе варианты с другими СУБД тоже возможны, если будут веские причины, то модно будет пробить и установку другой базы.

Самому мне в голову приходят следующие варианты: 1. При сохранении записи в базу проверяется, чтобы запись в базы была бы в таком же состоянии как и при считывании. Если запись в другом состоянии, предложить замёрджить изменения в ручную. минусы такого подхода: надо делать новую форму для мёрджа

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

redvasily
()

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