So, I don't really know who I'm speaking to here. How many people in this room have used Objective-C before? So, there's a little group of GNU step developers at the front, and a few random other people scattered around. So, out of all of you people, how many of you have used Objective-C just on Apple platforms? Okay, so most of you. So, the point of this talk is to say, Objective-C is usable on places that Apple has no interest in at all, isn't doing any work. And this has actually been true for a long time. Objective-C was created in 1986, so it's not a brand new shiny, exciting language. It's been around for a while. And the idea was that if you have a C library and you want to package it for other people to use, you really want to give kind of an abstract interface with some loose coupling and late binding and stuff. And so, Brad Cox wrote a number of papers describing a Lego building model for software. So, you'd have some people who would be responsible for building the Lego bricks, and some people who would be responsible for assembling those bricks into larger structures. And Objective-C was designed for that boundary where you'd have some people working in the C-like bit, and some people working in the small talk-like bit, and they wouldn't necessarily be the same group of people. And next bought his company and they bought the Objective-C trademark, and they shipped it as the core development system for their workstations. And both people who bought the next workstation really, really liked it. And next in the Free Software Foundation had a little falling out at around this time. Next took the GNU compiler collection and they added an Objective-C front-end. And they tried to work around the GPL by releasing it as a shared library, which GCC would then load, and they thought, yeah, we don't have to release the source, we can keep it proprietary, and that's great for our commercial interests, because having an Objective-C compiler gives us a massive competitive advantage. Apple has since learnt that actually having an Objective-C compiler gives them no competitive advantage at all, so they released it as open source. And the Free Software Foundation set their attack lawyers on Next and said, you have to release this code, otherwise we will feed you to the sharks. And so Next released this code and it turned out once they did that the reason they didn't want to release it was that it was really hideous and they were just too embarrassed to let anyone see it. Unfortunately at that point the Free Software Foundation had put so much effort into forcing them to release the code they couldn't just look at it and say, actually no, we don't want it after all. So you look at this code and it's one single file which is about 1,500 lines long of just no separation of concerns and it's completely unreadable. And Next had approached the Free Software Foundation and said, hey, we've written this new front-end for Objective-C, they'd have said, no thanks, it's fine, you keep it. But because they tried to keep it private, the Free Software Foundation then did incorporate it. And so the compiler's only half of the puzzle. With Objective-C the compiler generates calls into a runtime library which implements all of the dynamic features that are required for Objective-C. And Next didn't release their runtime library which made getting the compiler support actually not that interesting because the runtime at the time was more complicated than the compiler stuff but it got the easy bit. So the Free Software Foundation wrote a new one and Next had done a few things in their design that weren't very sensible and they'd done some things that were done entirely for performance reasons but made it impossible to write a portable version of this library. And the GNU Project supports a load of different UNIX platforms. It now supports Windows and a few other things. So having something where you need to write every single combination of kernel and CPU they'd have needed to have the entire code base almost would have ended up being non-portable. It would have been horrible. So they changed the design a bit and then the GCC code got some more conditionals but some things for the next runtime and some things for the GNU runtime and so this really ugly code became even more ugly. And that was the status until about 2000. And I'll talk a bit about how that's changed in a few more slides. But for those of you who haven't really used Objective-C before I'll just give a little bit of an introduction to what the language does and why it's interesting. The first rule is that anything that has new semantics in the language has to have new syntax. So you don't have this confusion where you have one line of code with different things. C++ has the opposite philosophy. It says no new syntax for anything. So you can look at a line of C++ and you have no idea what it does at all. The next thing is Objective-C has no magic. If you look at a language like Perl or Smalltalk or anything Dynamic Scripting Language type things they do a lot of stuff in the virtual machine or even Java. They do things that really aren't exposed to the programmer. In Objective-C everything that's done in the background for you by the compiler, you can do in your own code. And the other part of the philosophy is there should only be one way of doing stuff. You don't have to decide do I want to use this language feature or this language feature or are they equivalent? So it's a very simple language. The one thing that everybody knows is the weird syntax. You look at it and you say Objective-C that's the language with the weird syntax. And this is an example of an Objective-C message send operation which is a Java program as you call out a method call. And it has this square bracket syntax. Tom Love, one of the developers of the original Objective-C said that this is a signpost saying you are now entering object land square brackets. You're dealing with the high-level bit of the language when you're outside of the square brackets you're dealing with basically C code. And this syntax takes a little bit of getting used to but it's actually really nice. You find after a while that you read Objective-C code. You can read Objective-C code that uses a library that you've never seen before and you're not constantly checking the documentation to find out what stuff does because every parameter is named. You don't get confused with parameter order. Everything that is an Objective-C message send is in no way confusable with a C function call so it's easy to look at a bit of code and see what the performance characteristics are going to be. So we have this message send operation. How does that really work? This is the same thing just up at the top. The message sent to the object called a dictionary the method name is set object for key and the two arguments are A and B. And if you're using the next runtime or the newer Apple runtime then this is just compiled to this single function call Objective-C message send and that takes the object as the first argument, the selector which is an abstract version of the method name as the second argument and then all of the other arguments and that's pretty simple and this is the bit that's hard to port to other platforms because this function then has to call another function with the arguments that it was passed so you can't do that in C and you can have to do it in some per platform assembly and you actually have to do it once for every different calling convention so in the Apple runtime they have a version of this called Objective-C message send which is for functions that return structures and Objective-C message send fp-rept which is another version for functions that return floating point values and it quickly gets really horrible and messy but it is slightly faster the GNU runtime version does it as a two-step process so the first call is to this Objective-C message lookup function which returns a function pointer and then you just have the compiler insert a call to that function just as it would insert a call to any other C function so this is really the only thing that makes Objective-C slower than C, this one extra layer of indirection message lookup so that's just a little bit of history and why Objective-C is interesting, what it's how it works I'm now going to talk a bit about the status of modern Objective-C compilers and a few years ago GCC switched to GPL v3 and Apple has religious objections to this so they started putting a lot of effort into Clang which is a new BSD license front-end for C and Objective-C and C++ and if you were at Chris Lattner's talk yesterday he talked quite a bit more about this than I'm going to now Clang is it's not a small code base it's actually pretty huge and that's great because it means Apple's doing loads of work for us for free of these 300,000 lines of code about 2,000 are specific to the GNU runtime and a lot of those actually don't really need to be, we've got abstract superclass which encapsulates all of the runtime specific behavior in the code generation part and we have a concrete superclass for the GNU runtime and a concrete subclass for the GNU runtime a concrete subclass for each of the two Mac runtimes and there's actually some code that could be shared between those two so we can probably reduce that number over time because there's just some stuff that rather than refactoring we've just copied and pasted from the Mac runtime version into the GNU runtime version and you can use Clang as a front-end for a compiler and I think Chris talked about that quite a bit but that's not all Clang can be used for library-based design so we can use it for some other interesting things and this is an example of using Clang for syntax highlighting this is enlarged a lot so it looks really ugly but you can see that it's doing proper syntax highlighting there and not just lexical highlighting so for example this compare thing at the top is a macro and it knows it's a macro so it highlights it it can tell that in pointer T is a type depth, it knows that big int is a class, it knows that big int with long long is a message sent and if you just compare that with vim which does lexical highlighting which is really simple to implement it's treating in pointer T as just a magic thing it's pretending that that's just a language keyword because it knows that that's defined by C99 but it doesn't know that big int is a class, it doesn't know that big int with long long is a message send, it doesn't know that compare is a macro and Clang of course exposes the error reporting at the library level as well so this is just a little quickly hacked together thing which in a normal GNU step text view gives you tool tips for any of the errors that were generated and this isn't a great user interface but it was just a demo that was 10 lines of code to write so as well as having a new compiler now we also have a new runtime which is a complete rewrite of the GCC runtime it's quite a bit smaller than the GCC runtime a lot of that is that the GCC runtime really predates having portable threading APIs so it has this huge threading abstraction layer most of which isn't actually called anywhere in the runtime some of which is incomplete it has a condition variable implementation which on Windows just always returns false we've added complete support for the new Objective C2 features there's a new ABI which has a few nice features that I'm going to talk about a little bit more we have working support for Apple's Blocks extension we're actually quite pleased with that because we managed to ship a working version of the Blocks runtime six months before Apple released their own language extension and it's also designed to support other dynamic languages I gave a talk yesterday in the GNU Step developer room about language kit which is a dynamic language implementation framework so we use the same compiler back end for compiling small talk and other languages so Objective C has a little bit of overhead on C and really there are three things that are different in C and Objective C in terms of performance I said one earlier but the other two aren't quite so important one of them is with the new ABI now Objects are no longer just a little bit of syntactic sugar around structures Objects have instant variables or fields if you're a C or Java programmer and these are now accessed via an Indirection layer which has some nice features for stopping you having to recompile all your code all the time but it adds just a little bit of overhead with the GCC runtime you have to look up every single time you send a message to a class you need to look up that class by name in a hash table and we're using a hopscotch hash which is pretty fast has nice performance with the data cache but it's still a hash table look up for something that really doesn't need to be and also we have the dynamic message look up which I talked about a couple of slides ago so the first thing we can do is avoid this non-fragile ABI use when it's not actually needed so the point of the non-fragile instance variable access is that allows you to ship a class which inherits from a class in someone else's library and then they change the layout of the instance variables in their class and you then don't need to recompile your class and that's a really useful feature but what happens if you're just inheriting from other classes in your own framework or if you're just inheriting from NS object which has a well-defined layout with just one instance variable that points to the class and nothing else and it turns out that's actually a really common case so we can for all libraries that do that we can just go through find all the indirect look ups replace them with direct look ups so you're only paying for this in direction layer in cases where it's actually useful and we can do this as a link time optimization with LLBM so all of these if all of these look up tests are done with the entire code for your library or for your application and we can also do this with the just in time compiler for language kit which means you can remove them in all cases because no one's going to change the layout of your super class after it's already been loaded into the running process class message overhead this one is really easy to fix we just make the class structure that the compiler generates export public symbol and just reference that directly don't bother with the hash table look up and Apple does the same thing for their runtime and this give us a factor of 5 speed up when calling class methods if you look in the GNU step codes you can tell that they're well aware of how expensive this is because in almost every Objective C file you see calls that cache the class pointer somewhere and then rather than sending messages to the class they send messages to this class layer of indirection so now we have stuff in GNU step which is actually making the code slower because it's adding another indirection layer rather than removing one so that's a shame but the other big thing though is the message send because Objective C encourages you to use this message send as your basic primitive for flow control and with the new runtime design we want to be able to add caching support for that and this is based on some ideas that the self team were implementing way back in 1995 so it's not really new research stuff but I think we're the first people to do it in a statically compiled language the self guys were doing this in a virtual machine with accurate garbage collection and that makes this actually a really easy thing to do it's slightly harder for us so now the lookup function rather than just returning a function pointer it returns a point to a structure and this has some metadata which makes it easier to implement languages that don't have quite the same type system as Objective C it also contains a version and you can use the version to find out whether the structure is still the same is still valid so you cache the version in the structure you compare whether the version in the structure and the version outside the structure are the same if they are it's great if they're not then you have to do the lookup again but it means that now rather than having the sort of manual method pointer caching that is fairly common in Objective C codes you'll see people doing this in critical paths in pretty much any large Objective C project we can now make the compiler do it automatically for free everywhere where it's sensible one thing that C programmers really like doing is using this inline keyword which the compiler then ignores and does its own thing but it tries to insert a copy of the function where it's called and that's really great for small functions and we have loads of those in Objective C the biggest case I think is probably accessor methods where you're just returning a value of an instance variable and so the cost of the message send is quite big the cost of even a function call there is a significant fraction of the total cost of doing the operation so in C you just inline that call and that's great it's fast and it's easy because if you have a function call in C you know exactly what function is being called it's the function which has that name Objective C because it has this in direction layer that's kind of difficult we don't have this one to one between call site and callee but we can get one and there are some heuristics we can use and there's profiling that we can do and then we can try inlining that and then we can just wrap that in a little test which says did we guess right if so don't bother with the call just go straight through the inline version and that then lets you do some other optimisation so you can take the inline's path and you can do constant propagation through that and so that can have some nice speedups so I've sort of waved my hands and said we can make stuff faster no talk about compiles would be complete without some synthesised and highly misleading microbench marks so here is the obligatory misleading microbench mark slide the basic test is a simple loop which calls a method which does nothing and it does it a billion times and the target performance is getting it close to what it costs in C and so running this version with just a C function call rather than an objective C message send takes about three seconds and okay three seconds is not very long if you just compile with Clang and you don't run any optimisations at all Clang actually produces some very messy intermediate representation for this which then the standard LVM optimisation path is clean up and actually just running the basic optimisations because we have some gratuitous loads and stores gets it down to eight seconds so eight seconds really isn't bad if the look up cost absolutely nothing just because we have two function calls six seconds is about what our target would be but we can get a bit better than that you turn on the automatic caching four point six seconds that's just automatic caching by itself by the way if you have the automatic caching plus the standard LVM optimisations we're now down to three point five seconds so really slightly slower than C but only just so now we turn on the speculative inlining and we're now faster than C without inlining so I think we're now at the point where we can make it faster but we just don't care anymore you're talking about the difference between your application using five percent of your CPU and it using four point five percent it's just not important but microbenchmarks they're great for examples and slides and stuff but they don't necessarily reflect real world performance and it's really important to realise that in any language a good language, a fast compiler and a poor algorithm will never beat a really naive compiler and a good algorithm and so one of the nice things about objective C is because it has this loose coupling it really encourages you to have optimisations at the macro scale rather than at the micro scale because it's a dialect of C you can also do the micro optimisations in C but the high level approach really encourages some general optimisations I just have a quick example of this how many people here are familiar with the international components for Unicode library a couple of you so this is a huge library which does lots of really useful things for internationalisation for locales for Unicode it has Unicode regular expressions some really nice things and it has internally its own representation of strings which is done as a C data type and it has fast macros for accessing characters by copying out a load of UTF-8 characters and I've seen quite a few libraries that use this from C++ and in C++ you have this standard string class and it's all really designed to be inlined and be fast and that's great turns out no one actually uses it in big libraries C++ library gets to a certain size and it implements its own C class its own string class it's like a writer passage and there are a couple of examples there LVM has its string ref thing QT has its own class WebKit has a thing called deprecated string in the WTF namespace which I particularly liked and so the way people use LibICU from C++ is they get a LibICU string and they copy it to a temporary buffer as an array of 16 bit characters and then they copy it from the temporary buffer into their own string class and so you have two linear time algorithms for every single string operation and if you're using the ICU regular expressions then one of these conversions may be hundreds of kilobytes of code I've run Regex code on text from my last book and so that's loads of text and so these linear time algorithms they really cripple performance and this happens a lot of boundaries between two C++ libraries where one has one string class that it thinks is great and the other one has its own happy string class which is also great and probably is implemented in exactly the same way but with very slightly different layout or interfaces in Objective C there's this NS string class and it's a standard string class but it doesn't actually do anything the NS string class is an abstract class the real implementation is some hidden concrete subclass on OS 10 it's probably NSCF string or some variant of that on GNU step there are a few GS string subclasses and it's very flexible it stores the text internally in a variety of ways it just gives you this abstract interface as if it's an array of 16 bit characters so everyone uses it and when we call ICU functions from GNU step we just have a subclass of NS string which uses the ICU underlying text representation and we do that the opposite way around as well so we implement their abstract data type in terms of NS string so we have two constant time operations that's great so the slow language Objective C ends up using algorithms that are much faster just because that's the easiest way of doing is an Objective C so that's how to make Objective C fast I now want to talk a little bit about making it a bit more reliable so this is a couple of Objective C class interfaces that define a method with the same name but one takes an integer as a parameter, one takes a float as a parameter and the implementation of these is simple they just use print it to display it on the terminal and so you have some code at the bottom which calls this method but in the last line you're calling an instance of class B but your static type annotation says it's an instance of class A and that's not an abuse of the type system because you're just casting a class to the super class so you compile this with LLPM or you compile it with plan and both will say absolutely fine, no warnings, that's great so what happens if you run this on the map well, the first call works the second call works and oops, you've called a function which expects a floating point value but you put your argument in an integer register so it just silently does the wrong thing and if you do this in a slightly more extreme case if it's a function returning structure and a function not returning structure then you don't just get the wrong result, you get random stack corruption and that's not ideal on Spark you get an illegal instruction exception and a trap and a bot and that's marginally better so with the GNU step runtime we do dispatch based on the type as well so now we're calling the correct function and that's a bit nicer so we're only matching methods with the correct type signature when we do the lookup if there's no matching version then we call a handler and that can return a fix up version so if you've got correct well written Objective C code it just works and I enabled this by default about 6 months ago and I was really shocked that it didn't break codes of people's code we found a few bugs in GNU step using it but mostly it just stuff works and what happens if you then have the same idea but the opposite way around if you do a downcast and you call this method which it thinks should be accepting the caller thinks it's passing a float and the caller is expecting an integer well again on OS 10 calls the function and there's some nonsense in the register with the GNU step runtime now it does this it says you're calling this method but you're doing it wrong fix your code so having this reporting an error is just a little bit nicer with a twilight which is project to build a desktop environment on top of GNU step we actually go one step further and we use some of LLVM's jit compiling stuff and we now insert a fix up method which says you did it wrong but don't worry we know what you mean we're going to do that type conversion for you and call the correct method so this is just a little demo that I think is quite fun I probably wouldn't recommend enabling it in production code but when you're testing stuff it's quite nice to say okay you've got a bug we'll fix it for now at runtime you can carry on your testing but don't forget to fix it before you actually ship so I've talked a bit about the compiler and the runtime and how we have Objective-C working on other platforms and how in some ways at least our version is nicer than Apple's but Objective-C is a really tiny language and by itself it's actually not that much use you can wrap up, see libraries with it but for Objective-C to be really useful it's the frameworks that really give it the power and if you're programming an OS X you're using these Cocoa frameworks and they're proprietary so well how do you deal with that when you're using another platform but it turns out Cocoa although it's a proprietary implementation is an implementation of an open specification and this was a collaboration between Sun and Next way back in 1992 and if you notice the NS prefix on all of the classes in Cocoa that stands for Next and Sun, the old Next stuff used NX and way back when this specification was created the GNU Step project was formed to implement it and it didn't get much use because Next over its entire history sold about 50,000 computers and that's 50,000 computers over about a decade which is not really enough for people to have a large installed base people using these frameworks and saying oh they're actually pretty nice you had a few people in academia Tim Berners-Lee said some really nice things about it but it didn't really get widespread adoption then Apple bought Next and renamed their OpenStep implementation Cocoa and suddenly there were loads of cheap computers and it seems weird to think of Max as cheap computers but in comparison with Next whose cheapest machine was $5,000 in early 90s late 80s money Max are actually really cheap so GNU Step then switched from implementing the OpenStep specification to implementing the OpenSpecification plus Cocoa extensions so where is it now well most of the stuff from OS 10 10.4 works which is a nice base level a lot of stuff from newer versions works we've got things like some of the newer locale and calendar stuff various random things a few things from the iPhone operating system their version of foundation we've now implemented so stuff like the Unicode regular expression classes basically stuff that people actually want to use tends to get implemented first occasionally Apple is very helpful to us to add a new API in one version we won't get around to implementing it then they'll deprecate it in the next version and then they'll remove it in the version afterwards so we don't have to bother with that one but generally stuff people use a lot gets done first and tends to be quite stable but of course patches are welcome so we've had a few companies say we want to port our application GNU Step can almost do it so it's cheaper to just add the bits to GNU Step send the patches along than it is to completely rewrite our application for another platform so one thing that I guess everybody knows about GNU Step is that it has this classic look which is totally timeless and it has this really consistent behaviour that mimics how next step worked and this is still the default look for GNU Step because one of the aims is to faithfully recreate all of the stuff that next did well and the difference is that now this is an option for GNU Step it's not the only thing so GNU Step has had increasing support for themes recently and a theme is not just the visual appearance all drawing in GNU Step opens via a delegate class now and you can replace that with a theme that does custom drawing in code or just with a simple one that loads PIX maps and they can also alter the behaviour so there are some nice things we can do we can move the menu into the window where Windows users expect it and people with desktop environments that try copying Windows expect it we can use native panels for things we can change the shortcut keys in menus so that they correspond to face guidelines we can do all of that kind of stuff so I just want to give you a few examples of that this is being as a word processor that was written for OS X it requires 10.4 or later it uses some newer APIs it was never written as a portable application it was written as an OS X word processor and it now works on GNU Step so this is what it looks like in its native environment you can see oh you actually can't see the top of the screen but there should be a menu bar off the top of the screen and it's a native Cocoa and then you take it to GNU Step and you see this classic industrial look with the floating menu there's okay it doesn't actually look quite that ugly the resolution doesn't quite match up so the anti-aliasing is broken but it's it's gray and it's boxes and that's the GNU Step trademark Gregory's recently been working on a GNOME theme so you run it in a GNOME environment and again you can't quite see the top of the screen but it has the menu in the window now and the menu looks like a GNOME menu the widgets all look like GNOME widgets the file dialog box is still the GNU Step one but well the themes are working progress so hopefully that won't stay there for much longer the Windows theme is a little bit more mature it uses the Windows API for drawing the menu it uses the Windows common dialog box doing the standard opening file panels for doing the print panels the color well the font user all of the standard Cocoa things that you just call into the library to produce it now just calls into the Windows library to produce so it looks and it feels like a native Windows application and I'm just going to finish up with a couple of things that we can do in Objective-C just to give you a taste of why Objective-C is more fun to program with than pure C and one of these things is higher-order messaging which originally came from Smalltalk and Smalltalk stole it from functional programming languages the idea is that rather than having a function that takes a function as an argument you have a message that takes a message as an argument to see how it works but that's how it looks like it works to programmers so I could try and explain this but it's much easier to show you some examples and if you've written any Haskell or ML code then this will probably look quite familiar to you at the top you have an array and you send it a map message and then you send it a make-up-a-case message and so the return value for this is another array which is the result of sending a element in the array, that's pretty simple you can do the same with a filter operation so you send it a is-supported message and it then iterates along every object in the collection and returns just an array which supports those versions the one in the middle is actually quite nice it's very common in Objective-C programs to have a delegate class that implements some methods that are required and some methods that are optional and so every time you call the delegate you have to bracket the message send saying do you actually respond to this method or to this message or should I just not bother calling it and with this higher-order message we just say delegate if it responds to this do it and the result from the if-response method is a proxy and it then receives the do-stuff or message it checks whether the thing that it's proxying actually responds to that if it does it forwards it, great if it doesn't then it ignores it and this now uses the fast proxying mechanism so this is very, very fast using the old proxying mechanism it was about 300 times more expensive than doing just a normal message send now it's about three times more expensive so that's a bit of an improvement the last one is probably my favorite one this in new thread message returns the proxy that has the object wrapped up in its own thread with its own message queue and that's using a lockless ring buffer to push the messages across very quickly so now you send it to start message and that's added to the queue it returns immediately and then in the other thread it starts playing you send it a current track message and it returns a proxy object and then you send a message to this return value and then you get the synchronization so it doesn't block until you actually try and use the result from calling the message in the other thread so we can have this really nice, simple implicit concurrency and we've used that in a media player application in a twilight and we just chuck the decoder just up in another thread and it just sits there and we pretend from a programming perspective that it's all happening in the main thread and it looks like it is but it's all done asynchronously and the synchronization has happened implicitly we can also do some fun stuff like automatic persistence we have this Itoile serialized framework and one of the nice things about Objective-C is that it has introspection metadata everywhere so every object you can enumerate all of the methods that it has what their types are you can enumerate all of the instance variables what their types are you can see it's superclass all of that stuff so we can look at an object visit every object that it references we can automatically serialize all of its instance variables we can take snapshots of objects messages that you send to objects so we can record those as well we can record the entire undue history to disk with no modifications of the model code in a statically compiled language that's almost as fast as C so that's pretty nice we can go beyond Objective-C yesterday I gave a talk about language kit and that's another compiler built on top of LLPM giving you an abstract syntax tree for small talk like languages we can implement a dialect of javascript on top of the same runtime sharing the same object you can take an Objective-C object Objective-C class you can subclass it in small talk you can then use that as a prototype in javascript and it's all compiled down to machine code there's no virtual machine and it's pretty magic and we've also got some kind of research stuff going on the new runtime takes the sender as one of the arguments for the lookup method and so we can implement this thing called object planes and Demian's been doing some work on that in small talk as well and the idea is that you have objects that are grouped in some semantic group and that might be related to a document or related to a specific library and every time you send a message between two of these discrete groups the message is intercepted by the writing on it so we can do things like implicit concurrency every time you send a message to any of the objects in this group it's added to a new thread to a message queue in that thread we can do access control so we can say only objects in this set are allowed to access some methods so we can do some sound boxing like that we can do automatic serialization it's pretty cool I'd just like to finish by provisionally announcing a brand new Objective-C compiler which should be appearing quite soon I've been working on this a bit with a company called PathScale and their existing compiler is a fork of Open64 and Open64 has a really nice architecture it has an intermediate representation which is initially at a very high level it's very close to a C or a Fortran Abstract Syntax Tree you can do some high level optimizations there and it's lowered through five stages and at each of the stages you can do more optimization so they're really heavily focused on optimization their aim is to be 10% faster than any other competing compiler so if you file a bug report with them saying ICC is faster than you for our code they regard that as a valid bug report it has stuff like OpenMP it has support for offloading stuff on the GPU and they're now using the same front-end as LLVM they're using this Clang front-end which is really modular so the dependencies between LLVM and Clang are actually really small it has a single library in the Clang source tree takes the Clang Abstract Syntax Tree and it emits LLVM intermediate representation from that and all they're doing is just replacing that library with another library that does the same thing but with their intermediate representation and this will be released open source quite soon so you can maybe use that if you're working on another compiler you could use that as an example of how to emit Gimple or something else and that's the end I shall just throw that in my latest book was released this week so if you want to learn more about Objective-C and if anyone has any questions


