Hello, and welcome back to the craft box. My name is Brenton today. We're an episode 189 of the Wizard 101 death walkthrough Before you all get angry because in America it's not the first of January yet So therefore you lied and you said that the last video will be the last of December But actually this one is when this is going up in my time. It is the first of January.  We did that side of the eclipse tower and today We're doing this side and we're getting shadow magic and all that cool stuff We're teaming up because I can lol fight me Yes Okay, and yeah, hopefully it should all be good And all should be fine. Hopefully. We're going to be getting shadow I looked at it. We're getting shadow sentinel, which is Which is cool We'll probably train the other two as well, which we can technically already do kind of we can like see what they are But um, yeah Here we go. Well, let's see what we're doing here Shadow of the land. Okay. He cheats as well. I think Um Okay, we should be good. I'm essentially ready when they are so We will wait for them to do whatever they want to do so I'll say his cheats in a sec They haven't actually really looked at them, but I don't think it should be Good too hard. Okay, we're going in apparently Okay, so This is the first boss shadow of the land Looks like it's from as techa, which is interesting These are also from as techa, which is again interesting So every fifth round the shadow of the land will cast a unique spell that deals damage based on how many Laughing collector minions are active in the jewel the spell share the same animation as Power Nova, except it doesn't do the debuff of a weakness With three laughing collector minions it deals 3,200 base balance damage every soul feeds with two it deals 1,600 and With one it does 800 and Zero does 400 so and also unbalanced, which is a balance to spell can Dispel that or make it not happen So Shouldn't be too bad and just cuz I put some pixies in just in case You never know what happens never even know Yeah, so he will also randomly summon another collector minion I assume once you do I don't know. I don't really know it's not much detail about him, but he His balance he boosts to death, but he can also do plague death trip and dumb and glum. So yeah, that's the thing And then we've also got the other people which is in the next bit Fun fun fun ha ha So we're ready your plague, which is fine. I'm not gonna worry about taking that one off That does a bit, okay What is this dudes? Yeah, no one told it's so sad I'm sad now.  Oh, no, it does. Okay. We're just doing the same thing I don't think he has DNA though. He'll be like wall. He has DNA. He must be good Like nope, but okay So I think I can't remember when it was but I saw a comment on one of the videos that was posted last year At the end of kind of in the middle slash end of December when I was away And it was basically saying that like this is a solo walkthrough why you're like taming up with all of these people um, I Don't actually remember what I replied to that one I Don't know if I did me and or I was thinking about it because I I do read all of the comments that come through So if you think I don't read your comment, I do Even those ones that are flagged for spam. I read them as well. Yes I do in fact read those ones Let me see if I can find it it is Yeah, I Said oh, I did reply. Okay. It said dude if it's a solo walkthrough that means you won only you I Do realize that and I do realize that this walk has not been entirely solo and I don't really care. I Mean for most the majority of the time. It's just me. There's just some Times that I just get help from other people or I find other people doing the same quest and I mean if someone else is doing the same quest as you is kind of common courtesy just to like Continue questing with them if they want to like I always ask them if they want to quest but like I don't see any problem with that so I'm just gonna continue doing what I'm doing Well here's his cheat, let's see how much of those stars there's a lot of them here So it will probably do three thousand two hundred. Yeah, that does a lot of damage We're nearly all dead now, which is fantastic Can he hit soon that would be great. Are you gonna do okay? Okay, then what's this one? Oh, it's Sentinel is it? Yeah, it's Sentinel. That's fun Anyway, so yeah, I kind of I think I said that in the comment as well. I'd Yeah, along those lines. So I mean, yeah, it's not quote-unquote a solo walkthrough Who cares? I'm mostly like It's so low enough. I mean I've have now a hundred and eighty-nine videos This is the hundred and eighty-ninth episode of this walkthrough and the majority of it has been all so low show me like Yeah, I Don't know. I'm just gonna continue what I'm doing. But yeah That's how I see it. So yeah, I didn't know you could do that. That's quite cool Yes, so I'm gonna hit and see I'll get off those tower shields. Good job. Oh, I'm so good Also because I kind of want to finish this quick with this team of people who don't seem to be wanting to hit or anything So yeah Boop boop and So because it's not scary but like also because I need to kill as soon as possible, I think Because we are just gonna die if we sit around nothing Apparently what we're doing at the moment I mean, it's obviously part around five so around six we should probably be hitting What are you doing? Why I want it? Okay? It makes sense Okay, understandable Okay, here we go. Oh, I create yes, please. Thank you Critters rare for me.  I didn't even have four blades. I don't think I think I still had like a death blood to put on and stuff But I mean they're all dead. So that's good Now we're just waiting on them to kill the other ones because I've done my hard work He will take a bit of that That's cool. Oh Hello, he's gonna take a lot of damage there. Jeez. Haha Um Okay, yep, you put up more blades. That's a good idea boy. Oh How much does he have ten thousand? Oh, we can probably kill it with. Oh, hello avenging. That's cool I don't use avenging much. I don't think I've ever used avenging, but we'll see how that does Oh, it's been a long time since I've recorded my voice cannot handle it already. Oh gosh Um But yeah, obviously I've been away and Yeah, so that is why I am dying slowly inside with my voice not being able to handle this that did a lot of damage over time Jeez Jays Probably because they didn't block which is fantastic. I might actually Fairly just for some heal If this doesn't kill which it might and that would be great I think I have full potions, so that's always good Or at least nearly full. I have at least one. I'm pretty sure Should really fill them up sometime soon. I also need to get more TC feints. I think I think I said that Okay, he's dead by Well done spellbinder you have freed yourself from the chains of the past continue your ascent Okay, um, there's more dialogue there if we skip dialogue. I'm sorry again Um, there's nothing you can do if you're going with other people in the dungeon, but you know, it's cool Here we go this little thing. Hello. Um, I need health be happy. Oh gosh Hello, mister, I'm gonna figure all listen to the shadow magic enhances your skills and strategies It flows with your repertoire of spells and builds to new effects But every shadow spell carries the risk of backlash You could very well be the instrument of your own defeat now show me how well you know your magic Prove that you are a true Promethean wizard before I let you touch the other side of reality Oh, where did he go? Oh, he's just over here So she cheats as well. She has more significant action or not really more significant cheats, but she cheats a bit more We've got yeah, it's fine. Um, I just went to her in the battle. I think it's probably the best I might swap out one of those for a skier just in case I'm starting to die Oh put one skier crow in like so Okay Ready guys Ready Yep. Okay. Here we go. Um, so yeah, she cheats. She is Life obviously we boost on her which is fantastic She also summons people and things and stuff and does things and stuff So basically join me valiant servant at the end of the first round Sophia will summon Archon Moonblade who is someone we met last time He's done the bottom of the eclipse tower. So if you haven't checked that out go and do that. He speaks to us whatever I'm just kind of like memorizing myself as well because it's been a while since I recorded this game I've been on this game in fact Rise Archon Moonblade to be my Sword if Archon Moonblade is defeated Sophia will resummon him off the two rounds. Archon also cheats He says bring your sword to my cause each round. He will summon a dread paladin See, he's not like hard. He doesn't have much health, but yeah, we are going to wait for that We're going to discard you and we're gonna pass because I'm not getting anything I need. Oh Hello Getting things all loaded just cool So yes, she has a shadow clip okay Yeah, dread paladins she has a really cool casting animation. Hello, that's shadow seraph. I think yeah So he doesn't have much health 5000 also the Minions don't have much health. I don't think I think I had them up before I was like checking out before because Obviously, this is what I do. They have like 1,200 so they're nothing. They're also ice, but they also They can't cast Towership, so yeah, it's all good all good We will do that one. I'm just fainting at the moment. That's pretty much my job. Oh gosh Here we go. Fizzle. Oh, oh unlucky. That's unfortunate Ninja pegs. Hello Hello ninja pegs, but we boost death boosts on both Sophia and Archon with this Archon Smith And we obviously boost on myth. Here we go. Here he goes summoning them. So just wait until They're all summoned is probably a good idea I'm gonna blade. Yes Okay Instructing them. It's a good idea. He's putting up the bubble. Yep These guys are kind of cool.  Never know what would happen. There we go. Another one is summoned. Hello We will do this one and I will probably hit next Another death blade for him and another death blade for me Because I used to sharpen you a regular one. Yeah So Gotta get that drain spell action on geez Spirit armor and rebirth is not cool That to the bit geez um, okay Mythblade and what are you doing? You're hitting me? Oh, how dare you?  Oh If I can pull it. Yes, I did not pull it that is unfortunate. Okay, he's blading. I'm gonna go for her Actually, no, I'm not going to I'm gonna pass. I'll pass. I'll have nexus if they'll follow then I need something It's probably the best idea. I don't have a mini blade. So it's probably not a good idea to Just go for a head on Baby, baby, thanks for having me Okay, snow angel what a spell what a meme I Don't like snow angel. It just takes forever Honestly And it doesn't do anything either. It's gonna do a lot on me, but That's because I have like one two three traps And like no resist so I mean even that 166 that's nothing and then it goes around and taunts everyone because taunt is such a useful spell apparently So useful for hello The one thing I like is the dots are really quick like they don't really take long There's not like any pause between them. So that's always nice. Oh my gosh. Can I please get some blades that would be fantastic? Apparently no, okay, he's avenging fossil That means I can hit with day and night to follow up and they shall die They should be dead D. D. Dead Okay, here we go Wahoo Hello five blades one All of the absorb she may not be dead two feints He's dead bye And then there's another time as well, which is good Yes, that should be good It does a lot of damage. Maybe I should start using avenging a bit more It's just so many perps, you know, I might use avenging a bit instead of dr. Von except dr. Von's health back is quite nice Especially when you're soloing You know, just take off both the absorb that's cool And not do anything at all So I did only have two blades That's fine.  Oh, don't mind he's dead as well. He'd be quite dead. Unlucky If he summons more, I'm gonna be furious That would be bad No, he doesn't summon more. That's cool. I'm doing Scarecrow for the lulz Don't judge me, please Mm-hmm.   Oh my gosh. So good. Um, okay, let us go and talk to Sophia and we should Then be able to use shadow magic, which is fantastic Um, can't believe it's already at that time Geez Okay, um Let's go over. Oh, the lag is real. Geez. Hello. Let's get over here You have done very well spellbinder It is my honor to teach you how to inscribe a shadow magic spell into your repertoire We have reclaimed the eclipse tower Let us send a signal to the shadow queen that you are more than ready for her Place the moon's crown on the lunar warden statue and watch how morganz terrible curse unravels Okay, there we go. We have now actually we're going to learn the others as well So let's go on here. We are going to learn at Shrike because that is quite important And we are also going to learn Seraph, which focuses on healing. It also has a little description down there, which is quite cool Um, fantastic. So now we have all of this fantastic shadow magic um We probably won't use Seraph at the moment for a bit. Um Probably also won't use this one either And but Shrike will probably be keep like One in the deck just in case because it's fun. Let us do this Restored to its ancient glory perhaps it can once again serve as a stronghold for light You are a joy to watch Head back to bastion and see with your own eyes what you've achieved look for unamoon dancer Who was once advisor to the king? Okay, that was a a lot of xpgs um, how far off Still a long we need one million experience. Oh my gosh Okay, then Okay, let us hit over two bastion Boom boom boom. Boom. I'm actually really happy that we finally got shadow magic. It's great Um, what's our shadow pip chance? Probably like nothing Um, we've been here and here zero percent. Okay, that's cool. Um Let us head on up to Una moon dancer who is up here Hello, or do you know what happened here? Yeah there. My goodness, the new moon so much has changed, but there is work to do. Quickly spellbinder, where is the king? Do you know any who might know what happened to King Ulrich? Zaltana does seem to be the resident expert on Bastion's history and the current state of affairs. You weren't sure how Zaltana and Una will get along. Maybe you had better ask and then return with the answer. Yeah, probably a good idea. Don't know how well they're gonna do. Um, okay, I'm actually really happy. We have Shadow Magic. We also have like the Shadow Burn here, which is cool. Um, yeah, that's, I'm really happy. I'm happy. I've never ever made it up to this far, so I'm like over the moon. Um, but anyway, let us head over to Zaltana. Oh, the wall's broken. Oh, that's quite cool. Okay. Um, sorry, I skipped a bit of dialogue. Yeah, that's fine. It shouldn't be too bad. Um, but yes, let us head over to Zaltana. Yeah, let's head over to Zaltana. Oh, that's great. We have Shadow Magic. We have Shadow Magic. We have Shadow Magic. We have Shadow Magic. We have Shadow Magic. We have Shadow Magic. We have Shadow Magic. Um, but yes, let us talk to Una again. Una. Hi. So many lost kings and queens. This mantis whom you just spoke to, Zaltana the Mirror Mask, how closely does she serve the Shadow Queen? Do you think you can enlist her aid in finding King Pyot, or will force be a necessary motivator? I don't know, we'll find out in a bit. Um, getting so much load of them, which is great. I always forget where the, like, steps are. Yeah, it's quite, quite weird. Um, but yeah, it's quite cool how the barrier's gone. I didn't realize that went like the first time, and now it is, and it's like, whoa, hello. And so it comes to this spellbinder. Cards must be revealed. Masks dropped. Secrets laid bare. Whom do you serve? Wizard. The Council of Light, I cannot speak to that. I hear only distorted echoes and half-forgotten words. But let us say I have known something of your agenda since you arrived, and I have supported you, after my fashion. I am the one known as Cornelius. Although I was born across the Starfall Sea and raised under the Aegis of the Shadow Queen, I have long sought other answers. I was found by the Fifth Column, a secret force who opposed the Shadow Queen. My role was to stay in Bastion, hidden, but visible. I was to help the burrowers and to watch for the one who would bring light to the dark places. At the moment, I suspect this is you. However, if I am wrong by coming out, I risk the unending deaths of the Shadow Queen's rage. I very much hope it is you. Through the task at hand. After what you've done, I'm sure Queen Sabina will help you find the Lost Mouse King. Okay, that is a bit of a shock-fought twist. I didn't realise she was Cornelius. Cornelius, I think, was like... I can't remember exactly who he was, but he was mentioned quite not too long ago and he's quite important. Mooncliffs, yeah, we can just use the gate. Sure, why not? Why not? So yeah, what quest are we on? Let's be friends. Okay. Queen Sabina. She is the Broodmother and she is up this way. Just trying to, like, memorise where people are and remember where they actually are. Okay, she is through here. I remember when we were here. Oh my gosh. Okay, I'll be back in just a bit. Okay, I am back. We went a different way this way, I fled and went through the little water teleport thing, which is cool. So yeah, we did that so we didn't get pulled into a better world. Am I doing? Why am I getting stuck? Please, game. Sabina, hello. Spellbinder, the change you have brought to the land is unbelievable. You restored Bastion and also many of my people. The Lost Mouse King, let me think. Yes, Ulrich? Ulrich II? No, that is not right. His name was Hyatt Morningsword. I dimly remember a report that he was captured by Belasto Tobiter. That wretched one dwells in an underwater cavern. First Wing Zam in Appaday Village can tell you how to find Belasto and with luck, the Lost Mouse King. Tell Zam it is my command. Okay, then. Zown's bees, treasure cards. Okay, nice wee gardening treasure card there. So yes, let us find Zam. Haven't spoken to him for a while. I am going to change room. This is a bit lag. I don't know why. Let's go to Dwarven. Fringley Bean. This could also be the path to the Eclipse Tower. Because that apparently lags me every time that I don't look at it. A lot, sometimes, so weird. But anyway, no more lag, which is good. Let's talk to Zam. Hello. To reach the Water Cavern, we need to restore the Round Dance Shrine. The Sassafrasmin stole our wax candles from the shrine. The moon alone knows why. You will have to fight to recover them. And the vile Mago Bee Robber stole the traditional crystal stinger staff. He dwells nearby. Get these things to begin. Okay, so in between episodes, I will collect these things and next time we will continue onwards. But anyway, thank you for watching and don't forget to like and subscribe and if you want to subscribe, press the bell so you know exactly when I post another video. And remember, craft outside the box.


