WWDC2003 Session 102

Transcript

Kind: captions Language: en [Applause] hmm so there we go okay so for those of you saw the keynote yesterday you probably noticed that Apple's been rather busy this year and it's open source has certainly been no exception for us so there's going to be a veritable cavalcade of speakers coming up here after me to describe their various projects but I'll give sort of a general overview and introduced the first of them these are also some important resources as always you can find our most recent Darwin sources and pointers to other important to open source projects that developer.apple.com / Darwin open darwin org is another project we launched about a year ago in cooperation with the internet software consortium so you can get information there at open darwin org and that's been been very successful for us and of course we have our wonderful fink brethren who have a pink dot sourceforge.net address and then of course have to mention free be a seat yay so we talked a little bit about open darwin they've started doing something we really hoped it could be done by an external but yet you know loosely affiliated project which is producing their own darwin standalone releases those of you who ran the Apple Darwin releases might have noticed if they can't tend to tend to come out fairly seldom and there were general issues with them that you know we didn't always have the engineering resources to fix in a timely manner so with the additional volunteer resources that open darwin drug brings to the table they've been able to do some very high quality releases of darwin for both the x86 and power pc so we're very happy to see that another thing that they've been doing is providing rpms for all of the components so you now have an RPM database installed which you can query to see where various components belong or where they came from obviously updates and whatnot are possible in the future they're not doing that yet but that's certainly an option now with real package management behind the operating system and the providing SRP amis which correspond directly to what they used to build the binary bits the dollar imports project which will also hear quite a bit more about in this chain of presentation has been doing what it can to bring more third-party software to the platform and they have a webdav mountable packages collection already like packages that open darwin org so you can simply connect to that in the finder and double click on one of the packages there and poof well I don't mean that the way it sounds I mean bingo that's the word so we've also changed the way we do open source releases in the past what we did was essentially just pushed out copies of our live CVS repository at periodic intervals and we had some stuff that was just live you know on a minute to minute basis and that was cool from the perspective being able to see sort of the work in progress but what it really didn't do was give you any directly correspondent bits to Mac os10 or Darwin eg you didn't know that what you were looking at at CVS was what you were actually running nor were those business totally compile a ball at any given time because you were looking at top of tree they might be works in progress they were obviously synchronization issues between different projects one might be n steps ahead of another but there's interdependencies because someone hasn't checked that stuff in yet so what we looked at that and what we started doing instead is breaking our releases into what we call on cycle and off cycle which is on cycle releases are snapshots of these acts horses that we use to build the product so now when you get a non cycle snapshot you know it corresponds to a given release of mäkelä scan or given software update of mac OS 10 and they're they're synchronized together because we didn't have the tag information exported before that would have let you sort of recreate that state of affairs for yourself and some stuff is still done off cycle a garmin streaming server Ron daily with gdb GCC various GPL projects you can still get the CVS top of tree for that so we're not doing it for absolutely everything but for the majority of the bitch we're trying to move to a non cycle model the source is now available via webdav as well as CBS you can mount the the appropriate volume and just drag the sources around and we're continuously adding 2 to what we've previously releases open source there's a lot of new open source initiative fit Apple some of those you probably heard the announcements about webcore so the Safari folks have been working very closely with the cage Gmail team and you'll hear more about that this presentation and the javascript stuff as well of course there's also the x11 product now and the SDK and we've been working all over the map in the third party software and freebsd areas to update components of mac OS 10 we have a new TCL new Python Perl and Samba we've synced up lipsy with freebsd 50 to bring in all the wrt support and thread safety so there's too many projects to mention that we've synchronized for Panther so coming up next we'll have someone from the open darwin project talk a little bit more about open darwin and and our imports so let me introduce you now Kevin Van Vechten of the open door and project and recently of Apple hi I'm here to talk a little bit about the open darwin project open darwin as was mentioned was started about a year ago and what it is is a community-supported site outside of Apple it's hosted by the internet software consortium neither the is seen or Apple exercise editorial control over open darwin so what that means is open darwin is free to explore technologies that maybe apple doesn't feel as very high priority but the developer community as a whole would like to see incorporated in darwin and once it's working there we can advocate within Apple incorporating those changes into a future Mac OS 10 release open darwin provides support for darwin users provides mailing lists how-to articles documentation for using various darwin commands which of course are also applicable to mac OS 10 and most importantly open darwin provides resources for developers we provide the same mailing list and documentation for information relevant to porting third-party open-source unix software to darwin and just kind of being a central point for information about darwin development which of course directly applies to mac OS 10 because a lot of key at mac OS 10 technology is like I oak it from core foundation are also part of Darwin so one of our primary goals in open darwin is to stay synchronized with mac OS 10 we recognize there's much larger developer community around mac OS 10 then there is focused on pure darwin so as much as possible we want to make it easy to take individual components of the darwin operating system from open darwin you could compile them on your own and substitute a piece of mac OS 10 with the custom we as part of that we provide binary releases of Darwin and components of Darwin so if you're interested in playing with a particular version there's a place where you can go and be pre-built you could download it install from a CD we also are working to provide an easy build system for Darwin so that you can look at any particular library command build it quickly and easily modify it a little bit rebuild it again install it on your system and use that for debugging for development all right and also importantly is open darns a staging area for external development so for example in our current open darwin sources we have some of open dsds sis traits work as an experiment for dealing with access control on various dis calls we also have freebsd command brought over from the freebsd project integrated into open darwin test it there and then they were able to bring some of those in as part of panther to keep us up to speed and keep us synchronized with the other open source projects out there so open darwin focuses a lot on open collaboration for developing software that pertains to darwin and of course Mac os10 as a whole we host projects relevant to darwin for example KDE darwin is currently hosted their one of our larger projects in terms of code base darwin ports is mentioned is another project hosted at open darwin which is one of our more active projects we provide the infrastructure so that people can create projects and allow developers from the community to sign up get access to CVS and we're also working to have a mirrored version of a lot of the apple projects a streaming server or header doc eventually we want to see some of those in a repository at open darwin so third party and community contributions can be put into CVS they're tested integrated and then advocated back at Apple as a potential enhancement bugfix or whatever so the Darwin ports project being one of the most active projects that open darwin is a project to design to port open source software to darwin its main focus is the easy installation removal and upgrading of software from source or binaries so the binary support israel is still a work in progress one of the reasons why mentioning it here in open darwin is is there's a fair chance that we'll be using darwin ports as means of building the individual components of the underlying darwin operating system at open darwin so that there would be a port for each not only third party and and open-source eunuch software but also for each of the components of darwin so it'd be as easy as saying you know building install core foundation on a single command line and it could do that for you there's also a cocoa user interface to open darwin or I'm sorry to Darwin ports I lets you browse through all the available software that currently has a port file representation you can choose what you want to build click on it it'll build install on your system so the most important thing I want to mention today is that open darwin really is a third-party independent project and it does need your help to be successful and if everybody you know joins the mailing lists and discuss any darwin technical issues they have it can really be a good central resource for development for mac OS 10 for darwin for porting unix applications also we have a bugzilla database at a token darwin so you know there's a good opportunity to report any bugs with with darwin with any libraries or commands there at open darwin as well as you know submitting a patch or at least making a reference to saying well this isn't a problem in net BSC or this isn't a problem in freebsd and then somebody at open darwin can take a look at that figure out what needs to change and we can incorporate that back into Mac os10 there's a couple mailing lists that open darwin if you're interested in proposing projects relevant to Darwin or discussing new features or enhancements that be appropriate for the discussed list at open darwin if you're interested in submitting patches code documentation that is appropriate for the hackers list at open darwin and it's a couple interesting other sections pertaining to open source and darwin quicktime streaming server rendezvous GCC in exsisted min tools and up next is a don nelson he'll be talking a bit about safari hi I'm Don Melton I'm the internet technologies manager it's apple computer and i'm here to talk to you today about safari and open source and i'll give you a little road map to some other sessions here at this conference so Safari it's pretty popular why is the Far East successful I mean because people are not only downloading and I think 5 million so far something like that they're actually also using it some of them are making it their default web browser I think of three reasons why so popular first off innovative features get a superior user experience this is a full-featured web browser people take it seriously it can do things for you secondly solid quality real world compatibility with the web by that I mean pages look the way you expect and they look the way web designers expect them to look too especially if they write the web standards but hey even if they don't but most importantly impressive performance so the fastest browser on Mac OS 10 we'd eat everybody not only on the standard benchmarks but we also beat them in just real world use loading pages scrolling resizing launching especially one point it was faster and now the underlying technology within safari is built right into Mac OS 10 and it's this underlying technology that I want to talk a little bit about today because it's based on open standards firstly it's based on w3c standards like HTML for xml CSS dom so on and so forth but more importantly it's based on open source and that's open source from the KDE project the katie project as many of you might know is an open source desktop available on linux and other unix platforms it has all sorts of applications and utilities and libraries and one of the big applications is the Conqueror web browser and the Conqueror web browser uses two libraries like it to libraries HTML and KJ s and we're using those same libraries within safari first we're using it in a framework called web core which is just an adaptor built on caged ml from Katie it uses most of you HTML sources about ninety five percent of them and it has glue code to the rest of Mac OS 10 which has also been open sourced we also use javascript core which is just a simple wrapper around the KJ s javascript interpreter also from kte but that's not all Safari also contains other open source components in web core and in Java score jobs report such as the expat XML parser the PC re regular expression library and even shock portions of Mozilla code a lot of people are actually surprised that when they go perusing through web core so why open source it's it's all about the technology it's not just that it's a good development model but for us it was a technology decision k HTML and kgs are just tremendous technologies I'd like to tip my hat to Katie developers for their fine work for that and let me just go into detail it's exactly why one its small k HTML and KJ s together about 140,000 lines of code that's almost an order of magnitude smaller than some other projects and web browsers and it's fast because if you have less source code you've got less binary code less binary code means you execute things faster it's also designed for speed it's really designed well and it's easy to modify this is a fun source base to hack it's just a hoot to get in there and that's around with it too easy to understand you know there's not there's not layers and layers of abstraction to figure out it's very very straightforward and we try to maintain that with the rest of our development okay what are we doing with your community first off we're working with the KDE team these are great folks we have we're on mailing lists with them we've had at least one transatlantic phone conference call with the KDE team HTML and kgs developers and how important the lead on kgs has actually been out to the Cupertino campus to visit with us so they're great folks we're giving back all of our bug fixes and enhancements in web poor and JavaScript core and we also send patches on the mailing list to the development team at que te we're also taking in patches and other changes from the community in fact just a few weeks before Safari 101 out David Heights snuck in another little feature from the tip a tree KDE and we're sharing ideas and plans for the future when we work on something and we know we're going to be down in section section code base and we might be pulling it apart we have heads up guys we're going to be we're going to be redoing the plumbing on this and that the Katie folks have done the same thing with us when large null who's the shall lead on HTML I'm going to be mocking with a CSS parser you know stay out of that we went great just tell us when it lands so we can take it and that's one of the things that went into our beta 2 we're also planning once now that we've survived our 1 point 0 release and boy am I glad that we did that we're going to have another one of those transatlantic conference calls with the folks there but you can contribute to and that's the other thing that I wanted to talk about today you can contribute not only to our projects webcor and javascriptcore what you can also contribute to a kml and KJ s because hey it's the same code I mean it's just fine with us and we'll get it from tip a tree and we'll swap patches back and forth we would love to get bug fixes enhancements and even other ideas from the community if you go to the apple open source site you can find the mailing list that you can join you can get the tarballs of the current versions of webcor and javascriptcore and jump in we really look forward to that now I'd like to point out a couple of other sessions here at the conference like say I'll be here all week come at two o'clock to the Safari overview it's upstairs in the presidio room and i'll be rambling on there for about an hour and then tomorrow safari technology and web standards if you care about web standards darren adler go into detail for it for it we're going to be covering some of the new api's and foundation on thursday there's an overview of networking that might be useful for some of you and the marvelous WebKit on friday and some lower-level plumbing that folks might be interested CF network in depth also on Friday thanks so much and I'd like to call Richard Blanchard to the stage and talk about printing [Applause] hello I'm Richard Blanchard I'm the apple engineering manager for printing and today I'm gonna give you a little bit of insight in what we've been doing with our printing projects inside of Darwin a year ago in this exact session I was incredibly pleased excited to announce that we were including cups coming to expressing system into Darwin and in the Mac os10 and that's been the basis of our pan or Jaguar printing system and our fans of printing system over the last year spent a lot of time rolling important fixes from the ongoing Cubs main line development we use cups 1.1 dot 15 cups Einstein has moved on at 16 17 18 we've taken bug fixes from those changes and security fixes and roll them back onto our doc 15 days that's kept us pretty busy over that year I've been reading some postings from people who were concerned they was the right word that we were maybe stagnating Darwin and maca was 10 was using the stock 15 base meanwhile cups was running ahead was all the way up to 18 that's just not the case as I said we've been moving these bug fixes fat but the reason I really bring that up is not because I'm really over sensitive to these posts but instead it's because there's important points there one of the reasons we went two cups to an an open-source printing system was for transparency which so the developers could look see what we were doing give us feedback before we actually made a major relief and in that same vein our cups repository our CVS repository is part of Doran is live every day you can go on to Darwin and see what we've done any given day and we've had our Panther cups development which is based on 1 dot 19 up there for some time so again expansive we're using 11 19 there's some portent changes in their important fixes important features there are some bindings for new languages so they're java bindings now that will be in Panther PHP and Perl bindings so you can actually make cups calls create printers and print directly without going through the print system from those languages there's facts support which is important if you saw the keynote last night we're yesterday morning IPP collections which allow us to do some better error handling and improve PPD support the PPD parser in one dot 119 is much tighter than it was in earlier versions it'll flag PPD's that are bad much more easily or much more clearly and it also allows access to motion PPD keywords whereas the earlier PPD libraries did not Kim print has been out there it's been used by a lot of our users as has HP ijs this is actually one of the most exciting things about using cups is that the world of open-source printer drivers is available to our users and do our developers and this has really been great over the year supporting some older printers that maybe the vendors haven't gotten around to sporting as you can see give print supports over 500 printers for most of the major printer vendors hpi jets or ports a couple hundred HP printer model that's a lot of legacy printer support and it's been great for us there's also been some important support from some of our Linux cousins if you go to Linux praying org they'll see some great Mac os10 printing pages supporting these two packages so I encourage you to go look at those this wasn't stolen for the keynote and I'm very happy I get to announce today that GIMP prints actually going to be part of Darwin and Panther so we'll have that loose drivers in there by default ready to go but there's more I saw the keynote there's also fact in Panther and following our printing tradition what we wanted to do is take an open-source core put that into Darwin and then build on top of it in our commercial OS so we use the fact that anybody knows the facts landscape out there there's really two different open source projects there's efax which is very small it's not an incredibly active project and it's highly fact which will do everything is everyone faxing and it's a lot larger we actually went with a smaller project it seemed to fit our goals more cleanly so we've got in fact it's in the Darwin repository right now and it'll be in cancer and it's available for you i'll be talking Thursday much longer about printing in Mac OS 10 Panther but also going over some of these these Darwin printing projects so again most important message I have for you today is we have three projects now that are tied to printing that are all in Darwin we have cups the print server we have gimp print set of printer drivers we have efax for our fax for all three of those projects are live every day I encourage you that if you're interested in any of those track our changes every day send us mail let's melt a this change was wrong hey we should pick up this other change it was coming from another project we do this so we can be incredibly transparent to you so you know what we're doing for our OS is before we have to release the GM version so anything you do to help us would be much much appreciated some of the introduced storylines is going to come up here and talk about X 386 so X 486 has a fairly long history on Mac OS 10 that comparatively at least as far as this operating system goes the initial darwin support was in the early to late two thousand with xperia 64 point no point to in this release you were able to you had to shut down core graphics expert e6 would talk to the i/o head directly to the hardware then in subsequent releases we added the ability to run in parallel with aqua you could have two separate virtual squeeze and switch back and forth and then we added a rootless mode in early 2002 and that's culminated in the 4.3 release which gives us faster 2d and hardware accelerated OpenGL now of course the thing that's missing from here or is yet to come is the one point 0 release of apples x11 app which is very exciting thing in this area and as most you probably know that's based on the x86 code base at least their current beta is based on expertise explore point to point one so what are we planning to do in expertise six project of course the most important thing for us is to get the lot of good changes that Apple's made in releasing next x11 merged into the expertise of code base there's a win-win situation if we can get apples x11 dot app and the expertise 6 open source release tightly synchronized and working hard on that and what really makes that possible is this x plugin api which allows open source developers to really write high-performance like servers the problem we had sort of at the end of the 4.3 development is that essentially we're trying to do is we're trying to write an X Window Server on top of another windows server which is core graphics and there weren't existing public API is in Mac OS 10 that allowed us low enough level access to get the performance you really needed so in discussions with Apple we're really would emerge it was that actually core graphic because all the capability we need but that there aren't the api's we needed our own private ati's that are hidden and not exposed and therefore not suitable for open source code so what x plugin is is it's a library that is exactly what you need to write an x server on Mac OS 10 and no more so it's fairly easy for Apple to maintain as they go forward and it also allows open source developers sort of a green light to go ahead and write very high performance x servers on Mac OS 10 and this is really the big news as far as my part of the talk is that Apple's x11 we would think of as the first implementation of an X server using this x plugin api and actually if you check it out you can check out the beta 3 source code you'll see it's x 486 with acceleration features added in and they're just using opengl core graphics and this x plugin api so we'd also in addition to making things go faster we'd also make them like to make them better so we're working on adding multiple visuals of risk classes and depth the common problem here is that you want to display an 8-bit suit of color visual and a 24-bit to color display and actually beta 3 has a way of doing this it has some problems we think there's a slightly more general implementation that we're going to put in and we also of course moving forward want to support new x / 86 standards of course the key reason to have a version of x 11 running on Mac OS 10 is an essential compatibility environment for scientific and UNIX developers and users and compatibility environment is only so good as you stay compatible with the latest stuff coming out in the rest of the community so I've listened some things here that we're working on our and our X cursor ability to add curses with alpha channels that are coming out on other platforms in the expertise fix project and will be including those in our Mac os10 support as well the last thing we like to do now that the pitcher on Mac OS 10 4 x server is getting pretty robust we'd like to add or at least turn our eyes back to my acute mode and the top of the tree already has some improvement with this this is of interest to those of you who run oak and Darwin or pure Darwin without the rest of the Mac os10 goodness we'd like to get I awoke it closer to the kind of performance you'd expect another open source operating systems and what's available if he builds in the top of the tree today I suggest you do if you're running the pure Darwin you'll notice that the drawing performance is much better it uses shadow FB instead of trying to draw directly to the frame buffer and that's much better than what you see in this 4.3 branch so of course we always need help and if you're interested in helping I suggest you stop by devel at x86 org that's the sort of central mailing list for x86 development and these are some talks that would be useful to understand a little bit feed environment that we're working in here to implement an X Server so next we're going to have ed Peter Lynn come up and talk about open office wake up hi my name is Ed peterlee and I'm a community contributor to openoffice.org openoffice.org is an open source effort back in two thousand sun microsystems open source the core may be about 95 ninety-eight percent of star office to create openoffice.org since that time it's just been simply amazing since then there have been 8.5 million downloads of openoffice.org there in January released a final beta version our second beta which we know is our first beta targeted towards end users since January we had 30 thousand downloads per month of this beta quality software the entire community is seventy thousand registered users and it's growing these slides were written while ago you can go check out the numbers they're really they're really getting pretty impressive if you've never heard of what this is it's a cross-platform open source office productivity suite spreadsheet word processing presentation and it also has graphics engine database query wizard all this kind of fun stuff it supports mac OS 10 freebsd the three main platforms windows yes it exists linux and solaris and it's being ported to new ones all the time ir x264 people working on AIX it's phenomenal the entire suite has full unicode support throughout its pervasive the file format are all XML with open schemas you can actually start doing full content delivery systems off of this in an open-source fashion and also it's got some pretty good file filters for exchanging data with other these kind of popular productivity solutions that are out there you know what people don't know the difference today it's really a lot of fun I was here a year ago saying we got a compiling we need your help yesterday we went gold master openoffice out our 1.0 is here we support mac OS 10 and we finally refactored everything to support Darwin PowerPC as well so now you have a full office productivity suite on Darwin truly amazing it runs on mac OS 10 was x11 graphics and I'm actually pleased to say it does run on panther with the x11 on the second CD take the installer it run it just runs and yesterday another thing people may not be aware of when released simultaneously in over 20 languages at the same time Italian Greek French Dutch all of these users now have localized versions of openoffice.org in their language I was here one year goes one person since then I got another core developer volunteer of course we all have real jobs in real life to people and we moved well this is a real job too but two people never more than six move seven and a half million lines of source code in only a year this is an amazing operating system and this would not be possible without the synergy of open source on this operating system you know what it really is a thing of beauty this is the x11 version full anti-aliasing you have access to all of your OS 10 font it's really nice and you can go get it today we're doing CDs here because yes she's got a little around you know around the edges just a little more than the other platforms about 100 Meg's more than the other platform but since we've given up CDs yesterday approximately five percent of everyone at this conference now has it on CD yes the UV is passing csme xavier is this a lot of heavy drinking one into the CD so appreciate them but you know what this proves one thing we're a great community where community of doers but you know what we don't need doers we need dreamers we're not stopping here this is the beginning this is the beginning you know what guys the hard stuff is done it all works we got to move forward we gotta plow forward openoffice.org 1.1 is going live on other platforms with some amazing features improved script ability support for writing full infrastructures and middleware on this at the cross platform delivery solution mind blowing you can run your same middleware on OS 10 windows you can throw it back on a solaris box if you need or if you don't have a g5 or can afford it like make some poor and also vertical and right-to-left languages beginning to get cjk support arabic doing bitty but you know what it's not enough so why don't we you place x 11 we're going to use core graphics and corpse and we're going to get it running right on OS 10 we're going to have tighter Mac os10 integration we have visions of integrating with services so we can start exchanging everything with mail and other applications finally getting the clipboard working and of course aqua user interface one that everyone want well that's not a mock-up this is a prototype this has been out there and available for six months go out get it look at it help us try and find out how we can do this properly and do it right now is the time for you to jump in all you people who weren't core hackers before who we're afraid to touch make file now you can start and today I'm also pretty pleased to announce its you're not a core graphics developer if you're not known as 10 developer there are Java guys out there too we have a full Java prototype project that is now up using Java 2d only for the drawing ninety-nine percent C++ Java 2d for the drawing and the amazing thing it's only a week old but it supports japanese text put on Mac OS 10 in Unicode that's phenomenal basically come help us find out where we're going to go this is everyone think you can actually put part of you into it we need UI design experts trying to figure out how to make this right for a Mac user we need graphic artists who can actually come and draw all new icons for get the interface working Coco developers help us find out how we can move this to interface builder and all these other great Apple technologies we need courageous testers who aren't afraid and don't get upset if we happen to just lose that data file and also we need a Banjul it go out go out and just tell people about it be like look this exists you can use all of your office documents once they of the word all of your office documents right now for free it's amazing stop by mac's at openoffice.org take a look today and help us out as you can thank you very much and now I'd like it's my pleasure to introduce Wayne raw is going to tell us about open play hello I'm Lane I'm going to bring you up to date on open play which is Apple's open source networking API that has been around for several years and was last year incorporated the net sprocket open source effort into one larger project it's a cross-platform project standard space it currently is running on Mac OS 10 it has a classic field as well it runs runs under windows and linux and the mac OS 10 build has both a TFM based and a ma co based build it's a modular build meaning that the underlying protocol like tcp and alpha our plug-in module there's the flexibility to add new protocols via that modularity and in fact this year that flexibility has been used and the use has been to add one to do support it's got a large adoption a lot of titles are using it a lot more titles coming out most of these titles happen to be games because of the net sprocket API and that's what people know but there's no reason that it is a game only API you can use it for any kind of quick networking that you'd like it has a few simple layers your application can talk to any of the layers directly there's the game interface which is the net sprocket API very easy to use it handles multiple users you can group users all that high level stuff is very easy to do v it up protocol there's the protocol module which is the former open play and it deals directly with the abstraction of the modules that you deal with ttp alcopop and you can talk to those modules directly as well whichever you would like the game interface like I said provides the easiest way to add networking to your game or other application it has player management game management packet management and again it runs it all the different platforms and the protocol interface it's fairly low level it's much closer to like a socket based protocol it has the protocol agnostic design so that you can use one API and you can talk over appletalk tcp/ip or rendezvous it has the IP modules for all platform it has alpha park for Mac OS and Mac OS 10 and it has rendezvous for Mac OS 10 that of course is the newest plug-in module that was developed by cleaver software and committed back to the community for everybody to use so that should give you an idea of how easy it is to add a new networking API if you happen to have the knee if you want to know more about open play and everything that's going on with that there's not an open place specific session this year but you can learn more about the general OS 10 networking the higher level DF networking and then just the general internet technologies that are available