Android. It's the most popular operating system in the world. It runs on more devices than any other OS. It's got 3 billion users and it counts for 70% of all smartphone operating systems. That means that you want to make Android apps and sooner or later you're going to need to write an Android app that lets users log in and log out or features authentication as we like to put Now let me tell you don't roll your own authentication. It only looks simple and it's one of those features that ends up turning into its own project or several projects. In this video what I'm going to do is I'm going to show you that with Auth0 and a few lines of Kotlin code you can add authentication to an Android app and we're going to have some fun along the way. So fire up Android Studio and let's get started. I find it so much nicer when I know what I'm going to build before I start a tutorial. So let me take you on a grand tour of what our app does. What you're looking at is the Android emulator and it's pretending to be a Google Pixel 3a that's a phone from about 2019 and it is running Android API 30 also known as Android 11. So from a couple of years ago the purpose of this exercise is about adding authentication to an Android app. So I paired down the scope of the app as much as possible. It's a single screen with two modes logged in and logged out and that's it. So on the emulator what I've got is the logged out screen that you see when you first fire up the app. It just simply says welcome to the app and you've got a login and log out button with the log out button disabled and the login button enabled and ready waiting for a button press. So I'm going to press on it in the emulator and what will appear shortly is a dedicated browser window, a web view that displays Auth0's universal login page. It's called universal login because it looks the same no matter what platform it's on, whether it's on a mobile device, Android or iOS or a web page or a desktop application. It renders inside a dedicated web browser or web view so that it does look the same across all platforms. Now it gives you all the features that you would expect from a login page including you know the nice username and password text fields, the forgot password link, the sign up for an account link and if you decide to continue you can also add all kinds of extra goodies like social login and biometrics and multi-factor authentication. It's all supported there and it's all built around universal login. Now before you get worried and go wait wait I want it to look like my thing, don't worry. The Auth0 dashboard lets you customize universal login so that it has your organizations or apps color scheme and look and feel. You can make it look like you. If I hit the back button right now I get taken back to my app and I see a little snack bar at the bottom that says hey you've got to log in to use the app so all right better log in so I'm gonna press the log in button again get taken back to universal login and I'm going to log in using a pre-created user rando at example.com my favorite example user then I'm going to type in my extremely secure password and log in. This takes me to the logged in screen which is very simple all it does is says welcome to the app. The log in button is still there but now it's disabled the log out button is now enabled and we see three pieces of information the user's name the user's email address and the user's photo being the observant developers I know you are you've probably noticed that the name and email are the same these are the default values when creating a new user the name gets set to the same thing as email and the user's image is the default image it's just generated from the user's initials. Log in has it's not at all evil twin log out so let's take that for a spin. Going back to the emulator I'm going to click on the log out button which takes me back to the initial screen but this time the title has changed to your logged out the log in button is re-enabled and the log out button is disabled and that's the app. Rather than make you start from scratch we've created a starter project that you can download you can find it at the link in the down below section of the description and go grab it. Once you've downloaded the starter project load it up in android studio and take it for a test run I'm going to click android studio's run button right now which should fire up the emulator and show me the app's single screen in logged out mode which means you see the title you see welcome to the app and the log in button enabled and the log out button disabled. Pressing on the buttons right now does nothing but that's to be expected the first step in this exercise is to register the app inside auth zero in order to do this one of the first things we need to do is get the app's package name which is contained inside the android manifest file this file is called android manifest.xml it's inside the manifests folder which is inside the app folder in the android studio project pane so I'm going to click on it right now to get a look at the file and it is in this tag the manifest tag and it is the in the package attribute here in this case for the starter app it is com dot auth zero dot android login copy this value and put it someplace safe we're going to use it in just a moment all right it's time to register the app in the auth zero dashboard this is a three step process the first thing we're going to do is add the app to the auth zero dashboards list of registered applications then we're going to gather two pieces of information and this is information that the app needs in order to be able to delegate login and log out to the auth zero service and then finally we need to provide auth zero with the necessary callback url so that it can communicate with your app it's time to log into the auth zero dashboard and in order to be able to do that you need an auth zero account you can sign up for one down below the link is in the description and yes there is a free tier in fact uh the account that we're going to be using in this demo is a free account and it's an actually useful free account it supports up to 10 apps and 7 000 users with unlimited logins that is more than enough for you to evaluate the system do a lot of experimenting and even run a small business so yeah don't wait sign up for an account now i'll wait and then you can log in all right now that you've created an auth zero account or if you already have an auth zero account log into it right now this will take you to the dashboard for your auth zero tenant now an auth zero tenant loosely speaking is a set of applications users connections and other information that you can manage using your auth zero account now when you log into the dashboard the first thing you're going to see is the getting started page it's worth checking it out a little more detail to find out what's available to you on your auth zero dashboard but we're not interested in that right now what we really want to do is we want to get started setting up an auth zero application within the dashboard in other words we want to be able to connect your android app to auth zero and we're going to do that right now so what you should do is find the applications item in the left hand menu of your dashboard and click on that that's going to pop up a submenu and from that select applications again this will take you to the list of applications that is under your account now in a brand new account there's only going to be one application in that list that's a default app that's auto generated when your account is created we could use it but we won't what we want to do instead is we want to start creating a new application one specifically for our android app the way we do that is by creating a new application you do that by clicking the create application button and it will ask for some details what we need to do in this window is just provide a name and specify what type of application it is in this case i'm going to give it the name android login and it is a native app so i'm going to select native under choose an application type and then i'm going to click create auth zero will take a moment or two to create your application but once it's done you'll be taken to the applications quick start page the quick start page provides a menu of starter applications for all sorts of operating systems and application frameworks including android ios desktop and various frameworks like react native and ionic and flutter and so on now you'll also see that there are a couple of android quick start projects that you can download but you've already downloaded a starter project so you don't need to do that we can simply jump to the settings page to configure auth zero and the starter project so that they can talk with each other the way to do that is to click on the settings tab on the settings page we're going to do two very important things one get information that the app needs to know about auth zero and two provide information that auth zero needs to know about the app there are two pieces of information that we need to work with first the domain and the client id now both of these are unique identifiers that help auth zero and your application talk to each other the domain which i'm highlighting on the screen right now is the unique identifier for your auth zero tenant it's how your app reaches auth zero you're going to highlight the client id now it also is a unique identifier but this is the unique identifier for your application it's how auth zero distinguishes one application from all the others auth zero's android library expects to find the auth zero's tenant domain and your app's client id stored a string resources inside your android project now to keep things simple the starter project already has a string resource project called auth zero dot xml in your project you'll find it in the resources folder let me switch to android studio under res the resources folder under values there it is auth zero dot xml i'm going to double click it so you can see its contents you can see that there's just a handful of xml tags in there whose values are placeholders with instructions telling you what to replace those values with so the first one is the domain value i'm going to go back to the auth zero dashboard and copy the domain value luckily there is a handy little copy button right there so i'm going to click that then i'm going to switch back to android studio and paste that domain value into the place where the xml file tells me to paste it which is inside the com underscore auth zero underscore domain tag so i will paste it right there that's my domain i need to go back to the auth zero dashboard and get the other key piece of information client id once again the client id field like the domain field has a handy copy button i'm going to click that go back to android studio and paste it into the appropriate tag which is com underscore auth zero underscore client underscore id a lot of underscores there anyways let me paste that value in and there we have it that is most of auth zero dot xml filled out you've probably noticed that there's still one placeholder value left in auth zero dot xml and that is the one with the tag name com underscore auth zero underscore scheme now what you should do is simply take the placeholder value and replace it with a nice short string called app and in a moment when we cover the call back and log out urls i'll explain what the scheme is for so right now just set com underscore auth zero underscore scheme to app you've given the android app the domain and client id and that's what it needs to communicate with auth zero what we need to do now is give off zero the information it needs to communicate with the app and it communicates with the app using two urls a callback url which it uses to communicate with the app to signal that a user has successfully logged in and a log out url which you've probably already guessed is what auth zero uses to signal to the app that a user has logged out now you're probably thinking wait a minute this is an android app it uses activities which you navigate to using intents not urls and things like that well you're absolutely right and in the case of android native applications the callback and log out urls are translated into intents to inform the app that yes the user is either logged in or logged out so what we're going to do in the next step is set up these urls the callback and log out urls are the same string and they follow the format that i'll show you right now you can see it on my screen here you can see placeholder values contained within curly brackets so the first thing to do is replace the scheme placeholder and if we were working with a web app the scheme would be something like https maybe http if we weren't feeling uh security conscious but anyways in this case since this is an android app it doesn't have to be https and in fact it can be anything i prefer to use app as the scheme just to make it very very clear that we're dealing with an app and we are not talking to a web application and that's why in the previous step you set the com underscore of zero underscore scheme value to app we're matching it here the next thing is the your domain placeholder and we are going to replace it with the domain of our tenant so i will copy it from the dashboard and paste it over the your underscore domain placeholder like so and then finally there is the app package name in case you've forgotten you can find the app package name in android studio under android manifest dot xml and if you've been following along or if you're using the starter app it is com dot oz zero dot android login so i will take that and replace the placeholder with that value com oz zero android login so this is the callback url it also happens to be the logout url so we will take this value go back to uh the android uh android dashboard and scroll down to the application uri section of our dashboard and paste it into two particular text fields allowed callback urls and allowed logout urls this completes all the setup we have to do on the off-zero side the last thing we need to do is just scroll down to the bottom of the page and click the ever important save changes button and with that you should see a notification that your changes have been successfully saved and we are good on the off-zero side it's now time to work on the app hey remember those values for the domain and url scheme that we defined a little while back in the off-zero dot xml file well we need to let the project know about them by defining a couple of manifest placeholders for them in the apps build dot gradle file and yes i remember in an android project there are two build dot gradle files the build dot gradle file i'm talking about is the one for the app so i have it open on my screen right now and we are going to add the manifest placeholders to the default config section i typically like to add it here after this first block with application id min sdk etc and before the test instrumentation runner part so i'm going to paste the line in here let me expand my screen so you can see the whole thing here we go so manifest placeholders just defines a couple of key value pairs basically telling the application yeah what off-zero domain is where it can find it and where where it can find the off-zero scheme note that this is basically telling the project that the off-zero tenants domain and its uh and its url scheme can be found stored in specific tags inside the apps string resource files so remember we defined that earlier in order to use off-zero you'll need to install two libraries first one is off-zero dot android it's a collection of libraries that enables android apps to use off-zero's apis including the authentication api which is the thing that lets you log in and log out users the other thing we're going to need is a library called j wt decode dot android and the app is going to use it to decode the user's identity information which is encoded in a j wt or a jason web token now we add these libraries into the bill gradle file which we're still at and it's inside the dependency section so what i'm going to do is i'm going to add i'm going to add a couple of blank spaces here i'm just going to separate out where i'm adding the off-zero specific libraries and i'm going to paste them right here to the end of the dependency section like so so this is the dependency for off-zero dot android and here is the dependency for j wt decode dot android now at this point anytime you make a change to a gradle file android studio is going to tell you hey gradle files have changed since last project sync a project sync may be necessary yada yada yada follow android studio suggestion click sync now one more change and then we can actually start coding and that is we need to enable the app to access the internet because of course the app needs to communicate with off-zero over the internet to enable login and log out and we enable internet access in the manifest file so i'm going to open android manifest dot xml and just after the opening manifest tag i'm going to paste in this tag the user's permission tag where we specify that yes this application does have permission to access the internet it's time to get coding after all that set up so let's do it let's implement login now in order to do that we need to open the main activity file which i have open on my screen right now now log in and eventually log out both rely on functionality from the off-zero android library so we need to import that so i'm going to expand the import section and i'm going to paste in the necessary import files to support what we're going to do there we go you can see right now they're grayed out they will lighten up as we start using them if you look at the code for the main activity class you can see that i've left some to-do statements here for some properties for the main activity class there are properties for the app and user status and for the off-zero data let's start with app and user status so i'm going to remove this to-do comment and i'm going to add a couple of properties the first one will be private late in it and it'll be a variable called account and it'll be a variable of type off-zero object the next one we're going to have is another private variable called app just launched and it's going to be a boolean that whose initial value will be true and then finally one more private variable called user is authenticated and that will initially be false so these properties that you just added account is an object containing account information about the app the app's client id and its tenants domain it's what we're going to use to connect to off-zero app just launched is a boolean that is true only immediately when the app is launched and false straight after that and then finally user authenticated is just what it sounds like it's true when the user is logged in and false when the user is logged out we need one more property to hold data about the user that we receive from off-zero so i'm going to add it here in the off-zero data section i'm going to get rid of this to-do comment and declare it once again private variable called user and it is an instance of the user class which is defined here if you look at the left side menu you can see that there is a predefined user class we'll look at it in just a moment but let's get back to main activity uh there it is now this is an instance of the user class once again it's per it's a data class and its purpose is to contain and decode identity information about the current user who's logged in we'll use the on create method which gets called whenever an activity is created to initialize a couple of things uh first we need to initialize an account object using the app's client id and the tenant's domain this account object is necessary for uh logging in and logging out and we'll use it in the log in and log out methods the other thing of course we need to do is connect the log in and log out buttons to their corresponding methods so uh let me do that right now first of all let's initialize uh the account property we set up earlier so it's an instance of the auth zero object and it needs the client id which we're going to get from the string resource we defined earlier com underscore auth zero underscore client underscore id that's the first one and then the second one let's see now once again we need get string r dot string dot com underscore auth zero underscore domain so that takes care of the account property the other thing we need to do is we need to connect uh the log in and log out buttons and we can do that by accessing binding and then we've got button login and we'll set its on click listener to log in and we'll do something similar for the log out button so binding button log out set on click listener to log out one more thing let's set the title text to its initial value welcome to the app and we can do that right here once again we'll use binding text view title and then we'll set its text property to the welcome to the app value that I have stored in a string resource so I'll do get string r string and it should be there it is initial title later on in the app when the user is logged in we'll change it to your logged in and later again when the user logs out we'll update it to your logged out now it's time to work on the login method which I'm going to build a little bit at a time scroll login into view and uh get rid of the to do comment and uh just begin now everything that we're going to do is going to hinge on the web auth provider object and what that allows us to do is interact with the auth zero authentication part of the library and the first thing we're going to do is we're going to call the login method and the login method expects one argument that account object that we created earlier what we're doing is we're doing some method chaining so as soon as we get back uh the returned object from the login method we then pass it to the next method which is with scheme where we specify the url scheme for the domain remember we define that uh we define the url scheme a little bit earlier in auth zero dot xml so we're going to pull out that uh particular scheme right now we're going to get it straight out of the string resource so it'll be get string r string com underscore auth zero underscore scheme we're going to take the result of the with scheme method and then once again this is method chaining we will call the start method and this is the actual method that starts the actual login process with auth zero and start takes two arguments the first one is the context of the activity that we're in so that's just simply the this value and then it takes an object which provides two methods let me just define the object type call back credentials comma and of course be able to must be able to handle an authentication exception and what this object needs to do is it needs to provide two methods one named on failure the other named on success so let me just define uh some stub versions of those methods right now and then we'll fill them out so that's on failure right there and i'm going to do the same for on success and uh you know what actually i'll leave it as this i was going to make these to do comments but might as well use the to do function let's deal with the case where on failure gets called now on failure is most often called when the user cancels out of universal login uh usually they're going oh you know what i don't remember my username or password like that they hit the cancel button and off zero returns from universal login back to the application um we're going to keep it simple and we'll just simply have the app display a snack bar telling the user you know what you have to log in if you want to use the app so we'll do that so i'm going to replace the to do in on failure with a call to show snack bar and i've already defined a string the strings resource that will show when the user cancels out of universal login so i'm just going to call get string r string dot and it should be login underscore there it is up login underscore failure underscore message and that's it that handles the on failure case it's time to implement the other method on success which is the method on the happy path it means that the user has successfully logged in and when that happens we want to do a couple of things which is one set the user is authenticated property to true and two call the update UI method two you guessed it update the UI so let me find this to do and we'll set user is authenticated to true and make a call to update UI now that we've done the login method it's time to code the log out method and just like log in i'm going to build log out a little at a time so once again log out just like log in starts with web off provider and then we're going to chain a bunch of methods together starting with log out now log out requires an account as its argument it's the same account object we used for login we also have to specify the url scheme once again that we're just going to get it from the string resources get string r dot string dot com underscore off zero underscore scheme so that's that and then once again we call the stark method and the stark method takes two arguments one is the context of this activity and the other one is an object providing two call back methods so i'm going to enter not call back but call back optional void and the other the other type is authentication exception and once i've done that i've got to specify two methods first of all the on failure method and the on success method and there we go that is the first step to building log out now on failure is rarely called as a result of logging out it means that something unusual has happened and handling this case is beyond the scope of this tutorial so what we'll do for the failure case is simply show a snack bar with a general failure message that i've actually defined if i let me show you here in strings dot xml uh let's see now yes general failure with exception code and it's a parameterized string what we're going to do is we're also going to show the error code so let me code that right up go back to main activity and let's code on failure that's going to simply be let me call the show snack bar method and of course we'll get the string from the resources it's in our string dot general general failure with exception code and we'll include the exception code right here so error get code and that takes care of the on failure case and now the happy path in other words if we're executing on success it means that the user logged out successfully and in that case what we want to do is we want to set the user is authenticated property to false and we want to call update ui again to update the ui to the logged out state so let's do that right now this is fairly simple this is user is authenticated and we set its value to false and we make a call to update ui and that is the on success case for logout finally it's time to update the ui so let's do that we do that in the update ui method so i'm going to remove this to do comment and we do two things when we're updating the ui one is that we update the title text tell the user whether they're logged in or logged out and the other thing we do is set the appropriate button states so enable and disable the login and logout buttons depending on the user whether they are authenticated or not so let's take care of the title text first so it'll be binding text view title text and of course its value is going to depend on if it's the user is authenticated or not so we'll use this style of if which coplan greatly provides for us and then if the user is authenticated we will set title view texts of value to the logged in title otherwise we'll set it to the logged out title both of which are values stored as a string resource so logged out title there we go that takes care of the title text now for the button states so we'll take care of the login button and it is enabled if the user is not authenticated which makes sense if the user is logged out they want to be able to log in and vice versa so we will do that for the logged out button log out button button log out is enabled set to user is authenticated and that's it for update UI all right moment of truth time to run the app so pull out whatever lucky charm you have hit the run button and say the magic incantation this should work and let's see what happens now remember you're going to need to create a user in order to be able to log in you can do that in the dashboard right here on the users page you can get there by selecting user management and then users and then click and create users the process is pretty straightforward but hey back to the app you can see on the emulator that we do have welcome to the app on the screen the login button is enabled so let's go click it I have already created a user using the fictitious email address rando at example.com and my super secure demo password by the way don't try to hack me I don't use this in real life and finally I will hit enter and try and log in and there we go we are now logged in the title text has changed to your login the login button is disabled and the log out button is enabled the app has communicated with auth zero and sent back some information specified yes this user rando at example.com is logged in to log out we simply click log out and we return back to the original screen but this time instead of saying welcome to the app the title text says you're logged out the login button is once again enabled and the log out button is disabled so yes not bad for a first run now the app actually has been sent information about the user and what we need to do is we need to extract it we haven't done that yet neither are we displaying it this next step in this tutorial is to take that user information extract it from whatever thing auth zero gave the app and then display it on screen so let's do that now remember when the user successfully logs in the on success method contained within the login method gets executed and when that happens one of the things we get back is something called result which is an object of type credentials credentials are a package that auth zero sends to your app upon successful login and one of the key pieces of the credentials is the id token the id token is basically digital proof that we've authenticated the user that's how we know that the user is logged in and we know who they are the other interesting thing about the id token is that it contains information about the user encoded with it and we can extract this information to find out you know the user's name email address other contact information that sort of thing let's get a look at the id token so i'm in the login method and i'm going to add a log here so i'm just going to tag it android login it'll make it easier for me to sort it out through all the stuff that ends up in logging and what i'm going to do is i'm going to take a look at a particular property of the result object result dot id token uh i need to import log so i'm going to do that right now and will that will run the app i'll log in again and as you can see i'm logged in but this time what i'm going to do is let me move the emulator out of the way i'm going to fire up log cap and take a look at what we've got here this got logged it's a bunch of digital gobbledygoo but let me grab it let me copy it and then go over to particular website called jwt.io jwt of course is short for jason web token and one of the things it provides is a jwt decoder i'm going to take the information the id token that i just copied from android studios log cap and paste it into the encoded window and take a look at what happens paste and take a look at the payload here rando at example dot com email rando at example dot com this is information about the user who is logged into the app we can extract this information from the id token and then display it on screen so let's set about to do just that to keep the tutorial simple we did set up a user class whose job is to hold user information and also decode user information stored within an id token so we're going to go to android studio hide the log cap window and let's get a look at that user class we've got the basics laid out here there's a set of properties that mirror the properties that you can get from an id token the ones we're interested in are id the user's unique identifier the user's name email whether or not their email has been verified the url for their picture which is stored as a string and a date string called updated that which tells us when the user's account was last updated when you create an instance of the user class it takes an id token value but does nothing with it right now all user does upon instantiation is set all these string properties to the empty string what we want to do is we want to take that given id token and decode it and then use that decoded information to feed all these properties so we'll do that with the help of library that we imported a little bit earlier when you create an instance of the user class it takes an id token value but does nothing with it right now all user does upon instantiation is set all these string properties to the empty string what we want to do is we want to take that given id token and decode it and then use that decoded information to feed all these properties so we'll do that with the help of library that we imported a little bit earlier the user class expects an id token when it's instantiated and we use that id token to fill these properties after we decode it so we will do that and we'll do that in an init block so what i'm going to do is get rid of the to do comment and this is one of those operations that might fail so it's the perfect place for a try catch block so let me set that up right here and let's see now for try i'm going to make it very clear that we're going to attempt to decode the id token and for catch it's handle case where we failed to decode the id token make it nice and clear so to decode the id token i'm going to need to create a value jwt and we are going to use the jwt object that is provided to us by the jwt library remember that's one of two libraries that we imported earlier the other one being alt zero dot android the authentication library so jwt expects a string and id token is a string optional so we need to reassure jwt that we are actually giving it a proper string and not a thing that could be a string or could be null so here's where the Elvis operator comes in so we're just reassuring jwt that yes you are getting an actual string it's either id token or if it's null empty string at which point we need to import jwt can do that right now there we go red text is gone and if we've made it this far in the tri block it means that we've actually successfully decoded the jwt and we can pull all this information so what i'm going to do is i'm going to cheat a little and i'm going to copy and paste the code that actually does the job but i will walk you through it what we're doing with this block of code right here is we are filling users properties id we we get directly from jwt's subject property the other bits of user information things about the user such as their name email whether their email address is verified or not the location of their picture and when their account was last updated we are getting via jwt's get claim method get claim gets specific claims from the id token and a claim put really simply is just a key value pair of information about a user so this is what we're doing here we're using get claim and we are converting that information from get claim to string and if it's null once again we're using the we're using the Elvis operator here i'm going to attempt to highlight it wow i am not clicking right today but anyways the Elvis operator here to say okay if it's null just set the value to the empty string this all this will fill the information for the user instance and then what we're going to do is we're going to grab it and display it to the user now for catch i want to do one little thing here which is i'm going to this is also going to be a copy and paste it's basically the exception for the catch and in this case we're handling the case where the id token we failed to decode the id token for whatever reason most likely it's not a value we fed it an invalid JWT and basically what we're going to do is we'll just say look so leave the user properties as empty strings there's no code for the catch block we're just simply leaving the user properties as empty strings so that's why i've got a comment here because there's no code i just want to convey what we're doing and why we're doing it so this completes the implementation of user let's put it to use back in main activity let's go back to main activity and make use of this fully implemented user class so i'm going to go to login first that's going to be the first place where we want to make use of the user and i'm going to get rid of the slog line and replace it with this id token and that will simply be result dot id token remember result is the credentials that we get back from off zero and we just want the id token property of that object we also already have a user property and we will use the user class to instantiate that user property by feeding the user class of the id token we received that's all we have to do for a login for logout we're going to do pretty much the same thing except what i'm going to do is i'm going to set user to an instance of the user class but this time not give it an argument what that does is that creates a user with blank properties so on logout what we're doing is we are just simply wiping out the user information that takes care of login and logout now what we need to do is take that information that we now know about the user and display it on screen we'll do that in update ui all right let's update update ui i'm just going to paste in this code because this is relatively straightforward stuff what we're doing is we are taking the information that is now contained in main activities user property and displaying it on screen we are updating some text fields we are loading the image view with the user's image and uh i believe we're done let's take this app out for a spin so i'm running the emulator right now the window should pop up any moment and let's log in so once again randoadexample.com and notice what happens this time uh not only are we getting the logged in screen but we are also getting the user's name and email address uh by default the user's name is set to their email address when you when you create a user inside the auth0 dashboard that's what happens and you also get this default uh default avatar which is basically a graphic with the user's initials or what auth0 decides are your initials it extracts them straight from the email address well guess what we are done you have just completed writing an android app that uses auth0 for login and logout high fives all around you've done well uh hope you enjoyed the tutorial


