so that we can see where Ikiwiki is, where it's going, and just discuss the future and have the problems it has, what it can do, what we can do with it. A pair of models down there, which, the main point is the point of where Ikiwiki is, where it can move, how it did develop, how it really well, the other thing is, basically, there's some issues, some topics that I'd like to talk about, but I'd like to collect topics as well in the course of the meeting so that we can discuss other things. Speaking of general direction and where Ikiwiki is, my impression is that from a very active start, it's now reached a stage where all the things you usually are in a very good work in order. There are plugins for several battle process applications. Most of what's currently active is basically bad fixing, or developing some changes with respect to portability, I think. There's been a recent schedule on micro-ass, like for you, when you see Ikiwiki moving, do you see more movement to come? Do you have a second with Mike? Do you have Mike's idea on it? Do you have Mike's idea on it? Mark? Do you have Mike's idea on it? Mike's idea on it? Yeah, I think so. Yeah, I don't want to start this all over again. I'm very young. Hello? Yeah, thank you. So for those on the stream who might not have heard, Chris, Christian asked me, I guess, where Ikiwiki is going now. I think you're basically right. It's kind of a mature project in a way. It's what, nine years old or something. I don't remember. Kind of, it's in, right now, I kind of think of it as being in not really maintenance mode because we're still actively adding features and stuff that I'm not really actively developing on a day-to-day basis. I'm mostly just merging patches of other people from up with and then fixing the respect reports. And I don't have a lot of time for working on it myself, but I think there's enough other people that it's keeping on with some momentum being developed. As far as where I anticipated going, I personally plan to continue using it as a foreseeable future and keep maintaining it as long as that's going on, but I don't know if I'm gonna be doing some massive like a rewrite or anything like that. I doubt that I would have the time to do something like that, even though it might be interesting. And I'm kind of, I've lost a lot of my pearl hacking abilities because of learning other languages. So I'm kind of, my productivity in pearl has gone way down. So that kind of limits how much time I want to spend on Ikiwiki as far as detailed patch review and coding and that kind of thing. So getting patches into a good state before I look at them is the best thing from my point of view. How many people do you estimate are active around Ikiwiki or is it only you who finally commits the things? Yeah, it's pretty much just me who has final review and commit. There's no particular reason that's the case. That's just how the default kind of works out. But there are Simon McVidi in the UK would be probably the first person I'd happily give a commit that to anytime he wants to. Might assume we haven't really talked about it, but he's made a lot of patches and I trust him pretty much implicitly with anything. If he just signs it off, I just merge it immediately. So he effectively has a commit that. I'd use questions so far from. A slightly mischievous question. So the rewrite in Haskell is off then. Unless I have three to five years that I suddenly don't have something else to work on. One of my pet peeves right now is about localization. We have the wonderful PO plugin that is really, really great. Unfortunately, as soon as you start trying to get something really neat and clean, you hit the templates. And the templates right now are not localized and can't be localized. And also, the templating system is pretty airy. That's one thing that could be worked on. If somebody would like to redo the templating system and could come up with a patch and get it reviewed by a couple of people, I would be happy to swap it out. And as far as translating the templates, I do have a plan to do that. It's basically generate them from a Perl script and then translate the Perl script. So that way you don't have to deal with a special translation layer just for the template system. It's something that somebody needs to work on. I personally don't have an itch regarding translation. So being monolingual. Just so to get a rough impression, are there many people around here who are actually using Qwiki translations? Either. I, for my part, usually have a wiki set up in English on whatever content I have. I have not used the PL plugin before. Is there a way to preview a page with all the wiki links and everything, how it's rendered before committing it? The wiki links are previewed. It's just a few. What is not previewed is things like sidebar thing, but... No, no, no. When I edit the file with my text editor and before committing it, well, if you look at my commit log in Qwiki, it's like I did that page formatting, formatting, formatting link, formatting tag. You can actually run Qwiki without having it committed. If you're speaking of... When you said you're using the editor, I assume you have a local copy and edit it in there? You can just run Qwiki from that source without having committed state? There's also a switch. I forget the name, but it'll dump out. It'll render the page to standard output, just one page. And I think you have to either give it your set up file or it doesn't have all the settings in your set up file, so it's not perfect. With regards to running Qwiki without committing it, that'd be good. There's one issue I had, which I think I have two or three copies of the repository. And because in the tutorial for setting up the site it says that you need to make a gitbar repository there and a working repository here and then where the repository end up and I followed it. But then I ended up basically cargo-culting what was in it. It's not clear to me in the long run what these bits are for, which makes it harder for me to manipulate and maintain. Yes, I thought maybe I can run Qwiki by hand, but then in which repository and maybe do I screw up one repository if I write it in the other or... What can be a little tedious is the paths you have in the set up file. Might be relative paths if you set it up without passing up to the paths. So that's the only thing you have to consider when you're thinking cross repository. Apart from that, there's a bunch of metadata Qwiki collects in the source repository, which is the checked out version. So that's where Qwiki keeps its own stuff as well, which is I think part of the reason why there is the source repository though. You mean the bear repository? No, the regular source tier. That's where there's a .ikwiki, which contains the... All that information is stuff that can be regenerated or downloaded or something. It's nothing that you have to keep a hold of. You can simplify your set up with the... You can get rid of the bear repository if you don't want it and just have one repository local and one remote or something like that. The only reason the walkthrough as you set up the bear repositories because most people, they find it easier to have a bear repository used just because of how Git works, but you can definitely do it the other way and simplify things down. I only have one repository, one coffee on my laptop with repositories. And I run the... I just run a .ikwiki with the set up file and know that it's gonna work on the right repository because like Christian said, I have absolute paths pointing to it. Like you said, I have absolute paths pointing from my set up file, pointing at the right repository to use. How we're getting this is... I've seen Ruby compiler, they have a command like server and then it fires up a server that runs a web server and you can connect and it renders the page it's live so you can actually preview. Is that something that would be very hard to do with the current .ikwiki? Actually, it shouldn't be that hard to do given that there is the option to pipe out the result of rendering a single page to send it out. So you could even implement that stand alone from .ikwiki. Just have a server that requests the pages. I think you would have to have the server either have all the HTML files built and stored somewhere or render them all on the fly and otherwise links wouldn't work. I mean, you could definitely have some kind of a .ikwiki Insta web thing. It's worth thinking about, I haven't really thought about doing it and maybe it's a good idea. I just run a HTTP server on my laptop so then it's one less complication, right? It's one less thing that's different between my preview setup and the production setup. Well, yeah, sure I do because I install, when I run .ikwiki it installs into the directory which is viewed by the, which is served by the web server and I refresh the browser, okay? It doesn't auto refresh but other than that it's live. Maybe I don't understand the goal. Well, the Ruby thing that I've seen is that you save the file and you refresh the browser and you have the rendered version. So with your setup, you still have to call .ikwiki manually to refresh. That's one extra step. An Insta web thing would be interesting because when doing loads of massive edits, if I rebuilt my wiki it would take me about 30 or 40 seconds. So that doesn't quite work for quick turnover of edits. So if there's running wiki as a web server temporarily so it keeps state in memory and only observe and quickly renders as everything ready to render a page quickly for when one page changes that kind of makes sense. So there's a more general problem here with Ikiwiki's scalability to a whole lot of pages and if you're using the Poe plugin like integrity is over here saying mine's really, really slow because Poe is, it runs a lot of third party commands and stuff. But just even if you're just using regular Ikiwiki when you get up to tens or hundreds, I don't know how many thousands of pages you get quite slow just because it has to, every time it's run it reads in the index file and then writes it back out. And that's a completely unoptimized data storage format that has not changed in a long time. And if you switched it to say using SQLite or something and had a proper database you might not even need to run Ikiwiki as a persistent process to get a massive speed increase. And so this is something that is on my long-term to-do list and really needs to happen, I think. I have various people running sites that I'm responsible for that posting comments and things to them just gets quite slow. And trying to deal with that, I'd really like to get there. I just haven't had enough to-its to do it. And if somebody wants to sit down and try to, I mean it's really simple for all code. Right now it just dumps out like basically raw serialized data out to disk and loads it back up and finding a way to convert that to a database would probably, probably someone who knows databases better than I would find it much easier than I would, so. I was looking into, a while ago, looking into adding support for the Malart format Ikiwiki because I think it's really nice format for writing documentation. You can get a lot of good cross-linking for free. MA, double L, ARD. It's the one that GNOME uses now, nowadays. And the problem is that the processor there always operates on the whole directory at once, so it pauses all the pages. And trying to get that to integrate with the PO was pretty difficult because Ikiwiki thinks it can call something for each page and so on, so I don't know if you have an idea how to go about that. It's good fun. It's good fun. It's good fun. It's good fun. It's good fun. Well, it always, since it does all the cross-linking it's always generating all the HTML files from one directory at once, so. In that case the Malart compiler is doing part of the work of Ikiwiki, then you would, the cross-linking that it needs to read the whole directory to do is what you do in Ikiwiki. So, well, I don't know how that works, but I haven't seen Malart, but I just took a note to look at it. But for what you say, if it needs to read the whole directory to do cross-linking, it sounds to me exactly what Ikiwiki is doing. So one file can be read with, and the markup interpreted, and you let Ikiwiki do the cross-linking part. But I don't know what if Malart does this cross-linking in a way different than what Ikiwiki does. So it seems to me that either I have to teach Ikiwiki not to do profile processing in this one directory, or I have to teach the Malart compiler to look at the index file of Ikiwiki. Is that right? Yeah, and to cache the information somewhere. Actually, if this is more about the plain text syntax of Malart, isn't it? Or what is what you like about Malart? Well, the syntax is a pretty simple XML, but what I really like is the way that it connects the different nodes by semantic thing. So I don't know if it makes sense to re-implement all of that in the file. Semantic is part of my building a wish list, by the way. So I had a related question about performance, and I remember somebody asking this some years ago, which is, is a multi-threaded Ikiwiki going to happen ever? See previous comment about re-implementing Ikiwiki in Haskell. I mean, I can't imagine taking the current code base and making and threading it, it just... That was more or less the question. Yeah, maybe there's some hat trick that you could pull with the voids having to deal with locks everywhere, but... I don't have the impression either, so that this is something that's easily possible, short of rewriting half of Ikiwiki. I think it would be possible to maybe thread off rendering, and if you somehow made the render pipeline into an actual pipeline, then maybe you could, you know, thread that in some way, maybe. Well, it depends on what we want to optimize, whether it's plugins that spend much time in the scanning part of the process, whether the index database is regenerated, or whether they spend time actually rendering. Because whatever you render, you have to wait for the index database to be complete because you want to evaluate page specs and that stuff. And that can't be done before you have the complete knowledge of the rest of the system. It might be possible to parallelize the scanning phase, too, using the same kind of a pipeline, but, again, you know, I think a lot of the scanning stuff actually does go in and mungers in general state. I think that's most of the plugins that do things that the scanning phase want to store it for later, and so then you run into the threading issues again. Yeah, yeah. Actually, the thing is that there's no... This would be a massive change in the plugin API, I think the plugins that are available are a big part of what makes Ikiwiki. Okay, so if no more topics come up now, there's one thing I'd like to go over with you, which has... Okay, I think I assembled a list of topics I've been working in Ikiwiki over the past, and turns out there's often the topic of pages having their page title and having their destination file and those things getting mixed up. I think that's partially also because of the history back in the early days, there was a slightly different syntax for commands and links, so you had to have underscores in your links. This time and again, this resurfaces in underscores capes showing up all around the code, or all around the region, what do you say? Yeah. So basically for each page there's a source file, there's a rendered file, there's a kind of... Actually, I'm not sure about that. Is there such a thing as a page name for each file? Yeah, there is. That's basically that's dera underscore dera b and that's the kind of base name from which the other thing is constructed. And there's of course, there are ways of linking to that which can be with or without underscores and there's the title in which the underscores are stripped. So actually, I would have liked to have this completed for a Ikiwiki explanation page on the various kinds of titles. Because this is like a, I think I'm under the impression that this is a recurrent theme of the wrong kind of entity showing up in plugins. I don't know. I know there's a couple of cases where the crazy escaped file names can make it hard to figure out what the right thing to type to get a wiki link is, for example, if you're looking at a page in your browser and you know what the URL is, but that doesn't mean that you can easily figure out what the actual page name is linked to it. My impression was that you can always get the page name you can link to by copy pasting the title line unless you set a major title. Yeah, exactly. Okay. But I don't know that if I've ever seen an example of underscores leaking out in the browser. Yeah. Give me a second. There has been both ways actually when you try to intentionally create an underscore in a Ikiwiki link, even if you explicitly set a title, you have to go the other way around and have to, I think this is a kind of traditional feature from what my impression was. And the others are the link map plug-in, just this. Okay, I can see link map having that kind of problem, yes. Yeah. Generally concerning the way links are put, how do you feel about incompatible changes with the link format? Because basically Ikiwiki, that's maybe not so well known feature, Ikiwiki does have a transition mechanism for that so you can call Ikiwiki to transition your pages from one version to the next. But I'm under the impression that not all users of Ikiwiki would have this applied if we went to go on making incompatible changes. So what's your opinion on that? Yeah, we haven't used the transition for many things that everybody has to do. There was a patch which I unfortunately haven't merged to change something about preprocessor directives and would have needed a transition, a mandatory transition. And yeah, I don't know that we could guarantee that everybody does it, but then again, I don't try to guarantee that everybody maintains their system so I'm kind of okay with this kind of transition, at least in theory, I think. As long as we don't have a lot of them. Do you think there's room for development so that actually I don't know about the current version number that there will be kind of a collective transition version again? Yeah, I mean the kind of transition you're talking about would mean a new major version number. And then we could kind of spool some transitions up and. Yeah, that would be the best way to do it if you have more than one pending, maybe the preprocessor directive thing and your thing or something. This thing is one of the things that I've been discussing the last few days with SMHB was the ratio of having tight links. For usually in the QBQ, much depends on the relationship between pages that's established by having a link from one page to another. And there are some plugins so far that create type links. So when you tag a page by saying tag this tag, this creates a link to the tag page. But also claims that this link is a tag relationship and you can later on query for all pages that are tagged thus, and thus differentiate between just linking somewhere and actively saying this is a page of tag. So category A. And we've been talking about generalizing this to, because it will solve the problem of, for example, implementing back trackers which have blocking relationships. This might lend itself to an extension to the link format because just, I mean, how often does the pipe character show up in a URL? There'd be room for extension. And the transition, if that's what you're thinking. Yeah, I think that would be an example of a four point 2015 version. Yeah, I don't know how it's related. It's about using page she sold in parent links. But maybe I can show you the use case where I had to actually do crazy stuff if you're interested. Do you have it online? Yeah, yeah. So just for the US layer, add them. Yeah. I'm very happy with the layout. It's always nice to see a new wiki wiki site that I've never seen before. So the thing is it's multilingual, a wiki wiki. And so what I was telling before that I had to actually translate the template here. And so we still have French on the footer, for example, even if you're in the English version. The main problem is about actually, if you go in the subpage, this is a parent link. And to get this with proper caps and nice layout, I need to actually have the page name that is like capital A association. That's one thing. And also if I have that in the US version, the English version, then it's not translated. And it's all about how this handling of page diesel and parent linking are related sometimes. So in theory, you prefer pieces or something? Yeah, I'm afraid you can't unconditionally uppercase, you'd rather have to use the page title. But this would not only solve the uppercasing. You can't use the page title for technical. I think that it doesn't know the page title at the point that it's doing parent link stuff. There are issues like this with dependencies of one thing or another. You can't always rely on having access to the page title. Okay, so we then depend on the full contents of the parent page, basically.  Yeah, as far as your footer, by the way, there's something that I've wanted to do and never got around to it. But if somebody would like to do it, which is generalize the sidebar plugin into a generic piece of the page plugin. So you can have whatever piece is the page you like, and then you can have a file in this directory that's a sidebar for this subdirectory and below it. You can have a sidebar on the other side. You can have a header. You can have an overt notice, whatever. Basically, that would solve parts of the templating issue because the page would not any more consist of template. Well, the templates would become very simple because they consist mainly of sidebars. Yeah, I think you could probably end up with a template that's a bit simpler. I don't know if it would completely simplify it. Of course, this also plays into maybe getting a bootstrap, a Twitter bootstrap or some other modern theme for Ikiwiki itself. Yeah. I've seen one implementation of Bootstrap, but try to generalize it and terribly fade because it's just too much dependent. Basically, it changes the templates and then you're out of like, when you have any other plugins. But I'm perfectly happy to have a, it is possible now to have something in the page template that's conditional on the theme that you're using. So you can easily, well, not easily, but you can put it all in one template and then I can maintain it in theory because it's just one copy of things with branches for different plugins. So it's doable, I think. Somebody just has to sit down and make it work. And I put that piece in just to make it not possible it should work. Okay. It sounds like you're gonna, yeah? Could you go to your overview of the different page name things? Yeah. Especially the topic of index.mdwn versus pageb.mdwn is every time I do something with that, I have to look up the documentation again and then check which flag I'm supposed to be setting of the two flags there. And so I was just thinking earlier since we were talking about a transition in the format, does it make sense to maybe only keep one flag to keep URLs compatible per site but move the file around in the git when once the transition hits and just say we pick one of these versions and go with that. I don't really see a strong reason. I mean, the way I think about it is there's one way to do it on there's this index pages thing that maybe somebody uses, it was just added because somebody wanted it, I don't consider it a big deal. You know, I just, I print it out of my mental model and I don't have to worry about it. Yeah, but that's a good example because I don't know exactly which, the one way to do it you're talking about because I have no idea again at this point which things, which flag does what. The one way is the default way which is if you have page name.mdwn then you get a page name file. Otherwise, if you have a, if you want your index, the only index.mdwn you have is for a top level index because there's no way to have it otherwise. So it's a special case which is slightly ugly but other than that it's quite simple. So it means you have, if you have sub pages you always have a directory without an index HTML file and you get the directory listing if somebody lists. Well, if you have sub pages you make a sub directory and you put the pages in there and then you probably have a top level page. So you have subdir.mdwn which then links to whatever is in there or whatever. If you leave that out then yeah, you get a. Yeah, but if somebody strips off the last part of a URL until the slash. Then they might get a directory listing if you haven't added a page there but you can always turn on the auto whatever. Yeah, and then auto get auto-generated index.mdwns if you don't have them. Yeah, I still find the topic rather annoying to wrap my head around the studio. I think if I were gonna do it again I would just have the not have a translation layer between your input and your output file just have identical input and output and mix it mentally some sort of model. I think I've had discussions in all of the four combinations that can spring up there and there are proponents of all those varieties. So I think it's not too bad to have a single translation layer as long as all the plugins are aware that they just can't tell which is the source file which is the destination file but just go through the appropriate function of whichever it is in the particular cases and be done with that. Quick comment, your idea about the sidebar, it would actually solve my parenting problem because I could have a header file and in the various sub directory they would just replace that with the localized version. So. There is an open to do item about it with some ideas I can't even know it exists it's from about three years ago. So you'd be basically doing in the sub in the sub to page something like inline dot dot slash dot dot slash header or what was your idea exactly? It's essentially inlining but instead of having to manually put the inline directive in it just it says if you have say a div with ID equals. Oh yeah it would inherit just inherit down or something like that. Okay yeah that would actually be even easier. On the more crazy idea on end of the things I've been working on, there's been the topic of adding RDF semantics to icky wicky which is basically what you do when you have relationships between pages like this page blocks that page in terms of bug tracking or having a wicky trader through it. I start to think about having the whole index DB file as an RDF database because basically everything we state so far in there as far as I understand it is meta data about the pages which lands itself to being stored in RDF and could then be easily queried. The query results could be validated so we wouldn't have the issues of knowing what kind of scan data has changed. And I think that could solve some of the structured data problems or issues as well. But I'm afraid this would be bothering a minor rewrite. Something like you're talking about would be efficient or anything like that. You are right everything that's stored in the index DB. Yeah, everything in the index DB is per page and it's basically a hash from page to information. Is there anyone around who has used RDF in that context so far or with other icky wicky? I've covered the topics I've wanted to talk about. Yeah, that's exactly the thing. Sparkle is the query language through RDF and basically we could still have the regular simple page specs but we could form rather powerful queries toward the index database and have those results printed there and by caching the queries and the results we could observe if a change to the random pages necessary or not. This is kind of automatically done already for some page specs figures out that page spec causes it to depend on it's mail. But it only works for page specs and not for things like page title and other metadata and that would be just the same thing then. If we didn't have the generic sidebar solution we could do for example this on page title substitution with that. Yeah, so since we were thinking about optimizing the index database anyhow, do you from the top of your head know something that has a performance similar to SQLite or something so you don't have to rewrite the file continuously and that would store RDF triples?  Some of them just use SQLite as a back end. I mean a triple store is not something terribly complicated to set up in a database. I thought I'd tell a amusing story about SQLite. I was recently at a small Linux conference and ended up sitting down across from a guy who eventually transpired as the author of SQLite and we started talking about our respective version control, he's also the author of Fossil. So we talked about our respective version control back to Wikis, but he had a much better database story than I did. Is there anyone webmasters of www.divian.org around? You are part of the web team, divian web team. Would you want to switch from WML to Ikiwiki? What would be missing then? With respect to translation, there's a lot of things tailored around how it works with CVS, which is also part of the reason which stores us from switching to any other VCS, but I'm not objecting to any switch. There's a lot of auto-generated stuff in the website which I understand shouldn't be much of a problem with proper tailored Ikiwiki plugins, but it needs someone to write it. We also don't object to switch to Git, but we have to keep in mind that a lot of translators only want to check out the English language and their language and not the complete history and which gets pretty heavy for CVS history for well over 10 years and 30-something languages. So switching VCS from that point of view isn't that easy and also from the generation part. It needs someone to do the work. We don't object to it, but a lot of people have here switched to this and that and when we ask them to help us out to make the switch happen, people turn silent pretty quickly. I will add that while Ikiwiki is primarily a Git-based wiki, it actually now has excellent CVS support from what I'm told I've never actually tried to use it, but I believe that NetBSD or something like that is using Ikiwiki with CVS since they're back end is apparently managing okay. I'm personally absolutely not objecting to Git, but there are some constraints which need to be kept in mind if it works for people. I just get to my mind that there was one thing that I would have liked to present which is basically another way of extending Ikiwiki I figured out. The thing is when you do templates, there's sometimes the need to do something more powerful than just template substitution, but usually that comes with either very complex nestings of directives or nesting of inclusions or writing your own plugin which then again is under a completely, even if you write plugins for a particular Ikiwiki instance, they are not managed inside that wiki, but they are independent of it. What I came up with for basically in my level servers, Minecraft wiki was, where do I have it? Did I just, okay, maybe I forgot to link it there, is having plugins that are written as Ikiwiki, having templates that are written in Python instead of just plain text. The main thing of course is our security considerations, but given there is now PyPy Sandbox in Debian which can be restricted down to not being able to do anything apart from reading standard in and out. Always very leery of language sandboxes and I don't know if I wanna go there. Are you sure that it's restricted to this? Are you sure that it couldn't be used to reform side channel attacks against some other thing on the service just by looting the CPU and looking at the intervals between stuff or who knows? I mean, I'm very leery about putting a general purpose language into Ikiwiki. Let's see, I'm roughly as confident in PyPy Sandbox than I am confident in the JavaScript engine in my browser. And that's how confident it is? That's how, and that's, that amounts to, it's a reasonable assumption that it should, that if one managed to break out, there's a serious bug behind it as there can be a bug everywhere else that can be exploited.  I am, yeah, and so you're still stuck with the current, not so great templates and people have talked about putting in new ones, but I'm never sure if it's actually better if it's just new. I didn't understand what- People have talked about switching to a different template system, but I'm never sure if it's actually a good switch or just something different. Well, one thing that was a bit annoying for me is that I had a nice wiki and I could actually hire somebody to translate it for me using the PO files and just set here is GTranslator, please do that. And then I tried to hire somebody to write some CSS for me or a template and it was completely impossible. So I for one would appreciate something that's a bit more in line with modern templating systems just because I don't have to do all the work myself. See, the only modern templating system that I know is Yassad's, what's it called? What? No, it's not Yada? Yes, thank you, Shakespeare, the Shakespearean templates which are type save, compile, crazy templates, which are great but are not appropriate for a key wiki. So I don't know modern templating systems and whenever I look at a templating system I always feel like it's not right. I've never seen one that I've been happy with. So. I mean, there is PSP. I think that if we had a built in language, maybe making it be JavaScript could be a much more web two point whatever we're at thing. More ideas or topics to bring up? One thing which when I talk to people about using icky wiki and try to make them use icky wiki, the really the hardest bit is it's really ugly by default. It's really ugly, let's not mince words. And it's really hard to make it pretty. I mean, you know how hard it was for me to make one particular site where you help me but else it's really ugly. So I know I totally failed to make it even a tiny little bit less ugly. So I think it would really help if anybody who has the skills to do this, I know nobody who does, would be able to attack it from this side because normal people, let's call them that, will not ever start using icky wiki as long as it's, yeah, as ugly as it is. That's, and it's a real pity because it's powerful, it's simple, it can do insanely complex things. But people won't start using it until such a point where you see a need to use it and it's always, at least in part about being pretty and appearing to be easy and appearing to be user friendly. And it doesn't appear to be easy and user friendly when you see a very basic web interface. Is that better? Is it better? Not really, I mean I stole one myself, yeah I stole one of those, the one by, yeah the blue view one, it's the one I stole. I mean having a bootstrap theme would help somewhat, but I think the larger issue that you're getting at is that icky wiki was developed for and by geeks who don't mind understanding this stuff and you can slap a pretty interface on it but that's really not gonna get the crowd who is on their Mac and has five seconds total attention span to devote to setting up their wiki and then moving on to the next shiny thing. You know there's a lot of, I'm not exaggerating. You know there's a lot of systems that do better and this is not an area that I personally feel that I need to work on and if somebody wants to make it really easy, find some way to make it easier to set up, great. I am interested in making it look prettier just because I like the default look but I understand why you don't want that to be your look and did I change, the default icky wiki site is still using the default look good. Yeah I, you know, I realize that that scares some people off that I think that that's okay. Are we just talking about better CSS or is there something deeper going on here? I mean you have to know how to use git, you have to know how to clone a git repository, you have to realize that you don't just when you clone a git repository, you're not cloning it from github.com with the repository that you created there and edited the page in line in your browser and so there's a few basic pieces of knowledge that you have to know. No I wasn't, I was talking about CSS mainly. I wasn't talking about all the technical background. At least in my, yeah, I'm really trying to get people to use git based tools and one common theme is people who are comfortable enough with the technical side. They are willing and able to do all the technical stuff but they want and need something which is pretty simply because when they show other people they don't want to be told hey your website is ugly. So it's really mainly about the end user look about CSS about whatever to make it. I think that's completely solvable. I mean would you feel if it had a bootstrap look and it was fairly well integrated you could say for example add tabs to the top of the bootstrap thing like you normally see on bootstrap sites and that kind of thing would that be sufficient or do you feel that it would need more prettiness than that? I think it wouldn't need that much prettiness but it would need a common web accepted level of prettiness. I mean when you look at random websites most of them aren't very special at least to me but they have a somewhat higher level of prettiness. Can you find the bootstrap example there? It should be in the theme market I think. Also I can, I mean I can totally, I have like at least probably on my mind find five icky wicky websites that I find really pretty. Most of them that I know had to hack on the templates also because they were French but I can still like show you what you want. Yeah sure and put them up on the template please. One thing that, one thing I've thought is if we push at least the admins of the site to jump through these hoops to stand on a better and cooler technological background I thought it's a bit of a shame that we don't use this information that we have so well. So icky wicky will tell me when the page was last changing it but what I see is that we have not enough information to show a nice history like media wicky does we could even show a nice branching and merging graph like github does out of the box. So how do you feel about icky wicky digging through the history to extract that kind of thing? Well in a way I like keeping it simple and just saying here's how you can integrate it with GitWeb or with your browser of choice so that I don't have to worry about maintaining all that stuff. On the other hand I think it'd be great if there were some kind of a plug-in or something that could go back and render historical versions of pages on the fly and be able to browse back through the history and that kind of thing. So that's kind of a dichotomy. I don't know which side of it I come down on. I think that if somebody took the work to make a plug-in that did something cool with a Git history I would probably say okay fine I'll put it in as long as it didn't have a lot of crazy dependencies or something. I think you're very right about not taking advantage of all this and my original idea with a KiWiki or with what came before a KiWiki was to have probably a dynamic Wiki that allowed you to actually fork and traverse different forks and go back and forth and all that kind of thing. You know on the fly and see the site as it was at that point in history and so on and take full advantage of version control. So but moving to a static site kind of took a little bit of that away. So, okay. Are you still trying to show other themes? So all of these are like KiWikis based. You have JavaScript, do you activate it? Could you just activate JavaScript on this one? Yeah, just this one, this is all. To show you, this is one trick that I came with so it's a radio show and you still don't have JavaScript anyway, do you? Maybe it's broken, but so basically you have JavaScript that finds the MP3 links and replace them with an online audio tag. So actually you get to get the radio show. Can you back up to the others? That's one. That's J-Y-I-S-P, it's also, this is a quickie. This is a quickie. I want to show you already. Griggy, on a very, more or less same people than I think, but he's still like a quickie. One thing that is nice was submitted was the issue going on the front page. Probably there is a, yeah, you still have JavaScript deactivated. So there's a calendar here that is actually working with calling JavaScript to display a calendar in a way that is actually a feature, no. Yeah, because otherwise it was too slow to rebuild every single page, every time the calendar changed. So that was submitted I think, tales. The biggest EQE website that I've ever been as far as I understood, because they were like, several thousand of pages of comments so I mean, I should give you a quick tell. Before we disabled our web forum, like a month ago we had about 3,000 threads and something like 10,000 comments and rebuilding the whole website to update the site bar that shows the latest release version was a bit slow. We had talked earlier about the multiple sidebar things is kind of one of the blockers to it is that I know that people are gonna get into this kind of situation with other things. If it has the ability to have a header and a footer and all that they're going to realize that oh if I change this, it takes us to rebuild and it takes forever and so we need some kind of solution to that. Yeah, but it already does with the sidebar so. Well yeah. And actually people are putting stuff in the sidebar which is general. That's a big problem. I have to support, you know, I often have to help somebody who tried to put a calendar in there or something that didn't fully realize the implications of that and there really ought to be a better way but so far I haven't found it. I think the, are you running with Poe on all of your, okay. So it's only a few pages that are using Poe and then the rest was just a scalability of the index file probably. Yeah, I think we're a little out of time for people who want to join other talks. Are they, let's say final questions at least for the part that's being recorded or that's the general official Debcon 13, Ekiwiki, POF. So that's, thank you Joey for answering many questions. Well thank you for organizing this and putting it on. Thanks for joining here.


