Author Archives: Steve Ronuken

EULA Changes – Gambling

I’m not going to talk in detail about the EULA changes wrt the alpha clones. Which is the rest of them. There’s nothing substantial in there. Even the 90 days thing isn’t. (before, it was ‘account expired; we can delete it now’)

What I am going to do is talk about the other change. That to gambling with EVE Online currency and assets. This is a pretty big change. It won’t directly affect a lot of people, who just play EVE and wouldn’t think about giving their money to another player to gamble with. But it will affect people more than some will think. I’ll explain that a bit further down.

Reaction

When I saw the devblog (Same time as the rest of you. The CSM didn’t get advance notice.), I was a little surprised. But not as much as I would have been a year ago. Over the last few months, there has been much more coverage in relation to gambling in video games, with some high-profile (in the industry) court cases. I was surprised, not because of the content, but only because of the timing. On reflection, with Alpha clones entering the scene, I shouldn’t have been surprised at that either.

CCP have a very big incentive to clean house. The removal of a subscription fee being required to play means that we’ll probably have a number of younger players joining us; younger players leading to greater scrutiny in this time of elevated concern about gambling in video games. CCP seriously don’t need that attention. It could prove very expensive for them, especially as it’s not something that they control.

While it’s unfortunate that some sites, such as EVE-Bet, are being hit by this, I fully understand why CCP are taking this tack. Unless you take the stance that all gambling sites are banned, you have to ban them one by one. White listing isn’t possible. Only black listing. So the ‘well behaved’ sites go down with the ones with a shadier reputation, instead of CCP opening their selves up to

Side Effects

This is where I have my only real problems with what is happening. Regardless of how you feel about them, some of the sites being forced to close did a lot of good for the EVE community, funding a variety of projects, and allowing for a richness of content which it will take time to recover. The common example is EVE-Bet. They’ve stayed above getting involved in the meta-game of EVE, instead funding a variety of streamers and other community content providers, such as EN24, Crossing Zebras and Eve-NT.

That’s something I’ll miss. I seriously doubt that donations will match that income. Even when you have something like Patreon, the number of people who will kick in real money is low. Probably because it is real money. The number of people who will donate ISK is similar. I’m lucky. I don’t run up much in the way of EVE expenses. Some of the other sites, well, they’re going to have to seriously change how they do things.

 

Long story short, this is a positive change for the game. But not one without collateral damage.

market.fuzzwork.co.uk

With the introduction (a wee while ago) of the new eve market data endpoint, and the problems which surfaced at Eve Central while that was happening, I decided to create my own market data website. And so, I present market.fuzzwork.co.uk

I posted it was out a few days ago, but thought I should write a little more about it, and the process of creating it.

Background

At fanfest, in one of the round tables, I brought up (again) the idea of an endpoint to get the order book for an entire region at once. While most people just want aggregates, that’s not something that would be easy for CCP to provide for multiple items, at the same time. In part because the aggregation takes time, and because the multiple items makes caching that data a lot harder (different people asking for different lists of things). Lo and behold, a short time later, such an endpoint came into being. It’s paginated into batches of 30,000 items, which is enough for most regions, though The Forge has 9 pages.

Details

So I rented a new server (with an offshoot of OVH called kimsufi) and set about building one. It’s a PHP site, running on an NGINX server, with a PostgreSQL database, and Redis for caching the aggregates.

The downloading script I wrote in python, and after an abortive attempts at aggregating the data, first in the database itself, then breaking it out into the script to process, I settled on using Pandas to do the aggregation. The script version would have taken over an hour to process. The Pandas version runs in a few minutes. This lets me do the grabbing of data once every 30 minutes, retaining it for a couple of days; that means you can look at snapshots of an order over that timeframe, to see how it changes.

That retention brought problems of its own. Not so much in keeping the data (each grab adds a couple of hundred meg of data and indexes.) but cleaning it up. Or being specific, the effects on the import, of having deleted it. Turns out the database doesn’t like it when you’re inserting and deleting 1.7 million rows every thirty minutes. It’s down to how it stores it. I won’t get into technical details, but it went from a couple of minutes, to over 15. which impacted kind of negatively on the performance of the site. The process wasn’t taking much CPU time, but it completely pegged the disk activity at 100%, and led to the site timing out. Not good.

