nicity's Journal
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
nicity's LiveJournal:
[ << Previous 20 ]
| Friday, December 23rd, 2011 | | 5:30 pm |
B+HTree, now powering IntelliJ IDEA 11 indices Last summer I implemented mine own flavor of B+Tree aka B+HTree, H for Hash. Usually O characteristics for B trees are calculated on height of the tree, however insertion of the data to leaf block can be costly. E.g. if key / value pairs are stored as array, one needs to shift at least half of the pairs at insertion. To avoid the problem, the data storage itself is organized as binary tree or nested b+tree, still having complexity of logarithm of the size of leaf block (usually the size is at least 4K, or 100x of key/value pairs). B+HTree leaf node is organized as hash table with open addressing, achieving O(1) complexity for insertion / removal of elements, at the expense of some extra bits.
The data structure is used to store every index in IntelliJ IDEA 11, e.g. inverted index of indexed source code for IDEA project is 1,8M keys. For such size, it turned out that B+tree based index is twice as compact comparing to previous hash based representation. Index compactness + limited leaf page accesses contributed to significantly better indexing performance of IntelliJ IDEA 11 for large code bases. | | Monday, March 28th, 2011 | | 6:10 pm |
| | Wednesday, October 6th, 2010 | | 12:14 am |
Wanna be users of X64 Ubuntu, beware of old "stuff"
Your old i32 applications (e.g. приблуда именующая себя flash player) may be not running with lame "No such file or directory" excuse. Do not use ls wand more than 3 times but cast "sudo apt-get install ia32-libs" 2nd level magic spell. | | Monday, October 4th, 2010 | | 1:57 pm |
C/C++ plugin v. 0.8.1 for IntelliJ IDEA 8/9/X
Change notes: * Major feature: initial support for handling Cpp and C files without switching settings. * Completion of member names in constructor initializer list. * Find usages over string literal will find other occurrences of the same literal. * Completion of macros parameters inside macro body. * Assorted performance and usability fixes got from dog fooding :). * Completion / navigation for targets / value references in makefiles. * Recent find usages action works in usage view for c++ symbols. * Option to disable multiple definition checks (C++ Project Settings|Settings). * No absent definition error produced for declaration of static integral constant inside class. * Leading // file level header comments are folded. * Fixed bug with broken "Navigate to constant / macro". * Added IdeaX support. * Dropped Idea 6 (Demetra) and Idea 7 (Selena) support. Install it from IDEA's plugin manager | | Monday, August 16th, 2010 | | 11:01 am |
Кредиты СитиБанка - отстойло!
Я решил взять кредит Ситибанка на сумму X. Я у них давний постоянный клиент, уже брал кредит (и выплатил :), принёс официальную справку о зарплате. Вы думаете мне дали кредит на сумму X? Нет, не дали, только на сумму 0,6*X, что существенно меньше даже чем прошлый кредит. Потом я вспомнил, что в первый раз была такая же история, дали кредит меньше чем просил. Но Ситибанк часто перекредитует (думаю, в первую очередь тех, кому дал меньше запрошенного:). Т.е. помимо получения меньшей суммы, клиенты также попадают несколько раз на минимум три месяца самых больших процентов после каждой выдачи кредита. ЗЫ Про высокий процент по кредиту Ситибанка я даже писать не стал. | | Wednesday, June 2nd, 2010 | | 9:22 pm |
Several V8 instances in process, ep. 2
В репозитории V8 появилась экспериментальная ветка Isolates, в которой вытаскиваются статические данные в отдельный класс Isolate, а статические методы глобальных объектов типа Heap становятся экземплярными. Интересно, что это та самая работа, что я проделал для того, чтобы поддержать несколько экземпляров v8 в процессе (класс V8Context -> класс Isolate), сделал доступной ( репозиторий, патч на ревью). Вот такой Open source in action и Easier To Write New Code ... Update: Index: AUTHORS =================================================================== --- AUTHORS (revision 4838) +++ AUTHORS (working copy) @@ -28,4 +28,5 @@ Rodolph Perfetta Ryan Dahl Subrato K De +Maxim Mossienko
| | Thursday, April 22nd, 2010 | | 9:37 pm |
Удивительное рядом
В очередной раз смотрю как быстро индексирует исходники Идея, на этот раз открываю ещё таск-мэнеджер, включаю опцию Read I/O bytes , Write I/O bytes и вижу невобразимое, тихо и незаметно какой-то процесс прочитал уже 1.6 ТБ | | Wednesday, February 17th, 2010 | | 1:31 pm |
CppTools 0.7.1 for IntelliJ IDEA 6/7/8/9
Change notes: * IDEA 9 (Maia) / Community Edition support. * Override / implement methods action for IDEA 7/8/9. * Quick navigate info (aka Control + mouse hover) for IDEA 7/8/9. * Report problem with instantiation of abstract classes. * Quick fixes: static_cast / dynamic_cast when type cast error detected. * Bugfixes. Install it from IDEA's plugin manager | | Thursday, January 21st, 2010 | | 6:10 pm |
| | Wednesday, January 20th, 2010 | | 1:48 pm |
Презентация Ларс Бак про V8
Сходил на презентацию Ларса Бака про V8. Доклад и сам Ларс оставил приятное ощущение, хотя быстро стало понятно, что это частично ПиАр акция, нацеленная на заманивание людей на работу :). Таргетирование на ребят из Сана. ЗЫ Я наконец узнал, что такое SMI | | Tuesday, November 17th, 2009 | | 10:36 pm |
| | Tuesday, November 3rd, 2009 | | 1:10 am |
Цена прогресса
Развлекаюсь дома с исходниками V8, комп старый с 1гигом памяти. Решил докупить памяти, 1гиг DDR стоит 1900 рублей, столько же стоит 2гига памяти DDR2 или DDR3. Вот такой однобокий технический прогресс. | | Tuesday, September 15th, 2009 | | 12:18 pm |
| | Monday, September 14th, 2009 | | 4:00 pm |
| | Friday, May 15th, 2009 | | 3:55 pm |
| | Thursday, April 9th, 2009 | | 6:15 pm |
Sun TechDays 2009, ощущение после 3,5 часов посещения
1. Ощущается кризис на дворе, секции про Java EE вообще нет, размер выставки сократился 2. JavaFX основной гвоздь программы, видимо с прицелом в мобильные устройства (и синезубые проигрыватели), на десктопе проигрывает флексу однозначно. 3. Обещали портированный WebKit в Джаве, отдельной дистрибуцией. | | Saturday, March 14th, 2009 | | 3:13 pm |
CppTools IDEA 0.6.1 plugin released
After more than one year of occassional hobby development I am happy to announce CppTools 0.6.1 plugin for IDEA 8, 7, 6, supported OSes: Windows, Linux / i386, Mac OSX / i386, multiple authors participated Changes worth noting:
- IDEA 8 / 7.0.4 support.
- Completing macros names.
- Navigating macros parameters.
- Show all project errors / warnings action (Tools | Cpp Support | Show All Errors And Warnings).
- Included file name completion, find usages (#include "here":).
- Different highlighting for (static) fields / methods and parameters.
- Goto super method (Control + U) action works in c++ code for IntelliJ IDEA 7.0 (Selena / Diana).
- Goto Implementations (Control + Alt + B) / View Implementations (Control + Shift + I) actions work in c++ code.
- Goto File action allows navigation to (system) included files.
- Autopopup completion after dot, arrow, namespace selector.
- Parameter info in function / method invokations and macro calls.
- Generate case branches for switch over enum (generate) action.
- Move method definition to its declaration action.
- Quick fixes: convert '->' to '.' and '.' to '->', insert / remove cast to required type.
- Many bugfixes :).
| | Tuesday, February 3rd, 2009 | | 6:08 pm |
| | Saturday, November 8th, 2008 | | 2:46 am |
Как получить канал передачи данных с бешеной скоростью и без затей?
Нагрузим грузовик DVD-ROM-ами... Оценим количество дисков, которое влезет в кузов. Один диск - примерно в миллиметр толщиной. Возьмем 1.1, чтобы учесть неплотность прилегания и погрешность измерения. Возьмем глубину кузова за полметра. Грузовики бывают разные, но у нас, предположим, будет c площадью кузова равной 10 кв.м. Опять же, бывают больше, бывают меньше, наш -10м. В такой грузовик влезет (500 / 1.1 диска в высоту и ((10000*10000)/(120*1 ) = 94 диска в одном слое. Это порядка 3 000 000 дисков. Это около 13000 терабайт. При скорости в 100 км/ч и расстоянии в 100 км скорость передачи данных будет около 3640 гигабайт в секунду. | | Friday, October 3rd, 2008 | | 3:29 pm |
Русский язык в широкие массы программистов на С++
использовати площадь какобычно аминь1 наместе двояко провѣрятичегоглаголют молчаливо кагбе ѣжѣли получалка.сломалася молчаливо тогдауж кагбе молвити "Не лепо молвишь, барин!" аминь1 возвѣрнути нуль спасихоспади1 ага возвѣрнути один аминь1 ага оригиналЗЫ те кто писал на русском Коболедля 1С в цирке не смеются :))) |
[ << Previous 20 ]
|