Pull to refresh
0
Send message

PDF с точки зрения программиста

Reading time8 min
Views76K
Я имею дело с PDF не только как пользователь, а, прежде всего, как разработчик софта, умеющего его читать и писать (возможно, вы сталкивались с продуктами компании ABBYY, работающими с PDF – ABBYY FineReader, ABBYY PDF Transformer). Я предполагаю, что вы прочитали статью habrahabr.ru/company/abbyy/blog/105006 и далее пишу только про некоторые особенности и ограничения PDF, которые больше интересны продвинутым пользователям. Никаких сложных технических деталей при этом не буду касаться, так что программистам, желающим научиться читать или писать PDF, лучше сразу перейти к чтению спецификацию версии 1.7 со страницы www.adobe.com/devnet/pdf/pdf_reference_archive.html :)
Читать дальше →
Total votes 78: ↑72 and ↓6+66
Comments58

Компиляция. 10: компиляция в ELF

Reading time13 min
Views6.9K
В прошлый раз мы ограничились компиляцией джей-скрипа в файл в нашем собственном формате, которому требовался специальный загрузчик. Кроме того, мы задумали было пару оптимизаций исполнимого кода, требующих анализа соседних команд.

Далее в посте:

  1. Оптимизация «в глазок»
  2. Стандартные функции
  3. Вывод в ELF
  4. Как это работает?
  5. Что получилось?
Читать дальше →
Total votes 57: ↑55 and ↓2+53
Comments9

Компиляция. 9: исполняемый код

Reading time19 min
Views6.1K
Напоминаю, что мы пишем компилятор для игрушечного языка джей-скрип. Начали с компиляции в п-код, потратили немало сил на его оптимизацию, и приготовились к заключительному этапу компиляции — к выводу машинно-зависимого выполнимого кода.
Никаких замысловатых алгоритмов тут уже нет: по большому счёту, только замена одной системы команд на другую.

Далее в посте:

  1. Выбор кода
  2. Загрузчик
  3. Изменения в п-коде
  4. Генерация
  5. Что получилось?
Читать дальше →
Total votes 53: ↑52 and ↓1+51
Comments10

Самый главный алгоритм

Reading time1 min
Views4.6K
От всей души рекомендую видео лекцию А. Степанова (человека создавшего STL): «о истории алгоритма нахождения наибольшего общего делителя», это популярная лекция оказалась бесконечно интересной, в ней рассказывается, на примере этого алгоритма о развитие алгоритмического знания всего человечества с эпистемологической точки зрения в разрезе истории с античных времен с Пифагора до наших дней до Кнута.

image
Посмотреть можно здесь:
часть1
video.yandex.ru/users/ya-events/view/129
часть2
video.yandex.ru/users/ya-events/view/128
Читать дальше →
Total votes 107: ↑102 and ↓5+97
Comments62

Автоматическая индексация файлов проекта

Reading time9 min
Views13K
Несмотря на то, что статей по теме «использование Vim в качестве IDE» достаточно много, результат меня не удовлетворял. Мне очень не хватало автоматической, прозрачной для пользователя (то есть меня) генерации тегов для всех файлов в проекте, причем файлы проекта совсем необязательно должны лежать в одной директории и ее поддиректориях, а формировать список файлов должно быть легко и приятно.

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

Долгие поиски плагинов с необходимым функционалом не увенчались успехом, поэтому было принято решение написать такой плагин. Я назвал его indexer.
Читать дальше →
Total votes 59: ↑50 and ↓9+41
Comments73

Компиляция. 4: игрушечный ЯП

Reading time18 min
Views20K
С грамматиками калькуляторов поиграли достаточно, переходим к языкам программирования. Бета-тестеры статьи подали идею писать JavaScript-подобный язык: начнём с простейшего скобчатого скелета, и будем его постепенно обращивать наворотами — синтаксическим сахаром, типами данных, поддержкой функций, и т.д.

Чтобы неполноценность нашего языка была понятна уже из названия, назовём его JSkrip.

Далее в посте


  1. Синтаксис
  2. Грамматика
  3. Парсер
  4. Синтаксическое дерево
  5. Pretty-printing

Читать дальше →
Total votes 37: ↑32 and ↓5+27
Comments13

Использование Delegate и Undelegate в jQuery 1.4.2

Reading time5 min
Views8.8K
jQuery
В комментариях к анонсу версии 1.4.2 было много вопросов по поводу 2-х новых методов, появившихся в новой версии jQuery
Вы наверное слышали, что в jQuery 1.4.2 было добавлено 2 новых метода: .delegate() и .undelegete(). Эти два метода предназначены для тех же целей, что и методы .live() и .die() ссответсвенно, они только используют другой синтаксис.
узнать больше
Total votes 135: ↑85 and ↓50+35
Comments75

Марк Райнхольд о JDK 7, замыканиях, JRockit и HotSpot

Reading time3 min
Views1.8K
Oracle TechCasts возобновились. Сегодня [т.е. 16-го февраля] Марк Райнхольд рассказывал о JDK 7 и отвечал на вопросы зрителей. Райнхольд обсуждал самое существенное, над чем он работает в проекте OpenJDK, и раскрыл некоторые предварительные наметки, направленные на объединение кода JRockit и HotSpot. Project Lambda, о котором обычно говорят, как о «замыканиях для Java», также был темой обсуждения.
Читать дальше →
Total votes 56: ↑49 and ↓7+42
Comments33

