LINUX.ORG.RU

Сообщения Davidov

 

Google Code supports Mercurial

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][рекурсия]

Допустим, у нас есть список (имён) листов дерева 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

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.

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

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

 

Davidov
()

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

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

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

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

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

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

Davidov
()

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

# 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?

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

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

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

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

 

Davidov
()

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

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

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

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

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

 

Davidov
()

почти нацпол

Davidov
()

Personal RSS feeds

Достаточно давно я предлагал сделать персональные 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

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

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

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

(py)gtk forward keypress

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

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

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

Davidov
()

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

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

Davidov
()

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

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

 

Davidov
()

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

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

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

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

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

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

 ,

Davidov
()

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

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)

Davidov
()

[skype] любит вас

«Китайская версия Skype подвергает цензуре и записывает сообщения, содержащие определенные ключевые слова, и может быть задействована в более направленных схемах электронного наблюдения» - к такому итогу приходит канадское исследование, проведенное группой ученых из Университета Торонто. «Совершенно ясно, что TOM-Skype является частью обширной системы наблюдения, очевидно не заботящейся о тайне и безопасности пользователей Skype. Это находится в прямом противоречии с публичными заявлениями руководства компании о принципах работы Skype в Китае.»

http://soft.compulenta.ru/372649/

Ну кто ещё будет утверждать, что скайп безопасен?

Конечно, конечно, а протокол они не открывают (и защищаются от дизассемблирования), чтоб конкурирующих клиентов не было. Ага.

>>>

 

Davidov
()

[DIY] [ubuntu] [debian] [страждущим] сами патчим pidgin для ICQ

sudo apt-get install devscripts build-essential fakeroot
apt-get source libpurple0
wget http://launchpadlibrarian.net/15741199/pidgin-2.4.2-icq.patch
cd pidgin-2.4.1
patch -p0 < ../pidgin-2.4.2-icq.patch
sudo build-dep libpurple0
debuild -us -uc
cd ..
sudo dpkg -i libpurple0_2.4.1-1ubuntu2_*.deb

P.S. А я не поехал. Я взял мотыля и пошёл на реку. Использую gajim.

>>>

 , ,

Davidov
()

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