LINUX.ORG.RU

Сообщения Davidov

 

[ba]sh: перенаправление stdin и stderr фонового процесса

Форум — Development

Почему не работает (как ожидается) следующий код:

$COMMAND >>"$LOGFILE" 2>&1 &

В $LOGFILE попадает только stderr.

Davidov
()

omploader.sh: конструктивная критика

Форум — Development

На сервере нет Ruby, а omploader штука полезная. Поскольку руби скрипт — всего лишь обёртка над curl, я его переписал на bash.

http://bitbucket.org/Davydov/omploadersh/src/tip/omploader.sh

P.S. Bash/sh знаю плохо, поэтому прошу конструктивной критики/патчей.

Davidov
()

Google Code supports Mercurial

Форум — Talks

While there were several DVCSs that we could support, our decision to support Mercurial was based on two key reasons. The primary reason was to support our large base of existing Subversion users that want to use a distributed version control system. For these users we felt that Mercurial had the lowest barrier to adoption because of its similar command set, great documentation (including a great online book), and excellent tools such as Tortoise Hg. Second, given that Google Code's infrastructure is built for HTTP-based services, we found that Mercurial had the best protocol and performance characteristics for HTTP support. For more information, see our analysis.

Новость.

По-русски.

Davidov
()

[R][рекурсия]

Форум — Development

Допустим, у нас есть список (имён) листов дерева t$tip.label, а также список граней t$edges (всегда от корня в сторону листа).

Список граней, это int [1:..., 1:2] (список пар вида вершина-вершина; от корня к листу).

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

Как это нужно реализовывать в R? Поигрался с рекурсией, но получил слишком глубокую рекурсию.

my_tip_function <- function(l)rep(1,times=length(l))
my_edge_function <- function(edges,tip.label) ifelse (is.na(tip.label[edges[,2]]),sum(my_edge_function(edges,tip.label)[sapply(edges[,2], function(x) edges[which(edges[,1]==x)])]),my_tip_function(tip.label))

Допустим:

edge=matrix(c(4,1,4,5,5,3,5,2),ncol=2,byrow=T)
tips=c('a','b','c')
my_edge_function(edge,tips)
Ошибка: исполнение расположено слишком глубоко: неопределенная рекурсия / options(expressions=)?

Что может быть не так?

 ,

Davidov
()

[ubuntu] you your

Форум — Talks

Package: firefox-3.0-branding

Description: Package that ships the firefox branding

This package ships the firefox branding bits. If you remove this package you your user experience will become that of the abrowser.

o_O

Кто может расшифровать последнее предложение?

 

Davidov
()

[VDS] No more PTYs.

Форум — Talks

На VDS хостинге screen выдаёт ошибку: no more PTYs.

Почему так происходит, и как с этим можно бороться?

 

Davidov
()

посоветуйте почтовый клиент

Форум — Talks

Обязательные требования:

  • IMAP
  • Кеширование просмотренных писем.
  • Умение адеватно работать с тредами, письма из которых лежат в разных папках (Sent и Inbox).

Желательно также:

  • Не Qt (всё остальное включая curses)
  • Просмотр всех сообщений из треда одной простынёй

P.S. Thunderbird и Evolution продемонстрировали свою неадекватность при работе на плохих каналах. Claws мне не удалось научить показывать треды из писем, лежащих в разных папках. Возможно, mutt можно научить, но у меня пока не получилось.

Davidov
()

[python3] не всё так плохо

Форум — Development
# 2.py
result = 1
for i in xrange(1,20000):
	result*=i
print result
# 3.py
result = 1
for i in range(1,20000):
	result*=i
print(result)
$ time python2.5 2.py > /dev/null
real	0m5.437s
user	0m5.360s
sys	0m0.024s

$ time python3.0 3.py > /dev/null 
real	0m1.931s
user	0m1.912s
sys	0m0.004s

А на каких тестах Python3 сливает?

Davidov
()

[mysql] lock table?

Форум — Development

Допустим, есть некое условие в таблице A, после которого в таблицу B нельзя больше добавлять значения.

Как такое реализовать, допустим, на MySQL не опасаясь race condition?

Нужно делать lock table?

P.S. Триггеры, к сожалению, использовать нельзя, т.к. пишется на ORM, который этого не умеет.

 

Davidov
()

[python] Правильная архитектура исключений

Форум — Development

Имеется некий модуль, который содержит обёртки вокруг xmlrpc сервера.

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

Сейчас подумал, а нужно ли оно? Есть же прекрасные готовые классы вроде socket.error, xmlrpc.Error и проч. Зачем повторять их функциональность в моём модуле?

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

 

Davidov
()

почти нацпол