Your Excellencies, Distinguished Panel, Special Guests, Ladies and Gentlemen. On behalf of Hilda Schwab, Chairperson and Co-Founder of the Schwab Foundation for Social Entrepreneurship, it is with immense pleasure that I present to you the Latin American Social Entrepreneur of the Year 2014 awardees. The organizations they lead are pioneering exciting models to solve pervasive social and environmental challenges such as waste management, agricultural productivity, female entrepreneurship and healthcare. The Schwab Foundation's 30 awardees for 2014 represent the largest and most scaled cohort to date. They have been chosen from a global pool of several hundred candidates, and I would particularly like to thank the jury members and our selection partners for their crucial support for our search and selection process. In particular, Grupa Folia in Brazil, El Mercurio in Chile, Fundacion Sin Limitis in Venezuela, the International Labor Organization, the International Inter-American Development Bank. Seven of this year's winners have been selected as Latin American Social Entrepreneurs of the Year. I would also like to acknowledge Don Tice from D-Lite, one of our North American winners who is also joining us in Panama. Through their partnerships with corporations, government and civil society, these organizations serve as an important illustration of the power of social innovation. I would like to ask the Latin American awardees to join me on stage when their name is called. Javier Armando Lozano, Clinicas del Azucar. This is a chain of low-cost diabetes management clinics in Mexico. Mass has reduced patients annual costs by 70 percent, lowered their diabetes complication rates by 60 percent, and significantly increased their adherence to treatment. Sasha Kramer. Soil is improving the fertility of Haiti's land and transforming waste into a resource. Soil designs and implements low-cost technologies that are simple, easy to replicate, require minimal water, and provide safe and dignified access to sanitation. Rosario Perez, Pro-Mujer is an international microfinance and development organization whose mission is to provide Latin America's poorest women with the means to build livelihoods for themselves. It does this through combination of microfinance, business training, and healthcare support. And to date, Pro-Mujer has dispersed over $950 million U.S. dollars. Mirola Stigal. The Brazilian Lymphoma and Leukemia Association was established to secure first-class treatment and improved quality of life for patients suffering from rare blood diseases. ABRAALA acts as the national reference point for connecting patients to an ecosystem of support, including self-help groups, government services, and experimental treatments. Patrick Strube. Fertrassa provides technical assistance and market access to subsistence, semi-skilled, and experienced farmers in Latin America. As a result of Fertrassa's support, farmers are able to improve their yields, dramatically increase their revenue, and enhance the ecological sustainability of their operations. Luis Aran. Sonidos de la Tierra harnesses music as a tool for social transformation. Sonidos' youth orchestras are active in over 180 cities, towns, small villages, and urban slums throughout Paraguay. Not only do youth manage their local programs and fundraise most of their budgets, but many of them developed craftsmen skills to go on and build and repair musical instruments. Jose Vincente Aguvere. Dia Dia is addressing the growing problem of food deserts in low-income urban zones in Venezuela. Dia Dia employs 1,000 people and maintains a chain of 35 stores in 16 cities that stock high-quality fresh produce. It passes on extra-load food prices for its low-income customer base by securing purchasing and distribution agreements with national supermarket chains. Please join us in congratulating these inspiring individuals and their phenomenal impact. We'd like to ask them to come on stage for a photo with our distinguished panelists. Please.


