One thing every business has in common is the need for a qualified accountant. And Suncoast Technical College's accounting program can teach you the diverse skills you need to start your career. Learn to identify internal and external factors that affect how a business operates, along with knowledge of new technology, communications, leadership, diplomacy, and problem solving. Once you complete this program, you can articulate your credits with State College of Florida. Our administrative office specialist program offers the tools you need to become an administrative assistant or part of an administrative support staff. This program covers the performance of office procedural tasks, the efficient production of quality work using advanced features of business software applications, research of career opportunities, and the production of high quality employment portfolios and job seeking documents. Students who complete this program are eligible to articulate their credits to the State College of Florida. Florida is on the verge of a new housing boom, and new constructions are all around. And the one thing all these buildings will have in common is heating and air conditioning. Our HVAC program will train you in all phases of heating, ventilation, and air conditioning, installation, and maintenance. Upon completion, students will be eligible to earn NCCER Level 1 certification and begin a rewarding career. A Clean Air Computer Systems and Information program is step one to the Applied Cybersecurity program. Once the appropriate knowledge is attained, this program is a great way to prepare you for COMP TIA Network Plus certification, along with the Security Plus Technician exam. This course teaches a highly useful set of skills and will provide you with the information you need to pass these exams, and join one of the most in-demand professions of the 21st century. If you'd like to start a career in automotive body repair, our Automotive Collision and Repair program covers a large array of the basic, necessary skills you need. You will work hands-on as you learn sheet metal repair skills, frame and unibody squaring and aligning, the use of fillers, paint systems, and undercoats, related welding skills, glass services, and other miscellaneous repairs. Automotive Collision and Repair focuses on broad, transferable skills that will prepare you for employment in the industry. The Automotive Service Technology program prepares students for entry-level careers in high-demand areas of specialization, such as brakes, suspension and steering, electrical systems, engine repair, transmissions and transaxles, manual drive chain, heating and air conditioning, and way more. After completion of Automotive Service Technology program, students can begin their career, or articulate their credits to State College of Florida, where they can work towards an AA degree in the Science of Automotive Service Technology. Students in this program are prepared for employment as, or advancement to, an Information Technology Assistant, Manager Trainee, or Supervisor. The program offers a broad foundation of knowledge and skills, expanding the traditional role of the supervisor. The content includes communication skills, forms of business ownership and organizational structure, business law concepts, leadership skills, government regulations, human resources, and career development. Completing our computer systems and information program provides a well-rounded skill set common to the electronics industry. Students are prepared for the CompTIA, A-plus, and Network-plus exams. Students receive the background knowledge for a wide array of positions. Upon completion, students will be able to begin the career, or advance to our applied cybersecurity program. The Cosmetology program provides students with technical knowledge and skills, necessary to qualify for the Florida Cosmetology State Licenseer Examination. Cosmetology utilizes a combination of classroom theory and practical experiences on mannequins and patrons in our cutting-edge salon. Learn hairstyling and coloring, manicures and pedicures, facials and massage techniques. Prepare yourself for one of the most in-demand professions today in our Cosmetology program. In our Commercial Foods and Culinary Arts program, you will master a variety of specialty and exotic dishes. Train hands-on with master chefs in our Save the Art Kitchen and Bistro 502 restaurant. As you learn skills of preparing, storing, and serving food. After completion of the class, students are ready for employment. As a restaurant cooks, or you can advance your career through our articulations with Johnson & Wales University, State College of Florida, University of South Florida, or the American Culinary Foundation. Well-trained customer assistance professionals are in high demand in almost every business. Grab customers' attention through the exceptional customer service skills that you will receive from our Customer Assistance Technology program. Be ready to work in finance, insurance, real estate, healthcare, arts, and entertainment. You will be prepared to work in the busy office environment of customer service. The digital design program offers a broad foundation of knowledge to prepare students with the necessary skills for employment and digital publishing positions. The content includes enhanced practical experiences in computer-generated art and text, graphic design, graphic production, electronic design skills, preparation of electronic layouts and illustrations, and electronic scanning and development of specialized skills in both print and web page development. You will become proficient in the Adobe Creative Suite software and become qualified to sit for the Adobe Associate Certification as you prepare to begin a rewarding career. Do you have an interest in the exciting world of video production? Well, Suncoast Technical College has the program for you. Digital video production. It will train you in all aspects of video production. You will work with actual digital video equipment and learn skills such as script writing, camera work, camera presence, lighting, audio recording, set production, and editing. Meet top professionals in our area and produce actual films, videos, and television programs. Our State of the Art Drafting program offers training for students who won't work in the architectural, engineering, construction, or manufacturing industries. Work with professional equipment, learn blueprinting, and prepare to begin working in one of the most in-demand professions today.  If you love working with children, the early childhood education program can offer you the skills you need to get a career as a preschool teacher or director. Through hands-on experience at our Tech Tots preschool, students will obtain all the appropriate child care training to work in child care immediately upon graduation. Completion of this program makes students eligible for higher wages and supervisory positions in the child care field. Child care workers are always in demand, and Suncoast Technical College can train you to begin a career and help shape young lives. If the world of emergency care appeals to you, the Suncoast Technical College's Emergency Medical Technician program is the place for you to begin. With state-of-the-art medical training facilities, you will gain hands-on experience and learn all the appropriate protocols and procedures for working in the emergency medical field. Graduate in the exciting career as an EMT and position yourself to advance and become a paramedic. Our firefighter program prepares students for entry-level firefighter positions in the fire service. Brain and emergency medical response situations like vehicle accidents, burning buildings and health emergency situations. At our state-of-the-art training center, learn how to control fires and work all the equipment and tools used by actual professionals. Graduate and meet all the requirements for certification as a firefighter. Interest in working in the legal field? Will the legal administrative specialist program prepare students for employment in law firms, clerk of court offices, corporate and judicial legal offices? The program simulates an actual legal environment and provides students with opportunities to work alongside actual attorneys and judges. Students will also gain the practical skills required to become the most efficient in the legal field. We live in a major boating area and our Marine Service Technology program will prepare you for a successful career in marine technology. Learn how to maintain troubleshoot, repair, remove and install marine engines. Work with all of the state-of-the-art tools and equipment found in the marine industry and prepare for employment as a marine engineer and motor technician. The medical administrative specialist program can prepare you to work in a high-tech, fast-paced medical environment. You'll train to work with managing finances, insurance processing and office management. This program prepares you for employment in clinics, hospitals and other medical facilities. Get certified in computer applications used all over the healthcare industry such as Microsoft Office and become a much sought-after medical administrative specialist. The .NET application development and programming course offers the opportunity for students to be trained in a highly in-demand field of coding and computer science. You'll study writing code, testing, monitoring, debugging, documenting and maintaining computer programs and designing programs for specific uses and machines. This is the field of the 21st century and Suncoast Technical College is your ticket to a great and rewarding career. The nursing assistant program will prepare you for employment in a variety of medical fields. You will train in the classroom learning from actual medical professionals and you will work hands-on in nursing homes and other venues as you prepare for a rewarding career as a nurse assistant. At the end of this program you can take the nurse assistant examination for a certification to help you go even further in your career. Our practical nursing program provides you with a lot of care for both the physical and emotional needs of patients in a variety of settings. Upon completion, you will be eligible to sit for the state board exam to become a licensed practical nurse and you will be able to transfer your credits to community college or university. There is never a dull day in the life of a practical nurse. High schools, juniors and seniors can take advantage of our veterinary assisting program. Like all of our programs for high school students and many high school students you will work hands-on in our veterinary lab learning about external and internal animal organs, animal care kennel maintenance, veterinary assistant and introduction to veterinary medicine. Completers receive a veterinary assisting certificate and are prepared for entry level jobs in a veterinary office, hospital or shelter. Many completers continue their education at a college or university.


