반응형

본 내용은 아래의 링크 내용을 번역한 내용 임을 밝힘니다.
The Best Open Source Chatbot Platforms in 2021

최고의 오픈소스 챗봇을 찾고 계신가요? 이글에서 그들이 정한 기능을 가지고 Top8개의 챗봇을 찾을 수 있습니다. 들어가 보시지요.

오픈소스는 인터넷 없이는 불가능한 초월적인 단계들 중에 하나이다. 이것은 "Nyan Cat은 문화적 혁명이다" 라는 문구와 비슷하다.
(Nyan Cat : 미국에서 만들어진 캐릭터 관련 밈. 몸통이 팝 타르트로 되어있는 회색 고양이가 우주에서 무지개를 그리며 날아다니는 GIF 이미지다.) 엄청인기 있었던 것 같음)
오픈소스 소프트웨어는 오랫동안 우리에게 정말 보석과 같은 것을 주어왔습니다.
모질라의 파이어폭스, 리눅스의 워드프레스, VLC, Apache, LaTex 그리고 우분투(Ubuntu), 이런 것들은 그저 눈에 띄는 몇개 중에 하나입니다.

처음에 언급한 것처럼 챗봇은 최근에 가장 우세한 기술 혁명중 하나입니다.
그리고 당연히 챗봇은 오픈소스 프레임웍의 영향을 받아왔습니다.
솔루션 제공자는 마이크로소프트와 같은 거대 기업으로부터 깃허브의 영웅인 개인 개발자까지 다양합니다.

그래서 이번 글에서는
A. 오픈소스 챗봇은 무엇인가
B. 2021년에 최고의 오픈소스 챗봇에는 어떤것이 있는가
C. 시장에서 오픈소스가 아닌 것들과의 차이를 만드는 것은 무엇인가
에 대해서 이야기 하겠습니다.

오픈소스 챗봇은 무엇인가

챗봇은 "특히 인터넷을 통해, 사람과 대화하는 것을 흉내내기 위해 설계된 프로그램"이 라고 정의 됩니다.
아마 당신은 살면서 당연하게도 이러한 많은 컴퓨터 프로그램들과 상호작용하고 보아왔을 것 입니다.
아마 당신은 챗봇을 이용해서 피자를 주문해봤을 수도 있고, 아니면 화장품을 사는 것에 도움을 받기위해 챗봇을 사용했을 수도 있습니다.
어쩌면 심지어 당신은 이러한 챗보중에 하나와 심리치료 시간을 가져왔을 수도 있습니다.(Stanford Woebot)
상상할 수 있는 거의 모든 사용 방법에 해당하는 챗봇이 있고, 대부분은 아래와 같이 둘중 하나의 방법으로 만들어졌습니다.
1. 최고 수준의 플랫폼을 사용하거나
2. 챗봇을 사용할 회사에 의해 독립적으로 만들어 졌습니다.
그래서 인도에서 가장큰 커머스 중에 하나인 Nykaa는 더 좋고, 보다 효율적인 방법으로 그들의 고객에게 서비스 하기 위해 고객 지원 챗봇을 사용합니다.
그럼에도 불구하고 세번째 방법이 있는데 이것이 바로 오픈소스 챗봇을 사용하는 것입니다.
오픈소스 챗봇은 현대의 웹 어플리케이션과 매우 유사합니다.
오픈소스 챗봇은 인터넷에서 이용되고, 데이터베이스와 메시지를 보내고 받기위한 API를 이용하고, 파일을 읽고 쓰고, 보통의 일들을 처리합니다.
오픈소스 봇들은 대게 아래와 같은 몇 개의 핵심 요소들로 구성됩니다.

  • 웹 서버, 대부분은 인터넷에서 사용가능한 웹서버
  • 봇을 개발하기위해 인터페이스를 제공하는 툴과 봇 빌더 SDK
  • 지능적인 알고리즘 서비스
  • 저장 서비스

 

2021년에 최고의 오픈소스 챗봇에는 어떤 것이 있는가

1. 마이크로소프트 봇 프레임웍(Microsoft Bot Framework).

