{"id":513,"date":"2010-10-19T19:53:31","date_gmt":"2010-10-19T17:53:31","guid":{"rendered":"http:\/\/www.kill-9.it\/blog\/?p=513"},"modified":"2010-10-19T19:53:31","modified_gmt":"2010-10-19T17:53:31","slug":"a-tiny-transmission-app-hack","status":"publish","type":"post","link":"https:\/\/www.kill-9.it\/blog\/index.php\/2010\/10\/19\/a-tiny-transmission-app-hack\/","title":{"rendered":"A tiny Transmission.app hack"},"content":{"rendered":"<p>(A post every 10 months. I hope that does not annoy you :) It will not take long to read, anyway. )<\/p>\n<p><a href=\"http:\/\/www.transmissionbt.com\/\">Transmission<\/a> is a great BitTorrent client. It is full of features (look at the site!), including bandwidth control, and runs on every platform (Linux and Mac :P).<br \/>\nYou can choose global upload and download speeds, or shape single torrents among those you are working with.<br \/>\nAt home I have a 10mbit connection to the Internet so I rarely limit the torrents, but most of the time when I do it is to reserve a small quantity of bandwidth for Internet browsing while I wait, or to play online.<\/p>\n<p>Transmission is a bit rigid regarding the possible speeds: the only possible values (for both upload and download) expressed in kilobytes\/sec are 5, 10, 20, 30, 40, 50, 75, 100, 150, 200, 250, 500, 750, 1000, 1500, 2000. My home network chokes around 600. I could set for 500k, but where&#8217;s the fun?<\/p>\n<p>So:<\/p>\n<ul>\n<li>head to <a href=\"https:\/\/trac.transmissionbt.com\/wiki\/Building\">https:\/\/trac.transmissionbt.com\/wiki\/Building <\/a> and read thoroughly [the part specifying that you need to have XCode installed, for example]<\/li>\n<li>learn that &#8220;<em>Building the project on Mac requires the source to be retrieved from SVN. Pre-packaged source code will not compile.<\/em>&#8220;<\/li>\n<li>download the SVN code (uhm, yes. I also have pkgsrc installed):<br \/>\n <code>svn co svn:\/\/svn.transmissionbt.com\/Transmission\/trunk Transmission<\/code><br \/>\n       in my case the version number was 2.11 1133-something.\n<\/li>\n<li>run a &#8220;dry&#8221; compile run &#8212; this will guarantee that the code is not broken <em>before<\/em> you start tinkering with it or that you have some local issue (my first time doing actually something with XCode. Easier than I thought, the source has an XCode project file)<\/li>\n<li>find the relevant source files (grep was my friend). In the end I only modified Controller.m and TorrentTableView.m: find the line<br \/>\n<code>const NSInteger speedLimitActionValue[] = { 5, 10, 20, 30, 40, 50, 75,<br \/>\n100, 150, 200, 250, 500, 750, 1000, 1500, 2000, -1 };<\/code><br \/>\nand modify it to match the speeds you want to be able to use. You can add or remove values as you like as long as the syntax is right.<\/li>\n<li>compile it again and run it. :)<\/li>\n<\/ul>\n<p>If I were a programmer, I&#8217;d have implemented something that would allow the user to choose the speed as he liked &#8212; but this fits my needs.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>(A post every 10 months. I hope that does not annoy you :) It will not take long to read, anyway. ) Transmission is a great BitTorrent client. It is full of features (look at the site!), including bandwidth control, and runs on every platform (Linux and Mac :P). You can choose global upload and &hellip; <a href=\"https:\/\/www.kill-9.it\/blog\/index.php\/2010\/10\/19\/a-tiny-transmission-app-hack\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;A tiny Transmission.app hack&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,6,3],"tags":[],"class_list":["post-513","post","type-post","status-publish","format-standard","hentry","category-apple","category-english","category-geek"],"_links":{"self":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/posts\/513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=513"}],"version-history":[{"count":19,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/posts\/513\/revisions"}],"predecessor-version":[{"id":532,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/posts\/513\/revisions\/532"}],"wp:attachment":[{"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.kill-9.it\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}