Good morning. Welcome to homecoming 2022. Go Bears! Oh, come on. One more time. Go Bears! Go Bears! Thank you. I'm Stacey Kono. I'm the vice chair of the board of the Japanese American Women Alumni, alumni of UC Berkeley, and we're so happy you've joined us this morning for this panel. Before we get started, we're going to do a land acknowledgement in UC Berkeley's tradition of acknowledging the land on which we are holding this event and that we want to honor the history of. I'm going to read this through. Before we begin this event, we take a moment to recognize that Berkeley sits on the territory of the Weaching, the ancestral and unceded land of the Chochenyo Ohlone, the successors of the historic and sovereign Verona Band of Alameda County. This land was and continues to be of great importance to the Ohlone people. We recognize that every member of the Berkeley community has benefited from the use and occupation of this land since the institution's founding in 1868. Consistent with our values of community and diversity, we have a responsibility to acknowledge and make visible the university's relationship to native peoples. By offering this land acknowledgement, we affirm indigenous sovereignty and will work to hold University of California Berkeley more accountable to the needs of American Indian and indigenous peoples. We know that many of you are spread throughout the world on the land of other peoples and would like to take the time to acknowledge the ancestral history as well. Okay. So again, welcome. Before we begin our program this morning, and since we're in person, I'm not sure how many of you have been in person events for over the last two and a half years, right? I want to do a bit of a roll call. So I'm going to call out a group of people and if you want to raise your hand, you can make some noise. You can even say go bears again if you want to get warmed up more. I'd love to first have our JAWA board members raise their hands. Woohoo! Thank you. Welcome. I'd love to welcome all of the incoming students who may be just starting Cal. Any of you here today? Welcome. If you graduated 2000 or after, could you raise your hand from Cal? Okay. Maybe online there are some folks. Okay. If you graduated between 1980 and 2000. Woohoo! Great. Okay. If you graduated before 1980, could you raise your hand? Yay! Welcome. If you're a family member of a Cal student, you want to raise your hand? Thank you. Welcome. We're so proud to have you all here join us this morning. JAWA, Japanese American Women Alumni, is an official chapter of the California Alumni Association and our work is to honor the recipients of scholarships and fellowships at UC Berkeley that come from our Endowment Fund. We're committed to growing that fund to support students in their academic pursuits. We support research, education and leadership development efforts related to our community and we seek to foster a community of UC Berkeley students, staff, faculty, alumni and all of our community members in service to our alma mater. Today, we're presenting a panel to you, Different Paths to Leadership, Japanese American Women at Cal and it's going to be a multi-generational conversation of Cal graduates who will share their unique stories and experiences with you of coming to Cal and what they're up to now in their leadership. First, I'm going to introduce to you our esteemed panelists and then we'll start the conversation. If we have enough time at the end, there may be time for questions but otherwise, I hope to have a really rich presentation and story sharing. To my left, I'm happy to welcome Leslie Tsukamoto who graduated in 1988 with her teaching degree and taught elementary school in the Vallejo Unified School District. I am so happy to be on the board of JAWA with Leslie. To her left is Dr. Lisa Hidai Tsuchitani who's a faculty member here at Cal in Asian American and Asian Diaspora Studies. She's the faculty co-chair of Asian American and Pacific Islander, the Asian American and Pacific Islander Standing Committee and recently completed her term as the JAWA board chair. And finally, Tara, who's in the very last chair, received her bachelor's and master's in social work at Cal and has been active in local community organizations here in the Bay Area and the Berkeley Buddhist Temple. Please give them a warm welcome. So I'm going to start with this first question. Since many of the folks here in the audience are alumni of UC Berkeley, and then we have someone also here who's just about to start. Can you each share with us what brought you here to Berkeley? And maybe we'll start with you, Leslie. Okay. Okay. Well, I was a returning student. Both of my parents were Cal alums. My father received his degree while he was incarcerated at Tanforan and my mother had to leave Cal also, but returned in the 1960s to get her degree. So I knew that continuing the tradition was really important for them and they were very pleased to see that even though I didn't do my undergrad work here, I came back to Berkeley to get my credential. I also felt that if I was going to get a credential, I should get it from the best institution that I could go to. So of course I came to Berkeley. I went into the ERA program in the Graduate School of Education and it had an extremely rigorous interview process. So I figured if they were going to accept me that I would get a quality education. I knew of a couple of faculty staff members and they had been so highly spoken of that I was very anxious to be accepted. Unfortunately I was. The program really was interesting. It was a very good mix of theoretical and practical pedagogy and I think it prepared me very well for a career change which was very different. I had been an administrator with Pacific Telephone, but I retired after 20 years, which gave me the opportunity to come back and pursue something that I had always wanted to do. But I must say that I always tell people I had many challenging assignments in the business world, but teaching was by far the most difficult career that I had had. But I certainly feel that I was well prepared to enter the teaching world when I left. Thank you, Leslie. And Lisa, what led your path to Cal? Yeah, thanks for that question, Stacey. I wish I could say that I was as intentional as Leslie was in finding Berkeley. I actually was all set to go to a sister UC campus where I had a full ride and housing. Then there was an intervention that happened. Sometimes you meet people in your life who see opportunities for you that you may not see for yourself at that time. For me, the late Helen Mineta was one of those people, one of my mentors at the time, who had encouraged me to see more broadly what possibilities existed. She was my history teacher as a junior in high school. She was an alum who was incredibly dedicated and committed to the principles and values of the university, having met some amazing people when she was here as both a student and a resident at the International House. And so she challenged me really to sort of think more broadly about challenging myself at an institution like this. And I'm very grateful for that mentorship that she's given me. I haven't looked back ever since. Did you know before you came to Cal what you were going to study or did you come in like many students sort of open to exploring? I actually came in as a declared math major. Yeah, I know. And for those of you who know me, that's quite... I know someone's actually laughing in the audience about that. Thank you, Marcia. Yeah, I actually failed my first math class that I took as an undergraduate student my first semester here. And I'm grateful for that experience, really.  But I'm grateful because it allowed me to pursue my passion or what I discovered to be my passion, which was the social sciences. Thanks, Lisa. And how about you, Tara? What led you to Berkeley? Yeah, so I guess the first time around for my undergrad, I chose Berkeley because it was the only school that I had applied to that had an undergraduate social work program. And at first I was kind of debating between a couple of schools, but then one of my teachers, a mentor, I was asking him and he was like, well, which one has what you're most interested in? And so he's like, oh, Berkeley's a no-brainer then since you want to go into social work. And then I had lots of family support as well because my dad and grandpa had gone to Cal and also a cousin and uncles. So they were very excited for me to go to Berkeley. And then I found my way back. I knew for sure that I wanted to come back to Berkeley for my master's in social work because I knew that Berkeley would also give me the opportunity to learn more about the meso and macro levels of social work and some more of the program, the policy, the community organizing, while most schools kind of focus on the micro, which I was also interested in, but I wanted to really kind of learn all the different pieces of social work. And then the social justice aspect of Cal really drew me as well. Thank you. Anything about your family's experiences at Cal? Did they ever tell you stories that also led you to go, oh, Cal's the only place I'm going to apply? Not really. I mean, my cousin was really excited about it for triathlon and stuff, but yeah. I did have a friend kind of joke. We have a house divided license plate because my mom went to the other school and he's like, oh, we should color in the license plate and I do. You chose to come here. You chose team Cal. Go Bears. Great. Well, for those of you, if you're coming back to Berkeley for the first time in a long time to the campus, you may have memories stirred up. For me, just walking into Sproul Plaza, I was remembering tabling for student organizations, being out there during lunchtime, all the music playing, the singing group singing, and just remembering all the people that I met. So the next question is about what's your favorite memories of Cal or what you took away from your experience? So this time I'm going to start with Tara. We'll go a different direction. Can you read the questions? Yeah. What? Let's see. Can you share what your most memorable experiences at Cal were? Yeah. I would say, apart from having two bus everywhere because we had a free bus pass because Uber wasn't a thing then and trying to catch the bus when you're five minutes early but it's already leaving or waiting for an hour, apart from those fun learning experiences, I think for me last year, my fourth year was really memorable because I joined or I decided to be on the board for the Nikkei Student Union and I hadn't initially planned to join. I was going to focus on volunteering at Children's Hospital Oakland and in Oakland Unified. I already had my plan but my friends were like, Tara, there's no one to take over some of these board positions, core positions and they might so they're like, you should apply and so kind of reluctantly I decided to help out with community service and it ended up being a really great experience because I was able to build these really great relationships with other core members for some context normally the core board was like 10 to 12 people and that year there was eight of us half of us had initially a plan to be with NSU and it used to be like 50 more people and then that year there weren't very many members but so we all kind of came together to really make sure the club was still there because it had impacted our lives a lot we had made a lot of connections there and so this core board we were kind of running around doing these different things we didn't know the ins and outs of the Berkeley side we could program do programming and stuff but other than that we didn't even know Professor Tutitani was our advisor things like that so I think today I still see a good core of them get food and things like that sweet it sounds like it was particularly memorable because of the load of work that you were all carrying to keep it going would you mind for audience members who don't know what NSU and Nikkei Student Union is to explain a little bit about the mission UC Berkeley or Nikkei Student Union is a Japanese American I don't really know what the current mission is but kind of cultural interest club a lot of the activities are around Japanese American culture as well as we do community service work and issues and really just a community to come together and connect thanks yeah Jawa has actually partnered pretty closely with NSU and it's been really wonderful to have alum and current students be connected in this way how about for you Lisa memories so many I just have to say before I start Tara thank you for letting me know I've been falling down on my responsibility as faculty advisors I'm going to make sure I reach out to NSU and support them in their important work so you know I've got a lot of memories here because I have been both an undergraduate student here and now I'm in a faculty role so when I was thinking about an answer to this question I just put a preliminary list of things down as a starting point so bear with me you know I remember the first time I taught a class here on campus and was mistaken for a student in that class which sadly doesn't happen now I have to say I remember walking across the stage at cellar over here to receive my doctorate as the first woman in my family to pursue and complete a degree in higher education I remember participating in an honorary degree ceremony in honor of 120 Japanese American students of the class of 42 who are not allowed to participate in their graduation ceremony as a result of Executive Order 9066 I remember working with those alumni of the Cal class of 42 to realize their vision of the cherry tree grove over here by West Circle and that was done to commemorate the legacy of Japanese American alumni here on campus and actually here in Polly Ballroom in 2019 I remember commemorating the 50th anniversary of the Asian American diaspora studies program here in front of a crowd and with a community of over 500 attendees and part of that celebration actually included the whole ballroom singing Happy Birthday to the late Norman Mineta who was having his 88th birthday a few days afterwards that was really wonderful so I'll stop there Those are wonderful, thank you demonstrates and creates the picture of the really rich history around Asian Americans and Japanese Americans here at UC Berkeley thank you Leslie, are there any memories you want to share about your Cal experience? Yes, well you know, my father was in that class of 42 so I remember being at the ceremony and it was very moving it was very important to him so I've always appreciated the fact that the university had the foresight to honor them because it was very meaningful when I started in the ERA program it struck me because about half of my classmates were career change individuals we had a small cohort group and in my group there was an architect an attorney and a nurse and there were also a number of other people that were coming from the business world so it was very interesting to me that I think it was apparent that not only was education so important but it was worth people doing career changes making career changes to go into education so I thought that was very interesting and I think it just reinforced the fact that I felt that I made the right career move I've been out of teaching for over 10 years now but I think the experience has served me well and I've never looked back was part of your education or was part of the program also teaching in the classroom was there sort of an additional what is it, hands on you have to do student teaching and I think that's for most programs whether it's through the state college or the university you do a six week stint in a lower grade for elementary teachers and a six week stint in a lower grade and a six week stint in an upper grade so I had the chance to do some student teaching in the Piedmont school district in a kindergarten class and then a six week stint in the Berkeley unified school district in a sixth grade class so that itself was quite an eye opener to see the difference in what happens in Piedmont what happens in Berkeley so that itself was an education thank you so again this panel is about the different paths to leadership and leadership not being necessarily becoming the president but leadership in the ways in which we're all making a difference and making an impact in our communities so this last question is really about what where you my glasses are really bad what path did Cal create for each of you to where you are now as you look back you had the different memories of the work with different student groups and your programs with just the experiences of connecting to your community what contributed to your leadership here and I'll start with Tara again so I guess kind of as I said before I didn't necessarily seek out leadership positions when I was at Cal they kind of fell like file into them a little bit both between Niki Student Union and the Social Work Undergraduate group they were both kind of about to die so I was like okay I'm going to help out with some other fourth year about to graduate students and I think because of my experience with the Niki Student Union that's actually how I became involved with the Berkeley Japanese American Citizens League because I was doing the community service work they're like oh Tara you also want to do our day of remembrance I'm like okay because of that that's how I got connected with the Citizens League or JCL the Berkeley chapter and I've actually been a board member since then leading kind of different civil rights activities we've done some panels and really trying to do more education in the community and also connecting with other communities and how we can support and then I think the other thing that Cal did is just by being where Berkeley is where the campus is I'm Buddhist and I stumbled upon the Berkeley Buddhist temple in my first year and so part of it was you know so close so I could walk to the temple and also how welcoming it was and so Cal kind of was able to provide me both kind of those leadership opportunities and also like this community that was really supportive and so now at the temple I've been able to be involved with their board and their community activities and we also started a diversity committee in 2020 Thanks Tara How about you Lisa? So I really appreciate the framing that you gave us about you know a definition of leadership because honestly I feel like my career and leadership are still works in progress are evolving you know that said as a man-grant institution dedicated to a mission of public service UC Berkeley I feel continues to offer such a plethora really of opportunities to learn to grow and to serve you know the program that I'm located in the Asian American and Asian diaspora studies program and the Department of Ethnic Studies resulted from one of the most violent and longest student struggles in the history of this country and given this history I really don't take lightly the responsibility that we as faculty and students have to make visible, meaningful and constructive our engagement with racism, settler colonialism economic and political inequities health disparities, climate change at the local, national and global levels for me fulfilling this responsibility also includes service on campus bodies such as the Asian American and Pacific Islander Standing Committee I have my wonderful co-chair here Marcia G. Riley and it's been such a pleasure to work in partnership with her on this we were created in 2019 as an advisory body to the Chancellor and her cabinet to lift Asian American and Pacific Islander undergraduate and graduate student staff and faculty issues I also serve on the Latinx thriving institution initiative steering committee and that is dedicated to realizing Chancellor Chris's commitment that UC Berkeley would become a Hispanic serving institution by 2027 joining five other UC campuses which already hold that distinction and of course it's been wonderful to work with the Japanese American women alumni of UC Berkeley I actually served on the board for over two decades and I don't think you'll ever be a more committed and fierce group of alumni who are very committed to honoring the legacy of the folks who actually created the chapter and in service of course to our campus so you know the work aside I really think that what I found most meaningful is the opportunity to meet some amazing people and for that I'm truly grateful so Thank you Lisa and Leslie will you share with us a little bit about what what path Cal created for you towards your leadership well my leadership pales in comparison to what Lisa has done here but I think it really provided the opportunity for me to become a part of the Japanese American women alumni group it started with my mother actually she had been on the board for many years and got to an age where she didn't want to drive so I would drive her to the meetings and she would have to stay but having been a Cal alum I eventually became a board member and have been for the last 12 years maybe so although I don't consider myself a leader I consider myself an active participant because I think it's a very very important organization and the history of the Japanese women that have gone to Berkeley is so important that we really need to honor that to keep that alive and we do do that through our endowment fund by honoring our alumni outstanding alum every year hopefully we'll have an in-person event this year because we've had wonderful speakers and if any of you are interested I'll throw in my pitch for check our website jawcb.org and read all about us so I can't emphasize enough how important this organization has meant to me and to my mother and most of the women like Stacy that served on the board so thank you and you're so humble Leslie you just actually modeled leadership in inviting this audience to check out Jawa and be a part of supporting something greater so thank you for all your leadership in Jawa that you've brought and all the mentorship and coaching and cheerleading you've brought to me in your role on the board maybe I'll add to just from my personal experience that I was created in 1995 and my path to leadership I don't think I would be where I am now without Cal I currently am an executive director of a national non-profit organization that's working to bring dignity and respect to domestic workers, nannies, house cleaners and home care workers a largely women of color population in this country that because of labor law were excluded from labor protection so the current day conditions of low wages little health and safety protection, sexual harassment on the job, discrimination the reason that they cannot really pull down on those laws and rights that so many other workers can is because of the racism that excluded black workers from labor protections back in the 30s so part of my work today has been to really end that exclusion and lift up the work of child care workers, house cleaners home care workers and our families and in our lives and I don't think I would be here without Cal because here I learned about the history of racism in this country, here I got to connect to workers rights organizing here I met with other students who brought their immigrant stories me, I'm second generation third generation so had some distance from it but was really able to learn so much that deepened my commitment to be a part of something greater and to spend my time to actually work for change as all of us have in lots of different ways on the very local community level on the university level within our families and for larger policy change so that's what led to my leadership path maybe I'll just add another question on I know we have at least one new student in the mix but maybe more have joined us since we started the program I wonder if each of us have a piece of advice for new students coming to Cal it could be a simple tip like hey make sure you check out Durant Square because there's usually really cheap food it could be something far more profound could be where the best we can get the best copies rate I don't know anyways any tips and actually if the audience wants to join in with tips to think about it is there any tips you've got I'll let you this is a surprise question to them I didn't prep them so I'm going to give them a few seconds to think about this I think my tip would have been about does yogurt park still exist okay check out yogurt park if you haven't yet it's on Durant and you can get really good sauce or frozen yogurt um does any of you want to start with your it doesn't have to be a single tip it can be multiple tips to make the best use of their Cal experience since this is homecoming thanks Leslie I think like anything else in life I think especially when you're a new student you're very involved in your class work your course work and things but I think it's important to reach out to other people to pursue all the opportunities that you can to whether it's a joint an organization like NSU um there are so many different student organizations um whether it's something that's academic or whether it's something that's social um you know to really put yourself out there to get the best experience that you can um because you'll never I don't think have a better time in your life where you have an opportunity to join to meet and to learn take advantage thanks Leslie I can go so I guess a couple thoughts came to mind one was ask questions be curious ask for help I think you know when I was an undergrad I was really struggling in econ I still probably would because I don't understand it but I didn't realize I had a couple of peers and I could have reached out to them and I had no idea and so yeah I would say whether it's a graduate student instructor but if that's too intimidating maybe a peer or maybe one of your friends has a friend so don't be afraid to ask those questions and ask for help and that kind of leads me to the next point we're not really we're not alone and we have Berkeley is big and so that can make it really intimidating but something I've learned in terms of like leadership is a big piece of it isn't you know like leading it's more the connections to others it's more about the teamwork and collaboration and being able to be accountable for ourselves and others and so I think my other thing that I've learned along the way especially in Berkeley was the importance of those connections and teamwork yeah thank you that's all wonderful advice I wish I had had that when I started here and it's a great question so thank you for that gosh you know I would just echo what Leslie and Tara have said about you know making the most of being here it goes very quickly I think and there are a lot of opportunities to pursue I guess from the more academic side if I may I would just ask folks to come to office hours and talk to us because we're human beings and we are actually committed to your success we really are just come in and talk to us really we're here to help as faculty I think too what I have heard from students often and that has been consistent is like self-doubt is something that I think permeates this campus it's so huge it's so intimidating right where the number one public university in the world I guess I would just ask students who are coming in and who are here to remember that you are enough no one made a mistake admitting you into this institution you deserve to be here own it right don't wait until your graduation day to realize that I think that once you settle into that identity you'll just be able to pursue so many more things than I think you might imagine are theirs for you to imagine and grasp so that would be my advice those are wonderful thank you all maybe because I know we still have a little time on our clock for this program and so many of you are alumni too is there pieces of advice that you would give the entering class into Cal again it can be very deep and profound or very superficial like mine and yogurt park we can pass the mic around football game related since it's homecoming weekend it could be housing related since that is really hard to figure out in this city school stuff lessons you learned remember to go also to the discussion groups which sometimes I didn't and that's why I didn't do so well in a sociology class places to study places to study anyone suggestions the collective wisdom on the stage is really hard to add to so I'm just going to say I think my mistake coming in as a freshman was not exploring more more resources I think there's so many resources that I did not take advantage of coming through the door I think one would be surprised at how many resources are actually available to students on campus you just have to look for them this isn't really a place that holds your hand through your career here and so it's really taking initiative I think that's super important and good support networks right within your major and outside of your major I think having that friend support mentoring relationship is what helps not to survive but thrive while you're here as you're all talking and thinking back to times in my dorm which no longer exists it was at the top of Dwight 10 years ago but there were six or eight of us who after about a couple months in the dining halls just gathered at mealtime, mainly dinner eventually made some trips to San Francisco in one or two convenient cars that someone had and about 20 years ago one of that group had a son who was graduating from Cal invited us to brunch to celebrate the occasion and summer along that time we also started gathering one summer weekend each year just to hang out and cook food and talk about times and when we were in the dorms as freshmen I was a freshman a couple of other sort of sophomores there was no way that I would have predicted and said oh yeah you know 40-50 years from now we've been together once a summer for a few days you just never know so cultivate relationships outside the major wherever you find people clubs because those connections and relationships you never know where they're going to lead and here we are this many years on and fingers crossed will be continuing wonderful thank you for that you're making me think of all the people I've stayed in touch with too through the years did I see a hand over here anywhere thank you realize when I started I thought oh everybody here is smarter than I am but they're not you know you got into and what you have to say is as valid as anybody else and so stick your hand up and in and participate and it's amazing what will happen um and take advantage of programs like I did years ago I did Cal in the capital and for 18 years my family went to the lair of the bear and the connections we've made from that have been astounding um take advantage of all that this place has to offer and you'll be so glad you did and I'm back here for my 50th reunion it's been 50 years since I graduated and I'm still married to my husband and we met through a program and we went to Cal in the capital and it's taken us all over the world and our connections have been amazing so take advantage of it I had my first exposure telling this fellow earlier today at 11 years, my dad went to Cal and my uncle was a stroke on the Cal crew team and Gregory Peck was his stroke and every year after that, Gregory Peck sent a Christmas card to my uncle for the rest of his life you know those kind of connections you just can't buy so take advantage of them and you know you use them because you never know you never know I would add consider Study Abroad although that takes you away from Berkeley and all that Berkeley has to offer it can be a really amazing experience in its own right I was an undergraduate here studying zoology and anthropology and ended up doing my junior year in Kenya so I was able to pursue those academic interests and then just getting out on Safari as often as possible the other thing I would just briefly put in a plug for the Discovery Initiative which is a new campus-wide effort from the highest levels of the administration on down to try to create pathways for new students to find their calling find their passion and engage in that both academically and personally and then culminate with sort of a capstone project for their senior year and it's forming in various ways right now one aspect of it is called Berkeley Connect which is a separate program that's been around for about nine years not every department has a Connect office so you'd have to check and see if it works with your major but the idea for Berkeley Connect is to pair it with a graduate student mentor who helps them navigate both the academic and the personal sides of being at Berkeley but there is a website for the Discovery Initiative I think it's discovery.berkeley.edu so new students check that out Thank you for that Any other tips? Pearls of Wisdom and way back Yes, thank you Mine is just be open to exploring things outside of your major again it's along the theme of exploring the campus because we just went to Professor Phillip Penko's lecture yesterday and I'm like, I had him in I think in 1991 my daughter had him last year and he was still phenomenal and so I think I had Alan Dundee's from Anthropology I had Marion Diamond from the biology department I wouldn't have those opportunities if I just stayed in my lane of my major so definitely go outside and explore and just do it for joining in on this conversation we have just a few minutes left but I open it up for questions and answers if folks have any questions Okay, I have a question of the panelists If you had a million dollars today and you could do anything you wanted to do with it, what would that be? A million dollars What would you do? What would you do with it? Provide student housing That's such a loaded question coming from you Lynn as someone who worked in the development office here for many years and was the first woman identifying rally committee chair right? I'm sort of torn as to how to properly respond to you Yeah, I'm going to think about that a little bit but appreciate the question This is hard because most of the things I'm thinking about would probably take more than that Reformed child welfare would be great but I'm working in child welfare so I know how much it costs to run it but I think something I don't know if this is still within that price range but if we could bring more opportunities for like learning about well I know there's already initiatives for this but we're having trouble getting them through but like more opportunities to learn from each other across culture just more diversity opportunities to learn about different religions and cultures and values and to connect something I've learned is some restorative justice efforts in the community building piece can really help prevent a lot of the things that we're experiencing like racism and conflicts in general because once we can understand each other as human federal really help bridge that so something in that I don't know what it would look like but I think I would give the $1 million to a student committee to decide how best to steward the funds I think the students here are so amazing and really the reason why I stay connected to campus I'm an accidental academic I was not planning actually to be a faculty member when I grow up and I'm still sort of easing into that role but students here are truly brilliant in so many ways that I think they'd be able to steward that money best those are good responses oh there's a follow up you want me to answer that too I think housing is very critical we're in such a crisis for students to be able to afford housing actually I'll just say plus one to all of those I love all of them this is a brilliant panel well what we may do because often times we didn't start Cal time so we didn't start 10 minutes after the hour but you still probably need time to get to your next class so we'll end a little early here I'm gonna put this slide up so that you can be in touch with Jawa J-A-W-A-U-C-B dot-O-R-G for the Japanese American Women's Alumni of UC Berkeley stay in touch with us, sign up for notifications, find out about the events that we have going on and then finally the closing slide for the homecoming 2022 let's practice Go Bears a few times Go Bears Go Bears Go Bears we're gonna win that football game this afternoon Go Bears one more time Go Bears Thank you have a wonderful afternoon


