[일기] 2018년을 돌아보며, 그리고 새해 목표

안녕하세요. 제이콥입니다.


벌써 한해가 다 가다니.. 아쉽습니다.


제가 스팀잇을 2017년 12월부터 했는데, 이 때 2018년 새해 계획을 적었더군요.


그 글을 읽어보며 한 해 무엇을 했나? 잘했나? 되돌아보며 정리해봤습니다.


https://steemit.com/busy/@jacobyu/2018-feat-3




1. 회사 생활



  • 2018년 베스트 팀, 자기 PR 우수자 선정

  • 첫 외국 출장을 갔고 성공적으로 전시회, 일을 마침.


2. 스팀잇을 하면서 많은 글을 적다.



3. 개인 프로젝트



  • 업무 외 시간에 하고싶은 개발을 다해봤습니다.

  • 목표는 높았으나, 저 혼자 사용할 정도로만 만들었습니다.


스팀파이터 – 스팀 보상 격투 게임



워프스팀 – wordpress to steem 플러그인



로봇 프로젝트 – J-bot, IoTswitch






반성의 시간


이번 한 해 나름 알차게 살았습니다.


그만큼 아쉬운 것도 많았습니다.


1. 하나에 집중하지 못함


성격상 호기심이 많고 새로운 걸 도전하는 걸 좋아하는 편이라.. 하나를 꾸준히 못한것 같습니다.


그래도.. 개발, 로봇 관련 개발이라는 분야 안에서만 쭉 해와서 그거는 잘했다고 생각합니다.


또.. 생각해보면 아쉬운게


프로젝트들 중에 하나에 집중을 했으면 어땠을까?


하나만 열심히 개발하고, 글도 쓰면서,


하나의 프로젝트의 퀄리티를 높이는 쪽으로 갔으면 어땠을까? 라는 생각을 하게 됩니다.


새해에는 퀄리티에 집중을 해보고자 합니다.


2. 게임, 만화


저는 게임이랑 만화를 좋아합니다.


무언가 이루기 위해 다른 하나를 포기해야하지만, 저는 그러지 못했습니다.


1번과 비슷한 이유로 반성하게 됩니다.


3. 2018년 계획을 꾸준히 상기시키지 못했다.


2018년 계획을 스팀잇에 작성했었는데 까먹고있었습니다.


1. 회사 업무(개발)에 대해 나 스스로, 팀원들에게 인정 받기

2. 영어 회화

3. 자기 계발


회사 업무에 대해 스스로 평가해보자면.. 그래 잘했어!


영어 회화는.. 이것저것 다양한 방법으로 시도해봤으나 나름 꾸준히 하긴 했지만 스스로 만족하지 못하겠군요.

열심히 못했습니다. 다양한 방법을 시도한 것은 따로 글을 적어보고 싶어요. 글이 너무 길어질것 같아서..


자기 계발로는.. 열심히 스팀잇 글을 작성한 것, 여러 프로젝트 수행, 하지만 높은 퀄리티를 못냈습니다.


코딩테스트는 한달 기본 편, 몇 개 문제 풀기 밖에 하지 못했군요.


반성합니다.




2019년 새해 목표


새해 목표에 대해 적어보겠습니다.


1. 회사 생활


2019년에는 좀 더 나의 역량을 키울 수 있는 한해가 되고 싶습니다.



  • 딥러닝을 공부하고, 적용해볼 수 있는 한 해가 될수 있도록 한다.

    • 데이터셋이 있을 때, 원하는 물체 몇 개 선택하여 그 물체들 디텍션을 할 수 있도록 한다.



  • ROS 전문가 되기

    • 대학생때 부터 ROS를 알게되어 연구실에서도, 회사에서도 계속 쓰고 있다.

    • 꾸준한 ROS 관련 공부, 개발

    • ROS 관련 공부하고 개발하는 것을 정리, 포스팅



  • 회사 사람들과 소통/ 이야기하기


2. 서비스 개발/운영


2018년에 저에게 신선한 충격을 준 책이 있다면 부의 추월차선입니다.


돈버는 서비스를 만들고 싶어졌습니다.


2018년 동안 스팀헌트, 테이스팀, 트립스팀, 디클릭, 스팀프레스