How to solve this issue? One way would be to get a server with SSDs. Unfortunately, these are kind of expensive, relative to the one I’m using. I’m not made of money, after all. So I put together a Patreon campaign. If you want to contribute to the upkeep of the servers, I’d appreciate a pledge, however small it is. (Small is good in fact. My expenses aren’t that high. I’d feel bad about offloading everything to someone else)

However, a thought came to me recently. I’m using Postgres, and it can partition data, based on specific conditions. So I can have the data being stored in a partition based on the order set, and just truncate out partitions as they age out. This is far more efficient than deletion, and shouldn’t impact on the import speed. It’s not fully tested yet, but it’s looking somewhat better already. It’ll increase my data retention a bit (up to 200 samples (4 days ish), rather than the 96  (2 days) I was planning) but space isn’t too much of a concern that way. And partitions allow for more efficient queries.

Future

I still need to write the API interface for it, so you can request an arbitrary number of aggregate/region combinations, but that isn’t too far out. And I’ll provide a sample method for importing into google. In addition, I’m providing the downloaded orderbook as a gzipped csv, for an undetermined period of time (it’s all dependant on space, tbh. and zipped they’re not huge)

I also need to decide how I’m going to winnow the aggregates. The API will only allow for ‘live’ data, as that’s all I’m keeping in redis, but all the data is also being kept in a database table. I’ll likely add a page so you can see how they change over time. To keep the table from becoming an absolute monster, I’m thinking I’ll keep only a week at 30 minute intervals, then averages for the day, if you want to see over a longer time frame.

In case you’re interested, I’m generating a weighted average (price* volume summed up, then divided by the total volume), the max, the min, and a weighted average of the lowest/highest 5% of the orders (lowest for sell, highest for buy) ignoring any price more than 100 times the lowest/highest price. It’ll help when someone puts in a buy order for a million Gilas, at 0.01 isk. Which otherwise completely screws with the average prices.

Other

Oh, and I put together a very simple fleet tracker. Doesn’t do anything other than show you where fleet members are, and what they’re flying. Needs a CREST privilege, and a link you get from the fleet window. And for you to be fleet boss. I may expand it a little in the future. Maybe for invites too. Though that would require me to store the access and refresh token somewhere other than the user’s session.

As normal, all my code is on my github. Might be a little behind the release, but that’s purely down to me not committing it yet.

I’m open to suggestions, if you have them.

Anyway, Steve signing out.

New SDE Migration process

CCP Tellus is a wonderful person.

Until recently, the SDE (Static Data Extract) was a mix of YAML, an MS SQL server backup, and an SQLite Database for universe data. This was a bit of a pain to convert, with a whole bunch of steps.

Now, the SDE is being provided as a bunch of YAML files. Now, these, by themselves, aren’t a hugely useful format. But a single format makes it easier to write a conversion routine. I can convert into several formats, by running a single script (now that I’ve written it) This makes me a very happy man.

https://github.com/fuzzysteve/yamlloader is the repository for the new script. It’s written to convert into mysql, sqlite, postgres, and postgres in a specific schema. And it’s pretty simple to extend to other formats (MS SQL is a possibility, but as I can’t run that on my linux server, I’m not doing it at the moment)

In addition, with the SDE being in YAML, it’s a lot easier to generate the differences between versions. I’ve loaded it into a git repository. This is publicly available. git://www.fuzzwork.co.uk/sde-tq.git

Feel free to look into it 🙂

 

So, short version: I have a new SDE migration process. It may lead to slight differences in output, but the process is a lot easier for me. And if I get hit by a bus, it’s a lot easier for someone else to take over.

CSM: Tinfoil time with Uncle Steve

This is pure tinfoil, with no real substance.

Now, if I were a ruthless space dictator, lording it over many people, and I had a somewhat paranoid streak (as ruthless space dictators are want to have), I’d want to make sure that people voted the way I told them to. And have a way of catching spais who leak to my enemies.

The good news is, it’s possible with the current election system.

If I could send out, to my many sundries minions, a ballot that they should vote with, each tailored to that minion, I could, when all the ballots are released, tally each against a particular person.

There are 53 people standing for election. I only really care about, say, 11 of them. That leaves me 3 spaces I don’t care about, and 42 people I don’t really want to see elected.

So, each minion gets a ballot with those 11 people. The last three spaces are taken up my the other 42 people, in different combinations. so, that’s 42 x 41 x 40, or 68,880 different combinations. Enough for most space dictators.

