Pull to refresh
4
0.4
Send message

Удобная торрентокачалка с управлением через web и android для выделенного сервера

Reading time10 min
Views35K

Преамбула


В данной заметке я хочу рассказать, как сделать универсальную торрентокачалку с управлением через интернет как с web интерфейса так и из Android приложения.
Тут будет рассказано о настройке связки rtorrent+rutorrent+nginx+php-fpm+transdroid на Debian Wheezy. Сразу отвечу на вопрос, почему не transmission, во первых при большом количестве раздач/закачек она падает, во вторых слабо кастомизируется и не имеет плагинов для автоматизации поиска и закачки новинок ну и просто лично мне не нравится.
В случае с rtorrent версия из репозитория собрана без xmlrpc-c, так что придется пересобрать самим, официальная документация проектов содержит только вариант настройки с apache, что мне не подошло о всех трудностях и их решении будет рассказано ниже.
Постараюсь максимально комментировать все настройки и конфиги, чтоб можно было понять как система работает, а не заниматься тупым копипастом.
Надеюсь владельцам собственных NASов и выделенных серверов будет интересно.

Все команды для удобства привожу из под root, без использования sudo.
Картинок будет мало, в основном команды и пояснения, для максимально быстрого воспроизведения конфигурации.
Итак, поехали:
Total votes 42: ↑34 and ↓8+26
Comments63

Уроки по электрическим цепям — линии передачи, часть 2

Reading time9 min
Views88K


Эта статья — перевод. Начало здесь.
Источник.

В программе:
1) Провода болтаются в воздухе, но источник тока/напряжения видит короткое замыкание.
2) На одном конце провода амплитуда равна 0 Вольт, а на другом — 1 Вольт. Как это возможно?
3) Согласование 75 Ом источника сигнала с 300 Ом нагрузкой при помощи правильно подобранного кабеля.

Стоячие волны и резонанс


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

На рисунке показано, как треугольная падающая волна зеркально отражается от открытого конца линии. Для простоты, линия передачи в этом примере показана как единая жирная линия, а не как пара проводов. Падающая волна идёт слева направо, а отражённая – справа налево.
Читать дальше →
Total votes 86: ↑86 and ↓0+86
Comments12

Основы IP-телефонии, базовые принципы, термины и протоколы

Reading time16 min
Views533K

Добрый день, уважаемые хабражители. В данной статье я постараюсь рассмотреть основные принципы IP-телефонии, описать наиболее часто используемые протоколы, указать способы кодирования и декодирования голоса, разобрать некоторые характерные проблемы.
Читать дальше →
Total votes 70: ↑64 and ↓6+58
Comments58

Фотографии рабочих мест хабражителей и…

Reading time6 min
Views411K
image
Хабражители редко ходят друг к другу в гости. И, в то же самое время, хотят взглянуть на то, как устроились другие. Может быть, даже, позаимствовать разные интересности.

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

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

Приоткройте занавесу тайны в своей обители.

PS: Бонус для владельцев ноутбуков — подключаем 2 монитора.
Читать дальше →
Total votes 286: ↑210 and ↓76+134
Comments676

Как я не спал год или создание социального Android приложения

Reading time8 min
Views35K
Доброго времени суток, уважаемые хабражители. Я работаю в большой IT компании Android-разработчиком.

Все началось примерно год назад. Тогда, я решил начать свой первый проект. Идея приложения пришла мне практически сразу. Ее первоначальная версия звучала примерно так — «Я хочу, чтобы каждый мог узнать независимое мнение людей всего мира, по интересующему вопросу».

Начать рассказ, про свой интересный путь создания приложения, я решил с конца, с этапа его продвижения. Это связано с тем, что информация, которой я хочу поделиться, актуальна на текущий момент, и с течением времени будет устаревать.

В статье присутствуют цены на те или иные услуги сайтов с которыми мне удалось связаться.
Читать дальше →
Total votes 119: ↑114 and ↓5+109
Comments30

Опыт обучения школьников программированию

