Рубрика «Программирование» - 1010

Что-то вроде предисловия

Статья «Как два программиста хлеб пекли» сначала мне показалась просто шуткой — настолько абсурдно выглядят попытки выстроить какой-то «дизайн», основываясь на тех «требованиях», которые выдвигает «менеджер». Но в каждой шутке есть доля правды… В общем, возник вопрос к самому себе: а как в данной ситуации сработает тот подход, которого я стараюсь придерживаться в своей практике? То, что выросло при попытке дать ответ, собственно, и представлено далее.

TDD + Smalltalk

Читать полностью »

В продолжение своего предыдущего поста habrahabr.ru/post/164305/ продолжаю публиковать интересные тонкости при разработке на C# под AutoCAD. Сегодня речь пойдет о решении проблемы передачи фокуса в AutoCAD при использования Modeless Window.
Читать полностью »

Данная статья не является продолжением повествования об обёртках C++ API. Никаких обёрток сегодня не будет. Хотя по логике это третья часть данного повествования.
Сегодня будет море крови, расчленение существующих типов и магическое превращение их в привычные аналоги в другом языке.
Речь не пойдёт о существующей конвертации между строками, нет, мы напишем свои конвертеры.
Мы превратим привычный datetime.datetime питона в boost::posix_time::ptime библиотеки Boost и обратно, да чёрт с ним, мы вообще всю библиотеку datetime превратим в бустовые типы! А чтобы не было скучно, принесём в жертву встроенный класс массива байт Python 3.x, для него как раз ещё нет конвертера в Boost.Python, а потом зверски используем конвертацию массива байт в новом конвертере питоновского uuid.UUID в boost::uuids::uuid. Да, конвертер можно использовать в конвертере!
Жаждешь крови, Колизей?!..
Читать полностью »

Недавний пост о выходе Kotin M5 вызвал у меня желание немного поиграться с языком (оно появлялось и раньше, но руки никак не доходили). Писать классические hello world'ы мне было неинтересно, я и решил придумать какую-нибудь заковыристую задачку, которая еще позволит использовать различные интересные фишки языка.
Напомню, что Kotlin — статически-типизированный язык программирования, который может компилироваться в байткод JVM или в JavaScript. Разрабатывается компанией Jetbrains.

Котлин имеет множество различных синтаксических сладостей, что позволяет делать довольно интересные вещи. В официальной документации есть пример(см. Higher-order functions) реализации конструкции synchronized в виде обычной функции, причем ровно так, как она выглядит в Java.
У меня родилась мысль реализовать подобным образом yield.
Читать полностью »

    В конце первой половины 90-х на рынок СНГ попала первая консоль от фирмы Sony — Playstation 1 или PSX. Ее можно считать уникальной со многих точек зрения, но для всех нас главным отличием пожалуй было то, что наконец-то в играх появилось полноценное видео, вменяемая 3D-графика, а также возможность сохранятся не при помощи пароля, судорожно ища бумажку(да простят меня читатели за неловкое сравнение, возникшее в их головах), а, как и подобает белому человеку, на цифровой носитель.

    Playstation: как это было

    На самом деле эта консоль обозначила собой тихую революцию и в программировании игр. Именно об этом я бы и хотел рассказать сегодня. И более того, если вы захотите написать свою игру для пылящейся в кладовке приставки, отомстив таким образом за творческое бессилие, испытанное в отрочестве, то под катом вы сможете получить представление о том, как это сделать.Читать полностью »

Google Code In 2012 — как это было?
Привет, хабрик!

Так уж сталось что в этом году я стал призером Google Code-In. Это конкурс для школьников со всего мира, в котором они соревнуются в разработке опенсорсного программного обеспечения. Мне удалось попасть в список Grand Prize Winners, так что думаю что стоит написать этот отчет.

У меня есть много информации, советов и всего интересного.
Читать полностью »

В неком городе России
(Может быть, что даже в вашем)
Есть не маленькая фирма.
Арендует помещенье
У НИИморгорворпрома.

В этой фирме есть сотрудник, почту любящий читать. Открывает как-то файл, кем-то вложенный нарочно, в недра письмеца пришедшего. Запустив без задней мысли «Благодарственное письмо.hta» и не увидев поздравления, покурить решил немного. Возвращаясь с перекура, он читает в беспокойстве:

Если Вы читаете это сообщение, значит Ваш компьютер был атакован опаснейшим вирусом.
Вся Ваша информация (документы, фильмы и другие файлы) на этом компьютере была зашифрована
с помощью самого криптостойкого алгоритма в мире RSA1024.
Восстановить файлы можно только при помощи специальной программы. Чтобы её получить, Вам необходимо
написать нам письмо на адрес unblockme@tormail.org
Читать полностью »

Бытует противоречивое мнение, что на проекте обязательно должен быть тестировщик. Но многие известные зарубежные проекты не имеют выделенных тестировщиков, особенно для привычных нашему миру задач. Как же так? Кто в этом случае будет отвечать за качество продукта? Кто будет искать и находить дефекты? Да и вообще, возможно ли такое? Если вас заинтересовали ответы на эти вопросы, то добро пожаловать под кат.

Читать полностью »

«У современных мобильных телефонов такая же вычислительная мощь, что и у компьютеров NASA в 60-е годы. И в то время этого хватало, чтобы запустить человека в космос, а сегодня — только чтобы запускать птиц в свиней.»
Фольклор

«Вы назовете это извращением. Но кто сказал, что извращение — это плохо?»
Один доцент нашей кафедры

Идея описанного ниже эксперимента возникла после серии услышанных и подслушанных высказываний о том, что современные планшеты не могут выступать в роли инструментов серьезной научно-исследовательской деятельности. Действительно, для многих пользователей работа с планшетником сводится к веб-серфингу, переписке по электронной почте и разного протокола мессенджерах, чтению книг, просмотру видео и иным преимущественно развлекательным целям. Также, как следует ожидать и как показывает недавний пост, планшетник является прекрасным мобильным подспорьем при работе с «офисными» приложениями. Однако аппаратные характеристики существующей техники позволяют задуматься — а насколько же эффективным станет планшет на изначальном для компьютеров поприще.

Читать полностью »

В этой статье я расскажу о том, как загруженность шины данных влияет на масштабируемость (scalability) приложений. Под масштабируемостью мы будем понимать не только способность многопоточного приложения сокращать свое время выполнения по мере увеличения числа потоков. Мы также добавим сюда и способность однопоточного приложения, запущенного одновременно в несколько копий (instances), выполняться за тот же самый промежуток времени, что и одна копия. Хотя последний пример было бы правильнее охарактеризовать таким свойством как пропускная способность (throughput), так как он относится к «серверному» режиму запуска приложений. Т.е. это такой режим, при котором на сервере запускается однопоточное приложение, каждый раз когда к нему подключается новый клиент. Главная задача при разработке таких приложений — это снижение их зависимости от общих ресурсов, одним из которых может являться шина данных.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js