This Thanksgiving weekend, the Fox Football Feast is back. You ready? Go, go, go! Feast on Redskins Cowboys Thursday. Friday, Washington takes on Washington State. And Saturday, this is big. Michigan battles Ohio State.  Then the Seahawks Panthers on Sunday. You ready? Come on! Let's do this. The Fox Football Feast begins Thanksgiving Day. Sponsored by Peloton, the perfect gift for them and you.


This paper examined the spatial variance of urban energy consumption in China using GIS tools and Thiele index. It found that there were significant differences in energy consumption among different provinces which could be attributed to differences in geography, economic development and energy sources. Certain regions had higher energy consumption rates, while others had higher efficiency rates. Additionally, certain regions relied heavily on coal, while others relied on cleaner energy sources such as electricity or oil. This spatial variance was further confirmed by Thiele index, which showed that the within-group inequalities were greater than those between groups. As such, it is important to develop regionally targeted policies to reduce energy consumption and improve energy efficiency. This article was authored by Yen Peng Kai, Li Xiao Zhang, Jing Liang and others.


Welcome everybody, we have, next up is Michael Bank. He's a Debian GNU herd porter and he's going to talk about the GNU herd port and how it's going and what comes next for it. Michael Bank. Okay, yeah. Thanks everybody for showing up. So I was a bit worried that nobody would be interested in the herd anymore, but at least there are some people who want to see how bad it's going. So, sorry? So, well, actually I wanted to run this on the herd, but I checked it out just in front of the audience because my notebooks have a high SVG, as you saw I have to change the resolution and I didn't know how that worked, but I had X running, I had this presentation running just in the wrong resolution. So basically it still works natively. It works pretty well in QEMU and in Zen, but yeah, not today. So, it's been a long time. That's a quote from like, I don't know, ten years ago maybe. Somebody might remember Jeroen Deckers. He made a big flame war on Debbie and DeVal when Adam Heath said that the top level herd directory should be removed because it's not an FHS and then there was a lot of big flame war and Marcus gave that advice. So, I want to talk about a bit about the past, the present and the future because some of you might not know, I mean probably all of you are quite aware about that it hasn't been released yet and that kind of stuff, but not really what the real status is. So, that was a pretty good summary on the age recently. I don't know where they have seen it, about how it came to be. So, you can read that up if you didn't. I mean we thought it was pretty accurate. I don't know, I mean how they researched it because we didn't hear anything from them, but it was pretty good. So, but in general the herd was designed by Thomas Bushnell BSG who's I think still a Devin developer, but not that involved anymore and I don't think he's around. And with some input by others including Richard. And, well, there was a lot of thought about what to do, what kernel to base it on and stuff like that because as you might know the herd is not a kernel, it's a user space system so it needs a micro kernel to run on and it was at that time decided that it should run on Mach which Thomas apparently didn't like that much, but he craved in and then did it. He implemented the core system along with Ronald McGrath who is maybe not a Devin developer anymore, at least he's also not very active anymore, but he's still a Glypsy maintainer and he's original Glypsy author. Yeah, Richard didn't really code on the herd as far as I know so he just gave some input every now and then. In general the architecture, as I said, it's GNU Mach micro kernel which includes the virtual memory management and the device drivers and also the network layer which is, yeah, both the device drivers and the network is Linux code actually so it hasn't been written directly for the herd and at this point it's still, it's 2.0 Linux device drivers so we are really happy that it works in Zen and QEMU because they emulate such old hardware that it easily works with Linux 2.0 but it's quite difficult with new stuff so I'm happy that it works and I think that. On top of it there is the POSIX layer so actually G-Lyp C for the herd is much bigger than for Linux because you have just the Mach micro kernel which does all this Mach messages and on top of that you have the herd servers and then on top of that all the POSIX stuff is implemented in terms of herd and Mach messages so it's quite a bit bigger and so all what you know as a system call basically which is implemented in the kernel and Linux is implemented in G-Lyp C on the herd and on top of that there are several herd servers who provide authentication networking file systems in a herdish way and you have the famous or infamous herd translators which are a bit like fused file systems but you can basically do anything with them they're just like docking things in the file system you cannot just do file system operations on them because you can with fused I believe you can basically do any kind of stuff you want with them which is provided by the herd libraries like the diskfs library or the storeio library and stuff like that which as they're all implemented in user space makes it in principle quite nice to develop against if people are interested so Thomas and Roland are still around I mean if somebody posts an interesting question on the main mailing list sometimes it just takes 20 minutes for Roland to comment on it and he always has good advice and he commits the herd-specific G-Lyp C stuff that our porters or developers are sending to libc-alpha so as I said, yeah, he's still around but sometimes he just has some... yeah, make it up again but he's a great guy then there was the second and third generations well the second generation, I don't know maybe in the mid-90s there was Way Before My Time there was Miles Bader and Mark Katniss they joined in as GNU people there was a couple of other people I started developing more user-friendly stuff like HostMux or I don't know how it's actually called FTPFS which already in the mid-90s was like a Fuse file system like as it's HFS you see today so with HostMux and stuff you could just write cd-slash-ftp.gnu.org-slash and then it would immediately go on the network and you could just use FTP transparently 15 years ago but, well, Linux has all that these days as well but just to mention that I think it was them who basically did that they're no longer around I mean I see Miles every once in a while in Hashtavian but they are not around in the community anymore and then in the late 90s I would say Marcus Brinkman and Neil Wallfield I think they also both stepped down as Devin developers not so long ago they joined, I mean Marcus started the Devin port did a lot of effort in that he designed the Hurt console back then there was only the Mach console which is pretty weird but the Hurt console is quite nice you can catch it, it has Unicode and all kinds of stuff Neil contributed important fixes some of them haven't been applied yet but mostly he contributed a project spreading library which boosted porting of applications quite a bit because before we only had a Mach threading library which you couldn't really use from user space it wasn't used so everything which had relied on pthread was not going and due to that we were able to port a lot of stuff that was maybe 10 years ago and then in the like I don't know 2002, 2003 they decided they wrote a paper an academic paper on problems with Mach and decided to start a new well first they decided to port Hurt on L4 then it was called HurtNG for next generation because there were problems with L4 so to give a sneak preview actually HurtNG has been discontinued we're still using GNU Mach we're not terribly happy about that but it turned out that L4 had well they believed that it had issues for security stuff so sending messages wasn't as secure as they wanted it to be then they thought about going for another microkernel that Professor Shapiro implemented but that didn't work either and Neil he's still in academia he's working on a microkernel for marine management starting to fade out I think this works can you still hear me? so they basically removed they basically stopped doing that at that point I mean as I said Neil is still there but he's sort of moved like into research operating system research and at this point well we or the Hurt community believe that in the next couple of years we will move to another microkernel it's just not there so yeah by 2005 they were working on HurtNG and while Roland and Thomas had basically disappeared from general development they were still doing development until the early 2000s but it was pretty bad we didn't have a built-in running I remember I was going over my old slides five years ago and the status there was pretty bad yeah we had frequent crashes it wasn't so perfect and even then Marcus said when I joined the Hurt in 1997 there was little doubt about the Hurt state at that time it was just about at the end of a dying a slow death which is probably still the case today or at least at 2005 but then on those three guys showed up and they did a lot of work I mean it's going really slow because the community is quite small but Samuel Thibault basically rescued the Debian port and the GNU Hurt on it's on his own so that's just one of the few stuff he did M68K porters know that implementing TLS is important he did it I mean otherwise Gelip C is really difficult to have nowadays and he ported GNU Mach to Zen he was doing a postdoc at Sensor at that time I think and I think he also implemented PAA physical address emulation or what's it called extension thanks so that basically meant that we were able to run GNU Mach on regular IA32 hardware which could be as fast as we want because basically before then Mach wouldn't boot on AMD64 I mean the Centrino is about the last thing that works but everything else was just not booting anymore we had lots of trouble with the interrupts and the hardware was getting just too new and Mach was getting outdated so it was really bad we had to I was running a build team at that time and it had to be I don't know Athlon 800 or something like that anything else wouldn't wouldn't really work anymore so having it on Zen really was great I mean we could run it again and of course it was also great in so far as it was easily monitorable you could just reboot it remotely no problems you don't need serial console or anything like that you can basically you can also well debug it much better and yeah I mean he fixed countless of GNU Mach crashes I mean I would see on the build team that it's crashing and I just give the instruction pointer to Samuel and usually like 10 to 15 minutes later he would commit the fix to CVS it's just amazing so he fixed most of the GNU Mach crashes so it's much better these days he fixed and ported G-Lib C whenever Mr. Drapper implemented something new and didn't care about porting or portability that much Samuel would check in and do it he also fixed and ported XORG several times so X still works at least with the VESA driver I mean at this point we don't have kernel mode setting so there's some more work to be done if we want to stay on top of it but at least the VESA driver still I believe still works I just tried it and oh that's a type way he initiated basically the Debian installer port and so far as he like made some research on it and then got it to some limbo state for a while where you could work on from and also he maintains the auto builder I was doing it for a while but now he's basically the main guy I mean I'm backing up he's on vacation so I'm backing up for him but he maintains the auto builders he keeps them running we have a couple of them now and yeah he's doing Trimman's job he's like the one guy why Debian Hurts still exists so you have to kill him if you want to kill the port Olaf Bodenhagen he did a lot of community work basically he organized all this google sum of code stuff for the GNU site so we had I don't really remember but we had about 10 projects now overall over the last couple of years and one year he even managed to get the hurt being it's proper organization the other years we had one or two usually one slot from the GNU project so he organized all that he put a lot of effort in there he kept hitting people to do stuff and he also always is a lot of questions about what you could do what you could really do with the hurt because at this point we're just porting POSIX applications but in reality there is a lot of features which are still not really explored on the hurt all this user level user space stuff you could do basically could be tremendously useful but somebody needs to go out and have the ideas pushing the concepts and I believe he's also been working on a kernel graphics interface driver for Mach on his massive features but that's not integrated yet and thirdly Thomas Schwingem he pushed things on the GNU site so it was always very very difficult because the hurt and Mach repositories would still run on CVS on Savanna I believe and only Roland really had access well Neil and Marcus too but they basically had disappeared so it was very difficult to get fixes in because Roland wasn't there all the time and Thomas was basically not around I mean Thomas Bushnell was not around at all at that time so it was very tedious to get fixes in and Thomas Schwingem basically managed to get everybody going I think he lobbied also with Richard that there were no new committers now Wable so he got commit access for Samuel L so now it's getting much better I mean things are getting committed much much better much faster and he also did this cross-building stuff so people could more easily cross-build GNU hurt toolchain and in the end like couple of months ago he also migrated the repositories to Git so we're on Git now as well finally so yeah they basically became hurt hackers and now I want to talk a bit about the presence so that it was a bit the presence but the status so the community on one side it's very small so I don't know how many Linux kernel hackers there are there's about a dozen hurt hackers right now it's still a nice community I mean that was the main point why I sticked around because just the community was so nice and people like Neil and Jeff Bailey also who did quite some work for a while and Marcus Brinkman they're just lovely people and it was just great to hang out with them unfortunately they're not that involved anymore but still the community is nice people are great and also we managed that former Google sum of code students are still partly active I mean a couple have disappeared but quite some are still active so one of them even is this year he's a mentor and some of them doing new stuff and lately there's also two new porters Emilio Pozzuilo Montfort I hope I pronounced it accurately he's been partying a lot of GNOME packages unfortunately he's not here I mean you probably know him from there both dev and developers right Pino Toscano and him he's been doing a lot of GNOME work and he's been doing and this year he's working for the GNU project on Google sum of code for fixing well I'm talking about that in a bit but basically those two they've been partying a lot of GNOME packages KDE packages you know so it looks quite good I mean most of GNOME and KDE has been imported so the community is great and yeah I want to talk a bit about Google sum of code because this year I think it's really they're doing quite some great work so as I said Emilio he's working for the GNU project and he's fixing test suit failures so that's maybe doesn't sound so interesting but so far he's been fixing the GLIP test suit and basically what we did we were just labeling the test suit so we get the packages in the archive and we never really managed to have a really deep look at them but he's been doing it and he found lots of bugs he implemented new stuff like he found out where our implementation is not really POSIX or at least is well if it's if what Linux or GLIP is doing is beyond POSIX then he was fixing it up for them so it works and he had to fix and port GNOME and HURT and GLIP-C quite a bit for that he's now doing core utility and I hope he's moving on to Python and Perl as well still hoping he does we can get him to fix all the database test suits because they failed due to missing POSIX record locking there's a patch which is 10 years old but it needs fixing that would be great so we can only lock the whole file at this point we can lock regions of files so all the database test suits are failing Karim Ala Ahmed is improving the virtual memory management which is also great because nobody has really looked at our GNOME which is the fork that we are using for the last 20 years I would say or maybe 15 years at that level so he's working on that he's been doing some stuff I mean I talked to Samuel a while ago and he was really euphoric about it that it's improving quite a lot on the build demons he was a student from last year so this is a bit misleading he had an application but in the end he was rejected but he's still working on things with a mentor so he was motivated enough to still do this project even though he didn't get accepted for Google of some of code officially and what he's doing he's porting the DDE as a device driver environment I think it's from the University of Dresden or something basically better than the current glue layer that we're using I'm not that much into the technical stuff but the point is that we can use current Linux 2.6 device drivers unmodified with that and he's we now got at least the network drivers for Intel working so that that is working I haven't tried it on this one yet but I heard it is working so it seems to be great so that's that's one of the things that really always had a problem because there were no device drivers that were up to date the glue layer that we had in Gnumach from 2.0 to 2.2 or 2.4 or 2.6 at the time that new Linux releases were done and it was just a bit of a problem but now with this DDE it seems that we finally have a resolution for that so we can stop thinking about device drivers and finally Jeremy Koenig who is around he's porting Demian installer for Demian that's the Demian project and I'm going to talk a bit more about that here actually it's Jeremy here okay well he's around at DeppCon maybe not in the room so he did quite a lot of stuff I mean as I said we had a project about like 5 years ago and the guy just disappeared basically so that was a failure we were not very happy about that but now as I said Samuel did some some initial work on that and Jeremy has been picking it up and it works now basically so he added in it Rem this support to Gnumach which has been merged yesterday by Samuel and uploaded what a microphone Colin has the command that was always the blocker and I was trying to do this experimentally originally I could see how to port all of the components getting the damn thing to boot was the hard bit well I'm not sure how actually how they did it but he implemented it he had to fix some stuff for busybox like for example for some reason something and Demian also wants to make deer slash and that just failed because nobody thought that somebody would ever do that on the herd so he had to fix that by I think fixing the remote procedure calls and stuff he ported part man so you can basically partition things he integrated user space partition stores in lib parted that's quite nice so you can just use the partitions in user space you don't really have to think about offsets and stuff like that for busybox or he finished porting it I think Samuel did quite some work on that but I think he now has most of that stuff upstream and he fixed crap installer that was also one of the big problems all the time I mean maybe to reiterate how important that is so we had these installed CDs that Phillip Childs has been doing who recently resigned he's been doing it for ages and they were based on bootfloppies if somebody remembers what that was that was what Devin was using before Devin installed it so he was using bootfloppies on linux to boot it and then he was extracting base trouble basically and yeah didn't even well back then it would have probably been impossible but it also didn't have any grub installation feature so people had to set up that themselves and actually it's a bit more involved on the herd because you have to multi-boot a couple of modules so that was always a big problem and for a long time you couldn't really install grub from the herd and that was always going to kill the project basically you could just do it on linux and then because you had to run grub at some point but now he also fixed that so that's working you can check out the roadmap and yeah so I did an installation on this one it worked everything well the one problem is that it installs grub too and that works perfectly in QEMO so you can just boot it afterwards it works everything I mean you don't there's no hacks involved or anything it just works except on nature hardware it just rebooted but I mean I now installed it I installed grub1 on it and that that boots yeah as a grub2 developer I'm interested in looking into that if you wanted to get in touch with me sure couldn't do that and the rest of the status that means the install is working it was a report from Samuel a while ago which he filed so well there's a couple of things for example it just sets the QEMO static internet configuration so you can use it we can use it transparently in QEMO but if you want to do something else you have to set up networking yourself and stuff like that but basically it works you don't have to switch on the console and do some weird command or stuff like that it just works I believe Bach well Samuel has been dealing with that most of the time I believe Bach is usually building experimental and one of them is continuous building the failed packages in hope that some of them might have been fixed in the meanwhile because as I said Emilio and Pino are quite working on porting stuff so I believe the current number is 67% which doesn't sound so great but it's much better than a couple of years ago and it's really difficult it's not like you just I mean quite a lot of stuff needs quite a lot of thinking and working and takes ages to get these things going well it's going upwards slowly and we're happy but could have been could have been faster and the great thing is that with all the work that Samuel has been doing on Bach we now have about well according to him because he's been doing it basically the uptime of the built demon continuously building is one week which is much much better than what we had a couple of years ago and I had to reboot this thing every couple of hours and then file system check all the time I don't see any file system corruption anymore it's really much better we have to send Dom you working as I said it's not working out of the box I believe Samuel has been working on that over the weekend it would be really cool if we could just put it into the Debian GNOME package but with a bit of fiddling you can get that going there's QEMO images available and most of GNOME KDE has been boarded and built and there's a potter box available if somebody's interested in checking out their packages it's used to get your LDAP wired so you can just lock in with your Debian SSL key and it works I mean you have to probably ask us about the build dependencies and stuff but there's a change route yeah so the future get more packages get Debian installer fully working Jeremy I hope can do some more work maybe get it working on the graphical installer as well integrate Zen that seems to be working already and explore hurtish concept for Debian problems I mean that's a bit wishy-washy but well I don't know this whole user space stuff and translator stuff might be interesting for some things we have to rethink about it so far as I said we're just playing catch up but you could do quite some cool things for example we had some stuff where people were stacking translators and using network translators to talk to each other and stuff like that you can do quite cool stuff with that if you just think about it and have nice ideas well what really the problem is right now and what also killed Phillip Charles with doing these snapshot releases is it's just unstable in Debian unstable so he was always having much much problems getting everything in a state that he could freeze so he was basically doing release management on unstable and trying to get a set of packages going and build CD images and that's why he burned out basically because it's just so difficult so we hope to get at least some kind of testing after the squeeze release obviously because right now we're keeping up quite well I mean it's not like there's like hundreds of packages not being built so the auto builders are not a problem out of date packages finally I'm trying to get that going and then try to get some testing going probably we need to dispatch somebody to release team if they want to deal with that kind of stuff so it shouldn't be the release teams issue but if they are okay with it we might think about it and well I don't know what happens in the end we will see so that's the end of my slide so far I can try to show you how it's looking if I'm getting this right that's not good so yeah that's can you see that that's the the installer booting natively on the herd it's a well it's a CD image and that's called booting I don't know whether you can see that but it works basically showcasing so while it's running is there any questions yes hey my name is I'm fascinated by the project and I actually have a boatload of questions but I'll just start with one don't take this the wrong way this is going to sound horrible but what's the point I will accept because it's cool because we need another free alternative but what's the motivating factor actually is there a Minix talk I mean Yalla has been doing quite a lot of work is he presenting that I was faster than you I got it sorry yes I'm actually also working on a port to the Minix micro kernel operating system as well and my motivation is basically because it's there so okay go on please so I'm not particularly a hard developer except in that I occasionally make something for it when I notice it but but I can offer one useful reason why GNU hard to continue to exist even though most of us are using GNU Linux and that is that there is considerable pressure on there is considerable pressure on GNU Linux to remain stable neither so many people are using it and it's becoming quite difficult in many ways to do serious research you can't any time you try to make an extensive change it breaks somebody's real world situation and I think it is healthy for there to exist I don't really think it matters what it is but it is healthy for there to exist a system which has enough traction that people are working on it and keeping it going that's sort of a minority interest so that it has the freedom to do more way out to research and everything else and I'd offer that as a reason for the project's existence that's a quote from Linux when he announced Linux it says do you pine for the nice days of Minix 1.1 when men were men and wrote their own device drivers are you without a nice project and just dying to cut your teeth on an OS you can try to modify for your needs are you finding it frustrating when everything works on Minix? no more all-nighters to get a nifty program working then this post might be just for you so yeah that's basically a point trying to check back on this there we are and actually the cool thing is the Herk console does U2F8 so you can basically I don't know actually can you do that on the console on Linux? we have to use the user's best console emulator for it so Jeremy was that because of the micro kernel architecture that makes it easier somehow to do development work? yeah I was asking is your name Jeremy? no I'm Colin oh Colin I'm sorry like I say I don't think it matters much exactly what it is I think that the GNUV K3BSD port serves a similar purpose in some ways that is an experimental system in some regards but I do think that it's healthy for the Debian project not to restrict itself simply to GNU Linux yeah right so one thing to always keep in mind is that when you use the space part this whole I mean I haven't really talked about that all the porting issues all the porting issues we have like there's no pathmax macro defined on the Herk but that's not actually the Herk I mean that's the GNU project it's the GNU system in that sense and our Debian port we always have to think about well does it make sense to continue working on GNU HURD or does it make sense to continue on Debian GNU HURD that's like two different questions and um yeah I don't have why I don't have I don't know anyway okay going well so one thing is that as I tried to say so in Linux these days it's really hard to get big changes in it's difficult that's also why I mean we've been talking with the new guys and they say it's just great I mean you can hack around in the kernel and you immediately see any progress because it hasn't been optimized in the last 20 years so everything you do basically might get a 10 or 20% boost in system performance I mean I don't know whether you want that but it has some instant gratification to it and while Mach is not that great from I mean it's a microkernel so it's not that easy to hack on the HURD itself because it's a really nice code I mean it's the same thing like the GNU C library and you can do it in user space it makes debugging quite a bit well on one level easier on the other hand all this inter server communication also makes it quite a bit more difficult but yeah it's hard to say but I mean for Debian I believe it's just it makes it a bit more portable in one hand we have manpower we have people who are knowledgeable enough to fix things in a way that they just don't define Pathmax to 4096 or something so it works but usually what you have is what you rather do I mean you have like a final name or something and then usually you would just allocate a static buffer of Pathmax to be sure and if you do that all the time it's just like waste memory and we have people who can now allocate memory dynamically at the right size because usually you know how long your buffer will be and stuff like that so it might also that the code in Debian or in the upstream projects might benefit from that quite a bit sorry it was well well and you first is is SMP working on herd or is it not relevant to no we unfortunately that's not working I mean so I mean herd in general is multi-threaded multi-threaded but SMP on the Mach is not working at this point I mean I think we had to I'm not sure about it I don't believe it ever worked really I mean there was one guy hacking on it for a while and he got an experimental thing going which I believe went in the right direction but he didn't really continue so no there's unfortunately no SMP that's certainly one thing which is problematic so where can we get that CD image it's a good question this is working it's on Jeremy's website photo time being probably just should go to that there it is is it? yeah no that's Samuel this one there it is mini mini.iso jk.fr.eu.org Debbie and herd installed on mini.iso and then just runs in QEMO other questions you had one yes yes one problem I've been having with the minix port is running into like linexisms in software apart from the pathmax thing you mentioned what other like major porting hurdles do you have when you're bringing software signal stuff that's because our signal that's because our signal implementation is quite old so Roland said has been saying it for 10 years or well until he was not actively working on it anymore that he has to rewrite signaling stuff but he never did so that's one thing then there's a couple of these well the main point of the GNU system is of course that there should be no limits so that's the whole pathmax isn't defined the whole max host length isn't defined stuff like that I mean that's a double-edged sword on the one hand everybody likes the GNU utilities there are much more well some people like the GNU utilities they're more featureful than the old BSD ones or proprietary unix ones but on the other hand due to linux going with the classical unix kernel it also means that other stuff in GNU is just bit of a hassle on the hurt because as I said it's a policy question of the GNU system to do that it's not a problem in that sense other things there is a website called porting problems on the hurt wiki I believe so there are some open issues well you can find it somewhere basically signal stuff then well lots of other stuff we have fixed so far I mean the most things I had actually I didn't have any analysis on all the failed stuff on the build even a while ago and quite a lot of what this path makes stuff and then it's just like random well of course there's a lot of a lot of programs but they have to really say that the k3bsd port was tremendously useful because a lot of programs will just include linux slash fs or some header which is linux specific because they think well it's linux I'm not caring about that it basically has the same issues and there are now release ports so things are getting actually fixed and then catched up on that so we're much better doing in that and then there's a lot of like glibc not defining one part of the structure but it's defining it so for example our networking stuff and glibc is more modeled on bsd because that was what the people knew at that point and linux wasn't I mean even when it started linux wasn't that big and stuff like that so yeah is there any further say are the major impediments left to having a usable system for a user so for instance like drivers I would imagine it's a big thing network drivers wi-fi storage devices yeah I wanted to use her on my laptop wi-fi is a big problem we don't have we don't have sound there was one guy Richard Brown he managed to get sound working for a bit but he never integrated it so there's no sound in and hurt there is well now we have the network drivers at least so I'm not sure how easy it will be to get wireless drivers ported but there was one guy called Stefan Siegel who ported PCMCIA so basically with the old PCMCIA wireless card you could have working wireless but okay that's been a couple of years so you can't use wireless on that and then there was a recent thread about what's missing and for most people it's that USB is not working so I have to really have to say at this point I think it's much more a developer system in the sense that developers can use it they can use it in QEMU or on the boxes or even natively to hack on stuff but there's only one guy right now I believe or maybe a couple but one guy that's Olaf Bodenhagen he has his home directly NFS mounted and he does most of his work on the herd but if he wants to listen to music or kind of stuff or basically watch a YouTube video or something then he has to well do all the boot and that's not so great but yeah there's quite a couple of things missing so I don't recommend it running as a user system it's really for hackers I would say at that point okay I think we're running out of time is there any last question otherwise thanks again everybody for attending and yeah I hope at some point yeah it will get better or even better I mean I'm quite glad at the current state it's much better in the last year or so yes two years it's getting very slowly because it's so few people but it's getting better and better and it's not I mean at some point we were thinking that it would just starve because we're moving so fast and we can't keep up it seems to be that we can keep up and we're getting better and also we're getting it's I hope I mean the main reason for me is that I hope that it's getting less trouble for Debian so it's always like oh there's outdated herd binary so oh this is not working on a herd and I hope that that is getting also better so it's less work for Debian other people we don't really want to hassle other people in Debian with a herd point okay well thanks everybody