Reading time13 min
Views146K
Примерно полтора года назад компания, в которой я работал, приняла решение начать образовательный проект: готовить будущих программистов со студенческой и даже школьной скамьи. Решение было вызвано как нехваткой квалифицированных программистов в нашем регионе, так и тем, что приходящих выпускников приходится очень многому доучивать – получаемое в вузе образование не полностью отвечает современным реалиям индустрии разработки ПО. Проект взаимовыгодный как для студентов, которые получают возможность познакомиться с промышленным программированием на практике, так и для компании, которая получит через несколько лет квалифицированных специалистов.

Но еще интереснее оказалась часть проекта, ориентированная на работу со школьниками. Я принимаю непосредственное участие именно в этой части, поэтому хочу рассказать о ней.
Читать дальше
Total votes 106: ↑99 and ↓7+92
Comments164

Как я был поинтом

Reading time5 min
Views69K
Я увидел компьютер первый раз в 1988 году. Тогда все мое общение сводилось к играм. Т.к. играл на рабочем компьютере моего родного дядьки, то игрушки временами удалялись или перемещались кем то из недоброжелателей, скорее всего начальством. Поэтому пришлось учиться азам пользовательского интерфейса, чтобы находить и прятать игрушки. К моменту окончания школы и перед вступлением в институт я уже точно знал, в каком направлении буду работать. Примерно в 98-99 годах я первый раз услышал о Фидо. Друзья меня пугали страшными правилами, когда из-за косяка одного поинта всю ноду переводили в РО на месяцы. А еще друг рассказал об ужасных боссах. Это не какие то боссы в конце игрушек, которых надо долго убивать из своих последних сил. Этих надо целый вечер ублажать из последних сил своего кошелька, путем введения в их организм доз алкоголя, несовместимых с жизнью. И тогда, на грани сознания, в последний миг перед переходом в состояние двухдневной комы, меркнущий разум босса отдаст последнюю команду. Из его уст, как будто на последнем вздохе, вырвется едва уловимый шепот. Надо ловить этот момент, познать дзэн, отрешиться от всего мира и слушать. И в тишине ты услышишь шепот, произносящий заветные цифры. Не забудь их, не пропусти их. После комы босс их может и не повторить. Прошлепал — значит прошлепал. Когда он выйдет из комы, он вспомнит эти цифры, они будут жечь его изнутри пока он не пропишет их в своих конфигах. А у поинта за время его комы есть время на настройку всего софта. Многие боссы не помогают своим поинтам с настройкой софта, позволяя естественному процессу эволюции отсекать самых бездарных от Фидо. Запуганный до глубины души я пошел знакомиться с его боссом.
Читать дальше →
Total votes 173: ↑150 and ↓23+127
Comments338

Кроссплатформенная разработка для мобильных с Xamarin

Reading time11 min
Views61K

Введение


Совсем недавно компания Xamarin анонсировала выход новой версии своего инструментария для кроссплатформенной разработки мобильных приложений, но вменяемых статей на русском по этой тематике так и нет. На Хабре появился небольшой обзор, не связанный с кодингом, там же была пара попыток рассказать об этом чуть подробнее, но дальше процесса создания Hello World приложения дело не зашло. А жаль. В этот раз мы попробуем исправить это досадное недоразумение.
Читать дальше →
Total votes 46: ↑38 and ↓8+30
Comments29

Six Towers. История успеха?

Reading time3 min
Views78K

За три года я выложил в Apple Appstore центнер приложений.
Большинство из них интересны лишь моему воспаленному мозгу.
Некоторые приносят до 100 долларов в год. Не надо ржать, слушайте дальше.
Число игр с ежегодным доходом в 1000 долларов равно числу пальцев на руке английского программиста.
И одно приложение из сотни выстрелило. На сегодняшний день 19 декабря оно заработало 248 457 денег и к Новому 2013 году обещает преодолеет четверть-миллионный рубеж.
Согласно опросу, проведенному на Хабре, 82% местных жителей считают это успехом.
Я вынужден с ними согласиться.

