Как стать автором
Обновить
0
0

Пользователь

Отправить сообщение

Классы типов, монады

Время на прочтение15 мин
Количество просмотров13K
Темой сегодняшней статьи будут классы типов, некоторые стандартные из них, синтаксический сахар с их использованием и класс монад.
Классы привносят динамический полиморфизм, как и интерфейсы в традиционных императивных языках, а также могут быть использованы как замены отсутствующей в Хаскеле перегрузки функций.
Я расскажу, как определить класс типов, его экземпляры (instance) и как это всё устроено внутри.

Предыдущие статьи:
Типы данных, паттернг матчинг и функции
Основы
Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии24

Основы

Время на прочтение8 мин
Количество просмотров13K
Сегодня я постараюсь рассказать самые основы, такие, как базовые типы данных, типы функций, ФВП, списки (в том числе и бесконечные).

Последующие статьи:
Типы данных, паттерн матчинг и функции
Классы типов, монады
Читать дальше →
Всего голосов 72: ↑69 и ↓3+66
Комментарии162

Ликбез по основам безопасности и криптографии

Время на прочтение6 мин
Количество просмотров11K

Криптография



Три кита криптографии — хеш, шифрование симметричное, шифрование асимметричное (с открытым ключом). Основываются криптографические алгоритмы на сложности вычисления больших чисел, но подробнее об этом, если вас конкретно интересует «начинка», стоит читать не в общих обзорах, именуемых ликбезом. Здесь же содержится простое изложение, без лишних заморочек, то есть поверхностное.
Читать дальше →
Всего голосов 62: ↑57 и ↓5+52
Комментарии34

Атаки на беспроводные сети. Часть 1

Время на прочтение5 мин
Количество просмотров69K
В прошлой статье о беспроводных сетях мы рассмотрели первый этап — сбор информации, или wardriving. Сейчас же, продемонстрируем несколько способов получения несанкционированного доступа к беспроводным сетям, а также рекомендации по защите от них.

Читать дальше
Всего голосов 123: ↑118 и ↓5+113
Комментарии98

Атаки на беспроводные сети. Часть 2

Время на прочтение3 мин
Количество просмотров20K
Это продолжение предыдущей статьи, об атаках на беспроводные точки доступа с WEP-защитой.

Во второй части цикла статей о безопасности беспроводных сетей мы рассмотрим некоторые нетрадиционные атаки на WEP.

Читать дальше
Всего голосов 54: ↑51 и ↓3+48
Комментарии35

Prolog, введение

Время на прочтение13 мин
Количество просмотров102K
Довольно оживленное обсуждение предыдущей стати (http://habrahabr.ru/blogs/programming/47416/) показало, что тема пролога оказалась интересна сообществу.
Чтобы заинтересовать еще более читателя и вместе с тем облегчить ему начало работы с этим языком, я решил написать немного начальных данных о прологе.

Кратко основные особенности.
Читать дальше →
Всего голосов 78: ↑64 и ↓14+50
Комментарии41

Работа с объектами в JavaScript: теория и практика

Время на прочтение15 мин
Количество просмотров218K
В этой статье я хочу по возможности полно и последовательно рассказать о том, что такое объект в JavaScript, каковы его возможности, какие взаимоотношения могут строиться между объектами и какие способы «родного» наследования из этого вытекают, как это все влияет на производительность и что вообще со всем этим делать :)

В статье НЕ будет ни слова про: эмуляцию традиционной класс-объектной парадигмы, синтаксический сахар, обертки и фреймворки.

Сложность материала будет нарастать от начала к концу статьи, так что для профи первые части могут показаться скучными и банальными, но дальше будет намного интереснее :)

если не боимся многабуков, то читаем дальше
Всего голосов 104: ↑103 и ↓1+102
Комментарии216

Scrum и XP: заметки с передовой

Время на прочтение1 мин
Количество просмотров36K
image
Чтобы прочитать эту книгу вам понадобится всего лишь два-три часа. Чтобы её перевести участникам сообщества Agile Ukraine потребовалось 4 месяца…
Читать дальше →
Всего голосов 97: ↑95 и ↓2+93
Комментарии47

Обзор LLVM

Время на прочтение13 мин
Количество просмотров85K
LLVM (Low Level Virtual Machine) — это универсальная система анализа, трансформации и оптимизации программ или, как её называют разработчики, «compiler infrastucture».

LLVM — не просто очередной академический проект. Его история началась в 2000 году в Университете Иллинойса, а теперь LLVM используют такие гиганты индустрии как Apple и Adobe. В частности, на LLVM основана подсистема OpenGL в MacOS X 10.5, а iPhone SDK использует GCC с бэкэндом на LLVM. Apple является одним из основных спонсоров проекта, а вдохновитель LLVM — Крис Латтнер — теперь работает в Apple.