So I've been at Evernote for a year. I was hired to do Sketch Touch, and we were brought in to the Microsoft Early Development Program. So we've actually been running Windows 8 on my personal machine for a year, last February is when I started. So I've been through all the developer preview, all the API changes, sort of all of the muddy water, and come out clean on the other side. And there's lots of awesome stuff about Windows 8. There's lots of awesome tutorials and getting started type things. So the purpose of this talk is not to tell you how to make a beginner's app in Windows 8. There's much better stuff that you can find online than what I'll give you.  Sort of some of the stuff that you're gonna experience, some of the stuff you're gonna need to know to actually make an app that's worth using in the Windows Store. And if you love JavaScript like I do, it is a really awesome environment to write code in, because this is really what I consider the first sort of full featured environment where you can do almost anything, your heart desires in JavaScript. I did not know anything about Windows 8 prior to joining Evernote. I had installed it and kind of messed around with it, but I hadn't really done a lot of Windows development. I'm not an old school Windows person. I did the web stuff. I did the ASP.NET, MVC at various jobs, but I have a background in PHP, but my personal passion is web development. My personal passion is JavaScript. And so you don't have to be a Windows person to do this stuff. And that was the whole reason they did that, was to bring in, I think, people with my background. So let's get started. Well, before we get started, the last little bullet point there, dev.windows.com, that is sort of the starting point, awesome resource, tons of good stuff on there. That's where you go when you get stuck. Okay, so when your apps are running on Windows 8, they're officially called Windows Store apps, to my knowledge. And so your Windows Store apps obviously can be written in lots of different languages. And the way that they'll be sort of executed by the Windows operating system is different for every language that you write it in. JavaScript specifically, you're just running an IE10. Sort of the bootstrapping process, the app launching experience is kind of handled by the operating system.  But mentally, you could just think that you're writing an IE10. It is literally the IE10 rendering engine.  So IE10 is standards-friendly, very awesome. If you haven't tried it out, you should go to this ietestdrive.com. You'll probably be impressed by what you find there, really cool stuff. But it's IE10 plus a little bit. So you're gonna have access to some extra host objects, right? JavaScript, the language itself, the ECMAScript spec, specifies certain what they call built-in objects. Those are like your array constructor, your function constructor, your regex constructor. And then the environment that your JavaScript code is dropped into will provide what are called host objects. So most people have mainly written browser apps. So that's a window, that's document. Those are like the globals provided by the browser. And those are all there. But then you'll find extra host objects in IE10. And those will be sort of the native operating system hooks and the native APIs that you wouldn't normally get in a browser. So most of those will be found under a global called Windows with a capital W. And we'll get into that. But the Windows global variable that's gonna show up in your app will have a large hierarchy of object space that will give you access to all the device hardware, the sensors, the navigation, all that kind of stuff. And the second point to make is that your app can now run in multiple contexts. So you're running in the browser, but you have access to stuff the browser normally wouldn't like the user's sort of personal data, the file system, some of the hardware details. And so your app can run in what's called the local context or it can run in what's called the web context. And there may be other sort of caveats with those two contexts, but they have sort of different purposes. So stuff you can't normally do on the web, for example, like cross domain AJAX request, like without the support for cores and that kind of thing, you can when you're running in what's called the local context.  So you get extra goodies like that kind of thing. But you can also specify that certain chunks of your code will run in what's called the web context and then you'll get it just like you're in a browser and it's like your cross domain AJAX request will be blocked and so you might say, why would I ever opt to run in a web context whenever my local context gives me more options? Well, in the local context, you do have some restrictions. For example, you can't dynamically inject script tags into your DOM and there's sort of all these underlying security reasons for why Microsoft may or may not allow you to do certain things. It's all in the interest of protecting the user, but just know that your app may run in two different contexts. So this thing called the Windows runtime, what is it? So for a long time, Microsoft had a native API called Win32. You may or may not know what that is, but that was sort of the native API for dealing with Windows specific operating system stuff. And then came along .NET, which was an entirely new API, but it was a managed code API, right? So your .NET code would run sort of through this intermediate sort of jitted, you know, compiled thing on a dynamic layer called the CLR. If you don't know what any of this stuff means, it doesn't matter, but the bottom line is there's now a new thing called the Windows runtime. This is a new native API. This is not a managed code API. And the cool thing about this one is that these are JavaScript objects in your application. So this is the Windows operating system. This is the real deal, the whole, you know, the whole kid in Kabuto with some restrictions, but like this is lots of really cool APIs. And generally, you can just think that it's everything in the Windows namespace. So it's windows.whatever in your JavaScript app, that's gonna give you access to lots of cool stuff. Okay, second point. The Windows runtime, which by the way, they also call WinRT. So if you've heard that term sort of floating around, the WinRT is this Windows runtime API. Okay, async. So almost every method that does something significant that could potentially take, I think they've said 50 milliseconds, is only exposed as an async method. So very similar to Node.js in that respect, although it uses a different style than Node.js. So what is async? I mean, everybody may be very, you know, differing sort of skill level in here, but is everybody familiar with async style programming? Raise your hand, yeah, nay? Okay, so in Node.js, for example, when you write some async code, you know, you call a method and then you pass in some arguments and you pass in a callback and then your callback gets executed whenever the method is done. All of the async in your JavaScript apps in the Windows Store will be done using a promise style async stuff. And so I'll pull up my IDE and we'll walk through a little example there, but it's a different style of async programming. And so if you wanna do it, if you wanna do this Windows Store thing, you better learn it. And we'll go through some examples. Okay, and then just in general, you know, the whole purpose of this Windows runtime, these are the extra host objects that let you, you know, talk to the operating system. Okay, so then there's this secondary thing provided to your app called WinJS. So WinJS are, it's like a general purpose front end framework that Microsoft has provided. And so this is not really OS specific stuff, but these sort of package components, it's just like any of the front end frameworks out there. This one specifically will make it look like Windows 8.  It just kind of comes out of the box with the WinJS style thing. So if you're looking to make a Windows 8 app without a lot of effort, it might be a good idea to use the WinJS components. A couple of points about these, most of them are actually reusable in just a normal browser, right? So if you want to just write a generic web app, which is sort of a big advantage of writing these native apps in JavaScript because in theory, they should be translatable to a browser and you should be able to make both sort of a native and a web version of your apps using the same code base, which is sort of what we're doing at Evernote. And there may be some anomalies and some tricks to getting that to work right, but in general, you can think of this as just a pure front-end framework. What else comes out of here? So another thing really cool that Microsoft has done with the framework that you may not have had to think about before is that they've sort of unified different styles of pointer events. Like this machine that I'm on now, this is a touchscreen laptop, right? So I got my finger on the screen here. So, you know, when you're writing web apps, you're generally not thinking that somebody's going to, you know, both touch the keyboard and the screen at the same time. Or you don't have to think about, you know, handling like a stylus and a mouse click at the same time or things that like haven't really come up in traditional web development. But right, lots of these machines are hitting the market and Microsoft has something called like MS Pointer categories of events. So they sort of unify all the pointer hardware in sort of one event structure. So you'll get an event like, you know, MS Pointer down, MS Pointer up kind of thing. You know, while your code is running and that could mean a stylus, that could mean a finger, that could mean a mouse click or whatever. So you don't really have to think about that. Cool stuff. Okay. So now let's get into sort of what's gonna happen while you're writing these apps. So the first thing that's gonna confuse you or confused me was the navigation model.  So if I open up Visual Studio, I don't know how easy that's gonna be to see, but I'll zoom in when it's appropriate. So I'm just gonna come out of the box. This is the free Visual Studio Express. I'm just gonna make one of the pre provided template apps from Microsoft. So if you just come in here and say new project, there's a templates, JavaScript, Windows Store style apps, I'm just gonna hit something called the grid app. And it just gives you like a little CSS, I don't know if you could see it, CSS images and JS folders on the right. And then there's a folder over here called pages. And it's just folders containing HTML, CSS and JavaScript files, really indistinguishable from just a normal web app. And over here, here's kind of like the bootstrapping default.js that it sort of generates for you. Don't worry about all the details of all this. That's not the point of the talk. It's that when you run this thing, it's just running in the browser.  And at some point in your app, you're gonna sort of wanna navigate between two of your HTML pages. And in a browser, so what does a browser do when you navigate between two pages in the traditional sense, right? The whole browser sort of tears down the whole in memory DOM and everything and sort of brings in new HTML, new JavaScript, clears out your global context and sort of reconstructs the whole environment with every page refresh, right? In this guy, that doesn't happen. So this is just the default app. I haven't done a single thing. This is just the grid template. And it kind of looks like the window start screen or whatever, so this is running in the grid. But this is just the HTML page that's defined back in Visual Studio here. So if we come back here and look at the default.html, you see that it's including some scripts. It's including some CSS. Looks just like a webpage. And then it navigates to a group page. What? Let me, sorry. Let me get back to the app. So you see these groups. This is just how they do the app. But if I click on group title two, it goes to this HTML page. So group detail would be this HTML page here. So what I just want to show you without digging through all the HTML here is that there's two HTML pages defined in the project. And both of them, if you look sort of at the top of them, they're both full HTML pages. This has a doc type, has an HTML, a head tag, a body tag. And when I navigate to the next one, it has an HTML, a head tag, and a body tag. And so you as a developer, your natural instinct is gonna tell you that it will clear out one of those HTML pages and it will bring in the next one. When in reality, that's not what it's doing at all. The first HTML page that gets loaded into your app sort of stays there forever. And then there's navigation code that's written in JavaScript by the Microsoft libraries. So when I navigate it to that group page, what it was actually doing is it goes in this group detail page and it looks at the inner HTML of that head element and it will look for sort of the diffs between that inner HTML and the existing head element on the page and it will attempt to merge any missing script elements into the page and any style sheet elements into the page. Not obvious to you at all. But it does have some maybe unintended consequences. So this is sort of the in the trenches part, right? So like let's say you have a JavaScript file and during the parsing of that JavaScript file, let's say you have like a console.log statement or something like that. That JavaScript file is only gonna be parsed one time. So if you navigate to that page the first time, that console.log statement will be executed. But now that that file has been parsed, if you navigate away and then navigate back, it's not gonna reparse your JavaScript file, right? So just be cognizant of the fact that your JavaScript files that you include on an HTML page are actually only being parsed one time. Obviously you can call the methods and stuff that you provide on them more than one time, but it's gonna behave differently than a webpage, whereas if you navigate to a page every time, the JavaScript gets parsed every time, right? So it's tricky. So that's what it does with the head element and sort of has those sort of weird side effects. With the body element, it does something very similar. I won't go into all the detail of how it works, but you could sort of imagine it taking sort of the body element, inner HTML, and sort of removing that from the DOM and then looking at the inner HTML of the page you're navigating to and then injecting that. So if you're not careful, you could sort of leave a trail behind. If you're starting to put markup in weird places or you're assuming elements are gonna be left in place inside your body element when they're not, the bottom line is assume that once your app is launched, that DOM is in memory for the entirety of your app. It's never gonna go away. It's only gonna be manipulated from that point forward. So let's go back to PowerPoint. Okay, just the first bullet point in orange up there. Your pages are not served through the HTTP protocol. Because the way the apps work, right, is the user downloads an app from the store, all the markup and resources, everything is locally packaged on their disk. Whenever they navigate, quote unquote, to the first page, it's not requesting those bits through HTTP. It's requesting it through a Microsoft protocol called ms-appx. So if you actually did a window.location inside your app, you're gonna see the scheme or the protocol on the location as ms-appx. And it's that exact thing that puts you in the local context like I was talking about earlier. Now if you load something in an iframe, an iframe, you know, you could load Google.com in an iframe, obviously that will be loaded with HTTP. And so you could see how you could quickly get in a situation where you have different frames running in different contexts sort of within the same app window. And you could even load your own code in an iframe through the local context or through the web context, depending on if you address it, like the iframe source as HTTP or ms-appx. So you sort of have control over what you wanna load in which context, but be aware that everything is not HTTP. And we could do a whole talk on sort of the differences between those, but we don't have that kind of time. Okay, so promises. Let's do a time check. Okay, so what are promises? Promises are really, really a cool thing, but there's something that you really need to buy into to really feel the power and the advantage of programming in this style.  And so the purpose of promises, and why are they called promises? Well, that's typically like what the name of the object is because it represents the promise of an async method to eventually finish, or a method, which in theory doesn't have to be async, but you know, in general, this stuff is used with async methods and the way that you'll see them sort of manifest in your Windows 8 app, inside that Windows namespace, you're gonna see lots and lots of methods that end with this async, this capital A async. So it might be like create file async. Whenever you see something end in the word async, one of the methods, that means it's going to return a promise, which means that if you wanna wait until that method is done, you have to use the promise style of waiting. So what is the promise style of waiting? Let's go back to our app. Okay, so here's this default.js. In this file, I know, because I've done this a million times, but like when you bring up that template file, this is just sort of the bootstrap code that handles the launching of your app. So you don't need to know for purposes of this talk, like every detail in here, but all you do need to know is that your app is listening for an event called activated, which will be raised by the Windows runtime. That means your app has been brought to the foreground, and it can be brought to the foreground in more than one way, like somebody could share to your app, somebody could resume it or whatever, but let's just assume that it's being launched. So when your app is launched, I know whatever I put here, this is sort of if the activation, if the activation kind is launched, I know this code is gonna run. So when I launch the app, whatever I put here is gonna get run. So in Visual Studio, you'll get some, you get some IntelliSense, which is helpful. So I'm gonna type when does, you see that namespace there, then I get lots of stuff. So one of the namespaces is called storage, and this is sort of like file writing, you know, all the file system stuff. So there's a storage API, and it has an object called application data, which represents the current user's application data. It's kind of like a static class, so it has this current method, so this is like the current user or current property, this is like the current user's application data, and then it'll have something on here called local folder. And if you see its description of this property is, it gets the root folder in the local app data store. So somewhere on the disk, wherever a user installs an app, you're allocated a little directory structure on the user's disk for their local data folder. So this is their local data folder, it represents a folder object. Okay, now this has a lot of methods on it, and most of them are async. If you can even see in the IntelliSense there, you'll see a lot of async. I'm just gonna pick one called create file async. And so that's what the methods will look like. They'll end in this async word, and then they'll take different arguments. So this one is just saying pass in a string, that's the name. I'll just say like file one dot text, just like an empty text file. Okay, so what did I just do there? I just created a file, but it's an async method because all the file IO stuff could potentially take longer than 50 seconds, so they wanted to make it async. So if I write a line of code, and actually since I had to zoom in so much, I'm just gonna do this, I'm just gonna make a little var here, I'm just gonna say local folder. So I don't have to type out that whole window's namespace. So let's say the local folder is this guy. Okay, so if I put a line of code right here, you know, like console.log, is it done? So the answer is no, right? It's guaranteed to be no because all this create file async did was it kicked off this file creation code. And the natural way JavaScript works is it's gonna sort of loop through all of your code line by line until it has no more events to process, and then we'll say like the JavaScript event loop makes a turn, and then it's gonna listen for more events. And when it finally listens to the event that says the file creation is done, then you're gonna get a callback on create file async. And so the way you do this in Windows 8 is you say create file async dot then, and then you give it your callback. And you just pass in a function here, and there you have it. Now in your callback, inside this then method, the return value is going to appear here. So this is gonna be file one here. And so if this style is not familiar to you, then you're gonna need to get familiar with it because this is the whole Windows 8 programming experience in JavaScript. Lots and lots of this kind of stuff. So I say go do this async thing, then when you're done, I pass in an anonymous function, you can pass in a reference to a function somewhere else, and then the return value from the async operation comes in as an argument of the function. So what happens, so you quickly can imagine that this can get tricky after a while, right? We can ask questions, go ahead. It's the object that represents the physical file on disk, right? And it's not gonna exist, right? Right, so it's like this. Yeah, it's like this, right? This is what's really happening. When you call create file async, you get this promise object. The promise has an API, has a method called then, right? And whatever you give to the then method is not going to be invoked until the file is actually done being created on disk, right? And so every time I call create file async, I'll get a new promise. So I could do it for file two, file three, and file four. Go ahead. There's some intelligence, but the documentation is excellent, you know? You go to the dev.windows.com, the API is super. Yeah, but I mean, it's very, very like, not a big deal. I mean, I've been doing it for a year. Maybe it feels like a big deal, but this is generally like, this is generally a problem in any sort of async programming, right? It's tough, you know, because you actually have to execute the code to sort of know where the arguments are going. Well, you know, whenever I, if you saw whenever I started typing this guy out, right? So when I did, sorry, dot create file async. Yeah. You see this guy? You see this storage file in sort of angle brackets there? It's hard to see, right? This async operation, I don't know if you could see that. That's the return value, right? There's never multiple arguments returned. Promise always returns a single argument. So valid question, right? Of a single type. What's that? No, no, the promise like contract states that you have a single, the return value is a single value. If you need to return more than one value, you just return an object, right? With lots of values. It's always one argument. Yes, right, right? It's like the common JS promises slash a spec. If you read it, it's very clearly laid out. It's a short spec, super short, right? It's like the contract states all, all promise callbacks need to return a single argument, not the promise that's being returned. This stuff gets tricky to talk about in words. That's why I put it in the, because you just start saying promise, promise, promise over and over again. But yeah, so if I say create file async, you'll get it there in those angle brackets, but I thought you were asking where you get it after I write the dot then. Like when I'm down here and I write function open per inch, you're not gonna get the intelligence at that point in the IDE. You'll get it at the point where you invoke the async method. So you very quickly, we don't have to go into too much detail, but you can quickly sort of chain these guys, and this is the point, is you do this kind of thing with them. And so let's say I wanted to create three files, but I wanted them to all be dependent on the creation of the previous one, that the style is inside the callback to your promise, you return another promise. So I can just do it over and over again. And if I do it this style, and I don't know, you gotta bend your mind a little bit, right? But what's happening here? So why would I do it this way? Because now I know that file two will not even begin to be created until file one is done being created, and so forth. So this sort of like is a good way to chain asynchronous things in a way that's very deterministic, but it can get confusing and it can be tricky when you're debugging. So those are just the other, the last point I wanna hit is when you're debugging this thing, you gotta put your break points sort of inside the callback here.  You'll get used to it when you start doing it, but if you haven't done this before, your natural instincts are probably not gonna tell you to do it this way. You'll get used to it. It's the same pattern over and over again and you really gotta think about it, but this is just sort of, will save you a lot of time if you just do it this way. Okay, let's go PowerPoint. Oh, wrong view. Sorry guys. Oh! We're good. Let's go again. Okay, we're not good. I apologize. Okay, I'm gonna talk about those more at the end. Time check. Okay, we got 10 minutes. Okay, same code in a browser. So a lot of times what you're gonna wanna do is reuse the code you write because you're gonna put a lot of cool stuff in here. Because the environment forces you to write in an async way, you're gonna get a lot of natural advantages from that is you're gonna be forced to write very responsive code whether you want to or not. You're not gonna be able to block the UI for any reason. I mean, anything that I think Microsoft said will take potentially like in the 30 to 50 millisecond range is gonna be forced to be done async, so you will not be able to sort of freeze the user experience on the UI thread. But then again, a lot of these async APIs, they're not W3 standards. And so what I would say is whenever there's a standards API that does the same thing as the Windows API, opt for the standards if you're planning on reusing this thing on a browser, obviously. But be careful because some of the WinRT things are like faster, because they're on the platform and more tightly integrated. And you gotta kind of take those on a case-by-case basis. We found some interesting things with like the canvas element. We do a lot of 2D graphics type stuff, things that could potentially be slow. And so what we personally did at Evernote was we kind of just wrote like a thin abstraction layer that just sort of depending on either the build or some runtime detection stuff says maybe we're gonna opt for the standards or the Windows version of this API. But sort of the core logic of the code is just expressed using like an intermediate sort of abstraction or sort of an intermediate object that you would use that sort of either calls one or the other. Other things that you're gonna wanna watch out for, you're gonna do a lot of stuff with gestures in your Microsoft app. So you get all the cool stuff, the pinch zoom, the swipe, the inertia, you kind of flick the thing and it kind of flies across the screen. Lots of cool gesture events. You'll get like gesture start, gesture manipulation events and pinch and all that kind of stuff. There are no W3 standards for gesture events yet. There is the W3C has actually accepted the Microsoft proposition. The MS pointer events that I talked about earlier has actually been now formalized in the W3C. So the pointer events will be unified but those are all for a single pointer. Anything that involves like five fingers on the screen, there's no W3C thing for that. So if you kind of app, if you write an app that sort of depends on a lot of that stuff, be careful because that's a tough solution right now in browser world. If somebody writes a library to handle gestures, that would be an awesome one to put on GitHub. I think some people are looking into it but I haven't found anything that's good. And then be careful with file system stuff. It's kind of mixed support across browsers. There's actually multiple file APIs in the W3C. There's one for reading files, writing files and then like accessing the file system and sort of the folder structure of the user. Not all three of those are implemented in any browser to my knowledge fully. They're all kind of piecewise put together. So the same suggestion there. If you're writing code that you're gonna use across different places, sort of make your own intermediate object to abstract that stuff. And then this is my last slide and we can do questions. These are gotchas that I personally ran into. So your source code will be packaged into your app. Obviously it's a JavaScript app. Your source code is not being compiled. It's not like you submit it to the store and then they build it into byte code and deliver the byte code to the client. Your source code is delivered to the client. So at a minimum you want to at least obfuscate, minimize, you know, whatever, minify it. You know, the directories that it's installed in are difficult to get to and the person has to know what they're doing but you know, obviously this is not, this is just like a website. So don't put personal information in your source code in JavaScript. Quick caveat to that one. I didn't even go over this but there's so many things. It is possible in your JavaScript apps to call into native code. So if somebody writes like a library in C++ you can actually invoke those methods from your JavaScript code if it's packaged the right way by the library builder. Something like that might be a good place to put sensitive information or something like that. That's one way around that. Yeah. Right, it's a case by case.  Yeah, yeah. So, you know, just be aware. These things to be aware of. Localization. A lot of web developers don't ever think about localization. Don't do multiple languages but super good idea just from the very start. Don't hard code any strings into your app. It's very simple to use the localization stuff from Windows 8. You just simply call a method that looks up something in a strings file that you just include with your app. So if you just do that sort of from day one and maybe you only have an English strings file for the lifetime of your app. If anybody ever wants to write another strings file it just all works. So think about that from day one because that can be painful when submitting to the store if you want to submit multiple languages. There's something called the WAC. It's a Windows application certification kit. It's just an app. It's a thing you can run locally that will inspect all of your source code and make sure it's all ready to be packaged to be submitted to the store.  Know what it is when you're building these apps and run it through there. Little things like all your source code files must be UTF-8 encoded with the byte order mark at the beginning. Things you normally don't think about probably. And you'll get rejected from the store for little things like that. Follow the design guidelines. This has nothing to do with JavaScript but Microsoft has a very extensive set of web pages that show you how you need to design your app, where the buttons need to be, what they should look like, sort of how the animation should work. If you break the design guidelines you will be rejected. Don't try and bend the rules. You can't really put one past them. And then no clever tricks. Since you can call in to native code from your JavaScript app in theory you can do some crazy stuff there, right? If you know what you're doing you can use the PNVokes, you can do sort of stuff that to call APIs that would normally be considered out of bounds or off limits by the app store. And so even though technically you can accomplish something through your app since you now have access to the OS even if you can do it they'll detect it in the store submission process and you'll get bumped. So these are just things to save you time. These apps are super cool and I've had a great time building it. Ours is called Skitch Touch. Go check it out. You can see the kind of cool stuff you can do with these apps but you've got maybe a few minutes, I don't know. That's all I got. I don't think anybody's in the room after me so we can keep talking if you want. Thank you very much. Thank you.