Home
Кирилл Кирсанов [entries|archive|friends|userinfo]
Кирилл Кирсанов

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Чудеса науки [Nov. 23rd, 2009|10:37 am]

Кроме того, часто в новых кабелях имеется статическое напряжение - это объясняется технологией их производства. Это может привести к жёсткому, излишне окрашенному, лишённому детальности звучанию. Следовательно, для оптимального звука статическое напряжение необходимо нейтрализовать.


А ещё они ловят скин-эффект на частотах до 44кГц
link11 comments|post comment

Купил ноут [Nov. 20th, 2009|12:53 am]
[music |J.S.Bach - Henryk Szeryng (vio - 03 Sonata I in G Minor_ (3) Si | Powered by Last.fm]

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
link5 comments|post comment

Роботы [Nov. 17th, 2009|11:19 pm]
link4 comments|post comment

Красивое [Nov. 17th, 2009|05:24 am]
Мандельбульб, аналог фрактала Мандельброта для третьего измерения: http://www.skytopia.com/project/fractal/mandelbulb.html#intro



По наводке [info]thesz
link4 comments|post comment

Про 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();   


ЕГО НЕТ
link5 comments|post comment

Рабочче [Nov. 15th, 2009|12:31 am]
К питону прикрутили ассемблер для Cell, PPC и всяких SSE http://conference.scipy.org/static/wiki/afriedle-corepy.pdf
linkpost comment

Рабочее [Nov. 14th, 2009|03:42 pm]
А будь у него короткоствол Haskell, все сложилось бы иначе.
link2 comments|post comment

Ужасы [Nov. 14th, 2009|12:18 am]
[music |Caprice - The Faerie Chime | Powered by Last.fm]

По части хаскеля мы впереди планеты всей - http://www.google.com/trends?q=haskell&ctab=0&geo=all&date=all&sort=0

А вот по ФП в целом рулит индия - http://www.google.com/trends?q=Functional+programming&ctab=0&geo=all&date=all&sort=0

Она же по Питону, С и яве.
link1 comment|post comment

гагага [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
link4 comments|post comment

Культурная программа [Nov. 9th, 2009|03:20 pm]
Какие музеи в Вене следует посетить?

Будет полтора два свободных дня.
link3 comments|post comment

Вопрос [Nov. 8th, 2009|07:22 pm]
[music |Balakirev - Overture on 3 russian songs | Powered by Last.fm]

Пришло от секретариата конференции:

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"?
link5 comments|post comment

Рабочее [Nov. 6th, 2009|11:27 pm]
Сегодня пол часа искали фитчу, которую я сделал до болезни (2 недели назад).
Т.е. все помнили что оно было и работало, но вот где - непонятно.
linkpost comment

В бостон-динамикс снова жгут [Nov. 5th, 2009|02:19 pm]


Замечу, что шагающие механизмы жрут чудовищно много энергии. Так что компактных и, одновременно, автономных среди них практически нет.
link4 comments|post comment

Про этот ваш хаскель [Nov. 4th, 2009|02:25 am]
При переходе с С++ на питон я поражался компактности и лаконичности языка - алгоритм или идея почти естественно отображались на языковые конструкции, не требуя при этом написания километров быдлокода.

От хаскеля я ожидал того же эффекта, но не получилось. Получается в среднем как на питоне или длиннее.

Вот, кстати, интересные графики на эту тему - http://gmarceau.qc.ca/blog/2009/05/speed-size-and-dependability-of.html


Здесь по X - время исполнения, Y - размер кода
link4 comments|post comment

Пополнение Библиотеки [Nov. 2nd, 2009|07:05 pm]
[Tags|]
[music |sToa - Soft Snow | Powered by Last.fm]

Приобрел в бумажном виде Книжку с Волшебником и Книжку с Дракончиком.

Страна эльфов!
link4 comments|post comment

Рабочее. [Oct. 31st, 2009|03:39 am]
[music |La Nef - Ou iras-tu, vallet, dis va? | Powered by Last.fm]

А кто ещё на Google Developers Day 2009 пойдет?

PS:
linkpost comment

Про жизнь [Oct. 27th, 2009|11:58 pm]
[music |Elend - Ethereal Journeys | Powered by Last.fm]

Температура 39.5

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

Парацетамол чуток меня остудил, но мозгу плевать и он, зараза такая, что то считает. При чем считает функционально.

PS: Ждите новых трип-репортов.
link10 comments|post comment

Наблюдение [Oct. 24th, 2009|12:06 am]
[music |Elend - O Solitude | Powered by Last.fm]

Гвидо предложил остановить развитие питона на несколько лет.
На ЛОРе - плачь и скрежет зубовный, в ru_python - спокойное одобрение.

PS: пришлось освоить аякс и jQuerry.
link4 comments|post comment

Рабочее [Oct. 20th, 2009|09:20 am]
Довольно приятный дистрибутив питона под win32 - http://www.pythonxy.com/
linkpost comment

Видео [Oct. 17th, 2009|10:38 am]
link1 comment|post comment

Видео [Oct. 12th, 2009|10:38 pm]
link3 comments|post comment

Фотографическое [Oct. 4th, 2009|06:16 pm]
[Tags|, ]

dsc_5355

прАезда
прАхода
linkpost comment

Я тут на конференции побывал... [Oct. 3rd, 2009|09:08 pm]
[Tags|, , , ]


+9 x 100kb )
link8 comments|post comment

Учебное [Sep. 21st, 2009|11:16 am]
freiksenet: самое страшное что я боюсь что
это будет в первый раз когда они услышат про
рекурсию вообще и это печально (
один знакомый РЕАЛЬНО считал что рекурсия это мем башорга.
link3 comments|post comment

ООП и эффектиновть. [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 массива с данными положений, масс и скоростей.


Понятно что ООП тут не при чем и виной всему не самая оптимальная модель вычислений. Неприятно то, что ООП подталкивает к неоптимальной модели.
link17 comments|post comment

(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

link3 comments|post comment

Дача. [Sep. 13th, 2009|07:24 pm]
Яблок - девать некуда.

У соседей растут прекрасные дети:

Read more... )
link4 comments|post comment

Рабочее [Sep. 6th, 2009|11:08 pm]

Read more... )

Слева на право: наш электронщик Борис(а попутно и дум-металлист), мой научрук, директор ИАПУ и главный подводным тарелочкам.

Внизу 2 из 4-х продуктов бурной деятельности.
link26 comments|post comment

Религиозное. [Sep. 6th, 2009|02:05 am]
Внезапно осознал что же меня отталкивает в Викке
Это не толщина адепток и не творчество Марагрет Мюррей а слащавость. Христианство со сомами кровтоточащих мучеников и всеобщим телесным(кровь, мышцы, жилы, кости - всё воспрянет и соедоенится) воскресением выглядит куда реалистичнее. (Та же к кринашитам, саентологам, буддистам и велосепидистам )

Ну и, кроме того назвались ведьмами, практикуют вичкрафтЪ, а поют такое - http://www.youtube.com/watch?v=BDSu0-qDFQ8 (видео-ряд тоже показателен)
Как то не соответствует образу.
Им надо надо такое петь:


link28 comments|post comment

Фотографическое [Sep. 2nd, 2009|01:12 am]

Read more... )

Отведал свежих моллюсков и икры морских ежей (колючие заразы. прокалывают китайские тапочки.)
Обгорел.
Весь город покрыт холмами, по этому вермя пути тада != времени пути обратно
Уличное движение отдает эксримом и все машины праворуки.
Везде стройка и все строители славянской национальности. Даже дорожные.

Видимо дадут грант и ещё 1 заказ.
link2 comments|post comment

Рабочее [Aug. 21st, 2009|02:03 am]
Когда я пишу на С\С++ - в голове постоянно крутится "блииин. был бы это питон, я бы гораздо короче и элегантнее написал"

Когда я пишу на питоне - в голове постоянно крутится "блииин. былбы это хаскель, я бы гораздо короче и поэлегантнее написал"
link5 comments|post comment

Идея [Aug. 16th, 2009|11:33 pm]
Надо бы написать софтЪ: общий буфер обмена(текстовый) у машин в сети. А то очень не удобно искать багу на одной машине, а писать гневное письмо на другой.
link8 comments|post comment

ужасужасжуас [Aug. 15th, 2009|02:16 am]
[music |Ashram - Forever at your mercy | Powered by Last.fm]

http://code.google.com/p/yogurt-mud/ - MUD-клиент на хаскеле.
link1 comment|post comment

Рабочее про DSL [Aug. 12th, 2009|04:17 pm]
Вот уже 4 года я делаю всяких робатовЪ

Сначала был ужас нс asm\С в обертке из тривиального DSL
Потом ужас на asm\C\С++ в обертке из нетривиального DSL
Потом ужас на asm\C\С++ в обертке из ужасного DSL

Расширять DSL мне надоело, по этому теперь вместо него python c небольшим фреймворком ;)
link8 comments|post comment

Про хранение данных в 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) то добраться до сущностей без этого поля будет в прицепе невозможно.
linkpost comment

Если кому интересно [Aug. 8th, 2009|07:42 pm]
Список лиц с высшим общим военным образованием, состоящих на службе в РККА (составлен по данным к 1 марта 1923 года).
linkpost comment

Это будущее [Aug. 6th, 2009|03:40 pm]
link1 comment|post comment

unixway [Aug. 3rd, 2009|05:23 pm]
Вопрос линуксоидам.

По долгу службы приходиться поддерживать дееспособность пары десятков сайтов.
Типичная задача - зайти по фтп, узнать что отвалилось, чуток подправить php и вернуться.
Под windows я это делаю фаром: прямая работа с ftp, удобная навигация по файлам и подсветка синтаксиса.

Что из мира linux позволит воспроизвести этот workflow с такой же эффективностью?
link25 comments|post comment

производительность 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 доступных.


Напишу, пожалй, серию бенчмарков.
link2 comments|post comment

Фотографическое [Jul. 26th, 2009|06:49 pm]
Съездил на дачу:


Read more... )
link2 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]

Advertisement