JavaScript ã§ã¹ãã¬ããæ§æ使ã£ã¦ãªãã¸ã§ã¯ããã pick ãã
ããããã®ããã
const obj = { a: 1, b: 3, c: 5 };
ãããã a, b ã ããåãåºãã
{ a: 1, b: 3 }
ãä½ããã
çµè«
ããããã°è¯ã
const picked = (({ a, b }) => ({ a, b }))(obj);
æµã
ã¹ãã¬ããæ§æ*1使ã£ã¦ãããªæãã§è¦ç´ ãåãåºãã
const { a, b } = obj; console.log(a, b); // => 1 3
é¢æ°ã«ãã¦åããã¨ããã¨ãããªæã
const proc = ({ a, b }) => { console.log(a, b) }; proc(obj); // => 1 3
æ»ãå¤ã§åãåãã¨ãããªæã
const fn = ({ a, b }) => { return { a, b } }; const picked = fn(obj); console.log(picked); // => { a: 1, b: 3 }
ãªã®ã§çç¥ãã¦æ¸ãã¨
const picked = (({ a, b }) => { return { a, b } })(obj);
return ãçç¥ã§ãã*2ã®ã§
const picked = (({ a, b }) => ({ a, b }))(obj);
VSCode ã« Makefile ã®ã¿ã¹ã¯ã追å ãã
æµã
Configure éã
Create tasks.json ãã
Others é¸ã¶
tasks.json ã®éå½¢ãã§ããã®ã§ãããªæãã§æ¸ãæã
ï¼ ${relativeFile} ã¿ããã«ããã¨ãç¾å¨éãã¦ããã¡ã¤ã«ã®ç¸å¯¾ path ããåããï¼
{ // See https://go.microsoft.com/fwlink/?LinkId=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "make: test current file", "type": "shell", "command": "make", "args": [ "test", "path=${relativeFile}" ], "presentation": { "panel": "dedicated", "clear": true, "focus": true } } ] }
Run Task å®è¡
tasks.json ã«ã¤ããã label ã表示ããã¦ããã®ã§ãããå®è¡
ãããªæãã§ä¸ã«è¡¨ç¤ºããã
çµµæåãå¤å®ããæ£è¦è¡¨ç¾
以ä¸ã®è¨äºã®æåã ããèªãã§
/\p{Emoji}/u.test("ð");
ã¿ããã«æ¸ãã°è¯ãã®ããªãã¨æã£ããããã§ã¯ãªãã£ãã
èªã¿é²ããã¨ãããªé¢¨ã«æ¸ãã¾ããããã¨ããã®ãåºã¦ããã
/\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F/gu;
ã§ã unicode.org ã«ãã emoji-data ã£ã¦ã®ãè¦ã¦ã¿ãã
http://unicode.org/Public/emoji/12.0/emoji-data.txt
0..9 ãå ¥ã£ã¦ãã
0030..0039 ; Emoji # 1.1 [10] (0ï¸..9ï¸) digit zero..digit nine
1 ãã©ããªãã試ãã¦ã¿ãã
> /\p{Emoji}/gu.test("1") true
ãã¼ï¼ãããã«ã
> /\p{Emoji}/gu.test("ã") false
ãããã ã¨ã¡ãã㨠false ã«ãªãã
ææ¡ããã¦ãããã¤ã§ 1 ã試ãã
> /\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F/gu.test("1") false
ã¡ãã㨠false ã«ãªã£ãã
terraform 㧠workspace 使ã£ã¦ç°å¢ãã¨ã®å¤æ°ã®èªã¿è¾¼ã¿ããã
terraform ã® workspace 使ã£ã¦ãã¦ãæ¬çªã¨ staging ã§å¤æ°åå¤ãããã¨ãã«ã¯ã©ããããã ãããªãï¼ãã£ã¦æã£ã¦èª¿ã¹ããã ãã©ã
ããã¥ã¡ã³ãæ¢ãã¦ããã©ãçãããçµå±ä»¥ä¸ã® issue ã®ããã«ãã
Feature: Conditionally load tfvars/tf file based on Workspace · Issue #15966 · hashicorp/terraform · GitHub
以ä¸ã®ãããªãã£ã¬ã¯ããªæ§é ã ã¨ãã¦ã
. âââ main.tf âââ modules âââ workspaces âââ production â  âââ tfenv.json âââ staging âââ tfenv.json
ä¾ãã° staging ã® tfenv.json ã以ä¸ã®ããã«ãªã£ã¦ããã¨ãã«
{ "db_host": "staging.example.com", "db_name": "staging" }
main.tf ã«ä»¥ä¸ã®ããã«æ¸ãã¦è§£æ±ºã
locals { // ããã©ã«ãå¤ããããã¤ã¯ããã«æ¸ãã¡ãã default_env = { db_name = "default_db" } tfvarsfile = "workspaces/${terraform.workspace}/tfenv.json" tfvarsfilecontent = fileexists(local.tfvarsfile) ? file(local.tfvarsfile) : "{}" tfvars = jsondecode(local.tfvarsfilecontent) tfenv = merge(local.default_env, local.tfvars) } module "base" { tfenv = local.tfenv source = "./modules" }
iPhone æ é㧠Suica å¼ãç¶ããã«æ°ãã iPhone ã«ãªã£ã¦ãã¾ã£ãå ´åã«ã¯ iCloud.com ããåé¤ãã
iPhone 交æåã« Suica ç»é²ãã¦ããèãããªãã£ããã ãã©ãåã®ãã¨ã«æ¥ã人ã¨ãã¯ã¿ããªãã¢ãã¤ã« Suica 使ã£ã¦ã¾ããï¼ãã£ã¦èããã¦ãã¦ãããï¼ãã¨ãªãã
交æå¾ã® iPhone 㧠Suica ã®ã¨ããè¦ããã¨ã©ã¼ã«ãªã£ã¦å¼ãç¶ããè©°ãã ã¨æã£ãã
ãã以ä¸ã®è¨äºã«ããéã Mac ãã iCloud ã«ç¹ãã§ãªãã©ã¤ã³ã«ãªã£ãæ§ iPhone ãã Apply Pay åé¤ãããã¨ãã§ãã¦ããããã¨ãã°ãããã¦ãã Suica ãæ»ã£ã¦ãã¦ããã
ï¼ã¯ã¬ã¸ããã«ã¼ãå«ãã¦å
¨é¨åé¤ãã¡ãã£ã¦åé¡ãªãï¼
ã¡ã¼ã«ã¢ãã¬ã¹ã®ãã¡ã¤ã³ãã§ãã¯ã§åé¡ãªããã¤ãã¨ã©ã¼ã«ãªã
node ã§ã¡ã¼ã«ã®ã¢ãã¬ã¹ã®ãã¡ã¤ã³ãã§ãã¯ããã®ã« dns 使ã£ã¦ããã§ããã
dns.resolveAny(domain, (err, records) => { if (err) { // 1. ãã¡ã¤ã³ãåå¨ããªãã®ã§ã¨ã©ã¼ return; } const mailRecords = records.filter((record) => { return record.type === 'MX' || record.type === 'A' || record.type === 'AAAA' }); if (mailRecords.length === 0) { // 2. ãã¡ã¤ã³ãããã©ã¡ã¼ã«ä½¿ããªãã®ã§ã¨ã©ã¼ return; } // åé¡ãªã });
ã® 2. ã«é¢ãã¦ãã¾ã«ã¨ã©ã¼ã«ãªã£ã¦æ¬²ãããªããã¤ããã£ã¦å°ãã
ä¾ãã° softbank.ne.jp ã®çµæã
[ { "value": "ns003.bbtec.net", "type": "NS" }, { "value": "ns004.bbtec.net", "type": "NS" }, { "nsname": "ns003.bbtec.net", "hostmaster": "root.softbank.ne.jp", "serial": 2019010901, "refresh": 1200, "retry": 600, "expire": 2419200, "minttl": 1800, "type": "SOA" } ]
ã¿ããã«ãªã£ããããã
ã©ãããç¶æ
ãªãã ãããï¼ä½¿ãæ¹ééã£ã¦ãã®ããªãã¨æãã¤ã¤ãã¾ã«ããã¨ã©ã¼ã«ãªããªããããããã
builderscon tokyo 2018 è¡ã£ã¦ãªãã¬ãã·ã¥ãã¦ãã¾ãã
åå¤ç¥ã®æããæ°åããå ¥ãã¦è¡ãã¾ãã
ä»æ¥ #builderscon è¡ããããã«ã³ã³Tã·ã£ãã§è¡ããããªã¨æã£ããã ãã©ã1ã¤ã¯å®å®¶ã®ãã¸ã£ãã«ãªã£ã¦ããããã1ã¤ã¯ä»æ¥çã¦ããã¸ã£ãã ã£ãããçµææ´æ¿¯ãçµãã£ãã°ããã®ãã¸ã£ãã®æ´¾æãã³ã¯ãªãã¤ã«ãªã£ã
— monmon (@lesamoureuses) 2018å¹´9æ5æ¥
åå¤ç¥ã® IoT 話楽ããã£ã
éã®è©±ãã¤ããããæ¸ããªããªããã©ããã¼ã使ã£ã¦ãã©ã¤ãã©ãªã®éçºãçµãã£ã¦ãã¾ã£ãããæ¸ãæããªãã¨ãããªãã®ãã¼ããã¨ã¦ãå°ããæããã¬ãã«ã ã£ãã
ãããã®ãã¢ãããããã¦ããã£ãã
ããã Makeé¨çºè¡¨ã®ãããããã¼ã«ãããã #builderscon pic.twitter.com/vVybD2EixZ
— monmon (@lesamoureuses) 2018å¹´9æ6æ¥
ãã1ã¤ã®çºè¡¨ã®æ¯ãã©ã·ã¹ã¿ã³ãã§ãå ããªããã§ããã©ç¬ãããã¿ã£ã½ããªã£ã¦ã¦ç¬ã£ã¡ãã£ããã©ä¸æããã£ã¦ãã®ã失æãã¦ãã®ãããããªãããå ãããã®å¤§äºãªã®ãã¨ç解ããã
IoT å ãã®å¤§äºãªãã ãªã£ã¦ãã¨ãããã£ã #builderscon
— monmon (@lesamoureuses) 2018å¹´9æ6æ¥
åæ¥æã«é»ååæããã£ã
ãä¼å ´ã®ãããã¯ã¼ã¯ãè¨å®æ¸ã¿ã§ããçãªãã¨æ¸ãã¦ãã£ããã ãã©ãã Mac ããç´æ¥ç»åçªã£è¾¼ãããã¾ãé¢ä¿ãªããããã¨æã£ã¦ç»åçªã£è¾¼ãã§åèµ·åããããããã¯ã¼ã¯ãªãã¦QRã³ã¼ãåãã«è¡ããªããªã£ã¡ãã£ãã¿ããã§ã¨ã©ã¼ã«ãªã£ããã¨ãããã¨ã§ä¼å ´ã§è¨å®ãç´ãã¦ä¸æãããã¾ãããã¨ããããã§ããã¨ãããããã¨ãããã©ããããã®å«ãã¦æ¥½ããã£ãã®ã§è¯ãè¯ãã
家ã§ã¨ããããç»åçªã£è¾¼ãã§ã¿ããã£ã¦è©¦ããããããã¯ã¼ã¯è¨å®ãã¦ãªãããQRã³ã¼ãåããªãã¦ã¨ã©ã¼ã«ãªã£ãããªãã»ã©ç²ç¹ã #builderscon #nafuda pic.twitter.com/eQerr1RjVT
— monmon (@lesamoureuses) 2018å¹´9æ6æ¥
æ親ä¼ã¨ HUB è¯ãã£ãã
ã¼ã£ã¡ã ã£ãã®ã§æ親ä¼ã§ã¯é£ãã«ãã人ãæã¾ãã¦è©±ãããããªã³ãã¬ã§ã¤ã³ãã©ã¨ã³ã¸ãã¢1人ãªç°å¢ã®äººã§ãæè¡è©±ã ããããªãä¼ç¤¾ã®è©±ãé¢ç½ãã£ããããããéã¾ããé£ãã®ç¥ããªã人ã«è©±ããããã°ä½ãããé¢ç½ã話ã§ããã
HUB ã§ã¯ã¹ã¿ããã®äººãã¡ã¨è©±ãã¦ããããã«çµãã£ã¦ãã¾ã£ãã話足ããªãã£ããªã¼ããã¦ã¢ã¢ç¾å³ããã£ãã§ãã
ãã¦ã¢ã¢12å¹´ç¾å³ããã§ã #builderscon pic.twitter.com/ctb5C0YzuT
— monmon (@lesamoureuses) 2018å¹´9æ7æ¥
å¤ç®çæ室2åãããã®å¤§ããã欲ãã
æ親ä¼ã§è©±ãã人ãè¨ã£ã¦ããã©ãå¤ç®çæ室ããæºå¸ã«ãªã£ã¦ãã¾ãã®ã§å¤ç®çã®ãã¼ã¯ããã¤ãèãã®è«¦ãã¦ãã¾ã£ãããã¡ã¤ã³ãã¼ã«ã¨ã¤ãã³ããã¼ã«ã«å± ãã°ãã£ããã¿ãããªæãã«ã
å¤ç®çæ室ããæºå¸ã«ãªã£ã¡ããããæ ¶æã®æ¹ã«ã¹ã±ã¼ã«ã¢ããããé¡ãããã #builderscon
— monmon (@lesamoureuses) 2018å¹´9æ7æ¥
å ¥ããã¨ãã§ããå ´åã§ãã¹ã¯ãªã¼ã³ã1ã¤ã ã£ããããéå´ä¸çªåã«åº§ãã¨ã»ã¼ç横åãä¸ã«é£ãã®äººã®åããæ°ã«ãªã£ã¡ããã£ã¦ããè¾ããã£ãã
å¤ç®çæ室ãã¹ã¯ãªã¼ã³ã®çéã®åããè¦ã¦ãã®ã ãã¶è¾ãã£ãã横ã®äººã«è¢«ããªãããã«æºã®åããã¹ã¯ãªã¼ã³å´ã«è§åº¦ä»ãã¦æ¬²ãã #builderscon
— monmon (@lesamoureuses) 2018å¹´9æ8æ¥
ã®ã ãã©ãããã¯ããã«åå¿ãã¦ããã£ã¦æºã®åããå¤ãã£ã¦ã¾ããããããï¼
ï¼æ®å¿µãªãããã®ãã¨åã¯åº§ã£ã¦ãªãã®ã§ããããã«ãã£ã¦è¯ããªããã¨ããã£ããåã®ããã§ãããããªããï¼
ç³ãéããã¾ããï¼
— Daisuke Maki (anovaããï¼ (@lestrrat) September 8, 2018
ä»å¹´ã ajitofm è´ãã¾ãã
ä»å¹´ãé¢ç½ãã£ããã ãã©çãæéã®ä¸ã§ããããã®ã«ãã´ãªè©±ããªãã¨ãããªãã£ã¦ãªãã¨æ·±ã話ã«è¡ããã«åããªãã¨ã§å¤§å¤ããã ãªã¨ããæãã ã£ãã
ãããããã #ajitofm ããï¼ #builderscon pic.twitter.com/pwhXTPno2W
— monmon (@lesamoureuses) 2018å¹´9æ8æ¥
ããã¼ã«ãããæãã常ã«ä½ããä½ãã«å¤æãã¦ããã¤ã¡ã¼ã¸ãã #builderscon
— monmon (@lesamoureuses) 2018å¹´9æ8æ¥
HUB ã«æ¥ãã #ajitofm ã®äººãã¡ãå± ãã®ã§é£²ãã§ã¾ã #builderscon pic.twitter.com/ZX8OjyJGD0
— monmon (@lesamoureuses) 2018å¹´9æ8æ¥
ä»å¹´ã builderscon 楽ããã£ãã§ãï¼
ãã¼ã¯ã«ã¤ãã¦ã¯ feedback ããè¿ããã¨ãã§ãã¦ããã«ç´æ¥ææ³éããã®è¯ãã£ãã§ãã
è´ããä¸ã§ã¯ kazuho さんのトーク ã¯æ®æ®µå
¨ç¶è§¦ãã¦ããªãã®ã§ããããªãã¨ããå¤ã
ãã£ããã ãã©ãããããåé¡ãã£ãããããã解決ããããã¾ã ããããåé¡ãããããã®æµãããããããã¦ãã£ããã¨ãã¦ãããè¯ãã£ãã
ãæä¸ã»ãã·ã§ã³è¡ããããªãã©ããããããªããã¨æã£ã¦ããã ãã©ãã®ããã«æ©èµ·ããã¦è¯ãã£ãã
ã¨ãããã¨ã§ä»å¹´ã builderscon 楽ããã£ãã§ãï¼
å
¨ãç¥ããªã話ã«è§¦ãããã£ãããããããã£ã¦æ®æ®µã®ä»äºã®æã¨æ°åãå¤ããã
ã¹ã¿ããã®æ¹ã
ãå¤ããè¦ã¦ãã¨ã ãã¶ä½è£ããæãã§ãããããã¨ããæãã ã£ããéå¶ãããã¨ããããã¾ããã