| Купил ноут |
[Nov. 20th, 2009|12:53 am] |
HP Pavilion dv6 2090er на Core i7
Поставил убунту и: *нет звука *не работает suspend
Первое победилось элементарно - нужно всего лишь сказать ALSA что у меня ноутбук HP-mt4
Второе - целая исторя. В целях борьбы с браком каких то старых HP разработчики драйвера ACHI в линуксе вставили проверку на модель и номер биоса при входе в суспенд. Мой ноут оно не распознает и "спасает" от бага которого нет, не давайя войти с суспенд (если баг есть, то из суспенда уже не выйти ;) ). Так что пришлось патчить ядро. Хорошо что есть 8 "ядер" и не нужно жать час пока оно компилируется.
править тут - ./drivars/ata/achi.c функцию ahci_broken_suspend
PS: Gentoo вообще в Kernel Panic вываливается при загрузке PPS:после питонов и хасклей недра ядра кажутся отвратительным нагромождением полуразложившихся кусков кода.
KW: HP pavilion suspend achi "update bios" broken |
|
|
| Роботы |
[Nov. 17th, 2009|11:19 pm] |
|
|
|
|
| Про GIL в питоне |
[Nov. 15th, 2009|12:53 am] |

import numpy, threading
class Worker(threading.Thread):
def __init__(self, ws):
self.ws = ws
threading.Thread.__init__(self)
def run(self):
while True:
numpy.sin(self.ws);
workers = []
data = numpy.arange(0, 1500, 0.0001) # 0.0001, 0.0002,0.0003...1500
for x in range(8):
workers.append(Worker(d))
workers[-1].start();
ЕГО НЕТ |
|
|
| Рабочее |
[Nov. 14th, 2009|03:42 pm] |
А будь у него короткоствол Haskell, все сложилось бы иначе. |
|
|
| гагага |
[Nov. 12th, 2009|11:37 am] |
Новый гугловский язык закиберсквотили 10 лет назад ;)
I have been working on a programming language, also called Go, for the last 10 years. There have been papers published on this and I have a book.
I would appreciate it if google changed the name of this language; as I do not want to have to change my language! (C) http://code.google.com/p/go/issues/detail?id=9 |
|
|
| Культурная программа |
[Nov. 9th, 2009|03:20 pm] |
Какие музеи в Вене следует посетить?
Будет полтора два свободных дня. |
|
|
| Вопрос |
[Nov. 8th, 2009|07:22 pm] |
Пришло от секретариата конференции:
Message to all Corresponding Authors Dear Corresponding Author
Please tell us as soon as possible for each your paper: 1) Your Name / dpn / Paper number 2) Name (and dpn if you know) of persons from your team who<...>
Что бы это значило "dpn"? |
|
|
| Рабочее |
[Nov. 6th, 2009|11:27 pm] |
Сегодня пол часа искали фитчу, которую я сделал до болезни (2 недели назад). Т.е. все помнили что оно было и работало, но вот где - непонятно. |
|
|
| В бостон-динамикс снова жгут |
[Nov. 5th, 2009|02:19 pm] |
Замечу, что шагающие механизмы жрут чудовищно много энергии. Так что компактных и, одновременно, автономных среди них практически нет. |
|
|
| Про этот ваш хаскель |
[Nov. 4th, 2009|02:25 am] |
При переходе с С++ на питон я поражался компактности и лаконичности языка - алгоритм или идея почти естественно отображались на языковые конструкции, не требуя при этом написания километров быдлокода.
От хаскеля я ожидал того же эффекта, но не получилось. Получается в среднем как на питоне или длиннее.
Вот, кстати, интересные графики на эту тему - http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html
 Здесь по X - время исполнения, Y - размер кода |