이오스의 다이스앱, 이오스 나이츠 등을 보면서 기회가 많음을 느꼈습니다.


차근차근 제가 할 수 있는 선에서, 업무시간 외에 주 10시간 집중해서 개발이 첫 목표입니다.


그리고 실제 돈을 벌어올 수 있는 서비스를 만들고 싶습니다.


3. 꾸준한 글쓰기 습관 – 스팀잇


2018년은 생각나는 글, 하고싶은 것 맘껏 작성해봤다면


2019년에는 시리즈 글을 적어보고 싶습니다.


그리고 사람들이 읽기 쉬운 글을 적고 싶습니다. 나 혼자 보고 만족하는 글 말고요.



  • 시리즈 글 연재하기

    • ROS 관련 공부, 개발 글

    • 영어 일기




4. 영어 공부


2019년 영어의 목표는 오픽 IH, 그리고 외국인 친구 만들기, 해외 출장


최종 목표는 해외 출장, 해외에서 일하기, 일 끝나고 놀러다니고 싶습니다. 외국 로봇회사에서 일하고 싶다. 몇년정도 살아보고싶다.


이를 위해서 할 것은 꾸준히 영어 공부를 하는 것, 매주 어느정도 할 분량을 정해 꾸준히 하는 것


[독서] 영어 잘하고 싶니? – 후기 @bree1042님의 책을 읽고 어느정도 계획을 잘 잡은것 같습니다.


한 2-3주간 영어 공부를 한 것을 보면


읽기 : 유토피안 글 읽기, 개발 관련으로 많이 읽는 편 (한 것 같다.)


듣기 : 스피킹맥스 하루 30분씩 듣기. (매일은 아니여도 들었다. 코스 하나 끝냈다.)



쓰기 : 유토피안 영어 글 한달에 최소 1개 작성, 영어 일기 일주일에 1개 정도 작성 (작성했다.)


말하기 : 스피킹맥스 학습, 영어 스터디 꾸준히 참석하기 (스터디도 가고 스피킹 맥스도 했다.)






이렇게 한 해를 돌아보고 새해 계획을 세워봤습니다.

모두 새해 복 많이 받으시고 건강하세요. 행복하세요.

1년 동안 제 글을 많이 봐주신 여러 스티미언님들 덕분에 글을 계속 적어온 것 같아요.

감사합니다.

ps. 글을 다시 읽어보는데 눈에 잘 안들어오네요.. ㅜㅜ 어떻게 하면 보기 좋은 글을 적을 수 있을까요?


This page is synchronized from the post: ‘[일기] 2018년을 돌아보며, 그리고 새해 목표’

python: mysql DB query 요청

안녕하세요. 제이콥입니다.


이번 글에서는 python으로 mysql db에 접근, query를 요청하는 것에 대해 정리를 해봤습니다.


다른걸로 공부하시다 이렇게 사용할 수 있구나 정도.. 보시면 될 것 같습니다.




이전 글에서는 mysql-workbench를 설치했었습니다.

mysql-workbench를 설치하고 싶다면 아래 글을 봐보세요.

-> https://busy.org/@jacobyu/1535-mysql-db-workbench-setup-vultr-ubuntu

설치를 한 후, schema와 table을 생성해야하는데요.


이 생성과정은 mysql-workbench에서 하면 아주 편합니다.


UI에서 테이블 이름, 필드 이름, 타입 등을 넣어주면 됩니다.


그러면 자동으로 mysql query 문이 생성됩니다.


image.png




이제 파이썬으로 mysql을 다뤄보겠습니다.


먼저 pymysql 라이브러리를 설치합니다.


pip install pymysql




설치 다하셨나요? ㅎㅎ


제가 작성한 코드로 설명해보겠습니다.


저는 object map라는 테이블을 만들었고 object를 테이블에 넣고 지우고 업데이트하고 가져오는 작업을 해봤습니다.




먼저 특정 db의 schema에 연결을 합니다.


연결이 되면 이 conn이라는 객체를 이용해서 여러 query를 수행합니다.


DB가 설치된 서버 host name,


DB에 접근할 user명, 비밀번호,


