Pull to refresh
4
Олег Цилюрик @Olejread⁠-⁠only

Linux, Linux kernel, программист

Send message

Викторианская история больших данных

Reading time12 min
Views4K

В весьма впечатлившей меня книге «Информация. История. Теория. Поток» Джеймса Глика, о которой я уже упоминал ранее, страннейшим образом обойдён вопрос о том, как возник феномен «Big Data». В той же книге упоминается первый авторский словарь английского языка, составленный в начале XVII века неким Кодри, а далее развивается идея о том, что феномен концептуализируется в языке после того, как попадает в словарь – в английской культуре таким словарём является оксфордский.

Тогда я попробовал проверить, когда же в английском и русском языке закрепилось понятие «BigData» и, соответственно, «большие данные». Распространено мнение, что выражение «BigData» впервые было употреблено в 2008 году в статье Клиффорда Линча  «Big data: how do your data grow?», опубликованной в журнале «Nature», но даже это небольшое исследование подсказывает, что всё гораздо сложнее.

Читать далее
Total votes 37: ↑33 and ↓4+29
Comments0

Простые Задачи и Функционально-Блондинистый Подход

Reading time5 min
Views25K
sad girl and lambda expression

Пару месяцев назад я взяла на себя обязательство по самопросвещению. Есть в иных конторах такая тема — сотрудника, раз в полгода ревьюят и говорят «давай к следующему ревью ты изучишь Spring, паттерны (какие?) и функциональное программирование!» Идея была бы неплоха если бы цели не ставили так размыто. Пропустим пока спринг и паттерны — на выходных я бросилась в атаку на ФП.

Общие-туманные сведения о ФП у меня конечно были — анонимные классы в Java я писать умею — с похожими способностями Python и JavaScript знакома.

Начну с простых упражнений на Scala — решила я. Выбрала Scala поскольку основной рабочий инструмент у нас Java — ну были еще варианты Clojure, Groovy и Java8 (что-то еще?) — но с ними авось попробую потом.

Поставила себе цели (а правильно ли я ФП поняла?):
  • Решать задачи в функциональном стиле
  • Т.е. по возможности не использовать явных циклов и ветвлений
  • А также избегать мутабельных коллекций и т.п.


Одни упражнения получались легко, другие мягко говоря не очень. Сейчас я попробую вкратце рассказать об этом — упорядочить новые познания. Трудно сказать, может ли эта статья кому-то в будущем помочь или, скорее, кто-то поможет мне самой, указав на ошибки или предложив улучшения.
Читать дальше →
Total votes 42: ↑31 and ↓11+20
Comments35

Разработка менеджера закачек на GO

Reading time8 min
Views30K
Менеджер многопоточных закачек на GO.

http://loafter.github.io/godownloader/
https://github.com/Loafter/godownloader


Вступление


Давным-давно, в году этак 1998, для выхода в интернет я использовал модем на работе у отца. Он его включал вечером после работы и я мог наслаждаться просторами сети интернет на скорости аж 31.2 кбит/c. В то время не было истеричных блогеров, страницы не весили по мегабайту, а в новостных сайтах говорили только правду. Естественно основной интерес представляли ресурсы. Картинки, программы, всякие дополнения к играм, вроде машинок. Как сейчас помню качать через IE было сущим адом. Скачать файл весом больше 500 кб было просто невозможно, древний осел был намного упрямей.
Читать дальше →
Total votes 45: ↑42 and ↓3+39
Comments38

Go, практика асинхронного взаимодействия

Reading time8 min
Views34K
Немножко про каналы, про выполнение в основном процессе, про то как вынести блокирующие операции в отдельную горутину.
  • Каналы и пустое значение
  • Односторонние каналы
  • Выполнение в основном треде ОС
  • Вынос блокирующих операций

Читать дальше →
Total votes 23: ↑19 and ↓4+15
Comments32

Встраивание в ядро Linux: перехват системных вызовов

Reading time17 min
Views26K
Под термином «системный вызов» в программировании и вычислительной технике понимается обращение прикладной программы к ядру операционной системы (ОС) для выполнения какой-либо операции. Ввиду того что такое взаимодействие является основным, перехват системных вызовов представляется важнейшим этапом встраивания, т.к. позволяет осуществлять контроль ключевого компонента ядра ОС — интерфейса системных вызовов, что, в свою очередь, даёт возможность инспектировать запросы прикладного ПО к сервисам ядра.

Данная статья является продолжением анонсированного ранее цикла, посвящённого частным вопросам реализации наложенных средств защиты, и, в частности, встраиванию в программные системы.

Читать дальше →
Total votes 33: ↑33 and ↓0+33
Comments8

Встраивание в ядро Linux: перехват функций

Reading time9 min
Views17K
Перехват функций ядра является базовым методом, позволяющим переопределять/дополнять различные его механизмы. Исходя из того, что ядро Linux почти полностью написано на языке C, за исключением небольших архитектурно-зависимых частей, можно утверждать, что для осуществления встраивания в большинство из компонентов ядра достаточно иметь возможность перехвата соответствующих функций.

Данная статья является продолжением анонсированного ранее цикла, посвящённого частным вопросам реализации наложенных средств защиты и, в частности, встраиванию в программные системы.

Читать дальше →
Total votes 31: ↑26 and ↓5+21
Comments37

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Works in
Date of birth
Registered
Activity