Данная статья является переводом документа «2010 internship technical report» библиотеки Cofoja. Документ раскрывает причины возникновения библиотеки и отвечает на вопросы критиков, которые можно встретить на Хабре в статьях посвященных данной библиотеки. Статья служит для распространения и понимании реализаций парадигмы Design By Contracts или Контрактного Программирования.
Читать полностью »
Рубрика «Программирование» - 1066
Cofoja: Практичная библиотека для контрактного программирования. Часть 1
2012-04-04 в 7:46, admin, рубрики: java, Программирование, метки: java, ПрограммированиеCode52 — новый проект каждую неделю
2012-04-03 в 5:55, admin, рубрики: open source, Программирование, разработка, метки: open source Если вы хотите заняться open source проектом, но не знаете с чего начать, то Code52 вам поможет. В начале года несколько программистов (Andrew Tobin, Brendan Forster и Paul Jenkins) решили создать место для легкого старта в open source мире.
Раз в неделю реализуется одна новая идея. Уже сейчас в Code52 17 проектов. Преимущественно используюется .NET платформа, но создатели не собираются себя ограничивать. Например, проект sayw.at, стартовавший вчера, будет написан на NodeJS.
Поиск повторений в двумерном массиве, или вычислительная сложность на примере
2012-04-02 в 18:13, admin, рубрики: vba, Алгоритмы, вычислительная сложность, Песочница, поиск по сходству, Программирование, метки: vba, вычислительная сложность, поиск по сходствуДоброго времени суток, уважаемое читатели.
Когда я учился в институте на втором или третьем курсе (то есть, в общем, не так и давно), был у меня, помимо прочих, предмет под названием «алгоритмы и структуры данных». Рассказывали там, однако, не только про сами алгоритмы и структуры, но и о таком понятии, как «вычислительная сложность». Признаюсь, тогда это меня не очень заинтересовало.
«Наверняка заморачиваться с исследованием алгоритма на пространственную и временную сложность нужно только при разработке либо очень высокопроизводительных/высоконагруженных систем, либо при работе с действительно большими объемами данных», — примерно такие мысли посещали меня (да и, наверное, не только меня) тогда.
Однако недавно мне пришлось сильно изменить свое мнение из-за простой, казалось бы, задачи.
Читать полностью »
Для тех, кто пишет на языке Go
2012-04-02 в 16:17, admin, рубрики: golang, web-разработка, Веб-разработка, Программирование, производительность, метки: golang, web-разработка, Программирование, производительностьДрузья!
В продолжении поста «Google выпустила финальную версию языка программирования Go 1» интерес получил логическое продолжение и наше робкое желание было услышано администрацией Хабра и с сегодняшнего дня у языка Go есть собственный блог хаб.
Пользуясь случаем, не могу не порекомендовать книгу «Learning Go»Читать полностью »
Итак, этот проект придется переписывать с нуля
2012-04-01 в 1:18, admin, рубрики: новички, переписывание, Программирование, проекты, управление проектами, метки: новички, переписывание, проекты Вот как обрадовал шеф простого программиста N.; N. пустил скупую слезу, ушел в свой кубикл в далеком темном углу и схватился за голову.
N. работал в компании целых два месяца, и показал себя с лучшей стороны. Он виртуозно раскладывал маджонг, мог налить кофе в три чашки сразу и конечно, был лучшим игроком в Guitar hero в офисе. Точно никто не мог сказать, сколько строк написал N., вчерашний выпускник престижного вуза, за эти два месяца, но все понимали – N. здесь всерьез и надолго.
Читать полностью »
Собираем кубик Рубика 2x2x2, пирамидку и другие механические головоломки
2012-03-31 в 20:37, admin, рубрики: Алгоритмы, кубик рубика, перебор, Программирование, метки: кубик рубика, перебор, ПрограммированиеНедавно я решил написать программу, которая будет выдавать алгоритм решения некоторых механических головоломок, таких как кубик 2х2х2, 3х3х1, пирамидка и других. Полный список есть в интерфейсе программы, а также на её сайте, но об этом позже. Естественно, алгоритм этот должен быть самым коротким, иначе не интересно: можно было бы забить туда известные формулы, чтобы она собирала как человек. Сразу скажу две причины, почему я не стал включать в список кубик Рубика 3х3: во-первых, из за его популярности. Наверняка есть уже куча софта для этого, не хочется изобретать велосипед. Ну и во-вторых, из за его сложности: начав писать программу, я хотел «потренироваться» на чём-нибудь попроще. Итак, приступим. Читать полностью »
Чего мне хотелось бы от будущих версий руби, и как я справляюсь сейчас
2012-03-31 в 12:40, admin, рубрики: ruby, ruby 2.0, workaround, Песочница, Программирование, метки: ruby, ruby 2.0, workaround Добрый день.
Я около года работаю с Ruby и хотел бы написать о некоторых вещах, которых лично мне там часто не хватает, и которые я хотел бы видеть встроенными в язык. Пожалуй лишь пара из этих пунктов являются действительно серьезными недоработками, с остальными можно легко справиться подручными средствами.
Вроде бы недоработки и мелочь, но они ощутимо осложняют работу — приходится писать собственные библиотеки вспомогательных методов, которые и в гем не выделишь — уж больно маленькие, и без них некомфортно. А порой открываешь чужой код — и видишь там точно такие же вспомогательные функции как у тебя. Это как мне думается знак, что стандартная библиотека языка недоработана. Что же, будем надеяться, кто-нибудь из разработчиков прочтет текст и закоммитит патч. ;-)
Итак, начнем по порядку:
- Перегрузка метода разными списками аргументов, как в C++
- Отобразить хэш и получить из него другой хэш, а не массив
- Преобразовать экземпляр класса в экземпляр его же собственного подкласса
- Разные рюшечки
Насколько большие массивы (и значения) в PHP? (Подсказка: ОЧЕНЬ БОЛЬШИЕ)
2012-03-31 в 11:06, admin, рубрики: php, php 5.3, zend engine, Программирование В этой статье я хочу исследовать расход памяти у массивов (и значений в целом) в PHP используя следующий скрипт в качестве примера, который создаёт 100 000 уникальных целочисленных элементов массива и в конце измеряет количество использованной памяти.
Читать полностью »
Assert. Что это?
2012-03-30 в 15:41, admin, рубрики: assert, Программирование, тестирование, метки: assert, Программирование, тестированиеAssert — это специальная конструкция, позволяющая проверять предположения о значениях произвольных данных в произвольном месте программы. Эта конструкция может автоматически сигнализировать при обнаружении некорректных данных, что обычно приводит к аварийному завершению программы с указанием места обнаружения некорректных данных. Странная, на первый взгляд, конструкция — может завалить программу в самый неподходящий момент. Какой же в ней смысл? Читать полностью »
История игры Триплекс, или сколько нужно квадратиков чтобы сломать голову
2012-03-30 в 14:13, admin, рубрики: android, game, game development, Gamedev, Google Chrome, html 5, html5, java, javascript, puzzle, Алгоритмы, Веб-разработка, головоломка, Программирование, метки: android, game, Gamedev, Google Chrome, html 5, html5, java, javascript, puzzle, Алгоритмы, головоломка Чтобы освоить азы Web программирования, я решил написать HTML5 игру — головоломку под названием Triplex (www.quadpuzzle.ru). Написать игру для себя и для друзей — полдела. Захотелось довести проект до ума, сделав из игры продукт для широкого круга пользователей. Насколько получилось — судить вам.
Правила игры просты. На игровом поле разложены фигуры из квадратиков. Цель игры — уложить все фигуры в указанный прямоугольник. Вращать можно только одну фигуру, помеченную кружком, если она есть. Решение в каждой задаче существует и единственное.