Schema 등을 입력합니다.




def initDB(self):
conn = pymysql.connect(
host= ‘test.net’,
user= ‘test’,
password= ‘test_pw’,
db= ‘your_schema’,
charset= ‘utf8mb4’)
return conn



아래 함수는 select로 테이블 내의 값들을 가져와서


Object라는 객체에 값을 채워넣는 일을 합니다.


이 코드에서는 처음에 정의한 initDB로 connection을 한 후, 쿼리를 수행하는 것을 볼 수 있습니다.

    def loadObjectMap(self):
        conn = self.initDB()
        result = None
        try:
            with conn.cursor() as cursor:
                sql = 'SELECT * FROM ObjectMap'
                cursor.execute(sql)
                result = cursor.fetchall()
                # print(result)
        except Exception as e:
            print('I got error on search table')
            conn.close()
        conn.close()
        objectArray = []
        for object_quary in result:
            obj = Object()
            obj.id = object_quary[0] # auto id
            obj.tag = object_quary[2]
            obj.tagName = object_quary[3]
            obj.directionX = object_quary[4]
            obj.directionY = object_quary[5]
            obj.directionZ = object_quary[6]
            objectArray.append(obj)
        return objectArray

아래 함수들은 물체를 지우고, 넣고, 업데이트 하는 함수들입니다.




def delete_object(self, auto_id): #delete an object which has auto_id
pass # DELETE FROM athena.ObjectMap WHERE AI_ID=’15’;
conn = self.initDB()
try:
with conn.cursor() as cursor:
sql = ‘DELETE FROM ObjectMap WHERE AI_ID = %s’
cursor.execute(sql, (auto_id))
conn.commit()
print(‘I successed on deleting ID’)
except Exception as e:
print(‘I got error on deleting ID’)
print(e)
conn.close()
conn.close()

def insert_object(self, obj): # insert new object to DB
# obj.id, obj.tag, obj.tagName, obj.directionX, obj.directionY, obj.directionZ
conn = self.initDB()
try:
with conn.cursor() as cursor:
# print obj
sql = ‘INSERT INTO ObjectMap (objectMapID, tagID, name, directionX, directionY, directionZ) VALUES (%s, %s, %s, %s, %s, %s)’
cursor.execute(sql, (obj.id, obj.tag, obj.tagName, obj.directionX, obj.directionY, obj.directionZ))
conn.commit()
print(‘I successed on inserting ID’)
except Exception as e:
print(‘I got error on inserting ID’)
print(e)
conn.close()
return 0
conn.close()
return 1

def update_object(self, updateID, obj): # update obj info to another object which has updateID.
# self.update_object(obj.id, obj.directionX, obj.directionY, obj.directionZ)
conn = self.initDB()
try:
with conn.cursor() as cursor:
sql = ‘UPDATE ObjectMap SET tagID = %s, name = %s, directionX = %s, directionY = %s, directionZ = %s WHERE AI_ID = %s’
cursor.execute(sql, (obj.tag, obj.tagName, obj.directionX, obj.directionY, obj.directionZ, updateID))
conn.commit()
print(‘I successed on updating ID’)
except Exception as e:
print(‘I got error on updating ID’)
print(e)
conn.close()
conn.close()


끝!


감사합니다.


This page is synchronized from the post: ‘python: mysql DB query 요청’

Tyche - The most intelligent AI robot toy

Tyche

The most intelligent AI robot toy


Screenshots

411bb3da628d74919c5d1f62974f12d6.jpeg
713b5c01bf368370e4de4326dd07817b.jpeg
View Image
c632c77c0bc2cd7c2b2ecb4e30a11d75.jpeg
View Image

Hunter’s comment

Hi!

I wanna share with you a product named Tyche.

Tyche is an AI companion robot using a smartphone as its brain.

According to the website, Tyche has some features.

  • A conversational agent directed towards achieving true AI capabilities
  • Intelligent robot able to learn who the owner is through self disclosure.
  • Builds its own memory of events and conversations through multi-modal spatial sensory including audio and visual perceptions
  • Reasons and solves problems via planning based on the episodic memory built.

When I used Tyche, I was surprised that Tyche remembered what I said and answered questions based on robot memory.

