Search
Write a publication
Pull to refresh
1
0
Богдан @korum

User

Send message

Возвращаемся на раздачу или как сделать невозможное

Reading time14 min
Views75K

Предыстория


Не так давно, а именно 5 июня хабрачеловек по имени alan008 задал вопрос. Чтобы не заставлять ходить за подробностями, приведу его здесь:

Нужна помощь!

За несколько лет с разных трекеров (преимущественно c rutracker'а) разными клиентами (преимущественно uTorrent'ом) скачано много гигабайт разного полезного контента. Скачанные файлы впоследствии вручную перемещались с одного диска на другой, uTorrent их соответственно не видит. Многие .torrent файлы устарели сами по себе (например, велась раздача сериала путем добавления новых серий заменой .torrent файла).

Теперь сам вопрос: есть ли способ автоматически (не вручную) установить соответствие между имеющимися на компьютере .torrent файлами и содержимым, раскиданным по разным логическим дискам компьютера? Цель: удалить лишние (неактуальные) .torrent файлы, а для актуальных — поставить всё на раздачу. У кого какие идеи? :)

При необходимости (если это требуется) можно снова поместить все файлы данных в один каталог на одном логическом диске.

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

Потратив в общей сложности неделю на разбор формата .torrent-файла, поиск нормально работающей библиотеки для его парсинга, я приступил к написанию программы, которая позволит решить проблему затронутую в упомянутом вопросе.

Прежде чем начать, стоит отметить несколько моментов:
  1. Получилось много, но не все.
  2. По формату файла .torrent будут даны лишь необходимые пояснения.
  3. Людей, чувствительных к временами некачественному коду, прошу меня заранее простить — я знаю, что многое можно было написать лучше, оптимальнее и безглючнее.

Для тех, кому интересно, что из этого получилось, технические подробности и подводные камни — прошу под кат.
Читать дальше →

Приглашения на закрытые зарубежные трекеры обучающей тематики (Часть III)

Reading time2 min
Views17K
Knowledge itself is power

«Live as if you were to die tomorrow. Learn as if you were to live forever». ― Mahatma Gandhi.
«Живи так, как будто ты умрёшь завтра. Учись так, как будто ты будешь жить вечно». ― Махатма Ганди.

Итак, на календаре 1 сентября. А это значит, что во всех уголках стран СНГ молодые люди скоро пойдут грызть всем известный гранит науки. И чтобы им легче и продуктивней грызлось, я предлагаю продолжить хорошую традицию (раз, два) по распространению доступа к качественному учебному материалу, который находится на закрытых трекерах обучающей тематики. Лично мне этот материал помогает развиваться по своей специальности за пределами стен вуза или работы. И я уже с уверенностью могу сказать, что это уже не раз сыграло решающую роль в моей жизни.

В честь Дня знаний я, в который раз, организую праздничную раздачу инвайтов на зарубежные трекеры. А также приглашаю подключиться к данной акции хабрапользователей с инвайтами. Представление о трекерах вы можете получить из статьи — Обзор e-Learning трекеров или Век живи — век учись! и ее второй части. Материалы на всех трекерах большей частью на английском.
Кому интересно — добро пожаловать под кат.
Хочу инвайт!

«Войны в свободное время 2» или CS сервер + статистика в офисе

Reading time7 min
Views11K
Доброго времени суток Хабра-сообщество!

После долгих часов игры в BattleField 2, протяженных поездок на танках и джипах, сумасшедших падений на вертолетах и пары сотни метров собранной статистики по всему этому веселью, пришла пора задуматься о террористической обстановке на игровом фронте. Как же там заложники поживают? А не засыпало ли пылью старый, добрый de_dust2?

Сегодня я расскажу вам как установить и настроить игровой сервер Counter-Strike 1.6 и прикрутить к нему локальную статистику игроков. Данная статья является второй из серии «Войны в свободное время».
Предыдущие статьи:
BattleField 2 Ranked Server

Читать дальше →

Как рождаются Arduino

Reading time4 min
Views82K
Недавно я имел удовольствие побывать на заводе по производству Arduino.

image

Arduino производится в Скарманьо, маленьком городе недалеко от заводов Olivetti на окраине Турин в Италии.
Вся забота по производству печатных плат, установке компонентов и распространения лежит на плечах этого городка. Я был в восторге от увиденного и хотел бы поделиться некоторыми фотографиями.
Изюминкой моей поездки был System Elettronica, завод по производству печатных плат для Arduino.
Читать дальше →

Тестовые сайты MODX Revolution

Reading time2 min
Views8.6K


Представляю вашему внимаю мой сервис для близкого знакомства с MODx Revolution. Никаких регистраций, смс и прочей нудятины.

Абсолютно бесплатно, на сутки вы получаете свежеустановленный сайт на облаке Selectel с админскими правами.
Это как бы демо-сайт, только для для одного человека и с возможностью полноценной работы. Доступ вы получите в течении 10 — 15 минут через какое то время, ибо — Хабраэффект.