В статье веселый рассказ, как и почему это произошло.
Примеров программного кода не будет. За примерами программного кода идите Вы на stackoverflow.com.
Строгих редакторов предупреждаю, что приложение бесплатное, а статья бессыльная. Значит, без ссылок.

Редакция выбрасывает меня в пятый раз из хаба Game Development. Я в недоумении. .

Читать дальше →
Total votes 294: ↑258 and ↓36+222
Comments123

Все самое главное для очередного «убийцы Angry Birds»

Reading time5 min
Views105K
У меня есть хобби — я разрабатываю мобильные казуальные игры. Поэтому мне часто приходится подвергать анализу хиты из топов Google Play и AppStore, клонировать удачные решения и не допускать чужих ошибок. В результате я выявил у всех самых хитовых игр некоторые сходные черты в геймплее и управлении. В этом посте я изложу свои наблюдения о том, что именно делает игру популярной, и как это лучше реализовать.



1. Геймплей


Главные сходства игрового процесса таких хитов рынка мобильных игр, как Angry Birds, Ninja Jump, FruitNinja, Rope'n'Fly, Doodle Jump — простота и однообразие. Минимум действий и постоянное их повторение.

а) Лёгкость прохождения

Все самые популярные игры крайне легки в прохождении или собственно в самом процессе игры. Эта одна из главных причин их бешеного успеха. Большинство владельцев телефонов и планшетов — обычные люди, они не считают интересным пяток раз на выходных перепройти Марио или Battletoads. Также помните причины, по которым люди играют в мобильные игры. Причины эти — скука и усталость. Люди сидят на работе, на скучных лекциях, едут в метро, и вполне логично у них возникает желание поиграть. Поэтому ни в коем случае нельзя делать огромные сложности в играх — скучающие не получат веселья (девиз Dwarf Fortress «Проигрывать — это весело» здесь не прокатит), а уставшие от сложностей на работе не станут вкладывать кучу сил ещё и в какую-то игрушку.
Подробнее
Total votes 241: ↑213 and ↓28+185
Comments92

Как я заработал $200K на рынке образовательных приложений iOS

Reading time12 min
Views23K
Данную статью хочу приурочить к одновременно выходу второй версии моего приложения Word Wizard и взятию новой отметки в $200 000 в Apple AppStore. Далее я постараюсь поделиться своим опытом и мыслями об образовательном рынке, а также рассказать свою историю успеха. Надеюсь что эта информация будет полезна многим независимым разработчикам. Для тех же кто создает образовательные продукты на платформе iOS моя статья даст возможность оценить рынок приложений в этой сфере.



Собственно начну с продаж и рейтинга, а затем расскажу подробнее про мой личный опыт.
Итак, поехали ...
Total votes 227: ↑202 and ↓25+177
Comments64

О том, как выпустить отличное iOS приложение, которое кому-то нужно

Reading time10 min
Views64K
У меня déjà vu?
У некоторых хабраюзеров может возникнуть ощущение дежа вю. Все дело в том, что данная статья уже публиковалась на хабре месяц назад, однако по незнанию я в ней поставил ссылки на приложение и его обзоры. Карающая длань модератора очень быстро настигла меня. Публикую вновь, на сей раз без ссылок.

Мотивом написания данной статьи в чем-то послужил другой хабратопик «О том, как выпустить отличное iOS приложение, которое никому не нужно». Я попробую рассказать о том как выпустить отличное приложение, которое кому-то все же нужно, но на котором не получилось заработать.

Еще один мотив — разложить для себя все по полочкам. Все же история достаточно объемная и пока не систематизируешь все на бумаге, осознать все свои ошибки весьма сложно. Постоянно будешь думать о том, что ты все сделал правильно, и будет казаться, что во всем виноваты нерадивые пользователи, которым жалко доллара. А свои просчеты мозг отодвинет на дальнюю полку. Ну и какие-то менее очевидные вещи, возможно, подскажет хабрааудитория.

