Pull to refresh
47
Karma
0
Rating
Валерий @kharvd

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

Занимательное функциональное программирование в Ruby

Abnormal programming *Ruby *
Translation

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

Предположим, что единственный способ представления кода — лямбда-выражение, а единственная доступная структура данных — массив:

square = ->(x) { x * x }
square.(4) # => 16

person = ["Dave",:male]
print_person = ->((name,gender)) {
  puts "#{name} is a #{gender}"
}
print_person.(person)

Это самые основы функционального программирования: функции — единственное, что у нас есть. Давайте попробуем написать что-то более похожее на реальный код в таком же стиле. Посмотрим, как далеко мы сможем зайти без особых мучений.
Читать дальше →
Total votes 67: ↑64 and ↓3 +61
Views 10K
Comments 20

Виртуальные функции в C

Abnormal programming *C *ООP *
Translation
Недавно мне задали вопрос: как бы я реализовал механизм виртуальных функций на языке C?

Поначалу я понятия не имел, как это можно сделать: ведь C не является языком объектно-ориентированного программирования, и здесь нет такого понятия, как наследование. Но поскольку у меня уже было немного опыта с C, и я знал, как работают виртуальные функции, я подумал, что должен быть способ сымитировать поведение виртуальных функций, используя структуры (struct).

Краткое пояснение для тех, кто не знает, что такое виртуальные функции:
Виртуальная функция — это функция, которая может быть переопределена классом-наследником, для того чтобы тот имел свою, отличающуюся, реализацию. В языке C++ используется такой механизм, как таблица виртуальных функций
(кратко vtable) для того, чтобы поддерживать связывание на этапе выполнения программы. Виртуальная таблица — статический массив, который хранит для каждой виртуальной функции указатель на ближайшую в иерархии наследования реализацию этой функции. Ближайшая в иерархии реализация определяется во время выполнения посредством извлечения адреса функции из таблицы методов объекта.


Давайте теперь посмотрим на простой пример использования виртуальных функций в C++
Читать дальше →
Total votes 36: ↑29 and ↓7 +22
Views 28K
Comments 54

С Ubuntu на Fedora — высаживаемся на чужой земле (хорошее, плохое и уродливое)

Configuring Linux *
Translation
imageВ последнее время я начал замечать, как трудно разрабатывать под окружение рабочего стола, которое сам не используешь. И, поскольку большая часть моей работы сейчас относится к GNOME (и KDE), я понял, что мне придется использовать новый GNOME 3. К сожалению, Ubuntu 11.04 с GNOME 3 работает не слишком стабильно, на мой взгляд.

Я очень нетерпеливый разработчик: я очень не люблю компилировать и долго разбираться с пакетами. Когда я использовал виртуальную машину, мне пришлось серьезно повозиться с Mutter, поэтому я решил перейти на Fedora. Это позволило мне взглянуть на всё по-новому, поскольку я долгое время использовал Ubuntu.
Читать дальше →
Total votes 90: ↑63 and ↓27 +36
Views 51K
Comments 111

Релиз Qt Creator 2.2

Qt *
imageСегодня в блоге Qt Labs было сообщено о выходе нового релиза среды разработки Qt Creator.

Краткий список изменений:
  • Обновлена поддержка Bazaar
  • Полностью переписана система отладки для MSVS
  • Конфигурируемые определения MIME типов
  • Запись и воспроизведение макросов
  • Конфигурируемые сниппеты
  • Доступ к внешним инструментам (например, lupdate и lrelease)
  • Закрепляющиеся всплывающие подсказки отладчика
  • Поддержка Valgrind/memcheck (Отладка->Анализатор) на Linux и Mac
  • Специализированный редактор для языка шейдеров GL

Читать дальше →
Total votes 47: ↑43 and ↓4 +39
Views 1.5K
Comments 15

Когда «свободное» в «свободном ПО» не имеет значения