Hey everybody it's Brian and welcome to the 26th tutorial. Today we're going to be handling multiple file uploads. Alright well if you hear some chimey music in the background that's my dryer just ignore that. Alright we're going to grab our last tutorial and literally copy and paste it in here. If you missed my last tutorial don't worry we're going to go over that. Okay the last tutorial we handled how to upload a single file and some key points to remember here is the ink type has to be multi-part form data and what happens is when you submit the page it is posted to the web server and the web server hands it off to PHP who says hey a file upload's going going on here and it creates this global variable called files and it uploads it to a temp name and once the uploads complete hand you the variable and you can do whatever you want. There's some properties in the multi-dimensional array like name type size, temp name. So what we're going to do here is we're just going to get rid of this. We'll probably need that. My mouse is going crazy on me. There we go. Make sure you type 26.php instead of 25 you'll be posting the old file and one thing you want to note is to add the brackets right here and you'll see why in just a second leave a little space there. You know how we've got two input types or I'm sorry two file inputs both of them named file bracket. Well what we're doing is we're adding another dimension to the array. Save it. Notice how we have two of them now. Now we simply want to grab the information that's uploaded. So we're going to say for each. We want to grab the id column and the name column and then we want to just simply print this out real quick here. That way we can verify that we are indeed getting multiple files here. So let's browse. Just grab icon one and icon two. Submit this. File array. Seems I admitted something. I'm very sorry about that. Remember we are taking a segment of the array and we need to match that up. There we go. That should work. My bad. Okay there we go. Zero icon one JPEG and one icon two JPEG. Let's actually add a hard return in here so you can really see what's going on here. Okay so there's our two files that we uploaded. Icon one. Icon two. In case you're wondering what this little bit of voodoo magic is basically we're just grabbing the information out of here. The actual array. Actually let me grab this. This would be much easier to show you. Just going to add some horizontal lines in there. Now you're used to this right here. A single uploaded file. What we've done with these brackets is we've added another dimension to this array. This is why we grabbed the identifier. Save our work and there we go. Let me move this up a little bit so you can see it here. So here's our first file icon one and here's our second file. Actually seems like I've goofed something up. Yes. Let me comment that out. Clean this up a little bit better. There we go. There's our first file icon one. There's our second file icon two. You can see the sizes are different and there are different temp names. So that's how you grab multiple files. Now there is a maximum file. Upload limit I should say. That's in PHP. It's in the PHP config file. Admittedly I do not know what that is because I tend to not allow users to upload too many files at once. Let's just grab this one and let's grab something that's not a JPEG. Let's grab that guy. So you can see how we can upload multiple files now. And then pretty much if you wanted to manipulate these files you would use as we did in the 25th tutorial the move uploaded files function which you just need a source and a destination. And remember the source should always be your temp name. In our case it's going to be the temp name and then the identifier. A lot of you are probably going to message me and ask, hey, how do you upload multiple files through a single dialog box like you do on Facebook or something like that? To be brutally honest I don't know. I think you need a flash animation to do that. I'm not quite sure but I don't think that functionality is actually built into PHP. I could be wrong and I'm going to research that a little bit. So that's all for this tutorial. This is Brian. Hope you found this educational entertaining and thank you for watching.


