В C# все типы объявленные с ключевым словом struct являются значимыми, как class — ссылочными. Разницы в их поведении не наблюдается, поэтому особо важно понимать какой тип используется в программе, так как это может значительно влиять на производительность в программе.
Рассмотрим пример, из которого видна разница между ссылочными и значимыми типами:
Читать полностью »
Рубрика «Программирование» - 959
Ссылочные и значимые типы данных в CLR via C# (часть 2)
2013-08-14 в 9:28, admin, рубрики: .net, Программирование, метки: .net, ПрограммированиеГенерация номеров счастливых билетов
2013-08-14 в 6:54, admin, рубрики: php, Алгоритмы, комбинаторика, Программирование, метки: PHP, Алгоритмы, комбинаторика, Программирование 
В рамках небольшого тестового задания потребовалось реализовать старую и известную задачу с поиском количества счастливых билетов (указанной пользователем разрядности номера). Как ни странно, при большом числе источников с математическим описанием алгоритма, реальных примеров реализации оптимизированного варианта (без перебора) оказалось немного, но всё же большой проблемы эта часть задания не составила.
Во второй же части потребовалось уже выводить сами номера, и вот тут быстрый поиск в сети ожидаемого результата не дал. Однако, задача решена, и хотелось бы поделиться реализаций с читателим ради получения критического мнения и распространения информации для тех, кому подобные или схожие алгоритмы могут понадобиться.
Читать полностью »
Теорема Клини о неподвижной точке: квайны
2013-08-13 в 23:13, admin, рубрики: Алгоритмы, квайн, Программирование, теория алгоритмов, метки: квайн, теория алгоритмов Здравствуйте, читатели. В последнее время было много разговоров о квайнах, и даже некоторый теоретический спин-офф.
Повторю за автором только что упомянутого топика: если вы знакомы с CS, то далее читать нет смысла — все это
вы и так хорошо знаете. А статья будет ответом на вопрос — всегда ли можно написать квайн? Точнее, на любом ли языке?
Физики скажут, что на всех: раз можно написать и на компилируемом C, и на брейнфаке, а кто-то и на SQL пишет — опыт говорит, что ответ на вопрос да. Математика тоже говорит, что да.
Теорема 2
На любом алгоритмически полном языке программирования можно написать программу, печатающую свой код.
Читать полностью »
Питон изнутри. Введение
2013-08-13 в 20:54, admin, рубрики: bytecode, cpython, python, Блог компании Буруки, Программирование
Помимо изучения стандартной библиотеки, всегда интересно, а иногда и полезно, знать, как язык устроен изнутри. Андрей Светлов, один из разработчиков Python, советует всем интересующимся серию статей об устройстве CPython. Представляю вам перевод первого эпизода. Если хорошо пойдёт, будут переводы остальных постов.
Мой друг однажды сказал мне: «Знаешь, для некоторых людей язык C — это просто набор макросов, который разворачивается в ассемблерные инструкции». Это было давно (для всезнаек: да, ещё до появления LLVM), но эти слова хорошо мне запомнились. Может быть, когда Керниган и Ритчи смотрят на C-программу, они на самом деле видят ассемблерный код? А Тим Бёрнерс-Ли? Может он сёрфит интернет по-другому, не так, как мы? И что, в конце концов, Киану Ривз видел в том жутком зелёном месиве? Нет, правда, что, чёрт побери, он там видел?! Эм… вернёмся к программам. Что видит Гвидо ван Россум, когда читает программы на Python?
Читать полностью »
Разработка JSF приложений при помощи IntelliJ Idea. Часть 1: Установка компонентов и настройка среды разработки
2013-08-13 в 16:15, admin, рубрики: glassfish, intellij idea, java, jsf, Веб-разработка, ПрограммированиеЭтат статья является переводом статьи «Developing JSF applications» с официальной вики jetbrains (http://wiki.jetbrains.net/intellij/Developing_JSF_applications) только вместо сервера приложений Tomcat будет использоваться GlassFish.
Мы начнем с подготовки к разработке JSF приложений. Она включает в себя активацию необходимых плагинов, регистрацию GlassFish в IntelliJ Idea и создание Java модуля, подходящего для разработки JSF приложений.
Далее мы разработаем небольшое JSF приложение, в котором будут продемонстрированы некоторые техники программирования и возможности среды разработки. Приложение будет разрабатываться поэтапно: функции в него будут добавляться порциями, необходимые проверки будут осуществляться в конце каждого этапа.
Читать полностью »
Редактор с подсветкой кода. Проблемы и решения
2013-08-13 в 15:55, admin, рубрики: editor, IDE, pyqt, qscintilla, qt, Qt Software, Программирование, метки: editor, IDE, pyqt, qscintilla, Qt 
Большая часть аудитории Хабра регулярно пишет код. В текстовом редакторе или IDE. И сколько бы не было в нем окошек и менюшек, а сердце любого редактора — это компонент (widget), который редактирует и подсвечивает код.
Больше года назад на Хабре был цикл статей от namespace про компонент QScintilla (1, 2, 3), и моя статья с его критикой. Получилась некоторая недосказанность. Ясно, что все плохо, но не понятно, что делать.
Сейчас я написал свой велосипед компонент, и у цикла есть продолжение.
Эта статья расскажет о том, как устроена подсветка синтаксиса в моем проекте: какие проблемы возникали, и как они решались. Она про подходы, а не про специфику конкретного GUI-инструментария. Если интересно заглянуть «под капот» текстового редактора, добро пожаловать под кат.
Читать полностью »
Основы программирования объектов Умного Дома в MajorDoMo
2013-08-13 в 7:32, admin, рубрики: diy или сделай сам, majordomo, php, ооп, Программирование, умный дом, метки: majordomo, PHP, ооп, Программирование, умный дом 
Система MajorDoMo объединяет в себе различные компоненты, действие многих из которых сопряжено с чтением либо изменением данных. Для организации эффективного обмена данными между частями системы была создана объектная модель. Данная модель во многом соответствует парадигме Объектно Ориентированного Программирования (ООП) и людям, знакомых с данной парадигмой, не составит труда разобраться в имеющейся модели. Однако, знание принципов ООП совсем не обязательно, т.к. встроенная в систему модель достаточно упрощённая и может применяться без глубокого знания какого-либо языка программирования или же в качестве первого шага обучения этой концепции. В статье описаны основные составляющие этой модели.
Читать полностью »
Школа программистов HeadHunter 2013
2013-08-13 в 6:19, admin, рубрики: android, highload, javascript, python, Блог компании HeadHunter, мобильные приложения, обучение, Программирование, стажировка, студенты, Учебный процесс в IT, фронтенд, метки: android, highload, javascript, python, мобильные приложения, обучение, Программирование, стажировка, студенты, фронтенд Сегодня утром стартовал очередной, уже четвёртый по счёту набор в школу программистов HeadHunter.
Занятия будут проходить по вечерам, два раза в неделю с октября по апрель в московском офисе технического департамента, недалеко от метро Алексеевская. Преподаватели – наши специалисты, в числе которых blv, mikesub, tum0rc0re и ваш покорный слуга. Во время обучения студентам выплачивается ежемесячная стипендия – 15 тыс. рублей. Лучшим выпускникам будущей весной мы предложим присоединиться к нашей команде.
В этом году мы кардинально изменили программу обучения – студенты будут проходить обучение по двум независимым направлениям: фронтенд-разработка и разработка мобильных приложений. Каждый студент теперь сможет выбрать, по какому направлению он будет обучаться. При этом у всех студентов будет и общий курс лекций. Ещё больше внимания будет уделено решению практических задач — прежде всего мы хотим, чтобы выпускники были хорошо подготовлены к работе в бизнес-среде. Изменились и правила набора: вместо нескольких отборочных туров мы предлагаем потенциальным студентам выполнить тестовое задание, по результатам которого лучшие будут приглашены на собеседование. Так мы не теряем в качестве отбора, но значительно его ускоряем.
Разбираемся с java.nio.*
2013-08-12 в 9:39, admin, рубрики: java, nio, Программирование, метки: java, nio, ПрограммированиеЭтот пакет был добавлен еще в Java 1.4, однако многие разработчики о нем либо не знают, либо не умеют пользоваться. В сети мало материалов на эту тему, особенно на русском.
Введение
Java New IO — «новая» реализация IO. Ее предназначение — решить проблемы производительности стандартного блокирующего IO. Почти все методы чтения-записи без блокировок, они читают или записывают лишь уже доступную информацию. Это позволяет в одном или нескольких потоках обрабатывать любое количество подключений.
Продолжение под хабракатом
Читать полностью »
Летняя школа по биоинформатике
2013-08-09 в 14:55, admin, рубрики: биоинформатика, биология, Программирование, Учебный процесс в IT, метки: биоинформатика, биология, Программирование 
В этом посте, дорогой читатель, я кратко расскажу о том, как 100+ человек могут с пользой для знаний весело провести неделю лета.
Я постарался описать событие так, чтобы даже человек, находящийся совершенно не в теме, о чем идет речь, все равно бы прочитал с интересом и все понял.
В общем, это пост о нашей школе по биоинформатике, проходившей с 29 июля по 4 августа под Москвой. За подробностями — под кат.
Осторожно, траффик, все фото без катов!

Участники, организаторы и некоторые спикеры школы.
Читать полностью »
