<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Talk Unafraid &#187; service</title>
	<atom:link href="http://www.talkunafraid.co.uk/tag/service/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.talkunafraid.co.uk</link>
	<description>EVE Online, Ruby on Rails and Security</description>
	<lastBuildDate>Wed, 01 Sep 2010 17:12:31 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>accVIEW Rejuvenated</title>
		<link>http://www.talkunafraid.co.uk/2010/02/accview-rejuvenated/</link>
		<comments>http://www.talkunafraid.co.uk/2010/02/accview-rejuvenated/#comments</comments>
		<pubDate>Sat, 27 Feb 2010 21:45:58 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[accVIEW]]></category>
		<category><![CDATA[accview]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[stuffisawesome]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=707</guid>
		<description><![CDATA[Well, it&#8217;s been way too long since I opened an editor and got to work on accVIEW&#8217;s source, and it really showed. In reality, accVIEW was something I slapped together in an afternoon for Vanguard Frontiers, home of myself, PyjamaSam (of Capsuleer fame) and some of the best pilots I&#8217;ve ever flown with. We needed [...]]]></description>
			<content:encoded><![CDATA[<p>Well, it&#8217;s been way too long since I opened an editor and got to work on accVIEW&#8217;s source, and it really showed. In reality, accVIEW was something I slapped together in an afternoon for Vanguard Frontiers, home of myself, PyjamaSam (of Capsuleer fame) and some of the best pilots I&#8217;ve ever flown with. We needed a better way to do API checks and this was it.</p>
<p>I made it public and popularity grew. I added some features, added the premium option for those who wanted a bit more, and it&#8217;s been ticking along, occasionally throwing horrible errors and falling over, the background worker regularly falling over and dying, and running on a Quantum Rise datadump. And there was a major security glitch- we didn&#8217;t store API keys, making it impossible to validate people regularly, meaning people who left corporations could still view their old corp&#8217;s requests. And they couldn&#8217;t update their account to their new corporation.</p>
<p>No more.</p>
<p>accVIEW has gotten a fresh new facelift, skill distribution graphs, a fundamental API key change, some improved code throughout and a new database dump update. I&#8217;ve also added a &#8216;forgot password&#8217; feature for those who don&#8217;t remember their logins too well, and fixed a few outstanding bugs.</p>
<p><strong>If you&#8217;re an accVIEW user, next time you log in you will be prompted for your API key again</strong>. This is to be expected; the reason we&#8217;re doing this is so we have a copy we can re-validate regularly (once a day) to ensure that you are still in the corporation you were in last time we looked. If you change corporations, your main character will be dissociated and you&#8217;ll have to reenter your API keys next time you log in and choose a new main character.</p>
<p>Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2010/02/accview-rejuvenated/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Moondoggie &amp; Market Browsing</title>
		<link>http://www.talkunafraid.co.uk/2009/12/moondoggie-and-market-browsing/</link>
		<comments>http://www.talkunafraid.co.uk/2009/12/moondoggie-and-market-browsing/#comments</comments>
		<pubDate>Thu, 03 Dec 2009 23:43:46 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[EVE Metrics]]></category>
		<category><![CDATA[MMMetrics]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[EVE]]></category>
		<category><![CDATA[eve metrics]]></category>
		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=567</guid>
		<description><![CDATA[OK. EVE Metrics is my big market browsing project. It&#8217;s very complex, it&#8217;s got a lot of data, but it all basically comes down to this: People browse the market with a program running on their computer, and when any market data is viewed, EVE Online writes it to a cache file, the program decodes [...]]]></description>
			<content:encoded><![CDATA[<p>OK.<a href="http://www.eve-metrics.com/"> EVE Metrics</a> is my big market browsing project. It&#8217;s very complex, it&#8217;s got a lot of data, but it all basically comes down to this: People browse the market with a program running on their computer, and when any market data is viewed, EVE Online writes it to a cache file, the program decodes that and fires it at the server. We collect all these reports and build a single picture of the market in EVE.</p>
<p>There&#8217;s the top-down view for you. We&#8217;ve never really not had enough data. We get good market coverage in most regions and we&#8217;re fairly up to date in the grand scheme of things. But compare the actual market of EVE to EVE Metrics and we&#8217;re still a long way off having a truly accurate picture. EVE moves quickly- in some markets, from minute to minute orders will be shuffling around and changing price and being bought out.</p>
<p>With Dominion we got a new browser. This means you can now use the full EVE Metrics website ingame, but also (through some Javascript client hook additions) lets us provide a fantastic new tool to help us get an even better picture of the market in EVE.</p>
<p>If you fire up the IGB and head over to <a href="http://eve-metrics.com/market/upload_suggestions">the upload suggestions page</a>, you&#8217;ll be given a list of 10 items, and a few options for automatic checking. Choosing this option will prompt EVE Metrics for a list of items to check, and will <em>automatically</em> go and look at those items. It&#8217;s slow, but it works. In the space of a few hours with one user, we can get data for an entire region across all the items on the market. This is utterly fantastic and we&#8217;re really looking forward to the larger volume of data this is bringing to the site.</p>
<p>So, if you&#8217;ve got a spare moment, or you need to go AFK for an hour, or you want to help out while you&#8217;re mining, or you&#8217;re just tired of clicking the next item in the list,<a href="http://www.eve-metrics.com/downloads"> install the uploader</a> and visit the page ingame to get started. Every upload counts and helps us build the biggest, best picture of EVE&#8217;s market we can manage to produce. Uploads to EVE Metrics are also syndicated to other websites and tools, of course. Your uploads and contribution of time help hundreds of users who use the site, and tens of thousands more who rely on our <a href="http://eve-metrics.com/api">pricing, history and order APIs</a> for their applications.</p>
<p>Oh, and if you&#8217;re a developer, we now have a server status API with all the information you could possibly want on TQ, Sisi and the API servers. It can be found <a href="http://eve-metrics.com/api/server_status.xml">here</a> (docs <a href="http://eve-metrics.com/api/server_status">here</a>). Enjoy!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2009/12/moondoggie-and-market-browsing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>EVE Fanfest(feed) 2009</title>
		<link>http://www.talkunafraid.co.uk/2009/10/eve-fanfestfeed-2009/</link>
		<comments>http://www.talkunafraid.co.uk/2009/10/eve-fanfestfeed-2009/#comments</comments>
		<pubDate>Sun, 04 Oct 2009 23:35:48 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[EVE]]></category>
		<category><![CDATA[EVE Metrics]]></category>
		<category><![CDATA[MMMetrics]]></category>
		<category><![CDATA[fanfest]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[stuffisawesome]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=512</guid>
		<description><![CDATA[Well, that fateful time of year comes along again- thousands of EVE Online players meet for fanfest in Reykjavik, Iceland. And I can never make it. This year, my studies conspired against me; except they didn&#8217;t. While unknown until hours beforehand, I actually had no work and a lecture on basic packet switching keeping me [...]]]></description>
			<content:encoded><![CDATA[<p>Well, that fateful time of year comes along again- thousands of EVE Online players meet for fanfest in Reykjavik, Iceland. And I can <em>never make it</em>. This year, my studies conspired against me; except they didn&#8217;t. While unknown until hours beforehand, I actually had no work and a lecture on basic packet switching keeping me in England. Doh.</p>
<p>Anyway. We got a lot of fluff, this year. Aside from further elaboration on stuff already announced, there were actually no major announcements made at fanfest. We did have some interesting info about New Eden, CCP&#8217;s EVE-Online-Online website. And there was some evidence (gasp!) that CCP were listening to third party developer suggestions at the API roundtable.</p>
<p>There was almost enough minor stuff announced to make it worthwhile. We did get a release date for Dominion &#8211; 1st December 2009. But no New Eden with the launch. And knowing CCP we&#8217;ll probably not get API changes till a bit after that. What&#8217;s really awesome though is that we will be getting new APIs. I&#8217;m just hoping they&#8217;re useful APIs&#8230;</p>
<p>Anyway, while I was sitting at home being mostly bored, I decided I&#8217;d had enough pressing F5 on the Twitter search page, and put together a website (ff.mmmetrics.co.uk &#8211; it&#8217;s down now) to grab EVE fanfest feeds from Twitter and Flickr. This became popular enough within a few hours that we had to rip it off the server and give it it&#8217;s own Amazon EC2 virtual server, as it was in danger of crashing ISKsense and EVE Metrics. Doh. A wild success, in any case, for a simple but handy website. What the website did make us realise is how little headroom we have on our current server. We kinda knew that already but it did make the point quite well.</p>
<p>EVE Metrics 2.1 has launched mostly well but we&#8217;re still having issues with the API processing code. Makurid has been working hard to pin down the cause of the problems and destroy it while I&#8217;ve been fixing up servers and moving sites around, and we&#8217;re getting a bit closer to having a complete fix. We&#8217;re not there yet, but we will be soon with any luck.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2009/10/eve-fanfestfeed-2009/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Dust 514, some EM2 teasers and statistics</title>
		<link>http://www.talkunafraid.co.uk/2009/08/dust-514-some-em2-teasers-and-statistics/</link>
		<comments>http://www.talkunafraid.co.uk/2009/08/dust-514-some-em2-teasers-and-statistics/#comments</comments>
		<pubDate>Thu, 20 Aug 2009 22:57:53 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[EVE]]></category>
		<category><![CDATA[EVE Metrics]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[dust514]]></category>
		<category><![CDATA[eve metrics]]></category>
		<category><![CDATA[market]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[stuffisawesome]]></category>
		<category><![CDATA[work in progress]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=439</guid>
		<description><![CDATA[As you might have heard, CCP announced Dust 514, their console MMORPG. And then announced it was to be integrated with EVE, especially with alliances and corporations. I just don&#8217;t see how it can work, honestly. Half the point of EVE is the userbase is a very mature one and the sort of crowd who [...]]]></description>
			<content:encoded><![CDATA[<p>As you might have heard, CCP announced Dust 514, their console MMORPG. And then announced it was to be integrated with EVE, especially with alliances and corporations. I just don&#8217;t see how it can work, honestly.</p>
<p>Half the point of EVE is the userbase is a very mature one and the sort of crowd who sit in their room playing with internet spaceships. Does EVE really want to get the Halo players of the world contributing to the game? I honestly don&#8217;t think so. It&#8217;s a very snobbish view, I know, but the average console gamer probably doesn&#8217;t want to spend their time liasing with alliances and planning the takeover of space from other alliances with internet spaceships they can&#8217;t see. What&#8217;s in it for the Dust 514 players, anyway? A mission system that could easily be done with some clever AI, from what I hear. I remain highly sceptical and look forward to seeing what CCP has planned in further detail- if they make it work it&#8217;ll be fantastic. But it&#8217;s a big if.</p>
<p>On a much lighter note, I&#8217;ve got some snippets from EM2&#8242;s new API integration. We&#8217;re being really thorough with this so far; we have seperate workers to download and process the API, meaning we can get around the API-being-slow bottleneck by having 3-5 workers just downloading and a few doing the processing (which is quick). What we also wanted to do was give you, the user, tons of control over what information we load into EVE Metrics. Read on for detailed information.<span id="more-439"></span></p>
<p>Right now we don&#8217;t have the ability for you to set information as private. It&#8217;s either in the system or out. That applies only to market orders, of course; everything else is private anyway. We may well be using people&#8217;s transactions and asset data in an anonymous manner for statistics, but we&#8217;ll have a complete privacy policy drawn up before this goes live so that&#8217;s more concrete. What we haven&#8217;t added, though, is a way to have your orders show up in the system just for you and not for anyone else. It&#8217;s a technically huge hurdle, and so it&#8217;s unlikely to happen.</p>
<p><strong>Edit</strong>: Apologies for the odd yellow lines in the screenshots below. My computer is currently totally fubar with graphics card issues and software problems and I&#8217;m writing this blog in safe mode with graphics artefacts all over the damn monitor. They&#8217;re not there on the site, anyway.</p>
<p>What we do have is the aforementioned shedload of controls over everything we access. Here&#8217;s the API list view:</p>
<div id="attachment_442" class="wp-caption aligncenter" style="width: 310px"><a href="http://assets.talkunafraid.co.uk/2009/08/list.png" rel="lightbox[439]"><img class="size-medium wp-image-442" title="API Key List" src="http://assets.talkunafraid.co.uk/2009/08/list-300x69.png" alt="The EM2 API key list page, complete with permissions link" width="300" height="69" /></a><p class="wp-caption-text">The EM2 API key list page, complete with permissions link (Click image to expand)</p></div>
<p>This is exactly the same as on other websites I&#8217;ve produced, with one extra addition- the permissions button. Click on that and you&#8217;ll be taken to a page that looks something along the lines of this (BETA ALERT: The UI here is unfinished and the API methods are not representative of what EM2 will actually use. The character list method will reside in it&#8217;s own API-key-wide section instead of on each character, too, and you won&#8217;t be able to block character sheet calls):</p>
<div id="attachment_443" class="wp-caption aligncenter" style="width: 310px"><a href="http://assets.talkunafraid.co.uk/2009/08/permissions.png" rel="lightbox[439]"><img class="size-medium wp-image-443" title="API Permissions" src="http://assets.talkunafraid.co.uk/2009/08/permissions-300x280.png" alt="API Permissions example page with character sheets blocked on two characters" width="300" height="280" /></a><p class="wp-caption-text">API Permissions example page with character sheets blocked on two characters (Click image to expand)</p></div>
<p>Now, this is where things get interesting. EVE Metrics will only pull data for the methods enabled here. By default, everything that is not required for basic operation (Which will be Character List, Character Sheet and Corp Member Security for corp directors- more on that in a bit) will be turned off. As you browse EVE Metrics you might stumble across features that need data from the API; for example you might try and use an asset valuator. At that point you&#8217;d be prompted to enable that bit of the API. You can also go in and fiddle on a per-character basis at any time to keep things locked down to your heart&#8217;s content.</p>
<p>Of course, this means nothing. We could be pulling your asset APIs for your corps and selling them on eBay. Now, I&#8217;d like to think we&#8217;re quite well trusted in the EVE community, but of course the more paranoid amongst you will want to keep an eye on your API request logs. Our server&#8217;s IP is 77.74.196.169 and we&#8217;ll be maintaining a list of all IP addresses API requests could have come from if we ever expand to more than one server. We may also add our own API access list to log everything we do with your API, but that&#8217;s subject to performance constraints.</p>
<p>We do think this system will let even the most paranoid of players and CEOs of large corporations use EVE Metrics safely and securely, without compromising any data they don&#8217;t want shared with us. Of course, I&#8217;d be interested to hear feedback on the system, but that&#8217;s what comments and Twitter are for.</p>
<p>I promised some statistics up in that title, so here&#8217;s some juicy stats for you now the teasing is over.</p>
<ul>
<li>The Forge Market Coverage: 65% (Active Orders)</li>
<li>Active Orders: 480,734</li>
<li>Expired Orders for July and August: 1,608,408</li>
<li>Total Orders: 2,089,151</li>
<li>Historic Datapoints: 6,949,494</li>
<li>Computed Trades for August: 892,990</li>
</ul>
<p>And for the technical readers, some interesting statistics on our caching performance:</p>
<ul>
<li>Cache hits: 72% (438,140 of 609,386 gets)</li>
<li>Cache datastore size: 41 megabytes</li>
</ul>
<p>We&#8217;re quite proud of that cache hit rate. The vast majority of the time you look at a page on EVE Metrics, the database is barely involved; you&#8217;re looking at a pregenerated snippet of HTML. But there&#8217;s never stale data on the site; every time new data comes in the relevant caches are wiped and next time you look, the new data is there right away. It works really well, and is part of the reason why EM2 is so damn snappy compared to EM1.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2009/08/dust-514-some-em2-teasers-and-statistics/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Killboards Questionnaire Results</title>
		<link>http://www.talkunafraid.co.uk/2009/01/killboards-questionnaire-results/</link>
		<comments>http://www.talkunafraid.co.uk/2009/01/killboards-questionnaire-results/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 18:10:30 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[MMMetrics]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[nexus]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[work in progress]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=183</guid>
		<description><![CDATA[Firstly, an apology- I&#8217;ve not been updating as often as I should perhaps do. This was mostly down to the mild concussion I suffered fairly early on Wednesday morning, which limited my capacity for clear thinking for quite a while. Now, onwards- with a summary of what we got from the killboard questionnaire. Most Wanted [...]]]></description>
			<content:encoded><![CDATA[<p>Firstly, an apology- I&#8217;ve not been updating as often as I should perhaps do. This was mostly down to the mild concussion I suffered fairly early on Wednesday morning, which limited my capacity for clear thinking for quite a while. Now, onwards- with a summary of what we got from the killboard questionnaire.</p>
<p><strong>Most Wanted Features</strong></p>
<ol>
<li>API import of losses and kills</li>
<li>In-detail fitting information/fitting database</li>
<li>Accurate price data</li>
<li>Scoring/points</li>
<li>Standings import</li>
</ol>
<p><strong>Most Wanted Fixes</strong></p>
<ol>
<li>Needs to be quick</li>
<li>Needs to be easily themed and styled</li>
<li>Needs good documentation</li>
<li>Needs a better admin panel than EDK</li>
<li>Needs easier installation</li>
</ol>
<p>Medals and ranks were a close runner up, as were better engagement summary tools.</p>
<p>So, let&#8217;s go into a little more detail and see how we&#8217;re covering each of these for Nexus.</p>
<p><span id="more-183"></span></p>
<p><em>API import of losses and kills</em></p>
<p>Already done! Works a treat. Does corporate feeds as well as personal.</p>
<p><em>In-detail fitting information/fitting database</em></p>
<p>This is built into the killboard. Instead of a kill having associated modules and a ship, we store that as a fitting and reference it from the kill. So we have a fitting database built on the side from the word &#8216;go&#8217;. Of course, kills aren&#8217;t the only way to load in fittings.</p>
<p><em>Accurate price data</em></p>
<p>We have a simple-to-extend framework implemented in Nexus for price sources. Here&#8217;s our EVE Central source.</p>
<div class="geshi no ruby">
<div class="head"># EVE Central Updater</div>
<ol>
<li class="li1">
<div class="de1"><span class="co1"># Author:: Ix Forres</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># Remote API Version:: 2.0</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># Example URI:: http://eve-central.com/api/marketstat?typeid={type_id}</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1"># Notes:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">#   No key required for this service</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">class</span> <span class="re2">Nexus::PriceUpdaters::EVECentral</span> <span class="sy0">&amp;</span>lt; <span class="re2">Nexus::PriceUpdaters::Base</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">def</span> get_price</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; r = <span class="re2">Net::HTTP</span>.<span class="me1">get</span><span class="br0">&#40;</span><span class="kw4">URI</span>.<span class="me1">parse</span><span class="br0">&#40;</span>@source.<span class="me1">retrieval_url</span>.<span class="kw3">gsub</span><span class="br0">&#40;</span><span class="st0">&#39;{type_id}&#39;</span>,@type.<span class="me1">id</span>.<span class="me1">to_s</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; x = Hpricot<span class="br0">&#40;</span>r<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">return</span> <span class="br0">&#40;</span>x<span class="sy0">/</span><span class="st0">&quot;evec_api&quot;</span><span class="sy0">/</span><span class="st0">&quot;marketstat&quot;</span><span class="sy0">/</span><span class="st0">&quot;type&quot;</span><span class="sy0">/</span><span class="st0">&quot;sell&quot;</span><span class="sy0">/</span><span class="st0">&quot;median&quot;</span><span class="br0">&#41;</span>.<span class="me1">inner_html</span>.<span class="me1">to_f</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">end</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">end</span></div>
</li>
</ol>
</div>
<p>So, there you go. A simple updater. You get a web interface which lets you add sources which use these updaters- setting up the URL, priority, and what that source should be used for. We have this set up in a way which enables you to display different prices to corporation members, alliance members, and so on. If your corporation has in-house shops, those shops can be easily added and used for corporate members.</p>
<p><em>Scoring/points</em></p>
<p>Ooer. We&#8217;ve not gone near this, yet. It&#8217;s always a difficult subject, and plenty of people have plenty of different ideas about how you should do this. Whatever we end up doing, rest assured there will be plenty of flexibility about how the system is configured. Possibly a modular system, though that might be overcomplicating things.</p>
<p><em>Standings Import</em></p>
<p>Again, we&#8217;ve not gone near this yet. We&#8217;re currently using the restful_authentication plugin with some extra filters (fc_required, admin_required, and so on). This isn&#8217;t great. One of the things we need to do is to move over to a more flexible framework (we&#8217;re looking at Lockdown) for authentication, and set up a proper usergroup/permission system. For example, you might want everyone in certain alliances/corps to have access to reimbursement, but not everyone you&#8217;re blue to or your alliance is blue to. It&#8217;s a can of worms, programatically, and we&#8217;re leaving it till we&#8217;ve got the basics sorted.</p>
<p><em>Needs to be quick</em></p>
<p>Ok, no problems here. Not only is the system just faster in design, we&#8217;re also providing extensive support for action and fragment caching in pages, counter caches in the database, and so on. We&#8217;re experiencing great performance for a large number of users on an already overworked server, even without any caching enabled. Caching will support a variety of backends, notably memcached.</p>
<p>There&#8217;s no risk of servers being bogged down by large killmails taking ages to parse and be added as can sometimes occur- when a mail is submitted, it gets put on a queue, and a worker will pick it up in the background. It&#8217;ll appear on the site when the worker&#8217;s done building the kill, checking it&#8217;s sane, and retrieving prices/portraits/corp logos associated with the kill and attackers.</p>
<p><em>Needs to be easily themed/styled<br />
</em></p>
<p>Ok, again, not much work done here. We&#8217;re using Haml for our views by and large, but nothing is stopping you writing Erb templates or anything like that. Views are split into partials where it makes sense (the killboard is so far around 20 templates), and there&#8217;s a global layout which is easily adjusted. Stylesheets are authored with Sass, which gets automatically compiled into a minified .css file. Javascript extras can be done with the included script.aculo.us library, which comes with a lot of effects and handy tools.</p>
<p>Themes are certainly doable and we might add support for this later if there&#8217;s demand for it.</p>
<p>On the same topic of styling/theming, the whole system is written with internationalisation (I18n) support for every aspect of the interface. So if you&#8217;ve got a non-English corp or alliance, you&#8217;ll be able to have Nexus in French, Dutch, German&#8230; whatever people voluntarily translate Nexus into. There&#8217;s around the order of 450 strings to translate, though we&#8217;ve reused quite a few of those so they might need splitting up in places for other languages.</p>
<p><em>Needs good documentation</em></p>
<p>We document all the code inline, and build RDoc from that, so there&#8217;s a goodly starting point there. The official site (when it&#8217;s up) will include user documentation for all the features, as well as administrator guides and tutorials for installation.</p>
<p><em>Needs a better admin panel than EDK</em></p>
<p>Right now I&#8217;d say EDK is winning on this in some ways. We&#8217;re currently lacking a central admin panel. But it&#8217;s a few templates away, and I might get around to it this evening.</p>
<p><em>Needs easier installation</em></p>
<p>I can&#8217;t promise anything! It all depends on the host, really. If your host will let you install gems for your Ruby setup, and will let you run an always-running rake task in the background, and will let you set up a cronjob (Basically: Any VPS host, most shared hosts, any dedicated host) then it&#8217;s a piece of cake. But the always-running Rake task might be a problem for some people, notably those running on shared hosts.</p>
<p>Installation really hasn&#8217;t been looked at in any detail whatsoever. We have a &#8216;developer friendly&#8217; writeup on the Nexus development wiki, but it&#8217;s not for the shared hosters amongst us, and goes through building the Nexus database from the EVE database sources, a step which we want to avoid by providing prepackaged starting templates.</p>
<p>So, there you have it- what you want and what we&#8217;re doing to accomodate you. Of course, we&#8217;re now going to go away and work on what we&#8217;re not doing so well on. I&#8217;ll be pushing up the MMMetrics website in the next week or so, complete with some Nexus screenshots and so on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2009/01/killboards-questionnaire-results/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>MMMetrics, Nexus</title>
		<link>http://www.talkunafraid.co.uk/2008/12/mmmetrics-nexus/</link>
		<comments>http://www.talkunafraid.co.uk/2008/12/mmmetrics-nexus/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 20:05:10 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[MMMetrics]]></category>
		<category><![CDATA[Nexus]]></category>
		<category><![CDATA[corporation]]></category>
		<category><![CDATA[eve metrics]]></category>
		<category><![CDATA[isksense]]></category>
		<category><![CDATA[service]]></category>
		<category><![CDATA[shamelessplug]]></category>
		<category><![CDATA[stuffisawesome]]></category>
		<category><![CDATA[work in progress]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=141</guid>
		<description><![CDATA[OK, where to start&#8230; MMMetrics. I&#8217;ve been pondering having a proper name to affiliate my work under for some time, so MMMetrics it is. Of course, short for Massively Multiplayer Metrics, and soon to be located at http://mmmetrics.co.uk- when the bloody DNS records update, that is&#8230; Over the next few weeks I&#8217;ll be reskinning EVE [...]]]></description>
			<content:encoded><![CDATA[<p>OK, where to start&#8230; MMMetrics. I&#8217;ve been pondering having a proper name to affiliate my work under for some time, so MMMetrics it is. Of course, short for Massively Multiplayer Metrics, and soon to be located at http://mmmetrics.co.uk- when the bloody DNS records update, that is&#8230;</p>
<p>Over the next few weeks I&#8217;ll be reskinning EVE Metrics, ISKsense, and various other things to have a much much nicer theme and one that is consistent across websites, giving each site their own visual take on the theme. Those sites will also be getting some much-needed optimisation, graphics, and new layouts.</p>
<p>Nexus is the other thing this brief post will touch on. Myself and flexd, the other developer working on the project and new member of VAF, have decided that open-sourcing the whole thing would be mad. It&#8217;s hideously complex to set up in places (though much easier than it used to be), and in any case a lot of the functionality Nexus provides is heavily aimed at alliances rather than corporations. We&#8217;ll still be offering Nexus to some alliances on an ask-and-we-might-let-you basis, but we will be forking Nexus, stripping it back to the killboard and fittings components, and releasing that as open source on Github.</p>
<p>That means if you&#8217;re an average corp you won&#8217;t get things like the tactical/intel overviews and IGB components, and all the alliance-level member managemet, capfleet management, and so on will be out. Because 99% of people don&#8217;t need it, to be honest. By keeping things more limited we&#8217;re keeping it much more hackable, more secure, easier to maintain and easier to extend, which means we&#8217;ll get it out of the door much quicker than we would have if we&#8217;d kept it all bundled together. So we&#8217;re looking at somewhere early-to-mid 2009 as our first release.</p>
<p>I think that just about covers it. Oh, other than to say happy holidays and a happy new year in advance, so I don&#8217;t forget as I obviously will do.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2008/12/mmmetrics-nexus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Server Outages and Donations</title>
		<link>http://www.talkunafraid.co.uk/2008/12/server-outages-and-donations/</link>
		<comments>http://www.talkunafraid.co.uk/2008/12/server-outages-and-donations/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 17:16:43 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[MMMetrics]]></category>
		<category><![CDATA[Odds and Ends]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[donations]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[servers]]></category>
		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=138</guid>
		<description><![CDATA[Just thought I&#8217;d do a quick post on the stability of this server, given the hours of downtime today. Long story short, one of the cronjob tasks that goes through and closes expired orders for EVE Metrics did so, then crashed and burned quite rapidly, chewing up all the RAM on the server and expertly [...]]]></description>
			<content:encoded><![CDATA[<p>Just thought I&#8217;d do a quick post on the stability of this server, given the hours of downtime today.</p>
<p>Long story short, one of the cronjob tasks that goes through and closes expired orders for EVE Metrics did so, then crashed and burned quite rapidly, chewing up all the RAM on the server and expertly smashing some queries into MySQL which promptly made MySQL cough up blood and fall over. Several uncacheable SQL-heavy API calls to EVE Metrics later and Apache became inundated with slow-completing requests and started spawning more threads, so on and so forth, and there goes the server. What _should_ have happened is that the process resource monitor script should have caught the rake task eating a gig of RAM and killed that, but for some reason I&#8217;m still trying to work out it didn&#8217;t. In either case, the server is now back up and stable again.</p>
<p>I run this server entirely out of my own pocket for services I provide to the community, and with the exception of one person who bought a GTC through the link on this site, I don&#8217;t get any financial aid on that front. So for now, a single point of failure is the way it&#8217;ll have to be unless I can convince my host to provide me with a second server and load balancer for free <img src='http://www.talkunafraid.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you&#8217;re an ISKsense-using site, then I do apologise when ISKsense javascript includes never load, and I am trying to work out a solution in javascript which will avoid that by rendering some predefined ads if it can&#8217;t pull the JS down in 2 seconds or so. As for CLGS and so on, there&#8217;s not much I can do other than to keep this server ticking along as happily as I can with all the applications it&#8217;s running. Needless to say I&#8217;ve been pretty busy over the past few days, and keeping close eyes on my server has taken second priority against keeping close eyes on the Entirely Harmless gangs floating around Fade in the past week <img src='http://www.talkunafraid.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>If you want to help me manage costs and improve my stability, then buying GTCs via the link on this blog is a good way to go about that; alternatively, feel free to donate via the link on the sidebar, where I&#8217;ve set up a Pledgie campaign for the donations. Every little helps (Unless it&#8217;s a really little chunk in which case PayPal will steal all of it and give me pennies, which aren&#8217;t very useful), so please do donate. Anything left over at the end of each month will be donated to Cancer Research UK rather than being spent on mroe bree.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2008/12/server-outages-and-donations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Corporation Logo Server</title>
		<link>http://www.talkunafraid.co.uk/2008/12/corporation-logo-server/</link>
		<comments>http://www.talkunafraid.co.uk/2008/12/corporation-logo-server/#comments</comments>
		<pubDate>Mon, 08 Dec 2008 23:07:48 +0000</pubDate>
		<dc:creator>James Harrison</dc:creator>
				<category><![CDATA[Odds and Ends]]></category>
		<category><![CDATA[EVE]]></category>
		<category><![CDATA[generator]]></category>
		<category><![CDATA[rack]]></category>
		<category><![CDATA[service]]></category>

		<guid isPermaLink="false">http://www.talkunafraid.co.uk/?p=89</guid>
		<description><![CDATA[Given that there&#8217;s a lot of people who are just end-users and who don&#8217;t care much for tinkering with things under-the-hood in their applications, I&#8217;ve set up a server which will allow you to get the corporation logo for a given corporation easily- by making a simple GET request. Heck, simply using this in an [...]]]></description>
			<content:encoded><![CDATA[<p>Given that there&#8217;s a <em>lot</em> of people who are just end-users and who don&#8217;t care much for tinkering with things under-the-hood in their applications, I&#8217;ve set up a server which will allow you to get the corporation logo for a given corporation easily- by making a simple GET request. Heck, simply using this in an image tag is fine by me, though obviously client-side caching is always good. Simply use the URL below.</p>
<pre>http://clg.eve-metrics.com/<strong>&lt;corporationID&gt;</strong>.png
Example: http://clg.eve-metrics.com/853748831.png</pre>
<p>Nice and simple, no?</p>
<p>There&#8217;s just one caveat- <em>this currently only works for corporations in alliances</em>. The API has some very odd ideas about letting out-of-alliance corps have their corporation sheets grabbed, meaning I can&#8217;t retrieve shape data from those corporations. I have made a bug report to CCP, and I&#8217;ll keep you updated when/if this gets fixed.<strong> In the meantime, I&#8217;ve got a workaround- visit the <a href="http://clg.eve-metrics.com/">CLG website</a> and you can submit your limited key and user ID to add your corporation&#8217;s logos to the database.</strong></p>
<p>I&#8217;m making no charge for this service, though of course donations in ISK are hugely appreciated if you use this. If you&#8217;re a heavy user and want to start using this, please drop me a line first.</p>
<p>One other thing you might want to know if you&#8217;re caching- this will actually redirect you with a 302 error code. This means that your average request doesn&#8217;t even need to hit the extremely light Rack application which generates the images if the file&#8217;s there already, thus making my server and your response times both happier things. It shouldn&#8217;t make any difference, but I&#8217;m mentioning it just in case.</p>
<p>If you cook up any mods or tools to use this (I&#8217;d love to see an EDK mod to add this) do let me know and I&#8217;ll drop a link in this post. Edit: There&#8217;s an EDK mod in the works! Woot!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.talkunafraid.co.uk/2008/12/corporation-logo-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