I just send out all the ballots (bcced, of course, because I don’t want to share all the addresses they’ve entrusted me with. Of course.) and tally it up when it comes back. Or look up a particular ballot, when one is released anonymously. I just send out a message saying ‘oops, some of the ballots were mistakes.’, to allay any fears. 😉

Tada, spai hunting, and voter control, all in one.

But this is pure tinfoil.

Using Crest with Excel: Crest Strikes Back

If you’ve read my older post on it, using Crest with Excel can be a complete pain in the ass. You have to load in a module, then write something in VBA, using it, because VBA doesn’t support json natively, and doing it with a user defined function, well, I never got that far, before throwing my hands up, and walking away.

Now, I got that working, but I didn’t like it. I ran into power query for a while, and it kinda worked, but I didn’t find a way to easily get it to pull a bunch of data, and reprocess it the way I wanted. So not so good for CREST prices.

So I was still on the lookout. And I recently came across xlwings, and it made me very happy indeed. I like Python, and I’m fairly good with it now. So, combining the two seemed like a winner.

After a little playing with it, I got it all working, and I now have an excel sheet, which does CREST lookups, and all it needs, is python, xlwings, and requests installed. So, to the instructions:

Install python. I’ve been using 2.7.10, but 3 should work just fine too. Make sure it’s in your path.

Install pywin32 (I’m using this one, for 2.7, 32 bit)

Using Pip, install xlwings. (you’ll do this in a command prompt)

[where you installed python, like c:\python27]\scripts\pip install xlwings

Using pip, install requests.

[where you installed python, like c:\python27]\scripts\pip install requests

using pip, install requests-security, to stop it bugging you

[where you installed python, like c:\python27]\scripts\pip install requests[security]

Now, go to a directory where you want to create your new workbook, using your command prompt. run the following command (myneatcrestbook, is the name of your new workbook. change it now if you want.):

xlwings quickstart myneatcrestbook

If this fails, it’s probably because your python scripts directory isn’t in your path. So try

[where you installed python, like c:\python27]\scripts\xlwings quickstart myneatcrestbook

With that done, you’ll find a new directory, containing an excel sheet, and a python file. open the excel sheet, and enable macros (it’ll probably just prompt you). You’ll also want to turn on the developers ribbon, in the file->options->customize ribbon option.

On the developers ribbon, click ‘macro security’, and check the ‘trust access to the VBA project object model’. hit ok.

Then click the ‘excel add-ins’ button, and click browse. Browse to [where python is]\Lib\site-packages\xlwings, and select the xlwings.xlam file. hit open, then check the box next to xlwings.

You should now have an xlwings ribbon entry.

 

That done, you can add code to the python file, come back to excel, and hit ‘import python UDFs’, to make them live.

When you want it to reprocess your functions (say, to update the data again, and get new prices) use ctrl+alt+F9

Below you’ll find a copy of a simple script to get the 5% average sell price. called with =crestSellPrices(34,10000002)

from xlwings import xlfunc

import requests

@xlfunc
def crestSellPrices(typeid,regionid):
    response=requests.get('https://public-crest.eveonline.com/market/{}/orders/sell/?type=https://public-crest.eveonline.com/types/{}/'.format(int(regionid),int(typeid)))
    data=response.json()
    count=data['totalCount']
    numberOfSellItems=0
    sellPrice=dict()
    for order in data['items']:
        sellPrice[order['price']]=sellPrice.get(order['price'],0)+order['volume']
        numberOfSellItems+=order['volume']
    # generate statistics
    if numberOfSellItems:
        prices=sorted(sellPrice.keys())
        fivePercent=max(numberOfSellItems/20,1)
        bought=0
        boughtPrice=0
        while bought<fivePercent:
            fivePercentPrice=prices.pop(0)
            if fivePercent > bought+sellPrice[fivePercentPrice]:
                boughtPrice+=sellPrice[fivePercentPrice]*fivePercentPrice;
                bought+=sellPrice[fivePercentPrice]
            else:
                diff=fivePercent-bought
                boughtPrice+=fivePercentPrice*diff
                bought=fivePercent
        averageSellPrice=boughtPrice/bought
    return averageSellPrice

Solving the WarDec ‘problem’

