Pull to refresh
-4
0
Send message

Распределенные структуры данных [часть 1, обзорная]

Reading time 5 min
Views 14K

Давным давно, когда деревья компьютеры были большими, а процессоры одноядерными, все приложения запускались в один поток и не испытывали сложностей синхронизации.


Современные же приложения стремятся использовать все имеющиеся ресурсы, в частности, все доступные CPU.


К сожалению, использовать стандартные структуры данных при многопоточной обработке не представляется возможным, поэтому в Java 5 появились потокобезопасные структуры данных,
т.е. функционирующие исправно, при использовании из нескольких потоков одновременно, и расположились они в пакете java.util.concurrent.


Про Vector...

На самом деле, потокобезопасные, но неэффективные, структуры данных, как, например, Vector и Hashtable, появились еще в Java 1.0.
В настоящий момент, они не рекомендуются к использованию.


Однако, не взирая на всю технологическую мощь, заложенную в пакет java.util.concurrent, обработка информации потокобезопасными коллекциями возможна лишь в рамках одного компьютера, а это порождает проблему масштабируемости.


А что если нужно, в реальном времени, обрабатывать информацию о 100 миллионах клиентов,
когда датасет занимает 100Тб, а каждую секунду нужно совершить 100+ тысяч операций?
Вряд ли это возможно, даже на самом крутом современном железе, а если и возможно — только представьте себе его стоимость!


Намного дешевле добиться такой же вычислительной мощности объединив множество обычных компьютеров в кластер.



Остается лишь вопрос межкомпьютерного взаимодействия привычными средствами, схожими по API с потокобезопасными коллекциями из пакета java.util.concurrent и дающими те же гарантии, но не на одном компьютере, а на всем кластере.


Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Comments 13

От зависимых типов к гомотопической теории типов на Scala + Shapeless + ProvingGround

Reading time 14 min
Views 7.6K
Всем привет. Хочу поделиться своим опытом использования библиотеки ProvingGround, написанной на Скале с использованием Shapeless. У библиотеки имеется документация, правда, не очень обширная. Автор библиотеки — Сиддхартха Гаджил из Indian Institute of Science. Библиотека экспериментальная. Сам Сиддхартха говорит, что это пока не библиотека, а «work in progress». Глобальная цель библиотеки — брать статью живого математика, парсить текст, переводить естественный язык с формулами в формальные доказательства, которые мог бы чекать компилятор. Понятно, что до этого еще очень далеко. Пока что в библиотеке можно работать с зависимыми типами и основами гомотопической теории типов (HoTT), (полу-) автоматически доказывать теоремы.
Читать дальше →
Total votes 20: ↑20 and ↓0 +20
Comments 15

Над RethinkDB сгущаются тучи?

Reading time 3 min
Views 12K

Подозреваю, что у нас мало кто использует продукты этой компании. Хотя, как минимум, их одноимённая СУБД стоит внимания. На хабре видел пару статей всего.

К сожалению, компания RethinkDB, развивающая одноимённую СУБД и web-платформу Horizon, объявила о закрытии. После 7 лет разработки из-за неспособности организовать устойчивый бизнес основатели были вынуждены свернуть свою деятельность. СУБД RethinkDB и платформа Horizon передаются в руки сообщества. Код RethinkDB распространяется под лицензией AGPLv3, а Horizon под лицензией MIT.
Читать дальше →
Total votes 27: ↑27 and ↓0 +27
Comments 14

Солнце — это просто. Часть первая: инструменты исследования

Reading time 4 min
Views 1.8K
Сначала представлюсь. Я студент 4 курса факультета вычислительной математики и кибернетики нижегородского государственного университета. С 10-ого класса начал увлекаться солнечной астрономией. В последствии данное увлечение привело меня в отдел солнечной радиоастрономии нижегородского научно-исследовательского радиофизического института. Хотелось бы познакомить читателей хабра с тем, что мы знаем о Солнце и с тем, как идут исследования. Планируется несколько частей, в них я постараюсь рассказать всё достаточно доступно и сделать это чтиво увлекательным.

