Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Goã®ãã¼ã«ããªãªã¼ã¹ããæãå人çã«ã¯ä»¥ä¸ã®ãããªæé ãè¸ãã§ããããã¡ããã¹ã¯ãªããã§ä¸æã§ã§ããããã«ã¯ãã¦ãããä»åã¯1.ã®è©±ãã»ãã³ãã£ãã¯ãã¼ã¸ã§ãã³ã°ã®è©±ã¯åºã¦ãã¾ããã versionãbumpãã CHANGELOGãæ´æ°ãã 1,2ã§ã®å¤æ´ãgitã«åæ ãã¦ã¿ã°ãæ㤠ãã«ããã ãã«ããã¢ãããã¼ããã version㯠-ldflags ã使ã£ã¦åçã«åãè¾¼ãæ¹æ³ãããããæè¿ã¯æ示çã«ã½ã¼ã¹ã³ã¼ãã«æ¸ããæ¹ãè¯ãã¨æãããã«ãªã£ã¦ãããã¦ããã çç±ã¨ãã¦ã¯ãã¦ã¼ã¶ã¼ã go get/build ã§å®è¡ãã¡ã¤ã«ãåå¾ããå ´åã§ããã¼ã¸ã§ã³ã¯è¡¨ç¤ºããã¦æ¬²ããã¨ããã®ãä¸ã¤ã -ldflags ã§å®è¡ãã¡ã¤ã«ã«è²ã ãªå¤ãåãããã¨ã¯ã§ãã¾ãããåºæ¬ååã¨ãã¦ãããããåãã¦ãªãç¶æ ã§ãã¡ããã¨å®è¡ãã¡ã¤ã«ãæ£å¸¸ã«åãããã«ãããã¨ãæèããæ¹ãè¯ãã ããä¸ã¤ã®çç±ã¨
I wrote this article a long time ago. In the meantime, my opinion on some aspects has changed. In order to give a more balanced perspective on the pros and cons, I suggest to read this comparison on Go vs Rust instead, which I wrote in collaboration with Shuttle ð Rust vs Go: A Hands-On Comparison Source: Gopher designed with Gopherize.me. Gears designed by Freepik âRust or Go, which one should I
2017/08/06 As usual, when a new blog post comes out on blog.golang.org, Iâm all eager to read it as soon as possible. The most recent one, Contributors Summit, is a nice write-up on the issues that the Go contributors have been talking about. While reading it, I stumbled upon a sentence that made me write this post. Here is is: For instance, it would be nice if io.Reader accepted a context so that
The Go Blogã®æ¥æ¬èªè¨³ãå ¬éãã¦ãã¾ããä¿®æ£ã¯ https://github.com/ymotongpoo/goblog-ja/ ã¾ã§ã Go 2ã«ãã㦠Toward Go 2 by Russ Cox ã¯ããã« ï¼ãã®æç« ã¯æ¬æ¥è¡ããã Gophercon 2017 ã§ã®ç§ã®çºè¡¨ã®æ¸ãèµ·ããã§ãGoã³ãã¥ããã£å ¨ä½ã«Go 2ã®ããã®è°è«ãè¨ç»ãããä¸ã§ã®æ¯æ´ãæ±ãããã®ã§ãã åç»ãå ¬éãããããã¡ãã«ãªã³ã¯ããäºå®ã§ããï¼ Rob PikeãRobert Griesemerãããã¦Ken Thompsonãæ°ããããã°ã©ãã³ã°è¨èªã«ã¤ãã¦æ°æ¥è°è«ãéããå¾ã2007å¹´9æ25æ¥ã«RobããGoãã¨ããååãææ¡ãã¾ããã ç¿å¹´ãIan Lance Taylorã¨ç§ããã¼ã ã«åå ãã5人ã§2ã¤ã®ã³ã³ãã¤ã©ã¨æ¨æºã©ã¤ãã©ãªãéçºãããã®ææã2009å¹´11æ10æ¥ã®ãªã¼ãã³ã½ã¼ã¹
ãªãã·ã§ã³ ããã±ã¼ã¸ãä½ãéãæè»æ§ãæãããããã«ãªãã·ã§ã³ãæããããæããã°ãã°ããã¾ãã ããããªãã·ã§ã³ã¯ç¥ã£ã¦ã®éãè¨å®ããªããã¨ãå°ãªãããã¾ããã åã«ã³ã³ã¹ãã©ã¯ã¿ã«ä¸¦ã¹ãããã§ã¯ç¡ç¨ãªè¤éããã¯ãããã¨ã«ãªãã¾ãã Javaãªã©ã§ã¯Optional Parameterãªã©ã®ããã«ãããã©ã«ãå¤ãæå®ã§ããæ©è½ãããã¾ãã æ©è½ã®å³é¸ãããgoè¨èªã§ã¯ãã®ãããªæ©è½ã¯ããã¾ãããã "Self Referential Functions Design"ã¨ãããã¯ããã¯ãããã ããã«ã¤ãã¦ã®è¨äºãRob Pikeæ°ã®è¨äºãçé ã«ããã¤ã説æããã¦ãã¾ãã ãªãã·ã§ã³ã¨ç¸æ§ãé常ã«è¯ããããåããã¦"Functional Option Pattern"ã¨ãå¼ã°ãã¦ãã¾ãã Dave Cheneyæ°ã®è¨äºãåèã«ããã¾ãã«èª¬æãããã¨æãã¾ãã æ§ã ãªè§£æ±ºç ããServe
Goè¨èªã¯ã·ã³ãã«ãã念é ã«ãã¶ã¤ã³ãããè¨èªã§ããä»æ§ã¯åç´æçãã®ããã«å°ããåãããã¦ãã¾ããããã®ãã表ç¾åã«æ¬ ãã¦ããã¨ããã³ã¼ããåé·ã«ãªãã¨ããå°è±¡ãæã¤äººãå¤ãã§ããããæåãªã¨ããã§ã¯ãã¸ã§ããªã¯ã¹ãä¾å¤ã¨ãã£ãæ©è½ãï¼ä»ã®ã¨ããï¼åå¨ããªããã¨ãåé¡ã«ããããã¨ãå¤ãããã§ãã ä¸è¬ã«ãã½ããã¦ã§ã¢ã¨ã³ã¸ãã¢ãªã³ã°ã¨ãããã®ã¯æ¸ãããè¨èªã ãã«ä¾ããã®ã§ã¯ããã¾ãããè¦ç¹ãæ¡ãã¦Goãåãã¾ããã¼ã«ç¾¤ãå«ãã¦è¦ã¦ã¿ãã¨ãgo fmt ã goimports ã¨ãã£ããã¼ã«ãåºã使ããã¦ãããã¨ãã¾ã go generate ã³ãã³ãã®åå¨ãªã©ãè¦ã¦ããGoã¨ããè¨èªã«ã¯ã人éã®ããã°ã©ãã³ã°ãæ©æ¢°ã«ãã£ã¦ãã¾ãã¾ãªé¢ããè£å©ãããã¨ããæ 度ãããã¾ãã
çµè«ã¨ãã¦ã¯Goè¨èªã«ã¯ä»¥ä¸ã®ãããªããã¤ãã®é·æããããç¾å®è·¯ç·ã§é常ã«ãã©ã³ã¹ãã¨ããè¨èªã ã¨æãã¾ãã ãããã®é·æã®ããã«å¤±ãããã¡ãªãããå½ç¶ããã¤ãããã¾ãããä¸å®ç¨åº¦ä»¥ä¸ã®è¦æ¨¡ã®ããã¸ã§ã¯ãã§å©ç¨ããè¨èªã®é¸æè¢ã¨ãã¦ã¯ç¾åããããã°ã©ãã³ã°è¨èªã®ä¸ã§ã¯ä¸çªãäºçªç®ã«ããã®ã§ã¯ãªããã¨æãã¾ãã ã³ã³ãã¤ã«ãéã (vs. C++) GCã¨ã¡ã¢ãªå®å ¨æ§ (vs. C++) 妥å½ã§ç¾å®çãªã¬ãã«ã®åå®å ¨æ§ (vs. Python/Ruby) å®è¡æããã©ã¼ãã³ã¹ãè¯ã (vs. Python/Ruby) ç¾å®åé¡ãããç¨åº¦ã®è¦æ¨¡ã¨æéã®ããã¸ã§ã¯ãã«ãªãã¨åæ¤è¨¼ãããã¨ãªãã¡ã¯ã¿ãªã³ã°ãªã©ãã ãã¶æ¥½ã«ãªãã®ã§ãããããã åãããã®ã§èªç¶ã¨å®è¡æããã©ã¼ãã³ã¹ãè¯ã æ¨æºã©ã¤ãã©ãªãæ´åããã¦ãã (vs. C++) ãããæ¨æºã©ã¤ãã©ãªã«jsonã®parserããåå¨ããªãC
Thorsten Ballã«ããâWriting An Interpreter In Goâãèªãã ï¼ æè¡çéã®ããã°ãè¦ã¦ããã¨ãã¾ã«Steve Yeggeã®ãIf you donât know how compilers work, then you donât know how computers workãã¨ããè¨èã«åºä¼ãï¼ãã®åº¦ã«å¦çã®ã¨ãã«ã³ã³ãã¤ã©ã®ææ¥ãåããªãã£ããã¨å¾æãï¼ç¤¾ä¼äººã«ãªã£ã¦ææ¦ãããã¨ãã¦æ«æãããã¨ãæãåºãã¦æ²ããæ°æã¡ã«ãªãï¼@rui314ããã®Cã³ã³ãã¤ã©ãã¹ã¯ã©ããããéçºãã¦ã¿ããèªãã§ã¯ãã£ããããªã¨æãã¤ã¤åã«ã¯ç¡çã ãªãã¨å¿ãæãã¦ããï¼ ã©ã®è¨èªãæ¸ãã¦ãã¦ãã³ã³ãã¤ã©ï¼ãããã¯Interpreterï¼ã¯åã£ã¦ãé¢ããªããã®ã§ããå é¨ã®åããã©ããªã£ã¦ããããç¥ã£ã¦ããããã¨ãã欲æ±ã¯ããã°ã©ãã¼ãªã誰ããããã¨æãï¼å°ãªãã¨ãåã«
åãã« Go 1.7ããªãªã¼ã¹ããããç®çã®ä¸ã¤ã¯ãSSA-IRãå°å ¥ããããã¨ã ãããGo1.7ã§SSAãå ¥ããã ãã©ãSSAã£ã¦ä½ï¼ã¨å± é å±ã§èããããã¨ãæ¬ç¨¿ã®çºç«¯ã ã£ããç§ã®ç¥èã ãã§ã¯å æ¬çãªèª¬æã«ãªããªãã£ãã®ã§ããããã調ã¹ã¤ã¤ãããã¾ã¨ããã 以ä¸ãä¸è¬çãªè©±ã§ã¯ãªãããªãã¹ãGoã«çµã£ã¦è©±ãé²ãã¦ããï¼ã³ã³ãã¤ã©ã®ã³ã¼ãã¯ã¯ cmd/compile/internal/gc ãããã«ããï¼ãããä¸è¬çãªè©±ã¯ãåèæç®çã示ããã®ã§ãã¡ããåèã«ãã¦ã»ããããããã調ã¹ã¦ãGoã«è¿½å ãããSSAã«ã¤ãã¦ç¥ãã¹ããã¨ã¯ãSSAãä½ãï¼ããããSSAå°å ¥ããGoãã©ããªã£ãããã§ããã¨æã£ãã SSAã¨ã¯ä½ã SSA ã¨ã¯ Static Single Assignmentã®ç¥ã ãä¸ã¤ã®å¤æ°ã¸ã®ä»£å ¥ã¯ä¸åº¦ããè¡ããã¦ãªãäºã確ç´ã§ããå½¢å¼ã®ã³ã¼ãã ããã®å½¢å¼ã®ã³ã¼ãã¯ãæé©åãè¡ã
Go ã®è¨èªä»æ§ã¯ã·ã³ãã«ã§ä»ã®è¨èªã«æ¯ã¹ã¦ã¯ã¾ãã©ãããå°ãªãã¦å¦ç¿ã³ã¹ããå°ãããªè¨èªã®ããã«æãã¾ããããããããã§ãã¯ã¾ãã¨ããããªãããã§ã¯ãªãã®ã§ãèªåãã¯ã¾ã£ã¦æéãç¡é§ã«ãã¦ãã¾ã£ããã¨ãæ¸ãçãã¦ããã¾ãã 念ã®çºèª¤è§£ã®ãªãããã«è¿½è¨ãã¦ããã¨ããã®ææ¸ã®ç®ç㯠Go ãæ¹å¤ãããã¨ã§ã¯ãªã Go ã Go ã§ãããããã« C++/Java/Python ãªã©å©ç¨è ã Go ã使ãå§ããã¨ãã«å°æãããã¯èª¤è§£ããã§ããããã¤ã³ããã¾ã¨ãã¦ãããã¨ã§åã㦠Go ã触ã人ãã¹ã ã¼ãºã« Go ã使ãå§ããããããã«ãããã¨ã§ããç§å人㯠Go ã¯ãã©ã³ã¹ãã¨ããè¯ãè¨èªã§ã ã¨æãã¾ãããæ°ã«å ¥ã£ã¦ãã¾ãã ç®æ¬¡ interface 㨠nil (Go ã® interface ã¯åãªãåç §ã§ã¯ãªã) æç® ã¡ã½ããå ã§ã¬ã·ã¼ã(this, self)ã nil ã§ãªããã¨ããã§
Goæ¸ãã¦ã¦ãªãã¨ãªãè¦ãã¦ãã Goã§ãã£ã¡ããããªããã¿ã¼ã³ WAFå°å ¥ãã¦ããããWebã¢ã㪠WAFèªä½ãç¾å¨ç¾¤éå²æ ç¶æ ã WAFæ¯ã«ãã³ãã©ã¤ã³ã¿ã¼ãã§ã¼ã¹ãéãã®ã§æ¢åã³ã¼ãã¤ãªãã«ã¯ã©ããã¼ãå¿ è¦ã ã©ã®WAFãLLè¨èªã«æ¯ã¹ãã¨ã¾ã ã¾ã ãã£ã¼ãã£ã¼ã®ç¶²ç¾ ç¯å²ãçãã ãªã®ã§ãã¡ããLLè¨èªã»ã©æ¥½ã«ã¯æ¸ããªããã¨ãå¤ãã ãªãã¬ã¯ã·ã§ã³ä½¿ãã¾ããã§ãã¼ã¿ã«æ§è½ã¯LLè¨èªä¸¦ã¿ã«é ãã®ãããã Go1.7ã®contextããã±ã¼ã¸ã®å°å ¥ã§æ¨æºã®HTTPãã³ãã©ã復権ããå¯è½æ§ãããæ´ã«èããäºæ³ã 追è¨: 楽ã§ããã®ãæå¾ ãã¦WAFãå°å ¥ããã®ããã£ã¡ããããªããã¨ã¾ã§ã¯è¨ãéãã ã£ããããããªãããã©ä¾ã®sqlã§Prepareãæ£ãã使ãã¦ããªãã§æ§è½åºãªãã£ã件ã¨ããå½é¢WAFã使ããªãèªåã§æ¦ãä¸èº«ãç解ãã¦ä½¿ãè¦æãå¿ è¦ã æ§é ä½ã¡ã½ããã«ãã¸ãã¯ãè©°ãè¾¼ã Goã®ææ³
1996å¹´ã®å¤ããããã¯6æ³ã§ãå°å¦1å¹´çã ã£ãã 宿é¡ãã£ã¦ãããã£ã¦è¦ªã«è¨ã訳ããªãããåéã®å®¶ãè¿æã®å ¬åãå 童館ã«ã²ã¼ã ãã¼ã¤çæã«éã¾ã£ã¦ããã±ã¢ã³ã®ã¬ãã«ä¸ãã«ããããã ããè¿æã®å¹´ä¸ã®ãå ã¡ããã«ã©ããã¦ãããããå ã«ãããªããã ãï½ã£ã¦æ³£ãã¤ããããåãã¸ã ãªã¼ãã¼ã«ä½åãææ¦ããããã¦ãããã¥ã¼ãããããããã¦æ¿¡ããæã§Aãã¿ã³ãæ¼ããéè·¯ãªãã ããããã§éã¾ããªãã©ããªãããã£ã¦æãããã â¦â¦ã¾ãã20å¹´çµã£ã¦åããã¨ããã¦ããã¨æããªãã£ããæããªãã£ããã 2016å¹´7æ22æ¥ããã±ã¢ã³GOãåå¨ããä¸çãã¯ãã¾ã£ãã 22æ¥ã¯æããæèä¼åº§ã§ãä¸æ大æèä¼ãã観ã¦ãã¦ï¼å¸å·æµ·èèµãããæ¬å½ã«æ¬å½ã«æ ¼å¥½ããã£ãï¼ååä¸ãããªãªã¼ã¹ã®å§é¨ã¯æ¨ªç®ã«è¦ã¦ãããã©ãæèä¼åº§ã®å ´å ã¯éã¾ãçæ§ã®å¹´é½¢å±¤ããã£ã¦è³ã£ã¦éãã ã£ãã誰ããã±ã¢ã³ã²ãããããã¨ãã¦ãªãã£ããä»æãã°
以ä¸ã®ãã¤ã¼ãã«ãããéããä¸è¦ golang 㯠struct ãå®ç¾©ããªã㨠JSON ãæ±ããªãããã«è¦ãã¾ããä»ã«ãä¼¼ããããªãã¤ã¼ãããã©ãã©ã¨è¦ããã¾ãããããããã¯å ¨é¨èª¤è§£ã§ããããã§ãã®è¨äºã§ã¯ãgolang ã§ãããµã (structãå®ç¾©ãã) ã« JSON ãæ±ãæ¹æ³ãç´¹ä»ãã¾ãã golangãrubyã®ããã«ãããµãã«JSONã¯æ±ããªã? https://t.co/olsryDHc5G â bamchoh (@bamchoh) 2016å¹´6æ24æ¥ ãã®è¨äºã§ã¯å ¥åã® json.Unmarshal() ãåãæ±ãã¾ãããåºåã® json.Marshal() ã«ãå¿ç¨ã§ãã¾ãã TL;DR json.Unmarshal() ã«ã¯ *interface{} ã渡ãã¾ã interface{} 㯠dproxy ã使ãã¨ãå¤ã®ã¢ã¯ã»ã¹ã§æ¥½ãã§ãã¾ã json.Unmar
ããã«ã¡ã¯ãéçºé¨ã®å¹³ç°ã§ãã ä»åã¯ãPHP製ã®Web APIãGoã«ç§»æ¤ããããã¸ã§ã¯ãã§ã¢ããªã±ã¼ã·ã§ã³ã®æ å ±ãã¨ã©ã¼ãåºåããçºã®Loggerãæ¤è¨ããéã«ãuber-go/zapã¨ããã©ã¤ãã©ãªãå ¬è¡¨ãã¦ããããã©ã¼ãã³ã¹ããã®ä»ã©ã¤ãã©ãªã¨æ¯ã¹ã¦å¤§åè¯ãã£ãã®ã§ãã©ãã§ããã©ã¼ãã³ã¹ã®å·®ãåºãã¦ããã®ãããã®ã¢ããã¼ããç°¡åã«ç´¹ä»ãããã¨æãã¾ãã Zap åãã«ãç°¡åã«zapã®ç´¹ä»ããã¦ããã¨ä»å¹´ã®2æã«Uberããå ¬éãããã¾ã æ¯è¼çæ°ãããããã¯ãã§ãããã®çºéçºã¹ãã¼ã¿ã¹ã¯Betaã®æ®µéã§åºåãJSONãã対å¿ãã¦ãã¾ããããGithubä¸ã§800以ä¸ã®ã¹ã¿ã¼ãä»ãã¦ãã注ç®ããã¦ããããã¸ã§ã¯ãã¨ãªã£ã¦ãã¾ãã ãFast, structured, leveled logging in Goãã¨ããããã«ãæ§é åããããã°ãåºåããããã®ã©ã¤ãã©ãªã§ãæ¨æºã®logã®ã
(This article was originally a talk at QCon London 2016. Video and slides here.) In 2014, I gave a talk at the inaugural GopherCon titled Best Practices in Production Environments. We were early adopters at SoundCloud, and by that point had been writing, running, and maintaining Go in production in one form or another for nearly 2 years. We had learned a few things, and I tried to distill and conv
ããã "-s"ã§ã¯å¤ãã£ã¦ãªãã§ããâ¦darwinç°å¢ã§ã¯ã§ãªãã®ããªãªldå¨ãã®ãªã«ãã ã¨æãã®ã§ããã¯ãã¨ã§è¿½ãã¨ãã¦ãå ã ã26MBã ã£ãã®ãã5.2MBã¾ã§æ¸ãã¾ããã å§ç¸®ã« upx -9 ã使ã£ãå ´åãããã£ãæéã¯15.70ç§ã§ããããæéããããã¾ããã3åã»ã©å®è¡ãã¦ã ãããåããããã§ããã伸é·æã¯0.10ç§ã»ã©ã§ããããã¡ããã¡ã¢ãªãªã©ã«ãä¾åãã¾ãã®ã§ããã®çµæã¯éµåã¿ã«ã¯åºæ¥ã¾ããããããã¾ã§ç®å®ã¨ãã¦ã ããã«ããã¨ã upx -1 ã§å§ç¸®ããå ´å㯠0.78ç§ãããããã¾ãããããã§ãã¦ã6.4MBã¨å åãªå§ç¸®å¹çã¨ãªãã¾ããããã®è¾ºãã¯ã¿ã¼ã²ããã¨ããç°å¢ã«åããã¦æ±ºããã°ããã¨æãã¾ããã -1 ã§ååãªæ°ããã¾ãã ã¾ã¨ã¶ Goã®ãã¤ããªã大ããåé¡ã¯ãldflagsã¨UPXã使ããã¨ã§ããç¨åº¦è§£æ±ºã§ããã®ã§ã¯ãªãããã¨ãã話ã§ããã UPXç¥ããªã
ä¸è¨è³ªåã«ãããã50æå以å ãç®å®ã«ç°¡åã«èª¬æãããã¨ã ããã±ã¼ã¸å ã«å®ç¾©ããé¢æ°ãå¤é¨ã«å ¬éããã«ã¯ã©ãããã°è¯ããï¼ éåæã«å¦çãè¡ãçºã®å½ä»¤ã¯ï¼ é¢æ°ãæããéã«å¦çãå®è¡ããã«ã¯ã©ããããï¼ goroutineã®åæå®è¡æ°ãå¤æ´ããã«ã¯ã©ããããï¼ ã³ã³ãã¤ã©ããªã³ã«ã8g/6g/5gã8l/6l/5lã¨ããååã«ãªã£ã¦ããçç±ã¯ï¼ Goã®ã¬ãã¼ã¸ã³ã¬ã¯ã·ã§ã³ã®å®è£ ã¯ä¸è¬çã«ä½ã¨å¼ã°ãã¦ããé¡ãï¼ ã¬ã·ã¼ããnilã®å ´åã«ã¡ã½ãããå¼ã³åºãã¨ä½ãèµ·ãããï¼ å¯å¤åå¼æ°ã¯ã©ã®æ§ã«å®ç¾©ãããï¼ é¢æ°å ã§å®ç¾©ããããã¼ã«ã«å¤æ°ã®ã¢ãã¬ã¹ãæ»ãå¤ã¨ãã¦å¤é¨ããåç §ããã¨ã©ããªããï¼ interfaceã¨structã®éãã¯ä½ãï¼ panicãè£è¶³ãã¦å¼·å¶çµäºãããªãçºã«ã¯ã©ããããï¼ çã ããã±ã¼ã¸å ã«å®ç¾©ããé¢æ°ãå¤é¨ã«å ¬éããã«ã¯ã©ãããã°è¯ããï¼ é¢æ°åã®å é ã大æåã«ãã¾ã
Pelletkachels waren ooit eenvoudige apparaten voor verwarming, maar ze hebben een opmerkelijke evolutie doorgemaakt sinds hun bescheiden begin in de jaren â80 van de vorige eeuw. In dit artikel duiken we diep in de geschiedenis van pelletkachel, bespreken we de belangrijkste mijlpalen en ontwikkelingen op het gebied van subsidiemogelijkheden en werpen we een blik op de transformatie tot moderne en
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}