I’ve made no effort to hide the fact that I think that WarDecs need work. That they’re inherently lopsided. That said, I don’t want to get rid of them. That would make highsec far too safe. People could anchor things with pretty much no chance of losing them. I’ve been kicking round a few ideas on how this could be ‘dealt’ with. That’s what I’m going to share here. I’ve mentioned it to CCP, but I don’t expect anything to happen soon, if it ever happened. They’ve got their hands full with some really large systems.

The core of the idea is simple:

Anchor a structure to declare a war. If that structure explodes, the war ends.

Not complicated, is it? Now a defender has a reason to undock and fight. If they win, the war is over. Maybe add an invulnerability to wardecs from that corp/alliance for a period (Week? Two weeks? Not long) Allies now have a concrete goal (Blow up the structure).

The key is it’s counterplay to the declaration itself. And there’s a degree of limiting for how many wardecs you run. Because every group you Dec can attack the structures which are running the wars for the other groups. Off time zones can be handled by Allies, if the Attacker tries to make it harder to attack, by setting it when no-one involved is on.

Yes, small groups will still be stomped by large groups. That’s always going to happen. But now there’s action they can take, rather than having to deal with an attacker that always fades if they manage to get a small fleet together.

There are a bunch of twiddly bits to set, of course.

  • How vulnerable are the structures? (I’d say at least one hour a day. Maybe a few extra hours which can be scattered around).
  • What do the structures cost? (Cheap)
  • What fuel do they structures take (This is the replacement for the isk cost to concord. Maybe some LP based things from pirate lp stores/drops, in addition to other fuel)
  • Where can it be anchored? (I’d suggest highsec, in the same constellation as the defenders head office)
  • When does the war end (I’d suggest the following downtime)
  • Edit: How is fuel burnt. (To keep some risk for the attacker, you put in fuel for 7 days. It’s all burnt to online it.)

 

And if you want a lore reason for the change?

Concord finally noticed a corrupt department taking bribes to turn off protection for people. They canned them. Now you have to hire hackers to do it for you. They have specialist equipment which requires microgravity, and can’t have a warp core in the same structure.

Summer Summit – Day 4

The final stretch. This has been a long week, and a draining one at that. It’s been pretty good, but if it went on longer, I’d probably end up breaking one of the windows to let some cold air into the room. (10 CSM, 2 Community Devs, + Devs from meetings. And the lights. it heats up rapidly)

  • EVE Producers
  • Team Security
  • FW & PVE
  • White Paper review
  • Community and Localization
  • Summit Retrospective

Eve Producers

Producers aren’t quite what you’d think. With the teams having a lot more control of what they do, their Managers exist to smooth the way for them. they take care of the regular HR stuff, while the dev teams get on with the regular stuff.

It was a good conversation, giving us insight into how things are managed.

Team Security

NDA

Just kidding 😉 I’m expecting most of the minutes to be NDAd, but we had a good conversation with them, and I’m hopeful that you’ll see something from them soon.

FW & PVE

The team isn’t combining these. They’re just the team working on both things. (There are a few things which are linked, but it’s not the reason they’re together). We talked abiut their plans (which should be, to some degree, in the minutes). It’s going to shake up the warzone, which is good. Stagnancy is bad.

White Paper review

We and CCP have been kicking round the white paper for a while, hoping to simplify it, and get a document which we all agree on. Not quite there yet, but really close.

Community and Localization

A session to talk general community stuff, with the community team, and the people handling localization. Covered a bunch of things.

Summit Retrospective

An After Action Report on the summit itself, and how we thought it went, and how it could have gone better. Really worthwhile, though not, tbh, hugely interesting for people who weren’t there. Lots went well. A few things, not so much. (We were in their biggest meeting room. But with all of us in there, and it not having good cooling, we boiled. Next time, probably a smaller one, but with an exterior door)

 

 

And so the summit ends. It went better than I expected, though that’s down to bad expectations on my side. I should remember that face to face nearly always goes better. When you deal in mostly text, or just audio, a lot is lost. When we could see, and compensate, things went smoothly.

Summer Summit – Day 3

 

So hungry. I may need to eat one of the other CSM members. It’s been a fairly long, but productive and interesting day.

  • QA team session
  • EVE Metrics / In-game economy
  • Launcher / download on demand
  • Structures
  • EVE Store
  • Art session
  • UI session
  • Fanfest

QA Team Session

