Pull to refresh
18
0
Кирилл @bootch

User

Send message

Будущее Лиспа

Reading time4 min
Views6.3K
Это перевод статьи Стивена Дегутиса.

Будущее Lisp


В последнее время я часто стал задумываться о существующих диалектах Lisp и о том, в каком направлении мы двигаемся. В частности, я рассматривал возможность написания очередного диалекта Lisp, и те сферы, в которых бы он пригодился.

Если вы еще не знакомы с ним, Lisp является замечательным семейством языков; его чрезвычайно минималистический синтаксис позволяет нам думать практически на уровне алгоритмов, не заморачиваясь по поводу неочевидного синтаксиса или каких-либо языковых рамок.

Положение на рынке


Традиционно, существует Scheme, который полезен разве что для преподавания в вузах из-за скудности поддерживаемых библиотек, есть также Common Lisp, который представляет из себя ужасную, страшную неразбериху (представьте C++, но с целым морем скобок).
Читать дальше →
Total votes 41: ↑31 and ↓10+21
Comments54

Скобочная форма описания графов

Reading time5 min
Views7.6K
Написать эту заметку меня побудила статья «Хранение иерархических данных в плоском виде», в которой автор занимается решением задачи хранения дерева комментариев в виде плоского текста. Дерево это ведь граф, поэтому я вспомнил о молодом и мало известном аппарате описания графов их скобочными образами, на который наткнулся в процессе написания диссертации. О технологии построения скобочных образов графов я и расскажу.
Читать дальше →
Total votes 23: ↑18 and ↓5+13
Comments15

CPrompt — интерпретатор языка си

Reading time3 min
Views6.8K
С июня 2009 года я занимаюсь разработкой интерпретатора Си. (я уже упоминал об этом в статье о вызовах функций).
Сейчас уже реализовано достаточно много конструкций: циклы, выбор, вычисление выражений, вызовы функций (как объявленных пользователем, так и стандартных), инклуды и другое.
интересно?
Total votes 50: ↑38 and ↓12+26
Comments74

Регулярные выражения, пособие для новичков. Часть 1

Reading time14 min
Views914K
Регулярные выражения (РВ) это, по существу, крошечный язык программирования, встроенный в Python и доступный при помощи модуля re. Используя его, вы указывается правила для множества возможных строк, которые вы хотите проверить; это множество может содержать английские фразы, или адреса электронной почты, или TeX команды, или все что угодно. С помощью РВ вы можете задавать вопросы, такие как «Соответствует ли эта строка шаблону?», или «Совпадает ли шаблон где-нибудь с этой строкой?». Вы можете также использовать регулярные выражения, чтобы изменить строку или разбить ее на части различными способами.
Читать дальше →
Total votes 105: ↑99 and ↓6+93
Comments32

Библиотека для упрощения HTTP-запросов

Reading time1 min
Views150K
Requests — библиотека Python, которая элегантно и просто выполняет HTTP-запросы. Теперь не нужно осваивать urllib2 с излишне сложными программными интерфейсами.

Вот как выглядит HTTP-запрос с авторизацией с помощью requests:

