Okay, I guess we can start. So welcome everyone to this Debin mobile buff. Initially I had not planned to do it because not much had changed since last year, but because we are several people that were discussing these topics and yeah, we had still some changes since last year so it was just a good idea to refresh. There's a Gobi document mostly prepared by my peer attendees in Debin mobile and I wish this could can be a buff, so if you have something to say just raise a hand, we'll give you the microphone and the goal is I'm not here to present things, I'm here if we can somehow create a motivation for work to be done and instead of good discourses. So the agenda is to have an overview on where we are so that we are here to keep Debin relevant for mobiles. I think if you are here it's because you are somehow convinced that it's a topic that is very interesting for Debin and that is currently not well served by free software. The intention is then to review changes since last year and what we should do now. So inside Debin you want to present or I just click through. Okay, so the EFL stack, Enlightenment stack was mostly updated to the recent versions. The FSO which is the networking stack that was into OpenMoco upstream work with us to get their recent release into Debin so we also had an update into Debin. There are various people involved in Debin mobile that bought some virus devices and the hope they could run Debin on it. It hasn't been successful as far as I know. Another achievement was the Debin mobile email list. We had several discussions on Debin Devil and then on Debin project and whatever to have this list created which is Debin-Mobile at least at debin.org. The discussion was also around what this list should do because we already have lists for kernel discussions. We also have different lists for everything that is in between and the focus of this list is mostly everything that is presented to the user in terms of user interfaces and stuff but is not supposed to concern how do I build a Linux kernel for this or this device. So the list was created I think since last year. Since the moment it was created it has seen something like 25 to 30 mails so it's not a huge success. Not many discussions have happened there and some of the mails were just not at the right place at least not in the place as how we saw it. RC also opened which is Debin mobile on OFTC. We have mostly poll doing Twitter robot for us and pasting comments or URLs with relevant information from time to time. And I think anyone wants to comment on the thing? I didn't want to speak but I'm still speaking anyway. Outside Debin, the GPU driver reverse engineering project for our Mali Qualcomm and Dano PowerVR FIMJ 3DSC. So various projects are also beginning to get some power. The Android Linux kernel stuff is slowly merging into mainline as far as I know it's far from complete but there is a work in progress. The KDE community released Plasma Active which is a variation on the Plasma desktop that is installed by default on Debian KDE which is aimed at finger interfaces and tablet style interaction with Debian as far as I know Plasma Active is packaged in Debian is somehow working but not all parts of it probably. And the KDE community has been working on the Vivaldi tablet, you have probably heard of it. It's a supposedly completely free tablet that was released and is to sell with completely free open source stack up to Plasma. The underlying stack is mostly MIR based which is the rebirth of MIGO, whatever thing RPM based but it's a tablet that supposedly runs free software. As far as I know there are still some proprietary blobs but okay. OpenMoco Replicant, FSOS, HR, Synergies and expansion of hardware support. So replicants, as far as I know. Can you explain just a word? So Replicant is a fork of Android to replace all the non free blobs mostly most of that stuff is hardware enablement and they're doing a lot of reverse engineering work to help port Android to devices so that you don't have to run any blobs when you're running Android. That part of that work is also writing libraries so that other platforms can use those libraries to support the hardware as well and that includes FreeSmartphone.org and SHR and Debian or whatever. Cool, thanks. We have also seen the rebirth of the OpenMoco through the GTA 04 platform that is becoming available as far as I know it's a PCB that you have to put into an existing OpenMoco so that it's supposed to fix the bugs that were in the GTA 2 and 3. From OpenMoco, there's also Canaima which is a Debian derivative working with hardware vendors to produce Canaima mobile. I don't know much, but if someone can tell a word about it. Canaima is a sponsored distribution by Venezuelan government and they want to build a Debian phone with based on Canaima, Venezuelan and they are working on it. I'm not sure what else to say about it. Then we have also seen Mozilla starting Boots2Jecco, FirefuckOS, whatever things that Boots navigator and the Migo community that was born after virus merges was closed. Memo is being defunded and virus projects split out from Memo and Migo as a result. And so Jolla, like last week, something like that created a Twitter website to announce some work. We have seen more Nemo, Koryata et cetera, so the whole Deb-based Migo dream just evaded in smoke. They also released Tidzen, which was made by mostly the same people that were doing Migo, but with a complete restart from scratch, involving Samsung Intel, which is supposed to work with EFL, so Enlightenment and the kit repositories indicate that it's Debian. They've been to a heritage, but they have mostly been just putting every package into a git repository with initial commit and not, yeah. And WebOS has been freed. Okay, open discussion. What should we do now? What should, can we put in Debian? What should we put in Debian? Should we just give up now? Yeah. Up to you. Now sit down. Who wants to sit? Well, I think it's very important for Debian to keep relevant in the following years because we, desktop is really losing traction and mobile devices are more and more in the hands of people. And we have the problem of the base drivers and kernel support and binary blocks for 3D acceleration and all these kinds of problems, which is particular to each specific device. So that's probably have to be, not sure if some place like Linaro or some other foundations or institutions can deal to solve that problem. And I think Debian should maybe provide a way to integrate those pieces easily but not provide them because it's not compliant to the Debian software license. And also then we, the main problem with the OpenMoco has been the UI. So I think it would be nice to pick up some project upstream and bring the UI bits so we can use on mobiles. It strikes me that one of the major problems with putting Debian on any mobile device is the howler. We just don't understand how to interact with the hardware. A lot of devices come with Android. Can we regard Android as actually a Shimler under which, within which Debian services can run? If you imagine the Freedom Box, that has no obvious UI but you can run that in maybe an LXC container alongside Android. All you need to do is to take your Android phone, route it, and then you can install, for example, busybox-based systems at the moment. It's been fairly well tested. And it means you can use a version of an installer to install, to can install at least parts of Debian. As far as I know, there are applications on the Android markets that just install a Debian truth in which, yeah, then you can install Debian packages on the run on Android but the kernel is not free. I thought about a slightly different approach which, again, doesn't get you to a free kernel but it gets you to a lot of hardware enablement quickly and that is to just go take the Cyanogen mod build tree which has kernel and binary hardware device driver and so forth support now for dozens of different commercially available Android devices including current technology like, you know, Samsung Galaxy S2 devices and things like that, like the one in my pocket. And what if we were just to, you know, my original thoughts were, gee, wouldn't it be cool to take a webOS build tree and the Cyanogen mod build tree, slam them together and immediately have webOS builds for everything that Cyanogen mod had hardware support for. Wouldn't be 100% free because you'd still have binary blobs and the kernel and all of that but it would get an interesting user space up and running on a lot of different, you know, available pieces of hardware. The exact same approach could of course be used to drop, you know, some sort of a Debian packaging, you know, a system on top of, you know, these kernels and boot loaders and hardware support pieces that are out there. I think that this is one of those places where because of the nature of the devices that are being created, if we want to focus on building upper levels, you know, relevant user interfaces and things like that, not sweating in the short term that the hardware we can get is not possible to do great, free, completely freedom loving kernel and device driver support for and just co-opting the work that others have done to do community builds of Android for a lot of these devices to get the hardware enabling kernel pieces and then layer everything else we want on top of that, might be a way to get to a point where we can build a critical mass of users for some stack which then one or more vendors might be motivated to do purpose-built hardware for that actually would have the characteristics we want all the way down to the hardware. Which would mean some sort of Debian on Android or... It's not on Android, you know. So to be very clear, this is, to me, you know, Android implies that you've got the Dalvik, you know, virtual machine stuff and all of the Android related content above that. To me, what I'm talking about is taking the build trees and use, because they all use a Linux kernel and Linux kernel device drivers, many of which are in binary blob form. But what if you just, you know, use the portion of that build system that got you a working kernel and hardware support and built the rest of the stack on top of it? I don't care, you know, anything Android is in that stack or not. I happen to think Android devices are just fine in terms of utility, but they certainly are not just fine in terms of the number of sort of cloud dependencies they seem to sort of lead you to build out of the box and the way lots of other things in the stack work. So if we could build a completely free Debian style stack above the kernel, you know, imagine just using the kernel and hardware enablement support that all these folks working on, you know, Android community builds like Cyanogen Mod have done and then layer on top of that the rest of the stack that we would like to have on our devices, then maybe eventually get somebody to build a device that doesn't require non-free bits between our stack and the hardware. So that's a good idea, but I think it won't actually just work, or at least it would work, but you wouldn't get any power management, which is a big deal on all these mobile phones because that's the bit that's completely different between Android kernels and real kernels. So whilst it'll probably work, I think we'll find there's some ifs and buts, but it's worth a try because it is an interesting idea. I'm just not sure it'll actually just work like that. It's not quite that easy. I represent a commercial company who is using Mdebian to produce devices for the disabled people that can't speak, and it's wonderful. We've got something which will not change every one and a half indexes. We supply to the national health system in the UK and they require that we support devices for seven years after the final product is sold. If we use Android as a target delivery platform and have Mdebian running alongside it, it means that we can have our long-term support in Mdebian and we can track the shifting sands of new hardwares that comes out every year and a half, and Mdebian is never going to be able to track that. But there we have commodity devices which can be then targeted by Mdebian, and we can use it immediately, assuming that support to a particular version of Android. It's a way of keeping Mdebian relevant because otherwise we're just gonna be behind the curve continuously, maybe. I just comment who will do work. Maybe you comment on the Migo idea last year. I tried to package it most of the stack and I mean, it was based on Qt, so most of the Qt was in Mdebian and it was rather easy to start from that. The problem was project management and sanity, mostly, because the interfaces, both binary and code interfaces, were changing every two days and they had no idea of tagging or whatever and the complete stack was moving all the time and it was completely unreasonable to package this race reasonably in Mdebian or we should just have frozen a specific date and hope everything works. But I was mostly alone doing it, so it's also quite a huge pile of work because you have like tens and tens of packages of virus things that do various things that are not testable on our devices because it was mostly developed for their in-house products that were not yet out, so it was, it'll actually release in the end, yeah. So, yeah, sorry. So, I mean, so Mimo's now turned into Tizen, which is similar but different again. HTML5 instead of QT instead of GTK2, whatever the front end is, and I guess we don't really care about that as long as we can package the parts that actually make it a useful UI. So, I don't know if anybody's looked at the Tizen stuff yet. I've been to a couple of talks showing me what shiny things you can do in HTML5, but I haven't really understood the structure yet and kind of the same question for Weboss.  I mean, I've seen, a lot of people at ARM have been buying Weboss phones and going, hey, these are really cool and they're actually reasonably free and it's not Android and it's good. And again, the design seems sensible. So, I'm actually quite interested in having a look at that, but I haven't yet. Has anyone here actually know what we get, what we don't get? So, we have no clue, it turns out. Maybe we should look. Yeah, one of the questions I also had in that domain is what do we miss in Debian for something, boots to a gate check or something like that. I mean, we have almost all tools to boots to navigator full screen standard one user, but what does it mean to have an actual WebOS thing that does things in the navigator that we don't have yet? One of the things of coming out of the box is trying to have people testing all these technologies and have a play with Tyson or WebOS and see how difficult can be to package it or all these kind of questions and maybe write a report and send it to the main list so the rest of the community can discuss about it so that will be a helpful start. Sorry, so I have lots of interest but I haven't any work for ages so I have lots of questions and no actual answers. So, I had an open Moco and it kind of worked. Didn't work very well with Debian because the UI was wrong and you couldn't use your fingers and it was all tiny and crap and the battery went flat immediately. So, I put SHR on it and that actually worked quite well and that was the phone, O-phoneOS UI. So, that's right. No, O-phone, something. For a FSO, yes, that's it. So, that seems to work. There's been a lot that's been packaged for Debian. So, is there in fact any reason why that isn't adequate as a UI? Do we need to look at other ones?  I mean, does that in fact do the job to an adequate level for people's uses or not? Thank you very much. Paul told me that FSO was a free stack and it was more aligned with the Debian philosophy of doing things while the others all of them have like some binary hidden thing and so FSO was nice but it's not like the latest thing or as fancy or having HTML5 or it doesn't go with newer technologies or at least that's what I understood.  As the developer who was responsible for taking out the OpenSync framework which was another kind of thing in this area and I'm really quite worried about FSO as well. The thing, the problem that comes up is doing a release freeze. Packages and frameworks like Debian Mobile wants to use they seem to become abandoned. They seem to become just bit rot in the archive and they frequently attract failed build from source. They frequently find that the maintainer's not responsive and therefore during this release process they frequently get removed. What are we gonna do about that? How can we keep these frameworks alive so they survive into stable because that's where users want them to be. So I'm following the FSO seed channels the OpenMaker community channel and FSO itself has been continually developed and they're adding new hardware support and stuff like that. In fact for the Weezy release they worked with Debian to get the latest FSO release into Debian. So for me community based projects like FSO are important because we can get involved and contribute to those projects more easily than something like Android which is completely controlled by Google and they just do code dumps. So yeah, that's another aspect to think about. Paul sometimes it's not just the actual framework itself but does FSO still depend on E17? Because that was one that had to be removed because of a series of issues that just wasn't being maintained effectively. So FSO is the middleware. So it's like a D-Bus API that controls the hardware. It doesn't have anything to do with the E17 or EFL or anything like that. But there are things that use it that also use EFL and E17, yeah. So E17 would be the UI layer and there are some things in that layer that interface with FSO to say turn on the wireless or whatever. It's that fragility that worries me. So E17 is also really busy upstream and is an important part of the Tizen stuff as I understand it. So it's not like these projects are dead. I mean they may not be well maintained or packaged in Debian but that's not because nobody's using them or nobody cares. So that's fixable basically. We can make this stuff work if anybody cares to make this stuff work. It seems to me to be the state. And if people aren't fixing bugs, well that's just the usual thing and release managers have to make decisions based on that. But I don't think, and yes, there's always a risk that upstream projects will die and disappear. Either we pick something and use it ourselves enough that it doesn't die or get other people to use it or we have to change our minds and change. There's nothing you can do about that fundamentally except try and make good choices. So we sit here and try and make good choices and we see what happens. One of the questions I was also asking myself is probably to have something mobile-ish in Debian, what we probably need is some sort of corporation that does the work in Debian first or at least bases its work on Debian. That's what MIGO did. It's just died in smoke but... My question is more what do we miss in Debian to make Debian an interesting platform for Debian mobile? I mean, we are probably convinced that it's a good platform for it but are we convincing people with money to pay developers to do that? And I don't know what's lacking. Open question. So the biggest problem I've had trying to do stuff is our fairly strict adherence to only supporting upstream kernels and the time it takes for Linaro or somebody in Samsung to make stuff work and then get their version working and then get it upstream to the kernel devs which takes months, especially if you're going through a massive reorganization of the whole ARM stack so nobody can do anything for like a year and a half and for that to come back down to Debian and that's two years later. So we as a random Debian dev going I want Debian installer to work on this device have to wait two years by which time you can't get that hardware anymore. So that kernel support cycle is a real impediment to doing anything in Debian. You can use our infrastructure but you've got to get your kernels from somewhere else and that's fine so long as the support for that in DI is easy to use and we tell people how to do it. But the problem is as soon as that works then you stop sending patches upstream for that because it's not your problem anymore and you don't care, you know you've got it booting so things take a long time and that's, everybody has this problem in different ways depending on exactly where they sit in the ecology of providers of hardware and providers of socks and kernel devs and distro people and it's a right pain in the arse. But that is a real practical impediment to getting work done. Just what's the freedom box people they've had exactly that problem as well. I don't know what the answers are. Linaro is trying to make that less broken but the problem is that it only really works for the devices that Linaro members care about which isn't necessarily the devices you can actually buy that we want to use because they're cheap. Is the packaging paradigm still sane in a mobile world? I mean, if you base your work on Debian but just change the kernel and still keep all the rest is the fact that we have packages that update or that we can update partly is still a good paradigm for mobile? So yeah, packages are great for all the reasons that packages are great and that hasn't changed.  That's all marvelous. It's the process of upstreaming stuff. So the distro part of this is actually the problem not packaging per se. So I still think you want to use packaged kernels via flash kernel. You don't want to put random files on the device. So it may be for dev purposes but if you're giving it to anybody else it should come as a package installed with flash kernel which means you need flash kernel support and flash kernel needs to be less shit and which is all work underway but slowly usual sort of problems. So yeah, so again, we know what problems are requires quite a lot of work to fix and some of the stuff we can't do in the distro I think just because it is too slow, whatever happens. So we will have to be providing extra packages outside of Debian itself for some time. Well, unless we have a policy change within the project that we can package stuff that isn't upstream yet. For the kernel? Yeah, so the kernel people have been highly resistant to that for good reasons.  They don't want to get into that game and watching it in, you know, in Leonardo with the Samsung landing team and the TI landing team and the people who are trying to coordinate a bunch of distros and releases, you know, it's really complicated and lots of people who are very clever are spending a lot of time wrestling with this problem. We as Debian whoever it is that runs the kernel packages probably doesn't want to spend any more time than they already do on that. So they're, without lots more manpower they're just saying we're not having anything doesn't come from upstream because we can't cope and I think they're probably right but nothing stops us making extra kernel packages from other people's trees that work that people can install. So I think we can cope with that if people care enough. The problem is that as soon as you start doing that for 10 different devices it starts to get to be a really big deal. Well actually nothing in the policy prevents someone else to just package a new Linux kernel but it's just a huge amount of work. So there's some perspective on that from the OpenMoCode devices. Even the GTO 02 still doesn't have a full upstream kernel support for the whole of the device. The way that the Debian folks who are working on that have dealt with that is repository on alias with the kernels and all that sort of stuff. The problem is that you end up running really old kernels that Udev doesn't support and so they have had to be extra patches to allow that to work. And then there are new bugs introduced like I think 2629 is the most stable and then 2634 and 37 are the other two but they introduce issues with the micro SD card. Sometimes you can't boot, sometimes you can. So it's really horrible to be using old kernels and not having hardware support upstream. So just try and push upstream is absolutely the best thing to do. You just can't do anything else really. In parallel provide older kernels if possible but yeah. The questions, ideas, everybody's hungry. We still have 15 minutes so if you want to diverge to other parts of the mobile ecosystem then feel free. I don't know if you know but I will tell you. There's an interesting movement in Venezuela towards mobile devices. Venezuelan government might invest some quantity of money to develop some of the missing stuff to be a mobile, a Debian based mobile operating system. We're trying to make a Kanaima version that is installable on mobile devices. There's an interesting partnership between Venezuelan government and China government that includes some, I don't know. It is easy for us to get hardware from manufacturers like CTE and Huawei and that's only a comment so that you take an account. Yeah. Would it be possible for the Kanaima people to interact more on the Debian mobile list? Yeah, that would be because we now have the derivatives ecosystem that we know that the Kanaima is just one of the hundreds that we have but acting directly on the Debian mobile mailing list just to say this or this happened and opinions is just good to have more information. Yeah, I mean there's clearly I guess the Venezuelan and Chinese governments have some of the same concerns we do in that they'd prefer Google not to be in charge of everything they do as well. So there's a useful alignment. Are you targeting particular hardware? Have you already chosen a UI in the Middle West, a particular software stack? Do you already have a plan there? And if so, which one? Not actually, we're on the early stages. Actually, I'm here because of the same as you. But we don't want to, it's not that we don't want to, we prefer not shipping Android on the mobile devices. There's two major manufacturers in Venezuela. It's called Betelka and Orinokia. Then they have partnerships with these Chinese manufacturers I told you. But we're trying to do something that's Debian compatible, something that we just have to reuse our platform for Canaima and of course it's the easiest way because our developers are not trained in Android development. So that's the main reason why we would choose something Debian-based. You asked about, sorry, you asked something about devices. Yeah, we have some prototypes. Actually, I left my bag in the hack lab. Well, I can show you that later. I brought some prototypes. Actually, I was not the person that was going to be here, but anyway, I can show you the prototypes later. And we're experimenting on that, but only Android stuff, nothing Debian-based. And do you actually have people lined up to do work? Or is this just a kind of specking out thing? I think you could get something going here done right, which will be quite exciting. It would give a direction to this or what should we do?  Anything that works because obviously you can focus on two or three of these rather than everybody trying 15 different things and none of them getting anywhere. So it's the usual question of people actually prepared to spend serious time and obviously a company that cares helps a lot just to people who are sat there all day working on things. I spent a few times yesterday with them talking about this and he also did a presentation on Kanaima, the derived distribution and they have like a community of developers, they're more than 50 and they are doing like parties and there is growing and growing in Venezuela. And a reply for the question you were asking before, they were like highly interested on HTML5 technologies and JavaScript UI-based systems for the stack, which then WebOS or Tyson might be aligned to this purpose and I think they are more interested also to learn about these technologies so they can spread the knowledge around the country and have more and more people contribute and. Maybe an interesting thing that Kanaima could do in collaboration with Debian or Debian Mobile for what it's worth is if we can concentrate on one or two devices that would be eight, that would, yeah devices that could be shipped around the world to various people, that could also help getting traction on this and as you said instead of just going with every Chinese tablet and hope it does something that in the end does not work. We were discussing about that but we didn't want to like make it official until we have like an approval and but this is something going on about that and then some hardware might be available for developers but it's still work in progress. Yeah, my only point is that it might be interesting for them to get in contact with various people not only in Venezuela to gain traction around this and I mean it's not only a matter of sending free devices to anyone, yeah. I guess another aspect, one of the problems with this is that the UI is quite closely tied to the hardware. How big is the TV? How many lights has it got on it? Where are the buttons? All that stuff needs to work nicely and which makes it difficult to work on the software independently of the hardware which of course is exactly what Debian wants to do and make things terribly general which is a bit like things that don't work very well and so insofar as we can pick a couple of devices and stick to them, freedom box people, you have to pick something to get anywhere but we have the additional problem that we're also trying to generalize everything. And the other which doesn't sit well with the new hardware every six months cycle of the crazy mobile phone people, yeah. Okay, we have five remaining minutes. Thank you very much from the Kanaima people for some more light, it's very interesting. Anyone wants to add something else? To the Gobi, I think we'll probably send the minutes to the Debian mobile or formatted things to the Debian mobile mailing list, but yeah. I suppose I should say that if people need anything from the Naro, come and hassle me about it. We won't probably give you what you want but in principle we exist to make stuff easier to do on ARM where stuff covers everything. Especially that problem of the kernel enablement across lots of different hardware. There is a lot of work going on so that it gets more like x86 world where you can have a kernel that works on quite a lot of devices and that will make our lives a lot easier when we finally get to that point and the standardized boot stuff. So we can expect life to improve in this area and I guess me and Steve McIntyre are the people in Debian to pester about stuff and we'll see what we can do. Thank you. If we don't have any other questions I just propose to close the session. Thank you everyone for attending and let's hope next year's buff will have a little more what we have done in Debian, more shiny. Thank you very much.


Live from Austin, Texas. Extracting the signal from the noise. It's theCUBE, covering Dell World 2015. Brought to you by Dell. Now your hosts, Dave Vellante and Stu Miniman. We're back in Austin, everybody. This is theCUBE. We're here live at Dell World. This is day two of theCUBE. We go out to the events. We extract the signal from the noise. Good friend Tom Joyce is here. He's the general manager of Dell's systems and infrastructure. Our systems and information software business. Tom, welcome back to theCUBE. It's great to see you. First time we've talked to you in this new role. This is, it's amazing to see the group of execs that Dell is bringing back together. So congratulations on the new role. You must be excited. Yeah, I am. I mean, it's exactly what you said. One of the reasons I'm excited to be here and why I'm here is, and I'd known Michael years ago from when we had our relationship when I was at EMC and I worked closely with Marius and Paul Perez and Jim Gontier and all those guys. And you get to a point in your career where you want to work on interesting stuff and you kind of want to work with people you want to work with. So it's a very good setup and it's a good place to be right now. There's no question about it. And I have a lot to work on that's really interesting.  I'm an EMC analyst. I'm a storage analyst. But you've done a much more varied career. You've done M&A, you've done software stuff. And so talk about the new role, what the scope is. Yeah, so I'm, as you said, general manager of the system and information management software business. You know, I think Dell as a large management software business, I think it's probably not as well known. You know, we don't, books don't know all of what we do. So that's a big part of the opportunity. A lot of the pieces came from the acquisition of Quest a couple of years ago. And I have reporting to me substantially all of that at this point. Plus a number of other technologies that were mostly from acquisitions as well. We have an awful lot in the data protection area, things that came from Apochure. And so we have a whole bunch of technologies. And frankly, also some areas that are new for me. You know, in my career, I haven't done an awful lot dealing with the desktop. And so we have a big business around endpoint management with the case franchise. We have a big business around endpoint backup and recovery. So there's some new stuff that I'm enjoying learning and really pretty excited about. Cause you know, I do like to go new, do new things. And then we have a big opportunity and kind of tying the glue together in terms of how do you manage this, you know, platform three or the platform of the future building on things like Dell cloud manager, things like Foglight and some internal development where that Dell's been doing. So, you know, I have over 140 products in different categories across windows, system management, platforms, cloud. It's a big job and so far it's been a lot of fun. Yeah, so, and of course, big news last Monday. You've got to be pitching yourself, right? EMC acquisition. Yeah. Obviously you've got tons of DNA in this company from EMC, you know, senior executive at EMC. How's that feel? I mean, what's the discussion been like with your friends at EMC and with customers? Yeah, I'm very popular all of a sudden with folks that used to work with at EMC, which is good.  I mean, there's definitely, you know, there's a lot of folks that I stay in touch with. And it's a great network. It's just a terrific, you know, alumni network, if you will. And so, you know, over the last week it's been interesting, you know, folks I talk to every week and folks that come out of the woodwork to reconnect with them.  We have a long way to go, but, you know, man, it sure is a great thing to think about.  Hey, Tom, so you've done a lot of M&A. I have. Some things that people look at is there are certain cardinal rules buying big and big coming together, buy coastal, different cultures. There's been some negative press and everybody's trying to understand because this is, it's a real big deal and we think a lot will change between now when the 60 days are done and by next summer. So we're still trying to tease it out. I mean, the virtuous tree and move and everything there. Is there anything from your experience that you'd add to people?  Right. Give us some of your thoughts.  So one of the things you learn the hard way is when they put you under the hot lights and ask you questions about the deal, it was just announced, I'm pretty good at not saying very much. Actually, that's the part of this that I've mastered. I will say that, you know, you do have to focus on running the business that you have. Because at the end of the day, it's about the customers, it's about the shareholders and it's about the people that work here. And you know, in any deal like this, they've laid out what the timeframe is. There's a lot of things that are out of your control. And the way we do the right thing for the employees, the customers and the shareholders is to not foul it up in the meantime. So it's very difficult to maintain focus, but you know, there are proven ways you do that. Again, having done this a lot, not one this big, because nobody's really done one this big, but you know, there are ways to do it. And so right now we're very focused on that. And again, I think the way that, you know, Michael handled this in the keynote here at Dell World was terrific. He probably said more about this than you would expect.  And he articulated a lot. Now I do think one of the great things about working at Dell and about having a guy like Michael Dell who's really, I mean, he's a founder. He's a founding pillar of this industry is he can get up there and say those things, probably with more credibility and than any other CEO could. So I think the company has already set a tremendous amount. The way Wall Street interprets these things short-term and long-term, that's another one of these things that's sort of out of your control. So I think a lot's been said already. I think if you want to understand what the strategy is, go look at, you know, Michael Dell standing on stage at the keynote. It's probably as good a pitch as you're going to see. Well, and so you mentioned the founder-led acquisitions. I mean, this is obviously much, much larger than anything else, but you know, Furry was pointing out in the QVO they look at Ellison, what he did with Son, you know, he personally made that happen. So there's a big difference between sort of founder-led mergers acquisitions than there is. Maybe, you know, a lot of people want to compare this to HP compact, totally different. I think it's more like digital compact, but there you didn't have founder-led folks. You had sort of, you know, lack of leadership. There was a vacuum there. There's no leadership vacuum here, is there? No, I think there absolutely isn't. And you know, maybe I'm in my honeymoon period, but you know, we've all watched and kind of gotten to know Michael Dell over the years. He's one of the most approachable guys. And I'm not sucking up on camera to Michael Dell, but you know, I think what you see here is a guy that's out front on this and has the credibility to tell this story. A lot's been said and is continuing to be said about the activist shareholder environment that we're all in right now. A lot's been said about the benefits of being a private company in this environment. You know, it's more than that. You need a guy like that at the helm who has the credibility to pull this through. You know, still inside of Dell, my experience so far is you know, we're still running by day, by week, by month, by quarter to hit our numbers. You have that level of urgency there, but they do have kind of, he has the control, if you will, to make things happen that you couldn't do in another company. So, Tom, you've got a critical component in the portfolio here.   When you look out on the industry, how should we look at Dell's role in kind of the ecosystem when it comes to software? You know, I think, you know, not to blow my own horn too much, but I bring a set of skills that, you know, starts with a really understanding M&A very well and integration and so, I think we can carry this forward very nicely and we got a great game plan in terms of what's been done so far, which is a lot and what we're going to do next. I think I've also done an awful lot of marketing and remarketing of storytelling and what the message is and you guys have been very helpful in getting those messages out for me. What I would say is the story of Dell's system and information management has yet to be told, right? And we started to tell it here. We launched some things that are new, we talked about some things we already have and overall the impression that you get from customers is wow, I didn't know you had that. So we clearly have more to do in that regard. I think the other thing that you look for in this business is what's changing in the mind of the customer, you know? You got internet of things in cloud and big data and everybody understands that what's really changing in the mind of the customer and I think as it relates to software, their relationship with software is fundamentally changing. These customers, big and small, are becoming the application developer. They're developing their own apps, you know? There's DevOps, they're developing their own apps. They understand what it takes to build good software and what they want to do and what they don't want to do. What they kind of don't want to do is focus on managing the plumbing, right? They want somebody to do that for them and our story is going to be whether you're talking about things you got today, managing Windows, SharePoint Exchange, things you're going to have tomorrow. Office 365, cloud-based technologies, Amazon, Azure, OpenStack, whether you're talking about, you know, managing data in databases or in future forms, we really have it all. We have all of that, you know, all the way down to the desktop from the data center. So I think we have work to do to tell that story more effectively. Great thing is you got a terrific platform in which to do it and you look for opportunities to also go build new solutions and there's a lot to work with here at Dell. So, when you think about M&A, a lot of times, you know, a lot of the value of the M&A, you know, even the perceived value occurs after the M&A because the people in the front line say, wow, I could do that with that and start putting together things that, you know, the guys in the corner office who were doing the deal might not have necessarily you've seen or been the impetus for the deal. When you think about the opportunities with your portfolio, which is very broad and fast and piece parts within EMC, do you see some real synergies there? Do you not know yet? You got to do some more due diligence. What can you tell us about sort of the possibilities down the road there at a high level? Yeah, I think there's a tremendous amount and there's a lot we can do right now well before we get to that conversation. I would tell you that if you look at the business I have, you look at the big parts of it, you have a tremendous number of customers that are running on data center platforms today like Windows that need to do that better. Moreover, they're trying to figure out how do I move to the platform of the future and Michael's talked about that and EMC's talked about that, you know, what's that platform going to be? And we have this huge business around migrating people, migrating identities, cleaning up and migrating your active directory to cloud-based technologies, moving you from your SharePoint and your Exchange and your database and your data center to cloud technologies. You know, I think as you get access to a customer base like EMC has, the opportunities are enormous to kind of help more customers with that. So that's pretty interesting. I think we also have a tremendous amount about management of cloud technologies, especially for mid-sized customers, right? So there's Dell Cloud Manager technology that Michael talked about on stages and the example of that. So I think that's going to be, that's a breakthrough component that we can use now and we can use, I think, in many of these combinations in the future. And then they think there's a great business around data protection. The way you do data protection is changing fundamentally. Totally. You know, as you guys know, every time the target changes for backup, there's a huge change in terms of who's on top of the, you know, who wins, right? It happened when we moved from tape to automated tape, from there to backup to SATA, to Ddupe, and now it's going to be cloud. And we have that, right? We have cloud-ready technologies for data protection now. And that's something that, you know, you might look at it and say, well, you know, the other guys have backup technologies too. Frankly, I think there's a lot of synergy. So I think you're in a really interesting position because as we talked about in theCUBE a couple of weeks ago, before the EMC acquisition, we were pointing out that Dell is a company that's lived on, grows margins in the high teens. And we always said, if Dell could figure out how to really drive software, we've said this about HP too, and it sort of hasn't manifested itself, but if Dell can figure out how to, you know, corral its software assets and get a bigger contribution from software, that's, Dell could be very, very dangerous. And then, of course, the EMC acquisition occurs, and you've got a big software component in VMware, but the whole gross margin model of Dell is changing. The gross margin model of EMC had to change. It can't sustain 60 plus percent gross margins in this new world. So it's a really interesting time. A lot of forces coming together. So, you know, we're really excited for it. I wonder if you can comment on that and then we'll wrap. Well, I think, you know, I think ideally, if you can tap into that Dell machine, you're going to win, right? So, we've already done some of that. You know, we have a technology, again, called CASE, that does endpoint management of, you know, MacBooks as well as Windows laptops and Android and pretty much everything Chromebooks, devices like, you know, flat panel displays, Internet of Things kinds of things. You know, we're now shipping that just over the last few weeks. Every time you buy one of these, you know, laptop devices from Dell, you can get the CASE technology by the drink. As you buy laptops, you buy two of them or you buy 10,000 of them, you get that. There's a success model there that the companies use to ship Dell data protection encryption software. So now, you know, hundreds of thousands of people are using that technology. So I'm looking to hook into that every way I possibly can.  I would tell you that the Dell sales guys, especially the mid-market sales folks are very focused on how can we add more to the conversation and we have more. So that's something that we're going to focus a lot of attention on.  Really, congratulations on the new role and really excited to be watching it. Thanks so much for stopping by theCUBE. Thank you very much. Good to see you guys. All right, keep right there, everybody. Stu and I will be back with our next guest right after this, we're live from Dell World 2015 in Austin. This is theCUBE.


Hi, I'm Jackie, the nurse from Professional Supplement Center, and today I'd like to talk to you about a product from Metagenics called EPA DHA 720. Omega Genics provides a healthy balance of highly concentrated omega-3 essential fatty acids. This cold water marine lipid is sourced from anchovy, sardine, and mackerel and is produced in Norway at a pharmaceutical-lacened facility. These naturally lemon-flavored soft gels are third-party tested for contaminants and are stabilized with natural antioxidants to ensure freshness. The health benefits of supplementing with the Omega Genics EPA DHA 720 include support of enhanced cardiovascular function and circulation, promotion of positive mood and well-being, support of a normal immune response, and promotion of joint mobility and flexibility, support of overall health and well-being. Metagenics recommends taking two soft gels up to three times daily with food or take as directed by the healthcare professional. Here's what some of our customers have to say about their experience with Omega Genics EPA DHA 720. Terry from Kansas says, I take this product daily per doctor's recommendation and have had a very good results. Sandy from New York says, I take Metagenics brand of fish oil because for me, purity is most important. Sheila from Pennsylvania says, awesome, I've been taking this product for five years now and I'm very satisfied with the results. If you have any questions, please call or email professional supplement center.


Hi, my name is Rafael Lima and in my talk today, I'm going to introduce how to use the script forage library to write Python scripts in LibreOffice calc. So the main idea in my talk is to show how we can combine the strength of LibreOffice calc, the advantages of the Python language, and the new features added by the script forage library. I'd like to point out that all examples are written using Python in this presentation and if anyone wants to download any of the files that I show here, they are all available in my GitHub page. So what is script forage? Script forage library is a set of services that are comprised of methods and properties that seek to make scripting easier and more accessible for LibreOffice users, mainly for those who are not experienced programmers and don't have much experience with the LibreOffice API. So you can see here that calc is one of the services of the script forage library. So this means that the 21 services currently available in script forage cover not only calc, but also many other aspects of macro writing. I'd like to highlight that script forage is available since LibreOffice 7.1, but only with basic support and since LibreOffice 7.2 we have Python support. So this means that if you want to run any of the examples that I show here, you need at least LibreOffice 7.2. So why use script forage? So the idea of script forage is to hide API and uno complexity, which is a challenge for those starting to write macros in LibreOffice. For example, I give here a simple example comparing the usual approach with the script forage approach of doing things. So the usual approach, for example, if we want to test if a document is a calc document. So we would have to get document here and then test if it supports the service spreadsheet document. So if it does, it is a calc document. So the idea of script forage is to hide this part because new users do not understand that we have to test this and they don't understand why this is necessary. So it's simpler to do this. So we can get the document using the create script service calc. So create script service is a method from the script forage library. And when we instantiate it this way, it references the currently open document, the document that's called the macro. And then with the document we can call is calc. And if it's true, then we have a calc document. So it's a much simpler way to do things. Okay, so this is the main philosophy behind script forage. The idea is to make scripting simpler. Okay, now about the script for calc service. The calc service has 30 methods and 11 properties. And it's an extension of the document service, which is another service in the script forage library that provides methods that are general for all types of LibreOffice documents. So today I'm going to focus on the methods that are specific to calc. I would like to point out that the documentation in the help and LibreOffice help, we have finished the documentation of all services with examples for all methods. So if anyone is interested in learning more about this script forage library, you can access the LibreOffice help and there you can find examples for all services and all methods. Well, so now let's start with the examples. And we're going to start with a very simple example that creates a matrix with strings that can be either the word even or the word odd. Okay, so these are the strings that are going to be inserted in a matrix of cells in the current sheet. Okay, so the idea here is very simple. I'm not going to dive into the Python aspect of this script, but I'm going to focus on the script forage library aspects. Okay, so here we have the create script service method that comes from the script forage library. And when we instantiate it using this method, it always refers to the currently open document, which is the document that triggered this macro. Okay, so doc is a reference to the current document. And then we use the method offset. So this method is from the calc service. What it does, it starting from an address, what we do is offset it by an amount of rows and columns. So suppose we have cell A1 here, so we can offset it by a certain amount of rows and columns. And with this, we can traverse a range. So I used here a four by four matrix, okay. And then we use the doc.setValue method to write some string into the target cell. So notice here that when we call doc.offset, it returns a string containing the new address offset according to the arguments here. Okay, and then we use this target cell to write into the cell some value. So here, just to show how everything is working, I created all the examples that I'm going to show here have been implemented in a file. So you can download this in my GitHub page as well. Okay, so this execute V1, it creates a six by six matrix using the setValue method as I have just presented. Okay, so you can see here that it's not very fast. Okay, so I'm going to address this in a minute. But before that, let's go back here to the presentation. And I'm going to show you another feature of the Scriptforge library, which is the basic service. So here you see that in addition to the calc service, I instantiate the basic service. Okay, here. And then I use the input box method. So the basic service, the idea of the service is to provide some methods that are only available in basic, but also to Python scripts. Okay, so the input box function is a function of the basic language that is called from within a Python macro using the basic service. Okay, so I'm using this just to showcase that we can ask some values to the user and then use these as parameters to create a matrix with any size that we want. So going back to the file. So here I'm going to execute this version that calls the input box. So here we can determine how many rows we want. Let's say 15 and eight columns and then okay. And you see that it fills the values as we want. Okay, so as many values as we specified. However, you may have noticed that it is slow because of the set value because when we use the set value and the offset. So we are calling the set value method many times. So it takes some times to run all these calls. So a faster approach. So it's always faster to use set array. Okay, so now I'm going to show you an example of how the set array method can be used and it's very simple. Okay, so the idea of the set array method is two. So it's here. So we specify a starting address and then we pass a matrix which in Python can be a list of lists. So here I create a list of lists containing the odd and even strings randomly. And what it does, the set array, it inserts the values all at once. So we create it separately. We create this matrix separately and then all at once we insert these values into the sheet. So this is why this method is much faster. So just to showcase how faster it is, let's go back to the file. And here we have this V2. It runs the 6x6 matrix using set array which is faster. So see here. So here we have the slow version and here we have the faster version. Okay, so whenever you can use the set array method instead of set value. Okay, so here we have a fourth version where we can specify how many rows, let's say 16 and then 8. So this one uses set array so it's faster. So you see it's almost instantaneous. Okay, so now moving on. So in this example, I show how to use other methods of the calc service. For example, we have the property current selection that returns a string containing the address of the current selection. And what I do here is a simple example that gets the current selection. So I search for values that are smaller than zero and then I write into the cells containing these values the word invalid here. And I also use the set cell style method from the script for library to apply this style to the cell. So this is another method that we can use. Okay, so here what I do is I get the current selection which is a string. And then I use it into the offset method to get the first cell in the current selection. So how do I do this? I offset it by zero rows in zero columns. And then I resize, when I offset I can resize it to a range with one row and one column. So this is what I do here. So with this I get the first cell. And then I can use the height of the current selection to get the number of rows and the width of the current selection to get the number of columns. And with this information what I can do is for each INJ which are determined by the height and width of the current selection. What I do is get the first cell offset it by INJ and then I get the value of the cell here and test if it is smaller than zero. Then I set the value of the cell to invalid and apply the cell style. So let's see this happening in the file. So here we have the file. I'm going to create some values here. And as you can see some of them are smaller than zero. So in my selection I apply that macro. So you see that it only analyzes the selected cells. So this is another example to show some methods that we can use in the calc service. So moving on. Now let's talk about clearing cell contents. So this is something that is challenging using the LibreOffice API because when you use the clear contents method you have to specify the type of content that needs to be cleared. And this requires some knowledge of the LibreOffice API which again is difficult is challenging for new users. So the idea here is to provide three methods. The clear all method. Here it clears everything. Formats, values, everything. Then we have clear formats that clears only formats and clear values which clear only the values in the cells. So here we have the code that I created for this example which is very simple. So first I get access to the current document and then I clear all and then I pass an address to be cleared. So let's go back to the file to see how this works. So here we have clear all. So it's clearing all and I am passing this range as an argument. So clear all clears everything including formats and values. Clear formats remove the formatting and keeps the values. And then clear values remove the values and keep the formats as we would expect. We can use Ctrl Z to undo all these comments. Now moving on. So now we're going to talk about copying and moving ranges. So we have three methods for doing that. So we have copy to cell, copy to range which is a bit different. I'm going to explain this in a minute and move range. So copy to cell we get a source and then we specify a destination. And copy to range it also asks for a source and a destination but it works differently. Copy to range is the same when you copy a source and paste it into a larger destination than the source. And then move range is the same as copy to cell but then we move instead of copy. So the first example that we're going to run is this. So we have here the copy to cell so we have a source and a destination. So the destination can be just a single cell because this works as a Ctrl C, Ctrl V operation. If you specify a range here in the second argument only the top left cell will be considered. And copy to range notice that it takes in a source argument and the destination is a range as well. So we have a range that can be larger and it works as we were pressing Ctrl V after selecting the destination range. I will show this in a minute. So let's go back to the file. So here we have the source and then we have copy to cell. So I'm going to copy a12a4 into say C1 here. So you see that it does exactly as we expect as we expect. And then copy to range we're copying a12a4 into a12f6. So you see that it expands the source as though as we were doing this. We copy it here Ctrl C then we select the destination and press Ctrl V. So this is copy to range. Now let's go back to the slides here. We're going to do a more complex example using copy to cell. So here in this example we're going to copy values from a separate file from a different file. So suppose we have another file which in this example I'm calling data source dot ODS. So this is a separate file. And from this file I'm using the UI service from Scriptforge. So the UI service to access this document that must be open in this example. So suppose this data source dot ODS is open. So I am using the get document method from the UI service to get this document which I'm calling here as source doc. And then I can use from this source doc I can use the range property to get an object containing information about this address from this source document. Ok so now we have this source range and we can use this source range with the copy to cell method. So see here that we are using this source range from the data source dot ODS file as the source and we are pasting the contents into cell A1. Ok so now let's see how this works. Well here we have the data source. So this is the range that we are copying into the current file. So this is data source dot ODS. This is the range that we are copying. And here we are copying those contents. Ok so if I press here it will copy the contents from the other file into this file. So be aware that the data source dot ODS file must be open. It is also possible to do this with the file closed. And I'll show that when we talk about managing sheets. Ok so there is a method to copy from a file that is closed. But we will talk that later. Nice. Now moving on. Well now we are going to talk about managing sheets. So we have many methods for managing sheets. The ones that we are going to use the most are activate, copy sheet, insert sheet, move sheet, remove sheet and rename sheet. So I'm going to show you a few examples of how these methods can be called. Ok so they are very simple and they are meant to be like that. So you see here that for example if we want to create a new sheet. We just call the insert sheet method. So first here we again we instantiate the calc service to access the current document. And then we call the insert sheet method. So it will insert a new sheet called test sheet and it will be created before the second sheet that already exists in the document. So this is an optional argument that defines where this new sheet will be placed. We could have used a string here referencing an existing sheet. And then the new sheet would be placed before the existing sheet that we passed here. And then we can activate this sheet. So activate is like clicking the sheet name to show the sheet. So this is what we are going to do now in the file. So now coming back to the file here we can insert sheet. So you see that it will create the test sheet right here. So after we clicked the button you see that it created the test sheet here. Let's insert a few values here just to use them for the next example. And here we're now going to copy test sheet. And when we create this copy the copy will be named copy test sheet. So the code is here so it's very simple. It's just copy sheet the source sheet and then the name of the copy. So note that it will be placed last in the file because I did not specify the before sheet argument as I had done here. So now copy sheet and you see that a copy was made here. And finally the remove sheet. I'm going to remove the copy test sheet. You see that now it's gone. And here so this is the example. This is the method copy sheet from file that copies a sheet from a file that can be closed or open. It doesn't matter if it's closed or not. So let's see how this works copy sheet from file. So you see that it's very simple to call this. It has three arguments. So the first argument is the file from which a sheet will be copied an entire sheet. Here is the name of the sheet that will be copied. And this is the name of the sheet when it's pasted in the current document. So again it's copying sheet to from data source dot ODS. So we can see here that sheet to has these contents. And we are going to place them at the end of this file. So when I click here it copies the sheet into this file. But beware that using a copy sheet from file you don't need. Where is it? It's here. So when you use copy sheet from file the file doesn't need to be open. So this is the advantage of this method. But it copies the entire sheet. It is also possible to copy a range from a file that is closed. But for that you need to use the UI service open the file copy and then close it. Now let's go back to the slides here. We are now going to discuss these D methods that are used to quickly call calc functions that are very common. Which are average, count, max, min and sum. So the name of the methods are davg, dcount, dmax, min and sum. So it's very simple. And here I also created an instance of the basic service to be able to call a message box from within a Python script. So see here that first I instantiate the document and then I call davg to calculate the average of the values in cells a1 through a e1. So this is the range from which I'm going to calculate the average. And then I'm going to present the result in a message box. So this is the code that does exactly that. Now let's go back to the file. And here we have values in the range a1 to e1. And when I calculate average it applies the davg method and presents a message box with the results. Remember that this is all being done in Python. Now let's go back to the slides to see the last topic of our talk. So I'm going to explain how to import CSV files using the import from CSV file method from the calc service. So it's very simple. You can see here that I just have to specify the file to be imported which in this example is job data view1.csv. So this is the first argument of the import from CSV file. And then I have to specify the cell into which the values will be inserted. So they will be inserted starting at cell a1. Notice here that I am not specifying any additional settings for the CSV import. So it's using the default settings which are the file is a text file encoded in utf8. The field separator can be a comma a semicolon or a tab character. The string limiter is a double quote. All lines are imported and quoted strings are formatted as text. So these are the default settings. So let's see this happening. Well here we have the file that's going to be imported. Notice that this is a very standard CSV file with a comma as a field delimiter. And here notice that I have numbers that use the dot as the decimal separator. So we're going to import this file now. So here we can see the let me just erase this. So if I click here it will load that file correctly. So everything is here. Now I'm going to show you some specifics of this import from CSV file method. So here I have a second CSV file. And notice here that it has a semicolon as the field separator and a comma as the decimal separator. And why is that? Because I'm from Brazil and in Brazil we use commas as the decimal separator. So if we import this file using the default settings it will break the import because it will think that this comma is a field separator. So we have to apply some settings before importing it. And what are these settings? So the settings are defined as a string separated with commas too. So we have this filter option here that can be entered here as the last argument from the import CSV file. And here we specify the ASCII code of the field separator which in this case I'm going to use only the semicolon. So notice here that I'm not telling that the comma is a field separator here. Then I have here some standard values. For example the double quotes as the text delimiter, the character set and the number of the first line. So I am important from the first line until the end of the document. So all records are being imported. So using these filter options let's see what happens. Well first let's see what happens if I don't use the default settings. For example if I load that CSVII file with the default settings you can see here that it separates those values that I wanted to stay together. But if I import that CSV file with the custom settings you can see here that they are imported correctly as I would expect. So okay with this I finished my talk. I'd like to thank you for your attention and thank you and a big thanks to the members of the Scriptforce team Jean-Pierre Le Dure and Alain Homedem. So thank everyone for your attention and if anyone has any questions please let me know.