Every herd, every herd mathematics by, ever heard math, oh yeah mathematics by, dude mathematics by most of that, I took that track and I cut it into one of my math videos. Let me show you which one, one of the first math videos I put out. Let me show it to you. I'm proud of that one. Which one is it? The real number set I believe. Here let's go in here, let's go content, real number set, real number set, there it is. I think this is the one that has mathematics playing with music. This is a video, if this video is blocked, yeah this video is blocked, I believe this is most stuff playing in the beginning. Here let me see, let me see, let me see, let me see, let me see, let me see, I'm just going to do a search, I hope I, sure what it is, wait, wait, yeah this is it, check this out. It kicks in, hold on, it kicks in, you'll see what's playing. The music begins at 222, I put this video out on 2007, right, I put this video out on 2007, mathematics, it's all mathematics, right? That's the third video I ever put out in regards to creating math content, okay, and I cut it to most thefts mathematics at the beginning, and the music kicks in at around 220, okay it should have been 420, but 220 it is.


Replay is an attack in which data is maliciously retransmitted by an attacker. Assume, for example, that Alice asks Bob to pay 100 euros. The request is sent to Bob, but the attacker is able to intercept that request. The attacker retransmits the message again, possibly as part of a masquerade attack. Bob receives also this second message and believes that now 200 euros should be paid in total. Replay requires the ability to intercept data, for example, by using a wiretap, as well as the ability to masquerade as Alice while resending the message to Bob. Protection against replay attacks is generally possible by including in every message a sequence number. Since the IP protocol may deliver packets out of sequence, replay protection algorithms may include a window mechanism to accommodate that. In some cases, such as the SNP version 3 protocol, replay protection may be based on timers.