>>> r = requests.get('https://api.github.com', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json'
Читать дальше →
Total votes 133: ↑117 and ↓16+101
Comments32

Кластеризация. Алгоритм а-квазиэквивалентности

Reading time3 min
Views7.5K
Странно, но статей о извлечение знаний (data mining) и кластеризации (как одном из основных инструментом, которие используются для извлечения знаний) на Хабре совсем немного. А если говорить говорить о конкретных алгоритмах, то рассматривались только hard/soft k-means.

В статье ниже описывается теория и реализация (Python + matplotlib) не очень известного, но крайне интересного иерархического метода который можно назвать алгоритмом а-квазиэквивалентности.

Читать дальше →
Total votes 35: ↑31 and ↓4+27
Comments18

Использование TrueCrypt c ключевым файлом на рутокен носителе

Reading time4 min
Views42K
Чем больше мы используем компьютер и чем больше он входит в нашу жизнь, тем чаще мы начинаем задумываться о безопасности хранимой информации на нем. Не говоря уже о предприятиях, когда проблемы в безопасности хранимой информации могут привести к большим потерям.

В данной публикации я расскажу как можно создать в системе виртуальный зашифрованный диск, для доступа к которому необходим ключевой файл, который размещается на рутокене.
Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments73

OpenCL: универсальность и высокая производительность или не так все просто?

Reading time5 min
Views10K
На Хабре уже были статьи об OpenCL, CUDA и GPGPU со сравнениями производительности, базовыми понятиями и примерами, поэтому рассказывать об основах и принципах работы я тут не буду, даже код не покажу. Но я хочу описать в чем заключаются реальные трудности при использовании GPU (про ограничения и их последствия), почему нельзя сравнивать производительность CPU и GPU, а также про то насколько “универсален” OpenCL на самом деле.
Читать дальше →
Total votes 78: ↑77 and ↓1+76
Comments55

Введение в OpenCL

Reading time11 min
Views61K
Эта статья посвящена основам программирования на OpenCl. OpenCl -это язык программирования на GPU/CPU, по своей структуре близкий к стандарту c99. Его развитием занимается Khronos Group, где на их сайте доступна полная документация. Во избежание полемики на тему «ну это же всё тривиально, достаточно покопаться в инете» сразу оговорюсь: в рунете информация на эту тематику практически полностью отсутствует, а в западном инете доступна весьма в разрозненном состоянии на десятке сайтов. Здесь будет приведена некоторая компиляция базовых принципов, максимально упрощающая начинающему программисту жизнь, а так же позволяющая с самого первого проекта максимально задействовать вычислительные мощности видеокарты. Людям написавшим 2-3 серьёзных программы на OpenCl это будет уже неинтересно. Статья в некотором смысле является продолжением моей прошлой статьи.
Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments26

Сохраняем безопасно свои данные: p2p файловая система с шифрованием в облаке

Reading time5 min
Views5.7K
Сегодня идея облачного хранения файлов популярна у всех. О данной технологии пишут в интернете, говорят по телевидению. Однако не все готовы доверять свои личные данные чужим серверам и чужим администраторам сервера, ведь как бы не шифровали (проприентарные) программы, все равно возможно существует возможность прочесть ваши данные. Поэтому для безопасного хранения личных данных стоит задуматься об использования открытых технологий с шифрованием.

Для шифрования была выбрана распределенная файловая система Tahoe-Lafs, построенная на технологии p2p. Достоинство данной технологии, что файлы шифруются и записываются на ноды в виде кусочков (подобно bittorrent). А сохранять данные будем в программу wuala (облачную проприентарную файловую систему, аналог dropbox).
Читать дальше →
Total votes 28: ↑23 and ↓5+18
Comments22

Новые виды атак на основе технологии кликджекинга

Reading time3 min
Views17K
Кликджекинг – механизм обмана пользователей, при котором переход по ссылке на каком-либо сайте перенаправляет пользователя на вредоносную страницу – стал очень эффективным. Часто он используется для распространения через Facebook ссылок на вредоносные сайты. Недавно подобные техники показали свою эффективность в деанонимизации посетителей сайта. Также переход по хитрой ссылке может привести к тому, что злоумышленник получит доступ к данным OAuth. Давайте посмотрим, как это происходит.
Читать дальше →
Total votes 46: ↑42 and ↓4+38
Comments21

Использование сайтов типа Pastebin для сбора информации о цели пентеста

Reading time2 min
Views6K
Сайты для общего использования текста типа «Pastebin» (Pastebin, Pastie и т.п.) являются популярными хранилищами скомпрометированных данных. Наблюдение за ними может помочь обнаружить утечку данных компании. Кроме того, такие сервисы могут помочь пентестеру на этапе сбора информации о цели.

Сайты, на которые я ссылаюсь: Pastebin, Pastie, FrubarPaste, YourPaste, Codepad, Slexy и LodgeIt. Здесь можно найти информацию, оставленную не только злоумышленником, но и неосторожным сотрудником.

Под катом немного текста и описание инструментов для автоматизированного поиска
Total votes 37: ↑29 and ↓8+21
Comments11

Реализация нечеткого поиска

Reading time6 min
Views43K


Если ваш веб проект так или иначе будет связан с поиском и предоставлением пользователям некоторых данных, то перед вами наверняка встанет задача реализации строки поиска. При этом, если в проекте по какой-либо причине не удастся использовать технологии умных сервисов как Google или Яндекс, то поиск частично или полностью придется реализовать самостоятельно. Одной из подзадач наверняка будет реализация нечеткого поиска, ведь пользователи часто ошибаются и иногда не знают точных терминов, названий или имен.

В данной статье описывается возможная реализация нечеткого поиска, которая была применена для поиска на сайте edatuda.ru.
Читать дальше →
Total votes 112: ↑105 and ↓7+98
Comments22

Прозрачное проксирование в I2P и Tor

Reading time2 min
Views40K
Всем привет!
Захотелось мне установить кеширующий прокси на основе Polipo, ну и заодно настроить прозрачное проксирование i2p и Tor. Из всех сервисов, которые есть в этих анонимных сетях(почта, торренты и прочее) я использую только веб, так что, скорее всего, вы не сможете использовать сервисы, которые используют не http протокол, если последуете по этой инструкции.
Есть у меня домашний сервер на Debian, который раздает интернет. Использовал TinyProxy в качестве распределителя на основе доменов, два демона polipo — один для кеширования интернета, второй для(в большей степени) преобразования socks5 в http прокси, чтобы прописать ее в TinyProxy, ну еще и кеширует Tor трафик отдельно; dnsmasq для резолва адресов .i2p и .onion(он у меня и до этого использовался и для DNS, и для DHCP).
Будем считать, что I2P и Tor уже настроены и работают.

                I2P (4444)
                /
LAN port — TinyProxy (8888) — Polipo-WAN (8123)
                \
                Polipo-Tor (8124) — Tor (9050)
Читать дальше →
Total votes 30: ↑27 and ↓3+24
Comments18

Ликбез по псевдослучайным генераторам

Reading time4 min
Views5.6K
На размышления о необходимости генерации псевдослучайных паролей меня натолкнула достаточно безрадостная статистика взлома паролей, созданных при помощи МОЗГ v1.0; однако взять какой-то первый попавшийся программный генератор паролей и с помощью него поменять все пароли — выглядит безрассудством. Я не проводил детальный анализ готовых программ-генераторов, однако расскажу некоторые достаточно простые, но познавательные факты, связанные с математикой генерации псевдослучайных чисел хорошего качества, которые позволят выбрать нужную программу самостоятельно.
Читать дальше →
Total votes 50: ↑43 and ↓7+36
Comments34

Пишем апплет-переводчик для Gnome [python]

Reading time11 min
Views3.3K

Предисловие



Сидел я как-то тихим вечером, читал англоязычные сайты. Когда понадобилось перевести пару фраз, я как обычно открыл новую вкладку, набрал translate.google.ru, скопировал, вставил текст, нажал перевести, прочитал. И ведь такую длинную последовательность действий приходится проделывать каждый раз, когда есть необходимость перевести текст, пару фраз или целый абзац. Да, можно использовать какой-либо клиент для перевода, но окно программы придется открывать или доставать из-под других окон. Да, последовательность короче, но все равно длинная. Было бы здорово сократить последовательность действий до скопировать, нажать кнопку. Так появилась идея для апплета. Его логика такая:
  • На панели появляется кнопка «GTranslate»
  • Если вам надо перевести текст, то копируете его и нажимаете на кнопку
  • Автоопределение языка

Поехали
Total votes 41: ↑36 and ↓5+31
Comments66

Концепт простого Load-balancer'a / Failover'a IP сервисов

Reading time2 min
Views8K
В процессе решения одной технической задачи родилась идея универсального способа распределения нагрузки на множество машин с теоретически любыми сервисами, к которым можно обратиться по IP.

Возможно очередной велосипед, но раньше не попадалось. Если идея окажтся жизнеспособной, может кто и реализует — тогда не пропадёт впустую, самому, к сожалению, некогда, хоть и очень хочется попробовать. Если это уже где-то реализовано — прошу строго не судить: сам на вскидку не нашёл, а на долгие поиски сейчас ну совсем времени нету.

Итак, в кратце:
Читать дальше →
Total votes 9: ↑6 and ↓3+3
Comments3

Генерация приглашений, похожих на инвайты сайта habrahabr

Reading time5 min
Views11K
Скрипт генерирует приглашения для регистрации на сайте в виде картинки 51x51 пикселей формата PNG, написан на PHP, в качестве базы данных использует MySQL. Сделан ради интереса, будет интересен только новичкам.
подробнее
Total votes 92: ↑63 and ↓29+34
Comments66

Учим bash-скрипты, пишем Sokoban

Reading time4 min
Views138K
Мне кажется, что на свете еще есть люди, которые хорошо знают несколько языков программирования, но при этом не пишут скриптов для bash, потому что скриптовый язык bash выглядит для них слишком странным. Чтобы доказать, что bash — это несложно, я написала игру Сокобан (или Грузчик, кому как нравится), и хочу рассказать, как она работает.
Краткая справка по bash, скриншот игры, исходный код и ссылка на файл - под катом
Total votes 170: ↑164 and ↓6+158
Comments67

Неисправный пиксель

Reading time1 min
Views5K
Бороздя просторы рунета, наткнулся на интересную задачу.
На электронном табло отображается верное математическое равенство. Но один пиксел табло неисправен. Какой?

image

По мотивам braingames.ru

P.S. Решил сам, не лишай удовольствия ближнего своего, не нужно в комментах сразу ответы.

UPD: тут хайвмайнд получился, но я всяко первее.
UDP2: в комментариях две явные подсказки + ссылка на решение, будьте осторожны!
Total votes 171: ↑133 and ↓38+95
Comments175

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity