После моей первой публикации на Хабре о стеганографии, у меня было много мыслей и в результате много интересных идей. На некоторые идеи меня натолкнули комментаторы предыдущей статьи, к некоторым я пришел сам.Читать полностью »
Метка «Программирование» - 29
Стеганография: бездонные контейнеры и многоразовые ключи
2013-02-05 в 6:12, admin, рубрики: php, информационная безопасность, Программирование, Стеганография, метки: PHP, информационная безопасность, Программирование, СтеганографияРабота со структурами или как я учился писать читабельный код
2013-02-03 в 9:15, admin, рубрики: Песочница, Программирование, Совершенный код, метки: Программирование, совершенный кодС чего все началось
Я студент технического университета и учусь по направлению: «Высшая математика, информатика и математическое моделирование». Так как я учусь только на втором курсе — мой код совершенным назвать очень сложно. В прошлом семестре мы изучали такую дисциплину как «Современные парадигмы программирования». На одной из лекций мы рассматривали ООП на примере С++ и получили задание написать псевдо-музыкальную библиотеку с использованием структур.
Задание и первая версия программы
Программа должна была использовать структуру из 5-ти полей:
Поле №1: номер записи;
Поле №2: название трека;
Поле №3: имя исполнителя;
Поле №4: время звучания;
Поле №5: год записи.
Это должна была быть консольная программа, все данные в которую вводятся с клавиатуры или с текстового файла (по желанию писавшего). Вводимые данные сохраняются в память компьютера или в файл соответственно. Также программа должна исполнять такие команды:
Поиск: по номеру, названию, исполнителю, времени и году записи а также вывод всех записей на экран;
Изменение данных: удаление, редактирование и добавление новых записей;
Редактирование: возможность изменения всех полей кроме номера записи.
Читать полностью »
О чем не хочется вспоминать программисту
2013-02-02 в 2:28, admin, рубрики: карьера, обучение, Программирование, трэш-аналитика, Учебный процесс в IT, фриланс, метки: карьера, обучение, Программирование, трэш-аналитика, фрилансКак-то, читая комментарии к очередной вводной статье к oDesk, я нарвался на комментарий в которомприсутствовало словосочетание «трэш-работа». Комментарий был о чем-то другом, но зацепило именно это. Потому что именно этословосочетание кратко и емко описывает целый пласт работы во фрилансе и в какой-то мере в ИТ, особенно в тех его областях, гдеинформационные технологии являются лишь сопутствующей частью бизнес процесса. Данный пост — свободное по форме изложение моегоопыта и опыта моих знакомых: фрилансеров, программистов, системных администраторов, принимавших участие в работе, к которой так илипнет емкая приставка трэш-. Данное повествование ведется исключительно с позиции наемного работника, поэтому если вам, какзаказчику, начальнику, менеджеру, покажется, что в этом тексте такие персонажи как заказчики, начальники, менеджеры описываютсяоднобоко и предвзято, то это сделано намеренно, а не по глупости или упущению. Читать полностью »
Alb — новый язык программирования, основанный на арабской вязи
2013-01-31 в 21:04, admin, рубрики: ненормальное программирование, Программирование, метки: Программирование
В странах арабского мира, да и во всех странах с языком, отличным от английского, начинающие программисты сталкиваются с одной и той же проблемой, заключающейся в том, что стандарт каждого распространенного языка программирования построен на основе латинской кодировки и слов английского языка, символов и слов, значение которых сначала абсолютно непонятно будущим специалистам. С целью преодоления языкового барьера в программировании Рэмси Нассер (Ramsey Nasser), ученый, работающий в области компьютерных технологий, создал полнофункциональный язык программирования Alb, что в переводе с арабского означает «сердце». Но арабским является не только название этого языка, все языковые конструкции и инструкции записываются с помощью символов и по правилам арабского языка — арабской вязи.
Читать полностью »
Автоматический расчет ширины столбцов
2013-01-29 в 14:10, admin, рубрики: математика, минимизация, Программирование, таблицы, метки: математика, минимизация, Программирование, таблицыЗадача
Задача звучит просто – напечатать таблицу. Напечатать так, чтобы она выглядела красиво и, по возможности, не расползалась.
После некоторых раздумий, решено было воспользоваться FOP для генерации PDF. Загвоздка в том, что Apache FOP не поддерживает table-layout:auto
, то есть при построении таблицы необходимо вручную задать ширину столбцов (хорошо еще, что можно задать относительную ширину в процентах). Если же сделать все столбцы одинаковой ширины, таблица будет выглядеть несколько неэлегантно. Выходит, рассчитывать ширину придется вручную.
Основная идея в том, что ширину столбцов необходимо подобрать таким образом, чтобы как можно сильнее сократить число переносов строк внутри ячеек таблицы.
Параллельное программирование в Python при помощи multiprocessing и shared array
2013-01-29 в 12:30, admin, рубрики: python, Программирование, метки: python, ПрограммированиеВведение.
Python замечательный язык. Связка Python + NumPy + Matplotlib, на мой взгляд, сейчас одна из лучших для научных расчётов и быстрого прототипирования алгоритмов. Но у каждого инструмента есть свои светлые и тёмные стороны. Одной из самых дискутируемых особенностей Python является GIL – Global Interpreter Lock. Я бы отнёс эту особенность к тёмной стороне инструмента. Хотя многие со мной не согласятся.
Если кратко, то GIL не позволяет в одном интерпретаторе Python эффективно использовать больше одного потока. Защитники GIL утверждают, что однопоточные программы при наличии GIL работают намного эффективнее. Но наличие GIL означает, что параллельные вычисления с использованием множества потоков и общей памяти невозможны. А это достаточно сильное ограничения в современном многоядерном мире.
Один из способов преодоления GIL при помощи потоков на C++ был недавно рассмотрен в статье: Использование Python в многопоточном приложении на C++. Я же хочу рассмотреть другой способ преодоления ограничений GIL, основанный на multiprocessing и shared array. На мой взгляд, этот способ позволяет достаточно просто и эффективно использовать процессы и разделяемую память для прозрачного параллельного программирования в стиле множества потоков и общей памяти.
Читать полностью »
Загрузка, воспроизведение звука, использование микрофона в ActionScript 3.0
2013-01-27 в 15:51, admin, рубрики: Action Script, actionscript 3.0, flash, звук, микрофон, Программирование, метки: actionscript 3.0, flash, звук, микрофон, Программирование Пакет Flash Builder 4.5 и, собственно, язык ActionScript 3.0 предоставляет программистам широкие возможности по использованию в своих flex-программах и обычных флешках звука в целом и микрофона в частности. Зачем же это нужно? В первую очередь, это может пригодиться в создании таких программ, как всевозможные голосовые чаты. Также свое применение эти элементы могут найти и в сфере защиты информации — например, в системах распознавания голоса. Но в данном примере и в данной конкретной статье будет говориться не столько об этом, сколько об общих правилах использования этих элементов. Также следует отметить, что работа будет вестись c flex-приложением.
Читать полностью »
Программируем в Microsoft Robotics Developer Studio. Часть 3, взаимодействие с датчиками
2013-01-26 в 3:06, admin, рубрики: Программинг микроконтроллеров, Программирование, программирование микроконтроллеров, робототехника, метки: Программирование, программирование микроконтроллеров, робототехникаВведение
В данной статье мы рассмотрим датчики, которые входят в базовый комплект Lego Mindstorms NXT 2.0, а именно: два датчика касания, датчик цвета, ультразвуковой сенсор (сонар). Рассмотрим сервисы, которые обеспечивают доступ к данным датчикам (рис. 1), напишем простые приложения, которые демонстрируют получение информации с датчиков.
Рисунок 1 — Сервисы датчиков
Читать полностью »
Собеседование на должность разработчика, или 7 заповедей некомпетентного интервьюера
2013-01-26 в 1:02, admin, рубрики: жизнь, Программирование, собеседование, метки: жизнь, Программирование, собеседование Когда я был моложе, мне казалось, что люди работают не ради того, чтобы превосходить кого-то в чем-то, руководить кем-то или зарабатывать больше денег. Мне казалось, что все люди имеют свое любимое дело, что им просто нравится быть пожарными, врачами, инженерами, художниками. Они делают что-то полезное для общества, у них есть идея, они строят свой мир вокруг этой идеи, и конечно же разбираются в том, что делают. Эти люди искренне рады таким же как они. Они добры и счастливы. Многие из нас стали разработчиками именно потому, что чувствовали эту энергию в людях, которые готовы копаться в сложных системах, разбираться в проблемах и стоить вокруг себя мир из сложных системных архитектур и взаимодействий не смотря ни на что.
Читать полностью »
Знакомьтесь, Instacode — это как Instagram, только для лучших фрагментов из жизни… исходного кода
2013-01-25 в 19:36, admin, рубрики: fun, Программирование, юмор, метки: fun, Программирование, юмор
Всем привет. Недавно на просторах интернета наткнулся на очень занимательную вещицу, имя которой Instacode. Чем же занимателен данный сайт — а тем, что он работает по принципу Instagram, только вот изображения генерируются из вашего исходного кода. Не верите? А вы попробуйте. В общем, кому интересно — милости прошу под кат.