{"id":349,"date":"2022-12-11T20:43:36","date_gmt":"2022-12-11T20:43:36","guid":{"rendered":"https:\/\/blog.wnohang.net\/?p=349"},"modified":"2022-12-11T20:44:17","modified_gmt":"2022-12-11T20:44:17","slug":"weekend-with-chatgpt","status":"publish","type":"post","link":"https:\/\/blog.wnohang.net\/index.php\/2022\/12\/11\/weekend-with-chatgpt\/","title":{"rendered":"Weekend with ChatGPT"},"content":{"rendered":"<span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 5<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>\n<p class=\"has-drop-cap\">A few days ago, OpenAI released a chat-based model called&nbsp;<a href=\"https:\/\/openai.com\/blog\/chatgpt\/\">ChatGPT<\/a>&nbsp;and provided an interface for users to interact with. ChatGPT is a form of conversational AI where you can ask questions or have a conversation with a bot backed by a model. As per the announcement &#8211;<\/p>\n\n\n\n<figure class=\"wp-block-pullquote\"><blockquote><p>The dialogue format makes it possible for ChatGPT to answer followup questions, admit its mistakes, challenge incorrect premises, and reject inappropriate requests<\/p><\/blockquote><\/figure>\n\n\n\n<p>The last time I was this excited by GPT was when a&nbsp;<a href=\"https:\/\/www.technologyreview.com\/2020\/10\/08\/1009845\/a-gpt-3-bot-posted-comments-on-reddit-for-a-week-and-no-one-noticed\/\">GPT-3 bot was posted comments in AskReddit<\/a>&nbsp;and no one realized that those comments were from a bot.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-11-at-20.11.10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"822\" src=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-11-at-20.11.10-1024x822.png\" alt=\"\" class=\"wp-image-351\" srcset=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-11-at-20.11.10-1024x822.png 1024w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-11-at-20.11.10-300x241.png 300w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-11-at-20.11.10-768x617.png 768w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-11-at-20.11.10-1536x1234.png 1536w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-11-at-20.11.10-2048x1645.png 2048w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>Over the weekend, I decided to give this GPT-3.5 (should we start calling these with a T-prefix, like T-1000?) a spin. Needless to say, it has been impressive. I plan to use this bot as a tool in my daily usage (a friend remarked that they would use it to generate poems for holiday greeting cards!).<\/p>\n\n\n\n<p>Following is one such interaction I had with ChatGPT:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.06.58.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"633\" src=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.06.58-1024x633.png\" alt=\"\" class=\"wp-image-352\" srcset=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.06.58-1024x633.png 1024w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.06.58-300x185.png 300w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.06.58-768x474.png 768w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.06.58.png 1418w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.07.10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"289\" src=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.07.10-1024x289.png\" alt=\"\" class=\"wp-image-353\" srcset=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.07.10-1024x289.png 1024w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.07.10-300x85.png 300w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.07.10-768x217.png 768w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.07.10.png 1340w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/figure>\n\n\n\n<p>As you can observe above, the ChatGPT maintains context from one conversation to the next, though as per the information on the site, it does not personalize. In other words, it is not tailoring responses based on the types of questions asked in the past by the human user. Every session opened at&nbsp;<a href=\"https:\/\/chat.openai.com\/chat\"><\/a><a href=\"https:\/\/chat.openai.com\/chat\">https:\/\/chat.openai.com\/chat<\/a>&nbsp;starts anew without any history or memory.<\/p>\n\n\n\n<p>Still, with context maintained within a session, this model of Q&amp;A for information retrieval seems more natural than one with search engines where personalized results lack connection from one to another. The shift from a command\/query based structure to a conversational one is very empowering since latter mimics a dialogue between instructor\/student or parent\/child. As humans tend to be exploratory when researching any subject (or even shopping), the conversational approach is also more practical.<\/p>\n\n\n\n<p>Also, as the research preview blog post indicates, there is an emphasis on safety with several mitigations in place compared to its older sibling InstructGPT (and there is also a&nbsp;<a href=\"https:\/\/cdn.openai.com\/chatgpt\/ChatGPT_Feedback_Contest_Rules.pdf\">contest<\/a>&nbsp;to provide more feedback). In my tests, the model tends to be aware of bias and avoid generating any replies that may have been inferred (and thus possibly biased) than factual in nature.<\/p>\n\n\n\n<p>Finally, the multi-lingual support also seems to be good &#8211;<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-21.21.01.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"581\" src=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-21.21.01-1024x581.png\" alt=\"\" class=\"wp-image-354\" srcset=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-21.21.01-1024x581.png 1024w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-21.21.01-300x170.png 300w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-21.21.01-768x436.png 768w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-21.21.01.png 1280w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/figure>\n\n\n\n<p>I further asked for the same haiku to be composed in the style of the famed poet&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Matsuo_Bash%C5%8D\">Matsuo Basho<\/a><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Untitled.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Untitled-1024x576.png\" alt=\"\" class=\"wp-image-355\" srcset=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Untitled-1024x576.png 1024w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Untitled-300x169.png 300w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Untitled-768x432.png 768w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Untitled.png 1294w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/figure>\n\n\n\n<p>Note the subtle changes in the style of the haiku!<\/p>\n\n\n\n<p>The model is also aware of its limitations in terms of what it has been trained on or its capabilities.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.32.38.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"420\" src=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.32.38-1024x420.png\" alt=\"\" class=\"wp-image-356\" srcset=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.32.38-1024x420.png 1024w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.32.38-300x123.png 300w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.32.38-768x315.png 768w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.32.38.png 1252w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>When asked about a word and a follow-up question on recent history (currently chatGPT seems to be not aware of time or its passage) &#8211;\u00a0<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.54.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"443\" src=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.54-1024x443.png\" alt=\"\" class=\"wp-image-357\" srcset=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.54-1024x443.png 1024w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.54-300x130.png 300w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.54-768x332.png 768w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.54.png 1206w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"491\" src=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.10-1024x491.png\" alt=\"\" class=\"wp-image-358\" srcset=\"https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.10-1024x491.png 1024w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.10-300x144.png 300w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.10-768x368.png 768w, https:\/\/blog.wnohang.net\/wp-content\/uploads\/2022\/12\/Screenshot-2022-12-04-at-17.33.10.png 1234w\" sizes=\"auto, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/a><\/figure>\n\n\n\n<p>Overall, this is a very exciting development in the conversational AI space. With the rapid growth in&nbsp;<a href=\"https:\/\/twitter.com\/emollick\/status\/1584743837637160960\/photo\/1\">AI model sizes<\/a>, the future seems very promising. Past experiences have not been equally exciting either due to those being solely voice-based (which has not been accurate in parsing even with personalized voice models) or due to lack of a web-based (or even a dedicated app-based one) interface.<\/p>\n\n\n\n<p>While it does seem like Google search is facing serious competition here, there are still a few gaps to ponder over &#8211;<\/p>\n\n\n\n<ol class=\"wp-block-list\"><li>The model is trained on a static model of documents, code, and text corpora. In other words, it does not evolve or update itself in real time. It will be interesting to observe the accuracy and capabilities of ChatGPT in an iterative mode.<\/li><li>Since it is not connected to the Internet, the boundaries of its knowledge are well-defined and known. If it needs to be a real-time search engine, these \u201cboundaries of knowledge\u201d may be hard to define.  More importantly,  only time will tell if these safety mitigations continue to safeguard all the generated responses, especially if they are being generated in   real time. <\/li><li>Personalization may be helpful where responses are tailored to the user asking the questions based on history. Care needs to be taken to avoid any&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Filter_bubble\">filter bubbles<\/a>&nbsp;by being explicit about it: providing a generic answer and a personalized one separately. Privacy is another aspect to balance when it comes to personalization.<\/li><li>The interaction here is equivalent to a \u201cI am feeling lucky\u201d in a search engine. At the same time, users may be more interested in all sources of information than the most pertinent ones. This behavior can happen since we often may not know what we are looking for until we examine the choices. In this sense, a hybrid mode of a chat-based answer with a list of results on the side seems ideal. Google is already providing&nbsp;<a href=\"https:\/\/www.google.com\/search?q=height+of+eiffel+tower+in+feet\">handy solutions in response to search queries<\/a>, but usefulness can be improved with a chat-based interface such as ChatGPT.<\/li><\/ol>\n\n\n\n<p>Note that in the comparison above, I have excluded the analysis of ChatGPT\u2019s prowess when it comes to code (powered by&nbsp;<a href=\"https:\/\/openai.com\/blog\/openai-codex\/\">Codex<\/a>, which also powers Github CoPilot), where it seems to have no other parallels to compare to.<\/p>\n\n\n\n<p>When it comes to voice assistants, there is much to be said in terms of conversation since the human voice tends to be much richer than text in terms of tone, intonation and many similar characteristics which convey a lot too.<\/p>\n\n\n\n<p>There are questions being asked whether chatGPT can achieve&nbsp;<a href=\"https:\/\/en.wikipedia.org\/wiki\/Artificial_general_intelligence\">AGI<\/a>&nbsp;which will make that AI to to be completely indistinguishable from a human in all the traits while being much more efficient and scalable. While it will be a matter of time &#8211; question of when and not if &#8211; before such a parity is reached, we need to avoid underestimating the usefulness of chatGPT-like tools for humans as a powerful force multiplier.<\/p>\n\n\n\n<p>Augmentation of humans with a powerful AI has been in the realm of science fiction (<a href=\"https:\/\/en.wikipedia.org\/wiki\/Deus_Ex_(video_game)\">Daedalus from Deus Ex to pick one)<\/a>&nbsp;and research papers such as this one from&nbsp;<a href=\"https:\/\/dougengelbart.org\/pubs\/augment-3906.html\">Doug Engelbart from the 1960s<\/a>&nbsp;(thanks to&nbsp;<a href=\"https:\/\/www.notion.so\/blog\/introducing-notion-ai\">Notion\u2019s post<\/a>&nbsp;on their AI assistant for pointing me to this). It is about time when that futurism starts converging with the present.<\/p>\n\n\n\n<p>Finally, from a futuristic standpoint, the NorthStar in this space has to be Star Trek\u2019s onboard computer (voiced by&nbsp;<a href=\"https:\/\/www.imdb.com\/title\/tt0092455\/characters\/nm0000854\">Majel Barrett<\/a>&nbsp;in multiple episodes) which really understands the speaker, converses with them, and remembers them individually between interactions.<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Reading Time: <\/span> <span class=\"rt-time\"> 5<\/span> <span class=\"rt-label rt-postfix\">minutes<\/span><\/span>A few days ago, OpenAI released a chat-based model called&nbsp;ChatGPT&nbsp;and provided an interface for users to interact with. ChatGPT is a form of conversational AI where you can ask questions or have a conversation with a bot backed by a model. As per the announcement &#8211; The dialogue format makes it possible for ChatGPT to &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/blog.wnohang.net\/index.php\/2022\/12\/11\/weekend-with-chatgpt\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Weekend with ChatGPT&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[83,88,87,86,85,84,89],"class_list":["post-349","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-ai","tag-assistant","tag-augmentation","tag-gpt","tag-gpt3-5","tag-openai","tag-startrek"],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p3AlYV-5D","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":59,"url":"https:\/\/blog.wnohang.net\/index.php\/2014\/04\/30\/saving-form-data\/","url_meta":{"origin":349,"position":0},"title":"Saving form data in firefox","author":"Raghavendra","date":"April 30, 2014","format":false,"excerpt":"When commenting on sites, I have sometimes, seen that the commenting system just swallows the comment, or there is a browser crash, or a system one. In these cases it would be great if you can recover it somehow, particularly when you typed quite a bit. There are plugins for\u2026","rel":"","context":"Similar post","block_context":{"text":"Similar post","link":""},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":126,"url":"https:\/\/blog.wnohang.net\/index.php\/2014\/05\/03\/twitter-setup\/","url_meta":{"origin":349,"position":1},"title":"My twitter setup","author":"Raghavendra","date":"May 3, 2014","format":false,"excerpt":"I have been using Twitter for a while under the handle randomsurfer. I tend to use web interface sometimes, but regularly I use the command-line\/ncurses interface. There are two main clients that I use regularly. One is ttytter which is a nice command-line client which offers advanced functionality such as\u2026","rel":"","context":"In \"bitlbee\"","block_context":{"text":"bitlbee","link":"https:\/\/blog.wnohang.net\/index.php\/tag\/bitlbee\/"},"img":{"alt_text":"2014-05-03-150028_1920x1060_scrot","src":"https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2014\/05\/2014-05-03-150028_1920x1060_scrot-1024x565.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2014\/05\/2014-05-03-150028_1920x1060_scrot-1024x565.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2014\/05\/2014-05-03-150028_1920x1060_scrot-1024x565.png?resize=525%2C300 1.5x"},"classes":[]},{"id":73,"url":"https:\/\/blog.wnohang.net\/index.php\/2014\/05\/03\/mysql-file-limit-table-cache-max_connections\/","url_meta":{"origin":349,"position":2},"title":"MySQL file limit, table cache and max_connections","author":"Raghavendra","date":"May 3, 2014","format":false,"excerpt":"MySQL variables open_files_limit, table_open_cache and max_connections are inter-related, and this is for obvious reasons: all deal with file descriptors one way or another. If one of the value is provided but others are left out, mysqld calculates others using a formula and in some cases, emits a warning if not\u2026","rel":"","context":"In \"EAGAIN\"","block_context":{"text":"EAGAIN","link":"https:\/\/blog.wnohang.net\/index.php\/tag\/eagain\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2014\/05\/384027019_5e64727276_z.jpg?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2014\/05\/384027019_5e64727276_z.jpg?resize=350%2C200 1x, https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2014\/05\/384027019_5e64727276_z.jpg?resize=525%2C300 1.5x"},"classes":[]},{"id":334,"url":"https:\/\/blog.wnohang.net\/index.php\/2020\/05\/22\/gossips-in-distributed-systems-physalia\/","url_meta":{"origin":349,"position":3},"title":"Gossips in Distributed Systems:  Physalia","author":"Raghavendra","date":"May 22, 2020","format":false,"excerpt":"I often take notes and jot down observations when I read academic\/industry papers. \u00a0 Thinking of a name for this series \u2018Gossips in Distributed Systems\u2019 seemed apt to me, inspired by the gossip protocol with which peers in these systems communicate with each other which mimics the spread of ideas\u2026","rel":"","context":"In \"availability\"","block_context":{"text":"availability","link":"https:\/\/blog.wnohang.net\/index.php\/tag\/availability\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-22-at-4.40.40-PM.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-22-at-4.40.40-PM.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-22-at-4.40.40-PM.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-22-at-4.40.40-PM.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.wnohang.net\/wp-content\/uploads\/2020\/05\/Screen-Shot-2020-05-22-at-4.40.40-PM.png?resize=1050%2C600&ssl=1 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/blog.wnohang.net\/index.php\/wp-json\/wp\/v2\/posts\/349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.wnohang.net\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.wnohang.net\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.wnohang.net\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.wnohang.net\/index.php\/wp-json\/wp\/v2\/comments?post=349"}],"version-history":[{"count":3,"href":"https:\/\/blog.wnohang.net\/index.php\/wp-json\/wp\/v2\/posts\/349\/revisions"}],"predecessor-version":[{"id":361,"href":"https:\/\/blog.wnohang.net\/index.php\/wp-json\/wp\/v2\/posts\/349\/revisions\/361"}],"wp:attachment":[{"href":"https:\/\/blog.wnohang.net\/index.php\/wp-json\/wp\/v2\/media?parent=349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.wnohang.net\/index.php\/wp-json\/wp\/v2\/categories?post=349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.wnohang.net\/index.php\/wp-json\/wp\/v2\/tags?post=349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}