Через 24 часа этот сайт будет автоматически удален.

Основная задача сервиса — дать спокойно ознакомиться с отличной системой, а также хоть немного развеять мифы о «тормознутости» и «сложности».
Читать дальше →

Тихая революция: флеш-память в дата-центрах

Reading time7 min
Views35K
Флеш-память уже производит в ЦОДах революцию: перенос данных на flash — следующий шаг в развитии многих централизованных ИТ-систем. Да, она довольно дорогая, обладает своими особенностями — и все же сегодня вопрос для администраторов ЦОДов уже не в том, использовать флеш-память или нет, а в том, как и когда это делать.



Вот в этом топике уже давалась вводная информация, показывающая, что накопители нового типа заметно быстрее и надежнее для «молотилок», на которых крутятся тяжелые базы данных. Если есть возможность загрузить флеш-хранилище работой (то есть обеспечить постоянные операции чтения-записи), его содержание обходится заметно дешевле содержания массива HDD, плюс вы получаете кучу дополнительных бонусов.

Ниже – советы, как определить, пора ли переходить на эту технологию или еще нет.
Читать дальше →

Онлайновый учебный курс «Algorithms: Design and Analysis, Part I»

Reading time2 min
Views19K
Закончил я онлайновый курс Algorithms: Design and Analysis, Part I на coursera.org

Если сказать, что я полном отпаде — это ни чего не сказать. Причем, в отпаде я не сколько от материала. Он на высоте, но этим удивить сложно. А в восторге я от формата самого обучения, качества подготовки материалов и онлайновой технологии проведения.

Вкратце.
Читать дальше →

Графический фреймворк. Набор иконок социальных сервисов

Reading time1 min
Views61K


Привет уважаемое хабрасообщество, этот пост служит продолжением еще недавно активно обсуждаемой темы о социальных иконках [1] [2]. Мысль, которая пришла ко мне в голову после прочтения этих статей, привела к появлению нового вектора развития этой темы. Кстати о векторе, например бывает так, что дизайн разрабатываемого сайта или приложения имеет свою специфику и интегрировать стандартные иконки социальных сервисов без адаптации не представляется возможным. В таком случае мы берем в руки гугл и принимаемся за поиск нужных логотипов, для того чтобы создать подходящий набор иконок. Ах да я немного отвлекся, продолжим о векторе, чтобы не проделывать такие скучные действия, я собрал воедино несколько популярных иконок в векторе и теперь каждый желающий может сэкономить немного времени воспользовавшись им.
Читать дальше →

Несколько интересных приемов и особенностей работы с MySQL

Reading time3 min
Views88K
Я думаю, что в процессе изучения той или иной СУБД каждый из вас не раз изобретал велосипеды для решения своих задач, не зная о существовании той или иной функции или приема, которые бы могли в разы ускорить выполнение запросов и уменьшить объем кода. В данной статье я хочу поделиться с вами своим опытом работы с очень «добрым» и «отзывчивым» MySQL, часто позволяющему программисту делать вещи, которые другие СУБД переварить бы не смогли. Материал будет полезен скорее тем, кто только решил углубиться в чудесный мир запросов, но возможно и опытные программисты найдут тут что-то интересное.
Читать дальше →

Обратная сторона луны

Reading time14 min
Views48K
При написании приложений, одной из важнейших вопросов являются потребление памяти и отзывчивость (скорость работы).

Считается, что сборщик мусора – черный ящик, работу которого нельзя предугадать.

А еще говорят, что GC в .NET практически не настраиваемый. А еще, что нельзя посмотреть исходники как классов .NET Framework, так и CLR, GC и т.п.

А я скажу как бы ни так!

В данной статье мы рассмотрим:
  • структура организации размещения объектов в памяти
  • CLR 4.5 Background Server GC
  • правильная настройка сборщика мусора
  • эффективный апгрейд приложений до .NET 4.0+
  • правильное ручное управление памятью

Читать дальше →

Написание музыки в Linux: что есть прямо сейчас

Reading time9 min
Views127K
Недавно я прочитал о том, что Гэйб Ньюэлл всерьёз настроен на то, чтобы перенести хорошие и качественные игры в Linux. Как он считает, это именно то, чего не хватает, и что на данный момент ограничивает развитие платформы. Безусловно, он прав. Тем не менее, лично для меня есть и другая область, которая мне даже намного важнее, чем игры — это музыка. Если без игр я могу обойтись, то музыка для меня необходима — как, впрочем, и для многих других людей.

Рабочее место Niels Ott
На картинке ­— рабочее место Niels Ott, на компьютере запущен Ardour.

Моя жена тоже музыкант, и когда она увидела, какие секвенсоры и синтезаторы есть в Linux — она даже не стала пытаться в них разобраться, просто вернувшись к своим Cubase и Reason. На её ноутбуке есть Windows 7, и когда она пишет музыку, она просто перезагружается туда и запускает там эти программы.