The day started with a huge Scotsman, with a large beard talking to us. As you might expect, this immediately made me feel at home. We talked a bit about how the QA team do their work (not the actual QA bit. The infrastructure around it) and where they think they’re strong, and where they’re not so good. Saw some graphs, heard some suggestions. A good meeting.

EVE Metrics / In-game economy

Heard some good news in this session, but it’s not my place to announce things. So I’m not going to. But again, I’m entirely happy with how this session went. And seeing some metrics generated on the fly (from the underlying logs) is always interesting.

Launcher / download on demand

omgomgomg. I will say no more.

Structures

We talked about structures. Both the Citadels, and the future structures which are coming later. We mostly focused on places where we weren’t entirely sure about things. I don’t want to talk about this too much, as the NDA applies at the moment. But I’m hopeful that there’ll be more in the minutes.

EVE Store

I want to buy stuff! And I want it to not cost me an arm and a leg! And CCP appears to have listened to this. As with things involving partnerships with other companies, CCP are going to hold this close to the vest until it’s actually ready. With luck, that’ll not be too much longer.

I asked about the card game, and the possibility of print on demand with a partner. As this was kind of a blind side question, I didn’t get a firm response. I didn’t expect one, just wanted to plant the idea.

Art session

We were shown a bunch of art stuff. It was cool. It’s not particularly possible to talk about, without having pictures, so I’m not going to. But Eve has yet more prettiness coming. I asked about hats (and other accessories). I got some dirty looks. As per last time, a lot of it is having to deal with things like hair as well, which is just difficult to work with, as customizable as it is. To make sure it doesn’t clip, or just look weird. It’s a customization thing. People have their portraits, and some people take a lot of effort over them. Some accessories naturally fit, like hats, which would sit inside the portrait.

UI session

CCP has a new team devoted to the User Interface and User Experience. (rather than embedded people, in other teams). They showed us some concept stuff they’ve been kicking round, we brought up some pain points on the current UI. A good productive session, but again, one that, without the pictures, isn’t simple or interesting to talk about.

Fanfest

We talked about Fanfest, with the person who organised it last year, about where we thought it went well, and where it could have done better. An After Action Report, so to speak. We had a bunch of comments, they had questions.

 

Today felt incredibly productive, covering a lot of ground, and having a lot of discussions. I’m not sure how much of that will come across in the minutes (They’re always a cut down version, unless you have a stenographer, and are willing to wade through reams of text), but it went well today.

 

Summer Summit – Day 2

  • Roadmap review with EP
  • Player acquisition strategies and data
  • Little things session
  • Nullsec general session
  • Customer Support Team
  • Purpose of the Council
  • Individuality vs uniformity

Take a look at the list of topics there. Take a wild guess of which letters you might be seeing in the minutes.

That isn’t the order the meetings happened in, but as they didn’t really affect each other, I’ll just take them in that order. (Yes, I’m lazy.)

Roadmap review

The contents of the review are going to be NDA. We saw the roadmap, for the months ahead, and talked it over with CCP Seagull. It was the development roadmap, rather than a marketing or vision roadmap, so we’re talking about features, marked with a likelihood of them fitting into some releases or not. Didn’t go into much detail on each thing. Mostly talking about the philosophy behind the releases and cadence. Watch for devblogs and keep an eye on http://updates.eveonline.com/

No spoilers for you, I’m afraid. But it was a productive session, with back and forth on things which we felt needed to be discussed. (Not specific features. That’s not what the session was about) Vague, I know. but that’s NDA stuff for you. Sorry.

Player acquisition strategies.

How EVE can sink its hooks into fresh grist for the mill. Yet more NDA stuff. I’m beginning to hate those letters. I understand and appreciate why they’re used in these cases, but it makes for hard typing. We met the team, and talked about New player things. This isn’t about the NPE, it’s about how to get at the players in the first place. (If you have any novel ideas, that aren’t ‘super bowl advert!’ drop us a line. We’ll pass them along)

Little Things:

Whee! This session isn’t NDAed! Downside (as I’m not going to list everything here): Lots and lots of ‘little’ things were brought up with the team. And some were promptly shot down as not actually little things. Picture a weed, which when you pull it up, you just keep reeling in the root, as the tree behind you is dragged beneath the surface. Some things which seem small to the layman, are the beginning of the trip down the rabbit hole. However, some things were added to the list. Remember, the proper place to post them is in Karkur’s thread on the forums. Putting them on Reddit gets them immediately seen, but they drop off fairly quickly, which means they can be lost. Little things tend to be done in between other tasks, when a developer has time, and needs a mental break, or is waiting on someone else.

