Oregon, this is Silicon Angles theCUBE and we're here live at Strata in Santa Clara, California, O'Reilly Media's big data event. This is I think our fourth or even fifth Strata or Hadoop World if you combine them as Cloudera and O'Reilly did last year. And what we like to do here is try to extract the signal from the noise, bring to you some of the major trends. We've been talking a lot about some of the activity that's going on in the platform world and what we've called the land grab. Cloudera used to be all alone in the Hadoop distribution business and then others jumped in and now there's just been a sea of innovation that has come to the forum. We're with a company, it's very interesting, I think you'll find their background and their innovation in big data. A company's called WAN Disco. We're here with David Richards, who's the CEO and Jagane Sundar, who's the CTO and VP of engineering for the big data side of the WAN Disco business. Gentlemen, welcome back to theCUBE. Dave, thank you, it's great to be here. Yeah, it's good to see you guys again. We had a great meeting in Marlboro on the East Coast and Jeff Kelly did an interview with you guys on theCUBE in our Marlboro offices and kind of introducing the company and the acquisition that brought you in to the big data space, but I want to start with sort of why you're here. But before we actually get to that, tell us about who you are, because I think a lot of people don't know. So yeah, we kind of sound like a 1970s Donna Summer Disco kind of company, don't we? But we've got nothing to do with that. So our heritage is in data replication. WAN Disco stands for Wide Area Network Distributor Computing. We're kind of a strange company in many ways, not just the name, but we did an IPO about seven, eight months ago now and we did it without ever raising venture capital. So we were able to raise a lot of money on the London Stock Exchange recently and I think we won the IPO of the year award along with numerous other awards. So the company's heritage, rich heritage is in the field of distributor computing and we're quite famous, I guess, for making a product called Subversion Multisite that a lot of the big companies used to develop their software development today. Yeah, and that's kind of a rare journey that you went on. We actually just had a company called DDN, Data Direct Networks. They're a $300 million company, also self-funded. So two very successful stories. They've talked about an IPO and sort of pulled back from that but it's not something that you see typically in this business. How were you able to achieve that? So in order to become a successful company, it's back to the old fashioned things that your grandfather and my grandfather would probably have known, which is actually selling products that customers were prepared to buy. So as a company we had a great discipline from 2005 when the business was incorporated to build products for a market that companies were going to buy and they were solving big problems that companies were prepared to pay money for. We're not doing anything different now. Our entry into the big data marketplace that I'm presuming we're going to get onto is actually that, we're using exactly the same processes, exactly the same discipline around open source and replying our unique technology into that market. So since we last met, you guys have announced Hadoop distribution based on Hadoop 2.0. Talk about what you announced and then why you needed to do that. So at a very high level, and I hand over to Gigan, and second you can fill in the gaps. We announced the world's first production ready, Hadoop 2.x distro, which we're very excited about. We did it in a very short order. We hired a very talented group of engineers and existing committers, a guy called Dr. Konstantin Boutnik, who actually was at Cloudera for a while and a Yahoo before that, who really pressed forward and built that distro very quickly. And there are numerous reasons why we did that. I mean, yeah, we're going to see other companies enter into this marketplace. We're going to see, we just see an Intel, we just see an EMC announced. With their third distribution. With their third distro. I mean, look, this is a huge marketplace, right? I mean, you guys up to your forecasts on the market, it's growing much faster than we all imagined. And in order for us to execute, we have to have our own distro. That isn't exclusive. I mean, we are prepared to support, for example, Cloudera. We've got to partnership with Cloudera, we've got to partnership with Hortonworks. So it's not, it's an either or situation for us. Obviously we'd prefer people to be in our distro, but we're equally prepared to support their distributions.  I mean. That's right. I mean, we have a patent in the way that you do active, active replication of a wide area network. We can guarantee 100% that Hadoop will be available with zero outage, zero downtime. We've been doing this for seven years now in the subversion space. So we can save people from earthquakes, floods, other disasters. We can guarantee Hadoop is bulletproof for the enterprise. And of course, it fits in very nicely. Our active, active replication technology can plug into our existing Hadoop distribution de facto, or in fact, Hadoop can plug into Hortonworks and Cloudera as well in equal measure. So Jigay, can you take us back, talk about Hadoop, go to the roots and talk about why it was sort of inherently not what everybody says enterprise ready and the problem that you were trying to solve. And then we'll talk about how you solved it. Sure. Thanks for the intro, Dave. Hadoop was originally based on Google's work with their MapReduce algorithm. And the paper that they wrote laid out the name node or the metadata for the file system as a fully in-memory operation system. That way it could scale to several thousands of servers without any difficulty. The problem with that though, it's really hard to make it a replicated multi-server architecture. So traditionally all the efforts in making Hadoop more available have focused on cold standby, failover, warm standby, failover. There never was a server, a multiple server architecture. Enter Vandisco, we have technology that we've used in the SVN space for replication peer to peer both within the data center and across the world in different data centers. We took that after our acquisition. We took that technology and we applied it to the name node in a really non-invasive manner. In this way we can add the active active capabilities to the name node metadata. This is something we're offering tightly integrated into WDD, our own distro. We will also offer it on top of CDH and Hortonworks distro when they come about. So support of WDD will be much tightly, much more tightly integrated. But other than that you can see the benefits on other distributions also. So it's an active active, you do data replication over the WAN, so essentially you have a non-stop name node. Correct. And now, talk about the advantages of your distribution versus sort of applying it to other distributions. So first and foremost we are very much the leading edge of the distribution business. We were the first with a 2.x based distribution. We were the first with a yarn which is the next generation resource scheduler for Compute. We're the first to support yarn as a first class citizen in the Hadoop distro business. It's supported as an unsupported piece of software in cloud era. We're also the first to include enterprise ready features such as the non-stop capability both for within a data center and cross data center. Finally we have features such as S3 HDFS which is the capability to move your workload from a public cloud such as Amazon's S3 and Elastic MapReduce into your private cloud based Hadoop. So all these features are not available in any of the other distros. So I mean obviously your technology is more appropriate for mission critical applications. Is that the exclusive target or do you see it as wider than that? Not quite. So our Vandesco Hadoop console which is our management solution is a fully multi-tenant management console. So you can go in and create a cluster with very few pages of information.  For experimental and development purpose this could be setting up a cluster, running some tests and tearing it down all within a few hours. Or if you want to use it for production you can have the cluster running for months on end. We do cover both targets. We expect this to be used by people with Linux administration skills. We don't require you to undergo extensive Hadoop training. We have seen, just to add to that, we have seen from our partners numerous companies, enterprises that are trying to put Hadoop into a production environment but they do have concerns about high availability. And there's that very famous, the name note being the central point of failure. And I think, certainly in the early market we're seeing great deal of interest from companies that want to solve that central point of failure. And we do solve that problem. You know, David, we've heard today and even in other events that for every five Hadoop deployments there's one in production. So that's that ratio that's, do you feel like you can move that needle? We do, and our partners think that too. I mean, we've, we just launched the, what we're calling the non-stop partnership program and we've got seven partners or pretty well known like Hive, the drive manufacturers, Fusion IO, SUSE, we're looking at operating system deal with those guys. As well as CloudWik and numerous other system integrated partners who all think that we can drag that revenue forward for them. So we're the roadmap for them to take Hadoop into production. So that one in five, which I think is about accurate right now, I think we can turn that maybe three in five, if our technology works in the way that we think it will. Yeah, I saw the Fusion IO partnership announced. Caught my eye, it's just, the reason it did is because I often say a Hadoop is the new tape. Think about Flash in this world. Where's the fit there? Well, hardware vendors love us. So why do hardware vendors love us? Because we're replicating data. So we're, for every one box, now they have to have two boxes to gain the high availability. So the hardware vendors would, we're really seeing traction in the hardware space. Yeah, so where do you see us in this whole Hadoop space? Talk about your vision for Hadoop generally and big data specifically. So I think Hadoop to date has been used very successfully in non-mission-critical environments. And when I say non-mission-critical, I mean running sentiment analysis, running data analysis, I want to see Hadoop move into the enterprise in the runtime for replacing relational databases, spreading throughout the enterprise, changing the way in which we look at data, the possibilities that organizations have from data. You know, I mean, just looking at the MIT paper about Obama's 2012 election campaign, that shows you the possibilities that big data unfolds to companies and organizations and enterprises today. I was on the phone this morning to an analyst firm in the UK who were seeing, I mean they think that nine out of 10 of their clients are currently looking at Hadoop big data implementations and probably only one of them have done it so far. So there's a long way to go in this marketplace. I think your Wikibon's analysis on this market has been pretty accurate so far. See you've upped your analysis of the estimates recently which is great news and I think we're going to see a lot more enterprises move into Hadoop and start deploying Hadoop. Yeah, it's kind of been the Hadoop tale of wagging the dog in the last couple of years. Do you see that flipping? I do, I think we're going to end up in a situation where it's going to be very similar. Remember back in 2000, 95 to 2000, I used to be an SAP consultant when SAP consultants ruled the world. I think we're going to see data analysts rule the world and if you're not implementing a big data implementation in your organization for a data intensive organization, you're going to be at such a massive competitive disadvantage that you are simply going to have to look at big data somewhere down the line in your organization. And we're seeing similar adoption, so a lot of CIOs are currently saying we need to implement big data without really knowing what it is, what it does for their organization. But that's going to change over, I think 2013 is going to be the year where organization is going to full production with a lot of big data implementations. So what, Jiggy, from a technical standpoint, you're obviously attacking the mission critical piece of it. What other areas do you see from a technical perspective as to that the industry needs to knock down in order for that adoption to accelerate the way we think it will? So management of data is a significant problem. As big data grows, you cannot do things like have four copies of the data and four different data centers just because you cannot have a file system that runs across the data centers. We plan on attacking that with our next generation file system that can replicate across the data centers. If you have a workload that's running in the public cloud, I believe that you will be considering options for private cloud. Very well-known companies like Netflix have dabbled in both, and we know that the cost advantages of moving workloads into the private cloud are significant. We expect to see vendors offering solutions that blend the two. We expect to see forward progress in terms of bursting loads, workloads onto the public cloud, but mostly keeping the data in the private cloud. These are all areas that I think you will see significant developments in. Yeah, you know, you're making, I think a great point. We've seen Amazon really going after the enterprise, and of course its marketing would suggest that it's actually cheaper to put stuff from the public cloud, but it's always more expensive to rent than it is to own. Absolutely. And I would imagine a lot of your customers are saying, okay, we're not going to deploy in the public cloud. Maybe the right tool for the right job selectively. That's another tool in our bag, but it's the private cloud piece that you see as having to evolve to the point where this thing can really take off. Agreed. We think that there will be a lot of experimentation in the public cloud. There might even be small scale deployments, but given an even playing field where it's easy to move your workload into your private cloud, the cost advantages of running it there will win in the long run. So what's next for WAN Disco, David? What should observers be looking for and tracking you against? What we told Ash Eld is, look out for three things in our execution plan. One, products, check. We've launched four products into the marketplace a year ahead of schedule. Number two, partners, check. We've got seven partners in less than a month. We're expecting probably about 50 this year. And number three is customers, and not quite checked because we've just launched these products and partnerships of course, but I'm expecting us to enter the marketplace in the next nine months with lots and lots of customers. Well WAN Disco, when I first met you guys, I was blown away by your knowledge and your savvy in this space. And we're starting to see execution follow, which is great. So vision and execution usually makes a good top down bottom up success. So continued success for you guys. We'll be watching and really appreciate you guys coming on. Thank you very much. Pleasure to be here. Thank you, David. Take care. All right, keep it right there. We'll right back with our next guest. This is Silicon Angles theCUBE and we're live at the Stratoconference in Santa Clara.


This is the way to do it. This is the way to do it. In today's world, where everyone strives to fend for themselves, young people are rising in support of the community through service. Enoka Odongo has more. Enoka, Karibusana. Asante sana. So give us a background of who you are. Thank you Nyongwesa. My name is Enoka Odongo. I am a co-founder of Grace's Mission Community-Based Organization. These organizations operate in Moroni sub-counting, Kusum sub-counting. I also have a background in environmental conservation and natural resource management. I hold a degree on the same from the University of Nairobi. Apart from that, I also support other young organizations and other young groups in organization development and entrepreneurship support. Good. So what inspires... This is mostly about service to the community. So what inspires your motivation to serve the community? Thank you. When I was growing up, I completely grew up in the rural setup from the community. So when I was interacting with the community from my school, life people would ask me, you go to school and then come back and support the community. So throughout my education, I was thinking, how then can I come back and support my community? So this is one thing that also inspired me and also in my community setup, I look at myself as one of the elites, someone who have gone an extra mile to get some knowledge. So what am I going to do this knowledge, to use this knowledge for if not support my community? Nice. I love you have used the word elite. And most of young people that have completed their studies maybe in the university and they've decided to either advance or do something for themselves. They do it to profit themselves. They do it to, you know, benefit themselves and maybe their family. They do not think beyond themselves, but you've decided to go into service to the community. What is the significance of this? What I am doing is something like giving back to the community. The community has supported me and I remember during one of my times at the university the community came together and find rest towards my school fee. So how then can I give back? How then can I say thank you to the community? So this is one of the ways that I'm actually doing to say, to give my hands back in appreciation to my community. Of course there are young people, many of young people they would want to stay in towns to fend for themselves, but I am of a different opinion that we really need to get back to the community because that's also where we have a lot of opportunities and we need to get back there and support our people. And tell us about Gracia's Mission CBO. You said you're the co-founder. So what is Gracia's Mission and what do you do there? Gracia's Mission is a community-based organization and it was supported, it was founded by youths, young people who were within the community. So we came together and realized that how then can we support the community because when I was working alone I could not do it better. But when we could come together as a community, as young people would also consider themselves as a light, we thought that we need to be Gracia's to our people. That's why we got the name Gracia's Mission. So the organization has four thematic areas and these thematic areas were realized after we done a research within the community and realized these are speak to the needs of our people. So we look at agribusiness because livelihood of many people relies on agriculture in the community. Number two, we're actually looking at the climate action and environmental conservation because in today's world climate change impacts a lot in cuts across various sectors, energy, health and even the agriculture is also impacted. And then we look at the entrepreneurship because we need people to also venture into this and we believe that young people and women once they can is supported and went into entrepreneurship then their life can change. And finally our fourth thematic areas is in research and advocacy because we believe in data and in a data technology. So we need to use data, data driven program to support all these programs across. So you've mentioned a few concepts that I'm keen for us to discuss. The youth empowerment, climate change, data involvement in such things. These are concepts that in layman's language the elderly or the community in the rural areas do not fully understand. They understand that Maishaime Panda they understand that the way of living is the cost of living has really increased climate change either it's too hot or too heavy floods flooding and everything. How do you package such messages for them to understand the impact of them doing something different behavior change? I think you I know that's very true and of course those who are part of the generation would understand it but through this that's why we sometimes organize what is called farmers field school. So when we get into farmers field schools we gather and mobilize farmers to come together and through this we have to take them through the training. So if we have to do that of course we have to use the layman's language that they will understand because they won't understand climate change they won't understand the data but if you tell them what's happening which they are also seeing because if you look at the impact generally the evolution in agriculture we used to have abandoned harvest before but this has been changing reducing after every year the temperature actually been rising so they understand this well so this is the approach in which we are actually using for them to understand what we are doing in the community. And what about entrepreneurship which areas of entrepreneurship do you focus on? Entrepreneurship is wide so there's actually business entrepreneurship a business you just get involved in the business but entrepreneurship you have to look at what gaps there is in the community that I can venture into so this is what you've been doing and primarily been conducting entrepreneurial training for youths and young people and also women so through this of course we support them through business management which we take them through the trainings and we also ask them to identify gaps which are there in the community because the only way you're going to breathe the gaps is by providing a solution so we ask them to look at it in the business perspective because you're not going to talk to someone but at the end of the day even these young people want to make money out of this so how can you make money by providing a solution to a problem which you read in the community? And what change have you seen since you started the work that you're doing? I would say you've been impressed by the change the response that actually been shown by young people because in our trainings we develop what is called actionable points or action plans so we need young people at the end of the day we need just to see that our training that we do impact we don't always just do training for the sake of training people but we want this to impact so in most our trainings what we do is we ask young people to set their action points to set their timelines what they want to see achieve at the end of the day Nice On climate change you've said that you go to the communities and explain to them these things that they are seeing happen why they are happening and what can be done so in your organization the gracious missions what action plans do you have to help alleviate such? Thank you climate smart agriculture is one of our key points that we take into we take very seriously because we cannot ask young people just to venture into agriculture because you see how agriculture is much impacted by climate change and when I talk about agriculture being impacted by climate change we have drought a prolonged drought of course we have floods that comes we have insects pest investations and we also have other diseases so for us to oh if for young people to really get through this they need to make it climate smart it's introduce technologies or adopt those ways that would make whatever they are doing resilience to the impact of climate change and this one is one of them is venturing to poultry for example poultry is not affected by climate change is not affected by the prolonged drought is not affected by the floods either so we are also asking young people to venture into other technologies just as big keeping they are also not affected by climate change so and also we also have other technologies we have other use of local available materials such as we have bags cement bags we have local containers so these ones we actually supporting them to create some kind of guidance so these guidance you can actually have your daily vegetables out of it and speaking seeing that how technology has improved and that different things different ways in which farmers are making you know improvement on their farms you know using different types of agricultural products fertilizers and some of them affect the climate in a different way so how do you go about mobilizing the use of you know favorable products for the for the crops thank you one of the things that we've been doing is we're actually currently in the process of setting up a demo farm that's going to train young people on the use of some of these alternatives because of course in the conventional way of doing agriculture people is fertilizer people use the paste sites but we actually just trying to engage young people in the use of what's called agroecological technologies we have like formulation of locally available organic paste sites that can be applied to these crops we have organic fertilizer that also already in the in the in the market today but young people also need to create their own so that they need to cut that cost because in the rural setup where agriculture takes place there's already farm yard maniawa among other technologies that actually are available within the community yeah I love how you're speaking a lot about farmers are you a farmer yourself yeah I am I am a farmer I do aeroruts I also do african leaf vegetables and a bit of poultry improve kinedge why did you decide aeroruts and the different types I just as I have told we're looking at the gaps in the community where can we enter as an entrepreneur so we actually have a very big huge market in in aerorut and also as I've told you poultry is not affected by climate change so and then it's also has a huge market because in kisumu town for example a lot of poultry or chicken that is being eaten in hotels does not come from kisumu county so kisumu as a county has still been described as a consumer market we're not producing our own food that fits us but we rely on other counties yeah so that's actually why I decided to venture into those and also I've told you about the african leaf vegetables it was a huge market and it's also very nutritious today if you have for example people maybe 10 people almost half will tell you that they don't want to eat kelsos kumawiki they prefer kinedge african leaf vegetables so it has a huge market and also resilient to climate change it's not affected by it's adversely affected by climate change yeah so we find a huge opportunity within those setups and how do you mobilize this message how do you reach out to the community what strategies do you use as an organization as an organization we're actually cheated within the community and our office is also within the community our members who are youth are part of the community so once we have this message and each one of these are members we currently have around 50 members who are youths within our organizations and these youth are also part of the community so once we have this message they've spread it out to other young people and as well as other farmers today we continue to receive flock of farmers who come to consult with us in our offices which eventually can they engage in which crops can they grow which technologies can they apply in their crops for example their crops are affected by various diseases various pests they actually are different stages they don't know which kind of for example fertilizer to use should they use urea should they use sulphate should they use JP so we give them this so our office today acts as a resource center for farmers in the community and how has the community or society at large adopted your idea actually in various farmers field school that we organize they actually very happy and we've got a lot of people who come in and telling us we love what we do in place continue and just to mention in one of our field schools I have interacted with one of the head teachers of primary schools so this head teacher said no you know I am so old I cannot get this information so please give us this information we love it you're talking constantly about farmers field school how do you what is it what is it you know and how do you go about it a farmers field school just as it said it's school so school people learn in school so farmers come to schools but we create it in the field so we go to where farmers are so we go to for example identify a farm and then immobilize farmers to station at that particular area so through that we go with our team and then we train them about different technologies and also farmers also used to get interact with us and what we do we also do collaboration with the government and our partners so through this farmers also get to engage with government one on one so it's actually been a beautiful interaction and I would say community really love that after that reason and I can see that you've come a long way how has that journey been since you started your CBO it's not been easy of course it has a number of challenges when we actually started the CBO you know you want to start but how are you going to make it how are you going to make people believe that you're doing something that can support their programs so it's not been easy but we try to use for example my past experience in organization development which I have accrued working previously with a similar organization and through that we got engage with few farmers who of course through that engagement with few farmers spread this information to other farmers and other youths who have now come to embrace what you're doing you've said something very catchy you have the idea but you don't know where to start or how to start so what characteristics must I have in order to start something and you know have it reached the level that yours has thank you you know when you have a dream we have something that you want to do but then at the end of the day you want to see these things achieved at the end of the day of course you have to we will pass through a lot of obstacles a lot of challenges so you must be very persistent and you must be persuasive so that you get these communities to believe people to believe what you want to do so you must be persistent you must be persuasive you must have a good negotiator and of course you need to be a good mobilizer as well and speaking of obstacles what have you what kind of obstacles have you personally experienced during your journey and how did you manage I transitioned from one organization to another because I believe that I personally I had something that I want to do to the community something that I want to use to transform the community so when I transitioned from the one organization where I was before I believe that there's something that we needed to push through the community that I did not have the power to push through so that's why I gathered other few friends and then we started this organization yeah but from that point how then did we would we get out of one point to another so it was not very easy but we had to enjoy and we get into the next level many young people start something of their own and it ends up failing after maybe two years or three years where do you think this is and how can they avoid that I think it's about to believe what you want to what you who it's about passion because of course many young people would start farming would start business but if you're not passionate about that thing of course you won't hold into it so passion is very important if you're passionate about that it would actually sail through but of course we have some people who start with the mind of I need to make money out of this so if you stay even in the organization so even some people start the same organization because they want to make money out of it they want to don a fund so when you wait for two years three years even a one year and there's nothing coming through of course just leave it and go away so passion is very important in this passion is very important and speaking of you said that you decided let me collect a few friends of mine so that we can start this what motivated you to start it with friends other than starting it on your own other someone who says if you want to go far go along but if you want to go further go with people so that's what drove me to working with people and working with friends and of course friends and more people give you more energy more support and I've personally explained that because sometimes you go through you actually use your own resources I've used my own resources so sometimes you find yourself at a point that you really want to drop but the friends say no let's move let's move on so they've actually given me a lot of energy in morale in doing this so I would actually recommend that if anyone wants to start it's always good when you get together and move as a team it's always beautiful and gives energy and more passion of course so in addition to Gracia's mission what other activities are you involved in currently I was nominated to be part of a Board of Governors of Kiguchi Evocational Training Centre and I think this is from my activities and my work in the community so I'm in charge of technology in that institution I also serve as a value chain lead I'm in charge of value chains agricultural value chains lead in one of the organizations it's called Kisumu Young Agrippinois so this was an umbrella of young farmers in agribusiness in our agrippinoiship in Kisumu County and I'm also a farmer I think I've also mentioned that and personally I'm also a consultant I support also small organization in the prinoiship business development grant and proposal development yeah I'm also support other young people in life skills and into an employability skills set you have many hats what is your secret just passion passion and what what we do from the community because most of this thing that we do we do them from the bottom of our heart and then we also do them voluntary so once you do this in voluntary you get to learn a lot in the way yeah and so if I I'm interested to get in touch with you and maybe partner with you as an organization where can I find you uh wherever office is in umbei there's a place called umbei it's along Ahiromi Wani Road eight kilometers from Ahiromi town yes yeah and maybe my contact is zero seven eleven nine eight two five nine zero okay yeah and uh so you this is a quite a positive initiative you know creating solutions where you feel there is a problem and advocating for different changes in society what advice do you have to young people or community who desire to see that change that they want to see but they lack maybe the motivation to start or they don't know how to start or they lack the the knowledge thank you um I think one of the energy that we get is that we are and sometimes when I see my age I would want to be more younger so that I can do these things I've interacted with people age and they said me I wish I did what you're doing when I was at your age so we have a lot of power as young people and there was a lot of opportunities that are also coming away as young people and so it's young it's the young people who can transform our communities because people who are already aged would not think about something new would then bring something new to the community but it's the power of young people so it's only the young people who can make that transformation and let us think about the community let us think about other people when you think about other people of course your ways will open up but of course you have a couple of other people who think about themselves so it's always important to think about other people and I think I love one of the advice from one of the Chinese below news it's called Jack Ma is the founder of Alibaba Jack Ma says that when they started Alibaba they were thinking how can we support other SMEs you know so through supporting other people other SMEs today Alibaba is one of the biggest global companies that we have so let us think about how can we lift other people other people how can we lift up other communities because we have the knowledge we are flexible now we can do research and this can adapt to the community's transformation wow I love your call to action it's very important that young people understand that offending for yourself is important but service to the community is will guarantee much success yeah so you have had it as a young person you have a lot of power you have the power to influence change you have the power to bring success to your community and to yourself to not neglect you know the power of collaboration take advantage of it take advantage of the knowledge that is you know you can get it anywhere the internet is present digital technology has improved greatly and you can use the information to start something of your own and guarantee it to success with the power of collaboration this has been Youth in Action I am Nyongwesa Grenis see you next time


Progressives are masters of indignation. They see injustice everywhere, whether political, social, professional, or economic. Pretty much wherever humans interact with each other. Regardless of the context, their solution is always the same. More government regulation. Progressives love to use rights language. They like to say things like, people have a right to health care, they have a right to a job, a right to a living wage. It's a matter of justice. Now, while these statements certainly sound nice, there's just one problem. They ignore reality. Before talking about how things should be, it would seem wise to first understand how things actually work. If you want to understand how the world works, you must understand economics. It's not optional. As Murray Rothbard so accurately said, it is no crime to be ignorant of economics, which is, after all, a specialized discipline, and one that most consider to be a dismal science. But it is totally irresponsible to have a loud and vociferous opinion on economic subjects while remaining in this state of ignorance. Progressives have a particularly poor track record when it comes to economics. Not only are their theories confused, but they've concretely demonstrated for a century that their central planning does far more harm than good. The Soviet Union was a left-wing paradise. Indeed, examine the rhetoric from the old Soviet Union. It sounds eerily similar to today's progressives. And, of course, if you know history, the Soviet Union couldn't have been a larger economic catastrophe. Any political theory that's devoid of sound economic reasoning is useless at best and dangerous at worst.  It's pretty much a shell with a nice glossy paint. Imagine a blind artist trying to paint a perfect replica of whatever building stands in front of him. But he doesn't have a paintbrush, any paint, or a canvas. All he possesses is an old napkin and some dirt. That's essentially the political theorist who doesn't understand economics. Whatever the artist's final product looks like, that's the equivalent of a political theory without economics. So before talking about what wages, jobs, and healthcare people are entitled to, we must ask, how do jobs, wages, and healthcare come into existence? How do these systems work? Economic goods and services do not appear in nature. Poverty is the natural state of mankind, and wealth is the exception. So how is it that humans become wealthy? Well, it's not by government decree. It's not through central planning. It's not through strong declarations of intent. It's through markets. I won't make a bunch of economic arguments in this article, but a huge amount of information is available online which teaches the basics. A good rule of thumb, if you don't yet understand why the minimum wage causes unemployment, then keep digging deeper. All economic truths are based on one foundational principle that resources are scarce, meaning that there isn't enough stuff for everybody to have everything that they want. Thus that implies necessarily that resources have to somehow be allocated. But it's not an easy question. How should resources be allocated? Every country has a different economic situation. There's lots of diamonds in South Africa, lots of oil in the Middle East, lots of manufacturing plants in China. How should they all get coordinated? Contrary to what might seem intuitive, the best allocation method is to have no pre-planned allocation at all. You simply let individuals trade by themselves, absent planning or design, and wealth gets created. Moral declarations like there should be no child labor might sound great, but they're economically illiterate with really big real-world consequences. Imagine I said, General Motors should be producing three times as many cars at half their current price. That way more people could afford them. Now, yes, a lot of people would like that idea, but it's completely ignorant. It overlooks countless economic realities and questions like why do cars sell at their current price in the first place? Given the limited amount of steel and rubber in the world, how much should be allocated to producing cars versus producing machinery or equipment or other goods? Selling at half the price? Would GM even bother making cars at all? You could easily name a thousand other questions, all which need answering. And in very short order it becomes clear there are too many moving parts to the economy to think that somehow you can plan it out. There's too much knowledge for anybody to have. Instead, markets use this extraordinarily efficient pricing system to allocate resources to the most efficient and optimal use. Cars are not unique. This kind of allocation takes place with literally every economic good from healthcare to tennis shoes in a marketplace. Economic laws do not change depending on the good. The production of sweaters is not intrinsically different than the production of food, water, housing or health services. Yet without fail, progressives overlook these facts and rely on emotional rhetoric instead. They say, but I need healthcare to live. I need a living wage.  And unfortunately their rhetoric persuades a lot of people. And if you couple this with the democratic government you've got a recipe for systemic poverty. You may have blunt news for the progressive.  You aren't dodging killer consumer products because of the FDA. It's despite government regulation that wealth has created. You get fed because of functioning prices, profits and losses within a market system. And without it you would undoubtedly starve regardless of the law. This is the history of communism. You saw it in the Soviet Union, you saw it in China and you're currently seeing it in Venezuela. Now I admit talking about cold economic laws does not have the same rhetorical power. I mean it sounds wonderful to say everybody should have a free college education. Yeah, who could object? But that's not a world most people want to live in if you actually understand the economic tradeoffs involved. So let me give you an example. I took a recent trip to the hospital. I was getting outpatient treatment and I needed a place to park. I had to use a parking garage. But I had to pay for the parking garage. For parking my car so that I could get essential healthcare services. What kind of greedy capitalist pig would force me to hand over money to park at a hospital. Hospital parking should be free. Doesn't that sound great? Well thank goodness I didn't get my wish because what would have happened with free parking for everybody when you live in the real world where there's a scarce amount of parking spaces? The answer is obvious. I would have never found a spot. If everybody who wanted to park in that area for the local restaurants, the park and that's whatever. They were all allowed to pack into the garage free of charge. I would have been unable to park there though I really needed the spot. So we have a solution. Prices. There's only a fine amount of spots. Instead of having free parking for everybody we need parking for those who really need it. I.e. for those who are willing to pay for it. Now it's not a perfect solution but because there's no perfect solution. Scarcity necessarily means that some people's desires will remain unsatisfied. Prices are simply the best possible solution given the imperfect circumstances.  The world would be better off if that campaign lost. But unfortunately this kind of counterproductive nonsense is precisely the modus operandi of progressives. They take moral positions, not rooted in reality. They get their signs out and they persuade voters by appealing to emotional rhetoric. As Thomas Sowell would say on a perpetual quest for cosmic justice. So fundamentally claiming that everybody has a right to affordable housing is no different than claiming everybody has a right to a refrigerator to television sets a car, several pairs of shoes and broadband internet access. Never mind any concern for how these goods actually get produced or what the concrete effects of government micromanagement would be. I suggest all political and social theories be first rooted in reality. They have to be grounded in sound economics. Otherwise they are hopelessly doomed to inaccurate and fanciful conclusions. If you like the sound of these ideas, if they resonate with you, then make sure to subscribe. And if you want to help create more content like this, then check out Patreon.com slash Steve Patterson and you can help support the creation of a more rational worldview. To read this article or to learn about my books check out stevedashpatterson.com


Have you ever been to a funeral? But guys like this, if you go and tell him, I have got one billion dollars for you, not interested. You tell him, I have a mountain of gold for you, not interested. You go tell him, I have the most beautiful woman for you, not interested. For all these things, all his life he was running around, now suddenly he's not interested in anything.  Actually, there's only one thing you have, life. Life is all you possess. Rest is all in your head, this imagination. How you keep this life, how you hold this life, what you make out of this, this is the most important thing.


So this is not our Eid, it is not Eid in Kashmir, it is not Eid in Jammu, it is not Eid it cannot be because it is against the Bhoberi Akhushri. This as I would want to retire it again and again, this is not a celebration, our narrative is not to celebrate, our narrative was to observe because they can be no Eid in Kashmir, they can be no Eid for anybody who belongs to that state and understands what that state has been through. The only thing that we could celebrate was the strength, the hope and perseverance that people of Jammu-Kashmir inherently have and to let the people know out and about that even in times of distress people of Jammu-Kashmir do stand together and we are in solidarity with people who are, we call our own back home and people who are here, who might feel alone at the time to observe the entire thing together, Eid is one of the biggest festivals for the dominant population of Muslims there and is being celebrated by not only the Muslim population but everybody residing there with out and out fervour. So I am sure there are no markets, there are no hugs there, there is no one to celebrate with so we are also not celebrating here but we do in a way moan, moan for not being able to talk to a family, moan for the entire undemocratic and inhumane attitude that the government of India has shown towards the state that they most dearly love, claim to love rather. Basically we have all gathered here to let it out that we are not celebrating, we are just observing, we are just making it known in common memory, in common history that there was a Eid that was celebrated without any news from loved ones, any news at all. Things are very bleak, what we are hearing from the national media are mainly false reports, there are some reports coming out of alternate media which are definitely scary and today after I think 8-9 days in the morning I was able to talk to a colleague who lives in a remote area, I won't mention the area and we were able to speak because the tower from Chandigarh catch is there and he told me that even in those areas where which have never seen militancy things are not good, army is everywhere not letting people go out for very long and what he also told me that most of the videos which are coming out are being made by the army and they are asking people who work for the army because there are people who are employed with the army, they are asking them to say that we are happy and everything is fine here so that is one version, there must be many other versions also. As we know that some helpline number has been given to the government by which they are able to speak to the people who are studying outside, but in that too there are so many difficult turns, so many long lines and when someone's turn comes then the army officer stands on the side and hears that there is a problem, if there is any information about the actual situation he is told that you just say that everything is fine here and more than that he has no permission to say anything. People have not been able to get back to their loved ones, people don't have no news from their loved ones and for Eid to be celebrated that way is specially desolate, it's specially desolate it's specially sorrowful, it's specially you know it wrenches your heart. We are quite perturbed by what's happening and it's a shame, it's an attack on the very federal structure of our country and diversity. Even if the majority was for the decision then it would have been very evident. You have literally locked down an entire valley with a population of more than what, 6-7 million and you have took all means of communications from them, you are not letting media travel around we are not just talking about Srinagar, like Kashmir valley has what 15 districts and nobody knows what is happening on the other parts in other districts. While it concerns the people of Kashmir today but I think nobody should be under any misconception that it's going to be restricted to Kashmir, in fact it hasn't been. The last few years we have seen how there have been continuous mob lynchings across the country how there have been continuous mob lynchings of ballads of Muslims and people from various marginalized communities have suffered for various reasons because of the policies of this government. So let's also be clear that today it's the people of Kashmir and the constitutional promise that was made to the people of Kashmir during the accession of Kashmir has been violated so grossly and so blatantly and if they can violate the constitution so blatantly today for Kashmir they can do it for anybody else, they will do it for anybody else. So let's be prepared and I think this is why it's important that people from different movements people from different marginalized communities, people working in different movements need to come together today, these are not individual struggles any longer. This is about these are struggles for the dignified lives of the people of India. My dear son, the whole day of motion will be a piece, we love you. He said while he dropped life, he will slow it down and dumps you and it will be torn. Everything is not so quiet. But if you remember right now, if you remember right now that I promise peace in your way, I will celebrate you forever.


Hi everybody, welcome back to my channel, Drew here from Lone Fox, and today's video is another tip-driven video, but these are some of my favorite videos to watch here on YouTube because I feel like I gained so much insight from other people, and today's video you guys is one that I really do think you're gonna get so much insight on, whether it comes to your next design project, your next DIY project, whatever it might be, I think some of the tips and tricks I'm sharing are gonna be extremely useful. And you might be asking yourself, what kind of tips and tricks will you be sharing, and today's video is primarily focusing on tips and tricks kind of that help out in the design process, and actually more so in the design process of making over a space. So these are tips and tricks when it comes to painting, when it comes to hanging curtains, when it comes to like the actual process of making over a space, these are things that make that process so much simpler. We have a lot of information to cover in today's video, but before jumping in, I do want to mention that if you're not already, make sure to subscribe to my channel. I post brand new home decor and DIY content every single week here on Loon Fox. What was I about to say there on Loon Fox? And I'm also on Instagram and TikTok, both of which are Loon Fox home. And lastly, my online shop is back up, you guys, if you're in the market for any home decor, accessories, gifts, whatever it might be, LoonFox.com is your place to shop. But let's go ahead and dive on into our first hack. This first tip here is one that I have definitely seen on social media before, whether it be TikTok, Pinterest, YouTube, I have seen people use this tip and hack, but I feel like it's never really been popularized before. So I wanted to go ahead and share it with you guys because I really do think it's innovative for somebody that maybe has struggles when it comes to hanging curtains or they really want to get that nice pleated look. And that's actually using toilet paper rolls to separate and kind of space out the pleats of your curtains in order to get a more symmetrical and uniform look in the end. And by this is essentially you take and you save your toilet paper roll. So when you get to the end, just pop the roll off, save it, and you can actually use this as a spacer for any pull pocket or grommet style curtain. So any kind of curtain that has either a hidden pocket or a grommet that the toilet paper roll can hide behind, you're going to essentially kind of layer these in between every other panel or every other loop of your curtain. And then in the end, it's going to space out your curtain. So when you go to open them or close them, it just gives them kind of a nice spacing and it essentially allows them to lay a lot neater on the window pane. And I think that's really nice, especially for somebody that gets annoyed by curtains because I know a lot of people really want their curtains to lay extremely symmetrical or just lay properly and it bugs them when they don't. So I think this tip is really great just to all around get that symmetrical look without having to kind of space them out as you open or close them. Also seeing people use just like cut up PVC pipes. So really anything or even like paper towel rolls, you can totally slice those up as well. It's really just a clever tip. And I think it totally elevates the look of any plain curtain panel. Moving into our second tip. This is all about hanging photos that have two hangers on each side. If you guys know what I'm talking about, I feel like those are the most annoying. I hate when I go out and I buy a mirror and I'm looking forward to hanging it when I get home and I just want to have one little nail hole in the middle because I know how to properly do that very easily. You get home and there's two nail holes on the left and right side. So you have your two picture hangers and I always find that so challenging when it comes to hanging because you really have to find the perfect distance. They have to be level. If you like nail one higher than the other one, it's going to hang crooked. So I ran across a TikTok. I believe it was a TikTok of somebody using painters tape to hang up these photos. And I thought that was the most genius idea ever. And I first utilized it actually in my grandpa's room makeover. So I went ahead and I grabbed a piece of painters tape. You just take a piece that is long enough to stretch from a picture hanger to picture hanger, lay it across there. Mark where you want your two nails to go. And then on the wall, you're actually going to transfer that tape on the wall and make sure that it's level, either using a laser level or a level itself just to make sure that your tape is nice and level. And then you're just essentially allowed to nail holes directly over the top of your tape. And that's going to give you the perfect placement for your picture every single time. So I thought that was extremely genius. And this also works as well if you just have one hanger in the middle so you can just put your tape across, cut it perfectly to the width of your frame. Then mark where the hole is going to go. Transfer the tape to the wall, add your nail hole and you are good to go. So it's extremely simple and easy. It's really not too hard. Most of times when there are two picture hangers as well, I feel like that traditionally means the piece is on the heavier side or it's larger and it needs the support of two nails. So just using this process also makes it a lot easier to then go ahead and hang it up if you're solo as well, like traditionally I am. So I'm able to hang this up super easily using that tape method.  Hack number three is one that I actually learned when I was working at West Elm, which was quite a few years back, but it was really my first look into interior design. And it's where I started dabbling into making over my own space and started picking up on designer tricks and tips because we did have a ton of designers on the floor at West Elm who would help out, you know, people when they're shopping for furniture.  So let's say you have an 18 by 18 pillow cover. They actually recommended that you purchase a 20 by 20 insert for that pillow cover. That's just going to make your pillow look a little bit more overstuffed, which in the end results in a more luxurious looking throw pillow. And I know that tip is like such a simple one. But next time you're out purchasing throw pillows, just size up a little bit on your insert. It's going to overall make the pillow look more luxurious. It just looks nicer on the couch and it's not flat. They go from 18 by 18, you have 20, 22, 24, 26. Just make sure that your insert is just a little bit bigger than your cover for that luxurious kind of plush look. I'm probably talking so quickly whenever I get into these videos and I'm excited to tell you guys my tips, I start talking so quickly. So I'm going to try to tone it down for tip number four. And this one is all about plants and just basically making the plant look more elevated than it actually is. So a great way to do this is let's say you have a faux tree. Most of the times when you purchase a faux tree, I have a faux fig tree over here. I have an olive tree over here. They come with a really, really small base to them. And you really do want to get a larger pot to make it overall look a lot nicer. And so something that I think that everyone should do when they do this is actually get a pot that is quite a bit larger than they think because you can actually elevate the height of your tree. When you start getting into those larger sizes, the prices really do jump quite drastically. So by that six foot tree, but get a pot that's actually quite a bit larger and more substantial, you can easily stuff the bottom of your pot with boxes, extra trash, old clothing, whatever you have that you want to utilize in the bottom of that pot to then basically heighten your tree or raise it up in the pot. Normally, guys, you would then go ahead and cover the entire top of this with moss. So like maybe fill up the edges with newspaper and then add like a moss layer on top to hide it, but that elevated our tree. That'll overall make your plant look so much nicer in the end. And I know it seems weird to like shove some boxes or trash in the bottom of your plant, but it's going to be concealed by the pot. And in the end, it's just going to raise the height of your plant, making most of it show out of the top of the pot. And in the end, just make your plant look larger and more expensive than it actually is. And this tip works for smaller plants too, not just trees. Tip number four is one that you guys are definitely going to recognize if you have watched my makeovers throughout this apartment space and mainly just the living or makeover in the kitchen makeover where I used electrical tape to create crossbars on my windows. And I know that sounds strange, electrical tape on your windows, but I have black framed windows or I created black frame windows. They were essentially just, you know, framed out in white.  But I wanted the crossbars on the windows themselves to match so that it looked more like an industrial style window. And the way that I got this was actually just using electrical tape right over the top of the window. And I was able to create those crossbar sections, which in the end made the window just look a lot more expensive. It made the look of it just a little bit more designer and not as bland and boring as it was prior. And I know that my windows personally already had that little white metal cross panel on it, which I just essentially covered with the tape. But you can totally do this on windows that don't even have that white piece to start. Just simply tape the tape right over the top of the glass. And that's all you have to do. I have done that before as well. I had to do it on one of the windows in the kitchen because one of them randomly didn't have the crossbars. And it worked great. It looks exactly like the one to the right of it. Somebody mentioned on TikTok about how if you want your darker paint colors to come off as dark as possible, always use them in a matte format. So whether it be a mat or an eggshell, use those two options as opposed to a gloss, a satin or a semi-gloss for a dark color. And that's actually because the glossier finishes on paint on the wall reflect more light. So if you get a lot of window light or just light in general, those glossier colors are going to reflect them, making the color actually look lighter than it is, whereas matte ones actually kind of absorb the color a bit. So it actually makes the color look a bit darker and just overall true to its actual tone. I know how frustrating it could be when you want to place a lamp somewhere and you have no outlet or just a lamp somewhere. Even if you have an outlet, but the cord is going to show. How annoying is it when you have to drape the cord down and then it's popping up from behind a dresser and it's just kind of going out on the wall and it's there. I know, so, so frustrating. But you guys, there are actually rechargeable light bulbs that you can purchase on Amazon. And essentially, you can charge these for about 12 hours, pop them into a lamp and you can put the lamp absolutely anywhere. You do not have to plug it in. Every light bulb is essentially different. So some of them have an app for them. Some of them have them on your phone. I'm a voice command, whatever it might be. It essentially allows you to use a light bulb without having to have an electrical source to plug the lamp into. Great example of this for myself is down in my entryway. I actually have zero outlets down there, but I would love to put a lamp down there or just some form of light because when we come in at night, it is pretty dark. So I'd love to be able to know when walking up to my house, I can open my phone, switch the light on and it's on when I walk into the door. So that's a great option for you if you do not have an electrical source, purchase a rechargeable light bulb and they actually last for quite a while and you just simply recharge them when they die, pop them back in and you're able to utilize them again and again. This is also kind of something I featured in the past when I did puck lights in my bedroom. Those are just simple battery operated lights which I popped into my sconces and I have a little remote control which I can control turning them on and off from my bed, which is really nice and I didn't have to hardwire them into the wall. So that's another option as well. This tip is one that whoever came up with this is just so genius. And I feel like a lot of you guys might know about this, but if you don't, this will change your painting game. And this is when you want to go in and paint any form of color that's contrasting from your original color. So let's say you wanted to do an accent wall in your bedroom and it's going to be a dark green, but all the other walls are white in there. But you're kind of scared, you know, putting the paint on the walls.  And especially with textured walls, you do see that more often. So a great tip is actually to put your paint down and then paint over the top of where that color is going to be going. Paint over the top of that with your original wall color.  That's going to actually allow the white paint to bleed first and kind of create a seal. And then when you paint the green over the top of it and you pull the tape off, the white paint would have already bleated. But it bled onto the former white paint. So it looks like a perfectly clean and crisp line every single time. And I love this.  That's under the tape.  Our second to last hack comes in handy for anyone that's installing new hardware in a kitchen, on a piece of furniture, on a bathroom vanity, whatever it might be. I have utilized this tip in the past and I think it's really nice.   So a great tip for this is actually to use lipstick. Apply a little bit onto the holes on the back or the screws, whatever it might be that's kind of sticking off of your handle. Then use that lipstick as a stamp to transfer it from the handle to the cabinet door or the nightstand door, whatever it might be and then remove it. You're then going to have your lipstick spots which you can use as drill holes. So you're just going to drill right over the top of those, wipe away any excess lipstick but that's gonna give you perfect placement every single time. And then I also like utilizing something like a laser level or a ruler in that process just to ensure that the placement of it is centered still because you can't really, you know, make sure that it's perfectly centered if you're stamping but that just makes the process a bit easier. And I do find that that then allows you to have a perfect width for those screw holes. You can also totally do this and transfer it to a piece of paper just to get that width. Then use that paper and actually put it on the cabinet to make sure it's nice and straight. If that makes sense, that's another option just to kind of give you a little bit more guidance in the process of ensuring that that handle is gonna be straight on your piece once you add it on. And guys, we are on our last tip here and I wanted to say this one for last because I feel like I have talked about this multiple times on my channel and this is when it comes to creating a gallery walls. Now this back here, it's not the craziest gallery wall there's just three images in it but when you do add more and more it does get a little bit daunting when you have to start hammering all the nails into your wall. You wanna make sure the placement is right and it can be a little bit scary to kind of create that commitment to adding so many photos to a wall. So a great way to do this is actually to create templates for every single picture. So I'll grab all of my frames and I'll actually create individual templates by laying it on top of some butcher paper, newspaper or printer paper, whatever you have that's large enough poster board works as well. I trace out the shapes of all of my frames and I also transfer over the nail hole placement just by kind of finding it and pressing on the paper. You can kind of find where that nail hole is. You can add the spot there and then you can kind of write on there to what the artwork is that's gonna be there. Once you have all of your templates created you can transfer those over to your wall and add them on the wall using you know some removable masking tape and it basically allows you to get a visual for how the placement can be and you can go ahead and add and remove, adjust and edit your gallery wall prior to having to actually commit to it. And the great thing is that once you have all of your templates up on the wall all of your nail holes are in the perfect spot. So then you can go back over the top of your template add the nail and then pull the template right off and add your frame and you have a perfectly placed gallery wall. And those are my 10 designer innovative, clever hacks when it comes to making over a space. So those are just tips and tricks that I have used when it comes to any form of transformation I'm doing in my space large or small if I wanna add a gallery wall, if I wanna add a simple framed piece of artwork, if I wanna swap out the hardware these are just things that I have used that I think make the process so much simpler and I hope that this helped you guys out as well. So if you are not already, make sure to subscribe to my channel. I post brand new home decor and DIY content every single week here on Lone Fox and there are a ton of other tip driven videos on my channel. If you guys wanna check those out I'll leave some in the cards above. We have small apartment hacks, organization tips, decor hacks. There's a lot on this channel you guys. So definitely subscribe and also make sure to follow me over on Instagram and TikTok. It is just Lone Fox home for additional content. I'm always checking in with you guys over there. And yeah, I guess that's really all for today's video. I hope that you loved this one and I will catch you guys in my next one. Bye.


