За наводкою пана Андрія.
March 2009 Archives
Використання limit/offset - чистої води костиль. Судячи з швидкості роботи, база кожного разу знаходить всі необхідні дані і тільки потім вирізає з них потрібний шмат. В результаті, хоча падіння бінаря таким чином і лікується, обчислювальні потужності використовуються неефективно.
В мене два варіанта: або вносити зміни в PGOCaml, або виносити частину обчислень (наприклад, побудову різних розподілень) в PostgreSQL. Перший варіант обіцяє відняти купу часу та зусиль ще до того, як я зможу перейти до обробки статистики. З іншого боку, в в перспективі він дозволить не залежати від сховища даних, всі алгоритми будуть описані однією мовою і я залишу за собою можливість (принаймні, потенційну) застосовувати різні структурами даних, - масиви, списки, бінарні або хешеві асоціативні масиви, тощо, - для вирішення різних завдань.
З іншого боку, використання PL/pgSQL дозволяє мені перейти до обчислення статистики, яка потрібна мені для фільтрації документів та уривків, що не потребують індексації в рамках задачі кластеризації, а також відкриває шлях до cloud computing: Skype колись розробив та виклав у вільний доступ мову для PostgreSQL для виконання remote database procedure calls.
Хто-б знав, як я не люблю приймати подібні стратегічні рішення на ранніх стадіях розробки.
Годинники всі перевели?
Доброго ранку, Україно ;-)
... В связи с чем прошу вас прекратить писать плохой код, удалить его и написать хороший.
Сказав Смеш.
Вот по итогу и выходит, что стандартный киевлянин это:
...
До речі, я давно пропонував перенести столицю кудись в інше місце аби різні підараси мали можливість ступенька за ступенькой продвигаться к своей цели десь в іншому місці.
Що таке ідеальна журналістика? Актуальна тема, якісний розбір проблеми, хороший читабельний текст. Хочете ідеальної журналістики в Україні? Прошу: «Визир» следует запретить.
В статті аналізується на цілком доступному рівні робота приладу, який напряму впливає на гаманець українських водіїв. Мені особисто, крім солідної аргументації, сподобалось достойне ставлення авторів до ДАІ. Шкода, що нема аналогів Пулітцера в Україні, стаття легко отримала-б перший приз.
Наштовхнувся на неприємну проблему: при отриманні великих (>1M записів) наборів даних з бази за допомогою PGOCaml прога має дуже великі шанси вилетіти внаслідок переповнення стеку. Причому якщо bytecode-версія вилітає з повідомленням про виключення Stack_overflow, то нативний бінарь випікає корку (як на OS X, так і на FreeBSD 7.1-STABLE), з якої зрозуміти проблему можливо тільки теоретично.
Виходів два: або накладати додаткові умови на запити з тим, щоби отримувати менші набори, або використовувати синтаксис offset/limit. Збільшувати стек не хочеться. Також мені здається, що з часом навіть додаткові умови не допоможуть і все одно доведеться розбивати результати на частини. Тому, аби не відкладати справу в довгий ящик, я буду робити це вже зараз.
Якщо дати собі волю, то я-б годинами втикав в журнали працюючих систем. Зараз я дивлюсь як працює краулер і не можу відірватись:
"Я можу нескінченно дивитись, як тече вода, горить полум'я та біжать логи"
Техногіпноз.
Може я помиляюсь, але движок "Економічної Правди" дуже не любить запитів виду http://www.epravda.com.ua/tags/tag_.../.
Два кілометри - приблизно 44 хвилини, другий кілометр - 21 хвилина. Контрольні 50 метрів перед виходом з води - 33 сек.
Треба походити в басейн більш-меньш регулярно :-)
Щось забагато часу я почав проводити в гостях у Беркема. Хто не в курсі, Беркем Аль Атомі - автор антиутопії "Мародер". Для мене абсолютно незрозуміла особистість: з одного боку - безумовно розумний штрих, з іншого - людина з кардинально протилежною моїй картиною світу. Чим власне і цікавий. Ну і ще він намагається підтримувати порядок у своєму блозі і дискусіях.
P.S.: обережно, ненормативна лексика!
Сиджу, курю відстань Махаланобіса, роздумуючи чи можна її буде застосувати для моєї поточної задачі.
Конкретно ця відстань використовується для визначення приналежності вектора випадкових змінних вже існуючому кластеру таких-же векторів. Цікава тим, що враховує не тільки відстань до середнього значення кластера, а й його "форму".
Те, що я планую прочитати, просто залишається у відкритих табах в FireFox. Він в мене, коли стартує - відновлює свій стан до виходу, тобто, відкриває всі вікна і таби.
Зараз він при старті відкриває три вікна по 15-20 табів в кожному. Переважно, англомовні статті про функціональне програмування, математику та економіку. Кожна приблизно на 30-40 хвилин читання. Але там ще є пара літературних творів на 10-12 годин і дечого на покоментувати.
Але КОЛИ? Треба від чогось відмовлятись :-(
Для того, щоби якісно кластеризувати тексти новинних повідомлень або статей, треба спочатку до них добратись. Легко це робить тільки людський мозок, який миттєво знаходить на сторінці текст статті (як-би йому не заважали в цьому веб-майстри, розсовуючи всюди гори реклами :-).
Але ...
А УТ-1 показує м'юзікл "Notre Dame de Paris".
В оригіналі.
Молодці.
Подивився ролік KillZone 2, задумався про PS3.
Count censored:
Так, Росія нарешті доросла до свого Майдана. Дивитись всім:
Я плакав стоячи.
Наскільки все-таки смачний хороший чорний чай з правильними вершками. Правильні, це коли дістаєш літрову банку вершків з холодильнику, встромляєш в них ложку і вона спокійно стоїть. А ти в цей час роздумуєш про християнський піст.
А ще в мене в холодильнику печінка, тушена зі сметаною, правильні італійські спагетті та каструля бульйону з індички, що пречудово йде гарячим з кружки та під сухарики. Можете мені по-білому позаздрити.
Рейтерс опублікувала результат розслідування SEC проти E*Trade.
E*Trade "ані підтвердив, ані заперечив" обвинувачення, але підтвердив готовність виплатити ~34 мегабакса штрафів.
Коли в мене був IBM ThinkPad, на якому крутилась фряха, я зовсім не боявся завантажувати його якимись числогризними задачами і він добами безперервно міг щось рахувати.
А от зараз мені трохи лячно - вентилятор гуде, замість індикаторів завантаження процесора - два чорних квадратика, навіть винт чути.
І це тільки бот. Мабуть, таки доведеться переїхати на сервер. Хоча, у мене як-раз бот виконує дуже неприємну стадію парсинга html та засовування того, що получилось, в базу.
Цікаво, яка вірогідність того, що уламки двох супутників, що зіткнулись нещодавно, зможуть запустити "ланцюгову реакцію" руйнування різних об'єктів на орбіті?
Пару хвилин тому мій бот наштовхнувся на прикольну сторінку: список банкоматів на kommersant.ua. Вони стверджують, що це повний список всіх банкоматів України.
Не знаю, наскільки він повний, але їх там - дофіга.
Іноді в мене з голови вилітають елементарні речі і доводиться витрачати час, щоби їх згадати або знайти доку, де проблема описана. 10, 15, 20 хвилин вилітають на пусте. Що з цим робити?
Тільки-що витратив 10 хвилин на те, щоби знайти майже очевидне: як в PostgreSQL створити пару базу-користувач так, щоби користувач не мав доступу ні до чого, крім цієї бази. Перебрав, блін, кілька варіантів перед тим, як подивитись на синтаксис create database. Хоча все вирішується в дві прості команди:
create user username with password 'secret';
create database dbname with owner username;
Погрався та закрив. Useless.
(замислено) А він-жеж багато в чому правий.
Думаю, всі помічали, що новини часто дублюються в різних джерелах. Або з однієї великої статті, скажімо інтерв'ю, робиться багато маленьких повідомлень в різних місцях. Або до статті з одного джерела додають "агресивний" заголовок і майже дослівно передруковують її на іншому. Або [тут іще сто тисяч способів створення шуму].
Наша відповідь генераторам лайна - кластеризація новин та створення метановинних фідів.
Цим постом я починаю серію, що присвячена моєму поточному проекту. В цій серії я буду описувати практично всі його аспекти від глобальної мети до подробиць реалізації окремих алгоритмів. Декому я вже розповідав про те, чим я зараз зайнятий 80% свого часу в приватних розмовах, але тут я сподіваюсь ще й на зворотній зв'язок у вигляді критики, ідей та пропозицій.
Керніган про фінансування Bell Labs. Частина великого інтерв'ю. Цікаво, як на мене:
There's the interesting question of ``how does a company justify the money it spends on research''. Lucent at this point has 150,000 employees or so; the research part of it, the part that is you and me, is somewhat less that 1% of that, maybe it's 1000 to 1500 people. The company's annual revenue was 38 billion $ in 1999, so we're spending about 400M$ annually on research to keep you and me sitting in comfortable offices thinking great thoughts. That actually seems like a pretty reasonable way to invest, a high-risk but potentially high-reward part of your assets. You have to be thinking ``where are we going to be a few years from now?'', what kinds of problems now bother us, that we have to get some kind of solution to, which we don't need today; it would be nice if we had it today, but we know that we're going to need it in the future. Unfortunately it's really hard to figure out how to do these things, sometimes even what the right problems are. I think that the best mechanism anybody has found yet is to take a small amount of money, 1% let's say, and hire a bunch of bright people, and put them into an environment where they are encouraged to talk to each other, to talk to the people in the rest of the company, to find out what kinds of problems the people in the rest of the company have; people in the rest of the company are also encouraged to come and say ``can you help with this problem that we have?'', and the hope is that by this almost random process, and it really is in many ways random...