아마도 비즈니스에서 가장 많이 사용되는 툴중에 하나인 마이크로소프트의 봇 프레임웍(MBF)은 당신이 필요한 모든 것을 가지고 있습니다.
사실, 마인드브라우저의 연구에 따르면 비즈니스의 41%이상이 MBF를 산업의 대안으로 선호합니다.
SMS, Skype, Slack, Email, Office 365, Twittter, Telegram 등은 MBF가 제공하는 여러 플랫폼중에 그저 일부입니다.
이 프레임웍은 두가지로 구성되는데, 즉, 봇 빌더 SDK루이스(LUIS)라고 불리우는 그들의 NLU시스템으로 구성됩니다.
볼빌더SDK는 .NET과 Node.js를 지원 합니다. 그리고 자동번역기능을 가지고 있는 루이스는 30개 이상의 언어를 지원합니다.
마이크로소프트의 넓은 리소스 지원 때문에 당신은 거의 모든 대화 유형을 자동화 할 수 있습니다.
당신은 루이스를 이용해서 자연어 이해를 이용할 수 있고, 보이스 봇인 코타나(Cortana), 그리고 검색 API인 Bing을 이용할 수 있습니다.
MBF는 이러한 이유로 인기 많은 툴입니다. 개발자들이 더 빠르고, 더 좋은 봇을 만들수있게 도와주는 탬플릿과 예시를 가지고 있습니다.
이것은 또한 비즈니스가 옵니 채널적인 접근을 취하려할 때 이상적 입니다.

2. Rasa Stack

라사 스텍은 엄청난 성장을 보여준 플랫폼 입니다. 단 2년만에 라사가 30만회 이상 다운로드 됬습니다. 이것은 거의 매1분마다 다운로드 된 것 입니다.
라사 스택은 오픈소스 기계학습 툴의 모음입니다. 개발자들은 이러한 툴들을 이용햐서 챗봇과 어시스턴트를 만들 수 잇습니다.
라사 스택은 두가지의 콤포넌트를 가지고 있는데 이들 각각은 독립적입니다. 바로 'Core'와 'NLU' 입니다.
NLU는 사전에 정의된 의도에 기반하여 사용자의 메시지를 이해 합니다. 기계학습으로 만들어진 Core는 (이번 메시지 이후) 그 다음에 무엇이 일어날지를 결정합니다.
라사는 독립적인 서비스 입니다. 즉, 데이터를 주입하거나 받기 위한 제 3의 API를 사용할 필요가 없습니다. 그냥 온프레미스 서버나 프라이빗 클라우드에 배포할 수 있습니다.
이것은 확장할 수 있는 자연어 대화와 유연하게 제공할 수 있게 제품화가 준비된 유일한 플랫폼 입니다.

3. Botpress

봇프레스는 스스로를 오픈소스 봇빌딩 플랫폼에 있어는 '챗봇의 워드프레스'라면서 판매 합니다. 이것은 모듈화된 청사진을 가지고 개발 합니다. 당신은 조각들을 떼어내가나 코드 프레임에 있는 새로운 조각을 붙일 수 있습니다.
봇프레스는 3단계 설치 절차를 운영합니다. 개발자가 봇 빌딩을 시작하고, 선호하는 플랫폼에 그 봇을 배포하고 그리고 접근을 넘겨주고나면 이것은 관리 될 수 있습니다.
개발자 친화적인 환경을 사용하는 볼 프레스는 직관적인 대시보드를 가지고 있고, 유연한 기술에 의해 구동됩니다. 그리고 이것은 몇 개의 미리 설치된 컴포넌트들이 제공됩니다.

  • NLU 엔진
  • 관리자 대시보드
  • 시각적 흐름 작성도구
  • 대화 에뮬레이터 / 디버거
  • 여러 메세징 채널 지원

라사와 마찬가지로 봇프레스는 온프레미스에서 운영되기 때문에 들어오고 나가는 데이터에 대한 모든 제어를 할 수 있습니다.

4. Ana.Chat

Ana 는 세상에서 최초의 오픈 소스 챗봇인 것에 대해 스스로 자부심을 느낍니다.
Ana는 개인적이거나 상업적인 용도로도 무료이기 때문에 당신의 챗봇 개발 기간을 줄일 수 있습니다.
Ana는 Ana Studio, Server, Simulator, 그리고 SDK와 같은 내장된 서비스들이 묶음으로 제공됩니다.
이 Studio를 이용해서 텍스트를 만들고 수정하고, 시각적인 입력 항목과 버튼을 만들 수 있습니다.
시뮬레이터를 이용하면 화폐 표시와 같은 기능을 가지고 봇 사용 경험을 제어할 수 있습니다.
서버로는 확장에 대한 걱정없이 당신의 챗봇을 플랫폼에 배포할 수 있도록 합니다.
그리고 SDK로는 몇분 안에 당신의 엡을 Ana와 통합 할 수 있게 합니다.