В основе LLVM лежит промежуточное представление кода (intermediate representation, IR), над которым можно производить трансформации во время компиляции, компоновки (linking) и выполнения. Из этого представления генерируется оптимизированный машинный код для целого ряда платформ, как статически, так и динамически (JIT-компиляция). LLVM поддерживает генерацию кода для x86, x86-64, ARM, PowerPC, SPARC, MIPS, IA-64, Alpha.

LLVM написана на C++ и портирована на большинство *nix-систем и Windows. Система имеет модульную структуру и может расширяться дополнительными алгоритмами трансформации (compiler passes) и кодогенераторами для новых аппаратных платформ. Пользовательский фронтенд, как правило, линкуется с LLVM и использует C++ API для генерации кода и его преобразований. Однако LLVM включает в себя и standalone утилиты.

Для тех, кто не без оснований считает C++ не лучшим языком для написания компиляторов, с недавних пор в LLVM включена обертка API для OCaml.

Чтобы понять, что можно сделать с помощью LLVM, и на каком уровне придётся работать, давайте разберёмся,
что из себя представляет LLVM IR.
Всего голосов 52: ↑51 и ↓1+50
Комментарии25

8 лучших бесплатных средств разработки с открытым кодом по версии InfoWorld

Время на прочтение3 мин
Количество просмотров4.7K
Тестовый Центр InfoWorld выбрал восемь лучших бесплатных инструментов с открытым кодом для разработчиков. Здесь есть средства создания насыщенных приложений (RA), AJAX-фреймворк, система управления бизнес-правилами, пакет контроля версий, объектная база данных, монитор для тестирования веб-сервисов… но пойдем по порядку:
  1. Объектная база данных: db40

    Появившись как Java-библиотека для баз данных, db4o была затем параллельно перенесена на платформу .NET. В множество полезных функций библиотеки db4o входят реализованные в 2005 году «родные запросы» (Native Queries) для построения запросов непосредственно методами Java или .NET.
     
  2. Управление версиями: Git

    Распределенная система управления версиями Git была изначально создана Линусом Торвальдсом, а теперь поддерживается Джунио Хамано (Junio Hamano). Git — это инструмент управления ревизиями во многих выдающихся open-source-проектах, включая ядро Linux, сервер X.org, ядро проекта One Laptop per Child (OLPC) и веб-фреймворк Ruby on Rails. Движок Git как минимум на порядок быстрее аналогичных систем для больших проектов и включает продвинутую поддержку для ветвления и слияния кода.
     
  3. Библиотека веб-клиента: HttpClient

    HttpClient — это Java-библиотека для передачи информации по HTTP-протоколу (родилась в 2001). Она позволяет выполнять http-запросы и легко обрабатывать полученные ответы. Множесто библиотек для работы с web-сервисами используют эту библиотеку в качестве транспортного слоя. Если вы Java-программист, и вам нужно послать http-запрос куда бы то ни было, то это библиотека для Вас. (aib — cпасибо за поправки)!
     


Далее: параллельное програмирование, управление бизнес-правилами, RIA...
Всего голосов 2: ↑2 и ↓0+2
Комментарии32

Лучшие расширения для Firebug

Время на прочтение1 мин
Количество просмотров1.1K
Adam DuVander из команды сайта WebMonkey составил список пяти лучших надстроек над Firebug. Вне конкуренции, оказался YSlow, но остальные 4 тоже очень полезны:

* Firecookie для простоты работы с cookies
* FirePHP для интеграции серверного PHP дебагинга с интерфейсом Firebug
* Pixel Perfect для наложения макета на HTML шаблон для контроля соответствия вёрстки
* Rainbow для подсветки Javascript синтаксиса

Пользуйтесь.
Всего голосов 61: ↑58 и ↓3+55
Комментарии25

эффективное использование vim: «from the very begining»

Время на прочтение7 мин
Количество просмотров26K
«Для меня vi это Дзен.
Использование vi — это практика дзена.
Каждая команда является коаном.
Полный смысла для пользователя,
Бессмысленный для непосвященного.
Вы познаете истину каждый раз когда вы его используете.»
--reddy@lion.austin.

на сколько хорошо ты знаешь язык vim?
посмотри на клавиатуру,
можешь ли ты сказать что выполняет каждая буква?
как много ты знаешь?
как много используешь?


эффективное использование vim
Всего голосов 92: ↑83 и ↓9+74
Комментарии114

Информация

В рейтинге
Не участвует
Откуда
Беларусь
Дата рождения
Зарегистрирован
Активность