|
|
| Рабочее. |
[Oct. 31st, 2009|03:39 am] |
А кто ещё на Google Developers Day 2009 пойдет?
PS:
|
|
|
| Про жизнь |
[Oct. 27th, 2009|11:58 pm] |
Температура 39.5
Стоит мне закрыть глаза, как я вижу каррирование и прочие лямбдs на фоне кругов и точек. Из за этого никак не могу уснуть.
Парацетамол чуток меня остудил, но мозгу плевать и он, зараза такая, что то считает. При чем считает функционально.
PS: Ждите новых трип-репортов. |
|
|
| Наблюдение |
[Oct. 24th, 2009|12:06 am] |
Гвидо предложил остановить развитие питона на несколько лет. На ЛОРе - плачь и скрежет зубовный, в ru_python - спокойное одобрение.
PS: пришлось освоить аякс и jQuerry. |
|
|
| Видео |
[Oct. 17th, 2009|10:38 am] |
|
|
|
|
| Видео |
[Oct. 12th, 2009|10:38 pm] |
|
|
|
|
| Учебное |
[Sep. 21st, 2009|11:16 am] |
freiksenet: самое страшное что я боюсь что это будет в первый раз когда они услышат про рекурсию вообще и это печально ( один знакомый РЕАЛЬНО считал что рекурсия это мем башорга. |
|
|
| ООП и эффектиновть. |
[Sep. 18th, 2009|01:09 pm] |
Возникла необходимость попрактиковаться в распределенных вычислениях. Тренероваться решил на столкновениях галактик.
ООП учит нас: 1) Выделить в предметной области сущности 2) Описать их в терминах выбранного языка 3) организовать их взаимодейсвие, а дальше уж они сами всё сделают.
Пусть нам нужно решить задачку 3-х тел Описываем класс:
class Star{
double x[3];
double velocity[3];
double mass;
double DistanceTo(Star &star);
double* GeForce(Star &star);
void Move(double dt=0.1);
}
Заводим vector stars (10000) и получаем тормоза, которые чудесным образом проходят при отказе от ООП: т.е когда мы вместо класса "Звезда" тупо заведем 3 массива с данными положений, масс и скоростей.
Понятно что ООП тут не при чем и виной всему не самая оптимальная модель вычислений. Неприятно то, что ООП подталкивает к неоптимальной модели. |
|
|
| (no subject) |
[Sep. 17th, 2009|03:29 am] |
Решил я тут на питеоне решить расчетную задачку n-body Скорость, мягко говоря, на уровне первых советских ЭВМ. Psyco проблему не решил, а вот weave - разогнал в 200-250 раз
wave позволят включать в питоновский код С++ фаргменты, подобно unsafe в NET
Работает оно так:
import scipy.weave as wave
from time import time
data = 0.1
#пишем на чистом С
code = """ for (int i=1; i < 10000; ++i) { for (int i=1; i < 10000; ++i) { data+=0.01; }; }; return_val = data; """
t0=time()
#компилируем с помощью GCC и исполняем, передавая на вход переменную data
result = wave.inline(code, ['data'], compiler='gcc')
print time()-t0
#Теперь на питоне: data=0.1
t0=time()
for x in xrange(10000):
for y in xrange(10000):
data+=0.01
print time()-t0
========================== выдача: 0.116238832474 19.719369173
подробности - http://www.scipy.org/PerformancePython
|
|
|
| Дача. |
[Sep. 13th, 2009|07:24 pm] |
Яблок - девать некуда.
У соседей растут прекрасные дети:
 ( Read more... ) |
|
|
| Рабочее |
[Sep. 6th, 2009|11:08 pm] |
 ( Read more... )
Слева на право: наш электронщик Борис(а попутно и дум-металлист), мой научрук, директор ИАПУ и главный подводным тарелочкам.
Внизу 2 из 4-х продуктов бурной деятельности. |
|
|
| Религиозное. |
[Sep. 6th, 2009|02:05 am] |
Внезапно осознал что же меня отталкивает в Викке Это не толщина адепток и не творчество Марагрет Мюррей а слащавость. Христианство со сомами кровтоточащих мучеников и всеобщим телесным(кровь, мышцы, жилы, кости - всё воспрянет и соедоенится) воскресением выглядит куда реалистичнее. (Та же к кринашитам, саентологам, буддистам и велосепидистам )
Ну и, кроме того назвались ведьмами, практикуют вичкрафтЪ, а поют такое - http://www.youtube.com/watch?v=BDSu0-qDFQ8 (видео-ряд тоже показателен) Как то не соответствует образу. Им надо надо такое петь:
|
|
|
| Фотографическое |
[Sep. 2nd, 2009|01:12 am] |
 ( Read more... )