5. OpenDialog

OpenDialog는 오픈소스 챗봇 프레임웤 중에서 가장 인기있는 것중에 하나입니다. 설비가 완비된 툴킷은 큰 노력없이 설계, 개발 그리고 배포를 할 수 있게 합니다.
GreenShoop Labs는 2018년에 개발을 쉽게 만드는 사용자 중심의 화면을 새롭게 만들면서 이 프레임웤을 만들었습니다. 이것은 훌륭한 대화 엔진과 처음 사용하는 사용자를 주눅들게 만들지 않는 대화 형태에서의 유연성을 하나로 합쳤습니다.
OpenDialog 실시간 음성-문자 변환 처리를 실행 할 수 있는 능력을 자랑합니다. 이것은 N-best/word graph 결과물을 제공하는 것 뿐만 아니라 하나의 서버 유닛으로 작동할 수 있습니다.
이 프레임웍의 USP는 당신이 어떠한 코딩 경험도 필요 없이 완전히 발달된 대화 에이전트를 만들 수 있게 합니다.

6. Tock

NLP를 근본적으로 지원하는 오픈소스 챗봇 개발 프레임웤을 원한다면 Tock은 또 다른 최고의 선택입니다. 이것은 3rd party APIs가 필요없고 독립적으로 동작할 수 있습니다. 그럼에도 불구하고, 사용자가 어떤 컴포넌트를 대화 에이전트에 집어 넣어야 하는지 고르는 것이 얼마나 쉬운지를 고려해보면 통합은 문제될 것이 없습니다.

7. DeepPavlov

DeepPavlov는 TensorFlow, Keras, 그리고 PyTorch 를 기반으로하는 인기있는 오픈소스 챗봇 개발 프레임웍이다 이러한 기반 프레임웍은 개발자들이 다기능 어시스턴트와 같이 파워플한 대화 에이전트를 개발하기 위해 필요한 유연한 도구를 제공합니다.
이 프레임웤은 NER, Q&A 그리고 다른 복잡한 NLP처리를 위해 사용되는 BERT 와 같은 최신의 딥러닝 모델과 호환됩니다.
DeepPavlov의 중요한 기능중 하나는 얼마나 쉽게 이것이 배포될 수 있는가 입니다.(쉽게 배포됩니다) 이러한 기능들은 Nvidia NGC와 Docker Hub에 있는 컨테이너에서 호스팅됩니다.

8. Wit.ai

개발자들은 개인용이거나 상업용 대화 에이전트를 만드는데 이 오픈소스 챗봇 개발 프레임웤을 사용할 수 있습니다.
이것은 페이스북이 2015년에 인수했습니다. Wit.ai 는 (특히 페이스북 메신저와 같은) 메세징 서비스와 쉽게 연동할 수 있는 오픈소스 챗봇을 만들기위해서 필요한 사용자 친화적인 SDK를 제공합니다.
Wit.ai의 NLP 엔진은 IBM, Microsoft, Amazon과 같은 경쟁사의 엔진을 능가합니다.

Wit.ai은 오늘날 가장 포괄적인 오픈 소스 챗봇 개발 프레임워크 중 하나임에 틀림없습니다. 이것의 SDK는 파이썬, NodeJS, 그리고 iOS와 같은 언어로 제공되기 때문에 넓은 범위의 개발자들에게 이상적입니다. Wit.ai는 웹사이트, 앱, 페이스북 메신저, 슬랙, 웨어러블 기술 및 자동화에 쉽게 연동 됩니다.
 

 

What are the key features of open-source chatbots?

오픈소스 챗봇의 주요 기능은 무엇인가?
오픈소스 챗봇 개발 프레임웤은 약간의 코딩 방법을 알고있는 누구나가 그들의 웹페이지를 위해서 그들이 직접 NLP기능이 있는 챗봇을 만들수 있게 합니다. 오픈소스 챗봇이 제공하는 주요 특징을 알아보겠습니다.. 이를 통해서 오픈소스챗봇을 즉시 적용할 수 있는지 아니지를 당신이 선택할 수 있습니다.