Everybody forced here ripping a box of 2021 Panini one football for dodge see dodge. Here we go, man Done a little while since I've opened one of these See one of them QB's What year is this? 2021 Panini one it's a QB. It's Kellan Mont on the horizontal rookie patch auto 44 of 149 To color patch All right, there we go dodge Hoping for a bigger quarterback there for a man. We appreciate the order. We'll get it out to you shortly You


Good morning and welcome to the sacam filming of stories of students and segregated schools. We'd like to welcome everybody for being here today. We have an esteemed panel of guests who will be sharing their experiences with the educational system here in San Antonio and in other parts of Texas. You know, when we think about oral histories, they are important because they give us an opportunity to reflect on the memories and experiences from firsthand account of things that have happened in the lives of our community. We have an opportunity to capture unwritten history of not only the struggle, but also the resulting achievements. People who may not have otherwise written a book or taught a class now get to be heard. We also want to do these things so that we can gather, preserve, gather and preserve the voices and the memories of a community and provide a resource for generations to come. So we want to thank, sacam wants to thank the various partners that we have that are associated with this, that being now cast, the 100 Black Men and the Van Cortland Foundation. We are excited to hear what has to be said and we look forward to this grand event. And at this time I will pass the microphone to our esteemed moderator. I like that statement esteemed moderator. Good morning. My name is Leonard E. Lawrence. I am not a native San Antonio. I came here in 1969 through the United States Air Force and I plan to leave as soon as I could. I was going to return to my home in Indianapolis, Indiana, going to private practice and get rich. I am a child psychiatrist and a general psychiatrist and I figured the people in Indiana needed me more than the people in San Antonio. That was 52 years ago that I came here and I am very pleased that I am still here and pleased with the opportunity to be a part of today's interaction. And I am going to now ask each of the panelists individually to tell you who they are. Joan, you start. Good morning. My name is Joan Hartfield Duncan. I am a native San Antonio.  I grew up on the east side and attended CUNY Washington Elementary Schools and Douglas Junior High School and graduated as valedictorian of the class of 1957 from Phyllis Wheatley High School. I am just delighted to be here and to know that we are going to get some of the most interesting stories some of you have heard from this locality. Generally Houston and Dallas are ahead of us but thank goodness we have these wonderful scholars with us who have now brought our attention to what existed in San Antonio, Texas over the past decades. Mr. Scott, thank you very much. My name is Samuel Scott Jr. and I am also a native San Antonio born on the east side of what we used to call Denver Heights and attended CUNY Elementary School. Douglas at that time they were called junior highs and Phyllis Wheatley High School class of 1961. I have a little cap here to give you an indication about Wheatley High School founded in 1932. I was not in that class but I did graduate in 1961. From an established family on the east side my father ST Scott Sr. actually was principal of Douglas when I was there and eventually became principal at Wheatley and then served under San Antonio Independent School District Board. My mother was an elementary school teacher and taught at a number of schools around San Antonio and even outside San Antonio. So both my parents were educators and we both grew up on the east side in Denver Heights and like to reflect back and think of it as a village where everyone that lived in that community made a very big effort to support the youth of the community. It was like one big family and we were fortunate enough to have in that part of town a number of teachers that lived in the community, a few doctors, a lawyer, professionals we had people that we could look up to and they could easily reach out to and we got in trouble they reached out to us because if we did something wrong our parents would know it by the time we got home. And I think that's something I reflect back on now and I'm not sure that situation exists in today's world but I think we all benefited from that during our early years and you're going to talk more about that later on. Thank you very much. Mr. Cook. Good morning. My name is Lemuel Cook. I'm a native of San Antonio. I was born and raised. I went to Dunbar at Grant Elementary School on the west side as well as Dunbar Middle School. Then I went on to Jefferson High School here in San Antonio. Upon my graduation I went to college at Trinity University and graduated from there. Played a little semi-pro football with the Sandwich on your toe road. I indulged in a lot of different capacities. I was a military veteran as well. And I'm a school teacher like I say for 46 years. It's pretty much, I've come from a large family of seven. It was two girls, five boys and we were a close knit family. And that's about my livelihood itself much. But like I say I taught at school for 41 years. It's kind of interesting. We all attended quote segregated schools. What did that mean to each of you that you were attending a segregated academic system? And even one of you can start. You know, I can truly say that for me it was a blessing. I realize that now. Because that particular part of my journey I think is what gave me the confidence, the strength, the courage, even the knowledge. That I might not have received had I been in an integrated school at that time. My teachers, I remember each and every one of them. And I cannot say that any one of them was what I would call a bad teacher. I mean they taught you not only academics but they taught you about life. Life skills were taught in the school. And schools and churches and families had the same value system. And so what I learned at home was strengthened by what I learned at school and what I learned at church. All of that going together. I don't think I would have become the confident, especially black woman, that I am today. Had I not had that kind of support in my life, I look at young people today and wish for them. And I have taught for over 40 years in integrated schools. And I know that our children did not receive the support that I received. When you entered that segregated school, what did you think you were about to embark upon segregated school? That was, I'm being very honest with you to say I did not, I did not even factor that into my psyche. Do you know why? Why? I'm asking you if you know. I don't know. I mean it was not part of, I'll go back again to a little bit of what I said yesterday. I think San Antonio had sort of a unique situation in that I did not know I was supposed to be disadvantaged or deprived of whatever. There were business owners. There were a ton of educators here. Well educated people. I want to really brag on them. Most of the people that I knew, and I'm sure that Sam knew, were homeowners. And those who were in public housing were just temporary residents. They came in, up and out. And everyone was on an upward bound trajectory, really. Mr. Cook, what did entering a segregated school, when you were six, seven years of age, what did that mean to you? Well it was meant to, like she was mentioning, it was like before a family situation. When you were in a segregated school, the teachers were like your own parents. What you learned at home, and you got to school, it was actually the same thing, it was reinforced from what you taught at home. So they were like family when we got to the school. They cared about you. They wanted you to excel.  So our teacher was like a parent to us. And we were always safe at school because we knew that if we did something wrong, parents are going to know about it. Mr. Scott, did you ever go into downtown San Antonio before you started school? Yes, I did. I was just thinking back and reflecting. I agree with the nurturing aspect at the segregated schools. But we at that time, when I was growing up in the city of San Antonio, you had opportunities to branch out to a certain extent. There were certain days of the year that we were allowed to go to the symphony. Other times the reflecting back on most recently on Juneteenth was the one day of the year when we could go to Playland Board, which was the main amusement park in San Antonio. And that was the only day out of the year that blacks could go there. And we were just as happy as we could be. Our high school, Phyllis Wheely High School, had very good athletic programs, as Mr. Cook will remember, and a good football team. But everything about high school football in Texas is weekend, Friday night. Phyllis Wheely was given Wednesday night to play at Alamo Stadium, which was the stadium for the San Antonio Independent School District. And what high school plays in the middle of the week? It has to go back to class the next two days, but Phyllis Wheely did. And the teams that were traveling to San Antonio didn't particularly like that, especially as they were coming from far away, like Houston and Austin and Waco and so forth, to come down in the middle of the week and have to go back. But these are things that I look back on, and I didn't think much about it at the time. I didn't realize that we were being subjected to some of the worst aspects of segregation. But we, at the same time, were moving forward and doing the best that we could under adverse circumstances. And I think that was the main thing that I look back on is that even with those adversities, we were able to achieve and move on forward. Allowed to go to Playland Park. Allowed to go to a museum. Allowed to interact briefly outside of the all-white black community. Wouldn't that mean to each of you that you had to be allowed to do those things? It was kind of like being restricted, not allowed to be, you know, say isolated. You know, it made me feel like I was a prisoner in a sense. I can't go here, I can't go there, I must have mission to do this and permission to do that. We were not given that opportunity like the others, but I had to learn to accept what was done and kind of grow on it. It just wasn't a good idea for, you know, situation. When I lived in a little place called Seymour, Indiana. Southern Indiana, halfway between Indianapolis and Louisville. Black population was in one corner of the town. We were not allowed to go downtown only on Thursday evenings. Other than that, you could not, by your own volition, interact with non-black populations. Did you ever get frightened by the fact that if you made a mistake, you might be punished in some way? You know, I think frightened is maybe not the exact word I would use, but I think there were certain instances when we felt that because of a certain incident or an exposure, you realized that you did not have the same type of facilities, the same type of resources that were available to other students in the community that attended white schools. But at that same time, I know my first experience was participating in the brave roof league as a young baseball player. And it was really the first time to be, I was the only black on the team. It was my first experience in Iraq with teammates. And they made a special effort to welcome me, and I was somewhat surprised because we had never, we kind of been insulated from that kind of thing growing up at an early age. But they were more than welcoming, and I'll come on and do this and do that. And you had to think about it as a reflect back on it. I think it was an attempt at being genuine. I don't think it was false, but it was a new experience for them, and at the same time it was a new experience for me. So I think we both recognized that there could be something that could come out of that that was positive that we both could benefit from. And I think those are the little steps that I remember taking away from a totally segregated situation in the neighborhood that was primarily African American and beginning to venture out. And you use the term when we are frightened or when we are afraid. I don't think so. I just think it was something different and new. And we had to kind of brace ourselves that wasn't going to be something that would be embarrassing. And the more it turned out not to be that way, the more satisfied we were. I think I thought of two incidents that made me more aware of what was going on. One was going over to Jefferson High School and realizing that they had scientific equipment like every child had a microscope, whereas we had so many per table. I do remember that. And the other thing that I think was my best experience, I guess I should say with integration, was through the Girl Scouts. I became a Girl Scout in second grade. And while it was a segregated system, as I was growing up it became more and more integrated. And we had two separate camps. They had one that had cabins and whatever. We had temps. The final analysis was that we became better Scouts because we had to have more survival skills than they did. So when the first National Girl Scout Roundup was convened, two black girls were part of the Alamo Patrol. And that was a very, very encouraging experience I guess in terms of how will you act. And we lived together for like two weeks in Michigan. Another point since the conversation. We're talking about materials. We're not giving updated materials. For instance, textbooks. I remember the teacher saying we got our textbooks. We didn't get from the state that we're not providing the black schools when I was in junior high school with the updated textbooks that other schools would have in the Anglo schools. So when I was at Dunbar, I remember a teacher mentioning that we have hand-me-down books that we receive from the state from Jefferson High School. Jefferson High School would get new books and then the books would hand me down from those high schools, Anglo high schools, and give them to the black schools. So we didn't ever have brand new books. And in spite of those teachers, bridge that gap. Whatever was missing, they bridged the gap. I think beyond just one point, beyond, not just education in schools, but other organizations such as you mentioned, Girl Scouts, Bart Scouts. And the one that is very dear to me is the YMCA. Yeah, sure. Davis Scott, YMCA. Scott was my S.T. Scott singer and was my dad. And he made a special effort as an educator and also as a very dedicated supporter of YMCA. And he traveled around and saw different YMCA's around the city. And he said, we have to do something on the east side, because what we have was a very substandard facility on Commerce Street called Alamo Branch YMCA. So, Odie Davis, the other person's name for it, and my dad made a serious effort over many years to fundraise to support the establishment of a new facility that the east side of San Antonio could be proud of. And that was the name for him and about a week later, unfortunately, he passed away. But he was so proud of the fact that that facility was built and it had his name on it. And it was something that the east side community could be proud of. And so in addition to education and the school system, there are other elements that came into play in terms of segregation and inferior status that the black community had. When I was in the year 1941, when I was four years of age, we lived in the projects in Indianapolis. And my mother took me into a department store. In that department store, there was a bin of stocking caps. A four-year-old kid reached up, picked up a stocking cap, and put it on. The manager was immediately there asking for payment. The manager, you're okay, didn't know that if you were black and you tried something on, you just bought it. My mother just had enough money for us to ride the streetcar 26 blocks back to the projects. All the way back, 26 blocks walking, I'm going to whip you when we get home, boy. I prayed, Lord God, make her forget. We walked into our fourth floor apartment.  And pretty soon it was applied to different locations of me. And she would always ask me in mid-stroke, do you understand?  And before I got a chance to say, yes ma'am, she got me again. She got me again. She was encouraging survival whenever one of us ventured into a non-accepting predominantly white community. Have any of you ever experienced being punished in order to keep you out of trouble in a non-segregated arena? Being punished so that you would be prepared and know how to act in a non-segregated arena? Yeah, I think, I don't know, punished is the right word. I think we were growing up, were constantly made aware of the fact that if you are going into a non-segregated environment, you were going to be breaking the ice, you would be kind of cutting edge. And you knew that you had, you were told that you were going to be expected to be better, to excel. One of my senior here really, the summer of the senior year, I made a special effort to take two classes at Bracken Ridge, which was the white high school and reasonably in that part of town. And I was just surprised at how easy it was.  You were so prepared. And that was what, you know, I made straight A's on every exam. I said, is this what the white school is all about? And I said, well, if it is, I know that my preparation over the last 11 years or so has been outstanding, because I didn't feel intimidated. I felt that I could achieve and I could excel as well or better than anywhere else in that class. So I think that was reassuring for me. And it was something I had to do, just to prove a point. And I was happy that the way it turned out. My freshman year at Trinity University, I think that's something that, you know, everyone was... Oh, Michael, I'm sorry. Is it on? Yeah, it's on. Okay. At Trinity University, when we graduated, that was one of the schools that was offering really a very good scholarship and took advantage of it. I think that's probably like the state scholarships that you get for the valedictorian, but everyone was reminding me of how difficult that was going to be. Breaking the ice at Trinity. But like Sam, I had that same, I was so well prepared. That's why I keep going back to those black teachers that I had, because when I did get into those areas with integration, I was not underprepared in spite of the fact that we did not have everything that everyone else had had. I think that was... I think it continued on beyond educational experiences as we get into our careers. I'm a retired foreign service officer. And the State Department is probably one of the most non-integrated government entities that exist in a very small number of minorities. But again, you continuously throughout your life, you felt that you were prepared based on some of the foundational experiences that you had growing up, going back to segregated schools and having to make it with minimum resources. And that carried on to your lifestyle and your life experiences and your career. And I think it wound up positive for me. I mean, I was able to confront, no matter what situation, I'd say that I can make it because of some of the early childhood experiences that you had experienced and had to excel in with minimum resources. I know some of the challenges that our teachers expose us to. The type of...in the black school, we had to learn how to think on our feet. Learning how to add without using paper and pencil. You had to, for example, we'll say two plus two is simple, but, you know, like, what's time 15 times 15? Right. So would you have to say, well, I know five times five is 25, and then five and one is just...and then it comes out to 225. You could figure that out in your head. And you could still do that. The teachers taught you how to figure how to multiply in your head. Yes. When I got to high school, all that stuff, when I was taught in middle school, I felt like a genius because they taught us really well to be able to think on our feet. I tell you. And then I get to class and say, why aren't you opening up your book on certain situations? Why aren't you looking at your book? And I say, I've already learned that. That's something I've already learned. They say, well, well, well. That transition from elementary school to high school is a very important time.  Mr. Cook was in Jefferson High School, as I heard it, which was the elite, elite non-black school at that time. Right. You just described how your academic preparation and the commitment of your teachers in elementary school really prepared you for the battle, so to speak, that one sometimes confronts in the high school arena, especially in those days. For the two of you who went to predominantly black schools, was there any difference in the approach that your teachers in that transition process used from that that Mr. Cook experienced? No, I can't speak from his experience because I did not attend a predominantly white high school. But at the junior high and high school, as we said earlier, I think the key aspect that we both probably remember is if you had to define it, I would define it in terms of nurturing and understanding that the faculty had about what the student experiences were, not just in the classroom, but in the community, in the household. And that's something I'm not sure if he experienced that at Jefferson, I would doubt that he did, where a teacher would understand what it's like to go up in the black community. But if you had a teacher in high school who lived in that community, who also had children that grew up in that situation, beyond the X's and O's and the science and the academic aspect, you had a certain nurturing aspect that you knew you could go talk to that teacher. And that teacher would receive your conversation, receive the conversation in a way that made you feel better and probably made the teacher feel better. Your families were very important in your preparation for the entire academic experience. What role did your families play in emphasizing your need to pay attention to your teachers, your need to be cooperative with your teachers, your need to follow their lead? My parents were quite strict. My parents never went to high school. My father was a great level of three, and my mother was a great level of four. So they were strict on education, learning. I had older brothers and sisters, like I was a sixth child. So a lot of the educational part came from my older siblings. They were like parents because, like I said, they were a lot older than I was. So to keep me up to date with education and to do well, that was my older siblings that kept us in mind because my parents, like I said, never graduated from elementary school. They were laborers who had to go out and do work, so they take care of the family. But like my older brother's siblings, they were actually my parents helping me with my education. Discipline, the parents took care of that. That was no problem. They made sure that you did the right thing, said the right thing, and respect others. So that was a combination of both, you know, parents as well as my older siblings. I think in the African-American community, you see that's one side of the story. Then you see the other side. My parents were educated, both of them. But it's a generational thing. I think my father's father and my mother's parents were not. And the emphasis that my grandparents placed on education, and I didn't know them, but I heard the stories that you, my parents were told that because they didn't have those benefits and that education, they are going to get it. And I think the same thing happens now with those of us in this generation. We all want our kids and our grandkids to achieve and to have a better life than we have. I mean, that's just human nature. And I think that's what happened. A lot of the grandparents of our generation and the great grandparents came from small towns and managed a way to get to the city. But what they had experienced, each generation wants better for their children. And I think that's what happens. And it's inevitable that happens. You talk back and you look historically at the previous generations that did not have education. They focused on making sure that their kids did. And my generation, I'm focusing on the same thing with my kids and my grandkids. So it kind of perpetuates itself. It goes on from generation to generation that you do want your offspring to have better than you had, if possible. And you make every effort to do that. You have to provide it. And my family, my father's side of the family were landowners. And they emphasized work and buying land. But on my mother's side, my great-grandfather, Singletary, and his wife were both in education. The first school for colored children, I think that's what they called it, was the Phillips School in Guadalupe County in an area, a community known as Sweet Home, which still exists. And it was the Phillips family that started a school for colored children. And then in 1921, I think it was, that Guadalupe County received notice of the Sears Roebuck grants that were being provided to communities to establish schools. And one of those grants was given to my great-grandfather, Henry James Singletary. The community would raise half of the money and the grant would provide the remainder. That's building itself still exists in Sweet Home community. It is now a senior citizens service center. But he built that school for it was a four-room building and they emphasized home economics and agriculture in the higher grades and in the lower grades. And my mother taught there and maybe three or four of her cousins and whatever, so I agree with Sam about generational. I never had to think about whether I was going to go to college. The family had already made that and you don't have a choice. It's not when, if it's when. What role did religion or faith play in the development of each of you? Mine was number one. My mantra is God, family, education. That's the way it goes. I think so also. During our growing up days, we all have had a very close relationship with our church, our pastor. And it's interesting that those churches, although there have been many demographic changes and shifts away from what was formerly the east side, the mainstay seems to be the church. And people come from all over to attend those same churches that continue to exist and serve a role in the community. So I think the relationship that our families had with a pastor or the pastor of the church, of the choir, in some aspect, if they were serving on the church as a deacon or in some other capacity at the church, there was always a strong bond and a connection with the church.  And that was just a part of the routine and you went to Sunday school and you did whatever you were supposed to do to maintain your religious connection in the community. Yeah, religion had a lot to do with my education because I can remember the time my parents would say, boy, get up, you're going to Sunday school. You're going to church if you had to walk or you had to get arrived at somebody. But like you say, church was number one priority. You learned in church and carried that on so you're schooling as well. Exactly. I want to go back to something that you mentioned, Mr. Cook. You said one of the things you learned was how to think things through. Was there one course, one subject area that was most important in facilitating your capacity to think things through? The math class, I mean, the part about math and spelling. Spelling was another big deal. We had to, actually we had contests with the monk.  And we were going to find who was the best speller. Same thing we were doing with the math. And that were words that, you know, if the teacher gave us a list of words, go home and study. That's another meaning that you had to go home and do some homework. Learn how to spell the words properly and then be able to pronounce them. So we had the different type of games that we played was spelling or whether it was math or what other subject matter. Even history. So we had to learn how to think on our feet like I mentioned before with all different subject areas. So that made me a better student because when I got to high school, like I said, I was an honor student. So it kind of helped me in them.  And they're going to be looking at me. But I want to also look at me. Also I want to let them know that I was just as well educated as they were. So that was a plus that I brought back to my community. That did well. I'm just thinking back, reflecting. High school, there was, in those days, we called it civics. The instructor I had, his name was Mr. Warren. Oh, civics. Yes, government civics. And I can remember vividly, he was impeccably dressed. He never came to class, not dressed in a suit and tie. And those things, you remember, you reflect back on it. You know, maybe I wound up in government, I wound up interested in some of the civil aspects of what's going on. But I remember Mr. Warren saying, when you started the class, he says, you will listen, you will pay attention, and we're going to do this. And we're going to, very meticulous, very regimented. But what I remember most was the way he was dressed. And I think those things stick with you. You respected him because he presented to the class an image that we could be proud of. We could be proud of the way he was dressed, the way he presented himself to the students. And that's what really, those kinds of things, stay with you. And I remember him until he was, plus he was a neighbor who lived two blocks on the street. And he said, come by the house, if you don't understand something, I'll talk to you more about it. But he came to class dressed impeccably. And I just remember that. It's a memory I have and I can close my eyes right now and see him in the classroom. The reason I asked a question that way, I went to an all black elementary school, but with white teachers. I went to a Catholic school. And the reason I went into the Catholic school is because the public school in the projects right across the hall from our apartment, there were a set of twins who were a year older than me. And they had flunked the first grade in the public school. And because of the complaints of their mother that she would share with my mother, my mother said, well, you know, maybe we got to find someplace else for this boy to go to school. My mother didn't finish high school until after I got into grade school and my father had an eighth grade education.  So there was this daycare place that I went. And they asked people about the daycare place where I ought to go to school. And they said, well, we don't know much about them Catholics, but that Catholic school across the street seems to do okay with their students. So $15 a month chauffeur and a maid's salary. I don't know where they got the money, but they put me in that school. Well, the reason I remember that, the one thing that I learned in that school and it relates directly to what you were saying, Mr. Cook, I learned how to use the English language. I dissected more sentences. I went through more routine activity to learn the spelling, to learn the pronunciation. Now, what I didn't realize at eight, nine years of age that what the nuns there were focusing on was trying to prepare black young men to become priests and black young women to become nuns. That was their ulterior motive. They had one. But in grade school, I didn't realize that. I just knew that they stayed on my case about learning how to use the English language. Well, as a result, I'm a damn good public speaker at this point in my life, if you will. I can think things through. I can process things through. And so the idea of picking up skills at that early stage within the academic environment is extremely valid. So many of our kids nowadays don't have that commitment either from teachers or from community or from within the family. So do any of you have ideas about how we can approach that deficit within our youth in today's society? Yeah, done any thinking about that? I just retired in 2020. So I've just come out of that environment. And one of the things that I think, I don't know if we would have to form groups of individuals at churches or at the Y or wherever. But our children, and not only our children, American students are just really missing out on, we're trying to teach what is now called a blocker process called critical thinking skills, which uses a taxonomy by a person called Blooms. Taxonomy tells you, you need to learn how to evaluate, how to analyze, how to break down materials and how to know how to tell when something is right or wrong to go to law school. You need to be able to evaluate. So they don't take that seriously. It's too structured. It doesn't bring about any pleasure. And no one is rewarding them if they do do that. Do you notice how much more attention the bad kids get now than those who are achieving? We give all of the attention to the bad kids. So some of our good kids want to be bad kids so they can get that attention. So we need some way to, I know we don't want to go backward, but there's some of the things that we know bring about success, but our children don't see that. They don't know that. We knew that. We knew that going to college would give us a better chance at a better job or whatever. But we can't say that to them now because some of those same kids will come up and say, oh no, I run drugs with my uncle and he makes so much and so much a year. You see? So it's a systemic problem. And it's not just black kids and it's not just poor children. Many of our more successful families have suffered that kind of deficit now. So when you ask about what can you do, schools are trying, but I think we haven't seen the forest with the trees. It's a dilemma. It is a dilemma. When I first came to San Antonio, I was invited to become a member of the KLRN board and I refused. The reason I refused is because it was my opinion based on all of my experiences in growing up and my formal training that television had one of the worst impacts on child development that any entity or any factor could ever have. By the way, I still believe that. It's even worse today because of the social media. It's worse today because we spend more time in the non-factual opinion-oriented product and activity. And our kids are directly exposed to that. There may not be an approach other than constantly saying it publicly over and over, getting repetitive. But I wonder what you all think about what I just said relative to our role as senior African-Americans in participating in a new learning process for our youth that focuses on fact as opposed to fantasy. I still think they're going to have to see it. We're going to have to be examples of. I'm just thinking of the four of us who are sitting here now in any average school here in the city. How many of those kids have been exposed to us? It's interesting that you say that. I spent about an hour on telephone last night with an 18-year-old youngster who is now entering college, and he and I talked about his career. We talked about how to figure out what he might be interested in. I didn't tell him what to study, but I made myself, if you will, available that he can call me at any time, and I can call him at any time to talk about his progress. That one-on-one is something that occurred community on us as we were growing up, and it was a lot of one-on-one that was shared, if you will, by other community members. Can we get back to that in some way? Mentorships, they work. If you can get them going and keep them going. We have a lot of them that do startups, but they're not long-term. We need some long haulers like that. And you're also going to have to somehow, some way, get parents involved with their children's education. Right now, our parents are not involved with their children's education.  I brought him so that you can help him. You see? I don't know how we got to that point, but the schools are expected now. You know, it's interesting. I just had a wild thought. I have a lot of wild thoughts. Should we return to segregated education? Can we what? Should we return to segregated education? Oh, now that's a real question. Well, I think, I don't know if return is the right word. I think there, as we've been discussing this morning, obviously there are certain aspects of segregated education that turned out for some of us to be beneficial. Now, whether we need to think about replicating that, and if it is indeed possible in this day and age, given the external influence that's impacting today's student, both minority and non-minority, I think it would be a very difficult challenge to return to segregated education, but it would be more difficult to identify and pinpoint some of the positives that existed in segregated education and replicate that today. And again, it would depend on the degree of receptivity that the student has, which you mentioned, Dr. Lawrence, I assume the student reached out to you, right? You didn't reach out to that student. Or was it a combination? Combination. Combination. But whatever. It seems as though there has to be some type of linkage, some type of realistic approach on the part of the mentor and the mentee, and explaining what the benefits, you know, reflecting historically on some of the aspects that existed during segregation and segregated schools that turned out to be beneficial for those of us who are in our mature years now. I'd like to interject just one little thing. The other thing that happened to us, black men and women left the field of education. We don't have enough of us in the field. We abandoned it because we could then, you know, suddenly we could become so many other things. Technology. But I think the pandemic has taught us one thing that in person, one-on-one contact that children have with teachers is a lot more valuable than a computer that's coming out. But we need us in the school systems. Mr. Cook? Well, I was listening to what you were saying. The reason why a lot of kids are not focused on, like you say, the old type of education is because it's computer age. There's too much technology as far as, you know, they are more interested in technology. Now I got a granddaughter and she lives and dies by that computer. And I try to use the computer as well as they do, but they are more into it. I mean, they are really educated as far as the computer. Yeah. Because that's the age that they grew up in. Two-year-old skinning. Right. Now I got a 10-year-old granddaughter. I mean, I had to go to her to ask her some of the things that are going on today. So I guess in a sense we have to move up and learn what they're learning because they're in a different situation. Let me challenge that. Are we using that as an excuse not to return to active interpersonal involvement? I understand the reality. I totally understand the reality. But are we using that as a way of justifying non-return to active involvement in the developmental experience of our children? I say to people in higher powers, the one don't want to go back to that type of education. All about the money. Correct. But I do believe, I'm waiting to see, because really their school districts are really challenged with how many, especially in the state of Texas, I haven't looked outside that, but with the gap that was formed during the year in which a majority of students were learning virtually. And they're wrestling with that right now as to, you know, I don't think it's going to take technology out of the schools. But what we do need to look at, and I think some of them will be looking at it, is that technology should supplement, not supplant. One of the things to keep in mind is that what you each described and what I experienced in early segregated education was combined family, teacher activity in behalf of my developmental process, your developmental process. You described a unifying community approach, a unifying approach across academic entities within the segregated school area. You expressed a commitment on the part of the teachers and family for progress in their young people and to represent that family and community system in a positive way in the future. Is there a way to return to that? Not without a paradigm shift. You can't do it with the mindset we have right now. I don't think. I think it requires a commitment on the part of the student and parents. But the environment has changed. And you have to recognize that those changes can be positive and don't have to be negative. I agree that the parents probably are not as determined and committed to interacting with teachers and making sure that their students have the education that they need. But why is that? So once there's a recognition as to why it exists and you can break that down and you can break down some of those barriers that exist now between the teachers and the parents and try to return to some of the basics that existed a generation ago, an hour generation. It's difficult because the barriers are what we've been talking about, the technology and the social media and the distractions that are out there. And it's just extremely difficult. When everyone is wrapped up and totally engaged in social media, it's a whole different environment, a whole different world. And we have to see what can be done to get back to some of the basics. But at the same time, it's a difficult challenge to break down some of those barriers. That's true. And children learn from each other, too. That's something else. They miss their friends. That's something that I noticed and I wish they would bring back into the school system learning how to write penmanship. Absolutely. Students look at the kids today. They don't know how to read. They started cursive. Remember? They took cursive out. If you sign your name. They're horrible. They only know the keyboard. And there are teachers who have come through the system already who cannot read cursive writing. I was always being asked, what does this say? But there are some states, Ohio. I don't know about Texas yet, but I know Ohio and Iowa, I believe, have now mandated that they go back and that the school districts begin to teach cursive writing. How can we as individuals or as members of organizations like the San Antonio African American Museum and Community Archive or United Way or how can we become advocates for recognition of these deficit areas and continually at least speak to the need for return to some sense of unity in educational approach for African American children? I'm prejudiced. You're prejudiced. Okay. Can we in our organizations, our predominantly African American organizations begin to insert a mentoring type program as part of our program facet? Can we focus on that rather than on a thousand and other one things that we're doing or focusing on? Can we give up some of our pleasurable whatever, whatever and put that money and time into the children? I'm the first African American in San Antonio ever to be chairman of the board of United Way. I was sitting at the executive committee which I was on for about 30 years before I stepped down a year or so ago and I made the following statement. I said racism is taught during the first three years of life at the kitchen table. Now the room was 95% white. Some of the black staff the next day called me and said, Dr. Lawrence, when you speak it's like EF Hutton. The whole room comes to attention.  What I mean is this, communication clearly and directly must be manifest at all levels within the African American community in order to become effective advocates for our children. I'm very strong in the belief of that. Am I out there on the limb by myself? I think that's an accurate statement. It does depend on the receptivity. I mean, you're talking about communication which means you have an audience. You have someone who's listening, who's willing to listen and is willing to try to understand what you want to convey. And I think those are the kind of gaps that we're confronted with right now is that we can have very serious efforts and attempts at communicating but if we don't get genuine feedback on that communication, then we tend to think that, well, maybe it's useless. It's not working. It's not working because we're not getting the kind of feedback they would have gotten 35, 40 years ago in response to what we're trying to convey. And I don't know if that's just a function of the environment, the culture, today's culture that exists, but I agree we have to make every effort and continue to strive, but it's a two-way street. Yeah, it's my opinion. Life is interesting, isn't it? Yes. If you were a fourth-grade teacher at this point in time, what would you want to communicate to your predominantly African-American class about racism? About what? Racism, about racism. What would you want to communicate to the students in your class? What would you want them to know about the reality of racism? I think I could take one simple phrase that probably was given to most of us. Until we get to a certain point of what we call social justice, you must be better. You cannot be... At this point, it is not about equal. It's about better. When I see us at the head table, I know that person is 10 times better to have gotten there. So you must be better at this point. Now, we may one day get to that point where we have equality, but we're not there yet. Any other thoughts? I think that's what we were taught. Most teachers used that phrase as they were trying to prepare us for that next level, because we were all apparently in that range where they knew we were getting ready to go into it. And so they always used that phrase, you must be better. And I know I took that to heart. You must be the best. You must be the best. Well, you're going to be, yeah. You must be better for whatever. Don't stop at that. Is it futile? Is it a futile effort? Is it something that we just shouldn't talk about? Because it's unreal? I mean, today, yeah. No, I hope not. I mean, one would hope that, as I mentioned earlier, of today's parents should want the best for their children, as was the case in prior generations. Now, I said should, but I'm not sure that that exists right now. It should, and we can say it should because we look at ourselves as beneficiaries of that type of environment. But to today's parents and the people who are responsible for the kids today, I'm not sure fully understand what it means to be a serious student and to break away from some of the norms that exist, some of the peer pressure that exists because of technology and social media. So I don't know how it can answer that question in today's world as opposed in the context of what happened in the past. How should the organization which is sponsoring what we are doing today present to their constituency the reality of racism, the reality of segregation, the benefits of segregation, education, as well as the deficits? How should this organization present these factors to their community recipients? I'm not sure. I hope that that's a part of their mandate to try to make that type of a connection, but it's a challenge. And realistically, I see students, high school, middle school, and if it's an African-American student I intentionally mention the fact that I went to Wheatley and I ask if they know about Wheatley or if they have any kind of a and they can't imagine segregation. Because it's just not something that's part of their DNA. They don't know what segregation is. Now, they do know that they are in the school systems that they are thrust, put together with students from other nationalities and that there are differences, but let's put it frankly, they have a choice and the parents have a choice. Have choices that they didn't have when we were growing up. You were mandated to attend certain schools because of the color of your skin and that is not the case today. Now, to answer your question, I don't know how you can convey what the lessons that were learned from segregation and put that in the context of today's world, I'm not sure. I listen to my grandkids a lot and thinking back when I was going through stuff, you tell them they say, well, that's old school. I don't want to be dealing with that kind of stuff. This is my time and I don't want to hear about it. Think about it. So they got told a new agenda which I guess they spoke to live their own life as well but you try to instill with them some of the things that we had to go through and struggle. They don't want to hear it. My grandchildren are ages 24, 22, 20, 16 and 12 and they have heard everything that I have said today. They have heard it individually. They have heard it collectively. I can't say that they have incorporated it but they have consistently heard the reality of the world in which they live. My two, three children who are here in San Antonio, one's a pediatrician, one's an anesthesiologist and the other one's making money. He's a financial analyst and won't give me no money but they have heard the reality of the world in which they live. They hear it over and over and over again. When my older boy was four years old he was attending a preschool that was all white and I got home from the office and my wife said, you got to talk to him. I said, why?  She says, I don't have to do what you say. My wife would not say things like that. I would. So you can see me chastising this kid with him sitting on my lap and I'm trying to pat him on the back and at the same time caution him. One month later the teacher called and said, I owe you all an apology. I considered him retarded because he did not want to do what we were doing. He already knew what she discovered. So that is in that teacher's behalf. We must, from my perspective, continue to be open advocates for the developmental process of our children because racism is real and it's going to confront them and if they are not able to anticipate the impact, they're going to suffer the consequences. I think it depends on the circumstances. You mentioned grandkids. I have a grandson who was in school in Denver who was in school in Denver and about a year ago he called. He was doing his teacher to ask him to do some family research and he called me and he said, what was it like when you were growing up? Because that's what he had to write in his paper in school. His teacher said, talk about your family, your grandparents and he says and the more I told him the more he was in disbelief. Yes. But he was excited to hear to hear it about what the differences were between the environment that I had in school and what he's going through now and I was excited that he was interested and that his teacher put the focus on it and made him interested in it in understanding generational differences. Generational. One of the things we have left out of the equation, we do not have programs that include parents. There's so many problems out there that if our organizations, the schools, whomever, could somehow bring the parents in a component for parents because as long as they're getting one story from the parents and another story from the rest of us or whomever, there's conflict, there's reason to cast it off as, you know, not important or not to believe it. But we don't have programs they should begin really with the parents. We are approaching the time when this session will be ending and I want to give each of you a couple of minutes to make a summary statement from your perspective both about the issues that we've discussed today and about other factors, situations, issues that you think might be relevant to the organization that is sponsoring our interaction today. And we will start with you, Ms. Duncan. This has been a wonderful session. I've enjoyed the conversation. Kind of makes you think back and reminisce and really evaluate in many ways how you reached where you are. Someone invested in you. So I enjoyed doing that today because I do appreciate the investments that were made in me and I realize how important they are. I would hope that this organization can find a way to include the larger black community I think in what they are doing. Not only from our generation here, the older ones, but also have programming in place for the current generation that's school-aged children. Somehow we need the larger community to gather them together in some way. I don't know how or what they would do with the program, but if we, and then use us as resources as they begin to talk about their problems, I don't know that we, it's kind of like with the welfare program the things that they had to stop doing was telling them what they needed to do but listening to what the clients say they need to do. What are their needs? How can we interact with this population that we're talking about in a way that we get to understand how they feel, what they need, what's missing, because from the outside looking in we may have a different, we could very well have a different perspective. I also would like to commend the organization for what's done and I think the pathways are infinitesimal. You can choose which way you want to go and you can choose how you want to use some of the commentaries come about today and how that will impact on students and the broader San Antonio community, parents, and I think that's what we, from what I've heard, that's what you're going to do and I hope that you're developing a repertoire of information and historical information that can be useful as we try to make decisions moving forward in San Antonio. There's a lot of information out there but also there's a lot of information sharing that's needed and I think the efforts that are being put forth with groups like this and seminars like this and presentations can be beneficial and helping to satisfy at first a hunger for information that's needed to understand our path forward and I congratulate you and I hope you have much success in your future endeavors and activities that you have planned for the upcoming years. Thank you very much. I'd like to thank the organization for inviting me out and being able to give my opinions and also allowing you to understand some of the things that I had gone through and you get a different perspective from all three of us because some of us in all black schools and I had the opportunity to attend a not all totally segregated but integrated school and those experiences I had at integrated school actually was a life skill learning for me because I had to learn the difference between being in the black community versus going to a different racial situation and the things that I learned and encountered then I went back to the same situation that I started at in high school it helped me to be able to understand the kids the generation that I had to teach with and I kind of gave them a kind of idea exactly what I went through and gave them education on integration was segregation I did teach some of that stuff some of the things that I encountered and I cared about these kids and I have kids today that keeps calling me back and I made a good friendship with my students and the teachers today needs to be more get closer to the students and I'm not saying to tell them what they need to be doing but care about them and a lot of kids are not being cared about and hopefully the teaching generation today would be more loving with their kids and try to understand some of the situations that they go through and again thank you all for inviting me and I've had a good time and I want to thank SACAM for allowing me to participate the day I entered medical school in 1958 in Indianapolis, Indiana Dean walked up to me put his arm around my shoulder and said boy I hope the other colored boys have told you we're glad you're hearing at the highest grade you can make somebody said how did that make you feel I said I wanted to kill him they said well why didn't you I said two reasons if I had killed him I had to go home and tell my mother the maid my mom I killed the dean and she would have killed me and then when my father the chauffeur got home later on that evening he'd woke me up from the dead and he'd killed me again so it wasn't a need for me to die twice for that gentle person to only pass on once I graduated in four years, I was great I made was a B the other thing that happened that same day is that one of my new white classmates comes up and he says we've got some of the bark from the tree of the last lynching in the state of Indiana and I looked at him he's trying to be nice I went home and told my father that evening he said don't ever mention that to your mother I said why he said because one of the two people that was lynched in Marion, Indiana in 1930 was your mother's first cousin my second cousin was the last lynching formal in the state of Indiana I've been through a lot saw a lot experienced positive things experienced negative things and one of the things I have learned over the years is you can't just sit on it you gotta lay it out there you gotta call it the way you see it and you really don't care how somebody else is going to respond to it reality is reality and one of the building blocks for the future that each of our children have is the reality upon which their life their birth their experiences is built so with that in mind we will close this session and again thank you very much to Zacam for allowing all of us to participate in this endeavor this morning have a good day