Hello everyone. I'm delighted to be here to welcome all of you to our panel on the Perils of Punctuation. As you can see just by looking to my right we have an all-star panel of extremely distinguished translators here today who will talk about the danger zone of punctuation and hopefully maybe the thrills of it as well. So just going immediately to my name is Aviyah Kushner and many I see many friends in the room it's really lovely to see all of you and that immediately to my right is Susan Bernofsky. We have immediately to Susan's right who someone even busier than well I would say writing even more busily than I feel that I'm writing is a Roan Ajee who needs some introduction. Just to his his right is Marion Schwartz and all the way to the right is Lisa Bradford. We're going to start with Lisa and looking forward to a fantastic panel. Good afternoon everyone if you're here you may be the dutiful sons and daughters of punctuation. I find it one of my pet peeves is people who write me high Lisa instead of high comma Lisa on emails I'm sorry I'm sorry but that's how he's brought up so I suppose a lot of you are rather persnickety and in my translations I'm also persnickety and I wanted to begin with a quotation from Adorno so that you would understand why I'm persnickety because I'm also a lover of music and he wrote in an essay there's no element in which language resembles music more than in punctuation marks. He said that an exclamation mark was like silent symbols clashing and question marks like musical upbeats and this is I think a wonderful notion regarding tonality and what we need to do when we're translating. However I translate an Argentine poet named Juan Helman who is also known for his non-use of punctuation. There are no commas there no periods very little capitalization. He uses slashes as either marks of apposition or breath beats in fact I've used slashes even when he doesn't use slashes to make sure that I can maintain his musicality so for me that slash is just part of language that I can integrate and use to ensure his musicality but I don't really want to talk about slashes today even though that's an important part of his poetic work. The only punctuation he uses in great abundance is the question mark and the question mark I once asked him when I was interviewing interviewing him why so many question marks because you see nothing else you see the slashes and then just question marks all over and he said well once when I was in Ecuador I saw graffiti on a wall and it said after I had all the answers they changed all the questions and this was particularly important in his work because in in his watershed volume color away which was wait a second I have to do this I'm sorry because I'm excited about it this book was just published this was out in the late 60s and it's just been published like a few days ago so it's my it's my pride and joy right now anyway this is when all the questions came up because he left the Communist Party and he left the Communist Party among other things because they were asking him to write poems about you know thematically and politically correct and he wasn't happy with that so questions began peppering his work throughout and it's a problem for a translator someone who translates into English in particular because most of you know that Spanish uses an inverted question mark to ensure the tonality of the reading this is particularly important in Spanish because if you say something like are you going to the party you're going to the party it's exactly the same because word order doesn't change it's just the emphasis the tonality that brings us that vas a la fiesta vas a la fiesta it's exactly the same sentence but when you start with an inverted question mark we know that it's going to be a question this poses all kinds of problems for students of English because they'll get a long sentence and get to the end and see that there's a question mark and all of a sudden their voice over and you know they haven't done the question all the way through we're also doing in my translation workshop Frank O'Hara and if you're familiar with his work you know he has a lot of exclamation points and and in Spanish he just looks hysterical because it's just you know you've got double-duty hysterical exclamation points throughout but in the case of Helman for the most part you know we have question words how win where and that sort of thing and we have our word order so for the most part I haven't felt any kind of need to deal with the inverted question mark even though it did exist in English some people tried to impose that too but it was already in the 18th century that it was established in Spain and taken up completely by the 19th century getting lost now because it's just one more thing to text so people are texting without the inverted question mark but Helman would never have have done that so we come to some of you have the example I had no idea we would have so many people here but there they're I came to a problem his very last book that was published before his death in 2013 was he began sending me drafts of those poems already in 2011 and they were called at the time condenas condena uno condenador condena tres because they were triggered by the fact that the executors of his son who was disappeared in 1976 were finally judged and sentenced and he had spent many many years wondering what kind of closure that would give him so it sparked this book he finally once he came up with the 288 poems which ponder justice and death and one other problem which has which followed him throughout his his writing career was what can poetry do to incite a revolution can poetry inside a revolution what is poetry good for at the end of the day all of his books have those questions that's one of the main questions in fact and he also worked off Hamlet a lot riffing off to be or not to be you find this in all of his books in one way or another so action non-action and that sort of thing so this book became just Roman numeraled finally it wasn't called sentences anymore it was instead called oy today but they're all Roman numerals 288 poems except for the very last poem and you have the very last poem there that begins with an inverted question mark and he this is his last poem that he published while he was alive well if it had closed with a question mark like would have been proper it would have given us a very different reading among other things because that he would have usually been accompanied by this gesture he and that's not he what he's getting at at all he's getting at let's read this as a continuation not only of everything I've written before but the rest of this poem is going to be closing at the very end here so I'm going to read it for those of you who don't have it I'll read it in Spanish first just so you can get the rhythm here he's if we're a loke it's on quite your part the enunga visa he's if we're a so we would end with a question may think that that can be easily translated but when we do it in English if there is no sign that this is a question when we get to the when we start reading this long sentence you know it could continue with a conditional it could have been and if poetry were forgotten memory of the dog then whatever but you have to go down there and you have to deal with his slashes his acquisitions so I've been struggling with this I was we were asked to talk about a translation problem with punctuation come up with a what was the word a pretty solution or something or nothing I don't know exactly what the wording was I don't I haven't published this book yet I'm still working on it so I don't have a solution yet and I'd really like to dialogue about this but let me just you see on the handout that I've I've tried and and I've tried and what if the what if it just loses all the brevity of this just one little mark and an E so I wasn't happy with that I thought about using the inverted question mark and having and I'm not really sure about this but I'll read it since a lot of you don't have it here this is how it should read and if poetry were a forgotten memory of the dog that mauled your blood a false delight a venerable fugue in me major an invention of what can never be said and if it were the denial of the street the manure of a horse the suicide of two keen eyes and if it were just some anywhere that never sends word and if it were so that's the last line that he published in his lifetime still questioning action still questioning justice still questioning the place of poetry so I'm very torn regarding this poem because I feel like I have to make a real statement at the end of this book and I'll just leave it there a few more things to say but I'd rather talk about it with you when we're done with all the panelists thank you that was lovely thank you so much Lisa next since she's closest to me I thought Susan Bernofsky would love to speak next okay okay sorry about that folks I hope I didn't break anybody's eardrums just now it's hard to be coordinated also I thought this was a panel about punctuality which I got that part right but no that's not true because I knew I was I'm filling in actually for for Jeffrey Buntrock who said don't talk about Adorno so apparently we have a pact that everyone's gonna talk about Adorno but I brought in I brought in different quotes from the same essay so Adorno has an essay about punctuation which is six pages long and really really interesting and it's part of his book notes on literature from 1958 and he has interesting things to say about history and punctuation he says and it's all very fraught because it's Adorno but I'm responsible for German everyone on this panel is representing a different language so we're all talking about punctuation issues in our language so obviously German I have to do Adorno right history has left its residue in punctuation marks and it is history far more than meaning or grammatical function that looks out at us rigidified and trembling slightly from every mark of punctuation so the history of punctuation or the historicity of punctuation is presented as something fraught and terrifying you know because it's Adorno right but he says some really interesting thing tracing the development of punctuation for him punctuation marks are yes like musical notation as Lisa quoted also he says they're like traffic signals in fact he says traffic signals are based on them they punctuate your drive right and he talks about the difference say between the ancient Greek semicolon which was one raised dot and its purpose was to keep your voice raised as you read whereas the modern one you know as a dot and a comma the dot wait right the dot lowers the voice because it's like a period but the comma keeps it raised this is the Adorno take on the semicolon which he says is truly a dialectical image and that reproduces the distinction between antiquity and modernity I quote finitude refracted through the infinite see semicolons are interesting semicolons are important to me because I translate from German and one of the things that happen that happens a lot when you translate from German is you have to deal with the fact that what in English is so cruelly called the run on sentence is not a problem you can put you know lots and lots of commas you can string it along you know you that's then you it's called a fluid prose style and both Robert Volzer and Jenny Alpenbeck who I translate love very very long sentences which are really a bunch of short sentences strung together but if you just throw a lot of periods up in there it changes the vibe of it because of something about this flowing this that that is part of the text and so that's something that you have to deal with but besides that I'm not I'm not that interest in punctuation I don't even know anything about it but I made myself sit down and write down some things so I'm gonna share with you the two things I know about grammar but I will say this which there's a couple of my former students out here which is which is terrifying because they've seen what I do in workshop which is whenever a punctuation problem shows up I say I don't know about grabber about punctuation and don't care which is not very helpful but here's what the thing is in my own translation practice I consider both grammatical structures i.e. syntax and punctuation basically just a delivery system for information so you know whatever complicated you know set of relative clauses you know if you're translating from German lots and lots of clauses all these structures that you have these grammatical structures I think they exist merely as this prop to put the elements of the sentence the actual images the words in the right order and hold them in that order so they hit the reader's ear in the right order and punctuation also helps with this ordering and also it helps organize the information so that you get little clusters of things that belong together and don't mix them up with the other clusters so I think of it really just as a delivery system so it's certainly something that in my view doesn't have to be translated one on one to one I have no problem with changing a punctuation totally but I think the order in which an author presents all information is a key element in that author's style and the nature of the work okay so here are some here are some German German things to think about so run-on sentences I said that already yes what counts is run-on in English is in German merely a particularly elegant sentence in a sense the commas are ye the commas in Germans you know that string together all those independent clauses they're basically being used like semicolons in English except if you have that many semicolons in English it really sticks out and looks a little formal and you know we we bristle a little at the semicolon it's not that popular let me quote Donald Barthamy on the semicolon some of you may know this Donald Barthamy says semicolon a semicolon is ugly as ugly as a tick on a dog's belly I pinch them out of my prose adorno on the other hand loves semicolons and he sees their demise as part of the decline of the you know the decline of civilization and he says they're being squeezed out for the sake of commercialism because a a semi the semicolon for adorno is not compatible with the commercialization of culture people seek semicolons and they think it's intellectual we know what he thought about that okay commas this almost doesn't even isn't worth talking about but German contains as anyone who's ever tried to read it knows at least three times as many commas as English because everything is its own separate little phrase or clause and every little separate phrase across has commas setting setting it apart you know commas from German to English are usually best translated by eliminating them like exclamation points which a German also way over uses way more I don't know is we could have the contest between question marks in Spanish and exclamation points in German so every sort of first-person imperative every imperative in fact like you know pick that up it's not pick that up it's pick that up and like let's take notes it's not let's take notes it's let's take notes you know it's all very perky the the whole the whole the whole German language is just full of them but the Germans are getting embarrassed about them and using fewer it used to even be that your your letter would begin dear mom exclamation point but this is falling into disfavor in the German speaking world to my great pleasure but Robert Volzer uses them all the time in fact I just translated I'm for the I'm writing a biography of him and they I'm translating the first poem he ever wrote at age 19 and it's called future exclamation point the title has an exclamation point you think Adorno likes exclamation points he's a fun-loving guy right he says the exclamation the exclamation point in German has become intolerable after it's overused by the German expressionists seen in German expressionists texts today they look like the multiple zeros on the bank notes printed during the German inflation all right on my list of German punctuation is the word den the word den d enn this is a word that might as well be punctuation it translates technically as four in the in the in the sense of four that is like because as in he must have been very weary indeed for he fell asleep straight away and this four has you know it's not we don't like it in American English anymore it sounds affected or foe old or we're trying to sound British or something and in German this is one of the most commonly used conjunctions because everything in German is very logical on the other hand you can't translate it really is because because because is a stronger causal connection than this den or the English for the four since you know there there's a continuum like four is not as is the weakest causal connection since is a little stronger because is the strongest I mean I'm not a grammar and I'm just saying that's how I think it is that mean it may not be true but there's a sense in which if you translate this a word like this you're adding logic to a sentence that in in the original didn't have so much logic in it and that's kind of that's kind of interesting so I often translate the word den meaning for as a colon or I leave it out because it's really just a way of saying that these two sentences you know he must have been weary indeed he fell asleep right away do you need a word telling you because maybe what if you put a semicolon in there so I think that this this notion that we have that punctuation and words are definitely different things maybe isn't always true I don't know alright I'm gonna end with the dash I am convinced that the dash is the translator's best friend because it's capable of fulfilling several different functions so it can substitute for those nasty little commas in the run-on sentence if you're sick of semicolons you can put some dashes in there it can fill in for a colon if you're overusing them it can translate the word den or for so if it fill in for a semicolon fill in for a colon adornal likes the dashes he says literary dilatants can be recognized by their desire to connect everything and that's very smart you know forcing the appearance of logic where there is none so a dash links things without the pretense of connection and in German the little words that set things up in logical relation to one in another come as naturally as breathing and if you translate them into English you're creating a greater sense of pointing out connections and pointing out logic than was there in the original so that's all I have to say it's not so much but fortunately there are other people talking thanks okay well I'm honored to introduce Aaron who is a very distinguished translator from the Turkish and let me just take a commercial break and make sure that everyone in the audience knows the languages that we're talking about our own is speaking from Turkish coming up will be Marian from Russian and I'll speak a little bit about Hebrew I want to commend everyone for really concentrating on the nitty-gritty of punctuation it's not that easy to comprehend especially when you don't speak the language so I want to recognize that and I also thought I would before our own starts I'll just take a commercial break to say that when I first saw the title of this panel I thought it was really fascinating and I thought when Susan just said something very interesting about how punctuation and words you know she's not convinced that they're the same you know maybe what's the relationship are we talking about punctuation are we talking about words and I just finished a book about the experience of reading the Bible in English after a whole life of reading it in Hebrew and I can tell you one of the first things that I noticed one of the first things that really shocked me was that the Bible in translation has punctuation the Hebrew does not and so I really started to think about how punctuation is really about meaning and so I encourage you even if you don't understand even if you've never seen an inverted question mark or whatever the particular punctuation mark that we're discussing to think about how punctuation and meaning intersect and after we all present we'll have some questions about that thank you well pretty much you give my talk you did you did no no yeah of course next time we're going to have an entirely new panel on emojis wouldn't it be nice I was just thinking about it no it's a beautiful segue you know a student of mine said why can't we have one translation theory that just applies to everything I said because every translation act is an encounter of two incommensurable languages and to come up with a theory that applies to every different pairing is really nearly impossible but I think punctuation especially sort of resides in that gray area between those two languages because you know the author that I often translate says that a literary a great literary text simultaneously is engendered and engenders the language that makes it possible so so a literary text simultaneously is engendered and engenders the language that makes it possible so in a way there is a generative relationship between a text and it's the process of creation and in fact it generates its own language so that is what happens in the act of creation right in the act of the original production so when that text is entering another language we often makes them miss make the mistake of thinking of the receiving language as a very stable entity whereas really the same kind of intrusive regenerative relationship has to be established when we are moving into the next language so what that means is playing fast and loose with English punctuation which is very relatively stable compared to Turkish as Avi was saying Turkish is itself an invented language modern Turkish it has a 90 some year history before which it was written in Arabic script and did not have a developed punctuation system and even today if you were to purchase two or three different newspapers in Turkey you would find that the punctuation system is still quite unstable and so to move that and to also try to sort of think about the punctuation in terms of meanings in Turkish itself becomes a difficult task because they don't have direct correspondences so that's one of the issues that anytime I'm translating from Turkish to English I have to pay attention to and another one is the fact that when a text travels from Turkish to English it gets longer by 20 percent there is an enlargement effect that happens because the structure of Turkish language it's an inflected language and and so you can in fact create a paragraph worth of a sentence in one word sometimes by stringing together these suffixes so Turkish also has a vowel harmony so certain I mean almost always a word will have the same kind of vowels so it is very easy to create sound in Turkish a sound structure sound texture in Turkish and so to move that into English where we really are thinking about sounds as you know an amalgamation of words rather than an amalgamation of syllables and more complicatedly an amalgamation of syllables words and punctuation marks that whole thing has to be somehow deconstructed and reconceived not just reconstructed but a reconceived I think and you know and that's really part of their incommensurability if you will so the other thing that needs to be paid attention to is that in Turkish meaning is also forever deferred until the very end of a sentence and a sentence can be very long because the verb does not come until the very end in Turkish so all of these really go hand in hand with how a Turkish reader approaches or comprehends punctuation marks versus how an American reader comprehends them when he or she sees them on page so what I have tried to do is actually use punctuation marks as if they are also sound units as you were also saying they are they they participate both in the phonetic but also the semantic content of the work especially in the work that I translate who is a hyperobjectivist writer trying to in fact approximate the duration of an experience in the duration of narrative so his use of punctuation and all the other properties of the Turkish language that I mentioned really become part and parcel of understanding what he is describing so to do all this to to to to offer you a chance to make sense of all of these disparate notes I want to read to you two passages from from this book it's it's a book that describes three individuals taking three walks the first individual let's say takes a walk that is half the length of the second individual and the third individual takes a walk a third of the length of the first individual this is like a GRE question and they all wear the same color socks no now the same parity exists in the length of the narratives so the first section is almost half the size of the second section and the third section is a third of the size of the length of the first section so there is this incredible attention to every sentence somehow corresponding to some kind of a physical experience out there outside itself so I'm going to give you two paragraphs and I will read Turkish and then English is that she loves it tweet that all right we're being tweeted by the way yeah there's Rachel it's pretty frightening but that's okay okay so this first one is the beginning of the novel and we have the character approaching an island after a night long rowing of a boat and he is nearly exhausted and the island finally becomes visible as the day is breaking so listen to the movement I know that there are a couple of you who understand circus, but I think you all understand the movement of an exhausted person rowing a small boat. Here is the English. He turns to look ahead. He must be getting close to the island since the dark imposing mass of its rocky peak has grown more distinct in the advancing dawn. His exhausted arms pull the oars with the numbed ease of a body that has grown indifferent to thought or will. He can hardly hear sounds. The oars plunge into the water, with throw plunge again. The sea tears open, yielding to the boat. Men's itself in the morning calm. So to do this I sort of try to imagine what must be physically happening. What am I seeing here? And what am I hearing here? So I use the punctuation in order to sort of emulate what I imagine to be the rowing of a very exhausted man who is increasingly insensate. And the other one, just to give you a sense of another challenge in Turkish, that is the infinite, the infinite sentence is very famous in Turkish. So here is one. This is in the second section and sort of, you know, ranges between philosophical but also very physical in description. And it actually is reflecting or representing the mental workings of the narrator. And it's one sentence. So now this is really a painting, a mindscape with words and punctuation. And I try to sort of move it to English. And now you will understand what he's saying. But also imagine the mental workings that I'm trying to also represent here. Just as no one knows exactly where the sun rises or where it sets, conversely, just as everyone knows with reasonable certainty the path the sun follows during the day, just as the sun hanging above you at the noon hour is among the few things you know with absolute certainty in this world, so do the farthest reaches of the walk vanish into the misty forgottenness of a certain fog covered meadow while near the midpoint, the summit, the noon hour, the brightest moment of the walk, memories gradually come into light. Then once at the summit, the walker caught in the acute brilliance of a piece of ice that refuses to thaw, beholding the point where the arms of the sea converge, the walk attains a kind of eternity that defies all other memories. So this is a sentence that is very trying for an angular reader because it's all about deferral. But in Turkish, this deferral is not as bothersome because Turkish is understood very intuitively. Although the verb is at the end, we sort of have a sense of what we're getting to. But in English, this cannot be approximated in the same way. So as a result, I have to, in fact, use clauses to keep you interested by giving you bits and pieces of experience and information until the very last clause that is like a standard sentence that you understand and recognize. So that's it. That was wonderful. Aaron, your comments on how you can understand some of the meaning just from the rhythm reminds me of a beautiful comment from my teacher, the great poet Derek Walcott, who insisted that you could understand a good poem in any language. And as part of his attempt to convince us of that, he brought in a Hungarian poem by Radnoti and was like, okay, what does this mean? And everyone could tell that it was a baby rocking in someone's arms without an ounce of Hungarian. So I was thinking about that when you read your beautiful sentences from Turkish and your solutions to that. And next up, we have Marion Schwartz. Marion may not realize this, but I've been especially looking forward to her talk because I've been teaching the essays of Marina Tsvetaeva, and I've received a lot of questions from students about sentence structure and Russian impunctuation, and I can't answer any of them. And all I can say is I may have an answer for you when I return from Alta. So here's Marion. I thought this was going to be hard enough, and now you've added another burden to me. Well, I'm not going to quote Adorno. Everyone knows that. I'm going to talk sort of in a different vein more in my general practical, hands-on kind of way and ways that may be helpful to everyone here without any particularly lovely examples, unfortunately. I've translated a lot, just the number of the millions of words I've translated. I've translated all kinds of genres. And one thing that I think it's useful for translators, I think that's a useful thing for all translators to do, because it takes you away from the attitude about whatever language you're translating is that, oh my god, this is weird and amazing and lovely and wonderful, and I want to tell everyone how amazing and weird it is. When in fact, some of it's amazing and some of it's standard, right? And if you translate everything in your, from your whatever language you're translating from, and everything that's different from how English does it as being amazing and weird, then you're going to have a bad translation because you're not going to have any way to distinguish between what's standard language and what's special. And you're not going to get the character of the writer unless you can actually tell those two things apart, those very two basic things apart. Now, I think my strong feeling is that punctuation for all its similarities between, there are similarities in usage and in an intent of punctuation, I think every language uses punctuation differently. And first of all, the notion of copying punctuation is just, it's an unexamined view. If no one who's ever thought about it would ever actually, for any length of time, would do that, I hope. So what, there's a handout here, well I only had 20 and I've got one of them. And I won't necessarily get to those examples. I think of punctuation as almost a kind of element of grammar and that and that assuming punctuation is going to work the same way in one language and another is kind of like a false grammatical cognate, which is a really bad, there's so many things wrong with that term, but you know what I mean. I was thinking of, for example, the dash when a Susan was saying about using the dash to break up all the endless commas. Well, in translating from a highly inflected language, you're going to end up using a lot more dashes, m dashes in English, because that's the only way you're going to keep your antecedent straight for a long sentence, right? So that's something an inflected language like Russian doesn't have to worry about. It doesn't use an m dash to keep antecedent straight. So the punctuation mark I chose, I've actually talked about this punctuation. My punctuation of the week is the colon. I actually gave a talk on this maybe 15 years ago and there was a Russian translator in the back and it was for graduate students and I said, none of you experienced translators can actually participate. You can listen, but don't talk. And finally at the end, he was just bursting because I was talking about how really little we use the colon, particularly in comparison with Russian, and he said, but what about George Bernard Shaw? I thought, okay, well, anyways. So the colon appears a lot in Russian. It's used for many things that we, it's used for many of the same things we'd use that for. Mostly in English a colon is used to say, to present a list, you know, you're saying, and this is whatever's following, or such as, and colon, colon and a list. But Russian uses the colon for many other things and one of the things, some of the things are pretty obvious. Sometimes it's because it's used to introduce direct speech. Well, we don't do that. We use a comma. So you've eliminated a lot of colons already in your translation. But it does things, it also has semantic meaning as such as Susan was talking about with a den. It's used for to introduce the meaning because. And I've got an example here on that. And I've got really simple examples. The teacher, I can hardly say. I should have printed this bigger. The teachers were happy. So the way it works in Russian is the teachers were happy colon. The children spent nearly all their free time in the schoolyard. Now you can do that sometimes in English. I mean, you would understand that in English. But you can't do it every time. Then it just becomes a tick. It becomes something unusual and something special. So maybe yes, you will find reasons to use that for in a because situation. But most of the time it's not going to be, it's going to be because in English. The other way to check this is to go the other direction. For example, in this because situation, we say because a lot more than Russians say, you don't see which means because very often in Russian, you see a colon generally instead. So you get the frequency of usage for something. And you see, and that helps you make your choice. Another thing that you can do that a colon does is, I don't want to do that one. And this is perhaps the most interesting one is that it can introduce subordinate clause. Russian often will avoid using that or which. And instead of introducing what we would consider that or which introducing with that or which they'll introduce it with a colon. And of course, this obviously turns up a lot. So if you have a whole if you if you don't use that and which for relative clauses in English, you're going to have a very odd sounding language. I think I'll probably leave it at that for for examples of this because I think we want time for questions. Yeah. There are other there are other issues of tone. For example, Russian uses ellipses ridiculously to our mind. Of course, Russian also says alas. And, you know, I've never I've never been able to use alas. I always think I can just get one alas in the book. But and then I never never lasts. But we have a very limited use in use of ellipses. We use it to mean something's left out occasionally to mean occasionally it means drifting off. But Russians are always drifting off. They are constantly drifting off because there's some higher meaning somewhere, I don't know where only a Russian can tell you. So your the point is you're doing your author a disservice. If you don't highlight what's wonderful about them, presumably you're translating an author that you think is wonderful. So find out what's wonderful and not what's normal and and use what what tools English has to make that clear on what they're doing. Thank you so much, Marianne. And I have to say that finding out what's wonderful and not what's normal seems like great general advice for life. Right. I just stick with it that way. I just wanted to give you a brief window into what happens with the Bible and translation. So what I'm going to do is I'm going to read the first two lines of the two verses of the Bible in Hebrew. And then I'll just read two translations and I'm going to do it in a way I've never done before. I'm going to read it with the punctuation. Okay. And remember that in Hebrew there isn't some at all. And then we're going to go to questions from our panel so we can have a discussion about how things go across in different languages. Okay. So here is what the Genesis one one to two sounds like in Hebrew. Okay. Here is the King James from 1611. I'm going to read it with a punctuation. In the beginning, God created the heaven comma and the earth period. And the earth was without form comma and void comma and darkness was upon the face of the deep colon and the spirit of God moved upon the face of the waters period. Okay. Now let's fast forward a couple hundred years. The Jewish Publication Society translating much closer to the Jewish understanding punctuation wise. When God began to create heaven and earth dash the earth being unformed in void comma with darkness over the surface of the deep and a wind from God sweeping over the water dash. Okay. So it gives you a sense of how surprising punctuation can be in the Bible. And I think also how punctuation and meaning intersect. Okay. So my first question for everyone is just to borrow a little bit from Edith Grossman's Why Translation Matters which is a fabulous book if you haven't read it. I was hoping that we could have, hear from our panelists, maybe you could articulate for us why does punctuation matter? Who can I hand to? It matters because it conveys meaning. And if it's not just decoration it's meaningful. And any element of the text that conveys meaning is important. It matters. I just leaned over to Susan and I said that in the King James Version it feels as though one of the earliest things God created were the punctuation marks. Did you notice how many of them were just piled and the Jews of course were always very dashing right dash dash that's it. You know one thing that I want to sort of problematize a little bit and that is if we are really talking about bringing all these different languages into English all these texts into English I'd like to also see us force English out of its comfort zones every now and then. I agree with you 100% that you cannot put colon as many times as it appears in the original and you mentioned every now and then. But you could do this in a way that does draw some attention to itself. So it's to almost give the reader a chance to reflect on whether colon could function differently from what is expected in English. I think what's fascinating example you gave there and how it was read and what occurred to me is that you know we read the King James Version in prose and I think those commas were really you know the idea of breathe you know recite this properly give it time and that's what I see in poetry oftentimes. I agree that there's meaning there but also since I do poetry there's musicality there and you have to give it time. And I want to know now if translators into Russian add colons they must write translating from English. You know I wonder if there was a moment when you began to realize just how important making punctuation decisions is for a translation. Was there a particular moment in your translating practice where you thought oh gosh or was it were you always aware of it just naturally. I know that I first started out translating all the punctuation from all the German text I translated and I felt that not to do so would be a betrayal of the text and you know unfaithful translation. I translated like that for quite some time and I think every editor who saw my work would look at it and go crazy because you know it wasn't interesting in English it was sticking out it was translating the normal as if it were wonderful and it wasn't wonderful. So I think I think at some point I began to believe my editors I hope it wasn't too long. I realized that when I reviewed translation into Spanish and it was Jeanette Winterson's The Passion and it's a very lyrical novel and she breaks up sentences constantly for that reason to make it lyrical and the Spanish translator had as we tell our students you know don't leave those choppy sentences put them together and she was put together constantly so you couldn't read it as poetry. I just wanted to say I agree very much with Lisa about the punctuation being used as a rhythmic cue. One of the things that Russian does that's also again a normal thing is that they do what we call a comma spice and you can do comma spices occasionally in English for those reasons if there's a rhythmic reason and in an acronym there's a bunch of that where you have these this kind of mounting accumulation of independent clauses separated by commas and it's definitely rhythmic but if you have if you never put an end between the the clauses then you're you're falsifying the original original text. I think it was during translating this particular work that I became much more acutely aware of the importance of punctuation. I was in Ankara and I had finished a draft of this work and I was in Ankara giving a talk about Bilge Karasov and a physics professor approached me who turned out to be an avid reader of Karasov and he said so what are you going to what are you doing with the conjunction and because this author never used ve in Turkish so I just said oh I said you can't do that in English I just let them in and he looked at me like very disapprovingly and I come home feeling extremely guilty that I sort of did what most novice translators do which is come to the defense of a mistake by making it seem like deliberate that I apparently thought about it I hadn't so I removed 545 ands but now you can't just pull them out so you have you have to sort of because you know they were also part and parcel of the phonetic structures I had created right and you can't just make you know create all those comma splices but by the same token what also it made me realize is that and is one of the most carelessly used conjunctions in English it stands for myriad relations and so removing that just somehow revived my punctuation marks and my approach to syntax all together well and I just want to say that and is if you're into the bible is such a good thing to obsess over because in Hebrew and isn't a word but a letter so needless to say just adding all the ands in the bible you said you remove 545 ands just any ands in the bible is an addition and just think about what that does to the rhythm to the feeling everything else is just a very different thing I want to leave time for some audience questions are there any questions from the audience I'm happy to hand the mic I know the acoustics in this room are challenging so if there are any questions I'm happy to hand you the mic okay please I want to know what you all think about experimental use of punctuation in one language to experimental use of punctuation into English have a field day I mean if the I think everything that we were talking about really applied above all to authors who are using a kind of normative approach to punctuation within the languages they're writing but the moment an author is playing with that of course play with it in English yes you have permission do it I doesn't have anyone here translates Arabic I learned recently that Arabic is itself very conservative but they are they have no rules for punctuation and so you'll get like three commas and an exclamation point or a dash and just and I and I was it was a class I was teaching and I said well what do you do about that how do you know what it means and she said you know it's it's just intuitive and so they do that all the time it's their one outlet punctuation as their outlet which was really wonderful for me to hear I'm I want to say something because every experiment is not just the divergence from the norm but it's a reason the divergence from the norm it is iconoclastic but for a purpose so I think you have to first identify the purpose that is being served in the original and then approximate serving that same purpose in the English any other questions terrific I'm just going to answer your thing about the Arabic because it's not quite like that it's yeah it's not quite as I felt like I should jump in yeah I mean because Arabic I guess similar to the Hebrew that you're talking about with the ands has usually used words instead of punctuation right so that's kind of the tradition is that you have words as punctuation and punctuation has come in much more recently so yeah so it's not really that there's a kind of eccentric tradition is that there's a very recent eccentricity in punctuation so if you know I mean it's not like inherent in the language I mean William can probably speak to it more wow well thank you for clarifying that thank you for adding that's our discussion any other questions anyone well I'm back here maybe no you have a question oh no okay I wonder if our panelists have I think we have time maybe for a question from each other if you if there's something you want to ask someone else now is your moment do you want to ask any of the other panelists a question that was your moment really feel free the mic goes to you how many of you would think that using the inverted question mark in the English translation would be positive thank you I mean in the poem that I'm especially because it's Spanish and so so many of us understand it well that's a wonderful story thank you so much for sharing anyone else want to share their punctuation moment you have a couple of seconds left if you if you want to want to do that is that correct somewhere so three ten oh we have five minutes okay so if we have a little oh question a story so I was teaching a seminar on Kafka with students both in reading in English and in German and they were put off by the amount of work that I was assigning and they told me that I also had to write a paper and they assigned me the topic of the semicolon in Kafka which I then produced accordingly but I actually sent it somewhere and got no response but I might have to now I'm going to revisit this and see so I'll send it to you Susan that's wonderful that's wonderful you know just seeing Scott reminds me that as someone who reviews a lot of translations I would say that this is something that does help a reviewer if you're going to do something exciting punctuation wise that isn't familiar to an English reader I've actually found that the translator's notes where the translator discusses that are really helpful and help me understand what's going on so that I can tell the difference between a mistake and something intentional something that's that's going on so really I think that's something to think about too is to be able to articulate what's happening I also wanted to say that I think Aron's comments reminded me of Benjamin you know the idea of expanding the language that you're translating into is a good thing it's a good thing um last call I see a hand so I'd like to ask the panel about their experience in translating poetry so for example back to the Arabic case in poetry it's known that it's the in Arabic poetry at least it's known that poets have a lot of freedom in in placing their commas and punctuation wherever that you want and I wonder what would your approach be to translating poetry with punctuation specifically would you be more conservative what would you do well I think Lisa this has to be you well first of all I have done that type of poetry too and if I can find a system if I can find a comma that means something and I realize what it means then I would try to create an analogous situation frankly if there's more punctuation than needs be and I'm seeing that that's because you know somebody's asthmatic you know I would I would try to do that in in the English version I think whereas in my case Hilman does not use it the only thing he uses is the question mark in the slash then I try to create an analogy if it works in English whatever works in English but you have to understand what the poet's doing if there really is a system there and try to create it again an analogy in the punctuation that's what I do and if I may just add because you mentioned consistency and that's really critical um you know you have to give your reader time to understand why what is being what's happening on the text is happening and then they will in fact play along about this and business I have a very funny anecdote the editor said to me wow this is really a tour de force they still read beautifully your sentences except in two instances can we put them back in I said no because you can't put them in even once so it says again you have to sort of create your own system if you will punctuation system I want to just emphasize something that both Aaron and Lisa said but to kind of say it again to put it out there and and I think that we and the thing is this I think that we as translators often have the default setting when we're looking at something that another language does that English usually doesn't do to say okay well English doesn't do that so I'm not going to do it and I think it's important to be reminded that we should always ask the question is the author using it emphatically you know is it an important part of the work because sometimes you know we can make English to all kinds of stuff if it's appropriate I think that's a wonderful point and just to answer I'll just maybe end with the Bible since it's the most translated text that we have and I'll answer you for in terms of translating poetry I I think that one of the most amazing things about the Psalms in translation is how many declarative statements become questions and translations of the Psalms and I think that so I'm not sure if it's the brevity of the Psalms that makes that stand out more but I can certainly empathize with your question and it's something that I've thought about a lot and I wish all of us many hours of punctuation happiness in the future