1. Customisability
오픈소스 챗봇은 당신의 대화 에이전트에 들어갈 각각의 컴포넌트들을 원하는대로 수정할 수 있게 합니다. 당신은 사용하기를 원하는 메시지 템플릿으로부터 NLP 엔진까지 그리고 당신의 챗봇과 연동하기위한 API까지 모든 것을 선택할 수 있습니다. 유연성은 그들의 사업을 위해서 오픈소스 챗봇 구축을 고려하는 주된 이유중 하나입니다.
2. 24/7 availability
당신은 동시에 다양한 메세징 플랫폼에서 24시간 가능한 당신의 챗봇을 만들 수 있습니다. 연중무휴의 사용성과 무정지 서비스는 당신의 고객지원 운영에 대한 지원을 도울 수 있고 당신의 지원 인력이 더 효율적으로 일하도록 도울 수 있습니다. 챗봇 그 자체로도 대부분의 질의에 응답할 수 잇습니다. 이러한 챗봇은 사용자와 최접점에 있습니다. 즉, 봇에 의해서 해결되지 못한 모든 요청은 처리할 수 있는 사람에게 전달 됩니다.
3. Choice of Natural Language Processing engine
당신의 웹페이지를 위해서 맞춤 챗봇을 개발할때, 알맞은 NLP엔진을 선택하는 것은 필수적입니다. 오픈소스챗봇으로는 당신의 선택에 따라 NLP엔진을 선택하는것이 자유롭고, 어떤 엔진이 그들에게 최고의 성과를 내는지 보고 싶은 이들에게 매우 적합합니다.

4. Data privacy

비즈니스가 당신의 웹사이트에서 데이터 기반 기술을 사용함에 따라서, 사용자 데이터를 보호하는 보안 서비스를 사용하는 것과 사용자 데이터를 위험에 빠트리는 빈틈을 없게 하는것에 관심이 있습니다. 오픈소스챗봇을 가지고 당신은 데이터가 어떻게 처리되고 사용되는지에 대한 완벽한 통제를 갖습니다. 이것은 당신이 사용자 데이터를 안전하게 보호하고 있다는 편안한 마음을 가지게 만들면서도 동시에 챗봇이 고객을 돕게 만듭니다.

What makes them different from non-open-source options on the market?

모든 오픈소스 기술의 가장큰 단점중 하나는 학습곡선이 가파르다는 것 입니다.(배우기 어렵다)
일반 사용자들에게 있어서 우분투는 윈도우처럼 사용자 친화적이거나, 직관적이거나 쉽지 않습니다.
오픈소스 커뮤니티에 개발자가 많고 디자인에 집중이 없다는 것은 놀라운 일이 아니다. 이것은 비 개발자 사용자들은 오픈소스 기술에 대해 자주 힘들어 한다는 의미입니다. 오픈소스 기술은 또한 아주 많은 지원을 제공하지 않습니다. 그래서 만약 당신이 문제를 가지고 있다면 단지 약간의 문서들을 가지고 당신이 직접 수정해야만 한다는 것이 기회입니다.
오픈소스 소프트웨어는 또한 거의 무료입니다. 독립 서비스를 위해서 당신은 지불할 필요가 없지만, 당신이 내야하는 다양한 비용들이 있습니다.
당신이 서버, 훈련, 하드웨어, 그리고 개발 비용을 고려하지 않았다면 이 비용들이 합쳐져야 합니다.
그럼에도 불구하고, 이러한 것들이 당신을 단념시키게 하지 마세요.
설립된 회사로부터 많은 합법적인 솔루션들도 같은 문제들에 대해서 다양한 심도에서 어려움을 격고 있습니다.
당신이 챗봇을 만드는데 도움을 주는 쉽고, 싸고, 더 도움이 되는 툴을 좋아한다면 다양한 옵션들이 있습니다.
회사들은 자주 당신이 무료로 챗봇을 만들 수 있도록 허락해 줍니다. 아래와 같은 방법과 같이 챗봇 만드는 것을 시작할 수 있습니다.
여기


(이상한 내용의 번역이 있으면 알려주시고, 질문을 남겨주세요..)

감사합니다.

반응형
반응형

머신러닝 엔지니어 인터뷰

 

Most of the questions below from https://brainstation.io/career-guides/machine-learning-engineer-interview-questions

 

Machine Learning Engineer Interview Questions | BrainStation®

Machine Learning Engineer interviews differ at every company. Some focus mostly on technical questions, others are interested in how you would fit into their team.