I think Tyche is an affordable robot for giving children a chance to experience AI.

I added a video “Tyche AI Learning Robot for Kids”.
https://www.youtube.com/watch?v=IcduVtArZFU

Thank you.


https://tyche.club/shop/tyche-classic-type/



Steemhunt.com

This is posted on Steemhunt - A place where you can dig products and earn STEEM.
View on Steemhunt.com

This page is synchronized from the post: ‘Tyche - The most intelligent AI robot toy’

mysql DB, mysql-workbench setup on Ubuntu (Vultr 호스팅)

안녕하세요. 제이콥입니다.

mysql-workbench를 이용하여 mysqlDB 원격 접속을 위한 설정에 대해 적어봤습니다.

전에 한번 했었는데, 다시 하려니 기억이 안나더라고요. 그래서 정리하게 됐습니다.

먼저 mysql DB 셋업 과정, 그리고 방화벽 port 관련 설정, mysql-workbench 설치 및 설정 등을 할 것입니다.


제 환경은 우분투이고, vultr 가상 호스팅 서버입니다. (서버가 우분투환경이면 저랑 똑같이 하면 됩니다.)

Vultr에 대해 궁금하시면 아래 글을 봐보세요!

https://steemit.com/kr-dev/@jacobyu/vultr

순서대로 시작해보겠습니다.


Vultr 내에서 셋팅 #0 db 계정 생성

ssh로 접속을 합니다. 아래 계정이름과 ip는 임의로 적어봤습니다.

ssh testid@123.123.55.123

이미 워드프레스는 설치를 했다면, mysql은 같이 설치되어있습니다.

mysql 계정을 하나 만들어보겠습니다.

먼저 루트 계정으로 접속합니다. 처음에 mysql를 설치할 때 정했던 아이디와 비밀번호를 입력합니다.

계정을 생성합니다. ‘test’ 는 아이디, 그리고 ‘12345678’은 비밀번호입니다.

mysql -u root -p

use mysql;

create user ‘test‘@’%’ identified by ‘12345678‘;

계정을 생성한 다음에 잘 생성됐는지 확인합니다.

select user from user;

다음으로, 권한을 주는 것을 깜빡했는데요.

권한을 줘야합니다. 외부에서 mysql-workbench로 접속을 해서 쉽게 변경을 할 수 있도록이요.

grant all privileges on . to ‘test’@’%’ ideintified by ‘12345678’;

flush privileges;


Vultr 내에서 셋팅 #1 방화벽 db 접근 port 열기

또한 외부에서 접속하기 위해서는 port를 열어줘야합니다.

ufw를 설치합니다. ufw는 쉽게 포트를 설정할 수 있도록 해줍니다.

설치 후, 상태를 한번 봅니다.

어떤 포트가 열려있고 닫혀있는지 적혀있습니다.

sudo ufw status verbose

다음으로는, mysql접근을 위한 3306 포트를 엽니다 (기본이 3306). 혹은, 자신만의 포트로 변경을 해도됩니다.

sudo ufw allow 3306


Window PC #0 MYSQL workbench 설치 및 셋팅

https://dev.mysql.com/downloads/workbench/에서 다운로드합니다.

다운로드 후, manage connection을 들어가서 해당 서버의 ip/혹은 domain 그리고 db ID/pw를 입력하면 끝!

그리고 실제로 연결해보시면 됩니다.

image.png

image.png

mysql workbench 장점으로는

DB를 GUI에서 보고 수정가능하고, 커맨드로 날려보고 여기 하나에서 다해볼 수 있습니다.

여기까지 따라오시면서 주의해야할점은

계정의 권한 확인, 방화벽 포트 확인이 있습니다.


자! 정리를 간단히 해봤습니다!

다음 글에서는 이어서 테이블도 만들어보고 파이썬에서 접근도 해볼 예정입니다.

감사합니다.




### Originally posted on Story of Jacob. Steem blog powered by ENGRAVE.

This page is synchronized from the post: ‘mysql DB, mysql-workbench setup on Ubuntu (Vultr 호스팅)’

Last test...

test


https://steemd.com/diary/@jacobyu/1510-last-test