image
Читать дальше →
Total votes 100: ↑95 and ↓5 +90
Comments 46

«Регулярные выражения» или «Просто о некрасивом»

Reading time 8 min
Views 4K

«Регулярные выражения» или «Просто о некрасивом»




Начну с объяснения, что именно меня подвигло на написание этой статьи. Подвигла меня статья о регулярных выражениях которая публиковалась чуть раньше, кто читает хабру, уже наверняка ее видели, статья честно сказать не понравилась, потому как написать ее написали, но привели какой-то сложный пример в качестве использования и предложение купить книгу в 600+ страниц, что как мне кажется только отпугнет людей, которые могли бы ими воспользоваться.

Я специально не буду заглядывать ни в какие мануалы, и пичкать Вас информацией которую я сам не запомнил, уверен, для того чтобы заинтересоваться и начать пользоваться будет достаточно того, что умею и использую сам.
Читать дальше →
Total votes 32: ↑23 and ↓9 +14
Comments 22

Открытые репозитории кода по открытым данным и открытому государству

Reading time 3 min
Views 10K
Для всех кто работает с открытыми данными, делает свои проекты для себя, людей, для участия в конкурсах всегда бывает бывает полезен исходный код примеров того как данные собирались и что с ними делалось.

Я предлагаю составить список открытых репозиториев кода нацеленного именно на решение задач по работе с открытыми данными и примеры проектов которые на них основаны.

Вот список репозиториев зарубежных инициатив которые мне известны:
огромное количество проектов Open Knowledge Foundation — CKAN, расширения к нему, утилиты по преобразованию данных
репозитории исходного кода Sunlight Labs — очень много примеров того как распарсены многие американские сайты и базы данных, а также библиотеки по работе с данными разного вида
репозитории OpenGovernment.org — много примеров проектов на Ruby
репозитории департамента ИТ Оксфорда — их проекты по открытым данным такие как DataVerse;
открытый код Белого Дома (США) — проекты по петициям, стандартам API и всяким штукам для Drupal
репозиторий AlphaGov (UK) — материалы проекта www.gov.uk много кода самого проекта и подпроектов

Мы в Информационной Культуре работаем с открытыми данными постоянно и часть того кода что мы производим вполне может быть полезна и другим. Да что уж там, точно будет полезна.

Поэтому мы выложили много материалов в виде публичных репозиториев в которых каждый может найти что-то для себя и свободно использовать.
Читать дальше →
Total votes 31: ↑29 and ↓2 +27
Comments 13

Браузерный TTD: закрытое тестирование сетевой игры

Reading time 1 min
Views 5.8K
Всем доброго времени суток. Особенно любителям игры Transport Tycoon Deluxe. Напомню, что я занимаюсь портированием OpenTTD на JS и в последние время работал над портированием сетевой части игры. Сейчас промежуточные сборки позволяют играть по сети на одном игровом сервере. На данный момент сервер может принять до 255 игроков, а в одной игровой сессии может быть созданно до 15 компаний. Компанией может управлять как один, так и несколько человек (бекэнд — обычный OpenTTD сервер). Что бы не ударить в грязь лицом, я бы хотел провести закрытое тестирование.
Читать дальше →
Total votes 47: ↑39 and ↓8 +31
Comments 19

Portable Components, кроссплатформенная библиотека для C++

Reading time 13 min
Views 27K
«Система должна быть спроектирована так,
чтобы оставаться как можно проще
после серии внесенных в нее изменений»

Бьярне Строуструп – программист, автор языка C++

Преамбула


В данной статье мне бы хотелось бы рассказать о довольно популярной, но так редко освещаемой на Хабре библиотеке Portable Components (сокр. POCO). Она будет полезна как разработчикам бизнес-логики программного продукта, так и в решении большинства прикладных задач. При всем изобилии кроссплатформенных библиотек для C++ всё больше людей сталкиваются с POCO лицом к лицу и не знают с чего начать. В данной статье я постараюсь описать технологии, заложенные в библиотеке и дать простейшие примеры решения некоторых задач. Также хотелось бы отметить, что за плечами библиотеки множество успешных как Open Source, так и коммерческих проектов.
Читать дальше →
Total votes 80: ↑80 and ↓0 +80
Comments 40