Форум — Talks
Davidov
()

Personal RSS feeds

Форум — Linux-org-ru

Достаточно давно я предлагал сделать персональные RSS фиды.

Есть несколько путей реализовать подобный подход:

  • Сделать фиды вида www.linux.org.ru/personal-rss.jsp?nick=..., которые содержат ответы на сообщения автора. Проблем с прайвеси быть не должно, т.к. это общедоступная информация. Думаю, это довольно не сложно. Запрос будет двухпроходный. Из проблем стоит отметить то, что не все интересующие сообщения являются ответами на твоё сообщение.
  • Сделать фиды такого же вида, но содержащие обновления всех фидов, в которых ты отметился. Это очень ресурсоёмко и содержит слишком много мусора.
  • Сделать возможность явно следить за тредами.

Реализуется это следующим образом: каждому юзеру выдаётся персональный RSS фид (с уникальным адресом, например вида pesonal-rss.jsp?id=sha1sum(nickname+'secret code'; а лучше эти адреса перегенерировать по запросу). Адрес фида можно получить на страничке whois. Там же можно перегенерировать адрес.

У каждого треда юзер видит кнопочку «подписаться» (или «отписаться», если он уже подписан). Тред генерируется по тому же принципу, что и topic-rss, но только в два прохода, сначала собирается список тредов, которыми интересуется пользователь.

Опционально можно сделать кнопку «отписаться от всех» на странице whois. И список тредов, на которые ты подписан.

Фича полезная. Реализуется относительно просто. В принципе, её можно сделать даже в виде стороннего сервиса (+ какой-то userscript), но JB посоветовал отписать сюда.

Davidov
()

git vs hg

Форум — Development

Фанаты гита, развейте наезд.

Если кратко, список претензий:

  • нельзя склонировать local->ssh://remote
  • кривые адреса веб интерфейса
  • отсутствие умолчальных сокращений типа st вместо status
  • плохая встроенная помощь
Davidov
()

(py)gtk forward keypress

Форум — Development

Asterix (разработчик Gajim) в очередной раз поломал русские шорткаты.

Пытаюсь разобраться, как исправить ситуацию.

Почти все шорткаты сейчас забайндены при помощи акселераторов, но дочернему виджету передаётся key-press-event. Естественно, при вызове key-press-event accel'ы не обрабатываются. Есть какой-то простой способ это побороть?

Можно ли как-то сказать виджету, чтобы он из key-press-event разобрал accel'ы?

Если более предметно, то http://trac.gajim.org/browser/trunk/src/message_window.py#L762 .

Davidov
()

Что почитать про CentOS/RHEL

Форум — Talks

Последний раз пользовался RPM-based дистрибутивами ещё во времена Red Hat Linux 6. Подскажите, что можно почитать про пакетный менеджер/настройку/etc?

Для примера: Справочник по Debian, Настольная книга Gentoo, FreeBSD Handbook.

Davidov
()

консольный редактор pdf?

Форум — Talks

Имеется pdf файл с огромными полями. Какой самый простой способ вывести его на печать с полями нормального размера (масштабировать содержимое страницы)?

Davidov
()

[torrent] узнать контрольные суммы из .torrent файла

Форум — Talks

Есть .torrent файл. Как узнать контрольные суммы файлов в него входящих, не начиная закачку?

 

Davidov
()

[adsl] [torrent] много соединений

Форум — Talks

Кто-то из местных уже рассказывал о подобной проблеме: при большом количестве (~100) установленных соединений интернет волшебным образом перестаёт работать.

Сначала я грешил на стрим, но оказалось, что если вместо Ethernet модема использовать USBшный, то проблема исчезает.

  • Модем: Zyxel OMNI ADSL LAN EE
  • Провайдер: Стрим (AKA комстар-директ)

Грешу на Zyxel'овскую реализацию NAT сервера. Хотя загрузка модемного CPU остаётся в пределах 10%.

Ещё попробовал (на всякий случай) уменьшить MTU. Но это ничего не изменило.

 ,

Davidov
()

[ненависть] [android] 25$

Форум — Talks

If you're a developer, you will be able to register and upload your applications starting next Monday, 2008-10-27, when we've wrapped up a few final details. In order to make sure that each developer is authenticated and responsible for their apps, you will need to register and pay a one time _$25 application fee_. Once registered, your apps can be made available to users without further validation or approval.

http://android-developers.blogspot.com/2008/10/android-market-now-available-f...

Уроды. Единственная надежда остаётся на то, что можно будет устанавливать приложение, минуя Android Market.

Кстати, вот он: http://www.android.com/market/

 ,

Davidov
()

Arabic five pointed start (U+066D)

Форум — Talks
Davidov
()

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