brainstation.io

 

 

 

What is the difference between supervised learning and unsupervised learning?

The biggest difference is that unsupervised learning does not require explicitly labeled data, while supervised learning does – before you can do a classification, you must label the data to train the model to classify data into the correct groups.

 

    • What are the different types of machine learning?
      • Supervised Learning, Unsupervised Learning, Reinforcement Learning
    • What is deep learning, and how does it contrast with other machine learning algorithms?
    • What are the differences between machine learning and deep learning?
    • What is the difference between artificial intelligence and machine learning?
      • Deep learning is a type of machine learning, which is a subset of artificial intelligence.
    • Explain the confusion matrix with respect to machine learning algorithms.
      • A Confusion matrix is an N x N matrix used for evaluating the performance of a classification model, where N is the number of target classes.
      • The matrix compares the actual target values with those predicted by the machine learning model.
      • the True Positive is the number of  ------
      • This gives us a holistic view of how well our classification model is performing and what kinds of errors it is making.
      • , False positive and that you can calculate things such as Precision and Recall from it.
    • What’s the trade-off between bias and variance?
      • Bias is the simplifying assumptions made by the model to make the target function easier to approximate.
      • Variance is the amount that the estimate of the target function will change given different training data.
      • Trade-off is tension between the error introduced by the bias and the variance.
      •  
      • wikipedia 

통계학 기계 학습 분야에서 말하는 편향-분산 트레이드오프(Bias-variance tradeoff) (또는 딜레마(dilemma))는 지도 학습 알고리즘이 트레이닝 셋의 범위를 넘어 지나치게 일반화 하는 것을 예방하기 위해 두 종류의 오차(편향, 분산)를 최소화 할 때 겪는 문제이다.

        • 편향은 학습 알고리즘에서 잘못된 가정을 했을 때 발생하는 오차이다. 높은 편향값은 알고리즘이 데이터의 특징과 결과물과의 적절한 관계를 놓치게 만드는 과소적합(underfitting) 문제를 발생 시킨다.
        • 분산은 트레이닝 셋에 내재된 작은 변동(fluctuation) 때문에 발생하는 오차이다. 높은 분산값은 큰 노이즈까지 모델링에 포함시키는 과적합(overfitting) 문제를 발생 시킨다.