FlexGet или Бекапим инетернет автоматически

Reading time2 min
Views13K
image

Доброго дня, Хабр!
Довольно давно хотел как то автоматизировать закачки с трекеров любимых сериалов. И вот наконец неделю назад чисто случайно наткнулся на довольно интересную софтинку FlexGet.

Читать дальше →
Total votes 72: ↑61 and ↓11+50
Comments65

GnuPG: Безопасная почта для Win, Mac и *nix

Reading time3 min
Views29K
GnuPGGnuPG (GNU Privacy Guard ) — открытая реализация PGP, совместимая со стандартами OpenPGP ( RFC 2440 ). GnuPG позволяет шифровать, расшифровывать, подписывать и верифицировать электронные сообщения при помощи пар ключей ( RSA по-умолчанию ). Наиболее частое применение GnuPG — в шифровании электронной почты и проверки подписи файлов, выложенных для скачивания. Но есть возможность использовать и в других протоколах: например, PSI (Jabber-клиент) поддерживает GnuPG и позволяет поточно шифровать переговоры.

Рассмотрим установку и первичную настройку GnuPG для трёх ОС: Windows, Mac OS X и Linux.
Подразумевается, что читатель имеет достаточные знания для того, чтобы выполнить несколько команд в консоли ОС (CMD/Terminal/xterm соответственно).

Читать дальше →
Total votes 46: ↑38 and ↓8+30
Comments24

Дэн Пинк об удивительной науке мотивации

Reading time1 min
Views1.9K
Daniel Pink — автор книг и статей о современном подходе к бизнесу. Об одной из его книг как-то уже писали на хабре.

В этом коротком выступлении Daniel рассказывает о том, что «метод пряника» работает только для мотивации рутинного труда. А для сфер деятельности, требующих творческого подхода, не только не приносит пользы, но и делает работу менее эффективной. Он предлагает новые методы мотивации, которые сделали возможным появление таких продуктов как Wikipedia и Google Mail. И применение этих методов в будущем, возможно, сможет сделать мир немного лучше.

Вот версия выступления с русскими субтитрами.

А вот оригинал:

Total votes 52: ↑46 and ↓6+40
Comments30

Организация информации — Emacs Org Mode

Reading time5 min
Views27K
Привет всем!
Долгое время я пытался найти решение проблемы организации различного рода информации:
  • Личных и рабочих проектов — трекер проектов, документация, разделение на этапы, структуризация, приоритеты, риски, состояние отдельных этапов.
  • Простых TODO-списков — ведение списков дел в условиях сильного распараллеливания деятельности. Причем, чтобы обязательно было быстро, удобно, функционально и всегда под рукой.
  • Личной библиотеки — упорядочение огромного количества e-книг по категориям (со вложенными) + легкий доступ к ним чтобы был. Здесь сначала пытался просто понятно выстроить структуру папок, но масштабы уже не те, чтобы можно было потом быстро найти нужную книгу.

Ниже, я описал (знакомые мне) средства, которые могут быть использованы для решения этих задач. Лично для себя выбрал Emacs Org Mode, так что именно его описанию уделена большая часть текста.
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments17

Пол Грэм

Reading time2 min
Views56K
Paul GrahamСколько раз я уже перечитывал статьи Пола Грэма, столько раз я удивлялся его потрясающему умению открывать глаза на вроде бы обычные вещи. И потрясающей способности интересно описывать окружающий нас мир.

Да, это он в 1998 году продал свою компанию Viaweb интернет-гиганту Yahoo, которая впоследствии назвала этот продукт Yahoo Store. Да, это он основал венчурный фонд Y Combinator. Да, это его журнал BusinessWeek включил в список 25 наиболее влиятельных людей в Сети за 2008.

Хотите читать по-настоящему интересные аналитические статьи? Вам однозначно к Полу. Я настоятельно рекомендую прочитать его заметки. Особенно если вы it-шник. Особенно если вы собираетесь открывать свой бизнес.

Читать дальше →
Total votes 125: ↑111 and ↓14+97
Comments61

Воспроизведение речи на пианино

Reading time1 min
Views4.2K
Композитор Peter Ablinger оцифровал запись детской речи и запрограммировал механическое пианино для ее воспроизведения.

Получилось неоднозначно. Местами похоже на речь, местами можно разобрать слова. В любом случае было интересно и необычно.



via gizmodo
Total votes 94: ↑87 and ↓7+80
Comments64

Простой цифровой термометр своими руками

Reading time3 min
Views172K
Наткнулся недавно в интернете на интересный материал, идея заинтересовала, но после сборки отказалась корректно работать, погуглив дальше наткнулся на другой вариант, который и представляю.

Простой цифровой термометр с подключением через COM-порт.


Читать дальше →
Total votes 111: ↑108 and ↓3+105
Comments148

Prolog, введение

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

Кратко основные особенности.
Читать дальше →
Total votes 78: ↑64 and ↓14+50
Comments41

Information

Rating
Does not participate
Registered
Activity