I'm very glad to be here today and welcome, please thank you for attending this session. So this session is about Mac Ruby. It's a version of Ruby that runs for the Mac, especially for the Mac. And my name is Laura Sensoniti and I work for Apple in the core operating system team. And forgive my horrible French accent, please. And so today's agenda is very simple. First I would just give an overview of what Apple and Ruby is doing. And then I will focus on co-code development with Ruby because it's a very important feature that we want to promote. And then I will do some demos and then there will be some time for questions, I hope. And we really love Ruby at Apple. And Ruby started, it started in McWestern since 2002. It was 1.6, one of the first versions, and then it was updated. And more recently in Lopart, we are shipping Ruby Cocoa, Ruby Gems, Rails, and which is kind of cool because since Lopart, we are supporting co-code development with Ruby. So you can write co-code application in pure Ruby and we provide compatibility across future OS releases. So if you write an application now, it won't break with the next versions. And for the future, we would like to ship Rails 2.x, whatever, the latest version, passenger, and we are interested in Mac Ruby, of course, which is the main topic of this talk. And our goal is to make McWestern the best platform for Ruby developers. And to do that, we need to make Ruby a first-class citizen in McWestern. And to do that, we need to make Ruby a first-class co-code programming language in McWestern. And this is the very important part, I think. And why are we focusing on Ruby right now? It's because Cocoa, the big framework of McWestern that you use to write co-code applications, is mostly written in Objective C. And Ruby and Objective C are conceptually very similar because they both inherit from small talk. So they are both dynamic languages. You can, you send messages. You can reopen classes at runtime. You can create new classes at runtime and things like that. But the key is that Ruby is pure interpreted while Objective C is compiled. So it's really cool to associate both runtimes because you can do things in Ruby that you can't really do in Objective C. And in 2006, I gave a presentation here, not here, but in Denver, about Ruby and McWestern, especially about how we bridge Ruby and Objective C. And Matt's right on this blog that after seeing this, we end up feeling wasn't Ruby made for McWestern. And this is really what we, most people at Apple have been thinking the same. Because the Objective C runtime and the Ruby runtime are very close. And by the way, the computer in the background is not a Mac. I don't know what kind of computer it is, it's black. Anyway, it's not Matt's computer, right? Sorry, I picked this picture on Google, so that's not yours. And this is the world development stack of McWestern. And it has four different layers. The thing is that every layer depends on the layer above. And the Darwin layer is the core of the OS. It's completely free. And it includes the kernel, but also the Lipsy and some C APIs. And then we have the graphics and media layer, which is all the OpenGL and core image stuff. You can use that if you want to customize animations or to custom graphic stuff. And the application framework is the most important layer. It's in this layer, we'd find cocoa. But you will also find things like address book or a search kit or things like that. Frameworks that you want to use to build your applications. And then there is the user experience layer, which includes things like spotlight or quick look. And it's there if you want to improve the global user experience. But the nice thing is that these four layers are written in C and Objective C. And in Leopard, we are supporting them in Ruby. And we are supporting them with a project called Ruby Cocoa. And Ruby Cocoa is a bridge between C and Objective C versus the Ruby 1.8 runtime. So it means that from Ruby, you can call C APIs and Objective C APIs. So Objective C is purely dynamic, so it's very easy. But for C, C is completely static. So to do that, we have a project called Bridge Support, which documents all the static APIs in XML files. And then at runtime, we reconstruct the Ruby APIs. So you can access C constants, C function pointers, C structures. And you can call any C function that you want. And we are using FFI for this. And this version, the C runtime can call you, can call Ruby. And this is a very old project written in 2001. And it has been rewritten recently to be stable. And it's been led with macOS 10.5, and it's supported. So you can use it today, and it won't disappear. But for many of you who have Macs here, you can raise your hand. Oh, that's a lot of people, except Matt. And how many of you are familiar with Mac development in general? So do you know Coco? Not so many, maybe 10 hands or 15 hands. And that's true, because if you're looking at the consumer applications written in Ruby, there are not that much. I think there are only two applications. There is Limchat, an IRC client, and Blogo, which is an application to write blogs. And both are really cool applications and are written in Ontario and Ruby. But it looks like Ruby developers don't want to write Mac applications. On the other side, if you look at the web development in Ruby, how many of you are familiar with web development in Ruby? That's mostly everyone, I think. Well, not those people in the background. And that's completely true, because there are many, many web applications that are using Ruby, many consumer applications. I just picked some applications on Google. I don't know really if they use Ruby or not, but that's very different. And why exactly? So besides the fact that the web market is definitely bigger than the Mac market, and not everyone on Earth is using a Mac yet, I think there are two big reasons. The first one is that Cocoa is a very hard framework to apprehend for Ruby developers. It's a huge framework. And the problem is that Cocoa was written for Objective C, and especially it uses very verbose method names, which are completely different from Ruby APIs. As an example, if you want to write code to show this Hello World window in Ruby Cocoa, so not in Objective C. So it's a very simple window with a title, and then there is a button. And when you click the button, it says Hello World. And you have to write that, which is very, which is huge. Is it really Hello World? And building the window looks very complicated. And then you have to create the button. And the problem is that when you create a button by default in Cocoa, it's not the Aqua button. It's a square button, like in Java. And if you want to connect some code, when the user clicks a button, you need to create an Object, define a method on the Object, and then you need to pass the Object and the name of the message. And this is very complex to use for most people, I think. And the second reason is that Ruby 1.8 and Ruby Cocoa have some performance and design issues to be used intensively inside Cocoa. And the first problem is that it's a bridge. So Ruby 1.8 and Objective C are two different runtimes. And we need to bridge them. It means that if you want to access Cocoa Object from Objective C in Objective C from Ruby, we need to create a proxy object that will forward the messages. It also means that every time you pass an Object from Ruby to Objective C, it has to be converted. This is extremely costly. And also, every time you create classes in Ruby, we have to create the same classes in Objective C. And this is Versa. If you want to access classes in Objective C, we need to create the equivalent classes in Ruby. This is very complex to maintain. And we have lots of problems with Ruby Cocoa because of that. The second problem is that the messaging syntax is different. In Objective C, methods argument can have names. So there is some kind of method argument names in Objective C. And in Ruby, there is no support for that. And I will come back to this problem later. The third problem is that the Ruby 1.8 runtime has green threads and is not re-entrant. So the green thread problem means that there are lots of problems with Cocoa. Because Cocoa expects you to call from different POSIX threads. And there are so many bugs because of that. So we have to act the runtime. And it's very ugly. And the second problem is that it's not re-entrant. So you cannot really call the Ruby 1.8 runtime from different threads. You need to log every time. It's a bit of a problem. And finally, both runtimes have different garbage collectors. So this is very complex to maintain when you have a bridge and two different garbage collectors. It means that one garbage collector has to rule the other. And also, it's an increase in memory. And the answer to all these problems is MacRuby that we created earlier this year. And MacRuby is Ruby 1.9, re-implemented on top of core macOS 10 technologies, like the Objective C runtime and garbage collector, and the Core Foundation library. Core Foundation is the foundation of the foundation framework. So basically, it's a very foundation framework. Like, every string that you create in Cocoa are actually core foundation strings. It's a very basic of everything on all the frameworks. And it has been in development since a year. Actually, it's a pretty young project. But we want to release the first production ready version by the end of the year. By production ready, I mean you can really use it to write applications. And MacRuby is meant to solve the Ruby problems. The Ruby 1.8 and Ruby Cocoa problems. And where is the bridge? Since we are using the Objective C runtime, there is no bridge anymore. Because when you create a class in Ruby, it's automatically an Objective C class. There is no need to create, to maintain the different class model between the two worlds. And every time you create a Ruby method, it's automatically an Objective C method in the runtime. And we use the Objective C runtime to dispatch calls. So even if you do, you write a method in Ruby and call it. It will go through the Objective C runtime. And finally, every Ruby object is an Objective C object by default. So there is no need to convert types. This is very good for performance. And in 2008, February, Matt said just after we announced the MacRuby project that if MacRuby succeeds, there is no doubt Ruby will establish itself both in name and in reality as the official scripting language of OSN. And this is really true because we are not talking about a bridge anymore. The language is really based on the CoreS technologies. And by the way, Matt still looks the same in 2008. And it's still not a Mac in the background. And so this is Matt's Ruby 1.9. So I separated it in five different parts. You have the parser, and then you have the YARF, which is the virtual machine. And then the runtime is responsible to dispatch calls and things like that. And also allocate memory. So it has the garbage collector. And then you have the built-in classes, like strings, array, hash. And then you have the standard library, which is already a big library. And MacRuby today looks like this. So we modified the parser to support name arguments so that you can call Objective-C in a very nice syntax. On the other side, we didn't do the YARF because we think it's a great virtual machine. On the runtime side, however, we reward the runtime so that we use the Objective-C runtime and we use the Objective-C garbage collector to allocate and collect memory. So it's a completely different runtime. And the built-in classes, although we reward them so that every string that you create in Ruby is a core foundation string. Same thing for array and hashes. And on the STDLib side, we didn't modify a single line in the standard library. So we can run, for example, IRB or Rake. We start to run gems. And we are including a library called Otcoco, which I will discuss a little bit after. But let me show you some demo. So first, I'm starting Mac IRB, which is IRB, the same IRB. But we are running it via Mac Ruby. Oh, can you, I can. OK. And the funny thing is that, whoops, that's better. So it's Ruby, by the way. And the funny thing is that in Mac Ruby, so all objects are actually subclasses of the NS object, which is the root object of Coco. And, for example, even a fixed name. A fixed name is actually, in Mac Ruby, a subclass of the NSNumber class in Coco. And if, for example, I create a string, then I ask for a class. It says it's an NSMutable string, which is weird, because it's not string anymore. And if you type string, it says it's NSMutable string. So actually, it's true. So it's an NSMutable string in the way you can mutate the string. In Coco, you have mutable and non-mutable objects. So this is my string. And I can call, for example, upcase. That works. But if I ask for the encoding, which is a 1.9 method, it says it's a Mac OS Roman encoding, because the string is only ASCII characters. But if I ask for the encoding list, to get a list of all encodings, it is whoops. OK, let's try again. Oh, that's better. And this is the list of all encodings that we support through the core foundation framework. And the nice thing about, if you ask, for example, the method on the string, you will see that it responds to all the Ruby methods. But we saw that we have this NSMutable string class. So we don't show the Objective-C methods by default. If you want to see them, you need to pass the second parameter as true. And here we have lots and lots of methods. That's all the methods a string can respond to. And that's a lot. And if we want only the methods for the string class, we can strip them. And we can see that we have lots of methods that are quite strange. But for example, if I, for example, like uppercase string, if I go foo.uppercase string, I get foo. So it's exactly the same method as the uppercase Ruby method that you know. But there are some methods with semicolon in the name. And these are the Objective-C methods that I was talking about. So for example, there is strings by replacing occurrences of strings with strings. So this method will replace all occurrences of the given string with the other given string. And we can try that. If I do helloRubyConf, and then I can waste string Florida. And you say, hello Florida. So here we are calling an Objective-C method. But we are passing two Ruby strings. The funny thing is that these are cocoa strings. So they are not converted. And calling this method is as fast as calling a Ruby method that you would actually define. And the funny thing is that all strings in MacRuby so are cocoa strings. And in Core Foundation, all strings are using ICU to apply transformations from one Charsa to the other. But they can also convert characters. And if I type Arigato and then transform Latin to Irogana, I get some kinds of bytes. And actually, this is a Unicode byte. So if I put them, I see the Japanese string. And this is really cool. This is really a Unicode string. It's SUTF 16. And so since we are on MacRuby, so we have access to all the cocoa frameworks on the system. And there is a nice one called Scripting Bridge, which is an Objective-C framework to communicate with applications through Apple events. And the main class of this framework is SB applications. And if we ask for the methods, you can see that this class responds to these methods. And let's try to connect to iTunes, for example. Oops. Ah, iTunes. And here we go. And the funny thing is that Scripting Bridge creates Objective-C classes on the fly when you actually provide the bundle identifier. And but in MacRuby, there is no support. We don't need to support that. Because we are really native to the runtime. So there is no need to create proxy classes. In Ruby Cocoa, it's really a pain to maintain this framework. And now that we have the application, we can ask for the current track. And it says it's an iTunes track. If I look at the class of this object, it says it's a track which inherits from iTunes, which is an SB object, then an NS object, and then it includes the Carrier module. So this is funny. This is really a pure Objective-C object that we are working with on IRB. There is no Ruby stuff there. And I can ask for the name. Oh, this is Daft Punk. And these are all the methods that our application can respond to. It's not that much. And there is the Play-Pose method that should start iTunes. It works. And you can pose it, replay, or it's 100. You can choose the volume or stuff like that. But whoops. So if we go back to this method, it returns a string. But the funny thing is that if we ask for the class of the string, it says it's an NS string. So it's not an NSMetable string. But it's still a string in Ruby. The fact that the frame is that you cannot really transform it. And if I do strip, for example, it will say, ah, you cannot modify the immutable string. So in order to modify an NS string, you need to make a mutable copy of it. And there are methods for that. Oops. And I think that's all for the IRB session. I think we have time to, I'm going to create a small UI for this code. So now I'm going to demonstrate the Xcode integration with Mac Ruby. So let's start with a new project. I will call the iTunes controller. And here we have our controller. And hey, I'm not lucky today. It's not working. I don't know what's happening. It looks like my computer is completely crazy today. Open this one. Oh, I still have this project. And this is a, I wrote that a few minutes ago. But it's funny that I cannot create new projects. It might be a bug in my machine. But this is a Cocoa application written in Mac Ruby that actually controls iTunes using the scripting bridge. And here we have the framework scripting bridge call that I just did in IRB. And this is the line that I type as well to get an application, the iTunes application. And here I have all my actions for the user interface, which is here. So I have a labor here. Then I have play, stop, previous, next, and then the slider. It's really bad that I cannot demo that. And anyway, the application works. And I can play. You can control the volumes and things like that. So it works, but I'm sorry. Yeah, it's really too bad that it didn't work. So we have Hot Cocoa in Mac Ruby now. And Hot Cocoa is a thin Ruby layer on top of Cocoa.  It's very elegant. And it's written by Rich Kimmer, which is somewhere here. I don't know. It's here. Thank you. And if you remember the Ruby Cocoa Hello World sample that I wrote, and if you want the Mac Ruby version, it's actually only we only have to change two lines. But the rest is still the same. It's still Cocoa. But with Hot Cocoa, it's better because you have to write that. It's way, way better. So for example, when you want to build a window, you call the window method. And you buy some arguments, and it will create your window. And if you want to grant a button and then connect an action, you pass a Ruby proc object, a block. This is really rubbish. It's not Cocoa anymore. It's hot. And if you want to know more about Hot Cocoa, you should see a rich session tomorrow. And in the future of Mac Ruby, there are three things that we would like to do. First of all, we would like to have multicore support. It means that we want Mac Ruby to use all the cores of your CPU. So to do that, we have to rewrite the runtime so that it can be completely re-entranted. So it's a very big challenge. And on the second time, we would like to introduce just system compilation somewhere in the virtual machine. And finally, we would like to make Mac Ruby an OSC language. OSC stands for Open Scripting Architecture. So it's really the base of upper script. And if we make Mac Ruby an OSC language, it will be the same as upper script technically. It means that in May, for example, you will be able to write your main rules in Ruby and not in upper script anymore. And it means that you can also control applications natively and not passing through a bridge anymore. And maybe in 2010, Mac Ruby said, I'm a Mac. I don't know. If you want to know more about the project, you can go to the macruby.org website. And we have a Twitter account now, macruby, if you want to track the project or things like that. And don't forget the hot cocoa presentation of Rich tomorrow if you want to see how hot cocoa works. And that's all. Do you have any questions? OK. Sorry? I can't hear you. I can't answer this question. I'm sorry. Next question? Yeah? On the, when you're doing the Xcode app and showing the Ruby, I know you didn't do any outputs. Are those just automatically macruby? Yeah, so it's really too bad that it didn't work. But yeah, you don't have to specify outputs anymore. You have to create a access source. Ruby access source will be outputs by default. And actions will be methods with the standard parameter. So it's completely transparent now. Yes? Who else is working on macruby with you? Sorry? Who else is working on macruby with you? It's only me right now. Right now. Yes? You said that you wanted to see this added to OS 10 possibly in the future. Yeah. Would this replace the macruby interpreter? It will be an additional project. We cannot replace a mac interpreter because it's Ruby 1.8. And we cannot break compatibility. Yeah? Any more questions? Yeah? So macruby, how difficult would it be to say take the core of macruby and just compile it with the GCC effect to see? Take the core of macruby and recompile it? And just say take it on Linux and compile it with GCC effect to see. So it should work, except that the Garbage Collector has not been ported yet. So once we have the Garbage Collector, it's going to be, we would like to release the sources of the Garbage Collector soon. So once it will be released, then we can make a port in Linux and even in Windows. Yeah? Ruby spec, run on macruby? I don't know. I think that it works. So the M spec project can work with macruby. And that's all I know. I would like to run the Ruby specs project as well, because it is great. But currently, we are trying to stabilize the project. So first, we get stable, and then we start to pass the test. Are you at 19 specs, which is what you would run? Oh, they are already 19 specs? Oh, nice. That's great. Well, thank you.