Отведал свежих моллюсков и икры морских ежей (колючие заразы. прокалывают китайские тапочки.) Обгорел. Весь город покрыт холмами, по этому вермя пути тада != времени пути обратно Уличное движение отдает эксримом и все машины праворуки. Везде стройка и все строители славянской национальности. Даже дорожные.
Видимо дадут грант и ещё 1 заказ. |
|
|
| Рабочее |
[Aug. 21st, 2009|02:03 am] |
Когда я пишу на С\С++ - в голове постоянно крутится "блииин. был бы это питон, я бы гораздо короче и элегантнее написал"
Когда я пишу на питоне - в голове постоянно крутится "блииин. былбы это хаскель, я бы гораздо короче и поэлегантнее написал" |
|
|
| Идея |
[Aug. 16th, 2009|11:33 pm] |
|
Надо бы написать софтЪ: общий буфер обмена(текстовый) у машин в сети. А то очень не удобно искать багу на одной машине, а писать гневное письмо на другой. |
|
|
| Рабочее про DSL |
[Aug. 12th, 2009|04:17 pm] |
Вот уже 4 года я делаю всяких робатовЪ
Сначала был ужас нс asm\С в обертке из тривиального DSL Потом ужас на asm\C\С++ в обертке из нетривиального DSL Потом ужас на asm\C\С++ в обертке из ужасного DSL
Расширять DSL мне надоело, по этому теперь вместо него python c небольшим фреймворком ;) |
|
|
| Про хранение данных в BigTable. |
[Aug. 12th, 2009|12:36 pm] |
Данные приложений Google App Engine хранятся в BigTable. Это не реляционная распределенная БД.
Единицей хранения является сущность. Каждая сущность имеет не пустой набор свойств (базовые типы + ссылки на другие сущности).
Сущности объединяются в некие рабочие множества - аналог таблиц в реляционной модели, но с одной существенной оговоркой: две сущности принадлежащие к одному виду(kind) могут иметь разный набор свойств.
Например было описание сущности:
class Foo(db.Model):
bar = db.StringProperty()
Добавили базу:
entity = Foo(bar = "asd")
entity.put()
entity = Foo(bar = "dsa")
entity.put()
Теперь меняем описание сущности:
class Foo(db.Model):
bar = db.StringProperty()
isOk = db.BooleanProperty(default = False)
И, как описано выше, добавим пару таких сущностей.
В итоге мы полуили вид(kind) сущностей Foo, к которому перинадлжт 4 сущности, 2 из которых не имеют свойства isOk. Если бы это была реляционная модель - свойство isOk появилось бы у всех сущностей.
Проблема состоит в том, что теперь нет возможности добраться до этих записей запросами вида: "select * from Foo where IsOk=Null" или select * from Foo where IsOk not in (True, False)
Ведь этого свойства у сущности просто нет. Впрочем как и оператора Not
Если же ввести обязательное свойство, скажем asd= db.StringProperty(required = true) то добраться до сущностей без этого поля будет в прицепе невозможно. |
|
|
| unixway |
[Aug. 3rd, 2009|05:23 pm] |
Вопрос линуксоидам.
По долгу службы приходиться поддерживать дееспособность пары десятков сайтов. Типичная задача - зайти по фтп, узнать что отвалилось, чуток подправить php и вернуться. Под windows я это делаю фаром: прямая работа с ftp, удобная навигация по файлам и подсветка синтаксиса.
Что из мира linux позволит воспроизвести этот workflow с такой же эффективностью? |
|
|
| производительность GAE |
[Jul. 28th, 2009|10:48 pm] |
Понадобилось перегонять сохранять тарифы SMS биллинга A1 в Google App Engine
Проблема 1)
В A1 получение тарифов сделано очень торомнзуто и через SOAP. Если делать на GAE - пролетаем по квоте времени на запрос (больше 15 сек).
Пришлось через второй собственный сервер забирать информацию у A1 b отдавать гуглу, но уже с нормальной скоростью
Проблема 2)
У GAE tcnm ещё одно ограничение не описанное в документации - за 1 раз можно добавить не более 500 объектов в Datatore. А тарифов у нас 582. Т.е. можно, конечно, и по одному добавлять но тогда снова пролетаем по времени.
По этому пришлось вставлять порциями по 50 штук. По 100,200 или 400, почему то, не получается:
yaml_data = yaml.load(self.request.get('yaml'))
tarifs = []
for d in yaml_data:
tarifs.append(models.Tarif(**d))
split_size=50
for i in xrange(0, len(tarifs), split_size)
db.put(tarifs[i:i+ split_size])
Теперь по времени:
- 7 сек на то что бы загрузить этот YAML. Почему так долго - не понятно. urlfetch сегодня барахлит, но я вгружал данные через форму.
- 5 сек на парсинг
- 0.2 сек на создание новых объектов Tarif для сохранения в БД
- 0.15 сек на удаление старых записей
- 0.1*12 сек на сохранение блока из 50 записей в БД
итого 14 сек из 15 доступных.
Напишу, пожалй, серию бенчмарков. |
|
|
| navigation |
| [ |
viewing |
| |
most recent entries |
] |
| [ |
go |
| |
earlier |
] |
| |
|
|