Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ncurses/2021-05-12-llt21
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Satoshi SAKAO
May 12, 2021
Programming
250
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ncurses/2021-05-12-llt21
社内のLTイベント「えるLT Vol.21 オンライン」で発表した資料です
Satoshi SAKAO
May 12, 2021
More Decks by Satoshi SAKAO
See All by Satoshi SAKAO
Testcontainers/2024-11-20-llt32
ottijp
0
120
Pkl/2024-04-17-llt31
ottijp
0
130
JavaScriptのデバッグ/2023-09-04-llt30
ottijp
0
200
CDK for TerraformでAzureリソースをデプロイする/2023-05-15-llt29
ottijp
1
350
TWELITEへの誘い/2022-12-27-llt28
ottijp
0
190
ビルドツールBazelを触ってみた/2022-09-28-llt27
ottijp
0
230
HashiCorp Vaultを使ったシークレットのセキュアな一元管理 〜Ansibleを添えて〜/2022-07-12-llt26
ottijp
0
190
AWSインフラのデプロイをCDKでカイゼンする/2022-03-23-llt25
ottijp
0
130
Amazon Timestreamでデータ補間/2021-12-27-llt24
ottijp
0
130
Other Decks in Programming
See All in Programming
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
360
From 6 People Classroom Meetup to 100 People Regional Conference / FOSS4G Hiroshima 2026
furukawayasuto
0
130
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
650
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
280
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
130
Claude Codeを組織的に動かして月400PRを実現した話
happy_ryo
0
270
GKE で Pod の見方を変えたら、スケールアウト時の挙動を真に捉えられた話
stkk
0
110
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
180
巨大モノリシックアプリ モダン化大作戦
ktcryomm
0
530
MIZARU@SPAJAM2026 第二回予選
1901drama
0
110
自分的「カンファレンスの楽しみ方」
syumai
0
200
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
700
Featured
See All Featured
How Software Deployment tools have changed in the past 20 years
geshan
1
34k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
430
30 Presentation Tips
portentint
PRO
1
390
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
330
Raft: Consensus for Rubyists
vanstee
141
7.7k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
A Modern Web Designer's Workflow
chriscoyier
699
190k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
How to build a perfect <img>
jonoalderson
1
6k
WENDY [Excerpt]
tessaabrams
13
39k
Prompt Engineering for Job Search
mfonobong
0
450
Transcript
ncurses Satoshi SAKAO えるLT Vol.21 2021-05-12 1
話すひと 2 🏢 インフォコム株式会社 品質マネジメント推進室 👨🔧 ソフトウェアエンジニア 🛠 Node.js /
GCP / IoT / iOS (Swift) 💖 猫,テクテクライフ(ランク: 20) Satoshi SAKAO @ottijp
3 motivation
PR to ranger/ranger 4 https://github.com/ranger/ranger/pull/2030
NCURSES Programming HOWTO 5 https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/
6 what’s curses
curses • is a library • realizes GUI like CUI
• provides terminal independent API 7
e.g. ranger (filer) 8
e.g. tig (git client) 9
ncurses • new curses • emulation of the original (System
V) curses • part of GNU project • https://invisible-island.net/ncurses/ 10
11 features
features • screen manipulation • print characters • change format
of characters • interface with the keyboard and the mouse • scrolling • windows 12
sisters • panel • menu • form • CDK (Curses
Development Kit) 13
14 demo https://github.com/ottijp/ncurses-demo-llt21
1. print characters • int mvaddch(int y, int x, const
chtype ch); 15
2. change format of characters • int start_color(void); • int
init_pair(short pair, short f, short b); • int attrset(int attrs); 16
3. interface with the keyboard and the mouse • int
getch(void); • mmask_t mousemask(mmask_t newmask, mmask_t *oldmask); • int getmouse(MEVENT *event); 17
18 in python, node.js and swift
python 19 https://docs.python.org/3/library/curses.html
node.js 20 https://github.com/fresc81/node-curses
node.js 21 https://github.com/chjj/blessed
swift 22 https://github.com/TheCoderMerlin/Curses
23 Appendix
refs • ncurses - Wikipedia https://en.wikipedia.org/wiki/Ncurses • NCURSES Programming HOWTO
https://tldp.org/HOWTO/NCURSES-Programming-HOWTO/ 24