Сборник структур данных
Подскажите пожалуйста какой нибудь очень полный сборник структур данных, на пример со всякими Finger Tree, VList и т.д. Чем более полный тем лучше. Если доступный легально онлайн, еще лучше.
Спасибо
Перемещено JB из talks
Подскажите пожалуйста какой нибудь очень полный сборник структур данных, на пример со всякими Finger Tree, VList и т.д. Чем более полный тем лучше. Если доступный легально онлайн, еще лучше.
Спасибо
Перемещено JB из talks
Что бы натыкать тут?
sudo eselect mesa list
64bit i915 (Intel 915, 945)
[1] classic *
[2] gallium
64bit i965 (Intel 965, G/Q3x, G/Q4x)
[1] classic *
[2] gallium
64bit r300 (Radeon R300-R500)
64bit r600 (Radeon R600-R700, Evergreen, Northern Islands)
64bit sw (Software renderer)
[1] classic
[2] gallium *
32bit i915 (Intel 915, 945)
[1] classic *
[2] gallium
32bit i965 (Intel 965, G/Q3x, G/Q4x)
[1] classic *
[2] gallium
32bit r300 (Radeon R300-R500)
[1] classic
[2] gallium *
32bit r600 (Radeon R600-R700, Evergreen, Northern Islands)
[1] classic
[2] gallium *
32bit sw (Software renderer)
[1] classic
[2] gallium *
Немного не понимаю разницы где надо classic, а где gallium. Хотя оба тормозят.
glxinfo
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
OpenGL vendor string: Tungsten Graphics, Inc
OpenGL renderer string: Mesa DRI Intel(R) Ironlake Mobile
OpenGL version string: 2.1 Mesa 7.11.2
OpenGL shading language version string: 1.20lspci
00:02.0 VGA compatible controller: Intel Corporation Core Processor Integrated Graphics Controller (rev 12) (prog-if 00 [VGA controller])
Subsystem: Lenovo Device 3951
Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
Latency: 0
Interrupt: pin A routed to IRQ 41
Region 0: Memory at f8000000 (64-bit, non-prefetchable) [size=4M]
Region 2: Memory at d0000000 (64-bit, prefetchable) [size=256M]
Region 4: I/O ports at 1800 [size=8]
Expansion ROM at <unassigned> [disabled]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Address: fee0f00c Data: 4159
Capabilities: [d0] Power Management version 2
Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
Capabilities: [a4] PCI Advanced Features
AFCap: TP+ FLR+
AFCtrl: FLR-
AFStatus: TP-
Kernel driver in use: i915Скорость флеша надо бы достичь на Intel. Ati отдельная песня.
Надо ЯП подобрать запасной, кроме Java/Groovy/Scala. Лабки писать, приложения небольшие
Какой из ЯП в заголовке лучше всего подойдет если программа, возможно с гуями, будет написана на линуксе, но возможно прийдется демонстрировать на венде, причем с минимальными усилиями на развертывание и с минимальной вероятностью проблем с переносимостью. Как там с инсталляторами на венде? Так чтобы был гуй тулкит?
Хочу подобрать ЯП, ибо вчера написал лабку на NumPy, PIL, ScientificPython. Должен признать Python для маленьких скриптецов достаточно годен. Думаю стоит ли его получше изучить или пока не поздно перепрыгнуть на Ruby. В контексте конечно миграции скриптецов на венду
У человека, работа которого не связана напрямую с вебом возникла идея. Как насчет создания веб-фреймворка, который призван минимизировать генерацию сложного динамического контента. Основная идея - максимум выноса в статику, например на Nginx.
Говоря другими словами, это удобный REST фреймворк, который 99% времени отдает и получает JSON/XML в максимально удобной форме. Кроме этого out-of-the-box ленивая генерация статических HTML страниц в папку, которая раздается nginx на основе данных их БД. Тоесть вам нужен /goods/item/3, вы будете перенаправлены на /goods/item/3.html, который только что нагенерен фреймворком и будет отдан nginx. Если он там есть, то можно сразу редиректить. Более быстрая альтернатива - делать это со стороны nginx. Плагин в нем будет дергать генерацию страницы и нашего фреймворка. Если данные в 3 изменятся, то страницу можно инвалидировать. Эдакий автоматический server side caching, который можно применять к различным ресурсам. Например тривиальный submit загруженой картинки в такую папку.
Comet - first class citizen
Все это делается ручками и решается вполне всякими проксями, но можно на Scala/Groovy/Ruby/Python побороться за максимальную краткость, прозрачность и простоту.
GWT вообще говоря делает подобное, но там намешано много чего и все скрыто. Круто было бы сделать простой фреймворк полностью вокруг идеи статики+Ajax+REST.
Интересно узнать насколько продвинулся мир в этом направлении. Прошу критику, примеры существующих фреймворков, аргументы о полной ненужности.
Посоветуйте книгу/ресурс, где будут переводы нетривиальных приложений (серверов например) с императивного в функциональный стиль. Лучше в рамках одного языка.
Спасибо
Перемещено mono из talks
Они хотят добавить макросы
https://plus.google.com/u/0/113026104107031516488/posts/ZRdtjTL1MpM
Вольные пересказ для Ъ: Автор Guava просит не присылать патчи, потому что гугловцы считают их говном. Говном в коде, в документации и на уровне идеи. И проблем эти патчи не решают и им влом потом все это мержить и интегрировать в святые системы гугл. Guava - оперсорц только потому что Google хочет выглядеть good guys, но community они видали в гробу. Внутри Google куча legacy кода, который должен сразу поломаться от любой новой фичи в Guava. И только из-за того что Дартаньяны разработчики не принимают патчи, Guava такая прекрасная.
Примечание от переводчика: Гуава хороша на фоне остальных коллекций Java, но посмотрев на самый захудалый список в Scala хочется пустить скупую мужскую слезу за коллег, которые носятся с этой гуавой.
P.S. Guava - библиотека коллекций, хелперов и т.д. от Google
P.S.S. Что я хотел сказать? Опенсорц в гугле как он есть. Конечно они имеют на это полное право. Но мы то знаем что нифига они после этого не дартаньяны, которыми хотят казаться
http://www.johndcook.com/blog/2010/05/18/pure-functions-have-side-effects/
Ъ: У чистых функций всегда есть side-effects, которые выражаются в пожирании памяти и CPU.
Очевидно конечно, но почему об этом не орут на первой странице каждой книги по функциональному программированию?
Обычно описывают в качестве преимущества отсутсвие схемы, например в MongoDB. Мол в коллекцию можно пихать новые объекты, у них будут новые поля, а если запрос достанет старые объекты, то там будет null на местах новых полей. И не надо возиться с миграцией схемы.
Прошу высказать свое мнение тех людей, которым это принесло пользу. Или подкиньте материалов, которые разжевывают профит.
Например поле переименовали? Тут два варианта, или городить if на клиенте с замысловатой проверкой наличия полей или поля версии или провести миграцию старых значений. В первом случае костыль, во втором так же как и в базах с наличием схемы.
Задали в универе лабку. Суть в том, что надо собрать команду из 3-5 студентов и заюзать весь цикл разработки, дизайн, разработку, тестирование, надо юзать контроль версий, возможно CI. Короче поиграть в почти скрам команду.
Есть студенты, которые знают/горят желанием изучить Scala. Возникает желание написать какой нибудь небольшой DSL, который мог бы быть полезным кому-то.
Есть идеи?
Есть у кого-то ссылки на обсуждение почему Линус не добавит в код эти системы и позволит их включать по желанию, оставив по дефолту все как было раньше?
Сабж. Как вам идея запилить возможность твитнуть с ЛОРа?
Как бы вы реализовали следующую функциональность? Сразу скажу, что код ради интереса пишется в стиле Performance Special Olympics. Различные сканирования в цикле структур данных надо избегать.
Есть некий обьект, у которого есть методы isValid(), invalidate() с очевидным назначением. Ссылка на обьект хранится в куче структур данных. Идея в том, что как только где-то этот обьект сделали invalid, сразу он магическим способом выпилился из всех структур.
Как бы вы делали?
1. Паттерн observer. Минус - регать в самом элементе каждую коллекцию и потом все это дебажить. При удалении элемента в многих коллекциях будет достаточно много сканирования по всей коллекции. Очевидно нельзя удалить 100 таких элементов за один проход.
2. Переписать (наследовать) коллекции так, чтобы они скипали и удаляли инвалидные элементы когда на них наталкиваются. Минус - переписывать и дебажить коллекции. А потом появятся еще какие нибудь хитрые коллекции с неочевидной работой и от них тоже расширяться
3. Написать специальные алгоритмы поиска, итерации и т.д. Чуть лучше пункта 2, потому что используется оборачивание интерфейса, что обеспечивает покрытие большего количества коллекций и не надо имплементить все методы коллекции и следить за их согласованостью.
4. Забить нах, доставать элемент, проверять на валидность и выкашивать ручками от случая к случаю.
5. Ваши идеи
Интересуют сферические бенчмарки в вакууме которые не нужны. Встречался ли вам где-то в Инете рекорд количества сообщений в секунду, например в режиме echo для одного instance сервера.
Подписался на твиттер чтобы не провтыкать скидку на IDEA ;) Норм штука. Посоветуете интерестные и активные девелоперские каналы. Побольше технических статей, поменьше "сегодня состоится очередная встреча в помощь детям африки".
Ваше мнение. Насколько оличается этот термин у нас и например в США (очень интересно послушать очевидцев)
| ← предыдущие |