Добрый день!
У многих из нас есть родители, которые не очень дружат с техникой, и дружить приходится за них. Моя семья в полном составе смотрит сериал "Великолепный век", серии которого выходят раз в неделю. Вроде не так часто, но субботу за субботой слышать «Иди проверь, нет ли серии», искать раздачу, запускать торрент и так далее стало утомительно, и я решил переложить это на цифровые плечи четвертого .NetFramework-а.
Что нам понадобится:
— Visual Studio 2010 или выше
— Консольный торрент-клиент Aria2c.
Читать полностью »
Рубрика «Программирование» - 990
Как я научил родителей качать турецкие сериалы одним щелчком
2013-04-30 в 11:46, admin, рубрики: rutracker, Программирование, торренты, метки: c++, rutracker, торрентыДобавляем Web API для программы на C++ с помощью библиотеки POCO
2013-04-30 в 6:53, admin, рубрики: api, c++, Программирование, метки: api, c++
В жизни любой достаточно большой программы наступает момент, когда нужно вывести наружу какой-нибудь API — для плагинов, для интеграции с другими системами, для автоматизации и т.д. Для этого есть много разных технологий, но как-то так исторически сложилось, что сейчас принято делать API в виде REST-сервисов. В принципе, если не гнаться за экономией каждого байта и микросекунды, то в этом есть смысл: HTTP-запрос сделать легко из любого языка, это хорошо работает и локально, и по сети, не нужно сильно глубоко погружаться в недры сетевых протоколов.
Давайте посмотрим, как к уже существующей программе на C++ можно быстренько прикрутить Web API, используя для этого библиотеку POCO.
Читать полностью »
Реализация перехвата вызовов API
2013-04-29 в 16:31, admin, рубрики: Delphi, информационная безопасность, Программирование, метки: DelphiМонитор. Отличное слово, правда, объединяющее в себе целую кучу понятий. Ну например впервые данное слово было применено в 1861 году к броненосцу «USS Monitor». Чуть позже данным словом стали называть дисплеи. Еще через некоторое в славную когорту мониторов вошли более привычные нам вещи, наподобие счетчиков производительности, а вместе с ними целая куча разнообразного ПО, основной задачей которого является наблюдение — то есть мониторинг.
Задача монитора проста — по сути он наблюдатель, хотя может выступать и в качестве управляющего, кстати один из вариантов перевода «Monitor» — наставник :). Задачи его так же очевидны, отдавать набор данных, на основе которых можно произвести анализ ситуации и сделать соответствующие выводы.
В современном ПО мониторы встречаются практически повсеместно, ну для примера тот же Punto Switcher — классический пример легального монитора. Практически все антивирусы являются мониторами, профилировщики, ну и я уж не говорю об основном нашем инструментарии — отладчике, который так же является монитором.
С обратной стороны баррикад выступают целые кучи зловредного ПО, некоторые из которых так же предпочитают использовать мониторинг для достижения своих основных целей. Впрочем не о них сейчас…
В интернете на данный момент существует просто невероятное количество примеров программных мониторов функций, правда в большинстве случаев рассматривается перехват правкой таблицы импорта, либо установка перехватчика в начале перехватываемой функции (т.н. сплайсинг). Но не смотря на доступность этих материалов иногда они не помогают разработчикам, так как написаны слишком (скажем так) заумным языком, либо вообще представляют из себя кусок вырванного из контекста кода, непонятный для не подкованного в предметной области разработчика.
Так случилось и у меня, за последний месяц ко мне обратилось несколько человек с вопросом как правильно реализовать перехватчик и ссылки на примеры им практически не помогли, пришлось все разжевывать с нуля. Зато теперь я в курсе основных ошибок, встречающихся у людей, только начинающих разбираться с методиками перехвата :)
В итоге, дабы не объяснять в следующий раз все заново, я решил сделать обзорную статью где попробую рассказать все максимально простым языком о том, «как это работает» :)
Читать полностью »
Работа по аутстаффингу, плюсы и минусы
2013-04-29 в 10:33, admin, рубрики: agile, Программирование, управление проектами Добрый день!
Воспользовавшись поиском по хабру, обнаружил, что нет тематических статей по запросу «аутстаффинг». Решил восполнить это и заодно поделиться опытом, т.к. в данный момент работаю на данной позиции.
Началось все с поиска новой работы, которая обеспечит свободный график и достойную оплату труда. Нашел такую, но на собеседовании не особо обратил внимание про пункт, что разработка будет происходить в офисе заказчика в контакте с местной командой. Выдали ноутбук и сказали адрес заказчика. Приехал, дали интернет, завели учетные записи на домене заказчика, дабы можно было вести переписку от имени заказчика с иными сотрудниками и подрядчиками от имени компании-заказчика (довольно хитрый ход).
Итак, с чем в итоге пришлось столкнуться:
Паскаль, Дельфи и Оберон сегодня
2013-04-28 в 21:32, admin, рубрики: Delphi, Modula-2, Oberon, Pascal, Z80, zx spectrum, Песочница, Программирование, метки: Delphi, Modula-2, Oberon, Pascal, Z80, zx spectrumПривет всем.
Начну с того, что на днях пришла рассылка по Delphi и RAD Studio XE4, в которой Delphi декларируется как мультиплатформенное средство для быстрой разработки для компьютеров, ноутбуков, планшетов и мобильных устройств, включая MAC, iPhone, iPAD, также у Embarcadero есть планы сделать поддержку мобильной платформы Android.
Delphi и FreePascal — это Паскаль сегодня. Один из моих любимейших языков программирования. Язык прошёл долгий путь от “игрушки для учёных” до мощнейшего универсального средства разработки, на котором сделаны великолепные проекты, например, Total Commander.
Построенное на здравых решениях, ядро языка Паскаль легко поддалось усовершенствованию и умощнению и пригодно для широчайшего класса практических задач. В России Delphi особенно популярен и всё ещё широко используется. Однако развитие языка идёт по принципу наращивания возможностей, и постепенно Delphi становится всё более громоздким, догоняя по сложности таких монстров как PL/1, C++ и Ada. С большой вероятностью мы можем предположить, что проще язык становиться не будет, ибо нужно поддерживать совместимость с накопившейся базой исходников и т.д. В конце концов такая стратегия развития неизбежно приведёт к трудностям, когда сложность уже невозможно будет контролировать.
В то же время есть язык программирования, получившийся за несколько десятилетий практического преподавания и решения различных задач путём методического и последовательного уточнения Паскаля. Это Оберон — самый красивый из всех минималистичных языков, о котором мало кто слышал. Я смело утверждаю: Паскаль сегодня — это не только Дельфи (полученный методом наращивания), но и Оберон-2 / Компонентный Паскаль (полученные методом отбрасывания, пересмотра и уточнения целесообразности тех или иных средств). Благодаря тому, что над автором языка не довлела необходимость совместимости, он особенно на эту тему и не парился. И получившийся в итоге язык — цельный, компактный, мощный, кроссплатформенный в широком смысле (включая не только современные платформы, но и Amiga, и даже Atari). На Компонентном Паскале я успешно разработал мидлет для Java micro edition, не предвижу трудностей и в разработке для Android. Кроме одной: отсутствие инфраструктуры, да и вообще о таком использовании Оберонов мало кто знает.
Оберон-2 и Компонентный Паскаль — мультипарадигменные языки для системного и прикладного программирования, они модульные, компонентные и объектно-ориентированные. Разработанные на диалектах Оберона операционные системы, компиляторы и другие программы — часто сами по себе произведения искусства. Они красивы, неординарны, компактны и достойны всяческих похвал. Оберон популярен в академической среде как способ записи алгоритмов (пришёл на смену Фортрану) и как минимальный язык для исследований (посмотрите, например, сколько вышло публикаций по Оберону на сайте издательства SpringerLink. Он идеально подходит для обучения программированию. В России есть проект Информатика-21, популяризующий применение Оберона для подготовки будущих программистов, ибо, помимо своих технических достоинств, Оберон даёт хорошее понимание технологий программирования и не зависит от коммерческих интересов крупных корпораций. Посмотрите чего наваяла моя малолетняя племянница после недели разговоров со мной о программировании. Благодаря простоте языка энтузиасты разработали много компиляторов Оберон-диалектов для различных платформ.
Вирт всегда считал правильным конструировать процессоры под языки, а не наоборот. Но, несмотря на это, Оберон-программы хорошо конвертируются в Си, Java, работают как на нативе, так и на .NET/JVM. Разрабатывается компилятор GPCP для LLVM. Мне принадлежит идея ZXDev — среды разработки на Обероне-2 для восьмибитного процессора Z80 и компьютера ZX Spectrum. Самая новая ревизия виртовского Оберона называется Oberon-07. Он ещё меньше по размеру, чем Оберон-2, и адаптирован для ARM-процессоров и архитектур большой разрядности. Вот такое направление развития Паскаля. Малоизвестное широким массам программистов, но красивое как произведение искусства. Уже более семи лет я активно применяю Оберон-технологии с пользой для своей деятельности, и программировать на чём-то другом уже мало хочется.
Читать полностью »
Как мы организовали уральскую репетицию ACM ICPC WORLD FINALS
2013-04-28 в 19:07, admin, рубрики: Программирование, Спортивное программирование, чемпионат, метки: чемпионат Доброго времени суток всем хаброжителям.
В этой статье я расскажу о том, что можно получить, если заразить нескольких студентов-айтишников с Урала крутой идеей о чемпионате международного уровня.

Всё началось жарким летним днём где-то в июле 2012. На кухне местной ИТ-компании сидели несколько студентов и Леонид ВолковЧитать полностью »
«А что если», Event Sourcing
2013-04-28 в 18:50, admin, рубрики: .net, event sourcing, архитектура приложений, Программирование, метки: event sourcing, архитектура приложений Наверное, про Event Sourcing слышал каждый, кто хоть раз пересекался с темой CQRS и DDD. Это подход хранения данных, при котором вместо конечного результата храниться череда записей о событиях происшедших с некоторой сущностью. На сайте Мартина Фаулера есть подробное описание, а мы же остановимся на фундаменте, основных «печенюшках», а также проблемах в его применении.
Читать полностью »
Работайте так, словно таланта у вас вообще нет
2013-04-28 в 13:52, admin, рубрики: gtd, Программирование, талант, метки: gtd, Программирование, талантНамедни наткнулся на замечательное высказывание талантливого боксера и невероятно сильного человека Роя Джонса. Он сказал: “Нужно работать так, словно таланта у тебя вообще нет”. Эти слова невероятно глубоко запали мне в душу. Я перечитал фразу раз двадцать и с каждым новым прочтением все больше понимал — “Да! Точно! Это именно то, чего мне не хватало.”
Это высказывание подходит пожалуй к любой профессиональной деятельности, начиная от спортсменов заканчивая любыми представителями около-творческих профессий, где в той или иной форме требуется проявление таланта. Для меня программирование — искусное ремесло, которое требует от творителя неимоверной остроты ума, таланта и трудолюбия. Именно о талантливой составляющей в программировании я бы хотел порассуждать.
Читать полностью »
Создаем велосипеды для Gmail вместе
2013-04-26 в 11:06, admin, рубрики: .net, gmail, велосипеды, Песочница, Программирование, метки: .net, c++, gmail, велосипедыМы все любим велосипеды.
Даешь больше велосипедов, хороших и разных, с квадратными и треугольными колесами!!!
Я долго пользуюсь почтой gmail. Когда я еще сидел на опере, я пользовался встроенным почтовым клиентом и все было хорошо. Потом я пересел на хром, стал использовать веб-версию почты, и о сообщениях узнавал с задержкой — ну не нравились мне клиенты, которые нужно ставить, что-то в них настраивать…

В общем, со временем вручную переходить на почту надоело, и я сел творить еще один велосипед. Кому лень читать, ссылка на проект (С#). Dropbox.
Остальные могут почитать
Читать полностью »
Возможно ли сегодня написать насекомое?
2013-04-26 в 10:41, admin, рубрики: искусственный интеллект, киборги, Программирование, метки: искусственный интеллект, киборги, ПрограммированиеПредставим, что у нас имеются любые необходимые нам ресурсы в бесконечном количестве, например, жизнь, деньги, человекочасы программистов, бесконечные возможности тестирования (моделирование экосистемы, прокрутка времени, удобное стороннее журналирование событий).
И еще у нас есть устройство, которое сможет установить любую нашу программу в мозг мухи, независимо от языка программирования и размера кода. При этом из памяти мухи стирается всё, что там было до этого. Код имеет право себя переписывать. Муха в праве передавать потомству новый код потомкам, но не имеет права передавать приобретенные данные.