Nullsec:

This was a session that we called for, in addition to the specific Sov ones we had yesterday. Nothing game mechanicy was talked about, but there was some frank discussion with the team. (I don’t want to go into details on this, until the minutes are out (and tbh, after that, it’s not that important)) I did feel it cleared the air between us.

Customer Support Team:

We talked with the GMs 🙂 Nice people. Saw some nice stats, saw what and how they were planning on doing things, along with how things have changed since we last talked to them. Things like their zendesk implementation, and how they’re sticking articles into it, to help people help themselves, rather than have to wait on a GM (who would just give them the same information.) With any luck, the minutes for this will be pretty detailed. And maybe a graph or two. (Finding out how to apply unallocated skillpoints was popular recently)

Purpose of the Council

This was a long one, over running the alloted time, and eating a bit into the following session (Individuality vs uniformity)

I wrote a chunk for this, but decided I want to make sure that I wasn’t misrepresenting people first (I’ve had a few pints. hence the delay in getting this to you) Once I’ve got that, I’ll probably post as a supplementary post.

Individuality vs uniformity

EVE is a cold dark place. But does that mean that everything has to be grim and gritty. That as the core of this one. We touched on a number of things with the team we talked with. Including great things like the Love Squad guide to character portraits and a brief mention of how, in the grim and gritty world of blade runner, there’s still some very bright color. Now, with the release of the Raata sunset, and the Valklear glory skins that’s made its way in a bit. But we still want to see some more variety. Sugar spoke a lot on this, and was eloquent.

 

And that’s the end of Day 2. Hopefully the minutes will be out tomorrow.

 

As per the minutes released today, you should be seeing a bunch of stuff talked about at Vegas, which will clear up a great deal of the NDA from yesterday. A lot of that is just stuff which isn’t  quite ready to see the light of day. Like things being trialed to make sure they work in a way which is balanced, and won’t melt TQ. Some people see “we’re looking at”, and read “you will get”. That’s to be avoided.

Summer Summit – Day 1

As some of you might well be unsurprised to hear, just from the topic list for today, this is going to be very light on details. Because a great deal of this will fall under the NDA. I’m hopeful that you’ll hear about it all fairly soon, but there’s some potentially contentious stuff in there, and other stuff which just isn’t ready for public consumption.

Anyway, with that said, let’s begin.

The meeting with Hilmar went pretty well, with us focusing mostly on how we see things going, and how we think CCP can communicated better with you, the average player base. There’s been a great deal of focus on things like Gunjack, and Valkyrie in the gaming press, with Eve sometimes seeming like the poor step sister, hidden away in the wings. In part, that’s due to it being ‘old news’, the game that’s been around for 13 years, without any major changes or new features which would be understood by the average person who reads the gaming press. Pandas are easy to understand. A new way to take space, not so much. It’s obvious when you actually talk to the people, that the passion is still there, but it’s not always well communicated.

Also, he fed us Sandwich Cake (Brauðterta) which was a somewhat novel experience. tasted pretty good.

 

Then we moved onto the 3rd party session. Nothing new to report here, other than we asked for a bunch of things, some which will be dependant on the other team developing the feature, and some which Foxfour said he’d look at. I’d like to say a little more, but forgot to check what the NDA coverage was, so what I’ll say is, read the minutes. Hopefully it’ll be in there, if not, sorry folks, that’s NDA for you. (It’s a technical point, rather than a new feature)

Then I fell asleep. 😉

Well, no, but we moved onto some long, and very very talky sessions about Sov, Cap changes and power projection. Some of it was a bit above my head, some of it seemed counter intuitive, but I guess that’s mostly because I don’t spend a great deal of time in Null, and I don’t move in the upper echelons of power there. Unfortunately, a great deal of that comes under NDA. Some minutes were taken, but I’m expecting another cat picture. (Sorry, no recipes from me this year) Hopefully you’ll hear about it fairly soon, but with some of the changes being talked about, I can understand serious NDA protection. I did like what I heard about Caps and Supercaps (from my admittedly less educated perspective)

 

And that’s the end of the day. We spent a lot of time talking about Sov. And, I’m glad to say, things remained civil. Which is nice, considering how high tempers could have run.