Are you particularly concerned about the blowout that we've seen this year compared to last year in the Road Toll over Easter? It is significant. This Easter Road Toll is at six and last year we had two. So it is concerning to the police. We had a highly visible and well publicised media campaign prior to our operation. We told everyone we'd be out there on the roads in force. We are there in force and it's still disappointing and a tragedy to see six lives lost. Aren't you seeing DUIs down in the speeding down low? The figures for speeding this year, we've detected in excess of 14,500 people speeding and I think that's down possibly 800 from last year or thereabouts. And our drink driving, we've undertaken in excess of 91,500 roadside breath tests and detected 427. So that is down from last year. They are still two of the fatal four and contribute significantly to fatal and serious crashes. So we will continue to police that and we'll continue to take people off the road if they continue to undertake that behaviour. If you're looking at those two and they're both down, is there a sense that it could just be luck or bad luck? Last year was particularly lucky year or this year is just an unlucky year. If you're down on the two of the major four, why are we up on the others? Well, the investigations into the fatal crashes are still continuing and I don't know the specific causes at this time. I don't know whether it is drink driving or alcohol involved or speed involved at this time. So we'll undertake those investigations, ascertain what the causes were, and then if we need to realign or target those behaviours, not just next year, but continually, then we'll do that as well. I realise you can't talk to this person. There's a perch accident, but given that several of them at least seem to have involved single vehicle rollovers on fairly long stretches of road, are you concerned about fatigue and the issue of driver retention? Fatigue is again one of the fatal four and that is a significant, again, as I said, a contributing factor to crashes. It's a big state, Queensland. People do tend to travel long distances and over long periods of time and we are out there to try and stop people and pull them over and make them aware of what they're doing. There are driver-reviver stops throughout the state. It's well publicised. We try and tell people to pull over every two hours and have a break. Distractions, we try to tell people to concentrate when they're driving. Don't get distracted. If someone else is in the vehicle, they can use the maps or look at the satellite navigations or answer phones. It's a serious business driving. We want people to concentrate while they're doing that and get to their destination safely. From that crash, there's been two people, there's been two deceased, a 38-year-old female, the driver of one of the vehicles involved, and a 23-week-old unborn fetus has also passed away. The mother was injured and she's lost her unborn child. How is the mother? I don't know the information. Obviously that case is tragic. Are you going to keep getting figures like this? Every death on our roads is tragic, and that's why police and other emergency services are out there 24-7 day in and day out, regardless of the weather, trying to stop these crashes occurring. It's a tragedy to the family. It's a tragedy to every family when someone loses their life. It's a tragedy to their community, their workplaces, and it has a significant impact on everyone, and also on the police and emergency services who have to go and deal with these crashes day in and day out. And again, that's why we tell people that we're out there. That's why we tell people not to speed, not to drink drive, drive to the road rules and the conditions, and hopefully they'll get to their destination safely. People tonight who might be driving home from a regional area of the state, do you think those are areas of particular concern for the distance? We continually get messages out every day. We're getting messages out about what's happening on our road network. We know that there's people driving today that will be driving some distances to return home after a holiday period. And again, we ask them to just stay safe, be patient, and follow the road rules and the conditions that exist, and hopefully they'll get home safely. Craig, with that little, I guess, when they're out driving, not to themselves, think about what a crash could do to other people? That's the point that the police don't... We can't comprehend. People undertake reckless and dangerous behaviour, and they put none of themselves at risk, but other people at risk because of their own behaviour. It's selfish, and they're the people that we want to get off our roads. We've impounded 85 cars over the Easter period, so that's 85 vehicles that people can't use to undertake this reckless and dangerous behaviour. You can't get more. But there's a lot of innocent people dying in road crashes and get seriously injured in road crashes every day that is a result of other people's reckless behaviour, and they're the people that we want to get off our roads. They're the minority, but they do cause substantial tragedy to other road users, and other Queenslanders. Do you have a sense of that? Will that be our anti-hooning offences, which is they could be driving illegally modified vehicles, speed racing, drink driving, driving unregistered or disqualified, those sort of offences. If you're continuing to see drivers two-hour barrier, is the time of the lease started to look at the mandate in those two hours? Would you call for more powers to be able to control them? It's very hard to determine how long is enough in fatigue. I mean, there's studies that say that you can bank up sleep. So you can bank up sleep and then you will be less fatigued if you know you're going to have a period where you have less sleep. It's very hard to put a figure on what's a time limit that would make someone more fatigued than someone else. There's a lot of physiological issues that come into effect with fatigue. So it's very hard to actually determine at what level people should. That's why we used the two hours driver-reviver message to have a break and even change drivers if need be. Done? Done? Thank you.