편향-분산 분해는 학습 알고리즘의 기대 오차를 분석하는 한 가지 방법으로, 오차를 편향, 분산, 그리고 데이터 자체가 내재하고 있어 어떤 모델링으로도 줄일수 없는 오류의 합으로 본다. 편향-분산 트레이드 오프는 분류(classification), 회귀분석[1][2], 그리고 구조화된 출력 학습(structed output learning) 등 모든 형태의 지도 학습에 응용된다. 또한 사람의 학습에서 직관적 판단 오류(heuristics)의 효과성을 설명하기 위해 언급되기도 한다.

 

    • Explain the difference between L1 and L2 regularization.
      • The main intuitive difference between the L1 and L2 regularization is that L1 regularization tries to estimate the median of the data  / while the L2 regularization tries to estimate the mean of the data to avoid overfitting.
      • The model performs accurately on training data but fails to perform well on test data and also produces high error due to several factors such as collinearity, bias-variance impact and over modeling on train data.
      • For example, when the model learns signals as well as noises in the training data but couldn’t perform appropriately on new data upon which the model wasn’t trained, the condition/problem of overfitting takes place. 
      • Overfitting simply states that there is low error with respect to training dataset, and high error with respect to test datasets. 
      • Various methods can be adopted, for avoiding overfitting of models on training data, such as cross-validation sampling, reducing number of features, pruning, regularization and many more.
  • What’s your favorite algorithm, and can you explain it to me in less than a minute?
    • My favorite algorithm is Naive Bayes classification algorithm based on Bayes’ Theorem with an assumption of independence among predictors. In simple terms, a Naive Bayes classifier assumes that the presence of a particular feature in a class is unrelated to the presence of any other feature.
  • How is KNN different from k-means clustering?
    • K-means clustering represents an unsupervised algorithm, mainly used for clustering, while KNN is a supervised learning algorithm used for classification.
  • What is cross validation and what are different methods of using it?
    • Cross-validation, sometimes called rotation estimation or out-of-sample testing to assess how the results of a statistical analysis will generalize to an independent data set.
    • Cross-validation is a resampling method that uses different portions of the data to test and train a model on different iterations.
  • Explain how a ROC curve works.
    • The ROC curve shows the trade-off between sensitivity (or TPR) and specificity (1 – FPR). Classifiers that give curves closer to the top-left corner indicate a better performance. As a baseline, a random classifier is expected to give points lying along the diagonal (FPR = TPR). The closer the curve comes to the 45-degree diagonal of the ROC space, the less accurate the test.
    • The receiving operating characteristic is a measure of classifier performance. Using the proportion of positive data points that are correctly considered as positive and the proportion of negative data points that are mistakenly considered as positive.
  • What’s the difference between probability and likelihood?
    • Probability is used to finding the chance of occurrence of a particular situation, whereas Likelihood is used to generally maximizing the chances of a particular situation to occur.
  • What’s the difference between a generative and discriminative model?
    • In simple words, a discriminative model makes predictions on the unseen data based on conditional probability and can be used either for classification or regression problem statements.    On the contrary, a generative model focuses on the distribution of a dataset to return a probability for a given example.
  • How is a decision tree pruned?
  • How can you choose a classifier based on a training set size?
    • If the training set is small, high bias / low variance models (e.g. Naive Bayes) tend to perform better because they are less likely to overfit.
    • If the training set is large, low bias / high variance models (e.g. Logistic Regression) tend to perform better because they can reflect more complex relationships.
  • What methods for dimensionality reduction do you know and how do they compare with each other?
    • PCA(Principal Component Analysis) and High Correlation Filter are my favorite methods for dimensionality reduction.
    • PCA is one of the most common feature selection method. 
    • PCA is a technique which helps us in extracting a new set of variables from an existing large set of variables. These newly extracted variables are called Principal Components. 
    • A principal component is a linear combination of the original variables
    • Principal components are extracted in such a way that the first principal component explains maximum variance in the dataset
    • The second principal component tries to explain the remaining variance in the dataset and is uncorrelated to the first principal component
    • The third principal component tries to explain the variance which is not explained by the first two principal components and so on
    • High Correlation Filter
    • We can calculate the correlation between independent numerical variables that are numerical in nature. If the correlation coefficient crosses a certain threshold value, we can drop one of the variables
  • Define precision and recall.
  • What’s a Fourier transform?
  • What’s the difference between Type I and Type II error?
    •  
  • When should you use classification over regression?
    •  
  • How would you evaluate a logistic regression model?
    •  
  • What is Bayes’ Theorem? How is it useful in a machine learning context?
    • Bayes theorem provides a way to calculate the probability of a hypothesis based on its prior probability, the probabilities of observing various data given the hypothesis, and the observed data itself.
  • Describe a hash table.
    • Hash Table is a data structure which stores data in an associative manner. In a hash table, data is stored in an array format, where each data value has its own unique index value. Access of data becomes very fast if we know the index of the desired data.

 

 

 

반응형
반응형

Steve Jobs Commencement Speech at Stanford University

스티브 잡스가 스탬포드 대학 졸업식에서 연설한 내용입니다.
예전부터 좋은 내용이라는 것은 알고 있었지만 시간이 지날 수록 다시 생각해 보게 만드는 문구들이 많은 것 같습니다.
어떻게 인생을 살아야하는지 몰라서 방황하는 모든 사람에게 들려주고 싶은 좋은 연설 인것 같습니다.

I am honored to be with you today at your commencement from one of the finest universities in the world.

Truth be told, I never graduated from college.

And this is the closest I've ever gotten to college graduation.

Today I want to tell you three stories from my life.

That's it. No big deal. Just three stories.

=======================================================================

The first story is about connecting the dots.

I dropped out of Reed College after the first 6 months, but then stayed around as a drop-in for another 18 months or so before I really quit.

So why did I drop out?

It started before I was born.

My biological mother was a young, unwed graduate student, and she decided to put me up for adoption.

She felt very strongly that I should be adopted by college graduates, so everything was all set for me to be adopted at birth by a lawyer and his wife.

Except that when I popped out they decided at the last minute that they really wanted a girl.

So my parents, who were on a waiting list, got a call in the middle of the night asking: "We've got an unexpected baby boy; do you want him?"

They said: "Of course."

My biological mother found out later that my mother had never graduated from college and that my father had never graduated from high school.

She refused to sign the final adoption papers.

She only relented a few months later when my parents promised that I would go to college.

This was the start in my life.

And 17 years later I did go to college.

But I naively chose a college that was almost as expensive as Stanford, and all of my working-class parents' savings were being spent on my college tuition.

After six months, I couldn't see the value in it.

I had no idea what I wanted to do with my life and no idea how college was going to help me figure it out.

And here I was spending all of the money my parents had saved their entire life.

So I decided to drop out and trust that it would all work out OK.

It was pretty scary at that time, but looking back it was one of the best decisions I ever made.

The minute I dropped out I could stop taking the required classes that didn't interest me, and begin dropping in on the ones that looked far more interesting.

It wasn't all romantic.

I didn't have a dorm room, so I slept on the floor in friends' rooms, I returned coke bottles for the 5 cents deposits to buy food with, and I would walk the 7 miles across town every Sunday night to get one good meal a week at the Hare Krishna temple. I loved it.

And much of what I stumbled into by following my curiosity and intuition turned out to be priceless later on.

Let me give you one example:

Reed College at that time offered perhaps the best calligraphy instruction in the country.

Throughout the campus, every poster, every label on every drawer, was beautifully hand-calligraphed.

Because I had dropped out and didn't have to take the normal classes,

I decided to take a calligraphy class to learn how to do this.

I learned about serif and san serif typefaces, about varying the amount of space between different letter combinations, about what makes great typography great.

It was beautiful, historical, artistically subtle in a way that science can't capture, and I found it fascinating.

None of this had even a hope of any practical application in my life.

But ten years later, when we were designing the first Macintosh computer, it all came back to me.

And we designed it all into the Mac.

It was the first computer with beautiful typography.

If I had never dropped in on that single course in college, the Mac would have never had multiple typefaces or proportionally spaced fonts.

And since Windows just copied the Mac, it's likely that no personal computer would have them.

If I had never dropped out, I would have never dropped in on this calligraphy class, and personal computers might not have the wonderful typography that they do.

Of course, it was impossible to connect the dots looking forward when I was in college.

But it was very, very clear looking backwards ten years later.

Again, you can't connect the dots looking forward; you can only connect them looking backwards.

So you have to trust that the dots will somehow connect in your future.

You have to trust in something - your gut, destiny, life, karma, whatever.

Because believing the dots will connect down the road, it gives you confidence to follow your heart; even when it leads you off the well-worn path.

and that will make all the difference.

============================================================

My second story is about love and loss.

I was lucky - I found what I loved to do early in life.

Woz and I started Apple in my parents' garage when I was 20.

We worked hard and in 10 years Apple had grown from just the two of us in a garage into a $2 billion company with over 4000 employees.

We had just released our finest creation - the Macintosh - a year earlier, and I had just turned 30.

And then I got fired.

How can you get fired from a company you started?

Well, as Apple grew we hired someone who I thought was very talented to run the company with me, and for the first year or so things went well.

But then our visions of the future began to diverge and eventually we had a falling out.

When we did, our Board of Directors sided with him. So at 30 I was out.

And very publicly out.

What had been the focus of my entire adult life was gone, and it was devastating.

I really didn't know what to do for a few months.

I felt that I had let the previous generation of entrepreneurs down that I had dropped the baton as it was being passed to me.

I met with David Packard and Bob Noyce and tried to apologize for screwing up so badly.

I was a very public failure, and I even thought about running away from the valley.

But something slowly began to dawn on me.

I still loved what I did.

The turn of events at Apple had not changed that one bit.

I had been rejected, but I was still in love.

And so I decided to start over.

I didn't see it then, but it turned out that getting fired from Apple was the best thing that could have ever happened to me.

The heaviness of being successful was replaced by the lightness of being a beginner again, less sure about everything.

It freed me to enter one of the most creative periods of my life.

During the next five years, I started a company named NeXT, another company named Pixar, and fell in love with an amazing woman who would become my wife.

Pixar went on to create the world's first computer animated feature film, Toy Story, and is now the most successful animation studio in the world.

In a remarkable turn of events Apple brought NeXT, and I returned to Apple, and the technology we developed at NeXT is at the heart of Apple's current renaissance.

And Laurene and I have a wonderful family together.

I'm pretty sure none of this would have happened if I hadn't been fired from Apple.

It was awful-tasting medicine, but I guess tha patient needed it.

Sometimes life is gonna hits you in the head with a brick. Don't lose faith.

I'm convinced (that) the only thing that kept me going was that I loved what I did.

You've got to find what you love.