Не мне судить о том, можно ли считать эту историю success-story. Наверное все же нет. Этот проект — мой успех как программиста и менеджера проекта в одном лице и одновременно это мой провал как маркетолога и человека, который не против заработать немного денег.
Ну и, конечно, однозначный успех для моей жены Александры и ее брата — дизайн приложения, о котором идет речь, это их первый дизайн мобильного приложения, давший дорогу к дальнейшей интересной работе.

Также для любителей цифр скажу — все цифры в статье будут. Расскажу сколько скачиваний, сколько заработано, сколько инаппов куплено и сколько раз их пытались сломать.
Читать дальше →
Total votes 74: ↑63 and ↓11+52
Comments58

Первый украинский SSD диск или вторая жизнь швейцарского компьютера

Reading time8 min
Views197K
К сожалению, огромное количество предприятий в Украине работают на устаревшем промышленном оборудовании, изготовленном пару десятков и более лет назад. После развала Союза и распродажи на металл станков местной разработки оставшиеся на плаву предприятия начали приобретать на западе подержанные станки с числовым программным управлением: плазморезы, дерево-, металлообрабатывающие станки, гравировальное оборудование и т.п. Но относительно невысокая стоимость такого железа имеет и обратную сторону – простои из-за отказов, недоступности запчастей, полного отсутствия поддержки.
Этот пост о том, как простая замена винчестера в деревообрабатывающем станке потребовала создания собственного твердотельного диска, и с какими трудностями мы столкнулись при его разработке. Кому интересно, как создавался первый украинский «винчестер-SSD», прошу под кат.

Читать дальше →
Total votes 371: ↑366 and ↓5+361
Comments81

Основные положения предстоящей иммиграционной реформы США

Reading time3 min
Views86K
Буквально час назад в сети появилась черновая версия основных положений предстоящей иммиграционной реформы США.

www.scribd.com/doc/136230105/Outline-of-the-Border-Security-Economic-Opportunity-and-Immigration-Modernization-Act-of-2013

Поскольку некоторая часть этих положений касается иммиграции в США для программистов, думаю, что хабрасообществу будет интересно услышать их. Сразу замечу, что закон еще не принят и ему предстоит еще долгий путь.

Читать дальше →
Total votes 101: ↑87 and ↓14+73
Comments116

Кеширование данных на SSD с помощью EnhanceIO

Reading time6 min
Views42K
В последнее время громадную популярность завоевали т.н. твердотельные накопители (Solid State Drives, SSD). Для простого пользователя они представляют особый интерес тем, что позволяют значительно расширить «бутылочное горлышко» производительности системы, которая упирается в быстродействие жёстких дисков. SSD потребительского класса по скорости чтения/записи превосходят жёсткие диски в несколько раз, а в некоторых задачах — даже на порядок.

Да, нынешние SSD уже готовы заменить жёсткие диски на десктопах и в ноутбуках в полной мере, но не для всех пользователей это приемлемо, и причин этому несколько. Во-первых, вызывает вопросы та самая надёжность. Тут обычно спасают бекапы, главное — вовремя их делать. Вторая причина связана с конфиденциальностью. Если на HDD использование LUKS не вызывает вопросов, то на SSD включение TRIM понижает защищённость информации. Без TRIM же есть шансы просадить производительность дисковых операций.

Ещё одна сфера использования SSD — кеширование дискового ввода-вывода. Не ставя под угрозу сохранность информации, можно значительно повысить скорость доступа к ней. Причём это осуществимо без остановки рабочей станции или сервера, что предотвращает нежелательные потери времени.

Для операционной системы Linux представлено несколько технологий кеширования данных на SSD — bcache, EnhanceIO, dm-cache и т.п. Использование их позволяет ощутить прирост быстродействия дисковых операций, при этом надёжность функционирования системы хранения данных останется на прежнем уровне.

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

Читать дальше →
Total votes 32: ↑31 and ↓1+30
Comments29

От программирования к железу или «Почему оно не работает?».Ликбез

