{"id":2125,"date":"2015-03-15T09:01:06","date_gmt":"2015-03-15T13:01:06","guid":{"rendered":"http:\/\/blogs.library.duke.edu\/bitstreams\/?p=2125"},"modified":"2015-03-15T09:01:06","modified_gmt":"2015-03-15T13:01:06","slug":"small-problems-little-solutions","status":"publish","type":"post","link":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/","title":{"rendered":"Small Problems, Little Solutions"},"content":{"rendered":"<p>I have been thinking lately about tools that make tasks I repeat frequently more efficient. For example, I&#8217;m an occasional do-it-yourself home repairer and have an old handsaw that works just fine for cutting a few pieces of wood for small repairs. It&#8217;s easy to understand how to use the saw, takes very little planning, and takes just a bit of manual effort.<\/p>\n<p><a href=\"http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/P1040015.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/P1040015-1024x747.jpg\" alt=\"P1040015\" width=\"474\" height=\"346\" class=\"alignleft size-large wp-image-2137\" srcset=\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/P1040015-1024x747.jpg 1024w, https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/P1040015-300x219.jpg 300w\" sizes=\"auto, (max-width: 474px) 100vw, 474px\" \/><\/a><\/p>\n<p>Last summer, however, I faced a larger task of rebuilding a whole section of my deck that had rotted. I began using the handsaw to cut the wood I would need for the repair and quickly realized my usual method was going take a long time and make me very sore and unhappy. I needed a better tool and method. This better tool was an electric circular saw, which is more expensive, harder to understand how to use, and more dangerous than the handsaw, but much more efficient. Since I have a healthy fear of death and dismemberment, I also took some time to learn how to use the dreadful thing in a safe manner. It took an initial investment in time and effort, but with the electric saw I was able to make much faster and less painful progress repairing the deck.<\/p>\n<p>I encounter similar kinds of problems when writing software and making things for the web. It&#8217;s perfectly possible to do these things using a basic text editor to write everything out by hand. I got along fine this way for a long time. But there are many ways to make this work more efficient. The rest of this post is mainly a list of techniques and tools I&#8217;ve invested time and energy to learn to use to reduce annoying, repetitive tasks.<\/p>\n<p>My favorite time and effort saver is learning how to execute common tasks in a text editor using keyboard shortcuts. Here are a few examples of shortcuts I use many times a day in my favorite editor, <a href=\"http:\/\/www.sublimetext.com\/\">Sublime Text 2<\/a>. The ones I used the most involve moving the cursor or text around without touching the mouse. (These are specific to Macintosh computers, but there are similar shortcuts available in other operating systems.)<\/p>\n<ul>\n<li>Hold down the Option key and use the left and right arrow keys to move the cursor a word at a time instead of a space at a time.<\/li>\n<li>Hold down the Command key and use the left or right arrow to move to the beginning or end of a line. The up or down arrow will take you to the top or end of the document.<\/li>\n<li>Add the shift key to the above shortcuts to select text as the cursor moves.<\/li>\n<li>The delete key will also work with these shortcuts.<\/li>\n<li>Indent a line of text or a whole block of text using the Command key and the left and right brackets.\n<\/ul>\n<p>There are also more advanced text editor features or plugins that make coding easier by reducing the amount you have to type by hand.<\/p>\n<p><a href=\"http:\/\/emmet.io\/\">Emmet<\/a> is a utility that does a few things, but it mainly lets you use abbreviated CSS syntax to generate full HTML markup. For example I can type div.special and when I hit the tab key Emmet automatically turns that into:<br \/>\n<a href=\"http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/Screen-Shot-2015-03-13-at-5.17.21-PM.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/Screen-Shot-2015-03-13-at-5.17.21-PM.png\" alt=\"Screen Shot 2015-03-13 at 5.17.21 PM\" width=\"960\" height=\"130\" class=\"alignleft size-full wp-image-2143\" srcset=\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/Screen-Shot-2015-03-13-at-5.17.21-PM.png 960w, https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/Screen-Shot-2015-03-13-at-5.17.21-PM-300x41.png 300w\" sizes=\"auto, (max-width: 960px) 100vw, 960px\" \/><\/a><br \/>\nYou can string these together to generate multi line nested HTML markup from a single string.<br \/>\n<div style=\"width: 474px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-2125-1\" width=\"474\" height=\"313\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/Emmet.mp4?_=1\" \/><a href=\"http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/Emmet.mp4\">http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/Emmet.mp4<\/a><\/video><\/div><\/p>\n<p><a href=\"http:\/\/sublimecodeintel.github.io\/SublimeCodeIntel\/\">SublimeCodeIntel<\/a> is another plugin for the text editor I use. It adds an intelligent auto-suggest menu that updates as you type with things that are specific to the programming language you&#8217;re working in and the specific program. For example in PHP it if I type &#8220;e&#8221; it will suggest &#8220;echo&#8221; and I can hit enter to use that suggestion. It also remembers things like the variable and class names in the project you&#8217;re working on. It even seems to learn what terms you use most frequently and suggests those first. It saves much typing.<\/p>\n<div style=\"width: 474px;\" class=\"wp-video\"><video class=\"wp-video-shortcode\" id=\"video-2125-2\" width=\"474\" height=\"310\" preload=\"metadata\" controls=\"controls\"><source type=\"video\/mp4\" src=\"http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/SublimeCodeIntel.mp4?_=2\" \/><a href=\"http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/SublimeCodeIntel.mp4\">http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/SublimeCodeIntel.mp4<\/a><\/video><\/div>\n<p>There are also a couple of utilities I run in a terminal window while I&#8217;m working to automate different tasks. Many of these are powered by <a href=\"https:\/\/github.com\/guard\/guard\">Guard<\/a>, which is a Rails Gem that watches for changes to files. This is more useful than it might sound. For example, Guard can run <a href=\"https:\/\/github.com\/guard\/guard-livereload\">LiveReload<\/a>. When Guard notices a file has changed that you told it to watch it triggers LiveReload that then refreshes your browser window. With this tool I can make small changes to a project and see the updates in realtime in my browser without having the refresh the page manually. There are also Guard utilities for running tests, compressing JavaScript, and generating browser friendly CSS from easier to write and maintain (coder friendly) SCSS.<\/p>\n<p><a href=\"http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/687474703a2f2f636c2e6c792f696d6167652f316b336f3172325a3361304a2f67756172642d49636f6e2e706e67.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/687474703a2f2f636c2e6c792f696d6167652f316b336f3172325a3361304a2f67756172642d49636f6e2e706e67.png\" alt=\"687474703a2f2f636c2e6c792f696d6167652f316b336f3172325a3361304a2f67756172642d49636f6e2e706e67\" width=\"400\" height=\"411\" class=\"alignright size-full wp-image-2141\" srcset=\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/687474703a2f2f636c2e6c792f696d6167652f316b336f3172325a3361304a2f67756172642d49636f6e2e706e67.png 400w, https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/687474703a2f2f636c2e6c792f696d6167652f316b336f3172325a3361304a2f67756172642d49636f6e2e706e67-292x300.png 292w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><\/p>\n<p>These are just a few of the ways I try to streamline repetitive tasks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I have been thinking lately about tools that make tasks I repeat frequently more efficient. For example, I&#8217;m an occasional do-it-yourself home repairer and have an old handsaw that works just fine for cutting a few pieces of wood for small repairs. It&#8217;s easy to understand how to use the saw, takes very little planning, &hellip; <a href=\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Small Problems, Little Solutions<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":233,"featured_media":2126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,12],"tags":[],"class_list":["post-2125","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-behindscenes","category-tech"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Small Problems, Little Solutions - Bitstreams: The Digital Collections Blog<\/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:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Small Problems, Little Solutions - Bitstreams: The Digital Collections Blog\" \/>\n<meta property=\"og:description\" content=\"I have been thinking lately about tools that make tasks I repeat frequently more efficient. For example, I&#8217;m an occasional do-it-yourself home repairer and have an old handsaw that works just fine for cutting a few pieces of wood for small repairs. It&#8217;s easy to understand how to use the saw, takes very little planning, &hellip; Continue reading Small Problems, Little Solutions &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/\" \/>\n<meta property=\"og:site_name\" content=\"Bitstreams: The Digital Collections Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/dukedigitalcoll\" \/>\n<meta property=\"article:published_time\" content=\"2015-03-15T13:01:06+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/USMC-02963.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2000\" \/>\n\t<meta property=\"og:image:height\" content=\"1312\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Cory Lown\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@dukedigitalcoll\" \/>\n<meta name=\"twitter:site\" content=\"@dukedigitalcoll\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cory Lown\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/\"},\"author\":{\"name\":\"Cory Lown\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/9545edb49f3a32c91a36b8ad23e48b05\"},\"headline\":\"Small Problems, Little Solutions\",\"datePublished\":\"2015-03-15T13:01:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/\"},\"wordCount\":825,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/USMC-02963.jpg\",\"articleSection\":[\"Behind the Scenes\",\"Technology\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/\",\"url\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/\",\"name\":\"Small Problems, Little Solutions - Bitstreams: The Digital Collections Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/USMC-02963.jpg\",\"datePublished\":\"2015-03-15T13:01:06+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/9545edb49f3a32c91a36b8ad23e48b05\"},\"breadcrumb\":{\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#primaryimage\",\"url\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/USMC-02963.jpg\",\"contentUrl\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/USMC-02963.jpg\",\"width\":2000,\"height\":1312},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Small Problems, Little Solutions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#website\",\"url\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/\",\"name\":\"Bitstreams: The Digital Collections Blog\",\"description\":\"Notes from the Duke University Libraries Digital Projects Team\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/9545edb49f3a32c91a36b8ad23e48b05\",\"name\":\"Cory Lown\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/660da065b8d8ef461e83d755c61bb78df713516a3346b4485fd9c886a49a0b64?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/660da065b8d8ef461e83d755c61bb78df713516a3346b4485fd9c886a49a0b64?s=96&d=mm&r=g\",\"caption\":\"Cory Lown\"},\"url\":\"https:\/\/blogs.library.duke.edu\/bitstreams\/author\/cl334duke-edu\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Small Problems, Little Solutions - Bitstreams: The Digital Collections Blog","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:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/","og_locale":"en_US","og_type":"article","og_title":"Small Problems, Little Solutions - Bitstreams: The Digital Collections Blog","og_description":"I have been thinking lately about tools that make tasks I repeat frequently more efficient. For example, I&#8217;m an occasional do-it-yourself home repairer and have an old handsaw that works just fine for cutting a few pieces of wood for small repairs. It&#8217;s easy to understand how to use the saw, takes very little planning, &hellip; Continue reading Small Problems, Little Solutions &rarr;","og_url":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/","og_site_name":"Bitstreams: The Digital Collections Blog","article_publisher":"https:\/\/www.facebook.com\/dukedigitalcoll","article_published_time":"2015-03-15T13:01:06+00:00","og_image":[{"width":2000,"height":1312,"url":"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/USMC-02963.jpg","type":"image\/jpeg"}],"author":"Cory Lown","twitter_card":"summary_large_image","twitter_creator":"@dukedigitalcoll","twitter_site":"@dukedigitalcoll","twitter_misc":{"Written by":"Cory Lown","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#article","isPartOf":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/"},"author":{"name":"Cory Lown","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/9545edb49f3a32c91a36b8ad23e48b05"},"headline":"Small Problems, Little Solutions","datePublished":"2015-03-15T13:01:06+00:00","mainEntityOfPage":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/"},"wordCount":825,"commentCount":0,"image":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/USMC-02963.jpg","articleSection":["Behind the Scenes","Technology"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/","url":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/","name":"Small Problems, Little Solutions - Bitstreams: The Digital Collections Blog","isPartOf":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#primaryimage"},"image":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/USMC-02963.jpg","datePublished":"2015-03-15T13:01:06+00:00","author":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/9545edb49f3a32c91a36b8ad23e48b05"},"breadcrumb":{"@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#primaryimage","url":"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/USMC-02963.jpg","contentUrl":"https:\/\/blogs.library.duke.edu\/bitstreams\/files\/2015\/03\/USMC-02963.jpg","width":2000,"height":1312},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/2015\/03\/15\/small-problems-little-solutions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.library.duke.edu\/bitstreams\/"},{"@type":"ListItem","position":2,"name":"Small Problems, Little Solutions"}]},{"@type":"WebSite","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#website","url":"https:\/\/blogs.library.duke.edu\/bitstreams\/","name":"Bitstreams: The Digital Collections Blog","description":"Notes from the Duke University Libraries Digital Projects Team","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.library.duke.edu\/bitstreams\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/9545edb49f3a32c91a36b8ad23e48b05","name":"Cory Lown","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/blogs.library.duke.edu\/bitstreams\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/660da065b8d8ef461e83d755c61bb78df713516a3346b4485fd9c886a49a0b64?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/660da065b8d8ef461e83d755c61bb78df713516a3346b4485fd9c886a49a0b64?s=96&d=mm&r=g","caption":"Cory Lown"},"url":"https:\/\/blogs.library.duke.edu\/bitstreams\/author\/cl334duke-edu\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/posts\/2125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/users\/233"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/comments?post=2125"}],"version-history":[{"count":14,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/posts\/2125\/revisions"}],"predecessor-version":[{"id":2146,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/posts\/2125\/revisions\/2146"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/media\/2126"}],"wp:attachment":[{"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/media?parent=2125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/categories?post=2125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.library.duke.edu\/bitstreams\/wp-json\/wp\/v2\/tags?post=2125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}