And that is as true for work as it is for your lovers.

Your work is going to fill a large part of your life, and the only way to be truly satisfied is to do what you believes is great work.

And the only way to do great work is to love what you do.

If you haven't found it yet, keep looking, and don't settle.

As with all matters of the heart, you'll know when you find it.

And, like any great relationship, it just gets better and better as the years roll on.

So keep looking, Don't settle.

===========================================

My third story is about death.

When I was 17, I read a quote that went something like:

"If you live each day as if it was your last, someday you'll most certainly be right."

It made an impression on me, and since then, for the past 33 years, I have looked in the mirror every morning and asked myself:

"If today were the last day of my life, would I want to do what I am about to do today?"

And whenever the answer has been "No" for too many days in a row, I know I need to change something.

Remembersing that all will be dead soon is the most important tool I've ever encountered to help me make the big choices in life.

Because almost everything - all external expectations, all prides, all fear of embarrassment or failure - these things just fall away in the face of death, leaving only what is truly important.

Remembering that you are going to die is best way I know to avoid the trap of thinking you have something to lose.

You are already naked. There is no reason not to follow your heat.

About a year ago I was diagnosed with cancer.

I had a scan at 7:30 in the morning, and it clearly showed a tumor on my pancreas.

I didn't even know what a pancreas was.

The doctors told me this was almost certainly a type of cancer that is incurable, and that I should expect to live no longer than three to six months.

My doctor advised me to go home and get my affairs in order, which is doctor's code for prepare to die.

It means to try and tell your kids everything (you thought you'd have the next 10 years to tell them) in just a few months.

It means to make sure everything is buttoned up so that it will be as easy as possible for your family.

It means to say your goodbyes.

I lived with that diagnosis all day.

Later that evening I had a biopsy, where they stuck an endoscope down my throat, through my stomach and into my intestines, put a needle into my pancreas and got a few cells from the tumor.

I was sedated, but my wife, who was there, told me that when they viewed the cells under a microscope the doctors started crying.

Because it turned out to be a very rare form of pancreatic cancer that is curable with surgery.

I had the surgery and thankfully, I'm fine now.

This was the closest I've been to facing death and I hope it's the closest I get for a few more decades.

Having lived through it, I can now say this to you with a bit more certainty than when death was a useful but purely intellectual concept:

No one wants to die. Even people who want to go to heaven don't want to die to get there.

And yet death is the destination we all share.

No one has ever escaped it.

And that is as it should be, because death is very likely the single best invention of Life.

It is Life's change agent.

It clears out the old to make way for the new.

Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away.

Sorry to be so dramatic, but is is quite true.

Your time is limited, so don't waste it living someone else's life.

Don't be trapped by dogma - which is living with the results of other people's thinking.

Don't let the noise of others' opinions drown out your own inner voice.

And most important, have the courage to follow your heart and intuition.

They somehow already know what you truly want to become.

Everything else is secondary.

When I was young, there was an amazing publication called The Whole Earth Catalog, which was one of the bibles of my generation.

It was created by a fellow named Stewart Brand not far from here in Menlo Park, and he brought it to life with his poetic touch.

This was in the late 1960's, before personal computers and desktop publishing, so it was all made with typewriters, scissors, and polaroid cameras.

It was sort of like Google in paperback form, 35 years before Google came along:

It was idealistic, and overflowing with neat tools and great notions.

Stewart and his team put out several issues of The Whole Earth Catalog

and then when it had run its course, they put out a final issue.

It was the mid-1970s, and I was your age.

On the back cover of their final issue was a photograph of an early morning country road, the kind you might find yourself hitchhiking on if you were so adventurous.

Beneath it were the words: "Stay Hungry. Stay Foolish."

It was their farewell message as they signed off.

Stay Hungry. Stay Foolish. And I have always wished that for myself.

And now, as you graduate to begin a new, I wish that for you.

Stay Hungry Stay Foolish

Thank you all very much.

반응형
반응형

스프링 부트의 기본 디폴트 웹앱 서버 포트는 8080 번 이다.
이 포트 번호를 바꾸고 싶은 경우

src/main/resources 폴터 안에 있는 application.properties 파일의 내용을 아래와 같이 작성해주면 된다.

# server.port = 변경하고 싶은 포트번호
# 아래는 10041 번의 포트로 변경하는 경우
server.port = 10041
10041번으로 변경 예시

반응형

+ Recent posts