Reading time9 min
Views146K
image
Привет Хабр. В последнее время среди программистов все больше стала набирать популярность цифровая электроника, появляются все новые платформы, позволяющие без каких либо особых знаний в электронике собирать различные устройства. Сам я начинал заниматься аналоговой электроникой, позже — цифровой и программированием. Многие же — наоборот — сначала программированием, а потом пытаются заниматься железом, при этом знания по части электроники практически нулевые и люди не знают/не понимают элементарных для олдфажного электронщика вещей. В данной статье я постараюсь затронуть наиболее важные на мой взгляд моменты, как по части проектирования схем, так и по части разводки плат. Надеюсь мои советы помогут миновать некоторые грабли
Читать дальше →
Total votes 140: ↑138 and ↓2+136
Comments36

Загадка выпадающего списка «Амазона»

Reading time2 min
Views191K
Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
Читать дальше →
Total votes 558: ↑548 and ↓10+538
Comments90

Важнейшие $in'ы: производительность MongoDB в диапазонах

Reading time3 min
Views12K
Перевод этой статьи уже есть на хабре, но он ужасен и содержит ложную информацию.

Приветствую, искатели приключений! Путешествуя по территории индексации MongoDB хотя бы некоторое время, вы, возможно, познакомились с таким правилом: если ваш запрос содержит сортировку/порядок (orderby) – добавьте сортируемое поле в конец индекса который используется для запроса.

Во многих случаях когда запрос содержит равенство (то есть поиск конкретного значения, например, {“name”: “Charlie”}) данная мантра бывает весьма полезной.

Запрос

db.drivers.find({"country": {"$in": ["A", "G"]}}).sort({"carsOwned": 1})

Индекс

{"country": 1, "carsOwned": 1}

Такая комбинация будет не такой эффективной, как может показаться, не смотря на то, что индекс соответствует правилу. В этом запросе есть ловушка, в которую вы с легкостью попадете следуя общепринятому мнению.
Читать дальше →
Total votes 42: ↑40 and ↓2+38
Comments9

AppFuscator — облачная защита .NET

Reading time2 min
Views5.2K
Привет Хабр! Мы плодотворно трудились над нашим продуктом, и сегодня я хочу поделиться новостями. Для тех, кто не читал предыдущих топиков (1 и 2), напомню, что мы разрабатываем онлайн сервис для защиты .NET приложений. Процесс обфускации происходит непосредственно в облаке по модели SaaS.

Расскажу немного о нововведениях.

Программа-клиент


Для тех кто обфусцирует свои программы постоянно мы существенно упростили этот процесс — теперь Вы можете воспользоваться специальной программой-клиентом для работы с нашим сервисом. Созданную конфигурацию можно сохранить в проект, и затем обфусцировать Ваши программы в один клик.

obfuscation program C#

Программа распространяется как OpenSource (лицензия MIT), все желающие могут ознакомиться с исходниками. В дальнейшем, мы планируем вынести API в отдельный модуль, для легкой интеграции с другими программами.

Программа пока бета, заранее приносим извинения за возможные баги.

Control flow obfuscation


В AppFuscator добавлен новый алгоритм защиты Control flow obfuscation — запутывание потока управления. Суть этого метода заключается в разделении алгоритма программы на отдельные компоненты и построение из них сложно-связанного графа переходов. В итоге логику работы кода понять становиться весьма не просто.
Читать дальше →
Total votes 10: ↑8 and ↓2+6
Comments24

Простое устройство мониторинга энергопотребления

Reading time7 min
Views175K
Сейчас все больше и больше людей интересуются темой мониторинга потребляемого электричества.
В некоторых случаях эти знания имеют очень большое значение (например, для вашего загородного дома выделили 8кВт мощности и вам необходимо понять, насколько близко вы находитесь к разрешенному пределу и т.п.).
Есть уже готовые изделия, одно из них уже было героем обзора на Хабре.

Но мы не из тех, кто ищет легких путей и сделаем вот такое устройство:

Об устройстве и том самом датчике, что предлагается подключить...
Total votes 56: ↑52 and ↓4+48
Comments52

Information

Rating
2,172-nd
Registered
Activity