Я же, пользуясь Linux уже около 10 лет, не могу так просто отказаться от того, чтобы хотя бы пробовать имеющиеся программы. В принципе, могу точно сказать, что за 10 лет всё очень сильно изменилось в лучшую сторону. И всё же то, что сейчас есть под Linux для написания музыки, очень далеко от идеала. Давайте вместе разберёмся, почему бо́льшую часть музыки всё ещё пишут на Mac OS X или Windows.
Читать дальше →

CSS3: свойство Box-Sizing

Reading time2 min
Views127K
Раньше, если мы делали div шириной и высотой 100px, добавляли padding 10px и border 10px, то получался квадрат не 100х100, а 140х140 px:



Но иногда требуется, чтобы div был фиксированной ширины при любых значениях padding и border. В CSS3 нам поможет свойство box-sizing.
Читать дальше →

Про jQuery и велосипеды — мое дополнение

Reading time6 min
Views64K
Сразу спешу сообщить вам, что я никоим образом не связан с автором предыдущей статьи. Однако, прочитав ее и увидев такой положительный отклик сообщества на статью, я тоже вдохновился и решил добавить немного своих наблюдений и знаний, к тому же это может послужить моей входной точкой в круги хабрасообщества.

Для затравки начнем с простого.
Читать дальше →

Бесплатные книги по JavaScript

Reading time2 min
Views66K

Javascript Enlightenment


Cody Lindley


Уровень знаний: средний
Тщательный обзор мировоззрения JavaScript через разбор встроенных объектов и нюансов.

Открыть

Eloquent Javascript


Marijn Haverbeke


Уровень знаний: начинающий
Вводная книга по JavaScript и программирование в целом.
Открыть

Building A JavaScript Framework


Alex Young


Уровень знаний: продвинутый
Избранные статьи из цикла«Let’s Make a Framework».
Открыть

Читать дальше →

Уязвимость связки PHP+nginx с кривым конфигом

Reading time1 min
Views61K

Summary


Announced: 2010-05-20
Credits: 80sec
Affects: сайты на ngnix+php с возможностью загрузки файлов в директории с fastcgi_pass




Background


Зачастую How-To по настройке связки nginx с php-fpm / php-cgi есть подобные строчки:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    include fastcgi_params;
}

Читать дальше →

Все врут или почему в MySQL лучше не использовать партиции

Reading time8 min
Views28K
Начиная с версии 5.1 в MySQL появилась такая полезная фича как партиции. Конечно же большинство разработчиков БД сразу не побрезговали ей воспользоваться. Спустя пару лет работы я наконец пожал плоды всей ущербности реализации этой технологии специалистами MySQL AB …
но обо всем по порядку

Я переучиваю людей на Java-программистов

Reading time8 min
Views135K

Когда я вижу друзей, которые вкалывают в два раза больше, а зарабатывают в четыре раза меньше, каждый раз начинается разговор:
— А ты бы не хотел поработать программистом? Ты же реально умный. Может ты просто не на своем месте?

В результате я переучиваю своих друзей и знакомых на программистов. Весь процесс занимает от двух до трех месяцев. 25 уроков по 4 часа. Потом все смогли устроиться программистами.
Эта статья не о том, как надо учить, скорее просто описание процесса, который работает.
Читать дальше →

Фриланс как средство заработка. Ч.1. Старт проекта

Reading time5 min
Views43K
В предыдущих своих постах я постарался рассказать о том, как взаимодействуют фрилансер и заказчик. Большинство мыслей, представленных в этих статьях, были самим собой разумеющимся, на что мне указывали, и не раз. Сегодня я бы хотел начать разговор о том, как мы, благополучно пройдя все перипетии первоначального обсуждения, начинаем проект. Я опять буду банален до безобразия, вновь и вновь буду перетирать то, что каждому понятно. Но, как показывает практика, все мы с упорством мазохистов наступаем на одни и те же грабли.
Читать дальше →

Трудности программирования под Windows

Reading time8 min
Views17K
Когда участвуешь в разработке достаточно сложных проектов, то написать неправильно работающий код проще простого. Вся загвоздка заключается в том, что ошибку начинаешь искать в самых темных закоулках проекта, в самых сложных его частях. При этом в голову даже и мысли не приходит, что не работать может самый простой код, основа всего проекта: framework.
В данном посте я опишу две проблемы, с которыми я столкнулся на практике: невозможность создать еще один поток и переименовать файл. Используемый язык программирования: C/C++.
Читать дальше →

Управление памятью в C++

Reading time6 min
Views156K
Работа с динамической памятью зачастую является узким местом во многих алгоритмах, если не применять специальные ухищрения.

В статье я рассмотрю парочку таких техник. Примеры в статье отличаются (например, от этого) тем, что используется перегрузка операторов new и delete и за счёт этого синтаксические конструкции будут минималистичными, а переделка программы — простой. Также описаны подводные камни, найденные в процессе (конечно, гуру, читавшие стандарт от корки до корки, не удивятся).

Читать дальше →

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity