Coming up on this episode of The Pumpkin Patch Show, Sony released a brand new collection of demos for the PSVR, intruders hide-and-seek announced for PSVR, PC VR games that may come to PSVR that I'm interested in and finally I'll be opening up fan mail in our first ever viewer mail segment that I'll be doing today so stay tuned for that. Hey there lads and ladies and welcome to episode number five of The Pumpkin Patch Show. Officially voted the number one PSVR YouTube show by Petrifying Pumpkins. I'm your host Petrifying Pumpkins and as always I am joined by a very special guest. Now this week's special guest is actually me in the future. So let me just say hello to myself from the future. How's it going? How you doing? A few months ago I was diagnosed with a serious illness that has left me pretty much bedridden. Well at least he's very handsome I think we can all agree on that. Try this before you buy it. So Sony have done it again. They have released another collection of demos for PSVR on the PlayStation Store. This one is currently up on the EU store. Not too sure about the other stores yet. Who cares about us if you're not EU. I don't care. Find it out yourself. Do it yourself. I can't do everything for you. I can't hold your hand. But it's out in the EU store anyway and it comes with nine titles and they are as follows. Astro Bot, SuperHus, Headmaster, the kitchen demo, job simulator, moss, the persistence, bumper and battle zone. Now if you've had your PSVR for a year or two then it's a good chance you've already played or at least you know seen these in the past. So maybe that might not appeal very much to you. But if you're someone who's just gotten your headset and you want to see what's out there I think this is a pretty good selection of games. There's a fairly good variety of games there too. I mean you've got the Game of the Year winner there with Astro Boss and you have the classic SuperHus as well you know. But what do you think about this collection of games? Would you have added a different game? Maybe removed one of these games? I don't know. Let me know what you think in the comments below. Me from the future what do you think? Do you think those are a good selection of games or what? And it's written in blood. It's written in blood as well. I don't want to show it to you. It's disturbing. Honestly I just couldn't hear a word you were saying because I was lost in your eyes. It's practically Home Alone the Orlats. Hey do you like it when little kids are in danger of being hurt by strangers? Well then I've got a game for you. This one is called Intruders, Hide and Seek. Now this one is your 13 year old boy. Your house is being invaded in the middle of the night by these strangers. There's a big muscley dude. There's like a guy going around with a deer skull, a helmet and gone by the title. I think it's safe to say that you will be doing a lot of hiding in this game. You probably won't be equipped with any weapons. It might be like Outlast maybe, something like that except in VR. Now this game is going to be releasing on PlayStation Flash and PSVR. That's going to be out on the 13th of February. This game is being developed by Tessera Studios and being published by Daedalic Game. So just keep an eye on that one. It does look pretty interesting and it could be a bit of a sleeper hit for 2019 on PSVR. Please come to PSVR. Now next up I want to talk about a couple of games that are on PC VR or at least they're going to be on PC VR and that may also come to PSVR. At least I'm hoping so. So these games aren't exactly news. They've been out for a while or been known about for a while but you may not have heard of them if you're not focusing on PC stuff. So seen as they may be coming to PSVR I thought it might be a good idea to cover them and you know inform you of these games because they look pretty sick. So the two games are Shadow, Legend and Blade and Sorcery. So Shadow, Legend we'll start with that one. This one is going to be coming out on PC VR in February which is not too long away. And this one's kind of like Skyrim but imagine if Skyrim was built from the ground up with VR in mind. So you've got like a lot of objects in the game that were designed to be interacted with with two motion controllers you know so you can pick up stuff you can fry a steak in a pan you flip us you know that kind of thing. You can pick up the carrots and feed it to your horse. You can like hammer your sword to fix this. It's like all bent out of shape you fix it back into place. All that kind of goodness very interactable that kind of a way and it's got like the very Skyrim medieval type of vibe to it. Looks very cool. Now developers have said that they are aiming for a PS VR release sometime in May so it looks quite good that the chances of that one are going to PS VR unless something awful happens and maybe it gets scrapped or whatever. Bucky and I on that one for sure. And so the next one then is called Blade and Sorcery. Now this one not really as expansive as Dark Shadow because it seems to just focus on melee combats in VR as well as melee sorcery kind of thing. So this one is similar to the other one. It's also in medieval times but it looks so good. What you're capable of doing the combat system is unlike anything I've seen before it's really something that can only be done in VR.   I was wicked west watching that trailer. Now whether this game will actually come to PS VR as a little bit more up in the air compared to Shadow Legend the game is actually out right now on PC VR in the form of early access so if you want to see a lot of footage you should definitely go look up some youtubers who are covering that on the PC and the things. Now the developers have said though that they want to bring it to PS VR but they're looking into it now who knows what that means it means it could come it might not come if it does come it could begin to hell like that's the same thing as actually Shadow Legend because Shadow Legend has shown off all the PC VR side of things. We don't know what the PS VR version is going to look like almost certainly there'll be you know sacrifices made to the game to get it running on PS VR so likely the same thing would happen for Blade and Sorcery but keep your fingers crossed and your eyes peeled like a potato for any sign of this one coming to PS VR future me what do you think you're looking forward to these games look that's it that's it we're done just end the video okay then it's a slow news day lads all right so the PS VR news has been fairly dry you know it's January it's the middle of January there's not much news going on so i desperately need to pad this video out with something so i decided i would do you know reading fan mail kind of like the stuff you guys have been sending me and putting this in this video might kill a bit of time might let me put a few more ads in the video and monetize that share if you know what i'm saying so first of all i have got some artwork to show from germ vorf's daughter now she has drawn me a pretty pumpkin and a angry pumpkin and i think we can all agree that the resemblance is uncanny and she has a real talent so a very bright future in the field of art you know so good job nice one it's a point so next up i have a lesser that came in the post here now that's very strange because i never gave anyone my address so this one has actually been very frightening a very frightening experience for me i've had to contact the local law authorities enforcement we call them the garter over here but just in case because you know it's very scary thing and it's written in blood it's written in blood as well i don't want to show it to you it's disturbing but i will read it out you know dear pumpkin when you are playing firewall again send me an invoice yours always and forever david seggerson aka tasuki horrifying stuff tasuki let me breathe please you're suffocating me moving on i have got another email from another fan over here so let me give this a quick read hey pumpkin i have been watching your videos for a while and i think you're doing a great job thank you very much i've been doing my own youtube channel for a while and i also focus on psv or a i got a bit of competition here it sounds like i have over four thousand subscribers but i bought most of those from a russian boss website so i guess you could say i'm a massive fraud could you please give me some tips on how to make content that will appeal to people so that i can get real subscribers like you have also i hope you don't mind but i'd like to remain anonymous so that i don't expose myself well first of all thank you very much dave station viewer for writing in i very much appreciate that you're watching my videos and that you're sending in mail like this for me i'm very happy to help out to answer your question though dave you just got to make content that you yourself are happy with that you have a passion for it because if you're making something that you're happy with it'll show through in your content and eventually you will attract like-minded people they'll subscribe and but a boom but a bing you know backwards uh you will have real subscribers that you can call your own and you can stop buying them from russian websites okay thank you dave let's do one last one before we wrap up dear pumpkin i've been watching your firewall streams and i noticed that you've been using the grenade launcher like a little bitch no okay let's not end with that one let's go for another one hey pumpkin just wondering why do you hide your lack of skill behind a grenade launcher look lads i'm not doing any more stuff stop asking me about the grenade launcher okay let's just leave that alone it's in the past if there's something wrong with the first contact entertainment are going to fix it okay so this is i'm going to look for something that doesn't have anything to do with the grenade launcher and i'm going to read that out and we're going to end the video there okay okay this one looks good hey pumpkin my name is josh and i'm from california a few months ago i was diagnosed with a serious illness that has left me pretty much bedridden i'm very sorry to hear that josh i hope you get well soon if you can so i've had more time to watch youtube i've always been interested in veor and even more so now that i can't go outside so when i found your channel and watched your videos i decided to get a ps veor because it would be the closest thing to being outside as i could guess that's very cool josh i'm flattered i'm delighted i hope you're enjoying this i just wonder why you have to be such a little pussy using that grenade launcher look that's it that's it we're done just end the video okay so that's the end of this video las and ladies but before i put an end to us i just want to give a thanks to my patreon supporters they'll be on the screen in front of you now so thank you very much to those guys i appreciate it very much that's it for this video las and ladies if you like this video and if you want to help me out then i would appreciate this if you would do all the usual shy bye for now and i will see you in the next one