Отладка программ на C для начинающих

Reading time 3 min
Views 32K
… или что делать если «Hello world!» упала.

Всё последующее в основном написано для ОС Linux и консольной отладки, хотя кое-что можно использовать и в других условиях.
Читать дальше →
Total votes 77: ↑51 and ↓26 +25
Comments 64

Список ресурсов для изучения Ассемблера

Reading time 4 min
Views 433K
Доброго времени суток!
Некоторым программистам иногда приходит в голову мысль «а не изучить ли мне ассемблер?». Ведь на нем пишут самые (с некоторыми оговорками) маленькие и быстрые программы, да и охота ощутить вкус низкоуровневого программирования берет свое. Ну и для общего развития не повредит.
Мысль эта не обошла стороной и меня. Вдохновившись историей одного байта, я ринулся в бой…

… но оказалось, что найти материал по интересующей теме не так просто, как хотелось бы. Посему решено было создать на хабре пополняющийся пост-индекс статей/книг/мануалов/etc. об этом, несомненно, великом языке.
Под катом находится, собственно, список с краткими комментариями, разбитый по категориям.

UPD
В список начали добавляться ресурсы по программингу микроконтроллеров.
Читать дальше →
Total votes 135: ↑130 and ↓5 +125
Comments 46

Исследование простого crackme

Reading time 3 min
Views 22K
Здравствуйте Хабралюди. В этом топике я расскажу как я исследовал простой crackme. Этот крякмис предназначен, в первую очередь, для новичков, желающих попрактиковаться в реверсинге. Я планирую продолжать цикл статей этой тематики, двигаясь постепенно от простого к сложному.
Читать дальше →
Total votes 155: ↑130 and ↓25 +105
Comments 57

Библиотека по электронике

Reading time 2 min
Views 89K
image

Доброго времени суток, хабрапользователи!



После моих постов:
Дистанционное управление по ИК
Ant-bot. Ворклог. Часть 1
Создаем робота в домашних условиях
Меня довольно часто стали спрашивать о том, какую литературу можно почитать по данному предмету. Чтобы помочь всем и сразу, я решил написать данный пост. =)
Под катом вы можете посмотреть — какую литературу использую я в процессе своих работ.

Читать дальше →
Total votes 63: ↑59 and ↓4 +55
Comments 59

Где погрызть гранит науки

Reading time 4 min
Views 28K
image Здравствуй, хабрасообщество. Я знаю, ты любишь халяву. А еще ты любишь учиться. Ведь так? А что может быть лучше для хабравчанина бесплатного образования? Вот и решил собрать специально для тебя подборку из ссылок, где можно набраться уму-разуму в области IT.
Все нижеперечисленные ресурсы абсолютно и официально бесплатны и свободны, что не может не радовать.

UPD. Переранжировал сайты. В категорию «Компьютерные науки» попали те сайты, которые можно внести более, чем в одну из нижеперечисленных категорий. Ранжировка производилась по большинству содержимого, то есть в некоторых сайтах, отнесенных к определенной категории, могут попадаться статьи не относящиеся к определенной, но они будут составлять абсолютное меньшинство

Большое спасибо в помощи добавлении ресурсов vansickle, RedFox, kagen, theinterman, sM1Le.

Англоязычные ресурсы



Компьютерные науки



OpenCourseWare MIT




Одно из самых больших хранилищ учебных курсов. Здесь собраны практически все курсы, которые преподаются в Massachusets Institute of Technology, который по праву считается одним из лучших в мире. На сайте всего 1900 курсов, а тех, которые преподаются на факультете Electrical Engineering and Computer Science я насчитал более 200. Состав большинства курсов: краткие конспекты лекций, подробное описание курса, календарный план, задания на лабораторные работы, задания на курсовые проекты и экзамены, промежуточные модули. К некоторым курсам прилагаются и видеолекции.

смотреть другие сайты
Total votes 223: ↑213 and ↓10 +203
Comments 69

Information

Rating
Does not participate
Location
Россия
Registered
Activity