Вдохновившись этой статьей от СКБ Контур, решили провести Code Retreat у себя на факультете (Томский государственный университет, факультет информатики). Правда у нас целью было не обучение каким-то конкретным технологиям, а скорее просто знакомство (половина участников с 1-2 курсов), фан и немного ненормального программирования.
Читать полностью »
Рубрика «ненормальное программирование» - 98
Code Retreat на факультете информатики
2013-10-28 в 8:19, admin, рубрики: ненормальное программирование, парное программирование, Учебный процесс в IT, метки: парное программированиеInternet Archive позволяет запускать Atari-игры и старое ПО прямо в браузере
2013-10-27 в 7:29, admin, рубрики: Internet Archive, javascript, ненормальное программирование, метки: Internet Archive
Два года ушло у команды Internet Archive на разработку JavaScript-порта MESS-эмулятора, позволяющего запускать старые игры и ПО (типа первого редактора таблиц) прямо в современном браузере. По словам разработчиков, разработка позволяет запускать все, от Atari-игр до старого-старого ПО.
Популярность тегов Хабра: какие тренды в постах?
2013-10-26 в 19:47, admin, рубрики: python, ненормальное программирование, теги, теги никто не читает, хабрахабр, метки: python, теги, теги никто не читаетДоброго времени суток!
Сегодня речь пойдёт о том, как можно попробовать проследить тенденции. Глядя на то, как это делает google появилось желание сделать подобные тренды на основе тегов Хабра. Возможно, не все пользователи добросовестно расставляют теги, но допустив это как истину, можно получить неплохие результаты. Итак, давайте попробуем.
Читать полностью »
Хакеры на экране — 2
2013-10-26 в 9:12, admin, рубрики: Блог компании Mail.Ru Group, Голливуд, ненормальное программирование, Программирование, хакеры, хакеры в кино, метки: Голливуд, Программирование, хакеры, хакеры в кино
Этот пост — продолжение статьи о том, как в кино изображают хакеров. Затронутая тема показалась мне довольно интересной (и далеко не исчерпанной) и в эти выходные я решил продолжить описывать такое явление, как «хакеры на экране» и дополнить коллекцию киноляпов.
На КДПВ стоп-кадр фильма «Железный Человек-2». Как нетрудно догадаться, рисующие этот интерфейс управления боевого костюма дизайнеры зашли в первый попавшийся русскоязычный онлайн-магазин, торгующий кондиционерами (умиляет даже сохранившееся название переменной «kolichectvo») и вырезали часть html-кода…
Практическое применение LD_PRELOAD или замещение функций в Linux
2013-10-25 в 22:04, admin, рубрики: ld_preload, linux, ненормальное программирование, метки: ld_preload Всем привет!
В 2010 году, shoumikhin написал замечательную статью Перенаправление функций в разделяемых ELF-библиотеках. Та статья очень грамотно написана, полная, но она описывает более харкордный способ замещения функций. В этой статье, мы будем использовать стандартную возможность динамического линкера — переменную окружения LD_PRELOAD, которая может загрузить вашу библиотеку до загрузки остальных.
Как это работает?
Да очень просто — линкер загружает вашу библиотеку с вашими «стандартными» функциями первой, а кто первый — того и тапки. А вы из своей библиотеки можете загрузить уже реальную, и «проксировать» вызовы, попутно делая что вам угодно.
Реальный Use-Case #1: Блокируем mimeinfo.cache в Opera
Мне очень нравится браузер Opera. А еще я использую KDE. Opera не очень уважает приоритеты приложений KDE, и, зачастую, так и норовит открыть скачанный ZIP-архив в mcomix, PDF в imgur-uploader, в общем, вы уловили суть. Однако, если ей запретить читать файл mimeinfo.cache, то она все будет открывать через «kioclient exec», а он-то уж лучше знает, в чем я хочу открыть тот или иной файл.
Чем может приложение открывать файл? На ум приходят две функции: fopen и open. В моем случае, opera использовала 64-битный аналог fopen — fopen64. Определить это можно, воспользовавшись утилитой ltrace, или просто посмотрев таблицу импорта утилитой objdump.Читать полностью »
Делаем Refal на Prolog. Магия в семь строк
2013-10-25 в 6:31, admin, рубрики: Prolog, ненормальное программирование, метки: prologЕсли распознающая машина на рисунок слона отзывается сигналом «мура», на изображения верблюда — тоже «мура» и на портрет видного ученого — опять-таки «мура», это не обязательно означает, что она неисправна. Она может быть просто философски настроена.
Владимир Савченко, «Открытие себя»
1. Полюбите Рефал. Немедленно!
Всем известно, что есть такой язык программирования — Рефал. Рефал разработан в 1966 году нашим соотечественником Валентином Турчиным. Судьба у Рефала сложная, но язык до сих пор жив и развивается. Для интересующихся приведем несколько ссылок:
- Самостоятельное изучение Рефала-5. Взгляд студента
- Журнал «Практика функционального программирования», выпуск №7(светлая ему память!). Статьи «Язык РЕФАЛ — взгляд со стороны» и «Суперкомпиляция: идеи и методы»
Сильно утрируя, можно сказать, что Рефал — это смесь Лиспа и Пролога. В синтаксисе языка есть одна интересная особенность — сопоставление с образцом т.н. «прямым выводом».
Читать полностью »
Язык программирования и база данных Q: в энтерпрайсе синтаксис роли не играет
2013-10-24 в 15:18, admin, рубрики: apl, ненормальное программирование, Программирование, метки: aplВозникла необходимость выбрать новый тарифный план для сотового. Провозившить минут 30 с excel и google-docs стало понятно, что ничего толкового из этого не выйдет и без db тут не обойтись.
Чуть подумав рука сама набрала «q», так как это было единственное доступное на компьютере здесь и сейчас. Что про него знал: что первый и последний раз запускал год назад, минут на 30, простой задачки по разбору и поиску по файлу.
Дальше будет много q, а именно ascii последователя подмножества языков APL'а и языка Scheme, а именно k и его расширения k-sql, переродившихся в продукт с именем Q — тесной связке языка и встроенной в него базы данных.
C:UsersunknownDropboxj>q
KDB+ 3.0 2013.02.06 Copyright (C) 1993-2013 Kx Systems
w32/ 2()core 2972MB unknown win-d2om7les24v 192.168.1.2 PLAY 2013.05.07
Компилируем код из кода для воспроизведения гонки двух процессов
2013-10-22 в 6:45, admin, рубрики: race condition, Блог компании ABBYY, гонки, компиляция, ненормальное программирование, отладка, метки: race condition, гонки, компиляция, отладка Класс CSharpCodeProvider позволяет программе на C# компилировать код на C#. Обычный вопрос – «зачем». Обычные ответы:
- исполнение кода, данного пользователями, как на ideone.com,
- «ну мало ли зачем» и
- «а это уже отдельный вопрос»
Сегодня мы используем этот класс для удобного воспроизведения гонки двух процессов.
Читать полностью »
Создание 1k/4k intro для Linux, часть 4
2013-10-21 в 5:47, admin, рубрики: demoscene, distance fields, glsl, OpenGL, raymarching, sizecoding, Анимация и 3D графика, Демосцена, ненормальное программирование, метки: demoscene, distance fields, glsl, OpenGL, raymarching, sizecoding, демосцена Доброго всего, мои избыточно терпеливые друзья!
Как очень немногие из вас помнят, во второй части мы остановились на том, что получили прямоугольник на весь экран в сколько-то там сотен байт, и теперь вот уже полтора года стоим перед проблемой заполнения пустоты в наших кодах и сердцах творчеством.
Что же всё-таки можно нарисовать с помощью всего двух треугольников? Квадрат? Фрактал? Полёт сквозь мегатонной мощности взрыв в центре города? Есть ли предел безумию, где заканчивается реальность и начинается явь? Как правильно ухаживать за лучами, чем их кормить и обо что отражать вы узнаете во внезапном продолжении цикла статей про демомейкинг!
Язык программирования J. Взгляд любителя. Часть 4. Коробки и циклы. Заключение
2013-10-19 в 21:38, admin, рубрики: ненормальное программирование, тацитное программирование, функциональное программирование, метки: тацитное программированиеПредыдущая статья цикла Язык программирования J. Взгляд любителя. Часть 3. Массивы
1. Коробки
Мы уже столкнулись с тем, что существительное в J — это массив. Даже над одиночными константными значениями допустимы векторные операции. В совокупности все это составляет удобную векторную гомогенную среду программирования.
Однако, очевидно, что у массивов есть и свои ограничения. В связи с тем, что в J по умолчанию только прямоугольные массивы, то и нет возможности стандартными средствами создавать т.н. ступенчатые (jagged) массивы. Кроме того, для списков, состоящих из разнородных элементов, массивы также не подходят.
Читать полностью »