And Fabio, my friend from Twitterland. Hey Fabio, good to see you again. Good to see you Dave. How's it going? Going well. Roger. Good to officially shake your hand. Pleasure to see you and meet you. How are you guys doing? Great. Doing great. What's happened at the show for you? Seen a lot of good stuff, geeking out? Yeah, just hanging around with the cool guys in the industry. A lot of networking. A lot of networking. It's been a fantastic event from the ability to talk with the customers, like myself, on the bloggers like myself, and then get to talk to the engineers both from Compellent and Dell. Ten sessions, it's been a fantastic event. Yeah, I've been here a lot, but I had a chance yesterday. We ended early and I spent some time in the VDI session. It was great. A lot of good questions, a lot of hands-on. You know what I love about it is, you know, you had some Dell guys up there talking and they're the experts and users were asking questions. The great thing was you had other customers saying, hey, there's another way to do that. I heard about a tool. Lakeside Software has another tool. What about this tool? How do they compare and just peer-sharing information? It's all about sharing. Of course, we love that because that's what Wikibon is all about. What's hot these days? What's on your radar? We're already watching closely the integration efforts by Dell to integrate everything that they both during the last two years, I mean, Exynet, Ocarina, now Compellent, and they're putting a lot of effort to integrate everything into a kind of single platform that can scale down from the SMB stuff made by Equalogic, even the Power Vault stuff, up to even the enterprise space with big installation, big federally the stuff with Compellent, live volume, stuff like that, which is pretty impressive. So integrated, all working seamlessly. Hey, wait, wait, wake up, tension, tension. Do we think that's actually that Nirvana that you described? Is it, but it sounds hard from an integration standpoint. We've seen NetApp trying to integrate Spinnaker for over seven years. We've seen EMC essentially give up on integration other than some lightweight integration and some hardware integration. I mean, that's not fair to the engineers that are working hard on it, but I mean, in terms of true integration, it's hard to come by, isn't it? It's really hard. So from a practitioner's perspective, why do you want it? And from a practical standpoint, do you feel like that it's worth it for a vendor to do that? So where's the balance? It is worth it. Maybe you just don't need a titanic effort to have a really good baseline from the operating system, scale that for them from the SMB stuff up to the enterprise stuff on the same level, just like NetApp does. With a single platform tap that's scaled down from the Fast 2020 up to the 6000. Maybe they can retain what they're doing now. The equalizing stuff just ice-cazi up to a compelling which is multi-protocol. But they need to have a single pane of glass all across, just more like the EMC approach to the Unisphere, which is in my opinion quite good. It's not perfect, but it's quite good. Okay, so that level of integration from your standpoint adds a lot of value to the organization, is that right? I think we're seeing it today. Let us play with the code name Spartan product, the FS7500. We got some hands-on with it. And I'm a hands-on guy. I like to get in there and get dirty with it. How's this work? Exactly. But we saw it with the same interface as the ecological interface. It's second nature. There's just a new NASDAQ, you go on, you create a new SIFT for NFS share, and you're pretty much done. Ecologics always have a good job of being very streamlined, very simple interface for the admin that just doesn't have the time to be in there all day. And I think that is something that they'll really get at doing across the board.  Yeah. And so let's talk a little bit about that. Maybe your roles. Fabio, let's start with you. Your organization, your blog agenda, the things that you're covering. Talk a little bit about yourself. Yeah. I started blogging like three years ago now, and we started mostly to, you know, get the world out, mostly in Italy because we still have, you know, we're still lagging behind the other countries as far as technology is involved. So we're trying to spread out the world for what's new, what's hot in the industry, mostly for storage, because, you know, it's, it was not so developed in Italy. We tried to do that, and we mostly succeeded in that, and we tried to, you know, expand our vision to English language. So across the border from Italy, Italy started blogging in English to attend conferences outside Italy, and it's been quite good. I mean, we have this blog which is called Juku, J-U-K-U.IT, which is both in English and Italian, and we're two, I'm one of the guys, the other one is Enrico, which is, you know, now involved in another conference right now. Is he on the West Coast? Yeah, he is on the West Coast. Yeah, close to the West Coast. I think I saw him this week, I was in Vegas, but half your tweets are in Italian, I love it. Yeah, I don't tweet so much in Italian because there's no big audience for Enrico. Enrico does a lot of tweeting, actually. And that's for the blogging. We also have, me and Enrico are a small company, it's a very, it's a center part of it for the Italian compelling and for NetApp too, actually. And we specialize on, you know, storage and utilization only, provide consultancy to, you know, organizations that ask us to maybe validate infrastructure or even design from scratch. And it's, you know, we're pretty specializing on that and we're pretty successful. Good space to be in. You know, you're talking about conferences outside Italy, I think you should have more conferences inside of Italy so we can come visit you. Sounds like a good thing. What do you think, Roger? So, Roger, take us through, you know, so your activities and what you do. Sure, so, I'm an admin by day. You know, I work at a race services group, I was saying Cloud of Minnesota, I started out in Minnesota, and so I do the VMware day-to-day storage, compelling customer on that side. I've really taken my time to put the research that I do as an admin out of my main blog, vroger.com, right? I kind of do an admin view on that space. And, you know, what I've done also is, is we're kind of centrally located in Minnesota. You know, I've started doing, for the last three years, computer user groups, the VMware user group, vmug format, to pull in the rural areas, customers from the healthcare, from the small, medium business. So, these are vmug-like? These are vmug-like. This would be an unofficial vmug, right? Your fork in vmug? Yeah, yeah. And just as of this weekend, I'm now a co-leader in the Minneapolis user group, vmug. So, why do you do that? It's people, there's demand, people, and vmugs are only, what, every six months in the area? Every quarterly. Is it quarterly? Okay, yeah. But they're not always in the same, they're not in the Twin Cities necessarily, right? You might have to, or maybe they are. In our case, yeah. In New England, it's like... In New England, it's like... Yeah. And I think that some of that is, you know, it's a little bit flexible, right? Actually... We do the same nearly. Actually, I'm one of the founders of the vmug. It just started, like, six months ago. Yeah. And we started doing that. And we're facing a lot of issues in choosing a place to do the event, the vmug event, because... That's so hard. Florence, Rome, Milan, where do we go?  And out of their own pocket. Yeah. So pretty dedicated. Yeah, yeah, sure. They're pretty keen. It's just a little challenging on the aspect that we're trying to find places to house anywhere from, you know, seeing as low as, you know, 25 to 50 people all the way up to 300, 400 people depending on the location. You know, someone's got to pay for the room, the refreshments and that type of thing. Plus, you've got to find vendors that are willing to help you talk and, you know, show them a product offer if you've decided to do a discussion, you've got to have topics. So you can just both take it on your days, you know, if you're busy already and stuff like that. But, I mean, the networking is great, you know, you learn more from those events from each other than anything, you know. And you'd have RogerLund.net too, right? Yeah, so it's an IT blog that RogerLund.net is my main blog site. I created VRoger as a redirect, right? Yeah. It's because you try to explain that and it's just a multiple subject. Yeah. Also, here about six months ago, I created vbrainstorm.com, a little more design-oriented. I just got done doing a whiteboard of Commvault, that type of content. It's more someplace that doesn't get refreshed by this fast, you know, because you get a blog, it can get a lot of content you're trying to search through it and stuff like that. I wonder if we could talk a little bit about, Fabio was talking about the value of integration before, and you said there's clear value to you guys as practitioners. So one of the things we've been looking at with VKibon is the integration points around VMware. And of course, you know, I'm not a practitioner, I'm not really a technologist, but, you know, I'm in the business. You hear about VAI, you hear about VADP, you hear about change block tracking. Those clearly have impacts on storage and backup. And then, so we dug into it a little bit. We found there's so many points of integration. Like, I think we counted 30 or 38 points of integration, pathing. I mean, just the list goes on and on and on. Help us squint through that. You know the list I'm talking about, right? It's endless. And it's a big thing for vendors to have to go right to that, and VMware has to support it. How important are those capabilities to you guys as practitioners? Fabio, you can start. Roger, you can chime in. In my case, they're quite fundamental to that, because if you try now in 2011 to, you know, build a solution around VMware, you know, a large one, maybe not a large, but starting from 100 VMs upwards. And you don't have integration points between the VMware and your storage. This is not going to be easy to manage. It's going to be complicated, way too complicated to manage. And if you spend, say, 10 hours a week to manage storage, related to VMware, if you have at least a couple of integration points, VAI, maybe an integration with vCenter, you're going to spend maybe half of the time. Imagine scaling that up to 1,000 VMs, 2,000 VMs, 10,000 VMs. It's going to be, you know, exponential. Right. So it's fundamental in 2011 to have a really strong integration between VMware and your storage. And, Roger, different, different, so you guys know best, compelling, equal logic, or mostly compelling. Mostly compelling. Mostly compelling. And you resell NetApp. We resell NetApp, but, you know, we do consultancy for every brand of storage. Any, so, yeah, we're storage-agnostic on that. Okay, so you're the trusted advisor. Yeah, I am. Okay. And, Roger, your specialty is similar across anybody's area. Well, I've got to have a pretty wide understanding of the storage technology, just from the user group side of things, right? So, and I wouldn't be a rigid blogger if I didn't, you know, kind of understand what's going on out there. But my probably strongest roots are NetApp and compelling. It was prior to NetApp customer. So, different vendors have different approaches to integration, right? So EMC is like, we got to do it all. We're going to put a gazillion people on it. And we're going to market that. And it's very effective, right? When you talk to a practitioner, it's different. You know, we don't have to go into them because I couldn't and we don't have time. But different capabilities have different value. Some of them mean a lot. Some of them don't mean so much. Other suppliers, maybe you don't have the resources. Maybe they get the SDK later or whatever it is and they focus on sweet spots, right? What's the landscape look like to you? I mean, is having that huge list like EMC does, is that, you know, the right approach? Is it maybe a more targeted approach makes sense? I mean, what's your take on that? I'll give you the answer that, you know, it always doesn't mean it depends, right? I mean, it depends on a lot of customer needs. If you're a customer that relies, as a budgetary standpoint, on professional services and you like to have a proven vendor relationship that you rely on them heavily, maybe EMC, it makes the most sense. If you are a lean IT shop and you've only got a few minutes a day to manage storage, it makes sense. If you're somewhere in between, you know, in that app or, you know, it makes sense. And I think really what Dell's tried to do, excuse me, in their portfolios is to offer multiple areas at the end of the spectrum. You know, Compellent has got some enterprise class features for sure, you know, it's a little more hands-on, it's a little capable from, you know, one end of the spectrum to the other. Ecologic has got lots of products that stack in different verticals, both with a real ease of management focus, right? And then they've got a lot of SMB products, also, the one thing. My sense is, and I wonder if you could, you know, tell me if I'm wrong. My sense is Dell is catching up, in part because Compellent was a smaller vendor that didn't get the VMware love that it's going to get now with Dell. So it's now got to, we've got to give it some time to catch up in that integration. If you look at them now, you see that Ecologic is much more about the position on the VMware integration because they got, you know, VAEI, they already got the vCenter integration. Yeah, Compellent has that too now. The vCenter. Well, that's a good starting point, right? Yeah. You know, VAEI, for example, VMware was very judicious about how it even made SDKs available, you know? Yeah. We know that speaking with your budding guys, before the acquisition was, you know... And, of course, EMC gets it first because they own it, and they're big. So there's a business justification, of course they didn't have. So now that's going to change for Compellent because now that they're part of a whale, you know, VMware's going to say, well, they just cut the line, didn't they? The biggest OEM for VMware. I mean, it's... Well, I think that you see, you know, whoever's the most innovative, right? Whoever can change the fastest to the adaptive environment is always the top player for the most part.  Yeah, so, and we're kind of in the early days of this whole integration play, right? I mean, I remember I was at VMworld last year, and we probably had 70 guests on the queue, and probably half of them were practitioners, and I would ask them, and there were more VMware practitioners, not so much storage guys, and I would ask them, you know, what do you think about VA AI? What does it matter to you? And they go, I don't even know what that is, you know? And of course, now they know, right? They're seeing it, but so, and of course, the whole vendor community at the time was going crazy, so we need some time to sort of absorb all this stuff. The question I have around it is, where are we at with VMware and storage, and where are we going? Is it very early in the game? And everybody knows VMware virtualization breaks storage, right? So we wake up to that and say, I'm going to solve this problem. Where are we in solving that problem? Where do we need to go as an industry? Well, actually in the early days for that, and this is going to change pretty soon with the new vSphere. vSphere 5 would be, you know, a pretty good leap in advance with the storage integration with VA AI, the new VA AI. So we'll probably see more focus on that. From VMware, because they sorted out most of the other stuff. They know how to virtualize RAM effectively. They know how to virtualize CPUs effectively. And storage is left as the last big thing to sort it out correctly. And this is going to probably change with the new release. And it would be the new starting point as it was the third version of VMware. The VMware BI 3 was back in 2006, I think. That was the starting point for VMware inside the enterprise, the more enterprise level stuff. Before that, VMware ESX2 was used mostly for test and development deployments. And the tree got, you know, the breaking point to sell inside the big enterprise to virtualize tier 1 apps. People started to virtualize tier 1 apps inside VMware at the time. And probably the new vSphere 5 will be where the storage becomes a first-class citizen inside VMware. Do you think, Roger, that storage will eventually become invisible when it becomes that first-class citizen? I think that, you know, you've got a lot of interesting technology out there, right? And everybody's trying to figure out what to do with it.  And I think that, you know, some part of the VMware side sometimes and the storage side, we're really trying to figure out how the household stack fits into all this, you know. Once they kind of figure out some of those techs and how to push them together, I think that what we could see is the HA and the storage side. It's going to be more unified storage hardware for the vendors. The one that's VMware where you can go, it'll migrate over with your VMware infrastructure and some of the cool resources. It'll be cool to memory. It'll be cool to CPU. It'll be cool to storage and tiered. And, you know, it's more fluid in that direction of words coming out, right? But what I'm trying to say is that the storage vendors are doing some self-discovery, trying to figure out how to connect these technologies together and the software vendors are trying to figure out what the storage vendors are doing, right? And so as soon as that mesh, that connectivity comes together correctly, we're really going to see some product movement from totally new directions. It's going to be exciting time, you know. Won't that simplify storage, accelerate the adoption? So my question around that is, you know, the big advantage that compelling and equal logic have is simplicity, right? And clearly, they're marketing, their architecture, everything. They looked at the market, they said, okay, EMC has all this to share. They popularized the whole business. They created the storage business. We're going to go after that base with a simpler product. If we can make that stuff invisible, because EMC's got the, you know, some of the most complex products out there, they play to their advantage in a way. And does it diminish the advantage of a guy who's like, compelling and equal logic? And how do they keep pace? How do they innovate? I think, you know, it fits into the cloud, right?  You know, if it requires vendor integration every time that you move storage back and forth, it's not smooth enough. So my translation of that is with VMware, of course the EMC owns VMware, they can brute force it, spend a lot of money on it, but there's so many places where it's just not practical to do that. So a simpler architecture is going to adapt in different places faster. So there'll always be places where the little guys can tuck in. They're not little guys anymore, but you know what I mean. Yeah, eventually they'll be calm. There will be another wave of storage startups, I think. Yeah, there's some funding going on. There's a cloud on-ramp object store, you're seeing some startups there. Where do you see the new innovation? Go ahead. Well, I think we saw some of the way we could be cloud directors in some of the new directions that the industry is going in.  I mean, if we can't do VDI throughout the businesses, we can't speak to the cloud. If we're tied physically to a desktop, it's not something that's a easy transition. If you don't have all your documents, you don't have all your favorites, if you don't have your background, all that stuff follows you where you go. I mean, that's really what the ultimate goal is. You know, it's to provide seamless integration from your desktop, from your server, into the cloud, out of the cloud, into your private cloud. How about mobile? I'm almost feeling desktop, it's an outdated term, you know? Yeah.  We got to really rethink that model.  And I think Citrix really understands that desktop virtualization space better than VMware, frankly. And so, is mobile going to change the sort of whole VDI discussion from one of maybe it's virtual device to virtual, or virtual desktop to virtual device. But today it's, well, the use cases are narrow, the TCO is not there, but if you adopt and embrace mobile, does that change that whole equation? What do you guys think? Well, I think it does in certain aspects, and I think a lot of it is us. You know, how are we used to use it at PC? Us users, yeah. Us users, we have a mouse and a keyboard, and that's here, right? I mean, in order to use some of these products, you have to get used to things like gestures. Swipes, thumbs. Need to overcome, you know.  Right, there's some mental things that we have to do to go through a transition effect with. And I think as that transitions interface-wise, it'll become much easier to do your day-to-day things, not even on a phone. You know, but, you know, we're so used to having a peripheral device that we're using to navigate around, that there's a little bit of getting used to that. I mean, there's no reason that we can't swipe in certain directions to do mouse gestures, right? But we just don't think in those terms. You know, it's ironic about that, Roger, is when you think about how we got into that mindset today of the mouse, it really came from Apple and the Mac, and then Microsoft copied that, and there was a lawsuit later on, and it got thrown out, and of course the rest is history. And now, we're seeing it again. Apple is really popularizing the new gestures, and you can see that, you know, and they're gonna use that for gesturing. And I think that the millennials are all gonna come out of the, you know, they come out of the womb doing this, right? So it's gonna be interesting to see. It's probably the easiest for the youngest generation to, you know, always do something, you know, the way instead of relearning, it's just like language I can learn early.  No. It's second nature, you know. No, but I didn't think about slash file retrieve. No problem with it. Right. But we're just not used to doing gesture-based stuff. So a lot of it is just, you know, I think we're on the box a little bit. And how do you get that through to, even if you decided that there's gestures that mean certain things as a standard, what's the right way to approach the people with that? You know, as an advertiser, as a marketer, as a train, there's lots of different things to think about that. SST, you brought up before. SST Flash is something that we've looked at a lot. We've looked at the consumer market. I really remember the first iPods had disk drives in them, and that's gone. And it seems like Flash is, you know, moving further and further into our space, the enterprise space. Fusion IO's got an IPO.  We had STEC on yesterday, and they've obviously done very well in their markets. They're a rollercoaster with their stock, but it's still interesting to watch. We're seeing persistent storage change the game, aren't we? What are you guys seeing in Flash? We touched on it briefly, but is it really changing the game that much and how so? Yeah, I think so.  It used to be every 24, then 18, now it's 12. Xeon's every 12 months, you're right. And you see the, and you plot on the same chart, the, you know, the evolution of disk drives in the last 20 years, and it's mostly flat. Oh, in terms of performance? Performance, yeah. Yeah, you could even, yeah, yeah, that's right. Capacity exploded. Capacity exploded. Yeah, performance per IO went, Yeah. Oh, sorry, sorry. IO's per dense per capacity went down. And we need to find out. Performance went up a little bit in terms of disk drives. Yeah, but just a little bit. It's just, just marginal. And Flash is the next big thing, in my opinion, for that. And I think that what you're seeing is the Flash technology getting to the market, but there's a lot of different characteristics there, right? Some Flash has got faster reads, some has got faster writes. Some has got different meantime to failures, depending on your Flash. And there's cash in the equation, you know. How do you architect it? How much cash do you put versus solid state?  You know, one of the partners was in the VDI session, probably the same one he attended. He said that, you know, customer, the regular component, SAS disk, 45 seconds, which I mean, honestly, it's pretty fast. 45 seconds, you remember how long it used to be, five years ago, desktop to boot up, but by putting two Flash disks, Flash-based SSDs in there, 15 seconds.  And that was a pretty good number of PCs, not just one versus desktop, so. Well guys, I'm sorry, we're getting the hook. This was great. I, you know, I'd love to get cards from you because you guys are some smart nodes and we could, I'd love to keep in touch and share, you know, some of the things we're doing and maybe have you guys on again. You know, really, really great discussion. So thanks so much for coming on the Cube. Thanks for having us.