I'm honored to chair Professor John Norton. I am Sugata Mitra from Newcastle University, and Newcastle, as you may know, is well known for thriving in a colder and more challenging climate. I'm sorry. I'm sorry. John Norton. John Norton is Professor of Public Understanding of Technology at the Open University. He is a fellow and a vice president elect of Wolfson College, Cambridge, an academic advisor to the Arcadia Project at Cambridge University Library. And what I know him for best is observers, internet columnists, and I'm one of his readers. He's co-founder of Cambridge Visual Networks, which is a Cambridge-based startup. He has a new book coming up in January. It will be called From Gutenberg to Zuckerberg, what you really need to know about the internet. So I'm quite looking forward to that one. Well, so I'm not going to take away more time from Professor Norton. Please. Hello, folks. Thank you for the invitation. During Britain's recent outbreak of recreational looting, one thing that struck me was the way in which the establishment seemed to be taken aback by the looter's alleged use of social networking technology. We were told by the mass media, and the news was enthusiastically, if mindlessly, relayed by the government ministers that a new and sinister force was loose in our society. It was called Blackberry Messenger. And as I listened to this establishment and media can't, the question that was uppermost in my mind was, where have these people been all these years? Because apart altogether from the irony of seeing a device, the Blackberry, which had once been the ultimate badge of corporate status and prestige, and now had apparently a metamorphosed into a working tool for hooligans, there was the fact that pin messaging on Blackberries is not only an extremely ancient technology, but is, or at least was, one of the reasons why governments across the world used to want Blackberries for their officials. And you will remember, I guess, that after Barack Obama became president, there was a good deal of comical speculation in the media about the fact that the new president passionately wanted to hold on to his Blackberry, despite the concerns of his security advisors about the wisdom of entrusting presidential emails to a wireless device. But behind all these amusing observations, there was a more serious question. Why is our society, apparently, always playing catch-up with technological innovation? Why are our institutions, companies, government schools, universities habitually ambushed and astonished by new technologies, particularly communications technologies? Why are technological innovations apparently so difficult to predict? And what might we be able to do about that? Now, at one level, the answer to this question is easy. The future is unknowable, period. When Harold McMillan was prime minister, he used to go grouse shooting in August. And once an enterprising journalist caught up with him and asked him a question. Prime minister, what keeps you awake at night? Events, dear boy. Events was Supermax's famous reply. You never know what's around the corner. Now, that might be true of politics, but it can't be entirely true of technology. Because, after all, no major technology appears completely out of the blue. It takes about 25 years, in fact, for a technology to become mainstream. The PC, just to take an obvious example, dates from 1975 or 1978 if you take the Apple II as the first usable manifestation of the technology. The TCPIP internet dates from 1983. And the ARPANET goes back to the late 1960s. SMS dates from the early 1990s. Facebook's been around since 2004. And even Twitter has been around since 2006. So if governments and institutions in recent years have been taken by surprise by what's going on, then they clearly haven't been paying much attention. Blackberry Messenger, BBM, provides an interesting example of this lack of attention. As the looting and disorder spread to the point where it could not be ignored even in the most expensive parts of Tuscany, I'm willing to bet that nine out of 10 government ministers and media commentators could not tell you the difference between BBM and SMS. No surprise there. But actually, many tech savvy observers overlooked BBM too. So obsessed were they with the iPhone-Android battle, the decline of Nokia, and the apparent eclipse of Blackberry in the smartphone market. What most observers fail to notice is that one important segment of the population, that is to say teenagers and university students, were buying Blackberries for one reason and one reason only, Messenger. Why? Because it offers free text messaging and is not only fast and reliable, but is also free. BBM is now used by more than 39 million people worldwide with usage up six times over the past 12 months, making it a real threat to operators' text messaging revenues in some markets. Which is why, by the way, that we didn't hear any bleating from Vodafone or O2 about the clueless proposition by the government that we might close down Blackberry Messenger. So some of the problems that we have with technological forecasting have nothing much to do with technology per se and quite a lot to do with our incapacity to notice what's going on. And that's what brought William Gibson to my mind. Gibson, you will recall, is best known as the guy who invented the term cyberspace to describe the world behind the screen. He's a stimulating novelist who has become a kind of sage of technology, even though he appears to take a pretty dim view of it. On Twitter, for example, he tweets as great dismal. He's also famous for an offhand remark, which to my mind is one of the smartest things anybody's ever said about technology. The future, said William Gibson, is already here. It's just not evenly distributed. But if the future has already arrived, you're only discovered if you know where to look and if you're willing to pay attention. So the question I draw from William Gibson's aphorism is this, why don't we pay attention to what's going on? And here folks, we dive into very deep waters. The recent history of communications technology is littered with instructive case studies of institutions and industries which failed to pay attention. Now the music industry is perhaps the best known. In 1980, music went digital with the launch of the compact disc. The first CD players, for example, appeared on the British market in 1982. So from then on, the recorded music business looked like this. The company's own recording studios where singers and bands went to make noise. That noise was then digitized. So the output of the studio was a stream of ones and zeros. In the consumers homes, there stood those shiny and also expensive CD players which were essentially machines for converting bit streams back into noise. After the launch of the compact disc, the problem for the recording industry was how to get those bit streams from its studios to the consumer. It did this by making plastic discs, pressing the bit streams onto them, putting on a label and packing them in transparent plastic boxes which always broke. The boxes were then packed into bigger boxes and then sent to crates which were loaded onto trucks which took them to distribution centers. Then other trucks collected the crates and delivered them to the retail shops which took the discs out of the boxes and displayed the boxes. Customers would then come into the shop, browse the boxes and eventually choose one which was then brought to the counter and reunited with this plastic disc upon payment of a fee. The customer then went home, inserted the disc into his or her CD player and low noise flooded the room. So what the industry did was to use Nicholas Negroponte's famous term, ship atoms to ship bits. This was expensive and inefficient. Upwards of half the cost of the CD was accounted for by distribution costs. But in 1982, there probably wasn't any other way of getting bit streams from recording studio to customer. And then in 1983, along comes the internet which is after all a global machine for shipping bit streams at very little cost. So you'd have thought that to the record industry, this new network would look like Manor from Heaven. I mean to say, a technology for eliminating 50% of your distribution costs at a stroke. If that's what you thought, you'd have thought wrong. Of course in the early years of the CD, that's the mid 1980s, the industry would have been justified in rejecting the internet as a viable way of distributing this product. Because at that stage, the net was effectively confined to the worlds of academia and research laboratories. But from the 1990s onwards, and especially as domestic broadband connections increased, the network came to look increasingly like a viable distribution system. And yet, the record industry effectively ignored it. Not only that, it persisted with the distribution system whose economics meant denying customers what they wanted. CD technology meant that single tracks were economically unviable. And so the industry tried to force its customers to buy albums. Yet the demand for singles or tracks never really went away. As we discovered when Napster, the first great file sharing system provided an easy way to get them. The MBA students of the future will pour over the file sharing phenomenon and the record labels response to the net as a case study in corporate psychosis. What other industry would ignore a technology that promised to harvest operating costs? What other industry would turn its back on what many of its best customers wanted most? What industry would refuse a way of providing immeasurably better service to its customers? The explanations are doubtless complex. Some of them have to do with the way the industry was structured and in particular how its executives were incentivized. Their bonuses were geared to shipping atoms, not bits. Other explanations center on the fact that the senior management of record companies were heavily freighted with accountants and lawyers. But whatever the reason, the fact is that in the 1990s the record industry looked the future in the eye and blinked. And it took a visionary from the computer industry named Steve Jobs to realize the potential of what somebody once called the celestial jukebox. A second case study is provided by an industry I happen to know rather well, newspapers. I've been a newspaper columnist as well as an academic, all my working life. So I have what my famous countryman Conor Cruz O'Brien once called a foot in both graves. Newspapers like most corporate enterprises are value chains. That is to say they link unprofitable activities, cost centers, with profitable ones in such a way that revenues from the latter exceed the costs of the former. In the case of newspapers, journalism, that's to say the gathering, collating, editing, publishing of news and opinion is an expensive, troublesome, loss-making activity. But in order to attain the readership and the circulations that make advertising profitable, one needed all that expensive loss-making journalism. It was the thing that attracted readers and sold newspapers, providing sales revenues and notching up the rates that one could charge advertisers. Now when the web first appeared, newspaper editors and proprietors thought that the main threat it posed would come from online news distributed for free. They were wrong. It turned out that the bigger threat was to the profitable part of their value chain, classified advertisements. As Evans and Worcester point out in their book, Blown to Bits, what the internet does best is dissolve value chains. The first signs of this came in 1995 when an entrepreneur named Craig Newmark started an email list featuring events in San Francisco. The year later, the email service morphed into a website, craigslist.com, which allowed people to post free classified ads while charging for job and property listings. From its original base in San Francisco, Craigslist steadily expanded to cater for an increasing number of cities, initially in the continental United States, but later on in many other countries. Whenever it opened a site for a new location, the impact of Craigslist on newspaper revenues was dramatic. By 2004, for example, it was reckoned that it was siphoning off between 50 and $65 million in advertising revenues from print publications in the San Francisco Bay Area alone. In the Bay Area, wrote Bob Cothorne, a former media executive at the San Francisco Chronicle, if you're looking for a job, a house, an apartment, anything to put in the house or apartment, basically if you want anything a classified market can provide, you don't need to go anywhere but Craigslist. Indeed, if you want to be sure you're seen at all, you must use Craigslist and you can pretty safely ignore the print newspapers, I'm quotes. This is a former print executive. Now, of course, the success of Craigslist was partly due to the fact that personal listings were free, as was access to the site. But it was more to do with the fact that classified advertising simply works much better on the web. Instead of having to wade through pages of density printed ads in nine point type, looking for that used car or that chic studio department in a certain neighborhood, all you have to do is type a query in a search box and bingo, there's a list of possibilities. Given that, the surprising thing about the web is not that it's so radically undermined the economics of print newspapers, but that they didn't see it coming. They failed to perceive the real threat to their value chain. My last case study is Wikipedia.  For most of my life, the goal standard in the encyclopedia business was the encyclopedia Britannica, which in its 15th, 1974 edition, ran to 30 volumes and required its own special bookcase. A few months ago, while working on my book in the wonderful book blind reading room of the University Library in Cambridge, I found myself suddenly needing to check a date. In the normal course of events, I would open my laptop and go on to Google. But on a whim, I decided to do something different. Must be a copy of Britannica here, I thought. So why don't I use that? So I left my laptop on opened and went looking. I found what I was seeking, sitting in a long, serried row of brown volumes on a shelf in the corner of the reading room. And as I took one of them down, I had one of those quiet moments of revelation that James Joyce called an epiphany. It was clear, first of all, that this edition of Britannica hadn't been used much. Indeed, one can tell from the condition of the volumes that most of them had more or less never been opened. The biggest shock for me came from realizing how dated the entries were and how narrow the coverage was. And suddenly, I realized how much the world of encyclopedic knowledge has changed and how much Britannica belongs to the past. The prime agent of this change is a development that nobody except perhaps Douglas Adams would have predicted. It was an online encyclopedia collectively produced and edited by amateurs who have created what is effectively the greatest reference work the world has yet produced. I've just checked the Wikipedia site. It's supporting that the English language edition currently has 3.71 million articles. The German edition has 1.28. There are 1.15 million in the French edition. 0.84 million in Italian and roughly the same number in Polish. There are editions in Chinese, Japanese, Portuguese, Dutch, Russian, Swedish, and even Esperanto. Wikipedia has about 360 million readers at the moment and is the seventh most visited site on the web behind Google, Facebook, YouTube, Yahoo, Baidu, and Windows Live. All of these are internet properties run by vast corporations with annual budgets running into billions of dollars. In contrast, the Wikimedia Foundation, which is Wikipedia's parent organization, had about 40 employees in mid-2010 and an annual budget of less than a million dollars. I don't need to tell you, this audience, that Wikipedia's coverage is astonishing in breadth, depth, timeliness, and sometimes triviality. There are, for example, detailed articles on TV reality shows, extensive entries on the Nintendo, Pokemon video games franchise, and on the Barbie doll, Barbie fashion doll, created by the Metallic Corporation. But at the same time, there are detailed, well-informed, up-to-date entries on the internet protocol suite, the economist and philosopher Friedrich Hayek, the Bose, Einstein, Condescent, Chaos Theory, Jacques Lacan, the celebrated French psychoanalyst, there's ones on Lloyd George and Ludwig Wittgenstein, and so on. The list is, or appears to be, endless. And if you search for a topic on which Wikipedia does not at present have an entry, you're presented with an invitation to create one. Now, this fact, this fact alone, that anyone can create or edit a page, is what usually gets the skeptical juices flowing, especially in academia. For most people, it suggests a recipe for chaos. To me, it reminds me of the Bumblebee, which according to the laws of aerodynamics, ought not to be able to fly. But fly, it does. What's the same, I'd be said, of Wikipedia, ought not to work, and yet it does. Over the years, since it was founded, the site has grown not just in size, but also in intellectual stature, to the point where it's become indispensable for many routine purposes and essential for some important ones. Could I just have a short hand here of people who have not cited Wikipedia in something they've written? Anybody here? There are a few, yeah, a few, okay. Thank you. But the thing that often strikes me about it is whenever a major catastrophe strikes in the world. For example, on the 6th of April, 2009, a large earthquake struck central Italy at 132 GMT. By 220 GMT, there was a Wikipedia entry about it, which was endlessly updated during succeeding hours and days. Same thing happened with the Indian Ocean tsunami of 26 September 2004 in the Japanese earthquake and tsunami of 11 March 2011. In each of these cases, where a conventional news organization struggled to cope, Wikipedia turned out to be the best source of information and explanation through the day. However one looks at it, Wikipedia is an astonishing phenomenon. Three aspects of it stand out for me. The first is the astonishing amount of collective human effort that it represents. In his cognitive surplus, the cultural commentator, Shurki, makes a stab at quantifying it. Suppose Shurki writes, we consider the total amount of time people are spent on it as a kind of unit, every edit made to every article, and every argument about those edits for every language that Wikipedia exists in. That would represent something like 100 million hours of human thought. It's the back of the envelope calculation, he says, but it's the right order of magnitude. The intriguing thing for me about this massive collective investment of time and effort is that it is voluntary. People create and edit Wikipedia for motives that have nothing to do with the more conventional motivations of human action. This is what Yochai Benkler called social production. That is to say creative activity that lies outside the marketplace. And in that sense, it's another instance of the rise of user-generated content that has been enabled by the web. But there is one important difference. Other kinds of user-generated content, for example, blogging, publishing, photographs on Flickr or home-produced movies on YouTube, are mostly motivated by desires for individual self-expression. Whereas the effort that goes into Wikipedia is directed at a collective goal, that of creating the greatest work of reference that has ever existed. The second thing that's fascinating about Wikipedia is why such an ostensibly uncontrolled and free enterprise has not degenerated into chaos. The answer lies in a combination of social conventions and technology. The site has remarkably few formal rules, but it does have a philosophical ethos that clearly translates into norms that govern behavior. This ethos includes a commitment to transparency about editorial decision-making, a guiding principle that contributors and editors should strive to adopt what Wikipedia calls a neutral point of view, a commitment to the notion that there should be no gatekeepers as far as content is concerned, and a pragmatic design philosophy that emphasizes the value of creating something that works now and assumes that problems can be dealt with as they arise. Without the right technology, however, this philosophical ethos might have been aspirational rather than operational. What made it practical was the adoption of the Wiki software developed by an American programmer, Ward Cunningham, in 1994-95. Cunningham's great idea was to invent a way that enabled web pages, which had hitherto been read-only objects published on servers, to be edited on the fly by readers in their web browsers. And the adoption of this technology by Wikipedia's founders in 2001 was arguably the most important decision they ever made. Why? Because it enabled the site to implement its philosophical ethos, as it were. Editorial transparency was ensured by the fact that the software automatically created and maintained a discussion page alongside every main page. This allowed people to explain their edits and allowed those who disagreed to argue back in public. Controversial edges that were made without any corresponding explanation on the discussion page could be reversed on the grounds of the absence of an explanation provided prima facie evidence for being suspicious of the changes. The discussion page provided a channel for debate that also introduced potential contributors to the social norms governing editing, and thus may have eased their transition from being mere readers to becoming editors. And Wiki software also provided an insurance policy against what many of the skeptics thought would be Wikipedia's greatest weaknesses, its vulnerability to vandalism. Because the program keeps track of every single change and logs all activity on the site, it made it trivial to undo damage by simply reverting to the previous version of the defaced page. In that sense, the technology dramatically lowered the cost of dealing with the vandalism and boosted the self-correcting capacity of the site. Now, in their different ways, these three case studies I've talked about, online music, newspapers, and Wikipedia, illustrate how we are so often blindsided by our conventions, mindsets, paradigms, and business models. In each of these cases, the technological future had indeed arrived, but those most affected by it couldn't see that. There are none so blind, the biblical saying goes, as those who will not see. Record company executives failed to recognize that the internet rendered compact disks and the business models built around them obsolete. And when they eventually did recognize it, they saw it as a mortal threat rather than as the commercial opportunity of a generation. Newspaper journalists and managers spent so much time and attention focusing on the strengths and weaknesses of online news that they failed to see that the real attack was coming from a completely different direction. And a mindset which couldn't conceive a non-hierarchical way of creating an authoritative reference work couldn't take Wikipedia seriously until it was too late. Now, there's an obvious objection to this line of thought. It's too smug, based as it is on the fact that hindsight is the only exact science. Life, you say, can only be understood backwards, but it has to be lived forwards. And it's easy to see with the benefit of hindsight how misguided the record labels were when they rejected the potential of the net and left the gap open first for an abster and then for iTunes. The problem with decision-making, you say, in the real world is that it has to be done in the face of an unknowable future. And that's true. So let's go at this problem from another perspective by recognizing that even if we are more perceptive than the music executives and newspaper proprietors of the 1990s, we still have to recognize that making predictions about technology is finished difficult. There are two main reasons for this. The first is that most major technological developments are, in fact, the outcome of very complex combinations of factors. In that sense, the popular image of technological progress as the output of a gifted inventor, like, say, Thomas Edison, is a very poor guide to contemporary technology. The writer who's expressed this best in recent years is the economist and complexity theory, Brian Arthur. In his 2009 book, The Nature of Technology, What It Is and How It Evolves, he sets out the view that a technology is what he calls an assemblage of practices and components and that the process by which technology develops is what he calls combinatorial evolution. What he means by that is that novel technologies evolve through combinations of existing technologies. If you open up a jet engine, he writes, you find components inside, compressors, turbines, combustion systems. If you open up other technologies that existed before the jet engine, you find some of the same components. Inside electrical power generating systems of the early 20th century were turbines and combustion systems. Inside industrial blower units of the same period were compressors. Technologies inherit parts from the technologies that preceded them. So putting such parts together, combining them, must have a great deal to do with how technologies come into being. Technologies somehow must come into being as fresh combinations of what already exists, unquote. Among other things, Arthur's theory of technology explains why the pace of technological change is accelerating. In earlier times, there was simply fewer practices and fewer components to combine. But now we have a seemingly infinite number of technologies to work with and they can be combined in a very large number of ways. And every time a new technology emerges, the possible or potential combinations multiply in a highly nonlinear, unpredictable way. If this is true for jet engines, nasty, heavy, lumbering, physical monsters, then it's true in spades for information technologies and especially for software, which after all exists only as weightless bits. And if you add in the fact that many years ago we developed a network, the internet, whose main purpose in life is to enable combinations of and interactions between software entities, then you can see why the process of combinatorial evolution postulated by Professor Arthur is so powerful and so terribly unpredictable in the IT area, which is why technological forecasting is such a nightmare. The second complication is that at least in the case of IT products and services, users rule okay. By that I mean that in the end, it's users who determine the pace of technologies. So the intrinsic merits of a particular service or program or device are not, its intrinsic merits are not what will determine whether it thrives. It can be the coolest piece of technology ever and still bomb. What matters is whether people adopt and use it. That's not to say that a technology which isn't adopted is always a waste of effort and resources because it may be combined in some unexpected way in the future to form a future technology. So in that sense, for example, the Apple Newton which was originally deemed a failure and indeed terminated by Steve Jobs when he returned to Apple in 1996 probably shaped the thinking that eventually produced the iPad. But in general, if a technology isn't adopted by users, then it might as well not have existed and users will only adopt things that meet their needs. Now, does this eternal truth that users will only adopt things that meet their needs make technological prediction easier? And the answer is, sometimes it does. For example, from the outset, it was absolutely clear that the mobile phone would be a world-shaping product because it satisfied a deep-seated human need for communication. And besides, there was always something weird about the and primitive about the notion that telephones had to be tethered to the wall, like goats. And of course, mobile phones had been in Star Trek for generations. Facebook took off because it satisfied the deep-seated need of American undergraduates to get laid. Napster grew like wildfire because people have a deep love of music and Napster made songs instantly and freely available. iTunes grew for much the same reasons except that it levied a charge. The Sony Walkman and later the Apple iPod met a deep-seated need of teenagers to be antisocial. Blogger exploded because it provided non-technical users with an outlet for their ideas, thoughts, and ravings. Flickr likewise with photographs and YouTube for video and movie clips. So it's tempting therefore to say that the most astute predictions about consumer technology will be based on assessments of the extent to which a particular technology meets a human need. And just when I had reached that conclusion, along came Twitter. And what human need, I wondered, could conceivably be met by a service that allowed you a measly 140 characters. Well, now we know. And so does our esteemed clueless Prime Minister, which is why he'd like to shut it down. If you have been, thank you for listening. Well, we have a bit of time. We have about 15 minutes for questions. And I'm sure your heads are buzzing with those three examples and what followed. So is there a comment or a question? We have a microphone here. James Clay from Gloucestershire College. I think one of the things about Wikipedia is in the past it was a useful tool. It was a community-created tool. But the growth and the power of the Wikipedia's, as they call themselves, who are very male, and it's a very male-dominated process, means that if you try and go in there and create new articles or add corrections or add additions, the Wikipedia's in their power, and James Wales, the bloke behind Wikipedia, recognizes this as well, go in and kind of revert everything back. It can be very difficult for new people to come in. Does this mean that the age of Wikipedia is over and where do we go from here? Thank you for the question. First of all, that's not my experience. I need a break. Thank you. Thank you for the question. That's not my experience of Wikipedia, but I've heard the criticism. I mean, the short answer is that nothing lasts forever. And the biggest mistake that we have made in relation to the kind of developments that we've seen in this area has always been to assume that the thing that worries us or obsesses us now and seems huge is going to be the thing we have to worry about forever. I remember the time when Microsoft was a serious threat. I think Google is a serious threat now, but will I think that in five years' time? I don't know. Same is true of Facebook. Wikipedia might well turn out to be a transient, too. It's impossible to say. It's Mark Johnson from University of Bolton. I take the theme of what you've just said to be the importance of listening and the importance of, obviously, the organisations in the case study listening. But there's something that worries me about technology and listening. And because it's always important, there's a level of sort of authenticity that you have to achieve if you're really going to think about what's happening and reading the world. And actually, when we look at our students and sometimes when we sort of look at our own behaviours with our technology, sometimes it's difficult to reach that same level of authenticity and sort of deep listening that's necessary to make the right decisions and the right choices. So my question is, is social technology potentially a threat to the way that we listen and particularly the way that we come together because there's something that happens when we come together in very convivial settings, perhaps, like this conference? I think those questions are kind of unanswerable in a way because the thing that sort of upsets me a lot about the public discussion of all of this stuff is that somehow it's possible to reach a conclusion about whether or not this thing is good or whether this thing is bad. And the truth of the matter in almost all of these things is that it is both good and bad. And that's the ultimate sort of reality about it. It's a bit like saying, is air good or bad? Whether or not it is beside the point. The point is what it implies, what it does to our societies, what it does sometimes to our brains or whatever. We're stuck with it. And so I find these discussions that often go on in the Daily Mail and elsewhere are really annoying about whether this is a good thing or a bad thing or whatever. Technology is always given and technology is always taken away. And the real question is how do we adjust to the realities that we have created? And those realities are very complex. And in some respects, it's pretty clear that we are sleepwalking into nightmares, absolutely. And the most distressing thing about it is how hard that is to explain to anybody, except for people like the people in this room who understand this stuff. But if you try and get a public discussion, for example, about the really warped way in which people are trading their identities for basically geegos, the way they've been turned by Facebook and by other agencies into essentially the modern equivalent of sharecroppers, all that kind of stuff. The way in which people will give away their personal details in much the way as in the child history books about colonialism, you had native chieftains who handed over mineral rights and returned for some baubles from some canning imperialist. All of that stuff is happening, but it's very hard to explain to anybody. Thank you. Tom Franklin, Franklin Consulting, and perhaps a slightly cheeky question, but given what you've been saying, either what is the next unmet need that technology is going to address, the next deep personal need, or what's the next big thing or few big things? Well, I've got a personal deep need, which is I want the technology to kind of invent plausible excuses for me. But the honest answer, as you well know, is that if you and I knew that, we'd be out there making it. I have no idea. I mean, the terrible thing about the future is that it is unpredictable. And long may it continue to be. Thank you, Diana Lorela. I can't really see you, John. It's like that. John, I've been trying to apply what you've been talking about to what our business of education, of teaching and learning. And one of the difficulties we have in teaching and learning is it's quite a complex transaction. There are quite complex human needs going on there, if indeed you can even call them human needs. I mean, there may be a human need to teach. And insofar as there is, it's fairly simply satisfied by things like PowerPoint or websites. Just give it, you know. Tell the story of my subject, and that's enough. There may be a human need to learn things we can not know of until we have learned them, which is what formal education is all about. But that's a pretty complex technology. It's not, certainly isn't Wikipedia, that doesn't do it. So what education has done is to appropriate everybody else's technologies for all the different facets that we need within the teaching and learning transaction. So is that our fate? I mean, can we see from the kinds of analogies you've been drawing, is there a human need to do something which there is a technology that can fulfill that need? Do we have to keep appropriating everybody else's? What's the implication for us in education? I wish I knew the answer.  And you will remember very well the way Tim O'Shea, one of our former colleagues, now a very eminent gentleman indeed, and has played a member of the establishment, but he was once a very interesting researcher and a colleague of Dan's. And he used to annoy conferences like this by saying that the only piece of education technology known for sure to work was the school bus. And much though I hate to admit it, I thought it was a pretty profound remark. I think the education thing is relevant in relation to my point about paying attention, because I really don't think that most of my academic colleagues have been paying much attention to this really. Paying attention in the sense of thinking, this might actually change the way I think about what I do, and this might actually change the way in which our institutions ought to be structured and work. And if you want a simple, and the reason for that is partly willful blindness and so on, but it's also partly because it raises very disturbing questions. Just look for a moment. If we believe, as many of us now do, that people learn better in socially mediated ways, if we believe that a very mature form of a very successful form of academic tuition consists of being a mentor to productive discussions in groups and the rest of it. If we believe all of that stuff, then we have a really big problem, because look at this room. Look at the way it's structured architecturally. It's basically structured along, a pedagogical model that says, there's a guy down here who's saying stuff and there's all you lot just looking at him. It's not architected, to use a horrible word, to implement a different kind of metaphor about how people learn and how people learn. So you have this terrible problem. If educators took this stuff, these ideas that come out of experiments with technology and other things seriously, then we'd have to say to ourselves, actually we're in the wrong place or it's just too expensive and too unthinkable to change. And that's the analogy I have for the record industry and for encyclopedia Britannica and all the others when they face with this stuff, is that first of all they couldn't see the need and second when it did arise, there was too much to be lost, too many kinds of worms to be opened in the restroom by acknowledging the truth of what was happening. And that for me is the metaphor really of the education system addressing this stuff. And I don't think there was a technological fix for it. I've got a question online here, John, that says, can you suggest how we can be curious, questioning and critical of emerging technologies and importantly how they relate to each other? Yeah, it's kind of something you could have picked up from Socrates. Basically, whenever anything new arrives, you ask first of all, what do we lose as well as what do we gain? And secondly, who benefits and who loses from the adoption of this stuff? That's the question that people haven't really asked about Facebook, for example. Who benefits really in the long run and who loses? And they're very old questions. I think Plato and Socrates and Cole asked them and I think they're still relevant and very useful. And when you ask them, the questions about technology are usually pretty sobering. The answers you get are pretty sobering. And there's one at the top as well. Bill Olivia, University of Bolton. You've itemised a number of industries that have been laid low, shall we say, by the internet. Music, newspapers, encyclopedias. And because they didn't see what was coming with the technology. It was already there, but just unevenly distributed. Now, it seems to be edging closer and closer to higher education. So do you see things that are already here that might well be things that we should be looking out for before they cast us down too? We're in the information business in one sense. The answer is, yeah. I mean, I think some aspects of this have been obvious to many people in the education business for a long time. And the best answer to it actually is a set of YouTube videos produced by Mike Wesh, which you probably know. And if you don't, you ought to see them. Mike Wesh is an anthropologist. He teaches anthropology. And he and his students have been making an astonishing series of really insightful videos, all of them on YouTube, about what we need to be paying attention to and aren't. And the answers that you get from those videos are much better than anything I could provide here. And I recommend them heartily. It's Mike W.S.C.H. Just Google them and you'll get it. And there was a lady there. Hello, Moira Mayly, University of Western Australia. Is there any way of bringing the vendors, the corporate people that are taking away the big profits, to bear for the consequences of what people do with their offerings? No. And the reason for that is that our societies are not geared up to addressing the problems that they create. If you just take a simple example, actually, is the way in which major content companies have consistently suborn legislatures into enacting copyright rules, which are now totally inappropriate for a digital environment. Why is that an interesting example? Well, in general, in democracies, when legislatures make laws, they do so on some rational basis. So for example, in the case of, say, the regulation of pharmaceutical drugs, then if a pharmaceutical company wishes to have some extension in its permissions, then a legislature will actually say, well, let's have some objective research here. And then we'll make a decision about what's in the public interest and what balances the public interest with your commercial needs and so on and so forth. Well, in relation to, say, the extension of copyright terms, what happens is that a number of pathetic figures like, say, Cliff Richard are dragged out from under whatever stone they hide in order to plead tearfully with legislatures that their descendants under the fifth generation will be penniless and not have shoes. If legislatures don't extend the copyright term even further and so on, nobody says, actually, what's in the public interest up to now? No legislatures have said, OK, until recently, no legislatures, especially in the United States, said, OK, what really is in the public interest? Do you really need more copyright extension, more protection? Will that lead to greater public benefit or not? And where's the evidence? So that's just one example of where we are nowhere near addressing these issues. The same thing applies in relation to privacy, say, and Facebook and Google and all that sort of thing. And it goes on. So they're getting away with murder, in my opinion, and they're getting away with murder partly because our democratic systems and our legislative systems are kind of, OK, years behind, decades behind, probably. And I don't know how this is going to pan out, but it doesn't look good. If you have a question. Nick Jeans from Sarah Consulting. I just wanted to ask if CDs are an inefficient and expensive way of distributing music. Can the same be said of teachers being inefficient and expensive way of distributing them? You know what? I don't think there's a Vice Chancellor in the country who hasn't asked himself that question. I mean, as a teacher, of course, I say absolutely not. But I mean, that's a problem that journalists have as well. For example, print journalists in particular have been fantastically hostile to the online world. And that's partly because they can't envisage a world without them. And what they don't seem to realise is that actually they're making a confusion between form and function. The thing that's important for our society, for example, is that we have the continuation of independent journalism. That's the function that society needs, journalism. And we have to find business models that will enable that to continue. But what journalists have been entirely preoccupied with recently is not how can we preserve the function in this new digital age, but how can we preserve a particularly obsolete technological format which was the printed paper. The future of journalism is not about the future of newspapers. The future of journalism is about finding business models that will support the things that are really valuable about journalism, and what it does. And I think the same is true for teaching institutions and learning institutions as well. Supposing our existing business model is vaporised by the net, what's important is not that we preserve institutions like this in their physical form, but that we preserve the thing that's really valuable about education. And that may or may not involve these kind of buildings or these kinds of institutions and so on. But that's what we ought to focus on. And in general, I don't think we are focusing much on that question. That's the really important thing. It's the what, not the how. Well, we are actually just about out of time. So I found this quite fascinating, actually. And I was all along thinking about this issue of teachers and whether they are a bit redundant, shall we say. But I suppose that will take us to next year. So thank you, John, that was absolutely a marvellous session. And talking about noticing, noticing change, I have noticed that there's a bottle of whiskey behind that sofa. Thank you very much.


