{"id":528,"date":"2011-10-02T18:29:18","date_gmt":"2011-10-02T10:29:18","guid":{"rendered":"http:\/\/gergely.imreh.net\/blog\/?p=528"},"modified":"2011-10-09T21:52:14","modified_gmt":"2011-10-09T13:52:14","slug":"language-of-the-month-javascript","status":"publish","type":"post","link":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/","title":{"rendered":"Language of the Month: Javascript"},"content":{"rendered":"<p>Continuing the Language of the Month serious after a little bit of break when I was busy with other stuff:<\/p>\n<ul>\n<li>May: <a title=\"Language of the Month: Scala\" href=\"http:\/\/gergely.imreh.net\/blog\/2011\/05\/language-of-the-month-scala\/\" target=\"_blank\">Scala<\/a><\/li>\n<li>June: <a title=\"Language of the Month: Lua\" href=\"http:\/\/gergely.imreh.net\/blog\/2011\/06\/language-of-the-month-lua\/\" target=\"_blank\">Lua<\/a><\/li>\n<li>July\/August: <a title=\"Language of the Month: Prolog\" href=\"http:\/\/gergely.imreh.net\/blog\/2011\/07\/language-of-the-month-prolog\/\" target=\"_blank\">Prolog<\/a><\/li>\n<li>September: Javascript<\/li>\n<\/ul>\n<figure id=\"attachment_535\" aria-describedby=\"caption-attachment-535\" style=\"width: 150px\" class=\"wp-caption aligncenter\"><a href=\"http:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2011\/10\/Introduction-tojavascript-programming.png\"><img loading=\"lazy\" decoding=\"async\" class=\"size-thumbnail wp-image-535\" title=\"Javascript icon\" src=\"http:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2011\/10\/Introduction-tojavascript-programming-150x150.png\" alt=\"Javascript icon\" width=\"150\" height=\"150\" srcset=\"https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2011\/10\/Introduction-tojavascript-programming-150x150.png 150w, https:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2011\/10\/Introduction-tojavascript-programming.png 256w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\" \/><\/a><figcaption id=\"caption-attachment-535\" class=\"wp-caption-text\">Just a Javascript icon...<\/figcaption><\/figure>\n<p>It is very long overdue, since I was looking at Javascript like&#8230;. 14 years now? But never really spent time to understand it because I never needed it really. I&#8217;m old enough to remember that when I started to browse the web, every time there was a page using Javascript, people&#8217;s sentiment was <em>&#8220;oh, no, that&#8217;s going to be very slow, I don&#8217;t even want to check this site anymore&#8221;<\/em>. Pretty much like it was\/is with Flash later on.<\/p>\n<p>Compare this to now, how 100% static sites are practically disappeared, and no web developer worth their salt should skip on learning it. I&#8217;m glad that browsers spent a lot of time improving performance and that so many interesting projects came out of it.<\/p>\n<p>My impression of the current state of the art is that using HTML + CSS + Javascript now it is easier than ever to make good front-ends for programs. I&#8217;m mostly a command-line guy (and that&#8217;s pretty easy with many scripting languages as well as Python that I use), but I cannot deny that I&#8217;m the minority. Still, when i need convenience, I can even imagine people creating local (meaning not internet-enabled) software with those things.<\/p>\n<p>Since more and more people had similar idea and started to work on it, there are plenty of projects that make this even easier, like <a title=\"jQuery home page\" href=\"http:\/\/jquery.com\/\" target=\"_blank\">jQuery<\/a> and all its plugins. I don&#8217;t think people need a lot of introduction and already can do a lot of things easier using that. One drawback is that many things could be just as easily done in pure Javascript but people quite often don&#8217;t know that. I certainly have to learn a lot more.<\/p>\n<p>In this month I was reading a few books and sites that people recommended on <a title=\"Hacker News homepage\" href=\"http:\/\/news.ycombinator.net\" target=\"_blank\">Hacker News<\/a>, as well as I used it to do a few actual projects. Now that&#8217;s a change compared to the previous Language of the Month columns.<\/p>\n<h2>Projects<\/h2>\n<p><a title=\"WatchDoc homepage on Github\" href=\"http:\/\/imrehg.github.com\/WatchDoc\/\" target=\"_blank\">WatchDoc<\/a>: a Chrome extension that notifies you when your shared documents on Google Docs change. Chrome extensions are merely HTML+CSS+JS code, so it was a perfect way to try a few things.\u00a0<em><del>(Will write it up here later)<\/del> (<a title=\"WatchDoc \u2013 an experiment in Chrome Extensions\" href=\"http:\/\/gergely.imreh.net\/blog\/2011\/10\/watchdoc\/\" target=\"_blank\">wrote up here<\/a>).<\/em><\/p>\n<p><a title=\"NowJS homepage\" href=\"http:\/\/nowjs.com\/\" target=\"_blank\">NowJS<\/a>\u00a0real time games hackathon: NowJS is a real-time communication plugin for NodeJS, the JS server. I wanted to make a game for this hackathon, but run out of time. Spent some time working with it, and it&#8217;s actually pretty awesome when I started to understand it, I&#8217;m do want to finish the game at a later time (it&#8217;s a multiplayer trivia game) .\u00a0<em>(Will write it up here later)<\/em><\/p>\n<p><a title=\"Venus &amp; Mars Facebook app homepage\" href=\"https:\/\/radiant-winter-3461.herokuapp.com\/\" target=\"_blank\">Venus &amp; Mars<\/a>: a little afternoon project using Facebook to help my friend&#8217;s research\u00a0assignment\u00a0at her university. Listing people&#8217;s status updates separated by gender. It looks awfully ugly, because I just wanted to make it work, but for the fun of it it&#8217;s NodeJS so good to practice my JS-foo. \u00a0<em>(Will write it up here later)<\/em><\/p>\n<h2>Impressions<\/h2>\n<p>I definitely going to learn more of it, because now that I start to understand I quite like it, and I cannot imagine it going away anytime soon. Now that it is just a matter of seconds to set up a project on the web (really, on <a title=\"Heroku homepage\" href=\"http:\/\/www.heroku.com\/\" target=\"_blank\">Heroku<\/a>, <a title=\"Google AppEngine home page\" href=\"https:\/\/appengine.google.com\/\" target=\"_blank\">Appengine<\/a>, <a title=\"dotCloud home page\" href=\"https:\/\/www.dotcloud.com\/\" target=\"_blank\">dotCloud<\/a> are all one click away) there&#8217;s no good excuse not to do that.<\/p>\n<h3>Good<\/h3>\n<ul>\n<li><a title=\"Introduction to JSON\" href=\"http:\/\/json.org\/\" target=\"_blank\">JSON<\/a>, &#8217;nuff said. That&#8217;s just such a good data format that is both human and machine readable. Seem to be pretty much the<\/li>\n<li>No problem (it seems) with Unicode and international characters. Though I think it uses UTF-16 while many other code is using UTF-8, not sure if that makes any difference.<\/li>\n<li>Feels quite light and flexible (from the language point of view, not necessarily the resources needed)<\/li>\n<li>Since the source of websites is necessarily open, it is possible to learn from others&#8217; examples much easier than otherwise.<\/li>\n<\/ul>\n<h3>Bad<\/h3>\n<ul>\n<li>Feels like it has a lot of baggage from it&#8217;s long(ish) and torrid life, which makes it feel a bit inconsistent. E.g. the first day of the month is 1, but the first month (January) is 0.<\/li>\n<li>People generally seem to write pretty bad Javascript code. Because it&#8217;s so easy everyone can make some useful project, but they are full of bugs. Fortunately it&#8217;s Open Source, so I can try to figure it out, and I did find a handful of upstream bugs. But the stress&#8230;. huh&#8230;<\/li>\n<\/ul>\n<h3>Ugly<\/h3>\n<ul>\n<li>Formatting of JS code can be pretty unreadable (especially comparing with Python where formatting is not optional). It is made more difficult when I&#8217;m editing JS within a HTML file, since Emacs cannot handle that well.<\/li>\n<li>Up until quite recently there weren&#8217;t any really good tools to troubleshoot things. Fortunately there&#8217;s <a title=\"Chrome homepage\" href=\"http:\/\/www.google.com\/chrome\" target=\"_blank\">Chrome<\/a> and it&#8217;s Javascript console, and <a title=\"Firebug home page\" href=\"http:\/\/getfirebug.com\/\" target=\"_blank\">Firebug<\/a> for Firefox. There are still some\u00a0mysterious\u00a0errors and the debugging has to be planned well ahead.<\/li>\n<li>There are many things that are straightforward but require a lot of typing. Fortunately projects like jQuery are trying to fix that, but still there&#8217;s a long way to go.<\/li>\n<li>Just like in Lua, for keys in dictionaries the quotation marks are not required and they are still understood as strings. These kind of magic can be convenient but there are occasions when confusing.<\/li>\n<\/ul>\n<h2>Links<\/h2>\n<h3>Books<\/h3>\n<ul>\n<li><a title=\"Javascript: The Definitive Guide book homepage\" href=\"http:\/\/shop.oreilly.com\/product\/9780596805531.do\" target=\"_blank\">Javascript: The Definitive Guide<\/a>\u00a0&#8211; how to do things in browser, very modern, even jQuery, teaches some strange practices like single line non {} functions and missing semicolons (for many pages!)<\/li>\n<li><a title=\"Javascript: The Good Parts book homepage\" href=\"http:\/\/shop.oreilly.com\/product\/9780596517748.do\" target=\"_blank\">Javascript: The Good Parts<\/a>, a good quick overview, also recommended by many<\/li>\n<\/ul>\n<h3>Interesting Javascript projects and sites<\/h3>\n<ul>\n<li><a title=\"jQuery homepage\" href=\"http:\/\/jquery.com\/\" target=\"_blank\">jQuery<\/a>: making it easier to use JS, especially with respect to HTML DOM manipulation<\/li>\n<li><a title=\"Node.js homepage\" href=\"http:\/\/nodejs.org\/\" target=\"_blank\">Node.js<\/a>: server side JS, thus it is possible for the first time (?) to use the same language for the front and back end on the web<\/li>\n<li><a title=\"jsFiddle home page\" href=\"http:\/\/jsfiddle.net\/\" target=\"_blank\">jsFiddle<\/a>: easy online editor, prototyping and code sharing for the web (JavaScript, MooTools, jQuery, Prototype, YUI, Glow and Dojo, HTML, CSS)<\/li>\n<\/ul>\n<p><em>(last edited 2011-10-03)<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Continuing the Language of the Month serious after a little bit of break when I was busy with other stuff: May: Scala June: Lua July\/August: Prolog September: Javascript It is very long overdue, since I was looking at Javascript like&#8230;. 14 years now? But never really spent time to understand it because I never needed [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8],"tags":[60,44],"class_list":["post-528","post","type-post","status-publish","format-standard","hentry","category-prog","tag-javascript","tag-lotm"],"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: Javascript - ClickedyClick<\/title>\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\/2011\/10\/language-of-the-month-javascript\/\" \/>\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: Javascript - ClickedyClick\" \/>\n<meta property=\"og:description\" content=\"Continuing the Language of the Month serious after a little bit of break when I was busy with other stuff: May: Scala June: Lua July\/August: Prolog September: Javascript It is very long overdue, since I was looking at Javascript like&#8230;. 14 years now? But never really spent time to understand it because I never needed [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/\" \/>\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=\"2011-10-02T10:29:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2011-10-09T13:52:14+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2011\/10\/Introduction-tojavascript-programming-150x150.png\" \/>\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=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/\"},\"author\":{\"name\":\"Gergely Imreh\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#\\\/schema\\\/person\\\/42391e2ae52c8ed76b37be509a5707b0\"},\"headline\":\"Language of the Month: Javascript\",\"datePublished\":\"2011-10-02T10:29:18+00:00\",\"dateModified\":\"2011-10-09T13:52:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/\"},\"wordCount\":1057,\"commentCount\":3,\"publisher\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#\\\/schema\\\/person\\\/42391e2ae52c8ed76b37be509a5707b0\"},\"image\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/10\\\/Introduction-tojavascript-programming-150x150.png\",\"keywords\":[\"javascript\",\"lotm\"],\"articleSection\":[\"Programming\"],\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/\",\"url\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/\",\"name\":\"Language of the Month: Javascript - ClickedyClick\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/#primaryimage\"},\"thumbnailUrl\":\"http:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/10\\\/Introduction-tojavascript-programming-150x150.png\",\"datePublished\":\"2011-10-02T10:29:18+00:00\",\"dateModified\":\"2011-10-09T13:52:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/#primaryimage\",\"url\":\"http:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/10\\\/Introduction-tojavascript-programming-150x150.png\",\"contentUrl\":\"http:\\\/\\\/gergely.imreh.net\\\/blog\\\/wp-content\\\/uploads\\\/2011\\\/10\\\/Introduction-tojavascript-programming-150x150.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/2011\\\/10\\\/language-of-the-month-javascript\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/gergely.imreh.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Language of the Month: Javascript\"}]},{\"@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: Javascript - ClickedyClick","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\/2011\/10\/language-of-the-month-javascript\/","og_locale":"en_GB","og_type":"article","og_title":"Language of the Month: Javascript - ClickedyClick","og_description":"Continuing the Language of the Month serious after a little bit of break when I was busy with other stuff: May: Scala June: Lua July\/August: Prolog September: Javascript It is very long overdue, since I was looking at Javascript like&#8230;. 14 years now? But never really spent time to understand it because I never needed [&hellip;]","og_url":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/","og_site_name":"ClickedyClick","article_publisher":"https:\/\/www.facebook.com\/gergely.imreh","article_author":"https:\/\/www.facebook.com\/gergely.imreh","article_published_time":"2011-10-02T10:29:18+00:00","article_modified_time":"2011-10-09T13:52:14+00:00","og_image":[{"url":"http:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2011\/10\/Introduction-tojavascript-programming-150x150.png","type":"","width":"","height":""}],"author":"Gergely Imreh","twitter_card":"summary_large_image","twitter_creator":"@imrehg","twitter_site":"@imrehg","twitter_misc":{"Written by":"Gergely Imreh","Estimated reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/#article","isPartOf":{"@id":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/"},"author":{"name":"Gergely Imreh","@id":"https:\/\/gergely.imreh.net\/blog\/#\/schema\/person\/42391e2ae52c8ed76b37be509a5707b0"},"headline":"Language of the Month: Javascript","datePublished":"2011-10-02T10:29:18+00:00","dateModified":"2011-10-09T13:52:14+00:00","mainEntityOfPage":{"@id":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/"},"wordCount":1057,"commentCount":3,"publisher":{"@id":"https:\/\/gergely.imreh.net\/blog\/#\/schema\/person\/42391e2ae52c8ed76b37be509a5707b0"},"image":{"@id":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/#primaryimage"},"thumbnailUrl":"http:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2011\/10\/Introduction-tojavascript-programming-150x150.png","keywords":["javascript","lotm"],"articleSection":["Programming"],"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/","url":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/","name":"Language of the Month: Javascript - ClickedyClick","isPartOf":{"@id":"https:\/\/gergely.imreh.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/#primaryimage"},"image":{"@id":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/#primaryimage"},"thumbnailUrl":"http:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2011\/10\/Introduction-tojavascript-programming-150x150.png","datePublished":"2011-10-02T10:29:18+00:00","dateModified":"2011-10-09T13:52:14+00:00","breadcrumb":{"@id":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/"]}]},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/#primaryimage","url":"http:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2011\/10\/Introduction-tojavascript-programming-150x150.png","contentUrl":"http:\/\/gergely.imreh.net\/blog\/wp-content\/uploads\/2011\/10\/Introduction-tojavascript-programming-150x150.png"},{"@type":"BreadcrumbList","@id":"https:\/\/gergely.imreh.net\/blog\/2011\/10\/language-of-the-month-javascript\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/gergely.imreh.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Language of the Month: Javascript"}]},{"@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\/528","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=528"}],"version-history":[{"count":11,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/posts\/528\/revisions"}],"predecessor-version":[{"id":569,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/posts\/528\/revisions\/569"}],"wp:attachment":[{"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/media?parent=528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/categories?post=528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/gergely.imreh.net\/blog\/wp-json\/wp\/v2\/tags?post=528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}