{“tags”:[“diary”,”test”],”image”:[],”link”:[],”category”:”{\”id\”:\”5c10aed31a9941001ab1510\”,\”steem_tag\”:\”diary\”,\”slug\”:\”diary\”,\”name\”:\”diary\”}”,”app”:”engrave/0.1″,”format”:”markdown”,”domain”:”passionbull.engrave.site”}

요래 나오네.


category_json = JSON.stringify({

id: ‘5c10aed31a9941001ab’+(wpsePost.Post_ID),

steem_tag: tag_array[0],

slug: tag_array[0],

name: tag_array[0]})

console.log(category_json);


stringify 때문인 것 같다.


ㅜㅜ



### Originally posted on Story of Jacob. Steem blog powered by ENGRAVE.

This page is synchronized from the post: ‘Last test…’

[후기] Engrave - 스팀 기반 블로그

Engrave라는 괜찮은 스팀기반 블로그가 나왔습니다. test


스팀에서 글을 작성하고 이전 글을 찾아보기도 힘들고, 분류도 못하는게 맘에 안들는데


Engrave를 통해, 스팀 글을 자신만의 블로그에서 볼 수 있으며, 분류가 가능합니다.


장점



  • https://engrave.website/에서 3분이면 나만의 블로그를 만들 수 있다.

  • 이 블로그에서 글을 쓰면, 스팀에 올라간다. 그리고 보상을 받을 수 있다.

  • 분류가 가능하다.

  • 개인적인 생각으로는 구글 애드센스도 붙일 수 있을 것 같다. 내 웹페이지니깐?

    • 헤드에다가 구글 애드센스 넣으면 되지 않을까..



  • 스팀잇 아이디만 있다면 쉽게 나만의 블록체인 블로그를 만들 수 있다.

    • 즉, 테이스팀이나 트립스팀, busy.org처럼 이 블로그도 스팀잇에 작성된 글, 댓글들을 모두 가져온다.



  • 도메인 등록, 웹마스터 등록, 분석 툴 등록, 알람 서비스 등 여러가지 붙일 수 있도록 해놨다.


단점



  • 저자 수익의 15퍼를 가져간다. 이정도 장점이면 사용할만하긴 할 것 같다. 그래도 아깝다.

  • 이전 글들을 가져오지 못한다. 오직 engrave에서 작성한 글들만 가져온다.

    • 이건 engrave에서 못하게 막아놓은 것 같다.

    • 이전 글들을 가져오게 한다면 busy에서 글을 쓰고, engrave에서 글을 분류해서 보고 그러면 좋겠는데 말이다.




단점보다는 장점이 많고, 이제 시작해서 충분히 좋은 서비스가 될 것 같습니다.


특히, 이전 글만 가져오게 해준다면 내 글들을 분류해볼 수 있고 좋을 것 같습니다.


아래는 engrave에서 만든 내 블로그입니다.


diary와 movie로 분류해봤습니다.


https://passionbull.engrave.site/





어떻게 하면 busy에서 작성한 글들을 engrave에 올릴 수 있을까? 를 고민하다가


조금 테스트를 해봤습니다.


steemd에서 일단 글에 속성을 살펴봤습니다.


json_metadata에 engrave에서 추가적으로 넣은 속성값들이 보이더군요.


그래서 이 부분을 추가해서 글을 작성하면 engrave에도 보이지 않을까?


이 값들을 넣어서 한번 글을 작성해보려고요.


image.png




https://github.com/wise-team/engrave/blob/1a9ef8db2abdcf465e08b7b916d7231a02e63f9b/engrave/public/js/posts.js


https://github.com/wise-team/engrave/blob/164e12f40624f5bc24617e581a6015c2a5d01d7b/engrave/src/routes/dashboard/posts.ts


https://github.com/wise-team/engrave/blob/335bbfb0b7766d6877a76cb3892a1a7d5a6646bb/engrave/src/modules/Utils.ts


https://github.com/wise-team/engrave/blob/335bbfb0b7766d6877a76cb3892a1a7d5a6646bb/engrave/src/modules/Utils.ts#L41-L53




This page is synchronized from the post: ‘[후기] Engrave - 스팀 기반 블로그’

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×