Open source *
Translation
imageТермин «свободное ПО» может иметь разное значение, в зависимости от того, с какой стороны вы на него смотрите. Для многих, в частности для меня и большинства читателей моего блога, свободное ПО означает открытый исходный код. Для мира в целом это понятие имеет совершенно другое значение.
Читать дальше →
Total votes 95: ↑75 and ↓20 +55
Views 1K
Comments 353

Выпущена бета Qt Creator 2.2

Qt *
Сегодня в блоге Qt Labs было сообщено о выходе первой бета-версии IDE Qt Creator 2.2. Релиз был назван в честь умершего белого медведя Кнута (Knut Creator). Помимо множества багфиксов в бету было добавлено несколько серьезных улучшений, в частности поддержка системы управления версиями Bazaar, сниппеты кода, улучшенный дебаггер.
Читать дальше →
Total votes 36: ↑34 and ↓2 +32
Views 765
Comments 34

А вы вносите свой вклад?

Open source *
Translation
image
[Мой перевод предыдущей статьи Рафаэля]
Не знаю, как вы, но когда я только начал использовать свободное ПО, я был поражен, что мог пользоваться всеми этими программами бесплатно. И через несколько месяцев решил найти способ чем-нибудь отплатить. Это было 13 лет назад… и вплоть до сегодняшнего дня я все еще активный разработчик Debian :-)
Читать дальше →
Total votes 86: ↑74 and ↓12 +62
Views 789
Comments 116

Ubuntu 11.10 будет иметь кодовое имя Oneiric Ocelot

Open source *
imageМарк Шаттлворт объявил, что следующая после Natty Narwhal версия Ubuntu будет называться Oneiric Ocelot.

В сообщении "Next After Natty?" в своем блоге Шаттлворт описывает цели следующей итерации Ubuntu и объясняет, почему она должна быть названа именно так. Марк говорит: «Oneiric значит “мечтательный”, и вместе с оцелотом это напоминает мне о том, как происходят инновации: отчасти мечты, отчасти дисциплина»

Вместе с Ubuntu 11.10 на CD также будет поставляться Unity 2D для тех людей, железо которых не позволяет использовать 3D версию, а также Qt, что, как утверждает Шаттлворт, “даст разработчикам еще больше возможностей для создания интерфейсов, которые как функциональны, так и эстетически привлекательны”
Total votes 75: ↑62 and ↓13 +49
Views 709
Comments 55

Debian или Ubuntu: кому помогать?

Configuring Linux *
Translation
С точки зрения пользователя относительно просто сделать выбор между Debian и Ubuntu. У каждого есть свои личные предпочтения, и попробовать обе ОС не займет слишком много времени. Но когда дело доходит до вклада в разработку, времени для этого потребуется гораздо больше, и вам наверняка захочется подумать об этом дважды, прежде чем начинать. Так на какую систему лучше потратить свое время?

Это непростой вопрос, на который нет ответа, который удовлетворил бы каждого. Все зависит от того, каков ваш стимул для участия в разработке.
Читать дальше →
Total votes 94: ↑78 and ↓16 +62
Views 54K
Comments 29

Программирование на калькуляторе

Abnormal programming *Programming *
Tutorial
Sandbox
Здравствуйте, хабражители. Думаю, многие из вас слышали о программируемых калькуляторах (а некоторые даже использовали их). Как ни странно, здесь я не нашел ни одной статьи, рассказывающей о такой интересной вещи, и поэтому решил восполнить этот пробел и рассказать об основах программирования на калькуляторах.

Некоторое время назад я нашел у себя в кладовке старый «Электроника МК-61», принадлежавший моему папе. Естественно, я не мог упустить такой шанс освоить не совсем «стандартное» программирование на калькуляторе. (В случае, если у вас нет программируемого калькулятора, вы можете скачать эмулятор здесь)
Читать дальше →
Total votes 94: ↑90 and ↓4 +86
Views 79K
Comments 83

Information

Rating
Does not participate
Location
New York, New York, США
Registered
Activity