Hi guys, so today we're going to be taking a look at the node class. So what exactly is a node? A node is a recursive data structure, and we can explore what this means with the help of an example. So in this example, if we take a look at the node constructor, we'll see that each instance of node contains two instance variables. Data, which is of primitive data type int and next, which holds a reference to another instance of node. Now you might find it helpful to envision nodes like people. For example, take person A. Person A contains data about herself, and she also holds a reference to another instance of person, her mother.  So how do we create a node instance? Well, if we take a look down in the node client, you'll see we have node A equals new node 10 null. So what we've done here is we've created an instance of node with data equals 10, next equals null, and object A refers to this instance of node. Underneath we have node B equals new node 70A. So here, an instance of node is created with data equals 70, and next is a reference to a copy of A. In other words, next refers to the same node instance that A refers to. Now you can see I've added a bunch of breakpoints here, and what we're going to do is we're going to run the program through the debugger, so we can see step by step how each node is related to each other node. So let's go ahead and do that. All right, so starting off, we have node A. Node A has a unique ID of 19, and if we expand A, you'll see we have A.data equals 10, and A.next equals null. So moving on, we have node B with a unique ID of 23, B.data equals 70, and B.next refers to an instance of node with an ID of 19. Now we can see here that B.next and A have the same ID. And this shows that B.next and A refer to the same instance of node. So moving forward, we have C. C.data equals 20, C.next equals null. Node D, we have D.data equals 90, and D.next refers to a node with an ID of 26. So once again, we can see that D.next and C refer to the same instance of node. And we can see this because they have the same ID. So moving forward, we have node E. E.data equals 30, E.next refers to a node with an ID of 29, which is the same ID as node D. So once again, node D and E.next refer to the same instance of node. Now if we move forward once more, we pass over the code C.next equals B. So what this does is it sets C.next to refer to node B. And we can see that this is indeed a code because C.next has an ID of 23, which is the same ID as node B. Now if we just step through, we can take a look at these print statements to get a better look at what's going on. So A holds a value of 10, A.data equals 10. So A holds a value of 10. Moving forward, similarly B holds a value of 70, C holds a value of 20, D holds a value of 90, and E holds a value of 30. Now we have node after B that is A holds a value of 10. So the node after B is B.next. B.next is A and A holds a value of 10. Moving on, node after C that is B holds a value of 70. So the node after C is C.next. C.next refers to B, B has a value of 70. The node after D which is C holds a value of 20. Once again, D.next refers to node with a value of 26. C also has an ID of 26 and C.data equals 20. Nerd after E that is D holds a value of 90. E.next equals D and D has a value of 90. All right, and then last one, the nerd after the nerd after E, which is C, holds a value of 20. So if we look here, E.next refers to D. D.next refers to C and C has a value of 20. So you can see what we've done here is we've created effectively a chain of nodes where E.next refers to D, D.next refers to C, C.next refers to B and B.next refers to A and A.next is null. So A does not refer to another node. So that was just a short presentation on the node class. So I hope you found this helpful and thank you for watching.


