Метка «Программирование» - 29

После моей первой публикации на Хабре о стеганографии, у меня было много мыслей и в результате много интересных идей. На некоторые идеи меня натолкнули комментаторы предыдущей статьи, к некоторым я пришел сам.Читать полностью »

С чего все началось

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

Задание и первая версия программы

Программа должна была использовать структуру из 5-ти полей:
Поле №1: номер записи;
Поле №2: название трека;
Поле №3: имя исполнителя;
Поле №4: время звучания;
Поле №5: год записи.
Это должна была быть консольная программа, все данные в которую вводятся с клавиатуры или с текстового файла (по желанию писавшего). Вводимые данные сохраняются в память компьютера или в файл соответственно. Также программа должна исполнять такие команды:
Поиск: по номеру, названию, исполнителю, времени и году записи а также вывод всех записей на экран;
Изменение данных: удаление, редактирование и добавление новых записей;
Редактирование: возможность изменения всех полей кроме номера записи.
Читать полностью »

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

Alb — новый язык программирования, основанный на арабской вязи

В странах арабского мира, да и во всех странах с языком, отличным от английского, начинающие программисты сталкиваются с одной и той же проблемой, заключающейся в том, что стандарт каждого распространенного языка программирования построен на основе латинской кодировки и слов английского языка, символов и слов, значение которых сначала абсолютно непонятно будущим специалистам. С целью преодоления языкового барьера в программировании Рэмси Нассер (Ramsey Nasser), ученый, работающий в области компьютерных технологий, создал полнофункциональный язык программирования Alb, что в переводе с арабского означает «сердце». Но арабским является не только название этого языка, все языковые конструкции и инструкции записываются с помощью символов и по правилам арабского языка — арабской вязи.
Читать полностью »

Задача

Задача звучит просто – напечатать таблицу. Напечатать так, чтобы она выглядела красиво и, по возможности, не расползалась.

После некоторых раздумий, решено было воспользоваться FOP для генерации PDF. Загвоздка в том, что Apache FOP не поддерживает table-layout:auto, то есть при построении таблицы необходимо вручную задать ширину столбцов (хорошо еще, что можно задать относительную ширину в процентах). Если же сделать все столбцы одинаковой ширины, таблица будет выглядеть несколько неэлегантно. Выходит, рассчитывать ширину придется вручную.

Основная идея в том, что ширину столбцов необходимо подобрать таким образом, чтобы как можно сильнее сократить число переносов строк внутри ячеек таблицы.

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

Введение.

Python замечательный язык. Связка Python + NumPy + Matplotlib, на мой взгляд, сейчас одна из лучших для научных расчётов и быстрого прототипирования алгоритмов. Но у каждого инструмента есть свои светлые и тёмные стороны. Одной из самых дискутируемых особенностей Python является GIL – Global Interpreter Lock. Я бы отнёс эту особенность к тёмной стороне инструмента. Хотя многие со мной не согласятся.

Если кратко, то GIL не позволяет в одном интерпретаторе Python эффективно использовать больше одного потока. Защитники GIL утверждают, что однопоточные программы при наличии GIL работают намного эффективнее. Но наличие GIL означает, что параллельные вычисления с использованием множества потоков и общей памяти невозможны. А это достаточно сильное ограничения в современном многоядерном мире.

Один из способов преодоления GIL при помощи потоков на C++ был недавно рассмотрен в статье: Использование Python в многопоточном приложении на C++. Я же хочу рассмотреть другой способ преодоления ограничений GIL, основанный на multiprocessing и shared array. На мой взгляд, этот способ позволяет достаточно просто и эффективно использовать процессы и разделяемую память для прозрачного параллельного программирования в стиле множества потоков и общей памяти.
Читать полностью »

Пакет Flash Builder 4.5 и, собственно, язык ActionScript 3.0 предоставляет программистам широкие возможности по использованию в своих flex-программах и обычных флешках звука в целом и микрофона в частности. Зачем же это нужно? В первую очередь, это может пригодиться в создании таких программ, как всевозможные голосовые чаты. Также свое применение эти элементы могут найти и в сфере защиты информации — например, в системах распознавания голоса. Но в данном примере и в данной конкретной статье будет говориться не столько об этом, сколько об общих правилах использования этих элементов. Также следует отметить, что работа будет вестись c flex-приложением.
Читать полностью »

Введение

В данной статье мы рассмотрим датчики, которые входят в базовый комплект Lego Mindstorms NXT 2.0, а именно: два датчика касания, датчик цвета, ультразвуковой сенсор (сонар). Рассмотрим сервисы, которые обеспечивают доступ к данным датчикам (рис. 1), напишем простые приложения, которые демонстрируют получение информации с датчиков.

image
Рисунок 1 — Сервисы датчиков
Читать полностью »

Когда я был моложе, мне казалось, что люди работают не ради того, чтобы превосходить кого-то в чем-то, руководить кем-то или зарабатывать больше денег. Мне казалось, что все люди имеют свое любимое дело, что им просто нравится быть пожарными, врачами, инженерами, художниками. Они делают что-то полезное для общества, у них есть идея, они строят свой мир вокруг этой идеи, и конечно же разбираются в том, что делают. Эти люди искренне рады таким же как они. Они добры и счастливы. Многие из нас стали разработчиками именно потому, что чувствовали эту энергию в людях, которые готовы копаться в сложных системах, разбираться в проблемах и стоить вокруг себя мир из сложных системных архитектур и взаимодействий не смотря ни на что.
Читать полностью »

один из шедевров неизвестного программиста
Всем привет. Недавно на просторах интернета наткнулся на очень занимательную вещицу, имя которой Instacode. Чем же занимателен данный сайт — а тем, что он работает по принципу Instagram, только вот изображения генерируются из вашего исходного кода. Не верите? А вы попробуйте. В общем, кому интересно — милости прошу под кат.

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


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