{"id":2129,"date":"2015-11-06T22:41:16","date_gmt":"2015-11-06T14:41:16","guid":{"rendered":"https:\/\/gergely.imreh.net\/blog\/?p=2129"},"modified":"2015-11-06T22:41:16","modified_gmt":"2015-11-06T14:41:16","slug":"language-of-the-month-rust","status":"publish","type":"post","link":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/","title":{"rendered":"Language of the Month: Rust"},"content":{"rendered":"<p>I found it\u00a0hard to believe, that it&#8217;s been 4 years now since I finished the previous installment of\u00a0&#8220;<a href=\"\/blog\/tag\/lotm\/\">language of the month<\/a>&#8221; column, in which I pick a programming language and dive in for a month to see something new. In that 4 years I have learned a lot of programming for sure &#8211; though probably very little computer science, and barely any new languages. It&#8217;s time to chance, and for the revival of this I&#8217;m checking out <a href=\"https:\/\/www.rust-lang.org\/\">Rust<\/a>.<\/p>\n<p><!--more--><\/p>\n<p>A bit about the LotM first, though. I was previously learning <a href=\"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/\">Javascript<\/a>, <a href=\"https:\/\/gergely.imreh.net\/blog\/2011\/09\/language-of-the-month-prolog-part-2\/\">Prolog<\/a>, <a href=\"https:\/\/gergely.imreh.net\/blog\/2011\/07\/language-of-the-month-lua-part-2\/\">Lua<\/a>, and <a href=\"https:\/\/gergely.imreh.net\/blog\/2011\/06\/language-of-the-month-scala-part-3\/\">Scala<\/a>. Each time aim is to go beyond the tutorials and example code, and do something more that lets me discover the the language&#8217;s real face &#8211; strengths and weaknesses included. At the beginning of the month announcing the language like in this post, and at the end of the month in another post recap what have I learned.<\/p>\n<h2>Getting started<\/h2>\n<p>First start with a confession &#8211;\u00a0I actually wanted to try out &#8220;the language that <a href=\"http:\/\/www.itworld.com\/article\/2978142\/development\/why-john-carmack-thinks-racket-is-aces-for-beginning-programmers.html\">John Carmack<\/a> is playing with these days&#8221;, but then messed up since that is <a href=\"http:\/\/racket-lang.org\/\">Racket<\/a>, not Rust. I guess I&#8217;m <a href=\"https:\/\/news.ycombinator.com\/item?id=9253585\">not the only one<\/a> making this mistake, and never mind, that will be good for another month! I guess maybe Rust has enough mindshare on <a href=\"https:\/\/news.ycombinator.com\">Hacker News<\/a> to stick in my mind.<\/p>\n<p>So then, <a href=\"https:\/\/www.rust-lang.org\/\">Rust<\/a> is a systems programming language that aims to be safe, fast, and play with threads nicely. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Rust_(programming_language)\">Its Wikipedia article<\/a> has a bit\u00a0more too. Searching for books, tutorials, examples, and projects that use it didn&#8217;t turn up as many sources\u00a0as the previous languages I tried (though it&#8217;s much younger language too, so that&#8217;s only fair, I guess). On the other hand, it has an extensive <a href=\"https:\/\/doc.rust-lang.org\/stable\/book\/\">official book<\/a>, so that was a good place to start.<\/p>\n<h2>First Impressions<\/h2>\n<p>So far I&#8217;ve spent two half-evening with Rust, besides collecting the learning material I went through the first few sections of the book (no I&#8217;m in the middle of section 4, <a href=\"https:\/\/doc.rust-lang.org\/stable\/book\/effective-rust.html\">Effective Rust<\/a>).<\/p>\n<p>Setting up Rust was pretty simple, I got to know Cargo, its package manager (and sort of build system, and sort of tooling, I guess), and did code the guided examples (both the binary and library ones), though the testing and documentation sections just read through.<\/p>\n<pre class=\"lang:rust decode:true\">\/\/ FizzBuzz not from the docs\r\nfn main() {\r\n    for num in (1..36) {\r\n        if num % 15 == 0 {\r\n            println!(\"Fizz Buzz\");\r\n        } else if num % 3 == 0 {\r\n            println!(\"Fizz\");\r\n        } else if num % 5 == 0 {\r\n            println!(\"Buzz\");\r\n        } else {\r\n            println!(\"{}\", num);\r\n        }\r\n    }\r\n}<\/pre>\n<p>So far it&#8217;s relatively straightforward, interesting, but I have seen very little where its strength lies. Having first class concept of documentation in code, directly including tests, debug &amp; release builds by default, easy project setup boilerplating are good, though I guess those sort of should be default for every new language as &#8220;best practice&#8221;.<\/p>\n<p>What I&#8217;ve seen a bit instead, is quite a bit of arbitrariness in language. I do accept that it would be strange if first time seeing a new language \u00a0everything made sense, and try to cut\u00a0it some slack. Still, for example why is there so much mixing between lowercase and uppercase type names, as well as abbreviated and not abbreviated versions, eg. <span class=\"lang:rust decode:true  crayon-inline \">String<\/span>\u00a0 and <span class=\"lang:rust decode:true  crayon-inline \">&amp;str<\/span>\u00a0? I wonder. Having seen a few expression compositions in the <a href=\"https:\/\/doc.rust-lang.org\/stable\/book\/learn-rust.html\">tutorial projects<\/a>, they also feel quite arbitrary (ie. the method names don&#8217;t give a good idea what they are supposed to be doing &#8211; why <span class=\"lang:rust decode:true  crayon-inline \">.unwrap()<\/span>\u00a0after a thread <span class=\"lang:rust decode:true  crayon-inline \">.join()<\/span>\u00a0? Will get there, but it&#8217;s hazy at the moment.) That might be just the issue of the tutorials, so I give that time too. And try to remember, that even though e.g. Python feels so &#8220;homely&#8221; now for me, there must have been some time when it wasn&#8217;t. Curiosity will help with this, and Rust has my attention.<\/p>\n<p>In the meantime onwards with the documentation, and I&#8217;m looking for some project ideas and others&#8217; existing projects to look at (suggestions are welcome).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I found it\u00a0hard to believe, that it&#8217;s been 4 years now since I finished the previous installment of\u00a0&#8220;language of the month&#8221; column, in which I pick a programming language and dive in for a month to see something new. In that 4 years I have learned a lot of programming for sure &#8211; though probably [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2133,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[68,8],"tags":[44,182],"class_list":["post-2129","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-learning","category-prog","tag-lotm","tag-rust"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Language of the Month: Rust - ClickedyClick<\/title>\n<meta name=\"description\" content=\"Checking out a new programming language each month, spending this November with Rust.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Language of the Month: Rust - ClickedyClick\" \/>\n<meta property=\"og:description\" content=\"Checking out a new programming language each month, spending this November with Rust.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/\" \/>\n<meta property=\"og:site_name\" content=\"ClickedyClick\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/gergely.imreh\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/gergely.imreh\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-06T14:41:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2015\/11\/Mozilla_Rust_header.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"604\" \/>\n\t<meta property=\"og:image:height\" content=\"270\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Gergely Imreh\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@imrehg\" \/>\n<meta name=\"twitter:site\" content=\"@imrehg\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Gergely Imreh\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/\"},\"author\":{\"name\":\"Gergely Imreh\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#\\\/schema\\\/person\\\/42391e2ae52c8ed76b37be509a5707b0\"},\"headline\":\"Language of the Month: Rust\",\"datePublished\":\"2015-11-06T14:41:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/\"},\"wordCount\":646,\"commentCount\":14,\"publisher\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#\\\/schema\\\/person\\\/42391e2ae52c8ed76b37be509a5707b0\"},\"image\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/Mozilla_Rust_header.jpg\",\"keywords\":[\"lotm\",\"rust\"],\"articleSection\":[\"Learning\",\"Programming\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/\",\"url\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/\",\"name\":\"Language of the Month: Rust - ClickedyClick\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/Mozilla_Rust_header.jpg\",\"datePublished\":\"2015-11-06T14:41:16+00:00\",\"description\":\"Checking out a new programming language each month, spending this November with Rust.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/#primaryimage\",\"url\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/Mozilla_Rust_header.jpg\",\"contentUrl\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2015\\\/11\\\/Mozilla_Rust_header.jpg\",\"width\":604,\"height\":270},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2015\\\/11\\\/language-of-the-month-rust\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Language of the Month: Rust\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/\",\"name\":\"ClickedyClick\",\"description\":\"Life in real, complex and digital.\",\"publisher\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#\\\/schema\\\/person\\\/42391e2ae52c8ed76b37be509a5707b0\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#\\\/schema\\\/person\\\/42391e2ae52c8ed76b37be509a5707b0\",\"name\":\"Gergely Imreh\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g\",\"caption\":\"Gergely Imreh\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g\"},\"description\":\"Physicist, hacker. Enjoys avant-guarde literature probably a bit too much. Open source advocate and contributor, both for software and hardware. Follow these posts on the Fediverse by @gergely@gergely.imreh.net\",\"sameAs\":[\"https:\\\/\\\/gergely.imreh.net\\\/\",\"https:\\\/\\\/www.facebook.com\\\/gergely.imreh\",\"https:\\\/\\\/www.instagram.com\\\/imrehg\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/gergelyimreh\\\/\",\"https:\\\/\\\/www.youtube.com\\\/@GergelyImreh\"],\"url\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/author\\\/gergely\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Language of the Month: Rust - ClickedyClick","description":"Checking out a new programming language each month, spending this November with Rust.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/","og_locale":"en_GB","og_type":"article","og_title":"Language of the Month: Rust - ClickedyClick","og_description":"Checking out a new programming language each month, spending this November with Rust.","og_url":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/","og_site_name":"ClickedyClick","article_publisher":"https:\/\/www.facebook.com\/gergely.imreh","article_author":"https:\/\/www.facebook.com\/gergely.imreh","article_published_time":"2015-11-06T14:41:16+00:00","og_image":[{"width":604,"height":270,"url":"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2015\/11\/Mozilla_Rust_header.jpg","type":"image\/jpeg"}],"author":"Gergely Imreh","twitter_card":"summary_large_image","twitter_creator":"@imrehg","twitter_site":"@imrehg","twitter_misc":{"Written by":"Gergely Imreh","Estimated reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/#article","isPartOf":{"@id":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/"},"author":{"name":"Gergely Imreh","@id":"https:\/\/gergely.imreh.net\/blog\/#\/schema\/person\/42391e2ae52c8ed76b37be509a5707b0"},"headline":"Language of the Month: Rust","datePublished":"2015-11-06T14:41:16+00:00","mainEntityOfPage":{"@id":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/"},"wordCount":646,"commentCount":14,"publisher":{"@id":"https:\/\/gergely.imreh.net\/blog\/#\/schema\/person\/42391e2ae52c8ed76b37be509a5707b0"},"image":{"@id":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/#primaryimage"},"thumbnailUrl":"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2015\/11\/Mozilla_Rust_header.jpg","keywords":["lotm","rust"],"articleSection":["Learning","Programming"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/","url":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/","name":"Language of the Month: Rust - ClickedyClick","isPartOf":{"@id":"https:\/\/gergely.imreh.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/#primaryimage"},"image":{"@id":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/#primaryimage"},"thumbnailUrl":"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2015\/11\/Mozilla_Rust_header.jpg","datePublished":"2015-11-06T14:41:16+00:00","description":"Checking out a new programming language each month, spending this November with Rust.","breadcrumb":{"@id":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/#primaryimage","url":"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2015\/11\/Mozilla_Rust_header.jpg","contentUrl":"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2015\/11\/Mozilla_Rust_header.jpg","width":604,"height":270},{"@type":"BreadcrumbList","@id":"https:\/\/gergely.imreh.net\/blog\/2015\/11\/language-of-the-month-rust\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gergely.imreh.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Language of the Month: Rust"}]},{"@type":"WebSite","@id":"https:\/\/gergely.imreh.net\/blog\/#website","url":"https:\/\/gergely.imreh.net\/blog\/","name":"ClickedyClick","description":"Life in real, complex and digital.","publisher":{"@id":"https:\/\/gergely.imreh.net\/blog\/#\/schema\/person\/42391e2ae52c8ed76b37be509a5707b0"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/gergely.imreh.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":["Person","Organization"],"@id":"https:\/\/gergely.imreh.net\/blog\/#\/schema\/person\/42391e2ae52c8ed76b37be509a5707b0","name":"Gergely Imreh","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g","caption":"Gergely Imreh"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/1d5be311c5d616a3f4c7dfbc6b736ec817d2508b8c420ec29edb950d33fb4946?s=96&d=retro&r=g"},"description":"Physicist, hacker. Enjoys avant-guarde literature probably a bit too much. Open source advocate and contributor, both for software and hardware. Follow these posts on the Fediverse by @gergely@gergely.imreh.net","sameAs":["https:\/\/gergely.imreh.net\/","https:\/\/www.facebook.com\/gergely.imreh","https:\/\/www.instagram.com\/imrehg\/","https:\/\/www.linkedin.com\/in\/gergelyimreh\/","https:\/\/www.youtube.com\/@GergelyImreh"],"url":"https:\/\/gergely.imreh.net\/blog\/author\/gergely\/"}]}},"_links":{"self":[{"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/posts\/2129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/comments?post=2129"}],"version-history":[{"count":8,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/posts\/2129\/revisions"}],"predecessor-version":[{"id":2139,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/posts\/2129\/revisions\/2139"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/media\/2133"}],"wp:attachment":[{"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/media?parent=2129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/categories?post=2129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/tags?post=2129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}