Live from Miami, Florida, it's theCUBE. Covering IBM's data in AI forums. Brought to you by IBM. We're back in Miami, everybody. You're watching theCUBE, the leader in live tech coverage. We go out to the events and extract the signal from the noise we're here. Covering the IBM data in AI forum. John Thomas is here, a many time CUBE guest. He's not only a distinguished engineer, but he's also the chief data scientist for IBM data and AI. John, great to see you again. Great to see you again, Dave. I'm always excited to talk to you because you're hardcore data science. You're working with the customers and you're kind of where the action is. The watchword today is end-to-end data science life cycle. What's behind that? I mean, it's been a lot of experimentation, a lot of tactical things going on. You're talking about end-to-end life cycle, explain. So, Dave, what we are seeing in our client engagements is actually working with the data, building the models. That part is relatively easy. The tougher part is to make the business understand what is the true value of this, so that it's not a science project, right? It is not an academic exercise, right? So how do you do that? In order for that to happen, these models need to go into production. Well, okay, well, how do you do that? There is a business of, I've got something in my development environment that needs to move up through QA and staging and then to production. Well, a lot of different things need to happen as you go through that process. How do you do this, right? See, this is not a new paradigm. It is a paradigm that exists in the world of application development, right? You got to go through a DevOps life cycle. You got to go through continuous integration and continuous delivery mindset. You got to have the same rigor in data science.  Do you have business KPIs for that? And when the model is actually in production, can you track, can you monitor the performance of the model against the business KPIs that the business cares about, right? And how do you do this in an end-to-end fashion? And then in there is retraining the model when performance degrades, et cetera, et cetera. But this notion of following DevOps mindset in the world of data science is absolutely essential. So when you think about DevOps, you think of Agile, but when you, so help me square the circle. When you think end-to-end data lifestyle, you think chewy, big waterfall. Yeah, yeah, yeah. So, but I'm inferring you're not prescribing a waterfall. No, no, no, it is. Obviously, so how are organizations dealing with that holistic end-to-end view but still doing it in an Agile manner? Yeah, exactly. So I always say do not boil the ocean, especially if you're approaching AI use cases. Start with something that is contained, that you can define and break it into sprints. So take an Agile approach to this. Two, three sprints. If you're not seeing value in those two, three sprints, go back to the drawing board and see what is it that you're doing wrong, right? So for each of these sprints, what is the specific success criteria that you care about and the business cares about? Now, as you go through this process, you need a mechanism to look at, okay, well, I've got something in development. How do I move the assets? Not just a model, but what is the set of features that you're working with? What is a data prep pipeline? What are the scripts being used to evaluate the model? All of these things are logical assets surrounding the model. How do you move them from development to staging? How do you do QA against these set of assets? Then how do you do third-party approval, oversight? How do you make, how do you do code review? How do you make sure that when you move these assets, all of the surrounding mechanisms are being adhered to, compliance requirements, regulatory requirements, and then finally get them to production, right? So there's a technology aspect of it, obviously, there's a lot of discussion around cube flow and ML flow, et cetera, as technology options, but there is also a mindset that needs to be followed here, right? So once you find a winner, business people want to scale, because they can make more money, more times they can replicate that value. And I want to understand this trust and transparency, because when you scale, if you're scaling things that aren't compliant, you're in trouble. But before we get there, I wonder if we could take an example of, you know, pick an industry or some kind of use case where you've seen this end-to-end lifecycle be successful. Yeah, so I mean, it's across industries. I mean, it's not just a specific industry related, but I'll give you an example. This morning, Wonderman Thompson was talking about how they are applying machine learning to a very difficult problem, which is how to improve how they create a first-time buyer list for their clients, right? So, but think of the problem here. It's not just about a one-time building of a model, right? The model needs, okay, you got data, understand what data sets you're working with, what are the data, what is the lineage of that data? Once I have the understanding of the data, then I get into feature selection, feature engineering, all the steps that are needed in your machine learning cycle. Once I am done with selecting my features, doing my feature engineering, I go into model building. Now, it's a pipeline that is being built. It is not a one-time activity. Once that model, the pipeline, has been vetted, you got to move it from development to your QA environment, from there to your production environment, and so on, right? And here comes, and this is where it links to the trust and transparency discussion. Well, the model is in production. How do I make sure the model is being fair? How do I make sure that I can explain what is going on? How do I make sure that the model is not unfairly biased? Right, so all of these are important discussions in the trust and transparency, because people are going to question the outcome of the model. Why did he make a decision? If a campaign was run for an end individual, why did you choose him and not somebody else? If it's a credit card, fraud detection scenario, why was somebody tagged as fraudulent and not the other person? If a loan application was rejected, why was he rejected and not someone else? You got to explain this, right? So it's not an explainability that term has a lot of, it's overloaded at times, but the idea here is you should be able to retrace your steps back through an individual scoring activity and explain an individual transaction. You should be able to play back an individual transaction and say, version 15 of my model used these features, these 100 features for its scoring. This was the incoming payload, this was the outcome, and if I had changed five of my incoming payload variables out of the 500 I used or 100 I used, the outcome would have been different. Now you can say, you know what? Ethnicity, age, education, gender, these parameters did play a role in their decision, but they were in within a fairness bracket. And the fairness bracket is something that you have to define. So if I can play that back, so first take fraud detection. So you might have the machine telling you with 90% confidence or greater that this is fraud, but it throws back a false positive. When you dig in, you might see, well there's some bias included in there. And so then what, you would kind of refactor the model? So a couple of different things, right? Sometimes a bias is in the data itself, and it may be valid bias, and you may not want to change that. It's an, and that's what the system allows you to do. It tells you, this is the kind of bias that exists in the data already, right? And you can make a business decision as to whether it is good to retain that bias or to correct it in the data itself. Now if the bias is in how the algorithm is processing their data, again it's a business decision. Should I correct it or not? Sometimes bias is not a bad thing, right? But you know, it's not a bad thing. So no, because you are actually looking at what signal exists in the data. But what you want to make sure is that it's fair. Now what is fair, right? That is up to the regulatory body or your business to define. Okay, you know what? Age range between 26 and 45. I want to treat them a certain way. And that's if it's a conscious decision that you as a business or your industry is making, that's fair game. But if it is, you know, this is what I want the model to do for that age range, but the model is behaving a different way, I want to catch that. And I want to either fix the bias in the data or in how the algorithm is behaving with the model. So you can inject the edicts of the company into the model, but then as long as, okay, and then appropriately and fairly apply that, as long as it doesn't break the law. Exactly, exactly. Which is another part of the compliance, right? Yeah. So because you know, this is not just about compliance. Compliance is a big, big part here, but this is also just answering what your end customer is going to ask. You know, I put in an application for a loan and I was rejected. And I want an explanation as to why it was rejected, right? So you got to be transparent. I got to be transparent. Exactly, exactly. And if the business can say, you know what? This is the criteria we used. You fell in this range, and this in our mind is a fair range, that is okay. That may, it may not be okay for the end customer, but at least you have a valid explanation for why the decision was made by the model. So it is not some black box making some. So the bank might say, okay, well the decision was made because we don't like the location of the property. We think they're overvalued. It had nothing to do with your credit. Exactly. We just don't want to invest in this. Exactly. And by the way, maybe we advise you don't invest in that. Yeah, right, right, right. The feedback loop is there. But you know, this is being able to find out for each individual transaction, each individual model scoring, what weighed in into the decision that was made by the model, right? This is important. So you got to have atomic access to that data. At the transactional level. At the transactional level. And then make it transparent. Or organizations take banks. Are they actually making it transparent to their consumers? Because everyone is. I know in situations that I'm involved in, it's either okay, go, or you know, but we're not going to tell you why. Everyone is beginning to look into this space. Healthcare is another one, right? Where you guy would love more transparency in healthcare. So this is happening, right? This is happening where people are looking at, oh, we can't just do black box decision-making. We have to get serious about this. And I wonder, John, if a lot of that black box decision-making is easy to not share information, healthcare, you're worried about HIPAA, financial services is so highly regulated. So people are afraid to actually be transparent. Machine intelligence potentially solves that problem. So internally, at least internal to the company when the decision is made, you need to have a good idea why the decision wasn't made. As to what you use to explain to the end client or to regulatory body, it's up to you. At least internally you need to have clarity on what decision, how the decision was arrived at. When you were talking about feature selection and feature engineering and model building, how much of that is being done by AI or things like auto AI versus humans? So it depends, right? So if it's a relatively straightforward use case, you're dealing with 50, maybe 100 features, not a big deal, right? I mean, a good data scientist can sit down and do that. But again, going back to the Wonderman Thompson example from this morning's keynote, they're dealing with 20,000 features. You just can't do this economically at scale with a bunch of data scientists, even if they are super data scientists doing this in a programmatic way. So this is where something like auto AI comes into play which says, you know what, out of this 20,000 plus feature set, I can select, no, this percentage, maybe a thousand or 2,000 features that are actually relevant. Two, now here comes interesting things, not just that it has selected 2,000 features out of 20,000, but it says, if I were to take three of these features and two of these features and combine them, combine them, maybe do a transpose, maybe do an inverse of one and multiply it with something else, or whatever, right? Do a logarithmic approach to one and then combine it with something else. XOR, whatever, right? Some combination of operations on these features generates a new feature which boosts the signal in your data. Here is the magic, right? So suddenly you've gone from this huge array of features into a small subset and in there, you are saying, okay, if I were to combine these features, I can now get much better prediction power for my model. And that is a very, and auto AI is very heavily used in the Wonder Woman example, right? In scenarios like that where you have very large scale feature selection, feature engineering. You guys use this concept of the data ladder, collect, organize, analyze, and infuse. Correct me if I'm wrong, but a lot of data scientists' time is spent collecting, organizing, they want to do more analysis, and so ultimately they can infuse. Talk about that analyzed portion and how to get there, and what kind of progress the industry generally and IBM is making to help data scientists. Yeah, so analyzers, you know, you don't jump into building machine learning models, right? The first part is to just do exploratory analysis, you know, age-old exploration of your data to understand what is there, right? I mean, people jump into the sexy bit first, and it's normal, but if you don't understand what your data is telling you, it is foolish to expect magic to happen from your data, right? So exploratory analysis, your traditional approaches, you start there. Then you say, okay, in that context, I think I can do model building to solve a particular business problem, and then comes a discussion of, okay, am I using neural nets, or am I using classical mechanisms, am I doing this framework, XGBoos, or TensorFlow? All of that is secondary. Once you get to exploratory analysis, looking at framing the business problem as a set of models that can be built, then say, what technique do I use now? And AutoAI, for example, will help you select the algorithms once you have framed the problem. It says, okay, should I use light GBM, or should I use, you know, should I use something else, you know, should I use logistic regression, whatever, right? So it is something that the algorithm, the algorithm selection can be helped by AutoAI. So, John, we're up against the clock. Great to have you. Wonderful discussion. Thanks so much. Really appreciate it. All right, good to see you again. Yeah, same here. All right, thanks for watching everybody. We'll be right back right after this short break. You're watching theCUBE from the IBM Data and AI Forum in Miami. Right back.