Connor Newcombe here with Gettysburg head coach Peter Toner after a loss to Amherst in today's Mustang Classic and coach first of all Beginning of the game. You guys had two shots two goals in your first two possessions What worked there and then did anything kind of stall in that sense over the next couple of sessions when Amherst came back and then took the lead yeah, you know, we got up to a decent start at the face-off X we got a couple balls back in the ride and then You know, they made an adjustment at the face-off X that we really just couldn't couldn't figure out today I think we used three different face-off guys used a multitude of Long stick mitties, and I don't know the exact stats, but we were definitely Tilted not in our favorite that in the field. So I think the possession battle was definitely won by Amherst in between the 30s And the score would probably reflect that as we go back and look at the film Yeah, obviously Amherst went on the big run the 5-0 run to take the sixth goal lead You guys fought back and got it back to a goal You know what kind of fight did that show for your team despite not being able to tie it up and come out on top? Yeah, I mean we've put ourselves in this position in three different games this year. We've gone down big Happen in Salisbury happening Christopher Newport Certainly happened today and our guys are giving credit They keep fighting and chipping away and we got it within a goal And then we were hoping to kind of tie the game up and continue to roll But we just weren't able to do it. Unfortunately, it seemed like every time we got within one or two They were able to push it to one or two more and we just kind of ran out of time today Thanks coach for your time and good luck in Centennial play. Thanks so much appreciate it