Mae'r dros i gyd wedi bod wedi bod yn perthynig i'ch meddwl ar y cynnig. Rydyn ni'n gweithio arall erbyn. Rydyn ni'n ddweud hawt yw adopting brofyn, Ac yn cynnig o'r llam. Rydyn ni'n ddweud am ymddech chi'n gorfin i'r EU. Doedd yw'r cyflwyffydd, mae'n gyflwyffydd ar y ddweud. Mae'r cyflwyffydd yn cyflwyffydd. Roeddwn i'r llwyddo'r ysgrifennu. Mae'r peth yn bach i'r gyda'i gwybod llawn, o'r ddweud o'r 3 o'i gyrdd. Mae'n gwybod yn bach i'r gwybod. Ond yna phoedd phoedd phoedd? Ond wedyn, mae'n mynd i'r rhan o'r grwp yng nghymru yn ymddangosio'r phoedd ond mae phoedd phoedd phoedd yn y Web Framework bydd yn Alexiwr. Mae phoedd phoedd phoedd phoedd phoedd phoedd yng nghymru a beth yn bach i'w ffrif. Ond yn ddweud, mae'n ffrif sy'n rydw i'r chyfodol Waiting at the conference, but some of the reasons we are interested is because it has all the power of beam and OTPs and all the history and words that those have had, but it also has a beautiful syntax with Alex here. One of the things that we really liked about rails and Ruby was that it made me very productive because it was really an expressive language to work with. And do we feel the same way about Elixir as well? So, of course, the tagline on the website for Phoenix is it gives you both the performance and scalability of Beam plus the maintainability that comes with working in a programming language that's a pleasure to work in. Also happens to do HTML5 and APIs very well as well, which is great when you come to use Elm. What is Elm? Elm is a functional programming language that has an ML language style syntax and it compiles down to JavaScript. So, yes, it is another one of these languages compiles down to JavaScript. It's slightly different from the likes of, for example, say, CoffeeScript, where the idea is just to write JavaScript in a less painful way. Whereas Elm, you don't really write JavaScript in Elm per se, you write Elm programs in Elm, they just happen to compile down to JavaScript. It uses JavaScript as its runtime. So, why would you consider Elm? Well, Elm, obviously, because it compiles into JavaScript, runs anywhere JavaScript does, which is everywhere. So, you can run Elm on your fridge probably, I don't know, I've never tried it. It has good JavaScript interrupt, which is good. If you're going to run an environment for a language, you really want to be a good citizen there and you want to play nicely with existing tools. Elm also has a beautiful syntax. It's kind of like Haskell, but it's a lot more succinct in my limited experience. Elm is statically typed. Now, I came from Java and when I saw that it was a typed language, I don't know. But, as it turns out, Elm, the static typing in Elm is fantastic. It really helps you. It doesn't hinder you. It doesn't involve a lot of typing. In fact, it has typed inference. Most of the time, you don't even have to tell Elm what type of thing is. As long as it is of that type, it can infer. This is something that comes in really useful when we port in stuff over JavaScript, as we'll see. It's also blazingly fast. To do MVC being the kind of benchmark of front-end frameworks, we have the usual caution about benchmarks to add. Elm performs better than React. It's because it uses a virtual DOM in the same way as React does, but it's also completely mutable and pure, so therefore it can get massive speed gains there as well. Interesting to know, on Mercury, they're both also using mutable state and a virtual DOM, which is why they have speed increases they do. What does it look like? Let's see if we can do this. Can everybody see this? Let me see if I can get to see it as well. Excellent. This is Elm. This is just on the elmlang.org tri website. I've got a sample app here that they provide, which is a counter. You'll see on the right-hand side here, if you click the plus button, it counts up, and if you click the minus button, it counts down. Very simple. At the top here we have imports for importing libraries. This is the HTML stuff that allows us to put HTML out on the screen. An important one is startapp.simple. Startapp is a way that Elm has to do wiring for you under the cover, so you'd actually have to know how everything wires up underneath Elm. You just provide it three things, which in this case is a model, an update, and a view, and it knows where to go from there on. It's important to note Elm has a model update view architecture. It has a model, which is a mutable, an update, which it uses to step the model from state to state, and a view, which allows you to compile that to something that the user can see, in this case HTML. Every Elm application needs to have a main function, which is a start point, same as C. Here we have our main method. We call start, which is from startapp.simple, and we pass it in the model update and view. Incidentally, this thing here is called a type annotation. It is entirely optional, but what it does is it states after the colon what type, in this case, what type, sorry, the return type is for this function. It will be a signal of HTML. We'll come back to this later on. If you want to have a look at one that's slightly more involved, the update here, it will only have a return one type, so the last type here is the return type, and the two types, or any number of types before that, interspersed with the stabby arrows, are the parameters, or the types of the parameters that are coming in. Okay, so our model here is stated to be an integer. Type alias model to integer basically says, whenever I say model, I mean integer, and then we initialise that to be zero. Our update states the types of action that it will allow. In this case, it allows an action of type increment or an action of type decrement, and it then uses pattern matching when an action comes in to the update function. If it's an increment action, it will take the model, sorry, this takes an action, the current model, and then the new model that's produced afterwards. So the action that's passed in, let's say it was an increment, what that will do is it will take the current model, it will add one to it, and it will make it the new model. Now it's important to note, this is not modifying the state here, this is not saying take the current model, add one to it, and then return the current model plus one, you're making an entirely new model. The decrement obviously does the same, but it does a minus instead. And the view function here, it takes, let's ignore the address just now, it takes the model or the current state of the application, and it will then display it out to the user. So in this case, we have an element, which is a div element. The first list is the attributes, and the second list are the elements. So in this case, our div has no attributes. As it's elements, it has a button, which is our minus button here, and it puts out minus its text. It also has another button here, which is the plus button. And as a div in the middle, which takes the current model, which is an integer, two strings it, and then presents it as HTML text. So there we can see we've got a zero. What this address does here is this lets the view know if it has any events to fire back through the application where those need to go. So this address in this case is to start up, and start up will know that when it gets an action in on that address, it needs to reach it to the update function. So when you click this button here, it will decrement, or send a decrement action, sorry, through the application, and if you click this one, it will send an increment action. Okay, so far so good. Looks quite complicated for something very simple, but let's have a look and see what we're actually doing in the background here. Okay, so what we actually have here, you see my mouse pointer? No, we can't. Hey, right. Let's see if this works. Yes. Okay, so what we have here, in fact, not too easy to see, but we have a signal of type model. A signal in Elm is an attribute, sorry, a value that can change over time. Signals, when you first look at them, look like streams. They are not streams. They are a single value, but they change over time. Now, remember, Elm is immutable, sorry, the values in Elm are immutable. So the way that it deals with mutable state is it has signals. And each time you put a new immutable state onto that signal, sorry, a new immutable value onto that signal, it's kind of like a changing state. And then that flows straight out of the rest of the application. So here, we have a signal. Each of these signals will have a type. In this case, it's type model. The model, remember, is an integer. So in this case, the first value or the initial value on this signal is zero. And then we have a signal of HTML, which shows the current model as HTML. In this case, it will be a view with zero. When we click the mouse, we have a signal that goes through as well. This is a unit. It basically means something has happened.  So a mouse click is a card. We then have another signal, this time a signal of action, which is generated by our on click. Well, this on click basically does, it says, okay, I've got a click. What button is clicked? It was an increment. Okay, I will send that increment action to the address. The reason we need a signal of action is that our update function only understands actions. So that then gets sent, sorry, doesn't get sent. The start act will know that a new value has appeared on this. It will run the update function, which will run the increment, and it will create a new model and we'll get one on our signal model. That then, of course, then gets viewed as well. And that happens every time we click the button. So we click the increment again, exactly the same thing will happen, but this time we'll have a two. If we do the decrement, it will take one away instead, so it becomes one and so on and so forth. So the application is always reacting to whatever happens on those signals to change those signals. This is known as the Elm architecture. So it's a little bit tricky at first, and I'm going to show you this diagram, and I'm going to show you a much better one. So this is one from the Elm site. And what this shows you is that signals are basically these lines flowing down here. Now you want to map signals into the correct form. So when you first come in, say we've got a signal of integers or a signal of model as we had, or even if you've got a signal of something else, you need it to be an action, so you map it into an action. And the map works the same way as map does on collections, for example. It just says take the latest value off of that signal and change it into some other form. Because of the fact we only have one update function, we need to take those signals of actions and combine them all together, and that's what a merge does. A merge basically says take signals of the same type and merge them into one signal, one overall signal of that same type. Fold P. Yeah, I'm going to have to explain this. Fold P means fold past, and what that basically means is when a signal comes through, every value that's on it, because it's a value that changes over time, take the past values and pass it through this function. It's where you're allowed to have side effects. This is where you're allowed to do things that are not necessarily immutable or not necessarily pure, sorry. Fold P is happening in the background with our startup, and it's going to pass things into our update. The result of that will then come through to the other side. There we go. Okay, yeah, sorry. You can then further filter if you want to, or you can just come straight through. Okay, so that's the science bit. Luckily, Jess, who's doing the keynote later on, had a much, much better diagram, which she let me borrow. Thank you very much. This is basically what's happening here. Much easier to understand. There's a human being somewhere that's looking at the HTML from her app, and they click a button, an event will get passed in to the update function. The update function then steps the immutable model from one immutable state to the next immutable state. The view function picks up those changes and does wherever it needs to be to generate the HTML, which the user can then see, and so on and so forth. This is in its simplest form. There are other things that can affect things as well. Okay, so time for an example. So what I'm going to do, and this is going to be really basic because we just don't have time to do too much here, but I'm going to create a seat saver app. So whenever you book a flight on a plane, one of you check in, it allows you to choose your seat. Now I've made this really, really simple, just enough so that we can see what it actually is. It has been pointed out to me that it looks more like a boat than a plane. And also we don't have seat numbing like that on planes anyway, but this is fine. It's just simple for an example.  So the foundation of our app. What we're going to have to do now in order to interact with something outside of Elm. So we're going to have to interact with Phoenix here. In order to do that, we have to allow interoperability between Elm and the outside world. And the way that we do that is through something called ports. I'll come to that later, but it means that we have to use a more, sorry, a fuller version of StartApp. We're not using StartApp simple now. We're using StartApp. StartApp. StartApp. So what this takes rather than model update view is it takes init, which is your initial state, kind of like your model, we'll see why in a minute. It takes the update in the view as it did before, but it also takes a list of inputs and these are external inputs. So these are inputs that come into your app from elsewhere. And we generate this or create this in an app function. And that in turn, in our main function, which we have to have as a signal of HTML, takes the HTML that's done inside StartApp and pulls it out. Now there's another function that's required here as well, but I've missed it off just for clarity. So in our initializer, what we need to do is we need to represent a seat. A seat is going to be a record that has a seat number, which is an integer, and an occupied flag, which is a boolean. And then our model for a particular app here is going to be a list of those seats. So that is just a standard Elm list and it has the type seat. Now in order to create an initialize, I'm sorry to initialize this, rather than just passing the model initialize, we also have to deal with something called effects now. Effects are complicated and I'm not going to give you the full definition of effects and that's not just because I can't. But to keep things simple, effects are things that can happen in your app that do not directly change the state of the model. They may result in the change of state to your model, but they are not immediately going to do that. Effects are things like animations or HTTP requests or things such as those. So in order to initialize our app now, we need not only the model, but we also need to have an effects action. Or in the case of initializing, we're actually just going to have an empty list and an effects.none, which is a way of telling Elm that you don't intend to have any other effect. So that's our initializer. Our update now needs to change slightly as well. You'll notice from here that when we did the update previously, we had an action and a mod, something of type action and the current model, and we'd return a new model. Well, now because we need effects as well, what we're going to have to do is we're going to have to take an action, take the current model and return a new model and any effects. Sorry, the current model or any new effects. At the moment, we do actually have any action, so I'm going to create a know up. All our know up does is it returns the current model and no effect. So it's not making any change to the model and it's not having any other effect on the application. Our view for this app is going to be reasonably straightforward as well, slightly more complicated than before. What we have is an unordered list and that unordered list is going to map around our model, which remember is going to be a list of seat objects. For each of those seats, it's going to call the seat item partial and the seat item partial is going to create a list item, which is going to pick the seat number in string format. These classes are purely for the CSS. So to go back to our signal diagram that we had before, what we are starting off with here is we're starting off with a signal of model, which is going to be an empty list which came from initializer and our signal of HTML, which is going to be a view of that list, which is going to be a canoe. I don't know if you can see that very well. So yeah, basically we don't have any seats in there yet because we've not initialized it. So we actually want to get the seat data from the database and we're going to put Phoenix in between because it's great. So I thought, okay, excellent. I really want to find out how I can go and do this. I want to set up a channel. So surely somebody's done this before, so I typed in Phoenix and Elm and I got this. If you don't recognize it, this is Harry Potter. Apparently one of the ways you can make a wand is to take Elmwood and to insert Phoenix Feather and they're really great ones. I draw an analogy about magic and how Phoenix and Elm are a magic combination, but I'm not going to, well I just did. So well, how can we actually do this? What ways do we have of joining them? Well the first way and probably the simplest way is to keep them completely separate. You have an Elmap. Your Elmap runs a static app inside the browser and it uses an HTTP request to talk to Phoenix, which does some really, really nice data APIs, very simply. And this is the way that I actually started out with doing it. So I was going to talk about this in here and I know it says on the notes for the slide I was going to talk about it, but I'm going to run out of time if I do this as well. So there will be a separate blog post that will come out about how you do this. It's very straightforward, but it's not really taking full advantage of Phoenix, I don't think at least. The other way is, well when you compile Elm, it just creates standard JavaScript, ES5 JavaScript to be precise, so you can just vendor it, stick it in your static vendor and use it as if you were using any other piece of vendor code. The reason I've stuck it into static vendor incidentally is because of the fact it produces ES5 and brunch itself in Phoenix by default not to do a transpile for stuff that's in vendor. You can put it anywhere you like and you can set up your bunch to do that. Excuse me. Okay, so that's the second way, the third way, and why wouldn't you want to do this? Stick the Elm actually inside your Phoenix. And the reason that this is good, apart from being completely insane, of course, is that it means that you can use the brunch pipeline to compile. So every time you make a change to your Elm file, it will automatically compile it and change it into the JavaScript, which then gets passed through the brunch pipeline for JavaScript and results in your RGS, or however you have your brunch set up. So what I've been doing is I've just been creating an Elm folder inside web. The reason I'm not sticking it inside static is because Elm in the Elm stuff folder, which is kind of analogous to node modules folder, it will have native JavaScript in there because quite a lot of Elm stuff has native JavaScript bindings. And if you put it inside static, then it will get picked up by the brunch compile and you'll get a whole pile of cruft appearing in your app.js and it will crash, and you'll spend two days crying and trying to figure out why it's happening. Or not. So I just stuck it in a separate folder and it seems to be working for me just now. There's this Elm brunch plug-in, which is fantastic. It was created by a guy called Mads Flenstead entirely indebted to him for this. And what it allows you to do is just stick into your package JSON as high as you possibly can because brunch will read these packages off an order. Whoops. To just call it to Elm brunch. So I've basically stuck it right underneath brunch because you really want that to happen before all of your JavaScript pipeline stuff happens so that Elms converted it into JavaScript. Then inside your brunch config you just set that up as well. So you've got set up the watch file. I've set this up just to watch the Elm file. Again, don't ask it to watch your entire directory because then any time any JavaScript in there changes, it will also compile the world and stick it in.  Any of your Elm files that have a main function, it knows where those are as well and where you want it to output to. To get it into the front end of your app. Well, it's entirely up to you how you want to do this. For just now, for playing around, I just went to the pages index HTML which we got given and stuck a div in there with an ID. You can then pull that out and then create your Elm app which is using Elm embed, takes the name of your module, in this case Elm Seatsaver and the div that you want to embed it into. Now you don't have to embed into a div. You can actually do it full screen in that case you do Elm full screen with Elm.seatsaver and you miss out the div that you want to put it into. The result, again, is the same thing because we're not passing anything in yet. So what do we actually want to do? Well, this is a very, yeah, it's a diagram and whoops. What we're basically doing is we're taking we're taking data out of the database using Ecto and we're passing it through channels out to each of our Elm clients. So that's what we intend to do. So setting up a channel, in case you need to know, what we're doing here is we're creating a seat channel and in that seat channel we have a basic query which just basically gets all of the seats and orders them by their seat number and it passes out in the payload on a successful response. We let the user socket know that we intend to do that and one other thing we had to do here is because we use snake case in elixir, we have to convert that into camel case and we'll see why that's important in a minute, but this was just a quick poison encoder that I set up to do that. In our app.js or in another more suitable place you unlock, sorry, or uncomment the import socket and then you open the channel and do the channel join. On an okay, all we're doing is console logging out that seat data just now and on an error we're going to console log that out as well. So how do we get this data into elm? We use ports. Ports is a way of talking to elm from the outside world and talking to the outside world from elm and I should point out, as somebody asked me to, that elm ports are not airline ports. They kind of serve the same purpose sort of, but they're not the same. So don't confuse the two of those. What a port does, at least an incoming port anyway, is it will take a data structure in JavaScript. So for example here we have our list of seats and those seats are just seat objects in JSON. On the elm side, this is quite hard to read, there is use the port keyword with the name of the port that you want to create and then what you expect to come in over that. It's going to be a signal the same as everything else and in this case we're saying it's going to be a signal of model, our model as you might remember is a list of seats so it's going to expect whatever comes in over that port to be able to be parsed down to a list of seats and this is why we made our seat number, seat number with camel case because elm uses camel case inside here. So if we do this we can just use a nice little bit of code here which takes elm app which is available we set up to hold our elm app in JavaScript. We call the ports function and the name of the port seat lists here and we just send data to it and elm will happily take that and it will turn it into elm code underneath. So it will turn that into a list of seat records. Excellent. So we create that port inside our application and then we go to our app.js file again and we now instead of console logging out the seats we use the elm app.ports.seatlist.nseats and we get port error. Now the reason I left this up was for two reasons. First of all is to show you that that port error happens and secondly is because look at how lovely elm error messages are. They tell you exactly what you want to know. So it's saying you haven't given me an initial function that's our initial data with the type seat model. You need to provide an initial value. So let's go and do that. So where we went and actually created our elm app in the first place we can then go and create another variable just to keep things readable which passes in an object which is a seat list with its initial value which will just make an empty list and then we pass that in as the third argument to when we do the elm embed or the second argument if we did elm full screen and we still have no seats. Why have we got no seats? Well it's because we have a port here which has the incoming data which is a list of seats but we've got no way of passing into the app. StartApp doesn't know about this yet. So in order for StartApp to pass it through to our update as you might remember from before we need to have a signal of action. So in order to change the seats into a signal of action we use signal.map. So what this basically says is for every value on seat lists which is a third word there. For everything that comes in on seat lists turn it into a set seats action. This is a bit of syntactic sugar which can look a little bit confusing so let's expand it out to what it actually does. So for every seat list that comes in on the seat list's port pass it into this anonymous function and then convert it into an action which is curried with that seat list. It's important to note we're not actually calling this action just now we're just creating that action and currying it as a partial function with the seat list that we want. We need to let StartApp then know that that signal exists so in the inputs down at the bottom we add the incoming actions as an external signal and then in our update action we create that set seats action. So we make the type set seats saying it's going to have a model a param of type model and then down in here inside the case of it pattern matches to this action it will take that list of seats and it will swap the current model for that list of seats. It will take list of seats and completely swap out the empty list we had before and put in that seat list and then effects.none because we don't have any more effect. So to go back to our signal diagram to see what's happening we start off with a signal of model which is a list of seats. We then convert that into an action which is a set seats action with that list of seats as its parameter that goes through the update method and it changes the model from being an empty list to being that list of seats and the view will then go an update and the result of that is a list of seats. Now I know that's not hugely exciting but in order to get through there we've had to jump through our fair few hoops. The next thing obviously we want to do here is we want to be able to click on seats and to have this happening in multiple browsers and all the rest of that you will be just about to know I'm not going to have time to do that today unfortunately. I'm going to have to go to my conclusion. So the conclusion is that elm and phoenix do seem to me to work really well together. There's been various discussions both on the elixir lang discussion group and on elm discuss as well about how these can can play nicely together. We're not entirely convinced courts is actually the best way to do this mostly because of the fact they're one way so if you send for example if you click on a seat to go and ask for it and it returns an error you have to handle the error in the javascript that happens in between. So either we need a custom channel implementation or we need to do something in elm or both. There are certainly discussions around both so I'd be really happy to talk to anyone who's interested in talking about this or wants to join the discussion online. I'm going to take what I've done so far with figuring out how these things work so far so the HTTP side of it the web sockets and more advanced I've turned these into kind of tutorials online I'm not finished them unfortunately I was ill last week so I didn't manage to get them finished and when I'm going to get those done and when they are done they will be available on the Cultivate HQ Github organisation and I will tweak them out on Cultivate HQ Twitter to let you know that those are available if anybody wants to follow along with those. In the meantime some other excellent resources and there's a guy called Richard Feldman who did a fantastic talk at strange loop about why you want to use elm and production and why it rocks over javascript so other javascript frameworks and why you might want to consider it so definitely check that one out. Elmlang.org has got fantastic information that they've got guides which will help you go through these things especially look at the Elm architecture tutorial one because it tells you a lot of things you want to know about Elm. Elm discuss and Alex here Lang both of those discussion groups have got discussions on going around this. Pragmatic Studio the fantastic series of courses that they've done on Elm that Mike Clark's done and the first Elm course is really what kind of got me into Elm in the first place. The Elm Signals one is great for for taking you on that step further and the only book that I'm aware of so far apologies if there are more and the only one I'm aware of is Seven World Languages and Seven Weeks has a chapter in there on Elm as well. Excellent perfect so sorry that was saying it's been updated to 0.1 0.15 yeah okay excellent thank you very much. So yeah let's make amazing things. Any questions?