All right, good morning. Some people are filing in still, but we're going to go ahead and get started. Thank you for coming this morning. My name is Tom Kramer. I'm the associate university librarian for digital library systems and services at Stanford University. And I am here today with my colleague, Simeon Warner, from Cornell University. And today, we're going to introduce a new project which is actually being born out of the last 10 or so years work of concerted effort on community-based bib frame adoption. And this project is called BlueCore. With us at CNI this week is our other colleague, Jason Kovari, from Cornell University. I believe Jason is in another room, but it's actually hard to see.  So we're the designated spokespeople. But if, at any point, you have questions, Simeon and I or Jason would be happy to have further discussions. And with that, we'll go ahead and begin. Simeon and I are going to talk for about 20, maybe 25 minutes, and then there should be, we hope, ample time for questions and discussion at the end. So here's the conclusion of the slide if you want to jump out to a different track right now. But we believe sincerely that bib frame and link data are the future of bibliographic description as brilliant and as wonderful as Mark is. It will not be with us forever. And to us, it looks like bib frame is the right next step and the next evolution. We've been working for a number of years through the LD4L, LD4P grants to work with the Library of Congress and others in the bib frame community to really understand what adoption and application of bib frame would be, especially for the production of metadata and for cataloging. And we think that bib frame is at a certain point as is significant changes in our library systems environment where we are at an inflection point and we believe there's an opportunity to take a new direction, which will be significant and pervasive. And this concept, which is still in development, is known as BlueCore, which is a project to develop a truly shared bibliographic store of linked data. And this will not rock you, but we believe that linked data is best when it is linked rather than copied. And one of the realizations that we have realized through experimentation and observation is that trying to replicate the mark-based environment with every institution copying its own linked data is perhaps misguided. OK, easy audience. This is going to be good. Not only do we want to develop this truly shared store of linked data, we believe that the tooling is now on its way to make this real and to move from the area of theory and ontological discussions about the importance of these descriptors or those relators to actually being able to produce useful cataloging. So the LD4L, LD4P grants, actually started back in 2014. Cornell University kicked this all off with Dean Kraft. And many of you may remember Dean. And we once quipped, what's the, oh god, what was it? What's the problem that we're trying to solve? Dean said, the answer is linked to data. He says, now what's the problem that we're trying to solve? So he was a real convert. He understood and really understood and celebrated the benefits of linked data. And he kicked off a wide set of grants, starting with Stanford University at the beginning and at various times partners with Harvard University of Iowa and Princeton, as well as cohorts, to explore how linked data could be better baked into library systems beyond great side projects and actually work their way into the core of our work. For the first two years of this series of projects, we did exploration, developed a set of use cases, and really did a deep dive into the ontology of what was then bitframe 1.0, as well as some associated ontologies. That was followed up by two companion grants from 2016 to 18, which looked at developing tooling to apply those ontologies and still more ontology work, as well as a new series of grants starting up at Stanford for linked data for production, which is what LD4P stands for. And this is linked data for metadata production. So that was sketching out what a original cataloging and copy cataloging workflows might be in our current systems environment and doing ontology extensions of bitframe into non-book materials. The 2018 to 2020 set of grants was LD4P2, and that established working sandboxes for cataloging tools, conversion tools, and authority lookups. And the current incarnation of the grant is LD4P3, and we've called that closing the loop, which is not enough to simply produce the linked data. We need to plug into the rest of the bibliographic ecosystem so to be able to place orders, to be able to circulate materials, to be able to do reports, to be able to transport data across the environment. Over the years, I think we've made and seen substantial progress. So bitframe 1 is very different and less mature than the current versions of bitframe 2.0 or 2.3, 2.4. We have produced, we've now seen a couple of high quality linked data cataloging tools that are developed. So one of them came out of this grant, which is Sonopia with development led at Stanford. Cornell has invested heavily in developing questioning authority, which is an authority lookup and cataloging aid. We have worked with the good people at Share VDE to do large scale conversion and establish a data pool for the program for cooperative cataloging, or PCC. There's been a lot of work on incorporating linked data into actual discovery environments. Cornell in particular has put into production both knowledge panels based on linked data, as well as new browse interfaces. We've seen widespread adoption and well, widespread interest in working groups within PCC with a whole set of professional catalogers engaged in this, working on training, documentation, and approaches. And if you have not heard of it, LD4.io is an ongoing organization that is taking up a lot of the outputs of these grants, moving them to the community. There's an annual conference in the summer. We're seeing about 1,500 to 2,000 people participate in this virtual event every year. I think the mission when we think of all of this is something that Dave Eichmann from University of Iowa coined, is we see a world that is enriched with library data, and we see the libraries that are enriched with the world's data by moving to linked data. But one of the things that we have realized is that we've probably carried forward some of the assumptions about how a mark-based environment for metadata works, where every cataloging department is in their own kingdom. They're able to import the data and tweak or fiddle with the data, customize, enhance whatever verbs that you want to use. This creates lots and lots of copies of data. This is how our current systems work. But it's maybe not the right model for linked data moving forward. If we're talking about linked data, does every institution need to mint its own URIs for the same entities? Maybe not. Is it realistic that every institution will run its own triple store or its own RDF store? No, it's probably not. The technologies simply are not as robust or as simple to run as we've seen for relational databases. Are we mindlessly or maybe in some cases deliberately trying to copy how the mark environment has worked for the last 50, 60 years? It's probably true that we are. Shouldn't we be focused on making links to authoritative URIs that are shared rather than creating their own and tweaking with them? And isn't this an opportunity to reimagine what a 21st century metadata environment might look like with new models, new tooling, new workflows, new efficiencies, and actually better affordances for discovery? So with that, I'm going to turn this over to Simeon. OK, so I'll start by celebrating Mark. There are few standards that we use that are just about to turn 60, right? This is unbelievably successful and much credit due to a great many people involved for a long time. Of course, I'm going to move away from the celebration now and right on the party a little bit. Mark has provided us a very valuable infrastructure for a very long time and got us a long way. But it has some really fundamental flaws, which I think are an impediment to progress. You can argue about the detail of all the information in Mark, all you want, but I think it's really these sort of very high level things that are the things that really motivate us to move, things that we can't solve by noodling with Mark in any way. Mark combines in one record information about entities that should be managed separately. And Mark doesn't use Identify as well for linking and for control vocabularies. There are just things that are too many strings. Now, people have tried to sort of retrofit links into Mark. In fact, we've done a lot of that at Cornell as a kind of stop-gap measure, but that's not a long-term solution. What we need is something else. And the something else we're talking about is Bipframe. Now, again, you can raise plenty of criticisms about the details of Bipframe, but I think it has two key features which make it the right next stepping stone. Firstly, it does properly separate the key entities that we're interested in. And it's also maybe this is a good feature and a bad feature at the same time. Because it's closely allied with Mark and evolved from it, it supports what will be a very necessary migration from Mark and, in fact, back to Mark backwards and forwards for a long transition. I wouldn't like to predict how long it might take if we're wildly successful to make a big move away from Mark. 10 years, that seems kind of maybe not an underestimate. So these two features, I think, set up Bipframe as a useful stepping stone to whatever Bipframe then evolves into. You've probably seen this picture of Bipframe. I want to focus on the idea of sharing and reuse within this model and how we treat different parts of it. So the first thing, in the library world, we've had authorities for a long time. This is sort of the precursor of the idea of linked data entities. So we move from authorities to external stores of shared curation of entities where we put combined effort into making authoritative linked data stores and we just link to them. We don't copy it all into the record. In the focus of Bluecore, we have a shared set of bibliographic descriptions. And missing from this picture is higher level works, which might go into the authorities place instead. And then locally, we only store the very minimal data at our individual institutions. So we have taken the level of sharing sort of down in the stack. So if you think of the current environment where we're only sharing the authority data, we're saying, let's build a model where we share the bibliographic description as well and store locally, maintain locally, only those parts that truly are local. So to go over what we're proposing building, a shared linked data store of Bipframe works and instances, maintained and operated by some consortium of libraries. I think there's an important distinction here between one library and the whole world. That's wiki data, right? We're talking about some consortium, perhaps seeded by a small group, maybe Cornell, Library Congest Pen and Stanford, but structured to grow where we have the level of trust to just edit the data. It's not Cornell's data or Stanford's data. It's our data. We, of course, need to integrate with the rest of the bibliographic systems and providers. We've got big companies that provide systems we depend on, EBSCO, Ex Libris, OCLC, Chevy, et cetera. But we fundamentally break the institutional model of copy cataloging. We're not copying, we're linking, or adding to a shared store. And while we're at it, let's take this opportunity to lock that bibliographic data open for reuse, accessible by other institutions that perhaps aren't part of this initial pull as part of a growth strategy. So why? The current approach is incredibly duplicative and wasteful of effort. Just the act of copying, the act of writing description where we should be linking is not effective. We believe this is an approach to make link data work at scale and allow our libraries to better focus their efforts toward richer linking rather than local description. We want to enable data use and reuse by a sort of growing set of libraries, including not just the big ones who can afford to make an experiment and perhaps push this forward. So small and diverse libraries. And lay the future for perhaps working together in this much more open and collaborative way. And in the process, avoid lock-in associated with data systems and services that have hampered progress. So we have an architecture picture. This is kind of a sketch at the moment, but I just want to highlight a few features of this picture. The first is that we need all the sets of traditional data in, data out. We get data from vendors. We get data from other libraries. We share data back with partners, consumers, the public. So all that needs to work. And that does involve conversion because the marked word will still be out there. These tools have already been developed. Cornell and other institutions have separated their ILS, LSP, whatever you want to call it, from their discovery system. And we intend to continue doing that. So we still imagine local discovery at each institution because we're mixing together different resources that are either local or we have access to and we present that. So there's the feeding of local discovery solutions from the shared data store. And then there's an ecosystem around natively editing RDF data. So that involves the curation of works and instances in the shared store, and very importantly, linking to entities in other shared environments. And then I think back to Tom. So we are, at this point, still in the process of conceptual development. We feel that this is the right way to go, but there are a number of important details still to be sorted. So workflow and data flow. This is a radically different approach to how catalogers do their day-to-day work and the mental models and understanding of what it means to have a cataloging record. These will need to be redefined as we go, explored, put into coding, and actually validated or and tweaked as appropriate. We also think that there's going to be there's no future in which we will not have local or cloud-based IOSs, sets of editors, and all of the tooling that Simeon has just highlighted. All of these need to be integrated with. There will be no flag day where everyone uses current tooling and then swaps over from Mark to some future environment with brand new tools. We will be growing into this. If our experience with cataloging in general and with linked data in general has demonstrated everything, is that change comes slowly. We are pulled forward but it is neither radical nor dramatic. One of the big questions that we're wondering about is where is, as data flows across the system and the ecosystem, where is the data of record? And as Simeon mentioned, we'll be having one foot in two camps for a long time between Mark and the bit frame and this convertibility and reversibility of transformations is essential. But as we're making updates and as we're making enhancements, where is the system of record and the data of record? And can we regenerate that and always look back to an authoritative source? One of the questions, of course, is also gonna be organizational design. How do you define cataloging norms for a truly shared pool of data? One of the advantages to the current environment is if you have a different professional opinion or institutional priority for how records are structured or how you want to apply things, you can make those decisions locally. In a truly shared store, everyone is working from the same records, is enhancing the same records and is affected by the changes that others make. Governance of what this looks like, not just in terms of cataloging norms but the infrastructure and the overall approach is a fantastic topic for any group of libraries and I'm sure that we can look forward to many, many, many, many, many, many, many discussions. And then of course there's also the resourcing not only for the original build out but also the sustainability for the ecosystem that Simian has described. In terms of this specific project, which I'll get to is how do we engage broadly across the ecosystem in terms of catalogers, libraries, commercial sector, standards bodies and others who might be involved and interested in participating and then the specifics of project structure, plan and timeline. One thing that we do know is that for this approach to be successful, the Big Bang methodology and a waterfall methodology for software systems developers simply will not work. So we need to be sure that we're iterative in linked data if you've been involved in it for a while. It turns out that the success and what you produce is often different than what was originally imagined or conceived. I think it was yogi, I've seen this attributed to a couple people but the difference between theory and practice is in theory they're the same but in practice they're not. That has never been more true than with linked data. It also turns out as demonstrated by Simian's diagram is that we're not developing a single system with a single set of interactions, we're developing an ecosystem and as we pull forward with progress or changes in one area, it will take time to see how other areas may develop and may respond. This is a co-evolutionary process. And so as part of that we will need to build in time and both to assess and to adapt to our findings. As part of this we also know that from agile software development to minimize risk, every phase needs to have value in and of itself and each phase should be a baby step rather than a revolutionary approach. And then finally one thing we've also learned is it is so hard to predict what the workflow will be, what the human responses, what the professional societies, how they will react to changes in the environment. And as only through actually putting these into prototyping or actual tooling are we able to assess how things will develop if we've got it right or if we need to go back to the drawing board or for minor tweaks. We have been working on this with partners at Library of Congress and University of Pennsylvania for the better part of this year and at this point we feel that there's a fairly solid conceptual or concept here and we're approaching the end of the conceptualization phase. For 2024 we plan to engage in planning and prototyping and then around 2025 start moving into more serious implementation and it's difficult to predict because of the precepts on the very last or predecessor slide, it's difficult to predict exactly what that will look like or how that will be approached. But I think this is an area where all of us feel great interest and are committed to exploring and pushing out. One thing I should mention or I alluded to at the very beginning is this is a time of radical change in our systems environments. So for libraries that have adopted Folio, for example, we are no longer locked into a mark-based descriptive environment. We've done, we've actually have in working integrations with Synopia, the linked data editor with not only Folio but also Alma and previously with Cersei Dynex Symphony. So we know that this is an environment that actually works. You can have catalogers who are actually doing bibliographic description using those tools and then having those percolate into the source ILS for things like circulation and reporting but still retaining the richness of the linked data. As Library of Congress moves towards Folio over the next year to two years, we think that that's really going to break a log jam and we'll see rapid progress across the entire sector. It's really exciting. And with that, I think we have time for questions or discussion. I feel very short right now, but that's okay. Thank you for this presentation. Maybe there's a way I can just, yeah, that feels better. I don't have to crave my neck quite as much. This is, I mean, just to see this change and to see the work that you've all put into it. It's really exciting, but it also feels like something that's like very much cloudy still. Despite that, I think what I'm wondering about, we get to this point where we have a shared catalog record. What considerations have you made around who makes the decision about what goes in those records and how that might play out? I'm thinking about when there's challenges or we need to update records, we need to update the language or thinking about bias, things like that. Has that come into any of the discussions? And I know that's not quite technical per se, but I think it's something early on to be thinking about what kind of bias could be baked into some of these practices. What are the blind spots there? Thank you. So this is not an answer to the question. It's an approach to coming toward an answer, which is to start in a relatively small group where you can hope to have not too slow discussion of what that smaller group can agree on and how you move forward. I think one of the things that we have to remember is the cases where librarians really disagree about how to solve these problems are actually really edge cases. So we have built an environment that supports the sort of independent descriptions at every institution which we use 0.0 something, you know, percent of the time. So in a way it's a sort of question of where are we putting all of our effort? I think as a community we can work out these issues and we're largely heading in the same direction. So it's a matter of building a process that helps us get there. So my university has a shared catalog with a bunch of our state on public libraries. So the way you're talking to me about this, it feels very like I could see academic libraries making a slightly easier transition than the public libraries. How do you see them coming into play with this framework? Well, I think there's, I need that microphone. I think there's two questions here. There's the generation of the records and there's the consumption of the records. I think for the consumption or the consumption of the entities, because you can't say records with a graph, just even the language doesn't work anymore. I think any library would be able to benefit from and use the description that's produced. I think one of the models as Simeon was just alluding to is how does participation and the group editing of the shared data store develop, and that will have to start small and grow larger. We've seen some efforts of that, like WikiData or Wikipedia, which have scaled up quite large and quite successfully, not without controversy, not without a lot of effort. And we've seen things that have failed to scale or things that move too slowly to actually meet the needs. So I'm not sure it will make a difference in the resourcing production if it's a academic library, a public library, a special library. I think ultimately the goal would be to open this up as broadly as possible to any library. And in fact, maybe not any library. In fact, we might be talking about individual catalogers or individual specialists. If they have the training, if they have the knowledge, if there's a good system for trust and a good system for checks, there's no reason that we can't have many more people that are contributing knowledge and ultimately adding links. I guess the thing I might add to that is I can't foresee quite what the end game is in terms of how many shared stores there are. I think it's easy to conceive of a path forward to get to the size of collaboration where truly shared stores are a successful scale to work, but quite how many perhaps somewhat more loosely coupled shared stores there might be is a question I can't predict. There will be more than one. You could predict that. I, okay, I predict that, but I can't. You did already. So I'm just reminding you that Simeon believes there's gonna be more than one. Hi, so as you were sort of talking about that, I don't know, co-evolutionary environment, I was thinking that the current environment has a lot of different players, commercial and otherwise, and not to put too fine a point on it, but who do you see as being sort of displaced from this environment, particularly regarding commercial solutions or vendor-based solutions? I don't think we know what a linked data cataloging environment looks like yet. I think that's completely, no one's doing it. I mean, National Library of Sweden's doing some cool things, but there's no one really doing it at scale with the entire ecosystem. I'm not sure you can say that anyone will be displaced because it hasn't happened yet. Yeah, maybe the language is a little too, but I'm just curious, who might you see then being a part of this environment that perhaps, or who might survive in an environment like this? Or what would they need to do that? Yeah, I guess for me, it's more about sort of redrawing the lines between the boxes in the system. So for myself and my institution, we run folio, I'm quite heavily involved with the folio community. So you could say, does this challenge the position of a system like folio? Well, I'd say no, we still need much of what we do in folio, such as checking things in and out, buying things or licensing things, all of that. But maybe we've moved the bibliographic data out of folio. So we have just that minimal local data in there. So it sort of, it redraws the border of how that system operates with all the other players we're involved with. So that's kind of how I would think about the evolution. Thanks. I think it's really interesting to think about the boundaries of what I think you call the consortium at one point, the group of people that exists and the question of whether there's more than one. You mentioned at least in my head, WikiData and Wikipedia come up as things that sort of resonate with us. And Wikipedia I think is successful to some extent because there's only one of them. And they have managed to pull everybody into a set of policies and tools. Another thing that you could find inspiration in would be the open web, which is successful precisely because it's not one thing, but because you can in fact have links between things that are maintained in different places. So it might be really interesting from an architectural point of view to reflect on what the boundaries look like between consortia and what that ecosystem might in fact look like because a single system probably doesn't make a good ecosystem, but thinking about the boundaries between different systems and different platforms and how you can have meaningful interoperability and some meaningful sense of identity of entities in a distributed environment seems like it would be very helpful. Otherwise it's inspiring to hear this or to see this precisely because it challenges some really foundational notions of what it means to collaboratively maintain this stuff. What that everyone has already said. So to build on those though, in your architecture diagram, which I will not go into detail about, but you focused on the core of works and instances, but then pushed all the other entities outside of Bluecore and to other stores. So at Yale what we found is that in order to have a coherent properly connected linked database system, you have to deal with reconciliation and enrichment, not just of the works and instances, but also the items and critically of the people, agents, the places, the concepts, the events, the time periods and so forth. So do you foresee the same kind of approach taken with the authority, what we currently think of as authority data, but in practice everyone has their own authorities. There is ULAND at the Getty for artists, but those artists are also in rookie data and they're in all of our national library catalogs around the world, et cetera, et cetera. So does this shared space model also then extend to people and to places and concepts and so forth? So the short answer is yes, and I think for two reasons. So I guess the line I had on the slide said, works, instances and more. So philosophically it is reuse external trusted entities as much as possible, but realizing that that's not always possible for potentially, well at least two reasons. One is the transitional case. You're in the middle of a workflow, you're working with an external service that can't accept a sort of immediate update from someone in your workflow. You perhaps need to create something that's perhaps proposed or migrated, but then there's the other case where locally you simply wish to do more. So you're perhaps creating a richer entity description and that would be then shared within the local pool if even if it can't be pushed out to one of the more broadly shared entity stores. Yeah, and in the preliminary discussions we've had the colleagues at Library of Congress who also maintain id.loak.gov this is gonna have to be a blurry line and updates and reconciliation in both ways. But I think 2024 we'll be able to get into much more detail on that. We have time for one last quick question. Hi, Claire. People probably wanna transition. Recently moved to University of Illinois which has a significant international and area studies collection and cataloging function. You mentioned the National Library of Sweden. I was just curious if you could talk a little bit more about what this looks like internationally. Well, there is an entire, there's a Bib Frame Europe or BFE group. And I think when Simeon is envisioning that there might be more than one shared store for Bib Frame I believe many of the National Libraries in Europe are probably going to feel empowered and interested in having their own. I don't, I am not as up on that as some others. Maybe some people that are in this room but there is a strong current of interest internationally in Bib Frame and in adoption, sometimes with local flavors but maybe we can do better than Mark and Intermark I think remains somewhat of a hope. Do you have, maybe you have more details in that? No, I think that's good, thank you. All right, well we are bleeding in so people have quick time for coffee and then to relocate for the next session. Thank you very much.


don't need any special skills or fancy equipment. A stable internet connection and a device to access the internet are all you need. As for skills, if you can browse the internet, you're good to go. Lastly, is this method sustainable? While online earning methods can fluctuate, this method has proven to be reliable over time.